Skip to content

Commit b795cc7

Browse files
Merge pull request #438 from ExtremeFiretop/ExtremeFiretop-Test
Fix iPadOS/Safari Checkboxes visual presentation.
2 parents b0d5b05 + a21e17a commit b795cc7

1 file changed

Lines changed: 44 additions & 11 deletions

File tree

MerlinAU.asp

Lines changed: 44 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,15 @@ function ConsoleLogDEBUG (debugMsg, debugVar)
8787
{ console.log(debugMsg, debugVar); }
8888
}
8989
90+
// Helper function to set the disabled state and inline opacity for a checkbox by its ID
91+
function setCheckboxDisabledById(elementId, isDisabled) {
92+
var checkbox = document.getElementById(elementId);
93+
if (checkbox) {
94+
checkbox.disabled = isDisabled;
95+
checkbox.style.opacity = isDisabled ? '0.5' : '1';
96+
}
97+
}
98+
9099
/**-------------------------------------**/
91100
/** Added by Martinski W. [2025-Jan-13] **/
92101
/**-------------------------------------**/
@@ -284,26 +293,43 @@ function ToggleDaysOfWeek (isEveryXDayChecked, numberOfDays)
284293
let numOfDays = ['1', 'X'];
285294
if (isEveryXDayChecked)
286295
{
287-
for (var indx = 0; indx < daysOfWeekNames.length; indx++)
288-
{ $('#fwSched_' + daysOfWeekNames[indx].toUpperCase()).prop('disabled', true); }
296+
for (var indx = 0; indx < daysOfWeekNames.length; indx++) {
297+
var checkboxId = 'fwSched_' + daysOfWeekNames[indx].toUpperCase();
298+
$('#' + checkboxId).prop('disabled', true);
299+
setCheckboxDisabledById(checkboxId, true);
300+
}
289301
if (numberOfDays === 'X')
290-
{ $('#fwScheduleXDAYS').prop('disabled', false); }
302+
{
303+
$('#fwScheduleXDAYS').prop('disabled', false);
304+
setCheckboxDisabledById('fwScheduleXDAYS', false);
305+
}
291306
else
292-
{ $('#fwScheduleXDAYS').prop('disabled', true); }
307+
{
308+
$('#fwScheduleXDAYS').prop('disabled', true);
309+
setCheckboxDisabledById('fwScheduleXDAYS', true);
310+
}
293311
}
294312
else
295313
{
296-
for (var indx = 0; indx < daysOfWeekNames.length; indx++)
297-
{ $('#fwSched_' + daysOfWeekNames[indx].toUpperCase()).prop('disabled', false); }
314+
for (var indx = 0; indx < daysOfWeekNames.length; indx++) {
315+
var checkboxId = 'fwSched_' + daysOfWeekNames[indx].toUpperCase();
316+
$('#' + checkboxId).prop('disabled', false);
317+
setCheckboxDisabledById(checkboxId, false);
318+
}
298319
if (numberOfDays === 'X')
299-
{ $('#fwScheduleXDAYS').prop('disabled', true); }
320+
{
321+
$('#fwScheduleXDAYS').prop('disabled', true);
322+
setCheckboxDisabledById('fwScheduleXDAYS', true);
323+
}
300324
}
301325
for (var indx = 0; indx < numOfDays.length; indx++)
302326
{
303327
if (numOfDays[indx] !== numberOfDays)
304328
{
305-
$('#fwSchedBoxDAYS' + numOfDays[indx]).prop('checked', false);
306-
$('#fwSchedBoxDAYS' + numOfDays[indx]).prop('disabled', false);
329+
var checkboxId = 'fwSchedBoxDAYS' + numOfDays[indx];
330+
$('#'+ checkboxId).prop('checked', false);
331+
$('#'+ checkboxId).prop('disabled', false);
332+
setCheckboxDisabledById(checkboxId, false);
307333
}
308334
}
309335
}
@@ -1594,15 +1620,18 @@ function InitializeFields()
15941620
{
15951621
// If the setting exists, enable the checkbox and set its state
15961622
autobackupEnabled.disabled = false;
1623+
$('#autobackupEnabled').prop('disabled', false);
1624+
setCheckboxDisabledById('autobackupEnabled', false);
15971625
autobackupEnabled.checked = (custom_settings.FW_Auto_Backupmon === 'ENABLED');
1598-
autobackupEnabled.style.opacity = '1'; // Fully opaque
15991626
}
16001627
else
16011628
{
16021629
// If the setting is missing, disable and gray out the checkbox
16031630
autobackupEnabled.disabled = true;
1631+
$('#autobackupEnabled').prop('disabled', true);
1632+
setCheckboxDisabledById('autobackupEnabled', true);
16041633
autobackupEnabled.checked = false; // Optionally uncheck
1605-
autobackupEnabled.style.opacity = '0.5'; // Grayed out appearance
1634+
16061635
}
16071636
}
16081637
@@ -1707,11 +1736,15 @@ function InitializeFields()
17071736
if (!isChangelogCheckEnabled || !approvalValue || approvalValue === 'TBD')
17081737
{
17091738
approveChangelogCheck.disabled = true;
1739+
$('#approveChangelogCheck').prop('disabled', true);
1740+
setCheckboxDisabledById('approveChangelogCheck', true);
17101741
approveChangelogCheck.checked = false;
17111742
}
17121743
else
17131744
{
17141745
approveChangelogCheck.disabled = false;
1746+
$('#approveChangelogCheck').prop('disabled', false);
1747+
setCheckboxDisabledById('approveChangelogCheck', false);
17151748
if (approvalValue === 'APPROVED')
17161749
{ approveChangelogCheck.checked = true; }
17171750
else

0 commit comments

Comments
 (0)