From d385bd1a908c4cdb42a3c23929ac93defb2ffadc Mon Sep 17 00:00:00 2001 From: WBHarry Date: Tue, 5 Aug 2025 20:22:46 +0200 Subject: [PATCH] Split into tabs --- lang/en.json | 6 ++- .../settings/homebrewSettings.mjs | 22 +++++++- module/data/settings/Homebrew.mjs | 12 ++++- .../settings/homebrew-settings/domains.hbs | 7 +++ .../settings/homebrew-settings/downtime.hbs | 51 +++++++++++++++++++ .../settings/homebrew-settings/footer.hbs | 10 ++++ .../settings/homebrew-settings/settings.hbs | 38 ++++++++++++++ 7 files changed, 141 insertions(+), 5 deletions(-) create mode 100644 templates/settings/homebrew-settings/domains.hbs create mode 100644 templates/settings/homebrew-settings/downtime.hbs create mode 100644 templates/settings/homebrew-settings/footer.hbs create mode 100644 templates/settings/homebrew-settings/settings.hbs diff --git a/lang/en.json b/lang/en.json index 81778a4a..43da4193 100755 --- a/lang/en.json +++ b/lang/en.json @@ -1854,7 +1854,9 @@ "tier1": "Tier 1", "tier2": "Tier 2", "tier3": "Tier 3", - "tier4": "tier 4" + "tier4": "tier 4", + "domains": "Domains", + "downtime": "Downtime" }, "Tiers": { "singular": "Tier", @@ -1887,6 +1889,7 @@ "damageType": "Damage Type", "description": "Description", "difficulty": "Difficulty", + "downtime": "Downtime", "dropActorsHere": "Drop Actors here", "duality": "Duality", "dualityRoll": "Duality Roll", @@ -1919,6 +1922,7 @@ "inactiveEffects": "Inactive Effects", "inventory": "Inventory", "itemResource": "Item Resource", + "label": "Label", "level": "Level", "levelUp": "Level Up", "loadout": "Loadout", diff --git a/module/applications/settings/homebrewSettings.mjs b/module/applications/settings/homebrewSettings.mjs index 1b73747c..4b06de79 100644 --- a/module/applications/settings/homebrewSettings.mjs +++ b/module/applications/settings/homebrewSettings.mjs @@ -34,9 +34,18 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli }; static PARTS = { + tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, + settings: { template: 'systems/daggerheart/templates/settings/homebrew-settings/settings.hbs' }, + domains: { template: 'systems/daggerheart/templates/settings/homebrew-settings/domains.hbs' }, + downtime: { template: 'systems/daggerheart/templates/settings/homebrew-settings/downtime.hbs' } + }; + + /** @inheritdoc */ + static TABS = { main: { - template: 'systems/daggerheart/templates/settings/homebrew-settings.hbs', - scrollable: [''] + tabs: [{ id: 'settings' }, { id: 'domains' }, { id: 'downtime' }], + initial: 'settings', + labelPrefix: 'DAGGERHEART.GENERAL.Tabs' } }; @@ -200,4 +209,13 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli } return obj; } + + _getTabs(tabs) { + for (const v of Object.values(tabs)) { + v.active = this.tabGroups[v.group] ? this.tabGroups[v.group] === v.id : v.active; + v.cssClass = v.active ? 'active' : ''; + } + + return tabs; + } } diff --git a/module/data/settings/Homebrew.mjs b/module/data/settings/Homebrew.mjs index 0251dd54..20569ff7 100644 --- a/module/data/settings/Homebrew.mjs +++ b/module/data/settings/Homebrew.mjs @@ -2,8 +2,6 @@ import { defaultRestOptions } from '../../config/generalConfig.mjs'; import { ActionsField } from '../fields/actionField.mjs'; export default class DhHomebrew extends foundry.abstract.DataModel { - static LOCALIZATION_PREFIXES = ['DAGGERHEART.SETTINGS.Homebrew']; // Doesn't work for some reason - static defineSchema() { const fields = foundry.data.fields; return { @@ -98,6 +96,16 @@ export default class DhHomebrew extends foundry.abstract.DataModel { { initial: defaultRestOptions.shortRest() } ) }) + }), + domains: new fields.SchemaField({ + id: new fields.StringField({ required: true }), + label: new fields.StringField({ required: true, initial: '', label: 'DAGGERHEART.GENERAL.label' }), + src: new fields.FilePathField({ + categories: ['IMAGE'], + base64: false, + label: 'Image' + }), + description: new fields.StringField({ label: 'DAGGERHEART.GENERAL.description' }) }) }; } diff --git a/templates/settings/homebrew-settings/domains.hbs b/templates/settings/homebrew-settings/domains.hbs new file mode 100644 index 00000000..94e0deae --- /dev/null +++ b/templates/settings/homebrew-settings/domains.hbs @@ -0,0 +1,7 @@ +
+ +
\ No newline at end of file diff --git a/templates/settings/homebrew-settings/downtime.hbs b/templates/settings/homebrew-settings/downtime.hbs new file mode 100644 index 00000000..890afddc --- /dev/null +++ b/templates/settings/homebrew-settings/downtime.hbs @@ -0,0 +1,51 @@ +
+
+ {{localize "DAGGERHEART.SETTINGS.Homebrew.downtimeMoves"}} + +
+ + {{localize "DAGGERHEART.APPLICATIONS.Downtime.longRest.title"}} + + + + +
+ +
+ +
+
+ +
+ {{#each settingFields._source.restMoves.longRest.moves as |move id|}} + {{> "systems/daggerheart/templates/settings/components/settings-item-line.hbs" this type="longRest" id=id }} + {{/each}} +
+
+ +
+ + {{localize "DAGGERHEART.APPLICATIONS.Downtime.shortRest.title"}} + + + + +
+ +
+ +
+
+ +
+ {{#each settingFields._source.restMoves.shortRest.moves as |move id|}} + {{> "systems/daggerheart/templates/settings/components/settings-item-line.hbs" this type="shortRest" id=id }} + {{/each}} +
+
+
+
\ No newline at end of file diff --git a/templates/settings/homebrew-settings/footer.hbs b/templates/settings/homebrew-settings/footer.hbs new file mode 100644 index 00000000..10ce9ac7 --- /dev/null +++ b/templates/settings/homebrew-settings/footer.hbs @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/templates/settings/homebrew-settings/settings.hbs b/templates/settings/homebrew-settings/settings.hbs new file mode 100644 index 00000000..c367b4e7 --- /dev/null +++ b/templates/settings/homebrew-settings/settings.hbs @@ -0,0 +1,38 @@ +
+
+
+

{{localize 'DAGGERHEART.SETTINGS.Menu.homebrew.name'}}

+
+ {{formGroup settingFields.schema.fields.maxFear value=settingFields._source.maxFear localize=true}} + {{formGroup settingFields.schema.fields.maxDomains value=settingFields._source.maxDomains localize=true}} + {{formGroup settingFields.schema.fields.maxLoadout value=settingFields._source.maxLoadout localize=true}} +
+ +

{{localize "DAGGERHEART.SETTINGS.Homebrew.FIELDS.traitArray.label"}}

+
+ {{#each settingFields._source.traitArray as |trait index|}} +
+ + +
+ {{/each}} +
+ +
+ + {{localize "DAGGERHEART.SETTINGS.Homebrew.currency.title"}} + + {{formGroup settingFields.schema.fields.currency.fields.enabled value=settingFields._source.currency.enabled localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.title value=settingFields._source.currency.title localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.coins value=settingFields._source.currency.coins localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.handfulls value=settingFields._source.currency.handfulls localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.bags value=settingFields._source.currency.bags localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.chests value=settingFields._source.currency.chests localize=true}} + +
+
+
\ No newline at end of file