fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [9054]


From: Torstein
Subject: [Fmsystem-commits] [9054]
Date: Wed, 28 Mar 2012 09:54:26 +0000

Revision: 9054
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=9054
Author:   vator
Date:     2012-03-28 09:54:26 +0000 (Wed, 28 Mar 2012)
Log Message:
-----------


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

Modified: trunk/controller/js/controller/custom_drag_drop.js
===================================================================
--- trunk/controller/js/controller/custom_drag_drop.js  2012-03-28 09:54:13 UTC 
(rev 9053)
+++ trunk/controller/js/controller/custom_drag_drop.js  2012-03-28 09:54:26 UTC 
(rev 9054)
@@ -3,39 +3,66 @@
 var next_elem;
 var prev_elem;
 var adj_y;
-var status_drag_group = false;
-var status_drag = false;
-var saveOrderForm;
 
 $(document).ready(function(){
 
-       // Drag row is clicked
-       $(".drag").mousedown(function(e){
-               placeholder = $(this).parent();
+       // On drag item row
+       $(".drag_item a").mousedown(function(e){
+               // Setting placeholder to the clicked row
+               placeholder = $(this).closest('li');
+               init_drag( placeholder, e );
+               start_drag("item");
                
-               adj_y = e.pageY - $(placeholder).position().top;
+               return false;
+       });
+                       
+       // On drag group
+       $(".drag_group h3 a").mousedown(function(e){
+               // Setting placeholder to the clicked row
+               placeholder = $(this).closest('li');
+               init_drag( placeholder, e );
+               start_drag("group");
                
-               next_elem = $(placeholder).next();
-               prev_elem = $(placeholder).prev();
-               drag_elem = $(placeholder).clone();
-                               
-               $(drag_elem).addClass("drag_elem");
-               $(drag_elem).removeClass("list_item");
-               
-               $(drag_elem).insertAfter(placeholder);
-               
-               $(drag_elem).css("left", $(placeholder).position().left + "px");
-               $(drag_elem).css("top",  $(placeholder).position().top + "px");
-                                                               
-               saveOrderForm = $(this).parents("form");
-               
-               start_drag();
+               return false;
        });
        
-       // Drag row is clicked
-       $(".drag_group h3").mousedown(function(e){
-               placeholder = $(this).parent();
+       // Saves group and item order
+       $("#frmSaveOrder").submit(function(e){
+               e.preventDefault();
+
+               var group_order_str = "";
+               var item_order_str = "";
+               $('ul.groups li.drag_group').each(function(){
+                       
+                       var group_order_nr = 
$(this).find("span.group_order_nr").text();
+                       var group_id = 
$(this).find("input[name=group_id]").val();
+                       
+                       group_order_str += group_id + ":" + group_order_nr + 
",";
+                       //alert("Group id: " + group_id  + ", " + "Order nr: " 
+ group_order_nr);
+                       
+                       $(this).find("ul.items li").each(function(){
+                               var item_order_nr = 
$(this).find("span.item_order_nr").text();
+                               var item_id = 
$(this).find("input[name=item_id]").val();
+                               
+                               item_order_str += item_id + ":" + item_order_nr 
+ ",";
+                               
+                               //alert("Item id: " + item_id  + ", " + "Item 
nr: " + item_order_nr);
+                       });
+               });
                
+               var requestUrl = 
"index.php?menuaction=controller.uicontrol_group.save_group_and_item_order";
+                       
+               $.ajax({
+                         type: 'POST',
+                         url: requestUrl + "&group_order=" + group_order_str + 
"&item_order=" + item_order_str,
+                         success: function() {
+                                 alert("Lagret");
+                         }
+               });
+       });
+});
+
+function init_drag(placeholder, e){
                adj_y = e.pageY - $(placeholder).position().top;
                
                next_elem = $(placeholder).next();
@@ -49,43 +76,12 @@
                
                $(drag_elem).css("left", $(placeholder).position().left + "px");
                $(drag_elem).css("top",  $(placeholder).position().top + "px");
-                                                                       
-               start_drag_group();
-       });
-});
+}
 
