version 1.90, 2022/07/07 03:37:02
|
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();" />'+ |
|
' <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 1138 function draw() {
|
Line 1309 function draw() {
|
if (svalue=='no') { choicewrite(' checked="checked"'); } |
if (svalue=='no') { choicewrite(' checked="checked"'); } |
choicewrite(' /> No</label><br />'); |
choicewrite(' /> No</label><br />'); |
} |
} |
|
if (pscat=='tex') { |
|
tablestart('TeX file display'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<label><input name="stringval" value="tth"'+ |
|
' type="radio" '+callradiostringeval('tth')); |
|
if (svalue=='tth') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> tth (TeX to HTML)</label><br />'); |
|
choicewrite('<label><input name="stringval" value="mathjax"'+ |
|
' type="radio" '+callradiostringeval('mathjax')); |
|
if (svalue=='mathjax') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> MathJax</label><br />'); |
|
} |
if (pscat=='ip') { |
if (pscat=='ip') { |
var currallow = new Array; |
var currallow = new Array; |
var currdeny = new Array; |
var currdeny = new Array; |
Line 1170 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 1507 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 1835 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 == '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 1904 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(); |
|
|
} |
} |