]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
Improve plugin_admin.js to support multiple ordered rows
authorArthurHoaro <arthur@hoa.ro>
Sat, 14 Jan 2017 14:53:39 +0000 (15:53 +0100)
committerArthurHoaro <arthur@hoa.ro>
Mon, 27 Feb 2017 19:01:54 +0000 (20:01 +0100)
inc/plugin_admin.js

index 134ffb337607d84c3bc7bfa0e77db7512fd27a27..055ac285a966c4203d588ee0e0f4a39537b3f1e3 100644 (file)
@@ -22,14 +22,22 @@ function changePos(elem, toPos)
 function changeOrder(pos, move)
 {
     var newpos = parseInt(pos) + move;
-    var line = document.querySelector('[data-order="'+ pos +'"]');
-    var changeline = document.querySelector('[data-order="'+ newpos +'"]');
-    var parent = changeline.parentNode;
+    var lines = document.querySelectorAll('[data-order="'+ pos +'"]');
+    var changelines = document.querySelectorAll('[data-order="'+ newpos +'"]');
+
+    // If we go down reverse lines to preserve the rows order
+    if (move > 0) {
+        lines = [].slice.call(lines).reverse();
+    }
+
+    for (var i = 0 ; i < lines.length ; i++) {
+        var parent = changelines[0].parentNode;
+        changePos(lines[i], newpos);
+        changePos(changelines[i], parseInt(pos));
+        var changeItem = move < 0 ? changelines[0] : changelines[changelines.length - 1].nextSibling;
+        parent.insertBefore(lines[i], changeItem);
+    }
 
-    changePos(line, newpos);
-    changePos(changeline, parseInt(pos));
-    var changeItem = move < 0 ? changeline : changeline.nextSibling;
-    parent.insertBefore(line, changeItem);
 }
 
 /**