From e2a2e2b28bfc2b70ade8c6fb52363176af12804b Mon Sep 17 00:00:00 2001 From: pete Date: Fri, 9 May 2008 00:31:16 +0000 Subject: jquery framework git-svn-id: https://code.elgg.org/elgg/trunk@638 36083f99-b078-4883-b0ff-0f9b5a30f544 --- vendors/jquery/init.js | 131 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100755 vendors/jquery/init.js (limited to 'vendors/jquery/init.js') diff --git a/vendors/jquery/init.js b/vendors/jquery/init.js new file mode 100755 index 000000000..b60d268f0 --- /dev/null +++ b/vendors/jquery/init.js @@ -0,0 +1,131 @@ +(function($){ + var updateUpDown = function(sortable){ + $('div:not(.ui-sortable-helper)', sortable) + .removeClass('first').removeClass('last') + .find('.up, .down').removeClass('disabled').end() + .filter(':first').addClass('first').find('.up').addClass('disabled').end().end() + .filter(':last').addClass('last').find('.down').addClass('disabled').end().end(); + }; + + var moveUpDown = function(){ + var link = $(this), + dl = link.parents('div'), + prev = dl.prev('div'), + next = dl.next('div'); + + if(link.is('.up') && prev.length > 0) + dl.insertBefore(prev); + + if(link.is('.down') && next.length > 0) + dl.insertAfter(next); + + updateUpDown(dl.parent()); + }; + + var addItem = function(){ + var sortable = $(this).parents('.ui-sortable'); + var options = 'updown'; + var tpl = '
{name}' + options + '
{desc}
'; + var html = tpl.replace(/{name}/g, 'Dynamic name :D').replace(/{desc}/g, 'Description'); + + sortable.append(html).sortable('refresh').find('a.up, a.down').bind('click', moveUpDown); + updateUpDown(sortable); + }; + + //var emptyTrashCan = function(item){ + // item.remove(); + //}; + + var sortableChange = function(e, ui){ + if(ui.sender){ + var w = ui.element.width(); + ui.placeholder.width(w); + ui.helper.css("width",ui.element.children().width()); + } + }; + + var sortableUpdate = function(e, ui){ + //if(ui.element[0].id == 'trashcan'){ + // emptyTrashCan(ui.item); + //} else { + updateUpDown(ui.element[0]); + if(ui.sender) + updateUpDown(ui.sender[0]); + //} + }; + + // toggle content panel + var togglePanel = function(e) { + var targetContent = $('div.panelcontent', this.parentNode.parentNode); + if (targetContent.css('display') == 'none') { + targetContent.slideDown(400); + $(this).html('[-]'); + $(this).css("color","#cccccc"); + } else { + targetContent.slideUp(400); + $(this).html('[+]'); + $(this).css("color","#666666"); + } + return false; + }; + + // toggle edit panel + var editpanel = function(e) { + var targetEditPanel = $('div.editpanel', this.parentNode.parentNode); + if (targetEditPanel.css('display') == 'none') { + targetEditPanel.slideDown(400); + } else { + targetEditPanel.slideUp(400); + } + $(this).toggleClass("active"); return false; + return false; + }; + + $(document).ready(function(){ + + // toggle edit panel + $('a.button_editpanel').bind('click', editpanel); + + // toggle content panel + $('a.togglepanel').bind('click', togglePanel); + + var els = ['#mainContent', '#sidebar_right']; + var $els = $(els.toString()); + + //$('h2', $els.slice(0,-1)).append('add'); + //$('dt', $els).append('updown'); + + //$('a.add').bind('click', addItem); + //$('a.up, a.down').bind('click', moveUpDown); + + //$els.each(function(){ + // updateUpDown(this); + //}); + + $els.sortable({ + items: '> div', + handle: 'h1', + cursor: 'move', + //revert: true, + cursorAt: { top: 10, left: 100 }, + //opacity: 0.8, + containment: 'parent', + appendTo: 'body', + placeholder: 'placeholder', + connectWith: els, + start: function(e,ui) { + ui.helper.css("width", ui.item.width()); + }, + change: sortableChange, + update: sortableUpdate + }); + }); + + $(window).bind('load',function(){ + setTimeout(function(){ + $('#overlay').fadeOut(function(){ + $('body').css('overflow', 'auto'); + }); + }, 450); + }); +})(jQuery); \ No newline at end of file -- cgit v1.2.3