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.
36 lines
1.2 KiB
36 lines
1.2 KiB
import { Controller } from "@hotwired/stimulus" |
|
|
|
export default class extends Controller { |
|
static targets = [ "override" ] |
|
|
|
initialize() { |
|
let url = window.location.href + "/soft_validations" |
|
this.fetch_retry(url, { headers: { accept: "application/json" } }, 5) |
|
} |
|
|
|
fetch_retry(url, options, n) { |
|
let self = this |
|
let div = this.overrideTarget |
|
fetch(url, options) |
|
.then(response => response.json()) |
|
.then((response) => { |
|
if(response["show"]){ |
|
div.style.display = "block" |
|
let innerHTML = div.innerHTML |
|
innerHTML = innerHTML.replace("soft-validations-placeholder-message", response["label"]) |
|
innerHTML = innerHTML.replace("soft-validations-placeholder-hint-text", response["hint"]) |
|
div.innerHTML = innerHTML |
|
} else { |
|
div.style.display = "none" |
|
let buttons = document.getElementsByName(`case_log[override_net_income_validation][]`) |
|
Object.entries(buttons).map(([idx, button]) => { |
|
button.checked = false |
|
}) |
|
} |
|
}) |
|
.catch(function(error) { |
|
if (n === 1) throw error |
|
return self.fetch_retry(url, options, n - 1) |
|
}) |
|
} |
|
}
|
|
|