From f05a92d4e0df4edcc50eb1f3aa62641d6675186a Mon Sep 17 00:00:00 2001 From: pete Date: Thu, 22 Jan 2009 15:53:51 +0000 Subject: jquery framework and avatar menu updated git-svn-id: https://code.elgg.org/elgg/trunk@2601 36083f99-b078-4883-b0ff-0f9b5a30f544 --- views/default/js/initialise_elgg.php | 216 +++++++++++++++-------------------- 1 file changed, 92 insertions(+), 124 deletions(-) (limited to 'views/default/js/initialise_elgg.php') diff --git a/views/default/js/initialise_elgg.php b/views/default/js/initialise_elgg.php index 3eb62b05b..38f25673e 100644 --- a/views/default/js/initialise_elgg.php +++ b/views/default/js/initialise_elgg.php @@ -1,5 +1,6 @@ $(document).ready(function () { - + + // COLLAPSABLE WIDGETS (on Dashboard & Profile pages) // toggle widget box contents $('a.toggle_box_contents').bind('click', toggleContent); @@ -7,24 +8,22 @@ $(document).ready(function () { $('a.toggle_box_edit_panel').click(function () { $(this.parentNode.parentNode).children("[class=collapsable_box_editpanel]").slideToggle("fast"); return false; - }); - - + }); + // toggle customise edit panel $('a.toggle_customise_edit_panel').click(function () { $('div#customise_editpanel').slideToggle("fast"); return false; - }); - + }); + // toggle plugin's more info on admin tools admin $('a.manifest_details').click(function () { $(this.parentNode.parentNode).children("[class=manifest_file]").slideToggle("fast"); return false; }); - - ////////////////// - // WIDGET GALLERY - // sortable widgets + + // WIDGET GALLERY EDIT PANEL + // Sortable widgets var els = ['#leftcolumn_widgets', '#middlecolumn_widgets', '#rightcolumn_widgets', '#widget_picker_gallery' ]; var $els = $(els.toString()); @@ -38,9 +37,7 @@ $(document).ready(function () { placeholder: 'placeholder', connectWith: els, start:function(e,ui) { - // prevent droppable drop function from running when re-sorting main lists - //$('#middlecolumn_widgets').droppable("disable"); - //$('#leftcolumn_widgets').droppable("disable"); + }, stop: function(e,ui) { // refresh list before updating hidden fields with new widget order @@ -53,15 +50,13 @@ $(document).ready(function () { document.getElementById('debugField1').value = widgetNamesLeft; document.getElementById('debugField2').value = widgetNamesMiddle; document.getElementById('debugField3').value = widgetNamesRight; - } }); - // bind more info buttons - // it's wrapped in a function so it can be called when new widgets are created - widget_moreinfo(); - - // setup hover class for dragged widgets + // bind more info buttons - called when new widgets are created + widget_moreinfo(); + + // set-up hover class for dragged widgets $("#rightcolumn_widgets").droppable({ accept: ".draggable_widget", hoverClass: 'droppable-hover' @@ -75,59 +70,40 @@ $(document).ready(function () { hoverClass: 'droppable-hover' }); - - - - }); /* end document ready function */ +// List active widgets for each page column +function outputWidgetList(forElement) { + return( $("input[@name='handler'], input[@name='guid']", forElement ).makeDelimitedList("value") ); +} - - - - - - - - - +// Make delimited list jQuery.fn.makeDelimitedList = function(elementAttribute) { - - var delimitedListArray = new Array(); + var delimitedListArray = new Array(); var listDelimiter = "::"; - + // Loop over each element in the stack and add the elementAttribute to the array this.each(function(e) { var listElement = $(this); - // Add the attribute value to our values array delimitedListArray[delimitedListArray.length] = listElement.attr(elementAttribute); } ); - + // Return value list by joining the array return(delimitedListArray.join(listDelimiter)); } - - -function outputWidgetList(forElement) { - return( $("input[@name='handler'], input[@name='guid']", forElement ).makeDelimitedList("value") ); -} - - -// widget panel collapsed/expanded state +// Read each widgets collapsed/expanded state from cookie and apply function widget_state(forWidget) { var thisWidgetState = $.cookie(forWidget); if (thisWidgetState == 'collapsed') { - forWidget = "#" + forWidget; - $(forWidget).find("div.collapsable_box_content").hide(); $(forWidget).find("a.toggle_box_contents").html('+'); $(forWidget).find("a.toggle_box_edit_panel").fadeOut('medium'); @@ -135,44 +111,39 @@ function widget_state(forWidget) { } -// toggle widget box contents +// Toggle widgets contents and save to a cookie var toggleContent = function(e) { - var targetContent = $('div.collapsable_box_content', this.parentNode.parentNode); - if (targetContent.css('display') == 'none') { - targetContent.slideDown(400); - $(this).html('-'); - $(this.parentNode).children("[class=toggle_box_edit_panel]").fadeIn('medium'); - - // set cookie for widget panel open-state - var thisWidgetName = $(this.parentNode.parentNode.parentNode).attr('id'); - $.cookie(thisWidgetName, 'expanded', { expires: 365 }); - - - } else { - targetContent.slideUp(400); - $(this).html('+'); - $(this.parentNode).children("[class=toggle_box_edit_panel]").fadeOut('medium'); - // make sure edit pane is closed - $(this.parentNode.parentNode).children("[class=collapsable_box_editpanel]").hide(); - - // set cookie for widget panel closed-state - var thisWidgetName = $(this.parentNode.parentNode.parentNode).attr('id'); - $.cookie(thisWidgetName, 'collapsed', { expires: 365 }); - } +var targetContent = $('div.collapsable_box_content', this.parentNode.parentNode); + if (targetContent.css('display') == 'none') { + targetContent.slideDown(400); + $(this).html('-'); + $(this.parentNode).children("[class=toggle_box_edit_panel]").fadeIn('medium'); + + // set cookie for widget panel open-state + var thisWidgetName = $(this.parentNode.parentNode.parentNode).attr('id'); + $.cookie(thisWidgetName, 'expanded', { expires: 365 }); + + } else { + targetContent.slideUp(400); + $(this).html('+'); + $(this.parentNode).children("[class=toggle_box_edit_panel]").fadeOut('medium'); + // make sure edit pane is closed + $(this.parentNode.parentNode).children("[class=collapsable_box_editpanel]").hide(); + + // set cookie for widget panel closed-state + var thisWidgetName = $(this.parentNode.parentNode.parentNode).attr('id'); + $.cookie(thisWidgetName, 'collapsed', { expires: 365 }); + } return false; }; - - - +// More info tooltip in widget gallery edit panel function widget_moreinfo() { $("img.more_info").hover(function(e) { - - var widgetdescription = $("input[@name='description']", this.parentNode.parentNode.parentNode ).attr('value'); - - $("body").append("

