X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=assets%2Fdefault%2Fjs%2Fplugins-admin.js;h=46df4a3c1d3fe218d2da878ad085205ba46d7692;hb=d42da5435024b4270d5abac11e6fcfa38354f3e9;hp=4b55e0f3388d67a86d8ea6d6611a8abc288083d0;hpb=d78c23e00d3007c3fee8c3603acac00efc1ce14e;p=github%2Fshaarli%2FShaarli.git diff --git a/assets/default/js/plugins-admin.js b/assets/default/js/plugins-admin.js index 4b55e0f3..46df4a3c 100644 --- a/assets/default/js/plugins-admin.js +++ b/assets/default/js/plugins-admin.js @@ -1,44 +1,14 @@ -/** @licstart The following is the entire license notice for the - * JavaScript code in this page. - * - * Copyright: (c) 2011-2015 Sébastien SAUVAGE - * (c) 2011-2017 The Shaarli Community, see AUTHORS - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would - * be appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must - * not be misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * @licend The above is the entire license notice - * for the JavaScript code in this page. - */ - /** * 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); +function changePos(elem, toPos) { + const elemName = elem.getAttribute('data-line'); + elem.setAttribute('data-order', toPos); + const hiddenInput = document.querySelector(`[name="order_${elemName}"]`); + hiddenInput.setAttribute('value', toPos); } /** @@ -47,25 +17,23 @@ function changePos(elem, toPos) * @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(); - } +function changeOrder(pos, move) { + const newpos = parseInt(pos, 10) + move; + let lines = document.querySelectorAll(`[data-order="${pos}"]`); + const changelines = document.querySelectorAll(`[data-order="${newpos}"]`); - 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); - } + // If we go down reverse lines to preserve the rows order + if (move > 0) { + lines = [].slice.call(lines).reverse(); + } + for (let i = 0; i < lines.length; i += 1) { + const parent = changelines[0].parentNode; + changePos(lines[i], newpos); + changePos(changelines[i], parseInt(pos, 10)); + const changeItem = move < 0 ? changelines[0] : changelines[changelines.length - 1].nextSibling; + parent.insertBefore(lines[i], changeItem); + } } /** @@ -73,15 +41,12 @@ function changeOrder(pos, move) * * @param pos int row counter. * - * @returns false + * @return false */ -function orderUp(pos) -{ - if (pos == 0) { - return false; - } +function orderUp(pos) { + if (pos !== 0) { changeOrder(pos, -1); - return false; + } } /** @@ -91,13 +56,26 @@ function orderUp(pos) * * @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; +function orderDown(pos) { + const lastpos = parseInt(document.querySelector('[data-order]:last-child').getAttribute('data-order'), 10); + if (pos !== lastpos) { + changeOrder(pos, 1); + } } + +(() => { + /** + * Plugin admin order + */ + const orderPA = document.querySelectorAll('.order'); + [...orderPA].forEach((link) => { + link.addEventListener('click', (event) => { + event.preventDefault(); + if (event.target.classList.contains('order-up')) { + orderUp(parseInt(event.target.parentNode.parentNode.getAttribute('data-order'), 10)); + } else if (event.target.classList.contains('order-down')) { + orderDown(parseInt(event.target.parentNode.parentNode.getAttribute('data-order'), 10)); + } + }); + }); +})();