From bde85a668551251493ab5343d3a8a02db29bb87e Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 15 Mar 2011 21:23:34 -0700 Subject: [PATCH] Extended profile - fix issue with JavaScript not executing in Firefox --- .../ExtendedProfile/extendedprofilewidget.php | 4 +- plugins/ExtendedProfile/js/profiledetail.js | 49 ++++++++----------- 2 files changed, 22 insertions(+), 31 deletions(-) diff --git a/plugins/ExtendedProfile/extendedprofilewidget.php b/plugins/ExtendedProfile/extendedprofilewidget.php index dec0512be4..5a9eb7e4f9 100644 --- a/plugins/ExtendedProfile/extendedprofilewidget.php +++ b/plugins/ExtendedProfile/extendedprofilewidget.php @@ -430,7 +430,7 @@ class ExtendedProfileWidget extends Form array( 'class' => 'remove_row', 'href' => 'javascript://', - 'style' => 'display: none; ' + 'style' => 'display: none;' ), '-' ); @@ -440,7 +440,7 @@ class ExtendedProfileWidget extends Form array( 'class' => 'add_row', 'href' => 'javascript://', - 'style' => 'display: none; ' + 'style' => 'display: none;' ), '+' ); diff --git a/plugins/ExtendedProfile/js/profiledetail.js b/plugins/ExtendedProfile/js/profiledetail.js index 98594a46b7..9fb935f153 100644 --- a/plugins/ExtendedProfile/js/profiledetail.js +++ b/plugins/ExtendedProfile/js/profiledetail.js @@ -1,39 +1,32 @@ var SN_EXTENDED = SN_EXTENDED || {}; -SN_EXTENDED.reorder = function(class) { - console.log("QQQ Enter reorder"); +SN_EXTENDED.reorder = function(cls) { - var divs = $.find('div[class=' + class + ']'); - console.log('divs length = ' + divs.length); - - $(divs).find('a').hide(); + var divs = $('div[class=' + cls + ']'); $(divs).each(function(i, div) { - console.log("ROW " + i); $(div).find('a.remove_row').show(); SN_EXTENDED.replaceIndex(SN_EXTENDED.rowIndex(div), i); }); - $this = $(divs).last().closest('tr'); - $this.addClass('supersizeme'); + var lastDiv = $(divs).last().closest('tr'); + lastDiv.addClass('supersizeme'); $(divs).last().find('a.add_row').show(); if (divs.length == 1) { $(divs).find('a.remove_row').hide(); } - }; SN_EXTENDED.rowIndex = function(div) { var idstr = $(div).attr('id'); var id = idstr.match(/\d+/); - console.log("id = " + id); return id; }; -SN_EXTENDED.rowCount = function(class) { - var divs = $.find('div[class=' + class + ']'); +SN_EXTENDED.rowCount = function(cls) { + var divs = $.find('div[class=' + cls + ']'); return divs.length; }; @@ -45,7 +38,6 @@ SN_EXTENDED.replaceIndex = function(elem, oldIndex, newIndex) { var match = value.match(regexp); if (match !== null) { attrib.value = value.replace("-" + oldIndex, "-" + newIndex); - console.log('match: oldIndex = ' + oldIndex + ' newIndex = ' + newIndex + ' name = ' + attrib.name + ' value = ' + attrib.value); } }); }); @@ -54,41 +46,40 @@ SN_EXTENDED.replaceIndex = function(elem, oldIndex, newIndex) { SN_EXTENDED.resetRow = function(elem) { $(elem).find('input').attr('value', ''); $(elem).find("select option[value='office']").attr("selected", true); -} +}; SN_EXTENDED.addRow = function() { var div = $(this).closest('div'); - var id = $(div).attr('id'); - var class = $(div).attr('class'); + var id = div.attr('id'); + var cls = div.attr('class'); var index = id.match(/\d+/); - console.log("Current row = " + index + ', class = ' + class); - var trold = $(this).closest('tr'); - var tr = $(trold).removeClass('supersizeme'); - var newtr = $(tr).clone(); var newIndex = parseInt(index) + 1; + var newtr = $(div).closest('tr').clone(); SN_EXTENDED.replaceIndex(newtr, index, newIndex); + $(newtr).removeClass('supersizeme'); SN_EXTENDED.resetRow(newtr); - $(tr).after(newtr); - SN_EXTENDED.reorder(class); + $(div).closest('tr').after(newtr); + SN_EXTENDED.reorder(cls); }; SN_EXTENDED.removeRow = function() { var div = $(this).closest('div'); var id = $(div).attr('id'); - var class = $(div).attr('class'); + var cls = $(div).attr('class'); - cnt = SN_EXTENDED.rowCount(class); - console.debug("removeRow - cnt = " + cnt); + var cnt = SN_EXTENDED.rowCount(cls); if (cnt > 1) { var target = $(this).closest('tr'); target.remove(); - SN_EXTENDED.reorder(class); + SN_EXTENDED.reorder(cls); } }; -$(document).ready( +$(document).ready(function() { -function() { + $("input#extprofile-manager").autocomplete({ + source: 'finduser', + minLength: 2 }); var multifields = ["phone-item", "experience-item", "education-item", "im-item"];