plugin_admin.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * Change the position counter of a row.
  3. *
  4. * @param elem Element Node to change.
  5. * @param toPos int New position.
  6. */
  7. function changePos(elem, toPos)
  8. {
  9. var elemName = elem.getAttribute('data-line')
  10. elem.setAttribute('data-order', toPos);
  11. var hiddenInput = document.querySelector('[name="order_'+ elemName +'"]');
  12. hiddenInput.setAttribute('value', toPos);
  13. }
  14. /**
  15. * Move a row up or down.
  16. *
  17. * @param pos Element Node to move.
  18. * @param move int Move: +1 (down) or -1 (up)
  19. */
  20. function changeOrder(pos, move)
  21. {
  22. var newpos = parseInt(pos) + move;
  23. var line = document.querySelector('[data-order="'+ pos +'"]');
  24. var changeline = document.querySelector('[data-order="'+ newpos +'"]');
  25. var parent = changeline.parentNode;
  26. changePos(line, newpos);
  27. changePos(changeline, parseInt(pos));
  28. var changeItem = move < 0 ? changeline : changeline.nextSibling;
  29. parent.insertBefore(line, changeItem);
  30. }
  31. /**
  32. * Move a row up in the table.
  33. *
  34. * @param pos int row counter.
  35. *
  36. * @returns false
  37. */
  38. function orderUp(pos)
  39. {
  40. if (pos == 0) {
  41. return false;
  42. }
  43. changeOrder(pos, -1);
  44. return false;
  45. }
  46. /**
  47. * Move a row down in the table.
  48. *
  49. * @param pos int row counter.
  50. *
  51. * @returns false
  52. */
  53. function orderDown(pos)
  54. {
  55. var lastpos = document.querySelector('[data-order]:last-child').getAttribute('data-order');
  56. if (pos == lastpos) {
  57. return false;
  58. }
  59. changeOrder(pos, +1);
  60. return false;
  61. }