Skip to content

Commit

Permalink
show/hide week days when reset.
Browse files Browse the repository at this point in the history
still have form sizing issues
#276
  • Loading branch information
DC23 committed Dec 15, 2024
1 parent ad8d1d5 commit d8e5fa7
Showing 1 changed file with 20 additions and 13 deletions.
33 changes: 20 additions & 13 deletions src/weekdaysettings.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ class WeekdaySettings extends FormApplication {
return foundry.utils.mergeObject(super.defaultOptions, {
popOut: true,
width: 400,
resizable: true,
template: `modules/${MODULE_ID}/templates/weekdaysettings.hbs`,
id: SETTINGS.WEEKDAY_MENU,
title: 'JDTIMEKEEPING.Settings.WeekdayConfig.name',
Expand All @@ -79,7 +80,6 @@ class WeekdaySettings extends FormApplication {
})

// The number of days per week
// todo: will need to redraw the form when this changes
data.daysPerWeek = {
id: 'daysPerWeek',
label: game.i18n.localize('JDTIMEKEEPING.Settings.DaysInWeek'),
Expand Down Expand Up @@ -112,18 +112,23 @@ class WeekdaySettings extends FormApplication {

activateListeners (html) {
super.activateListeners(html)
html.on('click', '[data-action=reset]', this._handleResetButtonClicked)
html.on('change', '[name=daysPerWeek]', event => {
const daysPerWeek = Number.parseInt(event.currentTarget.value)
weekdays.forEach((name, i) => {
let element = html.find(`[name=${name.toLowerCase()}]`).parent()
if (element && element.length) {
element = element[0]
element.classList.remove('hidden')
if (i >= daysPerWeek)
element.classList.add('hidden')
}
})
html.on('click', '[data-action=reset]', this._handleResetButtonClicked.bind(this))
html.on('change', '[name=daysPerWeek]', this._handleDaysPerWeekChanged.bind(this))
}

_handleDaysPerWeekChanged (event) {
const daysPerWeek = Number.parseInt(event.currentTarget.value)
this.#updateDayElements(event.delegateTarget, daysPerWeek)
}

#updateDayElements(delegateTarget, daysPerWeek) {
weekdays.forEach((name, i) => {
let element = $(delegateTarget).find(`[name=${name.toLowerCase()}]`).parent()
if (element && element.length) {
element = element[0]
if (i >= daysPerWeek) element.style.display = 'none'
else element.style.display = 'flex'
}
})
}

Expand All @@ -140,6 +145,8 @@ class WeekdaySettings extends FormApplication {
$(event.delegateTarget).find('[name=weekname]')[0].value =
game.i18n.localize('JDTIMEKEEPING.WeekName')

this.#updateDayElements(event.delegateTarget, DEFAULT_DAYS_PER_WEEK)

ui.notifications.notify(game.i18n.localize('SETTINGS.ResetInfo'))
}
}

0 comments on commit d8e5fa7

Please sign in to comment.