55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
import { Controller } from "@hotwired/stimulus"
|
|
|
|
export default class WafPolicyFormController extends Controller {
|
|
static targets = ["policyTypeSelect", "policyActionSelect", "countryTargets", "asnTargets",
|
|
"companyTargets", "networkTypeTargets", "redirectConfig", "challengeConfig"]
|
|
|
|
connect() {
|
|
this.updateTargetsVisibility()
|
|
this.updateActionConfig()
|
|
}
|
|
|
|
updateTargetsVisibility() {
|
|
const selectedType = this.policyTypeSelectTarget.value
|
|
|
|
// Hide all target sections
|
|
this.countryTargetsTarget.classList.add('hidden')
|
|
this.asnTargetsTarget.classList.add('hidden')
|
|
this.companyTargetsTarget.classList.add('hidden')
|
|
this.networkTypeTargetsTarget.classList.add('hidden')
|
|
|
|
// Show relevant target section
|
|
switch(selectedType) {
|
|
case 'country':
|
|
this.countryTargetsTarget.classList.remove('hidden')
|
|
break
|
|
case 'asn':
|
|
this.asnTargetsTarget.classList.remove('hidden')
|
|
break
|
|
case 'company':
|
|
this.companyTargetsTarget.classList.remove('hidden')
|
|
break
|
|
case 'network_type':
|
|
this.networkTypeTargetsTarget.classList.remove('hidden')
|
|
break
|
|
}
|
|
}
|
|
|
|
updateActionConfig() {
|
|
const selectedAction = this.policyActionSelectTarget.value
|
|
|
|
// Hide all config sections
|
|
this.redirectConfigTarget.classList.add('hidden')
|
|
this.challengeConfigTarget.classList.add('hidden')
|
|
|
|
// Show relevant config section
|
|
switch(selectedAction) {
|
|
case 'redirect':
|
|
this.redirectConfigTarget.classList.remove('hidden')
|
|
break
|
|
case 'challenge':
|
|
this.challengeConfigTarget.classList.remove('hidden')
|
|
break
|
|
}
|
|
}
|
|
} |