Diff for /rat/client/parameter.html between versions 1.96 and 1.98

version 1.96, 2025/06/28 14:35:11 version 1.98, 2025/07/02 16:08:37
Line 328  function intsecond(secs) { Line 328  function intsecond(secs) {
     }      }
     result += '</select>';      result += '</select>';
     return result;      return result;
 }   }
   
   function intweek(weeks) {
       var thisweek;
       if ((typeof weeks === 'number') && (!isNaN(weeks))) {
           thisweek=weeks;
       }
       var i;
       var result ='';
       var funcname = '';
       if (pscat == 'grace') {
           funcname = 'parent.gracestringeval()';
       }
       result += '<select name="weeks" onchange="'+funcname+';">';
       for (i=0;i<=52;i++) {
           result += '<option value="'+i+'"';
           if (i==thisweek) {
               result += ' selected="selected"';
           }
           result += '>'+i+'</option>';
       }
       result += '</select>';
       return result;
   }
   
 function intday(days) {  function intday(days) {
     var thisdate;      var thisdate;
       var maxallowed;
     if ((typeof days === 'number') && (!isNaN(days))) {      if ((typeof days === 'number') && (!isNaN(days))) {
         thisdate=days;          thisdate=days;
     } else {      } else {
Line 342  function intday(days) { Line 366  function intday(days) {
     var funcname = '';      var funcname = '';
     if (pscat == 'grace') {      if (pscat == 'grace') {
         funcname = 'parent.gracestringeval()';          funcname = 'parent.gracestringeval()';
           maxallowed = 6;
     } else {      } else {
         funcname = 'parent.intcalc()';          funcname = 'parent.intcalc()';
           maxallowed = 31;
     }      }
     result += '<select name="date" onchange="'+funcname+';">';      result += '<select name="date" onchange="'+funcname+';">';
     for (i=0;i<=31;i++) {      for (i=0;i<=maxallowed;i++) {
         result += '<option value="'+i+'"';          result += '<option value="'+i+'"';
         if (i==thisdate) {          if (i==thisdate) {
             result += ' selected="selected"';              result += ' selected="selected"';
Line 459  function validateInterval() { Line 485  function validateInterval() {
     assemble();      assemble();
 }  }
   
   function validateGrace() {
       var items = choices.document.getElementsByName('setgrace');
       var needpcr = 0;
       var neednum = 0;
       if (items) {
           if (items.length) {
               if (items.length > 0) {
                   for (var i=0; i<items.length; i++) {
                       var numnotnull = 0;
                       var fracnotnull = 0;
                       var graceDiv = items[i].closest('div');
                       var timeSels = graceDiv.getElementsByTagName("select");
                       if (timeSels.length) {
                           for (var j=0; j<timeSels.length; j++) {
                               var selidx = timeSels[j].selectedIndex;
                               if (selidx >= 0) {
                                   var val = timeSels[j].options[selidx].value;
                                   if ((val !== null) && (val !== '') && (val !== 'undefined')) {
                                       numnotnull = 1;
                                       break;
                                   }
                               }
                           }
                       }
                       var inputElems = graceDiv.getElementsByTagName("input");
                       if (inputElems.length) {
                           for (var j=0; j<inputElems.length; j++) {
                               var iname = inputElems[j].getAttribute('name');
                               if (iname == 'frac') {
                                   var ival = inputElems[j].value;
                                   ival.trim();
                                   var poss = parseFloat(ival);
                                   if ((typeof poss === 'number') && (!isNaN(poss))) {
                                       if ((poss => 0) && (poss <= 1)) {
                                           fracnotnull = 1; 
                                       }
                                   }
                                   break;
                               }
                           }
                       }
                       if (numnotnull && !fracnotnull) {   
                           needpcr ++;
                       }
                       if (fracnotnull && !numnotnull) {
                           neednum ++;
                       }
                   }
                   if (needpcr) {
                       if (needpcr == 1) {
                           alert("Grace period setting is incomplete: enter a number between 0 and 1.0 for 'Partial Credit', or use 'Remove'.");
                       } else {
                           alert(needpcr+" Grace period settings are incomplete: for each enter a number between 0 and 1.0 for 'Partial Credit', or use 'Remove'.");
                       }
                       return;
                   }
                   if (neednum) {
                       if (neednum == 1) {
                           alert("Grace period setting is incomplete: select a number in at least one of the 'Time past due' select boxes, or use 'Remove'."); 
                       } else {
                           alert(neednum +" Grace period settings are incomplete: for each select a number in at least one of the 'Time past due' select boxes, or use 'Remove'."); 
                       }
                       return;
                   }
               }
           }
       }
       assemble();
   }
   
 function validateDeepLink() {  function validateDeepLink() {
     var sform=choices.document.forms.sch;      var sform=choices.document.forms.sch;
     svalue = sform.deeplinkstate.options[sform.deeplinkstate.selectedIndex].value+',';      svalue = sform.deeplinkstate.options[sform.deeplinkstate.selectedIndex].value+',';
Line 721  function gracestringeval() { Line 817  function gracestringeval() {
                     for (var j=0; j<timeSels.length; j++) {                      for (var j=0; j<timeSels.length; j++) {
                         var sname = timeSels[j].getAttribute('name');                          var sname = timeSels[j].getAttribute('name');
                         var poss = parseInt(timeSels[j].options[timeSels[j].selectedIndex].value);                          var poss = parseInt(timeSels[j].options[timeSels[j].selectedIndex].value);
                         if (sname == 'date') {                          if (sname == 'weeks') {
                             if ((poss > 0) && (poss <= 31)) {                              if ((poss > 0) && (poss <= 52)) {
                                   total += (poss * 604800);
                               }
                           } else if (sname == 'date') {
                               if ((poss > 0) && (poss < 7)) {
                                 total += (poss * 86400);                                  total += (poss * 86400);
                             }                              }
                         } else if (sname == 'hours') {                          } else if (sname == 'hours') {
Line 733  function gracestringeval() { Line 833  function gracestringeval() {
                             if ((poss > 0) && (poss < 60)) {                              if ((poss > 0) && (poss < 60)) {
                                 total += (poss * 60);                                  total += (poss * 60);
                             }                              }
                         } else if (sname == 'seconds') {  
                             if ((poss > 0) && (poss < 60)) {  
                                 total += poss;  
                             }  
                         }                          }
                     }                      }
                 }                  }
Line 775  function gracestringeval() { Line 871  function gracestringeval() {
 }  }
   
 function graceitem(current) {  function graceitem(current) {
       var gweeks = 0;
     var gdays = 0;      var gdays = 0;
     var ghours = 0;      var ghours = 0;
     var gmins = 0;      var gmins = 0;
Line 786  function graceitem(current) { Line 883  function graceitem(current) {
         var graceItems = new Array;          var graceItems = new Array;
         graceItems = current.split(':');          graceItems = current.split(':');
         gsecs=graceItems[0];          gsecs=graceItems[0];
           gweeks=Math.floor(gsecs/604800);
           gsecs -= gweeks*604800;
         gdays=Math.floor(gsecs/86400);          gdays=Math.floor(gsecs/86400);
         gsecs -= gdays*86400;          gsecs -= gdays*86400;
         ghours=Math.floor(gsecs/3600);          ghours=Math.floor(gsecs/3600);
Line 799  function graceitem(current) { Line 898  function graceitem(current) {
     }      }
     return '<input type="hidden" name="setgrace" value="" />'+      return '<input type="hidden" name="setgrace" value="" />'+
            '<fieldset class="LC_grace"><legend>Time past due</legend>'+             '<fieldset class="LC_grace"><legend>Time past due</legend>'+
            '<span style="white-space:nowrap">'+intday(gdays)+' days </span>'+             '<span style="white-space:nowrap">'+intweek(gweeks)+' weeks </span>'+
            '<span style="white-space:nowrap">'+inthour(ghours)+' hours</span><br />'+             '<span style="white-space:nowrap">'+intday(gdays)+' days </span><br />'+
            '<span style="white-space:nowrap">'+intminute(gmins)+' mins</span>'+             '<span style="white-space:nowrap">'+inthour(ghours)+' hours </span>'+
            '<span style="white-space:nowrap">'+intsecond(gsecs)+' secs</span>'+             '<span style="white-space:nowrap">'+intminute(gmins)+' mins </span>'+
            '</fieldset><fieldset class="LC_grace"><legend>Partial Credit</legend>'+             '</fieldset><fieldset class="LC_grace"><legend>Partial Credit</legend>'+
            '<input type="text" size="3" name="frac" value="'+gfrac+'" onblur="parent.gracestringeval();" />'+             '<input type="text" size="3" name="frac" value="'+gfrac+'" onblur="parent.gracestringeval();" />'+
            '&nbsp;&nbsp;<label><input type="checkbox" value="1" name="grad"'+checktext+' onclick="parent.gracestringeval();" />'+             '&nbsp;&nbsp;<label><input type="checkbox" value="1" name="grad"'+checktext+' onclick="parent.gracestringeval();" />'+
Line 2083  function init() { Line 2182  function init() {
       selwrite('<a href="javascript:parent.validateInterval();');        selwrite('<a href="javascript:parent.validateInterval();');
   } else if ((ptype=='string') && (pscat=='deeplink')) {    } else if ((ptype=='string') && (pscat=='deeplink')) {
       selwrite('<a href="javascript:parent.validateDeepLink();');        selwrite('<a href="javascript:parent.validateDeepLink();');
     } else if ((ptype=='string') && (pscat=='grace')) {
         selwrite('<a href="javascript:parent.validateGrace();');
   } else {    } else {
       selwrite('<a href="javascript:parent.assemble();');        selwrite('<a href="javascript:parent.assemble();');
   }    }

Removed from v.1.96  
changed lines
  Added in v.1.98


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>