-//Delete a control item list
-$(".delete").live("click", function(){
-       var clickElem = $(this);
-       var clickRow = $(this).parent();
-       
-       var url = $(clickElem).attr("href");
-
-       // Sending request for deleting a control item list
-       $.ajax({
-               type: 'POST',
-               url: url,
-               success: function() {
-                       $(clickRow).fadeOut("slow");
-                       
-                       var next_row = $(clickRow).next();
-                       
-                       // Updating order numbers for rows below deleted row  
-                       while( $(next_row).length > 0){
-                               update_order_nr(next_row, "-");
-                               next_row = $(next_row).next();
-                       }               
-               }
-       });
-       
-       return false;
-});
-
-function start_drag(){
+function start_drag(drag_type){
        $(document).bind("mouseup", stop_drag);
 
        $(document).bind("mousemove", function(e){
-               
                var x = 0;
                var y = e.pageY - adj_y;
 
@@ -93,16 +89,14 @@
                $(drag_elem).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 ){
+               if( $(next_elem).length > 0 && e.pageY > 
$(next_elem).offset().top ){
                        $(placeholder).insertAfter(next_elem);
                        next_elem = $(placeholder).next();
                        prev_elem = $(placeholder).prev();
                                        
                        // Updating order number for drag element and previous 
element
-                       update_order_nr(placeholder, "+");
-                       update_order_nr(prev_elem, "-");
-                       
-                       status_drag = true;
+                       update_order_nr($(placeholder).find("span." + drag_type 
+ "_order_nr"), "+");
+                       update_order_nr($(prev_elem).find("span." + drag_type + 
"_order_nr"), "-");
                }
                // Move drag element over previous element
                else if( $(prev_elem).length > 0 && e.pageY < 
$(prev_elem).offset().top + $(prev_elem).height()/2 ){
@@ -111,11 +105,11 @@
                        next_elem = $(placeholder).next();
                        
                        // Updating order number for drag element and next 
element
-                       update_order_nr(placeholder, "-");
-                       update_order_nr(next_elem, "+");
-                       
-                       status_drag = true;
+                       update_order_nr($(placeholder).find("span." + drag_type 
+ "_order_nr"), "-");
+                       update_order_nr($(next_elem).find("span." + drag_type + 
"_order_nr"), "+");
                }
+               
+               return false;
        }); 
 }
 
@@ -125,116 +119,17 @@
 
        $(document).unbind("mousemove");
        $(document).unbind("mouseup");
-       
-       if(status_drag)
-       {
-               var this_submit_btn = 
$(saveOrderForm).find("input[type='submit']");
-               $(this_submit_btn).css({opacity: 1 });
-               $(this_submit_btn).removeAttr('disabled');
-       }
 }
 
-function start_drag_group(){
-       $(document).bind("mouseup", stop_drag_group);
-
-       $(document).bind("mousemove", function(e){
-               
-               var x = 0;
-               var y = e.pageY - adj_y;
-               
-               $(drag_elem).css("left", x + "px");
-               $(drag_elem).css("top", y + "px");
-               
-               // Move drag element over next element
-               if( $(next_elem).length > 0 && e.pageY > 
$(next_elem).offset().top ){
-                       $(placeholder).insertAfter(next_elem);
-                       next_elem = $(placeholder).next();
-                       prev_elem = $(placeholder).prev();
-                                       
-                       // Updating order number for drag element and previous 
element
-                       update_group_order_nr(placeholder, "+");
-                       update_group_order_nr(prev_elem, "-");
-                       
-                       status_drag_group = true; 
-               }
-               // Move drag element over previous element
-               else if( $(prev_elem).length > 0 && e.pageY < 
$(prev_elem).offset().top + $(prev_elem).height()/2 ){
-                       
-                       $(placeholder).insertBefore(prev_elem);
-                       prev_elem = $(placeholder).prev();
-                       next_elem = $(placeholder).next();
-                       
-                       // Updating order number for drag element and next 
element
-                       update_group_order_nr(placeholder, "-");
-                       update_group_order_nr(next_elem, "+");
-                       
-                       status_drag_group = true;
-               }
-       }); 
-}
-
-//Release binding for mouse events
-function stop_drag_group(){
-       $(drag_elem).remove();
-       
-       if(status_drag_group){
-               $('li.drag_group').each(function() {
-                       var group_order_nr = 
$(this).find("span.group_order_nr").text();
-                       var control_group_id = 
$(this).find("input[name='control_group_id']").val();
-                       var control_id = $("#control_id").val();
-                       
-                       var requestUrl = 
"index.php?menuaction=controller.uicontrol_group.save_group_order";
-                       
-                       $.ajax({
-                                 type: 'POST',
-                                 url: requestUrl + "&control_id=" + control_id 
+ "&control_group_id=" + control_group_id + "&group_order_nr=" + group_order_nr,
-                                 success: function() {
-                                         
-                                 }
-                       });     
-               
-               });     
-       }
-       
-       
-       $(document).unbind("mousemove");
-       $(document).unbind("mouseup");
-}
-
 // Updates order number for hidden field and number in front of row
 function update_order_nr(element, sign){
-       var hidden_order_nr = $(element).find("input");
-       var order_value = $(hidden_order_nr).attr("value");
-
-       var span_order_nr = $(element).find("span.order_nr");
+       var order_nr = $(element).text();
        
-       var order_nr = order_value.substring( 0, order_value.indexOf(":") );
-       
        if(sign == "+")
                var updated_order_nr = parseInt(order_nr) + 1;
        else
                var updated_order_nr = parseInt(order_nr) - 1;
        
-       var id = order_value.substring( order_value.indexOf(":")+1,  
order_value.length );
-       updated_order_value = updated_order_nr + ":" + id;
-       
-       // Updating order number for hidden field       
-       $(hidden_order_nr).val(updated_order_value);
-       
        // Updating order number in front of row
-       $(span_order_nr).text(updated_order_nr);
-}
-
-//Updates order number for hidden field and number in front of row
-function update_group_order_nr(element, sign){
-       var span_order_nr = $(element).find("span.group_order_nr");
-       var order_nr = $(span_order_nr).text();
-       
-       if(sign == "+")
-               var updated_order_nr = parseInt(order_nr) + 1;
-       else
-               var updated_order_nr = parseInt(order_nr) - 1;
-               
-       // Updating order number in front of row
-       $(span_order_nr).text(updated_order_nr);
+       $(element).text(updated_order_nr);
 }
\ No newline at end of file




reply via email to

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