fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [7875]


From: Torstein
Subject: [Fmsystem-commits] [7875]
Date: Thu, 13 Oct 2011 11:20:24 +0000

Revision: 7875
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=7875
Author:   vator
Date:     2011-10-13 11:20:06 +0000 (Thu, 13 Oct 2011)
Log Message:
-----------


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

Modified: trunk/controller/js/controller/ajax.js
===================================================================
--- trunk/controller/js/controller/ajax.js      2011-10-13 08:55:21 UTC (rev 
7874)
+++ trunk/controller/js/controller/ajax.js      2011-10-13 11:20:06 UTC (rev 
7875)
@@ -1,5 +1,6 @@
 $(document).ready(function(){
 
+       // Saves order of control items for a group
        $(".frm_save_order").submit(function(e){
                e.preventDefault();
                var thisForm = $(this);
@@ -7,6 +8,7 @@
                var control_id = $("#control_id").val();
                var control_group_id = 
$(this).find("input[name='control_group_id']").val();
                var order_nr_array;
+               var requestUrl = $(thisForm).attr("action"); 
                
                $(this).find("input[name='order_nr[]']").each(function() {
                        order_nr_array += $(this).val() + ",";
@@ -14,11 +16,14 @@
 
                $.ajax({
                          type: 'POST',
-                         url: 
"index.php?menuaction=controller.uicontrol_item.save_item_order&control_id=" + 
control_id + "&" + $(this).serialize(),
+                         url: requestUrl + "&control_id=" + control_id + "&" + 
$(this).serialize(),
                          success: function() {
+                                 
+                                 // Changes text on save button
                                  var this_submit_btn = 
$(thisForm).find("input[type='submit']");
                                  $(this_submit_btn).val("Lagret");
                                  
+                                 // Changes text on save button back to 
original
                                  window.setTimeout(function() {
                                          $(this_submit_btn).val('Lagre 
rekkefølge');
                                         }, 1000);

Modified: trunk/controller/js/controller/custom_drag_drop.js
===================================================================
--- trunk/controller/js/controller/custom_drag_drop.js  2011-10-13 08:55:21 UTC 
(rev 7874)
+++ trunk/controller/js/controller/custom_drag_drop.js  2011-10-13 11:20:06 UTC 
(rev 7875)
@@ -1,33 +1,60 @@
+var placeholder;
 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);
+       // Drag row is clicked
+       $(".drag").mousedown(function(e){
+               placeholder = $(this).parent();
                
-               adj_y = e.pageY - $(drag_elem).position().top;
+               adj_y = e.pageY - $(placeholder).position().top;
                
-               next_elem = $(drag_elem).next();
-               prev_elem = $(drag_elem).prev();
-               illusion = $(drag_elem).clone();
+               next_elem = $(placeholder).next();
+               prev_elem = $(placeholder).prev();
+               drag_elem = $(placeholder).clone();
                                
-               $(illusion).addClass("drag");
-               $(illusion).removeClass("list_item");
+               $(drag_elem).addClass("drag_elem");
+               $(drag_elem).removeClass("list_item");
                
-               $(illusion).insertAfter(drag_elem);
+               $(drag_elem).insertAfter(placeholder);
                
-               $(illusion).css("left", $(drag_elem).position().left + "px");
-               $(illusion).css("top",  $(drag_elem).position().top + "px");
+               $(drag_elem).css("left", $(placeholder).position().left + "px");
+               $(drag_elem).css("top",  $(placeholder).position().top + "px");
                                                                        
                start_drag();
        });
+       
+       // Delete a control item list 
+       $(".delete").click(function(){
+               var thisElem = $(this);
+               var thisRow = $(this).parent();
+               
+               var url = $(thisElem).attr("href");
+       
+               // Sending request for deleting a control item list
+               $.ajax({
+                       type: 'POST',
+                       url: url,
+                       success: function() {
+                               $(thisRow).fadeOut("slow");
+                               
+                               var next_row = $(thisRow).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(){
        $(document).bind("mouseup", stop_drag);
 
@@ -36,92 +63,60 @@
                var x = 0;
                var y = e.pageY - adj_y;
 
-               $(illusion).css("left", x + "px");
-               $(illusion).css("top", y + "px");
+               $(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 + $(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();
+                       $(placeholder).insertAfter(next_elem);
+                       next_elem = $(placeholder).next();
+                       prev_elem = $(placeholder).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);
+                       // Updating order number for drag element and previous 
element
+                       update_order_nr(placeholder, "+");
+                       update_order_nr(prev_elem, "-");
                }
                // 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);
+                       $(placeholder).insertBefore(prev_elem);
+                       prev_elem = $(placeholder).prev();
+                       next_elem = $(placeholder).next();
                        
-                       /* ===========  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);
+                       // Updating order number for drag element and next 
element
+                       update_order_nr(placeholder, "-");
+                       update_order_nr(next_elem, "+");
                }
        }); 
 }
 
+// Release binding for mouse events
 function stop_drag(){
-       $(illusion).remove();
+       $(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 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 = 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);
 }
\ No newline at end of file




reply via email to

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