@@ -65,7 +65,7 @@ $csrf_token = $var['csrf_token'] ?? '';
6565 <dl>
6666 <dt class="help-label">_(PCIe ACS Override)_ _(details)_:</dt>
6767 <dd>
68- <select id="acs-dropdown" onchange="updateConfig()" style="width: auto;">
68+ <select id="acs-dropdown" onchange="updateConfig('acs-dropdown' )" style="width: auto;">
6969 <option value="">_(Disabled)_</option>
7070 <option value="downstream">_(Downstream)_</option>
7171 <option value="multifunction">_(Multi-function)_</option>
@@ -86,7 +86,7 @@ $csrf_token = $var['csrf_token'] ?? '';
8686 <dl>
8787 <dt class="help-label">_(VFIO Allow Unsafe Interrupts)_ _(details)_:</dt>
8888 <dd>
89- <input type="checkbox" id="vfio-toggle" class="switch narrow" onchange="updateConfig()">
89+ <input type="checkbox" id="vfio-toggle" class="switch narrow" onchange="updateConfig('vfio-toggle' )">
9090 <br>
9191 <span class="parameter-code">vfio_iommu_type1.allow_unsafe_interrupts=1</span>
9292 <blockquote class="inline_help">
@@ -665,10 +665,29 @@ function bootParamsTabFocus() {
665665}
666666
667667// Update configuration preview
668- function updateConfig() {
668+ function ensureApplyTogglesEnabled(labels) {
669+ if (!Array.isArray(labels) || labels.length === 0) {
670+ return;
671+ }
672+
673+ $('.boot-entry-apply-toggle').each(function() {
674+ const toggle = $(this);
675+ const label = toggle.attr('data-label');
676+
677+ if (labels.indexOf(label) !== -1 && !toggle.prop('checked')) {
678+ toggle.switchButton('option', 'checked', true);
679+ }
680+ });
681+ }
682+
683+ function updateConfig(changedFieldId) {
669684 // Handle mutual exclusivity for sysfb_blacklist toggle
670685 handleFramebufferMutualExclusivity();
671686
687+ if (changedFieldId === 'acs-dropdown' || changedFieldId === 'vfio-toggle') {
688+ ensureApplyTogglesEnabled(['Unraid OS', 'Unraid OS GUI Mode']);
689+ }
690+
672691 markFormModified();
673692 updatePreview();
674693}
0 commit comments