diff --git a/hub/services/static/js/price-calculator/price-calculator.js b/hub/services/static/js/price-calculator/price-calculator.js index ecde2ac..542c48f 100644 --- a/hub/services/static/js/price-calculator/price-calculator.js +++ b/hub/services/static/js/price-calculator/price-calculator.js @@ -94,17 +94,6 @@ class PriceCalculator { this.updatePricing(); }); - // Service level change listeners - const serviceLevelInputs = this.domManager.get('serviceLevelInputs'); - serviceLevelInputs.forEach(input => { - input.addEventListener('change', () => { - this.uiManager.updateInstancesSlider(this.domManager, this.pricingDataManager); - this.planManager.populatePlanDropdown(this.domManager); - this.addonManager.updateAddons(this.domManager); - this.updatePricing(); - }); - }); - // Plan selection listener const planSelect = this.domManager.get('planSelect'); if (planSelect) { diff --git a/hub/services/static/js/price-calculator/ui-manager.js b/hub/services/static/js/price-calculator/ui-manager.js index 2bbde8c..b87e10d 100644 --- a/hub/services/static/js/price-calculator/ui-manager.js +++ b/hub/services/static/js/price-calculator/ui-manager.js @@ -218,6 +218,28 @@ class UIManager { // Update the serviceLevelInputs reference domManager.elements.serviceLevelInputs = document.querySelectorAll('input[name="serviceLevel"]'); + + // Set up event listeners for the dynamically created service level inputs + this.setupServiceLevelEventListeners(domManager, pricingDataManager); + } + + // Setup event listeners for service level inputs + setupServiceLevelEventListeners(domManager, pricingDataManager) { + const serviceLevelInputs = domManager.get('serviceLevelInputs'); + if (!serviceLevelInputs) return; + + // Get the main price calculator instance from window + const priceCalculator = window.priceCalculator; + if (!priceCalculator) return; + + serviceLevelInputs.forEach(input => { + input.addEventListener('change', () => { + this.updateInstancesSlider(domManager, pricingDataManager); + priceCalculator.planManager.populatePlanDropdown(domManager); + priceCalculator.addonManager.updateAddons(domManager); + priceCalculator.updatePricing(); + }); + }); } // Update slider maximums based on pricing data