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

version 1.91, 2023/12/22 13:38:03 version 1.96, 2025/06/28 14:35:11
Line 96  function choicestart() { Line 96  function choicestart() {
   choicewrite('}');    choicewrite('}');
   choicewrite('table.LC_parmsel_table {font-size: 90%;}');    choicewrite('table.LC_parmsel_table {font-size: 90%;}');
   choicewrite('table.LC_parmsel_table tr td { padding: 5px; border: 1px solid #C8C8C8;}');    choicewrite('table.LC_parmsel_table tr td { padding: 5px; border: 1px solid #C8C8C8;}');
     choicewrite('fieldset.LC_grace { display:inline; }');
     choicewrite('fieldset.LC_grace > legend { font-weight: normal; }');
   choicewrite('-->');    choicewrite('-->');
   choicewrite('</style>');    choicewrite('</style>');
   choicewrite('</head>');    choicewrite('</head>');
Line 247  function month() { Line 249  function month() {
 }  }
   
   
 function intminute() {  function intminute(mins) {
    var thisminutes=cmins;      var thisminutes;
       if ((typeof mins === 'number') && (!isNaN(mins))) {
           thisminutes=mins;
       } else {
           thisminutes=cmins;
       }
     var i;      var i;
     var result = '';      var result = '';
     result += '<select name="minutes" onchange="parent.intcalc();">';      var funcname = '';
       if (pscat == 'grace') {
           funcname = 'parent.gracestringeval()';
       } else {
           funcname = 'parent.intcalc()';
       }
       result += '<select name="minutes" onchange="'+funcname+';">';
     for (i=0;i<=59;i++) {      for (i=0;i<=59;i++) {
         result += '<option value="'+i+'"';          result += '<option value="'+i+'"';
         if (i==thisminutes) {          if (i==thisminutes) {
Line 263  function intminute() { Line 276  function intminute() {
     return result;      return result;
 }   } 
   
 function inthour() {  function inthour(hours) {
    var thishours=chours;      var thishours;
       if ((typeof hours === 'number') && (!isNaN(hours))) {
           thishours=hours;
       } else {
           thishours=chours;
       }
     var i;      var i;
     var result = '';      var result = '';
     result += '<select name="hours" onchange="parent.intcalc();">';      var funcname = '';
       if (pscat == 'grace') {
           funcname = 'parent.gracestringeval()';
       } else {
           funcname = 'parent.intcalc()';
       }
       result += '<select name="hours" onchange="'+funcname+';">';
     for (i=0;i<=23;i++) {      for (i=0;i<=23;i++) {
         result += '<option value="'+i+'"';          result += '<option value="'+i+'"';
         if (i==thishours) {          if (i==thishours) {
Line 279  function inthour() { Line 303  function inthour() {
     return result;      return result;
 }  }
   
 function intsecond() {  function intsecond(secs) {
     var thisseconds=csecs;      var thisseconds;
       if ((typeof secs === 'number') && (!isNaN(secs))) {
           thisseconds=secs;
       } else {
           thisseconds=csecs;
       }
     var i;      var i;
     var result = '';      var result = '';
     result += '<select name="seconds" onchange="parent.intcalc();">';      var funcname = '';
       if (pscat == 'grace') {
           funcname = 'parent.gracestringeval()';
       } else {
           funcname = 'parent.intcalc()';
       }
       result += '<select name="seconds" onchange="'+funcname+';">';
     for (i=0;i<=59;i++) {      for (i=0;i<=59;i++) {
         result += '<option value="'+i+'"';          result += '<option value="'+i+'"';
         if (i==thisseconds) {          if (i==thisseconds) {
Line 295  function intsecond() { Line 330  function intsecond() {
     return result;      return result;
 }   } 
   
   function intday(days) {
 function intday() {      var thisdate;
    var thisdate=cdays;      if ((typeof days === 'number') && (!isNaN(days))) {
           thisdate=days;
       } else {
           thisdate=cdays;
       }
     var i;      var i;
     var result ='';      var result ='';
     result += '<select name="date" onchange="parent.intcalc();">';      var funcname = '';
       if (pscat == 'grace') {
           funcname = 'parent.gracestringeval()';
       } else {
           funcname = 'parent.intcalc()';
       }
       result += '<select name="date" onchange="'+funcname+';">';
     for (i=0;i<=31;i++) {      for (i=0;i<=31;i++) {
         result += '<option value="'+i+'"';          result += '<option value="'+i+'"';
         if (i==thisdate) {          if (i==thisdate) {
Line 642  function addIpRule(iptype) { Line 687  function addIpRule(iptype) {
     var frame = window.frames["choices"];      var frame = window.frames["choices"];
     if (frame.document.getElementById('LC_string_ipacc_inner_'+iptype)) {      if (frame.document.getElementById('LC_string_ipacc_inner_'+iptype)) {
         var innerDiv = frame.document.getElementById('LC_string_ipacc_inner_'+iptype);          var innerDiv = frame.document.getElementById('LC_string_ipacc_inner_'+iptype);
         var count = innerDiv.childNodes.length   
         var ipDiv = frame.document.createElement('div');          var ipDiv = frame.document.createElement('div');
         ipDiv.innerHTML = '<input type="text" size="10" name="setip'+iptype+'" onblur="parent.ipstringeval();" />'+          ipDiv.innerHTML = '<input type="text" size="12" name="setip'+iptype+'" onblur="parent.ipstringeval();" />'+"\n"+
                           '<a href="#" onclick="parent.removeIpRule(\''+iptype+'\',\''+count+'\')">Remove</a>';                            '<a href="#" onclick="parent.removeIpRule(this,\''+iptype+'\');return false;">Remove</a>';
         frame.document.getElementById('LC_string_ipacc_inner_'+iptype).appendChild(ipDiv);          innerDiv.appendChild(ipDiv);
     }      }
     return false;      return;
 }  }
   
 function removeIpRule(iptype,num) {  function removeIpRule(caller,iptype) {
     var frame = window.frames["choices"];      var frame = window.frames["choices"];
     if (frame.document.getElementById('LC_string_ipacc_inner_'+iptype)) {      if (frame.document.getElementById('LC_string_ipacc_inner_'+iptype)) {
         var innerDiv = frame.document.getElementById('LC_string_ipacc_inner_'+iptype);          var innerDiv = frame.document.getElementById('LC_string_ipacc_inner_'+iptype);
         for (var i=0; i<innerDiv.childNodes.length; i++) {          var divToRemove = caller.closest('div');
             if (i==num) {          if (divToRemove) {
                 innerDiv.removeChild(innerDiv.childNodes[i]);              innerDiv.removeChild(divToRemove);
                 ipstringeval();              ipstringeval();
                 break;          }
       }
       return;
   }
   
   function gracestringeval() {
       var items = choices.document.getElementsByName('setgrace');
       if (items.length) {
           if (items.length > 0) {
               svalue = '';
               for (var i=0; i<items.length; i++) {
                   var graceDiv = items[i].closest('div');
                   var timeSels = graceDiv.getElementsByTagName("select");
                   var total = 0;
                   if (timeSels.length) {
                       for (var j=0; j<timeSels.length; j++) {
                           var sname = timeSels[j].getAttribute('name');
                           var poss = parseInt(timeSels[j].options[timeSels[j].selectedIndex].value);
                           if (sname == 'date') {
                               if ((poss > 0) && (poss <= 31)) {
                                   total += (poss * 86400);
                               }
                           } else if (sname == 'hours') {
                               if ((poss > 0) && (poss < 24)) {
                                   total += (poss * 3600);
                               }
                           } else if (sname == 'minutes') {
                               if ((poss > 0) && (poss < 60)) {
                                   total += (poss * 60);
                               }
                           } else if (sname == 'seconds') {
                               if ((poss > 0) && (poss < 60)) {
                                   total += poss;
                               }
                           }
                       }
                   }
                   var inputElems = graceDiv.getElementsByTagName("input");
                   var frac = '';
                   var grad = '';
                   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)) {
                                       frac = poss;
                                   }
                               }
                           } else if (iname == 'grad') {
                               if (inputElems[j].checked) {
                                   grad = 1;
                               } else {
                                   grad = 0;
                               }
                           }
                       }
                   }
                   if (svalue === '') {
                       svalue = total+':'+frac+':'+grad;
                   } else {
                       svalue += ','+total+':'+frac+':'+grad;
                   }
             }              }
         }          }
     }      }
 }  }
   
   function graceitem(current) {
       var gdays = 0;
       var ghours = 0;
       var gmins = 0;
       var gsecs = 0;
       var gfrac = '';
       var checktext = '';
       var patternGrace = /^\d+:(0|1).?\d*:(0|1)$/;
       if ((current != '') && (current != 'undefined') && (patternGrace.test(current))) {
           var graceItems = new Array;
           graceItems = current.split(':');
           gsecs=graceItems[0];
           gdays=Math.floor(gsecs/86400);
           gsecs -= gdays*86400;
           ghours=Math.floor(gsecs/3600);
           gsecs -= ghours*3600;
           gmins=Math.floor(gsecs/60);
           gsecs -= gmins*60;
           gfrac = graceItems[1];
           if (graceItems[2] == 1) {
               checktext = ' checked="checked"';
           }
       }
       return '<input type="hidden" name="setgrace" value="" />'+
              '<fieldset class="LC_grace"><legend>Time past due</legend>'+
              '<span style="white-space:nowrap">'+intday(gdays)+' days </span>'+
              '<span style="white-space:nowrap">'+inthour(ghours)+' hours</span><br />'+
              '<span style="white-space:nowrap">'+intminute(gmins)+' mins</span>'+
              '<span style="white-space:nowrap">'+intsecond(gsecs)+' secs</span>'+
              '</fieldset><fieldset class="LC_grace"><legend>Partial Credit</legend>'+
              '<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();" />'+
              'gradual</label></fieldset>'+
              '<a href="#" onclick="parent.removeGrace(this);return false;">Remove</a><hr />';
   }
   
   function addGrace() {
       var frame = window.frames["choices"];
       if (frame.document.getElementById('LC_string_grace_inner')) {
           var innerDiv = frame.document.getElementById('LC_string_grace_inner');
           var graceDiv = frame.document.createElement('div');
           graceDiv.innerHTML = graceitem();
           innerDiv.appendChild(graceDiv);
       }
       return;
   }
   
   function removeGrace(caller) {
       var frame = window.frames["choices"];
       if (frame.document.getElementById('LC_string_grace_inner')) {
           var innerDiv = frame.document.getElementById('LC_string_grace_inner');
           var divToRemove = caller.closest('div');
           if (divToRemove) {
               innerDiv.removeChild(divToRemove);
               gracestringeval();
           }
       }
       return;
   }
   
 function radiostringeval(newval) {  function radiostringeval(newval) {
    svalue=newval;     svalue=newval;
    draw();     draw();
Line 756  function draw() { Line 925  function draw() {
    if (ptype=='string') {     if (ptype=='string') {
       if (pscat == 'ip') {        if (pscat == 'ip') {
           choicewrite(' action="javascript:ipstringeval();"');            choicewrite(' action="javascript:ipstringeval();"');
         } else if (pscat == 'grace') {
             choicewrite(' action="javascript:gracestringeval();"');
       } else {        } else {
           choicewrite(' action="javascript:stringeval();"');            choicewrite(' action="javascript:stringeval();"');
       }        }
Line 1182  function draw() { Line 1353  function draw() {
             }              }
             var curripaccess = [currallow,currdeny];              var curripaccess = [currallow,currdeny];
             tablestart('IP Number/Name');              tablestart('IP Number/Name');
             choicewrite('<tr><th>Allow from</th><th>Deny from</th></tr><tr>');              choicewrite('<tr><th>Allow from</th><th>Deny from</th></tr><tr>'+"\n");
             var acctypes = ['allow','deny'];              var acctypes = ['allow','deny'];
             for (var i=0; i<acctypes.length; i++) {              for (var i=0; i<acctypes.length; i++) {
                 choicewrite('<td valign="top">'+                  choicewrite(['<td valign="top">',
                             '<div class="LC_string_ipacc_wrap" id="LC_string_ipacc_'+acctypes[i]+'">'+                               '<div>',
                             '<div class="LC_string_ipacc_inner" id="LC_string_ipacc_inner_'+acctypes[i]+'">');                               '<div id="LC_string_ipacc_inner_'+acctypes[i]+'">'].join("\n"));
                 for (var j=0; j<curripaccess[i].length; j++) {                  for (var j=0; j<curripaccess[i].length; j++) {
                     choicewrite('<div><input type="text" size="10" name="setip'+acctypes[i]+'" value="'+curripaccess[i][j]+'" onblur="parent.ipstringeval();" />');                      choicewrite(['<div><input type="text" size="12" name="setip'+acctypes[i]+'" value="'+curripaccess[i][j]+'" onblur="parent.ipstringeval();" />',
                     choicewrite('<a href="#" onclick="parent.removeIpRule(\''+acctypes[i]+'\',\''+j+'\')">Remove</a>');                                   '<a href="#" onclick="parent.removeIpRule(this,\''+acctypes[i]+'\');return false;">Remove</a>',
                     choicewrite('</div>');                                   '</div>'].join("\n"));
                 }                  }
                 choicewrite('</div><button onclick="parent.addIpRule(\''+acctypes[i]+'\');">Add item</button>');                  choicewrite('</div><button onclick="parent.addIpRule(\''+acctypes[i]+'\');return false;">Add item</button>'+"\n");
             }              }
             choicewrite('</div></td></tr></table>');              choicewrite('</div></td></tr></table>'+"\n");
         }          }
         if (pscat=='fileext') {          if (pscat=='fileext') {
             tablestart('Allowed File Extensions');              tablestart('Allowed File Extensions');
Line 1519  function draw() { Line 1690  function draw() {
            choicewrite('</span></div>');             choicewrite('</span></div>');
            choicewrite('</td></tr></table>');             choicewrite('</td></tr></table>');
        }         }
          if (pscat=='grace') {
              tablestart('Grace period after due date');
              choicewrite('<tr><td colspan="3" valign="top">'+
                          '<div id="LC_string_grace_wrap">'+
                          '<div id="LC_string_grace_inner">');
              if ((svalue != '') && (typeof(svalue) != 'undefined')) {
                  var patternComma = /,/;
                  var patternGrace = /^\d+:(0|1).?\d*:(0|1)$/;
                  var current = new Array;
                  if (patternComma.test(svalue)) {
                      current = svalue.split(',');
                  } else {
                      current = [svalue];
                  } 
                  for (var i=0; i<current.length; i++) {
                      if (patternGrace.test(current[i])) {
                          choicewrite('<div>');
                          choicewrite(graceitem(current[i]));
                          choicewrite('</div>');
                      }
                  }
              } else {
                  choicewrite('<div>');
                  choicewrite(graceitem());
                  choicewrite('</div>');
              }
              choicewrite('</div><button onclick="parent.addGrace();return false;">Add another?</button>');
              choicewrite('</div></td></tr></table>');
          }
    }     }
   
    if (ptype=='color') {     if (ptype=='color') {
Line 1847  function init() { Line 2047  function init() {
      else if (pscat == 'fileext')      { sopt('fileext','File Extension'); }       else if (pscat == 'fileext')      { sopt('fileext','File Extension'); }
      else if (pscat == 'useslots')     { sopt('useslots','Slots control access'); }       else if (pscat == 'useslots')     { sopt('useslots','Slots control access'); }
      else if (pscat == 'deeplink')     { sopt('deeplink','Deep-linked items'); }       else if (pscat == 'deeplink')     { sopt('deeplink','Deep-linked items'); }
      else if (pscat == 'tex')   { sopt('texdisplay','TeX File Display'); }       else if (pscat == 'tex')          { sopt('texdisplay','TeX File Display'); }
        else if (pscat == 'grace')        { sopt('grace','Grace period'); }
      else { pscat = 'any'; }       else { pscat = 'any'; }
      if (pscat != 'deeplink') { sopt('any','String Value'); }       if (pscat != 'deeplink') { sopt('any','String Value'); }
   }    }
Line 1917  function init() { Line 2118  function init() {
           document.getElementById("LCparampopup").rows="60,*";            document.getElementById("LCparampopup").rows="60,*";
       }        }
   }    }
     if (pscat == 'grace')  {
         if (psmap==1) {
             document.getElementById("LCparampopup").rows="105,*";
         } else {
             document.getElementById("LCparampopup").rows="65,*";
         }
     }
   draw();    draw();
     
 }  }

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


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