]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tpl/vintage/pluginsadmin.html
Merge tag 'v0.10.4' into stable
[github/shaarli/Shaarli.git] / tpl / vintage / pluginsadmin.html
index ead1734e850980096cfc59c5143ca1591bd4ad92..63b45cac5d13b7719fe71a4684ca229192be68a0 100644 (file)
 </div>
 {include="page.footer"}
 
-<script src="inc/plugin_admin.js#"></script>
+<script>
+  /**
+   * Change the position counter of a row.
+   *
+   * @param elem  Element Node to change.
+   * @param toPos int     New position.
+   */
+  function changePos(elem, toPos) {
+    var elemName = elem.getAttribute('data-line');
+
+    elem.setAttribute('data-order', toPos);
+    var hiddenInput = document.querySelector('[name="order_' + elemName + '"]');
+    hiddenInput.setAttribute('value', toPos);
+  }
+
+  /**
+   * Move a row up or down.
+   *
+   * @param pos  Element Node to move.
+   * @param move int     Move: +1 (down) or -1 (up)
+   */
+  function changeOrder(pos, move) {
+    var newpos = parseInt(pos) + move;
+    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);
+    }
+  }
+
+  /**
+   * Move a row up in the table.
+   *
+   * @param pos int row counter.
+   *
+   * @returns false
+   */
+  function orderUp(pos) {
+    if (pos == 0) {
+      return false;
+    }
+    changeOrder(pos, -1);
+    return false;
+  }
+
+  /**
+   * Move a row down in the table.
+   *
+   * @param pos int row counter.
+   *
+   * @returns false
+   */
+  function orderDown(pos) {
+    var lastpos = document.querySelector('[data-order]:last-child').getAttribute('data-order');
+    if (pos == lastpos) {
+      return false;
+    }
+
+    changeOrder(pos, +1);
+    return false;
+  }
+</script>
 </body>
 </html>