From b11a2faf5412a73690535df66034a06467e4208e Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 15 Mar 2011 19:33:05 -0700 Subject: [PATCH] Extended profile - namespace JavaScript functions --- plugins/ExtendedProfile/js/profiledetail.js | 55 ++++++++++----------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/plugins/ExtendedProfile/js/profiledetail.js b/plugins/ExtendedProfile/js/profiledetail.js index 7510323a43..98594a46b7 100644 --- a/plugins/ExtendedProfile/js/profiledetail.js +++ b/plugins/ExtendedProfile/js/profiledetail.js @@ -1,4 +1,6 @@ -var reorder = function(class) { +var SN_EXTENDED = SN_EXTENDED || {}; + +SN_EXTENDED.reorder = function(class) { console.log("QQQ Enter reorder"); var divs = $.find('div[class=' + class + ']'); @@ -9,7 +11,7 @@ var reorder = function(class) { $(divs).each(function(i, div) { console.log("ROW " + i); $(div).find('a.remove_row').show(); - replaceIndex(rowIndex(div), i); + SN_EXTENDED.replaceIndex(SN_EXTENDED.rowIndex(div), i); }); $this = $(divs).last().closest('tr'); @@ -23,19 +25,19 @@ var reorder = function(class) { }; -var rowIndex = function(div) { +SN_EXTENDED.rowIndex = function(div) { var idstr = $(div).attr('id'); var id = idstr.match(/\d+/); console.log("id = " + id); return id; }; -var rowCount = function(class) { +SN_EXTENDED.rowCount = function(class) { var divs = $.find('div[class=' + class + ']'); return divs.length; }; -var replaceIndex = function(elem, oldIndex, newIndex) { +SN_EXTENDED.replaceIndex = function(elem, oldIndex, newIndex) { $(elem).find('*').each(function() { $.each(this.attributes, function(i, attrib) { var regexp = /extprofile-.*-\d.*/; @@ -49,12 +51,12 @@ var replaceIndex = function(elem, oldIndex, newIndex) { }); } -var resetRow = function(elem) { +SN_EXTENDED.resetRow = function(elem) { $(elem).find('input').attr('value', ''); $(elem).find("select option[value='office']").attr("selected", true); } -var addRow = function() { +SN_EXTENDED.addRow = function() { var div = $(this).closest('div'); var id = $(div).attr('id'); var class = $(div).attr('class'); @@ -64,44 +66,41 @@ var addRow = function() { var tr = $(trold).removeClass('supersizeme'); var newtr = $(tr).clone(); var newIndex = parseInt(index) + 1; - replaceIndex(newtr, index, newIndex); - resetRow(newtr); + SN_EXTENDED.replaceIndex(newtr, index, newIndex); + SN_EXTENDED.resetRow(newtr); $(tr).after(newtr); - reorder(class); + SN_EXTENDED.reorder(class); }; -var removeRow = function() { +SN_EXTENDED.removeRow = function() { var div = $(this).closest('div'); var id = $(div).attr('id'); var class = $(div).attr('class'); - cnt = rowCount(class); + cnt = SN_EXTENDED.rowCount(class); console.debug("removeRow - cnt = " + cnt); if (cnt > 1) { var target = $(this).closest('tr'); target.remove(); - reorder(class); + SN_EXTENDED.reorder(class); } }; -var init = function() { - reorder('phone-item'); - reorder('experience-item'); - reorder('education-item'); - reorder('im-item'); +$(document).ready( + +function() { + + var multifields = ["phone-item", "experience-item", "education-item", "im-item"]; + + for (f in multifields) { + SN_EXTENDED.reorder(multifields[f]); + } $("input#extprofile-manager").autocomplete({ source: 'finduser', minLength: 2 }); -} + $('.add_row').live('click', SN_EXTENDED.addRow); + $('.remove_row').live('click', SN_EXTENDED.removeRow); -$(document).ready( - -function() { - init(); - $('.add_row').live('click', addRow); - $('.remove_row').live('click', removeRow); -} - -); +});