version 1.22, 2003/04/19 15:34:06
|
version 1.79, 2019/01/06 04:02:19
|
Line 1
|
Line 1
|
<html> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" |
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> |
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
<!-- |
<!-- |
The LearningOnline Network with CAPA |
The LearningOnline Network with CAPA |
Parameter Input Window |
Parameter Input Window |
Line 27 Parameter Input Window
|
Line 29 Parameter Input Window
|
// |
// |
// http://www.lon-capa.org/ |
// http://www.lon-capa.org/ |
// |
// |
06/16/00,06/17,11/17,11/18,11/23,11/27,11/28,12/15,12/16, |
|
03/21/01,03/24,06/26 Gerd Kortemeyer |
|
08/08 Gerd Kortemeyer |
|
--> |
--> |
<head> |
<head> |
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
<title>LON-CAPA</title> |
<title>LON-CAPA</title> |
</head> |
|
|
|
<script> |
<script type="text/javascript"> |
|
// <![CDATA[ |
|
|
var ptype=''; |
var ptype=''; |
var pvalue=''; |
var pvalue=''; |
|
var pmodval=''; |
|
var pextraval=''; |
|
var pextravaltwo=''; |
var preturn=''; |
var preturn=''; |
var pcode=''; |
var pcode=''; |
var pscat=''; |
var pscat=''; |
var pmarker=''; |
var pmarker=''; |
|
var pmodal=''; |
var pname=''; |
var pname=''; |
|
var precursive=''; |
|
var pnonreccol=''; |
|
var pmarkerst=''; |
|
var pparm=''; |
|
|
|
var defhour=0; |
|
var defmin=0; |
|
var defsec=0; |
|
|
var svalue; |
var svalue; |
var stype; |
var stype; |
Line 66 function selwrite(text) {
|
Line 78 function selwrite(text) {
|
} |
} |
|
|
function choicestart() { |
function choicestart() { |
this.window.choices.document.clear(); |
this.window.choices.document.open(); |
choicewrite('<html><body bgcolor="#FFFFFF">'); |
choicewrite('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'); |
|
choicewrite('<html xmlns="http://www.w3.org/1999/xhtml">'); |
|
choicewrite('<head>'); |
|
choicewrite('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'); |
|
choicewrite('<title>LON-CAPA</title>'); |
|
choicewrite('<style type="text/css">'); |
|
choicewrite('<!--'); |
|
choicewrite('body {'); |
|
choicewrite('font-family: Verdana,Arial,Helvetica,sans-serif;'); |
|
choicewrite('line-height:130%;'); |
|
choicewrite('font-size:0.83em;'); |
|
choicewrite('background: #FFFFFF;'); |
|
choicewrite('}'); |
|
choicewrite('table.LC_parmsel_table {font-size: 90%;}'); |
|
choicewrite('table.LC_parmsel_table tr td { padding: 5px; border: 1px solid #C8C8C8;}'); |
|
choicewrite('-->'); |
|
choicewrite('</style>'); |
|
choicewrite('</head>'); |
|
choicewrite('<body>'); |
} |
} |
|
|
function choiceend() { |
function choiceend() { |
Line 80 function choicewrite(text) {
|
Line 110 function choicewrite(text) {
|
} |
} |
|
|
function tablestart(headtext) { |
function tablestart(headtext) { |
choicewrite('<table><tr bgcolor="#AAFFAA"><th colspan=3>'+ |
choicewrite('<table class="LC_parmsel_table"><tr bgcolor="#C5DB99"><th colspan="3">'+ |
headtext+'</th></tr>'); |
headtext+'</th></tr>'); |
} |
} |
|
|
function valline(text,id1,id2) { |
function valline(text,id1,id2) { |
choicewrite('<tr bgcolor="#AAFFAA"><td>'+text+ |
choicewrite('<tr><td>'+text+ |
'</td><td><input type=text size=4 name=val'+ |
'</td><td><input type="text" size="4" name="val'+ |
id1+'></td><td>incl:<input type=checkbox name=val'+ |
id1+'" /></td><td>incl:<input type="checkbox" name="val'+ |
id2+'></td></tr>'); |
id2+'" /></td></tr>'); |
|
} |
|
|
|
function escapeHTML(text) { |
|
text = text.replace(/&/g, '&'); |
|
text = text.replace(/"/g, '"'); |
|
text = text.replace(/</g, '<'); |
|
text = text.replace(/>/g, '>'); |
|
return text; |
} |
} |
|
|
function datecalc() { |
function datecalc() { |
Line 107 function datecalc() {
|
Line 145 function datecalc() {
|
function hour() { |
function hour() { |
var thishour=cdate.getHours(); |
var thishour=cdate.getHours(); |
var i; var j; |
var i; var j; |
choicewrite('<select name=hours onChange="parent.datecalc();">'); |
choicewrite('<select name="hours" onchange="parent.datecalc();">'); |
for (i=0;i<=23;i++) { |
for (i=0;i<=23;i++) { |
choicewrite('<option value='+i); |
choicewrite('<option value="'+i+'"'); |
if (i==thishour) { |
if (i==thishour) { |
choicewrite(' selected'); |
choicewrite(' selected="selected"'); |
} |
} |
choicewrite('>'); |
choicewrite('>'); |
if (i==12) { choicewrite('noon'); } else { |
if (i==12) { choicewrite('noon'); } else { |
Line 131 function hour() {
|
Line 169 function hour() {
|
function minute() { |
function minute() { |
var thisminutes=cdate.getMinutes(); |
var thisminutes=cdate.getMinutes(); |
var i; |
var i; |
choicewrite('<select name=minutes onChange="parent.datecalc();">'); |
choicewrite('<select name="minutes" onchange="parent.datecalc();">'); |
for (i=0;i<=59;i++) { |
for (i=0;i<=59;i++) { |
choicewrite('<option value='+i); |
choicewrite('<option value="'+i+'"'); |
if (i==thisminutes) { |
if (i==thisminutes) { |
choicewrite(' selected'); |
choicewrite(' selected="selected"'); |
} |
} |
choicewrite('>'+i+'</option>'); |
choicewrite('>'+i+'</option>'); |
} |
} |
Line 145 function minute() {
|
Line 183 function minute() {
|
function second() { |
function second() { |
var thisseconds=cdate.getSeconds(); |
var thisseconds=cdate.getSeconds(); |
var i; |
var i; |
choicewrite('<select name=seconds onChange="parent.datecalc();">'); |
choicewrite('<select name="seconds" onchange="parent.datecalc();">'); |
for (i=0;i<=59;i++) { |
for (i=0;i<=59;i++) { |
choicewrite('<option value='+i); |
choicewrite('<option value="'+i+'"'); |
if (i==thisseconds) { |
if (i==thisseconds) { |
choicewrite(' selected'); |
choicewrite(' selected="selected"'); |
} |
} |
choicewrite('>'+i+'</option>'); |
choicewrite('>'+i+'</option>'); |
} |
} |
choicewrite('</select>'); |
choicewrite('</select>'); |
} |
} |
|
|
|
|
function date() { |
function date() { |
var thisdate=cdate.getDate(); |
var thisdate=cdate.getDate(); |
var i; |
var i; |
choicewrite('<select name=date onChange="parent.datecalc();">'); |
choicewrite('<select name="date" onchange="parent.datecalc();">'); |
for (i=1;i<=31;i++) { |
for (i=1;i<=31;i++) { |
choicewrite('<option value='+i); |
choicewrite('<option value="'+i+'"'); |
if (i==thisdate) { |
if (i==thisdate) { |
choicewrite(' selected'); |
choicewrite(' selected="selected"'); |
} |
} |
choicewrite('>'+i+'</option>'); |
choicewrite('>'+i+'</option>'); |
} |
} |
Line 175 function year() {
|
Line 213 function year() {
|
var thisyear=cdate.getFullYear(); |
var thisyear=cdate.getFullYear(); |
var nowdate=new Date(); |
var nowdate=new Date(); |
var nowyear=nowdate.getFullYear(); |
var nowyear=nowdate.getFullYear(); |
|
if ( !thisyear ) { thisyear=nowyear; } |
var loweryear=thisyear-2; |
var loweryear=thisyear-2; |
var upperyear=thisyear+5; |
var upperyear=thisyear+5; |
if (thisyear>nowyear) { loweryear=nowyear-2; } |
if (thisyear>nowyear) { loweryear=nowyear-2; } |
if (thisyear<nowyear) { upperyear=nowyear+5; } |
if (thisyear<nowyear) { upperyear=nowyear+5; } |
var i; |
var i; |
choicewrite('<select name=year onChange="parent.datecalc();">'); |
choicewrite('<select name="year" onchange="parent.datecalc();">'); |
for (i=loweryear;i<=upperyear;i++) { |
for (i=loweryear;i<=upperyear;i++) { |
choicewrite('<option value='+i); |
choicewrite('<option value="'+i+'"'); |
if (i==thisyear) { |
if (i==thisyear) { |
choicewrite(' selected'); |
choicewrite(' selected="selected"'); |
} |
} |
choicewrite('>'+i+'</option>'); |
choicewrite('>'+i+'</option>'); |
} |
} |
Line 194 function year() {
|
Line 233 function year() {
|
function month() { |
function month() { |
var thismonth=cdate.getMonth(); |
var thismonth=cdate.getMonth(); |
var i; |
var i; |
choicewrite('<select name=month onChange="parent.datecalc();">'); |
choicewrite('<select name="month" onchange="parent.datecalc();">'); |
for (i=0;i<=11;i++) { |
for (i=0;i<=11;i++) { |
choicewrite('<option value='+i); |
choicewrite('<option value="'+i+'"'); |
if (i==thismonth) { |
if (i==thismonth) { |
choicewrite(' selected'); |
choicewrite(' selected="selected"'); |
} |
} |
choicewrite('>'+months[i]+'</option>'); |
choicewrite('>'+months[i]+'</option>'); |
} |
} |
choicewrite('</select>'); |
choicewrite('</select>'); |
} |
} |
|
|
|
|
function intminute() { |
function intminute() { |
var thisminutes=cmins; |
var thisminutes=cmins; |
var i; |
var i; |
choicewrite('<select name=minutes onChange="parent.intcalc();">'); |
var result = ''; |
|
result += '<select name="minutes" onchange="parent.intcalc();">'; |
for (i=0;i<=59;i++) { |
for (i=0;i<=59;i++) { |
choicewrite('<option value='+i); |
result += '<option value="'+i+'"'; |
if (i==thisminutes) { |
if (i==thisminutes) { |
choicewrite(' selected'); |
result += ' selected="selected"'; |
} |
} |
choicewrite('>'+i+'</option>'); |
result += '>'+i+'</option>'; |
} |
} |
choicewrite('</select>'); |
result += '</select>'; |
|
return result; |
} |
} |
|
|
function inthour() { |
function inthour() { |
var thishours=chours; |
var thishours=chours; |
var i; |
var i; |
choicewrite('<select name=hours onChange="parent.intcalc();">'); |
var result = ''; |
|
result += '<select name="hours" onchange="parent.intcalc();">'; |
for (i=0;i<=23;i++) { |
for (i=0;i<=23;i++) { |
choicewrite('<option value='+i); |
result += '<option value="'+i+'"'; |
if (i==thishours) { |
if (i==thishours) { |
choicewrite(' selected'); |
result += ' selected="selected"'; |
} |
} |
choicewrite('>'+i+'</option>'); |
result += '>'+i+'</option>'; |
} |
} |
choicewrite('</select>'); |
result += '</select>'; |
} |
return result; |
|
} |
|
|
function intsecond() { |
function intsecond() { |
var thisseconds=csecs; |
var thisseconds=csecs; |
var i; |
var i; |
choicewrite('<select name=seconds onChange="parent.intcalc();">'); |
var result = ''; |
|
result += '<select name="seconds" onchange="parent.intcalc();">'; |
for (i=0;i<=59;i++) { |
for (i=0;i<=59;i++) { |
choicewrite('<option value='+i); |
result += '<option value="'+i+'"'; |
if (i==thisseconds) { |
if (i==thisseconds) { |
choicewrite(' selected'); |
result += ' selected="selected"'; |
} |
} |
choicewrite('>'+i+'</option>'); |
result += '>'+i+'</option>'; |
} |
} |
choicewrite('</select>'); |
result += '</select>'; |
|
return result; |
} |
} |
|
|
|
|
function intday() { |
function intday() { |
var thisdate=cdays; |
var thisdate=cdays; |
var i; |
var i; |
choicewrite('<select name=date onChange="parent.intcalc();">'); |
var result =''; |
|
result += '<select name="date" onchange="parent.intcalc();">'; |
for (i=0;i<=31;i++) { |
for (i=0;i<=31;i++) { |
choicewrite('<option value='+i); |
result += '<option value="'+i+'"'; |
if (i==thisdate) { |
if (i==thisdate) { |
choicewrite(' selected'); |
result += ' selected="selected"'; |
} |
} |
choicewrite('>'+i+'</option>'); |
result += '>'+i+'</option>'; |
} |
} |
choicewrite('</select>'); |
result += '</select>'; |
|
return result; |
} |
} |
|
|
function intcalc() { |
function intcalc() { |
Line 269 function intcalc() {
|
Line 316 function intcalc() {
|
sform.hours.options[sform.hours.selectedIndex].value*1)*60+ |
sform.hours.options[sform.hours.selectedIndex].value*1)*60+ |
sform.minutes.options[sform.minutes.selectedIndex].value*1)*60+ |
sform.minutes.options[sform.minutes.selectedIndex].value*1)*60+ |
sform.seconds.options[sform.seconds.selectedIndex].value*1; |
sform.seconds.options[sform.seconds.selectedIndex].value*1; |
draw(); |
if ((ptype=='date') && (pscat=='interval')) { |
|
var newpmodval = ''; |
|
var newpextraval = ''; |
|
var newpextravaltwo = 'Done'; |
|
if (sform.donebutton.length) { |
|
for (var i=0; i<sform.donebutton.length; i++) { |
|
if (sform.donebutton[i].checked) { |
|
if (sform.donebutton[i].value == '_done') { |
|
newpmodval = sform.donebutton[i].value; |
|
newpextravaltwo = sform.donebutton_text.value; |
|
} else { |
|
if (sform.donebutton[i].value == '_done_proctor') { |
|
newpmodval = sform.donebutton[i].value; |
|
newpextraval = sform.donebutton_proctorkey.value; |
|
newpextravaltwo = sform.donebutton_text.value; |
|
newpextravaltwo = newpextravaltwo.replace(/:/g,''); |
|
} |
|
} |
|
} |
|
} |
|
} |
|
pmodval = newpmodval; |
|
pextraval = newpextraval; |
|
pextravaltwo = newpextravaltwo; |
|
draw(); |
|
if (pmodval) { |
|
var doneRegExp = /^(_done)(|_proctor)$/; |
|
var donevals = pmodval.match(doneRegExp); |
|
if (donevals.length == 3) { |
|
svalue += donevals[1]; |
|
} |
|
if (newpextravaltwo) { |
|
if (newpextravaltwo != 'Done') { |
|
svalue += ':'+newpextravaltwo+':'; |
|
} |
|
} |
|
if (donevals[2] != '') { |
|
svalue += donevals[2]; |
|
if (pextraval != '') { |
|
svalue += '_'+pextraval; |
|
} |
|
} |
|
} |
|
} else { |
|
draw(); |
|
} |
|
} |
|
|
|
function toggleSecret() { |
|
var sform=choices.document.forms.sch; |
|
if (sform.donebutton.length) { |
|
for (var i=0; i<sform.donebutton.length; i++) { |
|
if (sform.donebutton[i].checked) { |
|
if (sform.donebutton[i].value == '') { |
|
if (document.getElementById('donebuttontextdiv')) { |
|
document.getElementById('donebuttontextdiv').style.display='none'; |
|
} |
|
} else { |
|
if (document.getElementById('donebuttontextdiv')) { |
|
document.getElementById('donebuttontextdiv').style.display='block'; |
|
} |
|
} |
|
if (sform.donebutton[i].value == '_done_proctor') { |
|
if (document.getElementById('done_proctorkey')) { |
|
document.getElementById('done_proctorkey').type='text'; |
|
} |
|
} else { |
|
if (document.getElementById('done_proctorkey')) { |
|
document.getElementById('done_proctorkey').type='hidden'; |
|
document.getElementById('done_proctorkey').value=''; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
function validateInterval() { |
|
var sform=choices.document.forms.sch; |
|
if (sform.donebutton.length) { |
|
for (var i=0; i<sform.donebutton.length; i++) { |
|
if (sform.donebutton[i].checked) { |
|
if (sform.donebutton[i].value == '_done_proctor') { |
|
if ((sform.donebutton_proctorkey.value == '') || |
|
(sform.donebutton_proctorkey.value == null)) { |
|
alert('Please provide a key for a proctor to enter when a student uses the "Done" button.'); |
|
return; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
intcalc(); |
|
assemble(); |
} |
} |
|
|
function integereval() { |
function integereval() { |
Line 304 function stringeval() {
|
Line 444 function stringeval() {
|
draw(); |
draw(); |
} |
} |
|
|
|
function ipstringeval() { |
|
var patternIp = /^([\[\]a-zA-Z\.\d\*\-]+)$/; |
|
var acctypes = new Array; |
|
acctypes = ['allow','deny']; |
|
svalue = ''; |
|
for (var i=0; i<acctypes.length; i++) { |
|
var items = choices.document.getElementsByName('setip'+acctypes[i]); |
|
if (items.length > 0) { |
|
for (var j=0; j<items.length; j++) { |
|
if (items[j].type == "text") { |
|
var possip = items[j].value; |
|
possip = possip.replace(/^\s+|\s+$/g,''); |
|
if (patternIp.test(possip)) { |
|
if (acctypes[i] == 'deny') { |
|
possip = '!'+possip; |
|
} |
|
if (svalue == '') { |
|
svalue = possip; |
|
} else { |
|
svalue += ','+possip; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
function addIpRule(iptype) { |
|
var frame = window.frames["choices"]; |
|
if (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'); |
|
ipDiv.innerHTML = '<input type="text" size="10" name="setip'+iptype+'" onblur="parent.ipstringeval();" />'+ |
|
'<a href="#" onclick="parent.removeIpRule(\''+iptype+'\',\''+count+'\')">Remove</a>'; |
|
frame.document.getElementById('LC_string_ipacc_inner_'+iptype).appendChild(ipDiv); |
|
} |
|
return false; |
|
} |
|
|
|
function removeIpRule(iptype,num) { |
|
var frame = window.frames["choices"]; |
|
if (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++) { |
|
if (i==num) { |
|
innerDiv.removeChild(innerDiv.childNodes[i]); |
|
ipstringeval(); |
|
break; |
|
} |
|
} |
|
} |
|
} |
|
|
|
function radiostringeval(newval) { |
|
svalue=newval; |
|
draw(); |
|
} |
|
|
|
function callradiostringeval(newval) { |
|
return 'onclick="parent.radiostringeval(\''+newval+'\')"'; |
|
} |
|
|
|
function lenienteval(newval) { |
|
if (newval == 'weighted') { |
|
if (document.getElementById('lenientweighteddiv')) { |
|
document.getElementById('lenientweighteddiv').style.display='block'; |
|
} |
|
var patternRelWeight = /^\-?[\d.]+$/; |
|
var sform=choices.document.forms.sch; |
|
if ((sform.lenientrelwt.length != 'undefined') && (sform.lenientrelwt.length) != 'null') { |
|
for (var i=0; i<sform.lenientrelwt.length; i++) { |
|
var relweight = sform.lenientrelwt[i].value; |
|
relweight = relweight.replace(/^\s+|\s+$/g,''); |
|
if (!patternRelWeight.test(relweight)) { |
|
if (i<2) { |
|
relweight = '1.0'; |
|
} else { |
|
relweight = '0.0'; |
|
} |
|
} |
|
sform.lenientrelwt[i].value = relweight; |
|
if (i==0) { |
|
svalue = relweight; |
|
} else { |
|
svalue += ','+relweight; |
|
} |
|
} |
|
} |
|
} else { |
|
if (document.getElementById('lenientweighteddiv')) { |
|
document.getElementById('lenientweighteddiv').style.display='none'; |
|
} |
|
svalue=newval; |
|
} |
|
draw(); |
|
} |
|
|
|
function calllenientradioeval(newval) { |
|
return 'onclick="parent.lenienteval(\''+newval+'\')"'; |
|
} |
|
|
|
function callintervalpmodval() { |
|
return 'onclick="parent.intcalc();parent.toggleSecret()"'; |
|
} |
|
|
function intervaldis() { |
function intervaldis() { |
csecs=svalue; |
csecs=svalue; |
cdays=Math.floor(csecs/86400); |
cdays=Math.floor(csecs/86400); |
Line 312 function intervaldis() {
|
Line 559 function intervaldis() {
|
csecs-=chours*3600; |
csecs-=chours*3600; |
cmins=Math.floor(csecs/60); |
cmins=Math.floor(csecs/60); |
csecs-=cmins*60; |
csecs-=cmins*60; |
choicewrite(cdays+' days '+chours+' hours ' |
return cdays+' days '+chours+' hours '+cmins+' mins '+csecs+' secs'; |
+cmins+' mins '+csecs+' secs'); |
|
} |
} |
|
|
function pickcolor(picked) { |
function pickcolor(picked) { |
Line 323 function pickcolor(picked) {
|
Line 569 function pickcolor(picked) {
|
|
|
function colorfield(ir,ig,ib) { |
function colorfield(ir,ig,ib) { |
var col=new Array; |
var col=new Array; |
col=["00","11","22","33","44","55","66","77","88","99","AA","BB","CC","DD","EE","FF"]; |
col=["00","11","22","44","66","88","AA","CC","DD","EE","FF"]; |
var color='#'+col[ir]+col[ig]+col[ib]; |
var color='#'+col[ir]+col[ig]+col[ib]; |
var selection=" "; |
var selection="<font color='"+color+"'>X</font>"; |
if (color==svalue) { selection="X"; } |
if (color==svalue) { selection="<font color='#"+col[10-ir]+col[10-ig]+col[10-ib]+"'>X</font>"; } |
choicewrite('<td bgcolor="'+color+'"><a href="javascript:parent.pickcolor('+"'"+ |
choicewrite('<td bgcolor="'+color+'"><a href="javascript:parent.pickcolor('+"'"+ |
color+"'"+')">'+selection+'</a></td>'); |
color+"'"+')">'+selection+'</a></td>'); |
|
|
Line 334 function colorfield(ir,ig,ib) {
|
Line 580 function colorfield(ir,ig,ib) {
|
|
|
function draw() { |
function draw() { |
choicestart(); |
choicestart(); |
choicewrite('<form name=sch'); |
choicewrite('<form name="sch"'); |
if (ptype=='int') { |
if (ptype=='int') { |
choicewrite(' action="javascript:integereval();"'); |
choicewrite(' action="javascript:integereval();"'); |
} |
} |
Line 342 function draw() {
|
Line 588 function draw() {
|
choicewrite(' action="javascript:floateval();"'); |
choicewrite(' action="javascript:floateval();"'); |
} |
} |
if (ptype=='string') { |
if (ptype=='string') { |
choicewrite(' action="javascript:stringeval();"'); |
if (pscat == 'ip') { |
|
choicewrite(' action="javascript:ipstringeval();"'); |
|
} else { |
|
choicewrite(' action="javascript:stringeval();"'); |
|
} |
|
} |
|
if (ptype != 'int' && ptype != 'float' && ptype != 'string') { |
|
choicewrite(' action=""'); |
} |
} |
choicewrite('>'); |
choicewrite('>'); |
if (ptype=='tolerance') { |
if (ptype=='tolerance') { |
Line 420 function draw() {
|
Line 673 function draw() {
|
choicewrite('</table>'); |
choicewrite('</table>'); |
} else { |
} else { |
if (pscat=='start') { |
if (pscat=='start') { |
tablestart('Starting or opening date and time'); |
tablestart('Date and time'); |
} |
} |
if (pscat=='end') { |
if (pscat=='end') { |
tablestart('Ending or closing date and time'); |
tablestart('Date and time'); |
} |
} |
if (pscat=='interval') { |
if (pscat=='interval') { |
|
var proctorkeytype = 'hidden'; |
|
var donebuttontext = 'none'; |
|
if (pmodval == '_done_proctor') { |
|
proctorkeytype = 'text'; |
|
donebuttontext = 'block'; |
|
} |
|
if (pmodval == '_done') { |
|
donebuttontext = 'block'; |
|
} |
tablestart('Time interval'); |
tablestart('Time interval'); |
choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>'); |
choicewrite( [ |
intervaldis(); |
'<tr><td colspan="3">'+intervaldis()+'</td></tr>', |
choicewrite('</td></tr><tr bgcolor="#AAFFAA"><td>Time:' |
'<tr><td>Time:</td><td colspan="2">', |
+'</td><td colspan=2>'); |
'<span style="white-space:nowrap">'+intday()+' days </span>', |
intday();choicewrite('days '); |
'<span style="white-space:nowrap">'+inthour()+' hours</span>', |
inthour();choicewrite('hours '); |
'<span style="white-space:nowrap">'+intminute()+' mins</span>', |
intminute(); choicewrite('mins '); intsecond(); |
'<span style="white-space:nowrap">'+intsecond()+' secs</span>', |
choicewrite('secs</td></tr></table>'); |
'</td></tr>', |
} else { |
'</table>', |
choicewrite('<tr bgcolor="#AAFFAA"><td colspan=3>' |
'<br />', |
|
].join("\n")); |
|
tablestart('Provide a "Done" button to students?'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<label><input name="donebutton" value=""'+ |
|
' type="radio" '+callintervalpmodval()); |
|
if (pmodval == '') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> No</label><br />'); |
|
choicewrite('<label><input name="donebutton" value="_done"'+ |
|
' type="radio" '+callintervalpmodval()); |
|
if (pmodval == '_done') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes</label><br />'); |
|
choicewrite('<span style="white-space:nowrap">'+ |
|
'<label><input name="donebutton" value="_done_proctor"'+ |
|
' type="radio" '+callintervalpmodval()); |
|
if (pmodval == '_done_proctor') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes, with proctor key</label>'); |
|
choicewrite(' <input name="donebutton_proctorkey" value='+ |
|
'"'+escapeHTML(pextraval)+'" type="'+proctorkeytype+ |
|
'" id="done_proctorkey" size="10"'+ |
|
' onblur="parent.intcalc();" /></span><br />'+ |
|
'<div id="donebuttontextdiv" style="display:'+donebuttontext+'">'+ |
|
'<br /><span style="white-space:nowrap">'+ |
|
'Button text:'+ |
|
'<input name="donebutton_text" value='+ |
|
'"'+escapeHTML(pextravaltwo)+'" type="text" '+ |
|
'size="10" onblur="parent.intcalc();" /></span></div>'); |
|
choicewrite('</td></tr></table>'); |
|
} else { |
|
choicewrite('<tr><td colspan="3">' |
+cdate.toString()+ |
+cdate.toString()+ |
'</td></tr><tr bgcolor="#AAFFAA"><td>Date:</td><td colspan=2>'); |
'</td></tr><tr><td>Date:</td><td colspan="2">'); |
month();date();year(); |
month();date();year(); |
choicewrite('</td></tr><tr bgcolor="#AAFFAA"><td>Time:' |
choicewrite('</td></tr><tr><td>Time:' |
+'</td><td colspan=2>');hour();choicewrite('h ');minute(); |
+'</td><td colspan="2">');hour();choicewrite('h ');minute(); |
choicewrite('m ');second(); |
choicewrite('m ');second(); |
choicewrite('s</td></tr></table>'); |
choicewrite('s</td></tr></table>'); |
} |
} |
Line 458 function draw() {
|
Line 749 function draw() {
|
} else { |
} else { |
if (pscat=='range') { |
if (pscat=='range') { |
tablestart('Integer range'); |
tablestart('Integer range'); |
choicewrite('<tr bgcolor="#AAFFAA"><td>Lower Value:'+ |
choicewrite('<tr><td>Lower Value:'+ |
'</td><td colspan=2><input type=text size=4 name=val2'+ |
'</td><td colspan="2"><input type="text" size="4" name="val2'+ |
'></td></tr>'); |
'" /></td></tr>'); |
choicewrite('<tr bgcolor="#AAFFAA"><td>Upper Value:'+ |
choicewrite('<tr><td>Upper Value:'+ |
'</td><td colspan=2><input type=text size=4 name=val4'+ |
'</td><td colspan="2"><input type="text" size="4" name="val4'+ |
'></td></tr></table>'); |
'" /></td></tr></table>'); |
var range=new Array; |
var range=new Array; |
if ((svalue!='') && (typeof(svalue)!="undefined")) { |
if ((svalue!='') && (typeof(svalue)!="undefined")) { |
range=svalue.split(','); |
range=svalue.split(','); |
Line 486 function draw() {
|
Line 777 function draw() {
|
if (pscat=='any') { |
if (pscat=='any') { |
tablestart('Integer'); |
tablestart('Integer'); |
} |
} |
choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>'); |
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
choicewrite('<input name=intval size=10 value="'+svalue+ |
choicewrite('<input name="intval" size="10" value="'+escapeHTML(svalue)+ |
'" name=intval onChange="parent.integereval()">'); |
'" onchange="parent.integereval()" />'); |
choicewrite('</td></table>'); |
choicewrite('</td></tr></table>'); |
} |
} |
} |
} |
} |
} |
Line 497 function draw() {
|
Line 788 function draw() {
|
if (ptype=='float') { |
if (ptype=='float') { |
if (pscat=='default') { |
if (pscat=='default') { |
tablestart('Default value or none'); |
tablestart('Default value or none'); |
choicewrite('</table>'); |
choicewrite('</table>'); |
} else { |
} else { |
if (pscat=='pos') { |
if (pscat=='pos') { |
tablestart('Positive floating point number or zero'); |
tablestart('Positive floating point number or zero'); |
Line 508 function draw() {
|
Line 799 function draw() {
|
if (pscat=='any') { |
if (pscat=='any') { |
tablestart('Floating point number'); |
tablestart('Floating point number'); |
} |
} |
choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>'); |
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
choicewrite('<input name=floatval size=10 value="'+svalue+ |
choicewrite('<input name="floatval" size="10" value="'+escapeHTML(svalue)+ |
'" name=floatval onChange="parent.floateval()">'); |
'" onchange="parent.floateval()" />'); |
choicewrite('</td></table>'); |
choicewrite('</td></tr></table>'); |
} |
} |
} |
} |
|
|
if (ptype=='string') { |
if (ptype=='string') { |
if (pscat=='default') { |
if ((pscat=='any') || (pscat=='') || (pscat=='default') || |
tablestart('Default value or none'); |
(typeof(pscat)=='undefined')) { |
choicewrite('</table>'); |
|
} else { |
|
if (pscat=='any') { |
|
tablestart('Text'); |
tablestart('Text'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<input name="stringval" size="20" value="'+escapeHTML(svalue)+ |
|
'" type="text" onchange="parent.stringeval()" />'); |
|
} |
|
if (pscat=='yesno') { |
|
tablestart('Yes/No'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<label><input name="stringval" value="yes"'+ |
|
' type="radio" '+callradiostringeval('yes')); |
|
if (svalue=='yes') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes</label><br />'); |
|
choicewrite('<label><input name="stringval" value="no"'+ |
|
' type="radio" '+callradiostringeval('no')); |
|
if (svalue=='no') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> No</label><br />'); |
|
} |
|
if (pscat=='problemstatus') { |
|
tablestart('Problem Status'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<label><input name="stringval" value="yes"'+ |
|
' type="radio" '+callradiostringeval('yes')); |
|
if (svalue=='yes') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes</label><br />'); |
|
choicewrite('<label><input name="stringval" value="answer"'+ |
|
' type="radio" '+callradiostringeval('answer')); |
|
if (svalue=='answer') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes, and show correct answer if they exceed the maximum number of tries.</label><br />'); |
|
choicewrite('<label><input name="stringval" value="no"'+ |
|
' type="radio" '+callradiostringeval('no')); |
|
if (svalue=='no') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> No, don\'t show correct/incorrect feedback.</label><br />'); |
|
choicewrite('<label><input name="stringval" value="no_feedback_ever"'+ |
|
' type="radio" '+callradiostringeval('no_feedback_ever')); |
|
if (svalue=='no_feedback_ever') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> No, show no feedback at all.</label><br />'); |
} |
} |
choicewrite('<tr bgcolor="#AAFFAA"><td>Value:</td><td colspan=2>'); |
if (pscat=='examtype') { |
choicewrite('<input name=stringval size=20 value="'+svalue+ |
tablestart('Exam Type'); |
'" name=stringval onChange="parent.stringeval()">'); |
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
choicewrite('</td></table>'); |
choicewrite('<label><input name="stringval" value="online"'+ |
|
' type="radio" '+callradiostringeval('online')); |
|
if (svalue=='online') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Online</label><br />'); |
|
choicewrite('<label><input name="stringval" value="checkout"'+ |
|
' type="radio" '+callradiostringeval('checkout')); |
|
if (svalue=='checkout') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Check out</label><br />'); |
|
} |
|
if (pscat=='questiontype') { |
|
tablestart('Question Type'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<label><input name="stringval" value="problem"'+ |
|
' type="radio" '+callradiostringeval('problem')); |
|
if (svalue=='problem') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Standard Problem</label><br />'); |
|
// choicewrite('<label><input name="stringval" value="quiz"'+ |
|
// ' type="radio" '+callradiostringeval('quiz')); |
|
// if (svalue=='quiz') { choicewrite(' checked="checked"'); } |
|
// choicewrite(' /> Quiz</label><br />'); |
|
choicewrite('<label><input name="stringval" value="practice"'+ |
|
' type="radio" '+callradiostringeval('practice')); |
|
if (svalue=='practice') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Practice</label><br />'); |
|
choicewrite('<label><input name="stringval" value="exam"'+ |
|
' type="radio" '+callradiostringeval('exam')); |
|
if (svalue=='exam') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Bubblesheet Exam</label><br />'); |
|
// choicewrite('<label><input name="stringval" value="assess"'+ |
|
// ' type="radio" '+callradiostringeval('assess')); |
|
// if (svalue=='assess') { choicewrite(' checked="checked"'); } |
|
// choicewrite(' /> Assessment</label><br />'); |
|
choicewrite('<label><input name="stringval" value="survey"'+ |
|
' type="radio" '+callradiostringeval('survey')); |
|
if (svalue=='survey') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Survey</label><br />'); |
|
// choicewrite('<label><input name="stringval" value="form"'+ |
|
// ' type="radio" '+callradiostringeval('form')); |
|
// if (svalue=='form') { choicewrite(' checked="checked"'); } |
|
// choicewrite('> Input Form</label><br />'); |
|
choicewrite('<label><input name="stringval" value="surveycred"'+ |
|
' type="radio" '+callradiostringeval('surveycred')); |
|
if (svalue=='surveycred') { choicewrite(' checked="checked"'); } |
|
choicewrite('> Survey (credit for submission)</label><br />'); |
|
choicewrite('<label><input name="stringval" value="anonsurvey"'+ |
|
' type="radio" '+callradiostringeval('anonsurvey')); |
|
if (svalue=='anonsurvey') { choicewrite(' checked="checked"'); } |
|
choicewrite('> Anonymous Survey</label><br />'); |
|
choicewrite('<label><input name="stringval" value="anonsurveycred"'+ |
|
' type="radio" '+callradiostringeval('anonsurveycred')); |
|
if (svalue=='anonsurveycred') { choicewrite(' checked="checked"'); } |
|
choicewrite('> Anonymous Survey (credit for submission)</label><br />'); |
|
choicewrite('<label><input name="stringval" value="randomizetry"'+ |
|
' type="radio" '+callradiostringeval('randomizetry')); |
|
if (svalue=='randomizetry') { choicewrite(' checked="checked"'); } |
|
choicewrite('> New Randomization Each N Tries (default N=1)</label><br />'); |
|
choicewrite('<label><input name="stringval" value="library"'+ |
|
' type="radio" '+callradiostringeval('library')); |
|
if (svalue=='library') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Library</label><br />'); |
|
} |
|
if (pscat=='lenient') { |
|
var patternLenientStd = /^(yes|no|default)$/; |
|
var patternLenientRel = /^([\-\d\.]+)\,([\-\d\.]+)\,([\-\d\.]+)\,([\-\d\.]+)$/; |
|
var lenientweighted = 'none'; |
|
var relatives = new Array; |
|
tablestart('Lenient Grading (Partial Credit)'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<label><input name="stringval" value="yes"'+ |
|
' type="radio" '+calllenientradioeval('yes')); |
|
if (svalue=='yes') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes</label><br />'); |
|
choicewrite('<label><input name="stringval" value="no"'+ |
|
' type="radio" '+calllenientradioeval('no')); |
|
if (svalue=='no') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> No</label><br />'); |
|
choicewrite('<label><input name="stringval" value="default"'+ |
|
' type="radio" '+calllenientradioeval('default')); |
|
if (svalue=='default') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Default (only bubblesheet grading is lenient)</label><br />'); |
|
choicewrite('<label><input name="stringval" value="weighted"'+ |
|
' type="radio" '+calllenientradioeval('weighted')); |
|
if (!patternLenientStd.test(svalue) && svalue != '') { |
|
choicewrite(' checked="checked"'); |
|
lenientweighted='block'; |
|
var relatives = svalue.match(patternLenientRel); |
|
} |
|
choicewrite(' />Yes, weighted (optionresponse in checkbox mode)</label><br /><br />'+ |
|
'<div id="lenientweighteddiv" style="display:'+lenientweighted+'">'+ |
|
'<table class="LC_parmsel_table"><tr bgcolor="#C5DB99">'+ |
|
'<th colspan="2">Foil submission status</th><th>Points</th></tr>'); |
|
var lenienttypes = ['Correct (checked)','Correct (unchecked)','Incorrect (checked)','Incorrect (unchecked)']; |
|
for (var i=0; i<lenienttypes.length; i++) { |
|
var j = i+1; |
|
if (relatives[j] == '') { |
|
if (i < 2) { |
|
relatives[j] = '1.0'; |
|
} else { |
|
relatives[j] = '0.0'; |
|
} |
|
} |
|
choicewrite('<tr><td colspan="2">'+lenienttypes[i]+'</td>'+ |
|
'<td><input type="text" name="lenientrelwt" value="'+relatives[j]+'"'+ |
|
' size="3" onblur="parent.lenienteval(\'weighted\')" /></td></tr>'); |
|
} |
|
choicewrite('</table></div>'); |
|
} |
|
if (pscat=='discussvote') { |
|
tablestart('Discussion Voting'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<label><input name="stringval" value="yes"'+ |
|
' type="radio" '+callradiostringeval('yes')); |
|
if (svalue=='yes') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes</label><br />'); |
|
choicewrite('<label><input name="stringval" value="notended"'+ |
|
' type="radio" '+callradiostringeval('notended')); |
|
if (svalue=='notended') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes, unless discussion ended</label><br />'); |
|
choicewrite('<label><input name="stringval" value="no"'+ |
|
' type="radio" '+callradiostringeval('no')); |
|
if (svalue=='no') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> No</label><br />'); |
|
} |
|
if (pscat=='ip') { |
|
var currallow = new Array; |
|
var currdeny = new Array; |
|
if ((svalue != '') && (svalue != null)) { |
|
var patternComma = /,/; |
|
var patternAllow = /^([\[\]a-zA-Z\.\d\*\-]+)$/; |
|
var patternDeny = /^\!([\[\]a-zA-Z\.\d\*\-]+)$/; |
|
var current = new Array; |
|
if (patternComma.test(svalue)) { |
|
current = svalue.split(','); |
|
} else { |
|
current = (svalue); |
|
} |
|
for (var i=0; i<current.length; i++) { |
|
if (patternDeny.test(current[i])) { |
|
var denied = current[i].replace(/^!/,''); |
|
currdeny.push(denied); |
|
} else { |
|
if (patternAllow.test(current[i])) { |
|
currallow.push(current[i]); |
|
} |
|
} |
|
} |
|
} |
|
if (currdeny.length == 0) { |
|
currdeny = (''); |
|
} |
|
if (currallow.length == 0) { |
|
currallow = (''); |
|
} |
|
var curripaccess = [currallow,currdeny]; |
|
tablestart('IP Number/Name'); |
|
choicewrite('<tr><th>Allow from</th><th>Deny from</th></tr><tr>'); |
|
var acctypes = ['allow','deny']; |
|
for (var i=0; i<acctypes.length; i++) { |
|
choicewrite('<td valign="top">'+ |
|
'<div class="LC_string_ipacc_wrap" id="LC_string_ipacc_'+acctypes[i]+'">'+ |
|
'<div class="LC_string_ipacc_inner" id="LC_string_ipacc_inner_'+acctypes[i]+'">'); |
|
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('<a href="#" onclick="parent.removeIpRule(\''+acctypes[i]+'\',\''+j+'\')">Remove</a>'); |
|
choicewrite('</div>'); |
|
} |
|
choicewrite('</div><button onclick="parent.addIpRule(\''+acctypes[i]+'\');">Add item</button>'); |
|
} |
|
choicewrite('</div></td></tr></table>'); |
|
} |
|
if (pscat=='fileext') { |
|
tablestart('Allowed File Extensions'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<label><input name="radstringval" value="txt"'+ |
|
' type="radio" '+callradiostringeval('txt')); |
|
if (svalue=='txt') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Plain Text</label><br />'); |
|
choicewrite('<label><input name="radstringval" value="png,jpg,jpeg,gif"'+ |
|
' type="radio" '+callradiostringeval('png,jpg,jpeg,gif')); |
|
if (svalue=='png,jpg,jpeg,gif') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Picture File</label><br />'); |
|
choicewrite('<label><input name="radstringval" value="doc,docx,xls,xlsx,ppt,pptx"'+ |
|
' type="radio" '+callradiostringeval('doc,docx,xls,xlsx,ppt,pptx')); |
|
if (svalue=='doc,docx,xls,xlsx,ppt,pptx') { choicewrite(' checked="checked"'); } |
|
if (svalue=='doc,xls,ppt') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Office Document</label><br />'); |
|
choicewrite('<input name="stringval" size="20" value="'+escapeHTML(svalue)+ |
|
'" onchange="parent.stringeval()" />'); |
|
} |
|
if (pscat=='useslots') { |
|
tablestart('Slots control access'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<label><input name="stringval" value="no"'+ |
|
' type="radio" '+callradiostringeval('no')); |
|
if (svalue=='no') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> No</label><br />'); |
|
choicewrite('<label><input name="stringval" value="resource"'+ |
|
' type="radio" '+callradiostringeval('resource')); |
|
if (svalue=='resource') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes, and the scope of student selected slot is a single resource.</label><br />'); |
|
choicewrite('<label><input name="stringval" value="map"'+ |
|
' type="radio" '+callradiostringeval('map')); |
|
if (svalue=='map') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes, and the scope of student selected slot is the enclosing map/folder. When checking in, it applies to only one resource.</label><br />'); |
|
choicewrite('<label><input name="stringval" value="map_map"'+ |
|
' type="radio" '+callradiostringeval('map_map')); |
|
if (svalue=='map_map') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Yes, and the scope of student selected slot is the enclosing map/folder. When checking in, all resources in the map/folder are checked in.</label><br />'); |
|
choicewrite('</td></tr></table>'); |
|
} |
|
if (pscat=='deeplink') { |
|
tablestart('Deep-linked items'); |
|
choicewrite('<tr><td>Value:</td><td colspan="2">'); |
|
choicewrite('<label><input name="stringval" value="full"'+ |
|
' type="radio" '+callradiostringeval('full')); |
|
if (svalue=='full') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Displayed (linked) in Contents and Grades.</label><br />'); |
|
choicewrite('<label><input name="stringval" value="absent"'+ |
|
' type="radio" '+callradiostringeval('absent')); |
|
if (svalue=='absent') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Not displayed in Contents or Grades.</label><br />'); |
|
choicewrite('<label><input name="stringval" value="grades"'+ |
|
' type="radio" '+callradiostringeval('grades')); |
|
if (svalue=='grades') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Displayed in Grades only.</label><br />'); |
|
choicewrite('<label><input name="stringval" value="details"'+ |
|
' type="radio" '+callradiostringeval('details')); |
|
if (svalue=='details') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Displayed (unlinked) in Contents and Grades.</label><br />'); |
|
choicewrite('<label><input name="stringval" value="datestatus"'+ |
|
' type="radio" '+callradiostringeval('datestatus')); |
|
if (svalue=='datestatus') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> Displayed (with date status) but unlinked in Contents and Grades.</label><br />'); |
|
choicewrite('</td></tr></table>'); |
} |
} |
} |
} |
|
|
if (ptype=='color') { |
if (ptype=='color') { |
tablestart('Choose a Color'); |
tablestart('Choose a Color'); |
choicewrite('<table>'); |
choicewrite('<table>'); |
if (svalue) { |
if (svalue) { |
choicewrite('<tr><td colspan="10">Current choice:</td><td bgcolor="'+ |
choicewrite('<tr><td colspan="9">Current choice:</td><td bgcolor="'+ |
svalue+'" colspan="6"> </td></tr>'); |
escapeHTML(svalue)+'" colspan="2"> </td></tr>'); |
} |
} |
for (var ir=1; ir<=15; ir++) { |
for (var ir=0; ir<=10; ir++) { |
for (var ig=1; ig<=15; ig++) { |
for (var ig=0; ig<=10; ig++) { |
choicewrite('<tr>'); |
choicewrite('<tr>'); |
for (var ib=1; ib<=15; ib++) { |
for (var ib=0; ib<=10; ib++) { |
colorfield(ir,ig,ib); |
colorfield(ir,ig,ib); |
} |
} |
choicewrite('</tr>'); |
choicewrite('</tr>'); |
} |
} |
} |
} |
choicewrite('</table></td></table>'); |
choicewrite('</table></td></table>'); |
} |
} |
|
|
choicewrite('</table></form>'); |
choicewrite('</form>'); |
choiceend(); |
choiceend(); |
} |
} |
|
|
function sopt(va,text) { |
function sopt(va,text) { |
selwrite('<option value="'+va+'"'); |
selwrite('<option value="'+va+'"'); |
if (va==pscat) { |
if (va==pscat) { |
selwrite(' selected'); |
selwrite(' selected="selected"'); |
} |
} |
selwrite('>'+text+'</option>'); |
selwrite('>'+text+'</option>'); |
} |
} |
Line 567 function catchange() {
|
Line 1123 function catchange() {
|
draw(); |
draw(); |
} |
} |
|
|
|
function recursechange() { |
|
var rform=selector.document.forms.frec; |
|
var count = rform.recurse.length; |
|
if (count > 0) { |
|
for (var i=0; i<count; i++) { |
|
if (rform.recurse[i].checked) { |
|
var colnum = pnonreccol; |
|
if (rform.recurse[i].value == 1) { |
|
colnum++; |
|
} |
|
pmarker = pmarkerst+'_'+pparm+'&'+colnum; |
|
} |
|
} |
|
} |
|
} |
|
|
function assemble() { |
function assemble() { |
if ((ptype=='date') && (pscat!='interval')) { |
if ((ptype=='date') && (pscat!='interval')) { |
svalue=Math.round(cdate.getTime()/1000); |
svalue=Math.floor(cdate.getTime()/1000); |
} |
} |
if (ptype=='tolerance') { |
if (ptype=='tolerance') { |
if (pscat=='relative_sym') { |
if (pscat=='relative_sym') { |
Line 617 function assemble() {
|
Line 1189 function assemble() {
|
function init() { |
function init() { |
var i; |
var i; |
var subs=new Array(); |
var subs=new Array(); |
|
var doneRegExp = /_done(|\:[^\:]+\:)/; |
|
var doneproctorRegExp = /_done(|\:[^\:]+\:)_proctor/; |
|
var proctorkeyRegExp = /^(\d+)_(.+)$/; |
|
var donetextRegExp = /\:([^\:]+)\:/; |
|
var markerRegExp = /^(.+)_([A-Za-z0-9]+)\&(\d+)$/; |
var namevalue=this.window.location.search.split('&'); |
var namevalue=this.window.location.search.split('&'); |
namevalue[0]=namevalue[0].substr(1,namevalue[0].length-1); |
namevalue[0]=namevalue[0].substr(1,namevalue[0].length-1); |
|
|
Line 627 function init() {
|
Line 1204 function init() {
|
if (pair[0]=='type') { subs=pair[1].split('_'); |
if (pair[0]=='type') { subs=pair[1].split('_'); |
ptype=subs[0]; |
ptype=subs[0]; |
pscat=subs[1]; |
pscat=subs[1]; |
if (typeof(subs[2])!="undefined") { |
if (typeof(subs[2])!="undefined") { |
pscat+='_'+subs[2]; |
pscat+='_'+subs[2]; |
} |
} |
if ((pscat=='') || (typeof(pscat)=="undefined")) { |
if ((pscat=='') || (typeof(pscat)=="undefined")) { |
pscat='default'; |
pscat='default'; |
} |
} |
} |
} |
Line 638 function init() {
|
Line 1215 function init() {
|
if (pair[0]=='call') { pcode=pair[1]; } |
if (pair[0]=='call') { pcode=pair[1]; } |
if (pair[0]=='marker') { pmarker=pair[1]; } |
if (pair[0]=='marker') { pmarker=pair[1]; } |
if (pair[0]=='name') { pname=pair[1]; } |
if (pair[0]=='name') { pname=pair[1]; } |
|
if (pair[0]=='modal') { pmodal=pair[1]; } |
|
if (pair[0]=='defhour' && pair[1] >= 0 && pair[1] < 24 ) { |
|
defhour=pair[1]; |
|
} |
|
if (pair[0]=='defmin' && pair[1] >= 0 && pair[1] < 60) { defmin=pair[1]; } |
|
if (pair[0]=='defsec' && pair[1] >= 0 && pair[1] < 60) { defsec=pair[1]; } |
} |
} |
|
|
|
var tablecol = ''; |
|
var ismap = ''; |
|
if (markerRegExp.test(pmarker)) { |
|
var markerinfo = pmarker.match(markerRegExp); |
|
if (markerinfo.length == 4) { |
|
pmarkerst = markerinfo[1]; |
|
pparm = markerinfo[2]; |
|
tablecol = markerinfo[3]; |
|
if (tablecol == 17 || tablecol == 16) { |
|
ismap = 1; |
|
if (tablecol == 17) { |
|
precursive = 1; |
|
} |
|
pnonreccol = 16; |
|
} else if (tablecol == 11 || tablecol == 10) { |
|
ismap = 1; |
|
if (tablecol == 11) { |
|
precursive = 1; |
|
} |
|
pnonreccol = 10; |
|
} else if (tablecol == 7 || tablecol == 6) { |
|
ismap = 1; |
|
if (tablecol == 7) { |
|
precursive = 1; |
|
} |
|
pnonreccol = 6; |
|
} else if (tablecol == 3 || tablecol == 2) { |
|
ismap = 1; |
|
if (tablecol == 3) { |
|
precursive = 1; |
|
} |
|
pnonreccol = 2; |
|
} |
|
} |
|
} |
|
|
|
|
|
if (ptype=='date' && pscat == 'interval') { |
|
if (doneproctorRegExp.test(pvalue)) { |
|
var current = pvalue.match(doneproctorRegExp); |
|
if (current.length == 2) { |
|
var textstr = current[1]; |
|
if (textstr != '') { |
|
var textvals = textstr.match(donetextRegExp); |
|
if (textvals.length == 2) { |
|
pextravaltwo = textvals[1]; |
|
} |
|
} |
|
} |
|
var intervalwithkey = pvalue.replace(doneproctorRegExp,''); |
|
if (proctorkeyRegExp.test(intervalwithkey)) { |
|
var currvals = intervalwithkey.match(proctorkeyRegExp); |
|
if (currvals.length == 3) { |
|
pvalue = currvals[1]; |
|
pextraval = currvals[2]; |
|
pmodval = '_done_proctor'; |
|
} else { |
|
pmodval = ''; |
|
} |
|
} |
|
} else { |
|
if (doneRegExp.test(pvalue)) { |
|
var current = pvalue.match(doneRegExp); |
|
if (current.length == 2) { |
|
var textstr = current[1]; |
|
if (textstr != '') { |
|
var textvals = textstr.match(donetextRegExp); |
|
if (textvals.length == 2) { |
|
pextravaltwo = textvals[1]; |
|
} |
|
} |
|
} |
|
var pnumval = pvalue.replace(doneRegExp,''); |
|
pmodval = '_done'; |
|
pvalue = pnumval; |
|
} |
|
} |
|
} |
svalue=pvalue; |
svalue=pvalue; |
if (((ptype=='float') || (ptype=='string') || (ptype=='int')) && |
if (((ptype=='float') || (ptype=='string') || (ptype=='int')) && |
(pscat=='default') && |
(pscat=='default') && |
(typeof(svalue)!="undefined") && |
(typeof(svalue)!="undefined") && |
(svalue!=0) && (svalue!='')) { pscat='any'; } |
(svalue!=0) && (svalue!='')) { pscat='any'; } |
|
|
if (ptype=='tolerance') { |
if (ptype=='tolerance') { |
Line 660 function init() {
|
Line 1321 function init() {
|
} |
} |
} |
} |
|
|
this.window.selector.document.clear(); |
this.window.selector.document.open(); |
selwrite('<html><body bgcolor="#FFFFFF">'); |
selwrite('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'); |
|
selwrite('<html xmlns="http://www.w3.org/1999/xhtml">'); |
selwrite('<form name="fsel"><b>'+pname+'</b><br>'); |
selwrite('<head>'); |
selwrite('<select name="fcat" onChange="parent.catchange();">'); |
selwrite('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'); |
|
selwrite('<title>LON-CAPA</title>'); |
|
selwrite('<style type="text/css">'); |
|
selwrite('<!--'); |
|
selwrite('body {'); |
|
selwrite('font-family: Verdana,Arial,Helvetica,sans-serif;'); |
|
selwrite('line-height:130%;'); |
|
selwrite('font-size:0.83em;'); |
|
selwrite('background: #FFFFFF;'); |
|
selwrite('}'); |
|
selwrite('-->'); |
|
selwrite('</style>'); |
|
selwrite('</head>'); |
|
selwrite('<body>'); |
|
selwrite('<form name="fsel" action=""><b>'+pname+'</b><br />'); |
|
selwrite('Format of Value(s): <select name="fcat" onchange="parent.catchange();">'); |
|
|
if (ptype=='tolerance') { |
if (ptype=='tolerance') { |
sopt('default','Default'); |
sopt('default','Default'); |
Line 675 function init() {
|
Line 1351 function init() {
|
} |
} |
|
|
if (ptype=='date') { |
if (ptype=='date') { |
sopt('default','Default'); |
if (pscat != 'interval') { |
sopt('start','Starting Date'); |
sopt('default','Default'); |
sopt('end','Ending Date'); |
sopt('start','Starting Date'); |
sopt('interval','Time Interval'); |
sopt('end','Ending Date'); |
|
} else { |
|
sopt('interval','Time Interval'); |
|
} |
|
|
if ((pvalue!='') && (typeof(pvalue)!="undefined")) { |
if ((pvalue!='') && (typeof(pvalue)!="undefined")) { |
cdate.setTime(pvalue*1000); |
cdate.setTime(pvalue*1000); |
|
} else { |
|
cdate.setSeconds(defsec); |
|
cdate.setMinutes(defmin); |
|
cdate.setHours(defhour); |
} |
} |
|
|
months[0]='January'; |
months[0]='January'; |
Line 697 function init() {
|
Line 1380 function init() {
|
months[10]='November'; |
months[10]='November'; |
months[11]='December'; |
months[11]='December'; |
} |
} |
|
|
if (ptype=='int') { |
if (ptype=='int') { |
sopt('default','Default'); |
sopt('default','Default'); |
sopt('pos','Positive Integer, Not Zero'); |
sopt('pos','Positive Integer, Not Zero'); |
Line 716 function init() {
|
Line 1399 function init() {
|
} |
} |
|
|
if (ptype=='string') { |
if (ptype=='string') { |
sopt('default','Default'); |
//sopt('default','Default'); |
sopt('string','String Value'); |
if (pscat == 'yesno') { sopt('yesno','Yes/No'); } |
|
else if (pscat == 'problemstatus'){ sopt('problemstatus','Problem Status'); } |
|
else if (pscat == 'examtype') { sopt('examtype','Exam Type'); } |
|
else if (pscat == 'questiontype') { sopt('questiontype','Question Type'); } |
|
else if (pscat == 'lenient') { sopt('lenient','Lenient Grading (Partial Credit)'); } |
|
else if (pscat == 'discussvote') { sopt('discussvote','Discussion Voting'); } |
|
else if (pscat == 'ip') { sopt('ip','IP Number/Name'); } |
|
else if (pscat == 'fileext') { sopt('fileext','File Extension'); } |
|
else if (pscat == 'useslots') { sopt('useslots','Slots control access'); } |
|
else if (pscat == 'deeplink') { sopt('deeplink','Deep-linked items'); } |
|
else { pscat = 'any'; } |
|
sopt('any','String Value'); |
} |
} |
|
|
if (ptype=='color') { |
if (ptype=='color') { |
Line 726 function init() {
|
Line 1420 function init() {
|
} |
} |
|
|
selwrite('</select></form>'); |
selwrite('</select></form>'); |
|
if (ismap == 1) { |
selwrite('<a href="javascript:parent.assemble();'); |
if ((pparm != 'hiddenresource') && (pparm != 'encrypturl')) { |
|
selwrite('<form name="frec" action="">'); |
|
selwrite('Recursive: <label><input type="radio" name="recurse" value="1" '); |
|
if (precursive == 1) { |
|
selwrite('checked="checked" '); |
|
} |
|
selwrite('onclick="parent.recursechange();" />Yes</label> '); |
|
selwrite('<label><input type="radio" name="recurse" value="0" '); |
|
if (precursive != 1) { |
|
selwrite('checked="checked" '); |
|
} |
|
selwrite('onclick="parent.recursechange();" />No</label>'); |
|
selwrite('</form><br />'); |
|
} |
|
} |
|
var targ='parent.opener'; |
|
if (pmodal==1) { |
|
targ='parent.parent'; |
|
} |
|
if ((ptype=='date') && (pscat=='interval')) { |
|
selwrite('<a href="javascript:parent.validateInterval();'); |
|
} else { |
|
selwrite('<a href="javascript:parent.assemble();'); |
|
} |
if (preturn!='') { |
if (preturn!='') { |
selwrite( |
selwrite(targ+'.document.'+preturn+'_value.value=parent.window.svalue;'); |
'parent.opener.document.'+preturn+'_value.value=parent.window.svalue;'); |
selwrite(targ+'.document.'+preturn+'_type.value=parent.window.stype;'); |
selwrite( |
|
'parent.opener.document.'+preturn+'_type.value=parent.window.stype;'); |
|
} |
} |
if (pmarker!='') { |
if (pmarker!='') { |
selwrite( |
selwrite(targ+'.document.'+preturn+'_marker.value=parent.window.pmarker;'); |
'parent.opener.document.'+preturn+'_marker.value=parent.window.pmarker;'); |
|
} |
} |
if (pcode!='') { |
if (pcode!='') { |
selwrite('parent.opener.'+pcode+'();'); |
selwrite(targ+'.'+pcode+'();'); |
} |
} |
selwrite('">Store</a> '); |
selwrite('">Save</a> '); |
|
|
selwrite('<a href="javascript:'); |
selwrite('<a href="javascript:'); |
selwrite( |
selwrite(targ+'.document.'+preturn+'_value.value='+"'';"); |
'parent.opener.document.'+preturn+'_value.value='+"'';"); |
|
if (pmarker!='') { |
if (pmarker!='') { |
selwrite( |
selwrite( |
'parent.opener.document.'+preturn+'_marker.value=parent.window.pmarker;'); |
targ+'.document.'+preturn+'_marker.value=parent.window.pmarker;'); |
} |
} |
if (pcode!='') { |
if (pcode!='') { |
selwrite('parent.opener.'+pcode+'();'); |
selwrite(targ+'.'+pcode+'();'); |
} |
} |
selwrite('">Delete</a> '); |
selwrite('">Delete</a> '); |
|
|
selwrite('<a href="javascript:'); |
|
// Old code : |
|
//---------------------------------------------------------------------- |
|
// if (preturn!='') { |
|
// selwrite('parent.opener.document.'+preturn+'_value.value='+"'';"); |
|
// selwrite('parent.opener.document.'+preturn+'_type.value='+"'';"); |
|
// } |
|
// if (pmarker!='') { |
|
// selwrite('parent.opener.document.'+preturn+'_marker.value='+"'';"); |
|
// } |
|
// if (pcode!='') { |
|
// selwrite('parent.opener.'+pcode+'();'); |
|
// } |
|
//---------------------------------------------------------------------- |
|
// Just close the window to 'cancel' the operation. There are javascript |
|
// errors in the above commented out code that I have not been able to |
|
// track down. I think they reside in 'parent.opener.'+pcode+'();' |
|
// |
|
selwrite('this.parent.close();'); |
|
selwrite('">Cancel</a>'); |
|
|
|
selwrite('</body></html>'); |
selwrite('</body></html>'); |
this.window.selector.document.close(); |
this.window.selector.document.close(); |
draw(); |
draw(); |
|
|
} |
} |
|
|
|
// ]]> |
</script> |
</script> |
|
</head> |
|
|
<frameset rows="120,*" onLoad="init();"> |
<frameset rows="125,*" onload="init();"> |
<frame name=selector src="empty.html"> |
<frame name="selector" src="empty.html" /> |
<frame name=choices src="empty.html"> |
<frame name="choices" src="empty.html" /> |
</frameset> |
</frameset> |
|
|
|
|