fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [7865]


From: Torstein
Subject: [Fmsystem-commits] [7865]
Date: Wed, 12 Oct 2011 10:23:31 +0000

Revision: 7865
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=7865
Author:   vator
Date:     2011-10-12 10:23:31 +0000 (Wed, 12 Oct 2011)
Log Message:
-----------


Modified Paths:
--------------
    trunk/controller/js/controller/custom_ui.js

Added Paths:
-----------
    trunk/controller/js/controller/ajax.js
    trunk/controller/js/controller/custom_drag_drop.js
    trunk/controller/js/controller/yui_drag_drop.js

Removed Paths:
-------------
    trunk/controller/js/controller/custom_drag_drop.js

Added: trunk/controller/js/controller/ajax.js
===================================================================
--- trunk/controller/js/controller/ajax.js                              (rev 0)
+++ trunk/controller/js/controller/ajax.js      2011-10-12 10:23:31 UTC (rev 
7865)
@@ -0,0 +1,22 @@
+$(document).ready(function(){
+
+       $(".save_order").submit(function(e){
+               e.preventDefault();
+               
+               var control_id = $("#control_id").val();
+               var control_group_id = 
$(this).find("input[name='control_group_id']").val();
+               var order_nr_array;
+               
+               $(this).find("input[name='order_nr[]']").each(function() {
+                       order_nr_array += $(this).val() + ",";
+               });
+
+               $.ajax({
+                         type: 'POST',
+                         url: 
"index.php?menuaction=controller.uicontrol_item.save_item_order&control_id=" + 
control_id + "&" + $(this).serialize(),
+                         success: function( data ) {
+                                               
+                               }
+                       });     
+       });
+});
\ No newline at end of file


Property changes on: trunk/controller/js/controller/ajax.js
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Deleted: trunk/controller/js/controller/custom_drag_drop.js
===================================================================
--- trunk/controller/js/controller/custom_drag_drop.js  2011-10-12 10:22:56 UTC 
(rev 7864)
+++ trunk/controller/js/controller/custom_drag_drop.js  2011-10-12 10:23:31 UTC 
(rev 7865)
@@ -1,96 +0,0 @@
-YUI().use('dd-constrain', 'dd-proxy', 'dd-drop', function(Y) {
-    //Listen for all drop:over events
-    Y.DD.DDM.on('drop:over', function(e) {
-        //Get a reference to our drag and drop nodes
-        var drag = e.drag.get('node'),
-            drop = e.drop.get('node');
-        
-        //Are we dropping on a li node?
-        if (drop.get('tagName').toLowerCase() === 'li') {
-            //Are we not going up?
-            if (!goingUp) {
-                drop = drop.get('nextSibling');
-            }
-            //Add the node to this list
-            e.drop.get('node').get('parentNode').insertBefore(drag, drop);
-            //Resize this nodes shim, so we can drop on it later.
-            e.drop.sizeShim();
-        }
-    });
-    //Listen for all drag:drag events
-    Y.DD.DDM.on('drag:drag', function(e) {
-        //Get the last y point
-        var y = e.target.lastXY[1];
-        //is it greater than the lastY var?
-        if (y < lastY) {
-            //We are going up
-            goingUp = true;
-        } else {
-            //We are going down.
-            goingUp = false;
-        }
-        //Cache for next check
-        lastY = y;
-    });
-    //Listen for all drag:start events
-    Y.DD.DDM.on('drag:start', function(e) {
-        //Get our drag object
-        var drag = e.target;
-        //Set some styles here
-        drag.get('node').setStyle('opacity', '.25');
-        drag.get('dragNode').set('innerHTML', 
drag.get('node').get('innerHTML'));
-        drag.get('dragNode').setStyles({
-            opacity: '.5',
-            borderColor: drag.get('node').getStyle('borderColor'),
-            backgroundColor: drag.get('node').getStyle('backgroundColor')
-        });
-    });
-    //Listen for a drag:end events
-    Y.DD.DDM.on('drag:end', function(e) {
-        var drag = e.target;
-        //Put our styles back
-        drag.get('node').setStyles({
-            visibility: '',
-            opacity: '1'
-        });
-    });
-    //Listen for all drag:drophit events
-    Y.DD.DDM.on('drag:drophit', function(e) {
-        var drop = e.drop.get('node'),
-            drag = e.drag.get('node');
-
-        //if we are not on an li, we must have been dropped on a ul
-        if (drop.get('tagName').toLowerCase() !== 'li') {
-            if (!drop.contains(drag)) {
-                drop.appendChild(drag);
-            }
-        }
-    });
-    
-    //Static Vars
-    var goingUp = false, lastY = 0;
-
-    //Get the list of li's in the lists and make them draggable
-    var lis = Y.Node.all('#play ul li');
-    lis.each(function(v, k) {
-        var dd = new Y.DD.Drag({
-            node: v,
-            target: {
-                padding: '0 0 0 20'
-            }
-        }).plug(Y.Plugin.DDProxy, {
-            moveOnEnd: false
-        }).plug(Y.Plugin.DDConstrained, {
-            constrain2node: '#play'
-        });
-    });
-
-    //Create simple targets for the 2 lists.
-    var uls = Y.Node.all('#play ul');
-    uls.each(function(v, k) {
-        var tar = new Y.DD.Drop({
-            node: v
-        });
-    });
-    
-});
\ No newline at end of file

