From d488b682268eb3062cf6df73c15e60ccfed0d70e Mon Sep 17 00:00:00 2001 From: Azgaar Date: Sun, 15 May 2022 16:08:25 +0300 Subject: [PATCH] add listeners to sort by headers --- modules/dynamic/editors/states-editor.js | 9 +++++++++ modules/ui/editors.js | 14 +++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/modules/dynamic/editors/states-editor.js b/modules/dynamic/editors/states-editor.js index b3de8d29..46ad265d 100644 --- a/modules/dynamic/editors/states-editor.js +++ b/modules/dynamic/editors/states-editor.js @@ -147,6 +147,15 @@ function addListeners() { document.getElementById("statesAdd").addEventListener("click", enterAddStateMode); document.getElementById("statesExport").addEventListener("click", downloadStatesData); + document + .getElementById("statesHeader") + .querySelectorAll(".sortable") + .forEach(function (element) { + element.addEventListener("click", function () { + sortLines(this); + }); + }); + body.addEventListener("click", function (event) { const element = event.target; const classList = element.classList; diff --git a/modules/ui/editors.js b/modules/ui/editors.js index deba9f58..8200607e 100644 --- a/modules/ui/editors.js +++ b/modules/ui/editors.js @@ -80,23 +80,23 @@ function fitContent() { // apply sorting behaviour for lines on Editor header click document.querySelectorAll(".sortable").forEach(function (e) { - e.addEventListener("click", function (e) { + e.addEventListener("click", function () { sortLines(this); }); }); -function sortLines(header) { - const type = header.classList.contains("alphabetically") ? "name" : "number"; - let order = header.className.includes("-down") ? "-up" : "-down"; - if (!header.className.includes("icon-sort") && type === "name") order = "-up"; +function sortLines(headerElement) { + const type = headerElement.classList.contains("alphabetically") ? "name" : "number"; + let order = headerElement.className.includes("-down") ? "-up" : "-down"; + if (!headerElement.className.includes("icon-sort") && type === "name") order = "-up"; - const headers = header.parentNode; + const headers = headerElement.parentNode; headers.querySelectorAll("div.sortable").forEach(e => { e.classList.forEach(c => { if (c.includes("icon-sort")) e.classList.remove(c); }); }); - header.classList.add("icon-sort-" + type + order); + headerElement.classList.add("icon-sort-" + type + order); applySorting(headers); }