mirror of
https://github.com/we-promise/sure.git
synced 2026-05-30 15:59:02 +00:00
- Add JSONB pension_params column to retirement_configs
- Add data JSONB column to pension_entries
- Create pension calculator strategy classes (Base, DeGrv, UsSocialSecurity, UkStatePension, FrRegimeGeneral, EsSocialSecurity)
- Update RetirementConfig model to delegate to calculators
- Make PensionEntry.current_points optional for non-points systems
- Update controller strong params (pension_params: {})
- Add Stimulus pension_system_controller for dynamic form fields
- Update views with per-country field groups and conditional points columns
- Expand i18n (EN, DE) and add ES, FR locale files
- Update fixtures and tests for new schema
Addresses review feedback from jjmata on PR #1057
33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
import { Controller } from "@hotwired/stimulus";
|
|
|
|
// Toggles visibility of country-specific pension field groups
|
|
// based on the selected pension system.
|
|
//
|
|
// Usage:
|
|
// <div data-controller="pension-system">
|
|
// <select data-pension-system-target="select" data-action="change->pension-system#toggle">
|
|
// <div data-pension-system-target="fields" data-pension-system-key="de_grv"> ... </div>
|
|
// <div data-pension-system-target="fields" data-pension-system-key="us_ss"> ... </div>
|
|
// </div>
|
|
export default class extends Controller {
|
|
static targets = ["select", "fields"];
|
|
|
|
connect() {
|
|
this.toggle();
|
|
}
|
|
|
|
toggle() {
|
|
const selected = this.selectTarget.value;
|
|
|
|
this.fieldsTargets.forEach((el) => {
|
|
if (el.dataset.pensionSystemKey === selected) {
|
|
el.classList.remove("hidden");
|
|
el.querySelectorAll("input, select").forEach((i) => (i.disabled = false));
|
|
} else {
|
|
el.classList.add("hidden");
|
|
el.querySelectorAll("input, select").forEach((i) => (i.disabled = true));
|
|
}
|
|
});
|
|
}
|
|
}
|