From 4f5533d1f4fab9788645a80229950f68296bd839 Mon Sep 17 00:00:00 2001 From: Matheus Clemente Date: Wed, 28 Feb 2024 15:22:35 -0300 Subject: [PATCH] simplify sorting --- src/module/compendium-browser.js | 17 +++-------------- src/module/providers/dnd5e.js | 4 ++++ 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/module/compendium-browser.js b/src/module/compendium-browser.js index e2afbd2..37e1ddf 100644 --- a/src/module/compendium-browser.js +++ b/src/module/compendium-browser.js @@ -32,7 +32,7 @@ class CompendiumBrowser extends Application { } async setup() { - await this.provider.getClasses(); + await this.provider.getFilters(); this.addSpellFilters(); this.addFeatFilters(); this.addItemFilters(); @@ -169,7 +169,6 @@ class CompendiumBrowser extends Application { ol[0].append(element); } }); - this.triggerSort(html, "spell"); // sort feat list in place html.find(".feat-browser select[name=sortorder]").on("change", (ev) => { @@ -182,7 +181,6 @@ class CompendiumBrowser extends Application { ol[0].append(element); } }); - this.triggerSort(html, "feat"); // sort item list in place html.find(".item-browser select[name=sortorder]").on("change", (ev) => { @@ -195,7 +193,6 @@ class CompendiumBrowser extends Application { ol[0].append(element); } }); - this.triggerSort(html, "item"); // sort npc list in place html.find(".npc-browser select[name=sortorder]").on("change", (ev) => { @@ -208,9 +205,9 @@ class CompendiumBrowser extends Application { ol[0].append(element); } }); - this.triggerSort(html, "npc"); for (let tab of ["spell", "feat", "item", "npc"]) { + this.triggerSort(html, tab); // reset filters and re-render // 0.4.3: Reset ALL filters because when we do a re-render it affects all tabs html.find(`#reset-${tab}-filter`).click((ev) => { @@ -778,15 +775,7 @@ class CompendiumBrowser extends Application { // SORTING triggerSort(html, browserTab) { - if (browserTab === "spell") { - html.find(".spell-browser select[name=sortorder]").trigger("change"); - } else if (browserTab === "feat") { - html.find(".feat-browser select[name=sortorder]").trigger("change"); - } else if (browserTab === "npc") { - html.find(".npc-browser select[name=sortorder]").trigger("change"); - } else if (browserTab === "item") { - html.find(".item-browser select[name=sortorder]").trigger("change"); - } + html.find(`.${browserTab}-browser select[name=sortorder]`).trigger("change"); } sortSpells(list, byName) { diff --git a/src/module/providers/dnd5e.js b/src/module/providers/dnd5e.js index bd7e3fe..93e746f 100644 --- a/src/module/providers/dnd5e.js +++ b/src/module/providers/dnd5e.js @@ -1,6 +1,10 @@ export class dnd5eProvider { classes = {}; + async getFilters() { + await this.getClasses(); + } + async getClasses() { const subclasses = {}; for (let pack of game.packs) {