@@ -339,6 +339,49 @@ function ToggleDaysOfWeek (isEveryXDayChecked, numberOfDays)
339339 }
340340}
341341
342+ function MerlinAU_TimeSelectFallbackAttach (id ) {
343+ var input = document .getElementById (id);
344+ if (! input) return ;
345+
346+ var isFirefox = / firefox/ i .test (navigator .userAgent );
347+ if (! isFirefox && typeof input .showPicker === ' function' ) return ;
348+
349+ function pad (n ){ return (n< 10 ? ' 0' : ' ' )+ n; }
350+ function parseHHMM (v ){
351+ v = (v|| ' ' ).trim ();
352+ var m = / ^ ([01] \d | 2[0-3 ] ):([0-5 ] \d )$ / .exec (v);
353+ if (m) return {h: + m[1 ], m: + m[2 ]};
354+ var d = new Date (); return {h: d .getHours (), m: d .getMinutes ()};
355+ }
356+
357+ var wrap = document .createElement (' span' );
358+ var selH = document .createElement (' select' );
359+ var selM = document .createElement (' select' );
360+
361+ for (var h= 0 ; h< 24 ; h++ ) selH .add (new Option (pad (h), h));
362+ for (var m= 0 ; m< 60 ; m++ ) selM .add (new Option (pad (m), m));
363+
364+ input .readOnly = true ;
365+
366+ function apply (){
367+ var hh = pad (+ selH .value ), mm = pad (+ selM .value );
368+ input .value = hh + ' :' + mm;
369+ if (window .ClearTimePickerInvalid ) window .ClearTimePickerInvalid (input);
370+ if (window .ValidateTimePicker ) window .ValidateTimePicker (input);
371+ }
372+
373+ if (input .nextSibling ) input .parentNode .insertBefore (wrap, input .nextSibling );
374+ else input .parentNode .appendChild (wrap);
375+ wrap .appendChild (selH);
376+ wrap .appendChild (document .createTextNode (' : ' ));
377+ wrap .appendChild (selM);
378+
379+ var start = parseHHMM (input .value );
380+ selH .value = start .h ; selM .value = start .m ;
381+ selH .onchange = apply; selM .onchange = apply;
382+ apply (); // normalize displayed HH:MM
383+ }
384+
342385/* *---------------------------------------**/
343386/* * Added by ExtremeFiretop [2025-Aug-24] **/
344387/* *---------------------------------------**/
@@ -2107,6 +2150,7 @@ function initial()
21072150 UpdateScriptVersion ();
21082151 showhide (' Script_AutoUpdate_SchedText' ,true );
21092152 showhide (' FW_AutoUpdate_CheckSchedText' ,true );
2153+ MerlinAU_TimeSelectFallbackAttach (' fwScheduleTIME' );
21102154
21112155 // Debugging iframe behavior //
21122156 var hiddenFrame = document .getElementById (' hidden_frame' );
@@ -2929,7 +2973,7 @@ function initializeCollapsibleSections()
29292973 name= " fwScheduleTIME"
29302974 value= " 00:00"
29312975 step= " 60"
2932- style= " width: 140px ; margin-left: 18px; margin-top: 6px; margin-bottom: 10px;"
2976+ style= " width: 120px ; margin-left: 18px; margin-top: 6px; margin-bottom: 10px;"
29332977 oninput= " ValidateTimePicker(this)"
29342978 onblur= " ValidateTimePicker(this)"
29352979 / >
0 commit comments