Added: trunk/controller/js/controller/custom_drag_drop.js
===================================================================
--- trunk/controller/js/controller/custom_drag_drop.js                          
(rev 0)
+++ trunk/controller/js/controller/custom_drag_drop.js  2011-10-12 10:23:31 UTC 
(rev 7865)
@@ -0,0 +1,127 @@
+var drag_elem;
+var illusion;
+var next_elem;
+var prev_elem;
+var adj_y;
+
+$(document).ready(function(){
+
+       $(".list_item").mousedown(function(e){
+               drag_elem = $(this);
+               
+               adj_y = e.pageY - $(drag_elem).position().top;
+               
+               next_elem = $(drag_elem).next();
+               prev_elem = $(drag_elem).prev();
+               illusion = $(drag_elem).clone();
+                               
+               $(illusion).addClass("drag");
+               $(illusion).removeClass("list_item");
+               
+               $(illusion).insertAfter(drag_elem);
+               
+               $(illusion).css("left", $(drag_elem).position().left + "px");
+               $(illusion).css("top",  $(drag_elem).position().top + "px");
+                                                                       
+               start_drag();
+       });
+});
+
+
+function start_drag(){
+       $(document).bind("mouseup", stop_drag);
+
+       $(document).bind("mousemove", function(e){
+               
+               var x = 0;
+               var y = e.pageY - adj_y;
+
+               $(illusion).css("left", x + "px");
+               $(illusion).css("top", y + "px");
+               
+               // Move drag element over next element
+               if( $(next_elem).length > 0 && e.pageY > 
$(next_elem).offset().top + $(next_elem).height()/2 ){
+                       $(drag_elem).insertAfter(next_elem);
+                       
+                       /* ===========  UPDATE ORDERNR FOR DRAG ELEMENT 
============ */
+                       
+                       var hidden_order_nr = $(drag_elem).find("input");
+                       var order_value = $(hidden_order_nr).attr("value");
+                       
+                       var span_order_nr = $(drag_elem).find("span.order_nr");
+                       
+                       var order_nr = order_value.substring( 0, 
order_value.indexOf(":") );
+                       var updated_order_nr = parseInt(order_nr) + 1;
+                       
+                       var id = order_value.substring( 
order_value.indexOf(":")+1,  order_value.length );
+                       var updated_order_value = updated_order_nr + ":" + id;
+                       
+                       $(hidden_order_nr).val(updated_order_value);
+                       $(span_order_nr).text(updated_order_nr);
+                                               
+                       /* ===========  UPDATE ORDERNR FOR PREVIOUS ELEMENT 
============ */     
+               
+                       next_elem = $(drag_elem).next();
+                       prev_elem = $(drag_elem).prev();
+                                       
+                       hidden_order_nr = $(prev_elem).find("input");
+                       tag = $(hidden_order_nr).attr("value");
+                       
+                       span_order_nr = $(prev_elem).find("span.order_nr");
+                       
+                       order_nr = tag.substring( 0, tag.indexOf(":") );
+                       updated_order_nr = parseInt(order_nr) - 1;
+                       
+                       id = tag.substring( tag.indexOf(":")+1,  tag.length );
+                       updated_order_value = updated_order_nr + ":" + id;
+                       
+                       $(hidden_order_nr).val(updated_order_value);
+                       $(span_order_nr).text(updated_order_nr);
+               }
+               // Move drag element over previous element
+               else if( $(prev_elem).length > 0 && e.pageY < 
$(prev_elem).offset().top + $(prev_elem).height()/2 ){
+                       $(drag_elem).insertBefore(prev_elem);
+                       
+                       /* ===========  UPDATE ORDERNR FOR DRAG ELEMENT 
============ */         
+                       var hidden_order_nr = $(drag_elem).find("input");
+                       var tag = $(hidden_order_nr).attr("value");
+                       
+                       var span_order_nr = $(drag_elem).find("span.order_nr");
+                       
+                       var order_nr = tag.substring( 0, tag.indexOf(":") );
+                       var updated_order_nr = parseInt(order_nr) - 1;
+                       
+                       var id = tag.substring( tag.indexOf(":")+1,  tag.length 
);
+                       var updated_order_value = updated_order_nr + ":" + id;
+                       
+                       $(hidden_order_nr).val(updated_order_value);
+                       $(span_order_nr).text(updated_order_nr);
+                       
+                       /* ===========  UPDATE ORDERNR FOR NEXT ELEMENT  
============ */
+                       
+                       prev_elem = $(drag_elem).prev();
+                       next_elem = $(drag_elem).next();
+                       
+                       hidden_order_nr = $(next_elem).find("input");
+                       tag = $(hidden_order_nr).attr("value");
+                       
+                       span_order_nr = $(next_elem).find("span.order_nr");
+                       
+                       order_nr = tag.substring( 0, tag.indexOf(":") );
+                       updated_order_nr = parseInt(order_nr) + 1;
+                       
+                       id = tag.substring( tag.indexOf(":")+1,  tag.length );
+                       updated_order_value = updated_order_nr + ":" + id;
+                       
+                       $(hidden_order_nr).val(updated_order_value);
+                       $(span_order_nr).text(updated_order_nr);
+               }
+       }); 
+}
+
+function stop_drag(){
+       $(illusion).remove();
+
+       $(document).unbind("mousemove");
+       $(document).unbind("mouseup");
+}
\ No newline at end of file

