]>
git.immae.eu Git - github/shaarli/Shaarli.git/blob - inc/plugin_admin.js
1 /** @licstart The following is the entire license notice for the
2 * JavaScript code in this page.
4 * Copyright: (c) 2011-2015 Sébastien SAUVAGE <sebsauvage@sebsauvage.net>
5 * (c) 2011-2017 The Shaarli Community, see AUTHORS
7 * This software is provided 'as-is', without any express or implied warranty.
8 * In no event will the authors be held liable for any damages arising from
9 * the use of this software.
11 * Permission is granted to anyone to use this software for any purpose,
12 * including commercial applications, and to alter it and redistribute it
13 * freely, subject to the following restrictions:
15 * 1. The origin of this software must not be misrepresented; you must not
16 * claim that you wrote the original software. If you use this software
17 * in a product, an acknowledgment in the product documentation would
18 * be appreciated but is not required.
20 * 2. Altered source versions must be plainly marked as such, and must
21 * not be misrepresented as being the original software.
23 * 3. This notice may not be removed or altered from any source distribution.
25 * @licend The above is the entire license notice
26 * for the JavaScript code in this page.
30 * Change the position counter of a row.
32 * @param elem Element Node to change.
33 * @param toPos int New position.
35 function changePos(elem
, toPos
)
37 var elemName
= elem
.getAttribute('data-line')
39 elem
.setAttribute('data-order', toPos
);
40 var hiddenInput
= document
.querySelector('[name="order_'+ elemName
+'"]');
41 hiddenInput
.setAttribute('value', toPos
);
45 * Move a row up or down.
47 * @param pos Element Node to move.
48 * @param move int Move: +1 (down) or -1 (up)
50 function changeOrder(pos
, move)
52 var newpos
= parseInt(pos
) + move;
53 var lines
= document
.querySelectorAll('[data-order="'+ pos
+'"]');
54 var changelines
= document
.querySelectorAll('[data-order="'+ newpos
+'"]');
56 // If we go down reverse lines to preserve the rows order
58 lines
= [].slice
.call(lines
).reverse();
61 for (var i
= 0 ; i
< lines
.length
; i
++) {
62 var parent
= changelines
[0].parentNode
;
63 changePos(lines
[i
], newpos
);
64 changePos(changelines
[i
], parseInt(pos
));
65 var changeItem
= move < 0 ? changelines
[0] : changelines
[changelines
.length
- 1].nextSibling
;
66 parent
.insertBefore(lines
[i
], changeItem
);
72 * Move a row up in the table.
74 * @param pos int row counter.
88 * Move a row down in the table.
90 * @param pos int row counter.
94 function orderDown(pos
)
96 var lastpos
= document
.querySelector('[data-order]:last-child').getAttribute('data-order');
101 changeOrder(pos
, +1);