diff options
Diffstat (limited to 'inc/plugin_admin.js')
-rw-r--r-- | inc/plugin_admin.js | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/inc/plugin_admin.js b/inc/plugin_admin.js index 134ffb33..4b55e0f3 100644 --- a/inc/plugin_admin.js +++ b/inc/plugin_admin.js | |||
@@ -1,3 +1,31 @@ | |||
1 | /** @licstart The following is the entire license notice for the | ||
2 | * JavaScript code in this page. | ||
3 | * | ||
4 | * Copyright: (c) 2011-2015 Sébastien SAUVAGE <sebsauvage@sebsauvage.net> | ||
5 | * (c) 2011-2017 The Shaarli Community, see AUTHORS | ||
6 | * | ||
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. | ||
10 | * | ||
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: | ||
14 | * | ||
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. | ||
19 | * | ||
20 | * 2. Altered source versions must be plainly marked as such, and must | ||
21 | * not be misrepresented as being the original software. | ||
22 | * | ||
23 | * 3. This notice may not be removed or altered from any source distribution. | ||
24 | * | ||
25 | * @licend The above is the entire license notice | ||
26 | * for the JavaScript code in this page. | ||
27 | */ | ||
28 | |||
1 | /** | 29 | /** |
2 | * Change the position counter of a row. | 30 | * Change the position counter of a row. |
3 | * | 31 | * |
@@ -22,14 +50,22 @@ function changePos(elem, toPos) | |||
22 | function changeOrder(pos, move) | 50 | function changeOrder(pos, move) |
23 | { | 51 | { |
24 | var newpos = parseInt(pos) + move; | 52 | var newpos = parseInt(pos) + move; |
25 | var line = document.querySelector('[data-order="'+ pos +'"]'); | 53 | var lines = document.querySelectorAll('[data-order="'+ pos +'"]'); |
26 | var changeline = document.querySelector('[data-order="'+ newpos +'"]'); | 54 | var changelines = document.querySelectorAll('[data-order="'+ newpos +'"]'); |
27 | var parent = changeline.parentNode; | 55 | |
56 | // If we go down reverse lines to preserve the rows order | ||
57 | if (move > 0) { | ||
58 | lines = [].slice.call(lines).reverse(); | ||
59 | } | ||
60 | |||
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); | ||
67 | } | ||
28 | 68 | ||
29 | changePos(line, newpos); | ||
30 | changePos(changeline, parseInt(pos)); | ||
31 | var changeItem = move < 0 ? changeline : changeline.nextSibling; | ||
32 | parent.insertBefore(line, changeItem); | ||
33 | } | 69 | } |
34 | 70 | ||
35 | /** | 71 | /** |