29 lines
911 B
JavaScript
29 lines
911 B
JavaScript
import { Controller} from '@hotwired/stimulus'
|
|
|
|
export default class extends Controller {
|
|
static targets = ['field']
|
|
static values = { availabilities: Object }
|
|
|
|
toggle(event) {
|
|
let field = event.target
|
|
let id = field.value
|
|
let availabilities = this.availabilitiesValue
|
|
if (field.checked) {
|
|
availabilities[id].available--
|
|
} else {
|
|
availabilities[id].available++
|
|
}
|
|
field.disabled = 0 >= availabilities[id].available
|
|
field.classList.toggle('cursor-not-allowed', field.disabled)
|
|
this.availabilitiesValue = availabilities
|
|
}
|
|
|
|
availabilitiesValueChanged(availabilities) {
|
|
this.fieldTargets.forEach((field) => {
|
|
let id = field.value
|
|
if (false === field.checked && 0 >= availabilities[id].available) {
|
|
field.disabled = true
|
|
}
|
|
})
|
|
}
|
|
} |