"+ widgetdescription +"

"); - + var widgetdescription = $("input[@name='description']", this.parentNode.parentNode.parentNode ).attr('value'); + $("body").append("

"+ widgetdescription +"

"); + if (e.pageX < 900) { $("#widget_moreinfo") .css("top",(e.pageY + 10) + "px") @@ -185,59 +156,56 @@ function widget_moreinfo() { .css("left",(e.pageX - 210) + "px") .fadeIn("medium"); } - - }, + }, function() { $("#widget_moreinfo").remove(); - }); - + }); + $("img.more_info").mousemove(function(e) { - //$("#widget_moreinfo") - // .css("top",(e.pageY + 10) + "px") - // .css("left",(e.pageX + 10) + "px"); + // action on mousemove }); - }; - +// COOKIES jQuery.cookie = function(name, value, options) { - if (typeof value != 'undefined') { // name and value given, set cookie - options = options || {}; - if (value === null) { - value = ''; - options.expires = -1; - } - var expires = ''; - if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { - var date; - if (typeof options.expires == 'number') { - date = new Date(); - date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); - } else { - date = options.expires; - } - expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE + if (typeof value != 'undefined') { // name and value given, set cookie + options = options || {}; + if (value === null) { + value = ''; + options.expires = -1; + } + var expires = ''; + if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { + var date; + if (typeof options.expires == 'number') { + date = new Date(); + date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); + } else { + date = options.expires; } - // CAUTION: Needed to parenthesize options.path and options.domain - // in the following expressions, otherwise they evaluate to undefined - // in the packed version for some reason... - var path = options.path ? '; path=' + (options.path) : ''; - var domain = options.domain ? '; domain=' + (options.domain) : ''; - var secure = options.secure ? '; secure' : ''; - document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); - } else { // only name given, get cookie - var cookieValue = null; - if (document.cookie && document.cookie != '') { - var cookies = document.cookie.split(';'); - for (var i = 0; i < cookies.length; i++) { - var cookie = jQuery.trim(cookies[i]); - // Does this cookie string begin with the name we want? - if (cookie.substring(0, name.length + 1) == (name + '=')) { - cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); - break; - } - } - } - return cookieValue; + expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE } + // CAUTION: Needed to parenthesize options.path and options.domain + // in the following expressions, otherwise they evaluate to undefined + // in the packed version for some reason. + var path = options.path ? '; path=' + (options.path) : ''; + var domain = options.domain ? '; domain=' + (options.domain) : ''; + var secure = options.secure ? '; secure' : ''; + document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); + + } else { // only name given, get cookie + var cookieValue = null; + if (document.cookie && document.cookie != '') { + var cookies = document.cookie.split(';'); + for (var i = 0; i < cookies.length; i++) { + var cookie = jQuery.trim(cookies[i]); + // Does this cookie string begin with the name we want? + if (cookie.substring(0, name.length + 1) == (name + '=')) { + cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); + break; + } + } + } + return cookieValue; + } }; -- cgit v1.2.3