44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
import { Controller } from "@hotwired/stimulus";
|
|
|
|
export default class extends Controller {
|
|
static values = { url: String };
|
|
static targets = ["benefit"];
|
|
|
|
connect() {
|
|
}
|
|
|
|
async fetchData(event) {
|
|
const templateId = event.target.value;
|
|
if (!templateId) {
|
|
this.clearFields();
|
|
return;
|
|
}
|
|
|
|
const url = `/id_card_benefits_templates/get_template_benefits/${templateId}`
|
|
const response = await fetch(url);
|
|
const templateBenefitsData = await response.json();
|
|
|
|
this.#updateFields(templateBenefitsData)
|
|
}
|
|
|
|
clearFields() {
|
|
}
|
|
|
|
async #updateFields(templateBenefitsData) {
|
|
const benefitTargetsList = this.benefitTargets
|
|
templateBenefitsData.forEach(function(bene) {
|
|
const targetElement = benefitTargetsList.find(
|
|
(element) => element.dataset.sequence == bene.sequence
|
|
);
|
|
if (targetElement) {
|
|
targetElement.value = bene.benefit;
|
|
} else {
|
|
console.error(`Target not found for sequence: ${bene.sequence}`);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
// this[propertyName]
|
|
// const propertyName = `${valueName}Value`;
|