Submit social housing lettings and sales data (CORE)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

53 lines
1.5 KiB

import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
initialize() {
this.displayConditional()
}
displayConditional() {
switch(this.element.type) {
case "number":
this.displayConditionalNumeric()
case "radio":
this.displayConditionalRadio()
default:
console.log("Not yet implemented for " + this.element.type)
break;
}
}
displayConditionalRadio() {
if(this.element.checked) {
let selectedValue = this.element.value
let conditional_for = JSON.parse(this.element.dataset.info)
Object.entries(conditional_for).forEach(([targetQuestion, conditions]) => {
let div = document.getElementById(targetQuestion + "_div")
if(conditions.includes(selectedValue)) {
div.style.display = "block"
} else {
div.style.display = "none"
let buttons = document.getElementsByName(`case_log[${targetQuestion}]`)
Object.entries(buttons).forEach(([idx, button]) => {
button.checked = false;
})
}
})
}
}
displayConditionalNumeric() {
let enteredValue = this.element.value
let conditional_for = JSON.parse(this.element.dataset.info)
Object.entries(conditional_for).forEach(([targetQuestion, condition]) => {
let div = document.getElementById(targetQuestion + "_div")
if(eval((enteredValue + condition))) {
div.style.display = "block"
} else {
div.style.display = "none"
}
})
}
}