diff options
Diffstat (limited to 'javascript')
-rw-r--r-- | javascript/initialise_elgg.js | 94 |
1 files changed, 81 insertions, 13 deletions
diff --git a/javascript/initialise_elgg.js b/javascript/initialise_elgg.js index 0927eab78..15aa40396 100644 --- a/javascript/initialise_elgg.js +++ b/javascript/initialise_elgg.js @@ -1,5 +1,3 @@ - - $(document).ready(function () { // close all drawer elements @@ -25,21 +23,26 @@ $(document).ready(function () { $('a.toggle_customise_edit_panel').click(function () { $('div#customise_editpanel').slideToggle("fast"); return false; - }); - - // temp. function to close panel on save - $('input.submit_button').click(function () { - $('div#customise_editpanel').slideToggle("fast"); - return false; - }); + }); // click function for customise panel - remove widget $('img.remove_me').click(function () { - $(this.parentNode.parentNode.parentNode.parentNode.parentNode).fadeOut("medium"); + //$(this.parentNode.parentNode.parentNode.parentNode.parentNode).fadeOut("medium"); + $(this.parentNode.parentNode.parentNode.parentNode.parentNode).fadeOut("medium", function () { + $(this).remove(); + var widgetNameMain = ($('#main_widgets').text()).replace(/[\n]/g, ','); + var widgetNameRight = ($('#rightsidebar_widgets').text()).replace(/[\n]/g, ','); + document.getElementById('debugField1').value = widgetNameMain; + document.getElementById('debugField2').value = widgetNameRight; + }); + return false; }); - - var els = ['#widget_picker_gallery', '#main_widgets', '#rightsidebar_widgets']; + + // draggable, droppable, and sortable elements + + // sortable widgets + var els = ['#main_widgets', '#rightsidebar_widgets']; var $els = $(els.toString()); $els.sortable({ @@ -50,8 +53,73 @@ $(document).ready(function () { opacity: 0.8, appendTo: 'body', placeholder: 'placeholder', - connectWith: els + connectWith: els, + start:function(e,ui) { // prevent droppable drop function from running when resorting main lists + $('#rightsidebar_widgets').droppable("disable"); + $('#main_widgets').droppable("disable"); + }, + stop: function(e,ui) { + $(this).sortable( "refresh" ); + + var widgetNameMain = ($('#main_widgets').text()).replace(/[\n]/g, ','); + var widgetNameRight = ($('#rightsidebar_widgets').text()).replace(/[\n]/g, ','); + //alert('widgetName = ' +widgetName); + document.getElementById('debugField1').value = widgetNameMain; + document.getElementById('debugField2').value = widgetNameRight; + } + }); + + // define draggable widgets from gallery + $("#widget_picker_gallery .draggable_widget").draggable({ + helper: 'clone', + containment: '#customise_editpanel', + start: function(ev, ui) { + $('#rightsidebar_widgets').droppable("enable"); + $('#main_widgets').droppable("enable"); + } }); + + // define what happens when new widgets are dragged from the gallery + $("#rightsidebar_widgets").droppable({ + accept: ".draggable_widget", + hoverClass: 'droppable-hover', + drop: function(ev, ui) { + $(this).append($(ui.draggable).clone() ); + $(this).droppable("disable"); + $('img.remove_me').click(function () { + $(this.parentNode.parentNode.parentNode.parentNode.parentNode).fadeOut("medium", function () { + $(this).remove(); + var widgetNameMain = ($('#rightsidebar_widgets').text()).replace(/[\n]/g, ','); + document.getElementById('debugField2').value = widgetNameMain; + }); + return false; + }); + $els.sortable( "refresh" ); + var widgetNameRight = ($('#rightsidebar_widgets').text()).replace(/[\n]/g, ','); + document.getElementById('debugField2').value = widgetNameRight; + } + }); + $("#main_widgets").droppable({ + accept: ".draggable_widget", + hoverClass: 'droppable-hover', + drop: function(ev, ui) { + $(this).append($(ui.draggable).clone() ); + $(this).droppable("disable"); + $('img.remove_me').click(function () { + $(this.parentNode.parentNode.parentNode.parentNode.parentNode).fadeOut("medium", function () { + $(this).remove(); + var widgetNameMain = ($('#main_widgets').text()).replace(/[\n]/g, ','); + document.getElementById('debugField1').value = widgetNameMain; + }); + return false; + + }); + $els.sortable( "refresh" ); + var widgetNameMain = ($('#main_widgets').text()).replace(/[\n]/g, ','); + document.getElementById('debugField1').value = widgetNameMain; + } + }); + }); |