[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [9054],
Torstein <=