Modified: trunk/controller/js/controller/custom_ui.js
===================================================================
--- trunk/controller/js/controller/custom_ui.js 2011-10-12 10:22:56 UTC (rev 
7864)
+++ trunk/controller/js/controller/custom_ui.js 2011-10-12 10:23:31 UTC (rev 
7865)
@@ -4,6 +4,7 @@
        $("ul.control_items ul:first").find("li ul").slideDown("slow");
        $("ul.control_items ul:first").addClass('active');
 
+       /* 
=============================================================================== 
*/
        
        $(".expand_list h4").click(function(){
                if( $(this).parent().parent().hasClass('active')){
@@ -17,6 +18,8 @@
                }
        });
        
+       /* 
=============================================================================== 
*/
+       
        $(".expand_all").click(function(){
                $(".expand_all").css("background", 
"url('controller/images/bg_expand_blue.png') no-repeat");
                $(".expand_all").css("color", "#FFFFFF");
@@ -47,8 +50,8 @@
                var control_group_id = chbox_id.substring( 
chbox_id.indexOf("_")+1, chbox_id.indexOf(":") );
                var control_item_id = chbox_id.substring( 
chbox_id.indexOf(":")+1,  chbox_id.length );
                
-               if ($("#hid_"+control_item_id).length > 0){
-                       $("#hid_"+control_item_id).remove();
+               if ($("#hid_" + control_item_id).length > 0){
+                       $("#hid_" + control_item_id).remove();
                }else{
                        $("#frm_control_items").prepend("<input type='hidden' 
id=hid_" + control_item_id +  " name='control_tag_ids[]' value=" + 
control_group_id + ":" +  control_item_id + " />");
                }

Copied: trunk/controller/js/controller/yui_drag_drop.js (from rev 7836, 
trunk/controller/js/controller/custom_drag_drop.js)
===================================================================
--- trunk/controller/js/controller/yui_drag_drop.js                             
(rev 0)
+++ trunk/controller/js/controller/yui_drag_drop.js     2011-10-12 10:23:31 UTC 
(rev 7865)
@@ -0,0 +1,96 @@
+YUI().use('dd-constrain', 'dd-proxy', 'dd-drop', function(Y) {
+    //Listen for all drop:over events
+    Y.DD.DDM.on('drop:over', function(e) {
+        //Get a reference to our drag and drop nodes
+        var drag = e.drag.get('node'),
+            drop = e.drop.get('node');
+        
+        //Are we dropping on a li node?
+        if (drop.get('tagName').toLowerCase() === 'li') {
+            //Are we not going up?
+            if (!goingUp) {
+                drop = drop.get('nextSibling');
+            }
+            //Add the node to this list
+            e.drop.get('node').get('parentNode').insertBefore(drag, drop);
+            //Resize this nodes shim, so we can drop on it later.
+            e.drop.sizeShim();
+        }
+    });
+    //Listen for all drag:drag events
+    Y.DD.DDM.on('drag:drag', function(e) {
+        //Get the last y point
+        var y = e.target.lastXY[1];
+        //is it greater than the lastY var?
+        if (y < lastY) {
+            //We are going up
+            goingUp = true;
+        } else {
+            //We are going down.
+            goingUp = false;
+        }
+        //Cache for next check
+        lastY = y;
+    });
+    //Listen for all drag:start events
+    Y.DD.DDM.on('drag:start', function(e) {
+        //Get our drag object
+        var drag = e.target;
+        //Set some styles here
+        drag.get('node').setStyle('opacity', '.25');
+        drag.get('dragNode').set('innerHTML', 
drag.get('node').get('innerHTML'));
+        drag.get('dragNode').setStyles({
+            opacity: '.5',
+            borderColor: drag.get('node').getStyle('borderColor'),
+            backgroundColor: drag.get('node').getStyle('backgroundColor')
+        });
+    });
+    //Listen for a drag:end events
+    Y.DD.DDM.on('drag:end', function(e) {
+        var drag = e.target;
+        //Put our styles back
+        drag.get('node').setStyles({
+            visibility: '',
+            opacity: '1'
+        });
+    });
+    //Listen for all drag:drophit events
+    Y.DD.DDM.on('drag:drophit', function(e) {
+        var drop = e.drop.get('node'),
+            drag = e.drag.get('node');
+
+        //if we are not on an li, we must have been dropped on a ul
+        if (drop.get('tagName').toLowerCase() !== 'li') {
+            if (!drop.contains(drag)) {
+                drop.appendChild(drag);
+            }
+        }
+    });
+    
+    //Static Vars
+    var goingUp = false, lastY = 0;
+
+    //Get the list of li's in the lists and make them draggable
+    var lis = Y.Node.all('#play ul li');
+    lis.each(function(v, k) {
+        var dd = new Y.DD.Drag({
+            node: v,
+            target: {
+                padding: '0 0 0 20'
+            }
+        }).plug(Y.Plugin.DDProxy, {
+            moveOnEnd: false
+        }).plug(Y.Plugin.DDConstrained, {
+            constrain2node: '#play'
+        });
+    });
+
+    //Create simple targets for the 2 lists.
+    var uls = Y.Node.all('#play ul');
+    uls.each(function(v, k) {
+        var tar = new Y.DD.Drop({
+            node: v
+        });
+    });
+    
+});
\ No newline at end of file


Property changes on: trunk/controller/js/controller/yui_drag_drop.js
___________________________________________________________________
Added: svn:mime-type
   + text/plain




reply via email to

[Prev in Thread] Current Thread [Next in Thread]