fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [10645] Controller: Fixed small bug that occurred whe


From: Torstein
Subject: [Fmsystem-commits] [10645] Controller: Fixed small bug that occurred when elements were dragged rapidly
Date: Mon, 07 Jan 2013 08:33:16 +0000

Revision: 10645
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=10645
Author:   vator
Date:     2013-01-07 08:33:15 +0000 (Mon, 07 Jan 2013)
Log Message:
-----------
Controller: Fixed small bug that occurred when elements were dragged rapidly

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

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

Deleted: trunk/controller/js/controller/custom_drag_drop.js
===================================================================
--- trunk/controller/js/controller/custom_drag_drop.js  2013-01-06 19:25:15 UTC 
(rev 10644)
+++ trunk/controller/js/controller/custom_drag_drop.js  2013-01-07 08:33:15 UTC 
(rev 10645)
@@ -1,147 +0,0 @@
-var placeholder;
-var drag_elem;
-var next_elem;
-var prev_elem;
-var adj_y;
-
-$(document).ready(function(){
-
-       // 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");
-               
-               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");
-               
-               return false;
-       });
-       
-       // Saves group and item order
-       $("#saveOrder").click(function(e){
-               e.preventDefault();
-
-               var thisForm = $(this).closest("form");
-               var submitBtn = $(this);
-               var control_id = $("#control_id").val();
-               
-               var group_order_arr = new Array();
-               var item_order_arr = new Array();
-               $('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_arr.push( group_id + ":" + 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_arr.push( item_id + ":" + 
item_order_nr );
-                       });
-               });
-       
-               var requestUrl = 
"index.php?menuaction=controller.uicontrol_group.save_group_and_item_order";
-               
-               $(submitBtn).find(".text").text("Lagrer");
-               
-               $(submitBtn).find(".text").append("<img id='loading' 
src='controller/images/loading.gif' />");
-               
-               // Saves order for groups and items to db
-               $.ajax({
-                         type: 'POST',
-                         url: requestUrl + "&control_id=" + control_id + 
"&group_order=" + group_order_arr.toString() + "&item_order=" + 
item_order_arr.toString(),
-                         success: function() {
-                                 
-                                 $(submitBtn).find("img").remove();
-                                       $(submitBtn).find(".text").text("Lagre 
rekkefølge");
-                                 
-                                 
-                                 
-                         }
-               });
-       });
-});
-
-// Initialises drag. Sets placeholder, next, previous and cloned drag row. 
-function init_drag(placeholder, e){
-               adj_y = e.pageY - $(placeholder).position().top;
-               
-               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");
-}
-
-function start_drag(drag_type){
-       $(document).bind("mouseup", stop_drag);
-
-       $(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_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 ){
-                       $(placeholder).insertBefore(prev_elem);
-                       prev_elem = $(placeholder).prev();
-                       next_elem = $(placeholder).next();
-                       
-                       // Updating order number for drag element and next 
element
-                       update_order_nr($(placeholder).find("span." + drag_type 
+ "_order_nr"), "-");
-                       update_order_nr($(next_elem).find("span." + drag_type + 
"_order_nr"), "+");
-               }
-               
-               return false;
-       }); 
-}
-
-// Release binding for mouse events
-function stop_drag(){
-       $(drag_elem).remove();
-
-       $(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 order_nr = $(element).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
-       $(element).text(updated_order_nr);
-}
\ No newline at end of file

Copied: trunk/controller/js/controller/custom_drag_drop.js (from rev 10257, 
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  2013-01-07 08:33:15 UTC 
(rev 10645)
@@ -0,0 +1,147 @@
+var placeholder;
+var drag_elem;
+var next_elem;
+var prev_elem;
+var adj_y;
+
+$(document).ready(function(){
+
+       // 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");
+               
+               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");
+               
+               return false;
+       });
+       
+       // Saves group and item order
+       $("#saveOrder").click(function(e){
+               e.preventDefault();
+
+               var thisForm = $(this).closest("form");
+               var submitBtn = $(this);
+               var control_id = $("#control_id").val();
+               
+               var group_order_arr = new Array();
+               var item_order_arr = new Array();
+               $('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_arr.push( group_id + ":" + 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_arr.push( item_id + ":" + 
item_order_nr );
+                       });
+               });
+       
+               var requestUrl = 
"index.php?menuaction=controller.uicontrol_group.save_group_and_item_order";
+               
+               $(submitBtn).find(".text").text("Lagrer");
+               
+               $(submitBtn).find(".text").append("<img id='loading' 
src='controller/images/loading.gif' />");
+               
+               // Saves order for groups and items to db
+               $.ajax({
+                         type: 'POST',
+                         url: requestUrl + "&control_id=" + control_id + 
"&group_order=" + group_order_arr.toString() + "&item_order=" + 
item_order_arr.toString(),
+                         success: function() {
+                                 
+                                 $(submitBtn).find("img").remove();
+                                       $(submitBtn).find(".text").text("Lagre 
rekkefølge");
+                                 
+                                 
+                                 
+                         }
+               });
+       });
+});
+
+// Initialises drag. Sets placeholder, next, previous and cloned drag row. 
+function init_drag(placeholder, e){
+               adj_y = e.pageY - $(placeholder).position().top;
+               
+               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");
+}
+
+function start_drag(drag_type){
+       $(document).bind("mouseup", stop_drag);
+
+       $(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_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 ){
+                       $(placeholder).insertBefore(prev_elem);
+                       prev_elem = $(placeholder).prev();
+                       next_elem = $(placeholder).next();
+                       
+                       // Updating order number for drag element and next 
element
+                       update_order_nr($(placeholder).find("span." + drag_type 
+ "_order_nr"), "-");
+                       update_order_nr($(next_elem).find("span." + drag_type + 
"_order_nr"), "+");
+               }
+               
+               return false;
+       }); 
+}
+
+// Release binding for mouse events
+function stop_drag(){
+       $(drag_elem).remove();
+
+       $(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 order_nr = $(element).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
+       $(element).text(updated_order_nr);
+}
\ No newline at end of file


Property changes on: trunk/controller/js/controller/custom_drag_drop.js
___________________________________________________________________
Added: portico
   + svn://svn.savannah.nongnu.org/fmsystem/trunk
Added: pe_html
   + http://svn.savannah.nongnu.org/svn/fmsystem/trunk




reply via email to

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