diff --git a/lang/en.json b/lang/en.json index d6b19a45..86f0359e 100755 --- a/lang/en.json +++ b/lang/en.json @@ -2570,6 +2570,7 @@ "evasionMin": "Evasion (Min)", "evasionMax": "Evasion (Max)", "subtype": "Subtype", + "missing": "Missing", "folders": { "characters": "Characters", "adversaries": "Adversaries", diff --git a/module/applications/ui/itemBrowser.mjs b/module/applications/ui/itemBrowser.mjs index 33995aa9..07d5cd74 100644 --- a/module/applications/ui/itemBrowser.mjs +++ b/module/applications/ui/itemBrowser.mjs @@ -294,7 +294,7 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { const property = foundry.utils.getProperty(item, field.key); if (Array.isArray(property)) property.join(', '); if (typeof field.format !== 'function') return property ?? '-'; - return field.format(property); + return game.i18n.localize(field.format(property)); } formatChoices(data) { @@ -430,7 +430,7 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { if (matchesMenu) this.#filteredItems.browser.input.add(item.id); const { search } = this.#filteredItems.browser; - li.hidden = !(search.has(item.id) && matchesMenu); + li.hidden = !((this.#search.browser.query.length === 0 || search.has(item.id)) && matchesMenu); } } @@ -469,6 +469,7 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { static resetFilters() { this.render({ force: true }); + this.loadItems(); } static getFolderConfig(folder, property = 'columns') { diff --git a/module/config/itemBrowserConfig.mjs b/module/config/itemBrowserConfig.mjs index 2c3e1dfb..3b10409c 100644 --- a/module/config/itemBrowserConfig.mjs +++ b/module/config/itemBrowserConfig.mjs @@ -363,7 +363,7 @@ export const typeConfig = { { key: 'system.linkedClass', label: 'Class', - format: linkedClass => linkedClass.name + format: linkedClass => linkedClass?.name ?? 'DAGGERHEART.UI.ItemBrowser.missing' }, { key: 'system.spellcastingTrait', @@ -375,10 +375,12 @@ export const typeConfig = { key: 'system.linkedClass.uuid', label: 'Class', choices: items => { - const list = items.map(item => ({ - value: item.system.linkedClass.uuid, - label: item.system.linkedClass.name - })); + const list = items + .filter(item => item.system.linkedClass) + .map(item => ({ + value: item.system.linkedClass.uuid, + label: item.system.linkedClass.name + })); return list.reduce((a, c) => { if (!a.find(i => i.value === c.value)) a.push(c); return a;