X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=inc%2Fplugin_admin.js;fp=inc%2Fplugin_admin.js;h=055ac285a966c4203d588ee0e0f4a39537b3f1e3;hb=19ac80e11ab70218adc70d7f3ad64669a90aab70;hp=134ffb337607d84c3bc7bfa0e77db7512fd27a27;hpb=73b9d6b3b348172f347d4f2a091f4c4053f4eed8;p=github%2Fshaarli%2FShaarli.git diff --git a/inc/plugin_admin.js b/inc/plugin_admin.js index 134ffb33..055ac285 100644 --- a/inc/plugin_admin.js +++ b/inc/plugin_admin.js @@ -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); } /**