Annotation of rat/client/parameter.html, revision 1.74
1.56 raeburn 1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
2: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
3: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
1.1 www 4: <!--
5: The LearningOnline Network with CAPA
6: Parameter Input Window
1.16 albertel 7: //
1.74 ! raeburn 8: // $Id: parameter.html,v 1.73 2016/05/21 16:58:07 raeburn Exp $
1.16 albertel 9: //
10: // Copyright Michigan State University Board of Trustees
11: //
12: // This file is part of the LearningOnline Network with CAPA (LON-CAPA).
13: //
14: // LON-CAPA is free software; you can redistribute it and/or modify
15: // it under the terms of the GNU General Public License as published by
16: // the Free Software Foundation; either version 2 of the License, or
17: // (at your option) any later version.
18: //
19: // LON-CAPA is distributed in the hope that it will be useful,
20: // but WITHOUT ANY WARRANTY; without even the implied warranty of
21: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22: // GNU General Public License for more details.
23: //
24: // You should have received a copy of the GNU General Public License
25: // along with LON-CAPA; if not, write to the Free Software
26: // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27: //
28: // /home/httpd/html/adm/gpl.txt
29: //
30: // http://www.lon-capa.org/
31: //
1.1 www 32: -->
33: <head>
1.56 raeburn 34: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
1.1 www 35: <title>LON-CAPA</title>
36:
1.46 albertel 37: <script type="text/javascript">
1.56 raeburn 38: // <![CDATA[
1.1 www 39:
40: var ptype='';
41: var pvalue='';
1.68 raeburn 42: var pmodval='';
1.70 raeburn 43: var pextraval='';
1.71 raeburn 44: var pextravaltwo='';
1.1 www 45: var preturn='';
46: var pcode='';
1.2 www 47: var pscat='';
48: var pmarker='';
1.63 www 49: var pmodal='';
1.1 www 50: var pname='';
51:
1.31 www 52: var defhour=0;
53: var defmin=0;
54: var defsec=0;
55:
1.1 www 56: var svalue;
1.2 www 57: var stype;
58: var smarker;
1.1 www 59:
60: var vars=new Array();
61:
1.2 www 62: var cdate=new Date();
63:
64: var csec;
65: var cmin;
66: var chour;
67: var cday;
68:
69: var months=new Array();
70:
71:
1.1 www 72: function selwrite(text) {
73: this.window.selector.document.write(text);
74: }
75:
76: function choicestart() {
1.61 raeburn 77: this.window.choices.document.open();
1.62 raeburn 78: choicewrite('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
79: choicewrite('<html xmlns="http://www.w3.org/1999/xhtml">');
1.55 bisitz 80: choicewrite('<head>');
1.62 raeburn 81: choicewrite('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />');
82: choicewrite('<title>LON-CAPA</title>');
1.55 bisitz 83: choicewrite('<style type="text/css">');
84: choicewrite('<!--');
85: choicewrite('body {');
86: choicewrite('font-family: Verdana,Arial,Helvetica,sans-serif;');
87: choicewrite('line-height:130%;');
88: choicewrite('font-size:0.83em;');
89: choicewrite('background: #FFFFFF;');
90: choicewrite('}');
91: choicewrite('table.LC_parmsel_table {font-size: 90%;}');
92: choicewrite('table.LC_parmsel_table tr td { padding: 5px; border: 1px solid #C8C8C8;}');
93: choicewrite('-->');
94: choicewrite('</style>');
95: choicewrite('</head>');
1.62 raeburn 96: choicewrite('<body>');
1.1 www 97: }
98:
99: function choiceend() {
100: choicewrite('</body></html>');
101: this.window.choices.document.close();
102: }
103:
104: function choicewrite(text) {
105: this.window.choices.document.write(text);
106: }
107:
108: function tablestart(headtext) {
1.55 bisitz 109: choicewrite('<table class="LC_parmsel_table"><tr bgcolor="#C5DB99"><th colspan="3">'+
1.1 www 110: headtext+'</th></tr>');
111: }
112:
113: function valline(text,id1,id2) {
1.52 bisitz 114: choicewrite('<tr><td>'+text+
1.51 bisitz 115: '</td><td><input type="text" size="4" name="val'+
1.53 bisitz 116: id1+'" /></td><td>incl:<input type="checkbox" name="val'+
117: id2+'" /></td></tr>');
1.1 www 118: }
119:
1.46 albertel 120: function escapeHTML(text) {
121: text = text.replace(/&/g, '&');
122: text = text.replace(/"/g, '"');
123: text = text.replace(/</g, '<');
124: text = text.replace(/>/g, '>');
125: return text;
126: }
127:
1.2 www 128: function datecalc() {
129: var sform=choices.document.forms.sch;
130:
131: cdate.setHours(sform.hours.options[sform.hours.selectedIndex].value);
132: cdate.setMinutes(sform.minutes.options[sform.minutes.selectedIndex].value);
133: cdate.setSeconds(sform.minutes.options[sform.seconds.selectedIndex].value);
134: cdate.setDate(sform.date.options[sform.date.selectedIndex].value);
135: cdate.setMonth(sform.month.options[sform.month.selectedIndex].value);
136: cdate.setFullYear(sform.year.options[sform.year.selectedIndex].value);
137:
138: draw();
139: }
140:
141: function hour() {
142: var thishour=cdate.getHours();
143: var i; var j;
1.53 bisitz 144: choicewrite('<select name="hours" onchange="parent.datecalc();">');
1.2 www 145: for (i=0;i<=23;i++) {
1.54 bisitz 146: choicewrite('<option value="'+i+'"');
1.2 www 147: if (i==thishour) {
1.54 bisitz 148: choicewrite(' selected="selected"');
1.2 www 149: }
150: choicewrite('>');
151: if (i==12) { choicewrite('noon'); } else {
152: if (i==0) { choicewrite('midnight') } else {
153:
154: if (i<12) { choicewrite(i+' am'); } else {
155: j=i-12; choicewrite(j+' pm');
156: }
157:
158: }
159: }
160: choicewrite('</option>');
161: }
162: choicewrite('</select>');
163: }
164:
165: function minute() {
166: var thisminutes=cdate.getMinutes();
167: var i;
1.53 bisitz 168: choicewrite('<select name="minutes" onchange="parent.datecalc();">');
1.2 www 169: for (i=0;i<=59;i++) {
1.54 bisitz 170: choicewrite('<option value="'+i+'"');
1.2 www 171: if (i==thisminutes) {
1.54 bisitz 172: choicewrite(' selected="selected"');
1.2 www 173: }
174: choicewrite('>'+i+'</option>');
175: }
176: choicewrite('</select>');
177: }
178:
179: function second() {
180: var thisseconds=cdate.getSeconds();
181: var i;
1.53 bisitz 182: choicewrite('<select name="seconds" onchange="parent.datecalc();">');
1.2 www 183: for (i=0;i<=59;i++) {
1.54 bisitz 184: choicewrite('<option value="'+i+'"');
1.2 www 185: if (i==thisseconds) {
1.54 bisitz 186: choicewrite(' selected="selected"');
1.2 www 187: }
188: choicewrite('>'+i+'</option>');
189: }
190: choicewrite('</select>');
191: }
192:
193:
194: function date() {
195: var thisdate=cdate.getDate();
196: var i;
1.53 bisitz 197: choicewrite('<select name="date" onchange="parent.datecalc();">');
1.2 www 198: for (i=1;i<=31;i++) {
1.54 bisitz 199: choicewrite('<option value="'+i+'"');
1.2 www 200: if (i==thisdate) {
1.54 bisitz 201: choicewrite(' selected="selected"');
1.2 www 202: }
203: choicewrite('>'+i+'</option>');
204: }
205: choicewrite('</select>');
206: }
207:
208: function year() {
209: var thisyear=cdate.getFullYear();
1.19 www 210: var nowdate=new Date();
211: var nowyear=nowdate.getFullYear();
1.33 albertel 212: if ( !thisyear ) { thisyear=nowyear; }
1.19 www 213: var loweryear=thisyear-2;
214: var upperyear=thisyear+5;
215: if (thisyear>nowyear) { loweryear=nowyear-2; }
216: if (thisyear<nowyear) { upperyear=nowyear+5; }
1.2 www 217: var i;
1.53 bisitz 218: choicewrite('<select name="year" onchange="parent.datecalc();">');
1.19 www 219: for (i=loweryear;i<=upperyear;i++) {
1.54 bisitz 220: choicewrite('<option value="'+i+'"');
1.2 www 221: if (i==thisyear) {
1.54 bisitz 222: choicewrite(' selected="selected"');
1.2 www 223: }
224: choicewrite('>'+i+'</option>');
225: }
226: choicewrite('</select>');
227: }
228:
229: function month() {
230: var thismonth=cdate.getMonth();
231: var i;
1.53 bisitz 232: choicewrite('<select name="month" onchange="parent.datecalc();">');
1.2 www 233: for (i=0;i<=11;i++) {
1.54 bisitz 234: choicewrite('<option value="'+i+'"');
1.2 www 235: if (i==thismonth) {
1.54 bisitz 236: choicewrite(' selected="selected"');
1.2 www 237: }
238: choicewrite('>'+months[i]+'</option>');
239: }
240: choicewrite('</select>');
241: }
242:
243:
244: function intminute() {
245: var thisminutes=cmins;
246: var i;
1.69 musolffc 247: var result = '';
248: result += '<select name="minutes" onchange="parent.intcalc();">';
1.2 www 249: for (i=0;i<=59;i++) {
1.69 musolffc 250: result += '<option value="'+i+'"';
1.2 www 251: if (i==thisminutes) {
1.69 musolffc 252: result += ' selected="selected"';
1.2 www 253: }
1.69 musolffc 254: result += '>'+i+'</option>';
1.2 www 255: }
1.69 musolffc 256: result += '</select>';
257: return result;
1.2 www 258: }
259:
260: function inthour() {
261: var thishours=chours;
262: var i;
1.69 musolffc 263: var result = '';
264: result += '<select name="hours" onchange="parent.intcalc();">';
1.2 www 265: for (i=0;i<=23;i++) {
1.69 musolffc 266: result += '<option value="'+i+'"';
1.2 www 267: if (i==thishours) {
1.69 musolffc 268: result += ' selected="selected"';
1.2 www 269: }
1.69 musolffc 270: result += '>'+i+'</option>';
1.2 www 271: }
1.69 musolffc 272: result += '</select>';
273: return result;
1.71 raeburn 274: }
1.2 www 275:
276: function intsecond() {
1.69 musolffc 277: var thisseconds=csecs;
1.2 www 278: var i;
1.69 musolffc 279: var result = '';
280: result += '<select name="seconds" onchange="parent.intcalc();">';
1.2 www 281: for (i=0;i<=59;i++) {
1.69 musolffc 282: result += '<option value="'+i+'"';
1.2 www 283: if (i==thisseconds) {
1.69 musolffc 284: result += ' selected="selected"';
1.2 www 285: }
1.69 musolffc 286: result += '>'+i+'</option>';
1.2 www 287: }
1.69 musolffc 288: result += '</select>';
289: return result;
1.2 www 290: }
291:
292:
293: function intday() {
294: var thisdate=cdays;
295: var i;
1.69 musolffc 296: var result ='';
297: result += '<select name="date" onchange="parent.intcalc();">';
1.2 www 298: for (i=0;i<=31;i++) {
1.69 musolffc 299: result += '<option value="'+i+'"';
1.2 www 300: if (i==thisdate) {
1.69 musolffc 301: result += ' selected="selected"';
1.2 www 302: }
1.69 musolffc 303: result += '>'+i+'</option>';
1.2 www 304: }
1.69 musolffc 305: result += '</select>';
306: return result;
1.2 www 307: }
308:
309: function intcalc() {
310: var sform=choices.document.forms.sch;
311: svalue=((sform.date.options[sform.date.selectedIndex].value*24+
312: sform.hours.options[sform.hours.selectedIndex].value*1)*60+
313: sform.minutes.options[sform.minutes.selectedIndex].value*1)*60+
314: sform.seconds.options[sform.seconds.selectedIndex].value*1;
1.68 raeburn 315: if ((ptype=='date') && (pscat=='interval')) {
316: var newpmodval = '';
1.70 raeburn 317: var newpextraval = '';
1.71 raeburn 318: var newpextravaltwo = 'Done';
1.68 raeburn 319: if (sform.donebutton.length) {
320: for (var i=0; i<sform.donebutton.length; i++) {
321: if (sform.donebutton[i].checked) {
322: if (sform.donebutton[i].value == '_done') {
323: newpmodval = sform.donebutton[i].value;
1.71 raeburn 324: newpextravaltwo = sform.donebutton_text.value;
1.70 raeburn 325: } else {
326: if (sform.donebutton[i].value == '_done_proctor') {
327: newpmodval = sform.donebutton[i].value;
328: newpextraval = sform.donebutton_proctorkey.value;
1.71 raeburn 329: newpextravaltwo = sform.donebutton_text.value;
330: newpextravaltwo = newpextravaltwo.replace(/:/g,'');
1.70 raeburn 331: }
1.68 raeburn 332: }
333: }
334: }
335: }
336: pmodval = newpmodval;
1.70 raeburn 337: pextraval = newpextraval;
1.71 raeburn 338: pextravaltwo = newpextravaltwo;
1.68 raeburn 339: draw();
340: if (pmodval) {
1.71 raeburn 341: var doneRegExp = /^(_done)(|_proctor)$/;
342: var donevals = pmodval.match(doneRegExp);
343: if (donevals.length == 3) {
344: svalue += donevals[1];
345: }
346: if (newpextravaltwo) {
347: if (newpextravaltwo != 'Done') {
348: svalue += ':'+newpextravaltwo+':';
349: }
350: }
351: if (donevals[2] != '') {
352: svalue += donevals[2];
353: if (pextraval != '') {
354: svalue += '_'+pextraval;
355: }
356: }
1.70 raeburn 357: }
1.68 raeburn 358: } else {
359: draw();
360: }
1.2 www 361: }
362:
1.70 raeburn 363: function toggleSecret() {
364: var sform=choices.document.forms.sch;
365: if (sform.donebutton.length) {
366: for (var i=0; i<sform.donebutton.length; i++) {
367: if (sform.donebutton[i].checked) {
1.71 raeburn 368: if (sform.donebutton[i].value == '') {
369: if (document.getElementById('donebuttontextdiv')) {
370: document.getElementById('donebuttontextdiv').style.display='none';
371: }
372: } else {
373: if (document.getElementById('donebuttontextdiv')) {
374: document.getElementById('donebuttontextdiv').style.display='block';
375: }
376: }
1.70 raeburn 377: if (sform.donebutton[i].value == '_done_proctor') {
378: if (document.getElementById('done_proctorkey')) {
379: document.getElementById('done_proctorkey').type='text';
380: }
381: } else {
382: if (document.getElementById('done_proctorkey')) {
383: document.getElementById('done_proctorkey').type='hidden';
384: document.getElementById('done_proctorkey').value='';
385: }
386: }
387: }
388: }
389: }
390: }
391:
392: function validateInterval() {
393: var sform=choices.document.forms.sch;
394: if (sform.donebutton.length) {
395: for (var i=0; i<sform.donebutton.length; i++) {
396: if (sform.donebutton[i].checked) {
397: if (sform.donebutton[i].value == '_done_proctor') {
398: if ((sform.donebutton_proctorkey.value == '') ||
399: (sform.donebutton_proctorkey.value == null)) {
400: alert('Please provide a key for a proctor to enter when a student uses the "Done" button.');
401: return;
402: }
403: }
404: }
405: }
406: }
407: intcalc();
408: assemble();
409: }
410:
1.6 www 411: function integereval() {
412: svalue=choices.document.forms.sch.intval.value;
413: svalue=Math.round(svalue);
414: if (pscat=='zeropos') { svalue=Math.abs(svalue); }
415: if ((pscat=='pos') && (svalue==0)) {
416: svalue='';
417: }
1.12 www 418: if (pscat.indexOf('inrange')!=-1) {
1.10 www 419: var rangeparts=new Array;
420: rangeparts=split('_',pscat);
1.12 www 421: rangeparts=split(',',rangeparts[1]);
1.10 www 422: if (svalue<rangeparts[0]) { svalue=rangeparts[0]; }
423: if (svalue>rangeparts[1]) { svalue=rangeparts[1]; }
424: }
1.6 www 425: draw();
426: }
427:
428: function floateval() {
429: svalue=choices.document.forms.sch.floatval.value;
430: svalue=1.0*svalue;
431: if (pscat=='pos') { svalue=Math.abs(svalue); }
432: if ((pscat=='zeroone') && ((svalue<0) || (svalue>1))) {
433: svalue='';
434: }
435: draw();
436: }
437:
438: function stringeval() {
439: svalue=choices.document.forms.sch.stringval.value;
440: draw();
441: }
442:
1.73 raeburn 443: function ipstringeval() {
444: var patternIp = /^([\[\]a-zA-Z\.\d\*\-]+)$/;
445: var acctypes = new Array;
446: acctypes = ['allow','deny'];
447: svalue = '';
448: for (var i=0; i<acctypes.length; i++) {
449: var items = choices.document.getElementsByName('setip'+acctypes[i]);
1.74 ! raeburn 450: if (items.length > 0) {
1.73 raeburn 451: for (var j=0; j<items.length; j++) {
452: if (items[j].type == "text") {
453: var possip = items[j].value
454: possip = possip.replace(/^\s+|\s+$/g,'');
455: if (patternIp.test(possip)) {
456: if (acctypes[i] == 'deny') {
457: possip = '!'+possip;
458: }
459: if (svalue == '') {
460: svalue = possip;
461: } else {
462: svalue += ','+possip;
463: }
464: }
465: }
466: }
467: }
468: }
469: }
470:
471: function addIpRule(iptype) {
472: var frame = window.frames["choices"];
473: if (frame.document.getElementById('LC_string_ipacc_inner_'+iptype)) {
474: var innerDiv = frame.document.getElementById('LC_string_ipacc_inner_'+iptype);
475: var count = innerDiv.childNodes.length
476: var ipDiv = frame.document.createElement('div');
477: ipDiv.innerHTML = '<input type="text" size="10" name="setip'+iptype+'" onblur="parent.ipstringeval();" />'+
478: '<a href="#" onclick="parent.removeIpRule(\''+iptype+'\',\''+count+'\')">Remove</a>';
479: frame.document.getElementById('LC_string_ipacc_inner_'+iptype).appendChild(ipDiv);
480: }
481: return false;
482: }
483:
484: function removeIpRule(iptype,num) {
485: var frame = window.frames["choices"];
486: if (frame.document.getElementById('LC_string_ipacc_inner_'+iptype)) {
487: var innerDiv = frame.document.getElementById('LC_string_ipacc_inner_'+iptype);
488: for (var i=0; i<innerDiv.childNodes.length; i++) {
489: if (i==num) {
490: innerDiv.removeChild(innerDiv.childNodes[i]);
491: ipstringeval();
492: break;
493: }
494: }
495: }
496: }
497:
1.25 www 498: function radiostringeval(newval) {
499: svalue=newval;
500: draw();
501: }
502:
1.29 www 503: function callradiostringeval(newval) {
1.67 raeburn 504: return 'onclick="parent.radiostringeval(\''+newval+'\')"';
1.29 www 505: }
506:
1.72 raeburn 507: function lenienteval(newval) {
508: if (newval == 'weighted') {
509: if (document.getElementById('lenientweighteddiv')) {
510: document.getElementById('lenientweighteddiv').style.display='block';
511: }
512: var patternRelWeight = /^\-?[\d.]+$/;
513: var sform=choices.document.forms.sch;
514: if ((sform.lenientrelwt.length != 'undefined') && (sform.lenientrelwt.length) != 'null') {
515: for (var i=0; i<sform.lenientrelwt.length; i++) {
516: var relweight = sform.lenientrelwt[i].value;
517: relweight = relweight.replace(/^\s+|\s+$/g,'');
518: if (!patternRelWeight.test(relweight)) {
519: if (i<2) {
520: relweight = '1.0';
521: } else {
522: relweight = '0.0';
523: }
524: }
525: sform.lenientrelwt[i].value = relweight;
526: if (i==0) {
527: svalue = relweight;
528: } else {
529: svalue += ','+relweight;
530: }
531: }
532: }
533: } else {
534: if (document.getElementById('lenientweighteddiv')) {
535: document.getElementById('lenientweighteddiv').style.display='none';
536: }
537: svalue=newval;
1.73 raeburn 538: }
1.72 raeburn 539: draw();
540: }
541:
542: function calllenientradioeval(newval) {
543: return 'onclick="parent.lenienteval(\''+newval+'\')"';
544: }
545:
1.68 raeburn 546: function callintervalpmodval() {
1.70 raeburn 547: return 'onclick="parent.intcalc();parent.toggleSecret()"';
1.68 raeburn 548: }
549:
1.2 www 550: function intervaldis() {
551: csecs=svalue;
552: cdays=Math.floor(csecs/86400);
553: csecs-=cdays*86400;
554: chours=Math.floor(csecs/3600);
555: csecs-=chours*3600;
556: cmins=Math.floor(csecs/60);
557: csecs-=cmins*60;
1.69 musolffc 558: return cdays+' days '+chours+' hours '+cmins+' mins '+csecs+' secs';
1.2 www 559: }
1.21 www 560:
561: function pickcolor(picked) {
562: svalue=picked;
563: draw();
564: }
565:
566: function colorfield(ir,ig,ib) {
567: var col=new Array;
1.23 www 568: col=["00","11","22","44","66","88","AA","CC","DD","EE","FF"];
1.21 www 569: var color='#'+col[ir]+col[ig]+col[ib];
1.23 www 570: var selection="<font color='"+color+"'>X</font>";
571: if (color==svalue) { selection="<font color='#"+col[10-ir]+col[10-ig]+col[10-ib]+"'>X</font>"; }
1.21 www 572: choicewrite('<td bgcolor="'+color+'"><a href="javascript:parent.pickcolor('+"'"+
573: color+"'"+')">'+selection+'</a></td>');
574:
575: }
576:
1.1 www 577: function draw() {
578: choicestart();
1.51 bisitz 579: choicewrite('<form name="sch"');
1.6 www 580: if (ptype=='int') {
581: choicewrite(' action="javascript:integereval();"');
582: }
583: if (ptype=='float') {
584: choicewrite(' action="javascript:floateval();"');
585: }
586: if (ptype=='string') {
1.73 raeburn 587: if (pscat == 'ip') {
588: choicewrite(' action="javascript:ipstringeval();"');
589: } else {
590: choicewrite(' action="javascript:stringeval();"');
591: }
1.6 www 592: }
1.62 raeburn 593: if (ptype != 'int' && ptype != 'float' && ptype != 'string') {
594: choicewrite(' action=""');
595: }
1.6 www 596: choicewrite('>');
1.1 www 597: if (ptype=='tolerance') {
1.2 www 598: // 0: pscat
599: if (pscat=='default') {
1.1 www 600: tablestart('Use default value or algorithm of resource');
601: }
1.2 www 602: if (pscat=='relative_sym') {
1.1 www 603: // 2: percentage
604: // 3: open
605: tablestart('Percentage error, symmetric around value');
606: valline('Percentage',2,3);
1.13 www 607: if ((svalue!='') && (typeof(svalue)!="undefined")) {
608: choices.document.forms.sch.val2.value=parseInt(svalue);
609: if (svalue.indexOf('+')!=-1) {
610: choices.document.forms.sch.val3.checked=true;
611: }
612: }
1.1 www 613: }
1.2 www 614: if (pscat=='relative') {
1.1 www 615: // 2: left
616: // 3: open
617: // 4: right
618: // 5: open
619: tablestart('Percentage error, asymmetric around value');
620: valline('Upper percentage',2,3);
621: valline('Lower percentage',4,5);
1.17 matthew 622: var range1=new Array;
1.13 www 623: if ((svalue!='') && (typeof(svalue)!="undefined")) {
1.17 matthew 624: range1=svalue.split(',');
625: if (typeof(range1[1])=='undefined') { range1[1]=range1[0]; }
626: choices.document.forms.sch.val2.value=parseFloat(range1[0]);
627: if (range1[0].indexOf('+')!=-1) {
1.13 www 628: choices.document.forms.sch.val3.checked=true;
629: }
1.17 matthew 630: choices.document.forms.sch.val4.value=parseFloat(range1[1]);
631: if (range1[1].indexOf('+')!=-1) {
1.13 www 632: choices.document.forms.sch.val5.checked=true;
633: }
634: }
1.1 www 635: }
1.2 www 636: if (pscat=='absolute_sym') {
1.1 www 637: tablestart('Absolute error, symmetric around value');
638: valline('Value',2,3);
1.13 www 639: if ((svalue!='') && (typeof(svalue)!="undefined")) {
1.15 www 640: choices.document.forms.sch.val2.value=parseFloat(svalue);
1.13 www 641: if (svalue.indexOf('+')!=-1) {
642: choices.document.forms.sch.val3.checked=true;
643: }
644: }
1.1 www 645: }
1.2 www 646: if (pscat=='absolute') {
1.1 www 647: tablestart('Absolute error, asymmetric around value');
648: valline('Upper value',2,3);
649: valline('Lower value',4,5);
1.17 matthew 650: var range2=new Array;
1.13 www 651: if ((svalue!='') && (typeof(svalue)!="undefined")) {
652: range=svalue.split(',');
1.17 matthew 653: if (typeof(range2[1])=='undefined') { range2[1]=range2[0]; }
654: choices.document.forms.sch.val2.value=parseFloat(range2[0]);
655: if (range2[0].indexOf('+')!=-1) {
1.13 www 656: choices.document.forms.sch.val3.checked=true;
657: }
1.17 matthew 658: choices.document.forms.sch.val4.value=parseFloat(range2[1]);
659: if (range2[1].indexOf('+')!=-1) {
1.13 www 660: choices.document.forms.sch.val5.checked=true;
661: }
662: }
1.1 www 663: }
664: }
665:
666: if (ptype=='date') {
1.2 www 667: if (pscat=='default') {
668: tablestart('Default value or none');
669: choicewrite('</table>');
670: } else {
671: if (pscat=='start') {
1.24 www 672: tablestart('Date and time');
1.2 www 673: }
674: if (pscat=='end') {
1.24 www 675: tablestart('Date and time');
1.2 www 676: }
677: if (pscat=='interval') {
1.70 raeburn 678: var proctorkeytype = 'hidden';
1.71 raeburn 679: var donebuttontext = 'none';
1.70 raeburn 680: if (pmodval == '_done_proctor') {
681: proctorkeytype = 'text';
1.71 raeburn 682: donebuttontext = 'block';
683: }
684: if (pmodval == '_done') {
685: donebuttontext = 'block';
1.70 raeburn 686: }
1.2 www 687: tablestart('Time interval');
1.69 musolffc 688: choicewrite( [
689: '<tr><td colspan="3">'+intervaldis()+'</td></tr>',
690: '<tr><td>Time:</td><td colspan="2">',
691: '<span style="white-space:nowrap">'+intday()+' days </span>',
692: '<span style="white-space:nowrap">'+inthour()+' hours</span>',
693: '<span style="white-space:nowrap">'+intminute()+' mins</span>',
694: '<span style="white-space:nowrap">'+intsecond()+' secs</span>',
695: '</td></tr>',
696: '</table>',
697: '<br />',
698: ].join("\n"));
1.68 raeburn 699: tablestart('Provide a "Done" button to students?');
700: choicewrite('<tr><td>Value:</td><td colspan="2">');
1.70 raeburn 701: choicewrite('<label><input name="donebutton" value=""'+
702: ' type="radio" '+callintervalpmodval());
703: if (pmodval == '') { choicewrite(' checked="checked"'); }
704: choicewrite(' /> No</label><br />');
1.68 raeburn 705: choicewrite('<label><input name="donebutton" value="_done"'+
706: ' type="radio" '+callintervalpmodval());
1.70 raeburn 707: if (pmodval == '_done') { choicewrite(' checked="checked"'); }
1.68 raeburn 708: choicewrite(' /> Yes</label><br />');
1.70 raeburn 709: choicewrite('<span style="white-space:nowrap">'+
710: '<label><input name="donebutton" value="_done_proctor"'+
1.68 raeburn 711: ' type="radio" '+callintervalpmodval());
1.70 raeburn 712: if (pmodval == '_done_proctor') { choicewrite(' checked="checked"'); }
713: choicewrite(' /> Yes, with proctor key</label>');
714: choicewrite(' <input name="donebutton_proctorkey" value='+
715: '"'+escapeHTML(pextraval)+'" type="'+proctorkeytype+
1.71 raeburn 716: '" id="done_proctorkey" size="10"'+
717: ' onblur="parent.intcalc();" /></span><br />'+
718: '<div id="donebuttontextdiv" style="display:'+donebuttontext+'">'+
719: '<br /><span style="white-space:nowrap">'+
720: 'Button text:'+
721: '<input name="donebutton_text" value='+
722: '"'+escapeHTML(pextravaltwo)+'" type="text" '+
723: 'size="10" onblur="parent.intcalc();" /></span></div>');
1.68 raeburn 724: choicewrite('</td></tr></table>');
725: } else {
1.52 bisitz 726: choicewrite('<tr><td colspan="3">'
1.2 www 727: +cdate.toString()+
1.52 bisitz 728: '</td></tr><tr><td>Date:</td><td colspan="2">');
1.2 www 729: month();date();year();
1.52 bisitz 730: choicewrite('</td></tr><tr><td>Time:'
1.51 bisitz 731: +'</td><td colspan="2">');hour();choicewrite('h ');minute();
1.2 www 732: choicewrite('m ');second();
733: choicewrite('s</td></tr></table>');
734: }
735: }
1.1 www 736: }
737:
1.6 www 738: if (ptype=='int') {
1.19 www 739: var pscatparts=new Array;
740: pscatparts=pscat.split(',');
741: pscat=pscatparts[0];
1.6 www 742: if (pscat=='default') {
743: tablestart('Default value or none');
1.14 www 744: choicewrite('</table>');
1.6 www 745: } else {
1.14 www 746: if (pscat=='range') {
747: tablestart('Integer range');
1.52 bisitz 748: choicewrite('<tr><td>Lower Value:'+
1.51 bisitz 749: '</td><td colspan="2"><input type="text" size="4" name="val2'+
1.53 bisitz 750: '" /></td></tr>');
1.52 bisitz 751: choicewrite('<tr><td>Upper Value:'+
1.51 bisitz 752: '</td><td colspan="2"><input type="text" size="4" name="val4'+
1.53 bisitz 753: '" /></td></tr></table>');
1.14 www 754: var range=new Array;
755: if ((svalue!='') && (typeof(svalue)!="undefined")) {
756: range=svalue.split(',');
757: if (typeof(range[1])=='undefined') { range[1]=range[0]; }
758: choices.document.forms.sch.val2.value=parseInt(range[0]);
759: choices.document.forms.sch.val4.value=parseInt(range[1]);
760: }
761: } else {
1.6 www 762: if (pscat=='pos') {
763: tablestart('Positive (non-zero) integer');
764: }
765: if (pscat=='zeropos') {
766: tablestart('Positive integer or zero');
767: }
1.12 www 768: if (pscat.indexOf('inrange')!=-1) {
1.10 www 769: var rangeparts=new Array;
1.12 www 770: rangeparts=split(',',pscat);
1.10 www 771: tablestart('Integer in the range ['+rangeparts[1]+']');
772: }
1.6 www 773: if (pscat=='any') {
774: tablestart('Integer');
775: }
1.52 bisitz 776: choicewrite('<tr><td>Value:</td><td colspan="2">');
1.51 bisitz 777: choicewrite('<input name="intval" size="10" value="'+escapeHTML(svalue)+
1.53 bisitz 778: '" onchange="parent.integereval()" />');
1.54 bisitz 779: choicewrite('</td></tr></table>');
1.6 www 780: }
1.14 www 781: }
1.1 www 782: }
783:
1.6 www 784: if (ptype=='float') {
785: if (pscat=='default') {
786: tablestart('Default value or none');
787: choicewrite('</table>');
788: } else {
789: if (pscat=='pos') {
790: tablestart('Positive floating point number or zero');
791: }
792: if (pscat=='zeroone') {
793: tablestart('Floating point number between zero and one');
794: }
795: if (pscat=='any') {
796: tablestart('Floating point number');
797: }
1.52 bisitz 798: choicewrite('<tr><td>Value:</td><td colspan="2">');
1.51 bisitz 799: choicewrite('<input name="floatval" size="10" value="'+escapeHTML(svalue)+
1.53 bisitz 800: '" onchange="parent.floateval()" />');
1.54 bisitz 801: choicewrite('</td></tr></table>');
1.6 www 802: }
1.1 www 803: }
804:
1.6 www 805: if (ptype=='string') {
1.42 albertel 806: if ((pscat=='any') || (pscat=='') || (pscat=='default') ||
807: (typeof(pscat)=='undefined')) {
1.6 www 808: tablestart('Text');
1.54 bisitz 809: choicewrite('<tr><td>Value:</td><td colspan="2">');
1.46 albertel 810: choicewrite('<input name="stringval" size="20" value="'+escapeHTML(svalue)+
1.53 bisitz 811: '" type="text" onchange="parent.stringeval()" />');
1.25 www 812: }
813: if (pscat=='yesno') {
814: tablestart('Yes/No');
1.52 bisitz 815: choicewrite('<tr><td>Value:</td><td colspan="2">');
1.32 albertel 816: choicewrite('<label><input name="stringval" value="yes"'+
1.29 www 817: ' type="radio" '+callradiostringeval('yes'));
1.53 bisitz 818: if (svalue=='yes') { choicewrite(' checked="checked"'); }
819: choicewrite(' /> Yes</label><br />');
1.32 albertel 820: choicewrite('<label><input name="stringval" value="no"'+
1.29 www 821: ' type="radio" '+callradiostringeval('no'));
1.53 bisitz 822: if (svalue=='no') { choicewrite(' checked="checked"'); }
823: choicewrite(' /> No</label><br />');
1.25 www 824: }
1.47 albertel 825: if (pscat=='problemstatus') {
826: tablestart('Problem Status');
1.52 bisitz 827: choicewrite('<tr><td>Value:</td><td colspan="2">');
1.47 albertel 828: choicewrite('<label><input name="stringval" value="yes"'+
829: ' type="radio" '+callradiostringeval('yes'));
1.53 bisitz 830: if (svalue=='yes') { choicewrite(' checked="checked"'); }
831: choicewrite(' /> Yes</label><br />');
1.49 albertel 832: choicewrite('<label><input name="stringval" value="answer"'+
833: ' type="radio" '+callradiostringeval('answer'));
1.53 bisitz 834: if (svalue=='answer') { choicewrite(' checked="checked"'); }
835: choicewrite(' /> Yes, and show correct answer if they exceed the maximum number of tries.</label><br />');
1.47 albertel 836: choicewrite('<label><input name="stringval" value="no"'+
837: ' type="radio" '+callradiostringeval('no'));
1.53 bisitz 838: if (svalue=='no') { choicewrite(' checked="checked"'); }
839: choicewrite(' /> No, don\'t show correct/incorrect feedback.</label><br />');
1.47 albertel 840: choicewrite('<label><input name="stringval" value="no_feedback_ever"'+
841: ' type="radio" '+callradiostringeval('no_feedback_ever'));
1.53 bisitz 842: if (svalue=='no_feedback_ever') { choicewrite(' checked="checked"'); }
843: choicewrite(' /> No, show no feedback at all.</label><br />');
1.47 albertel 844: }
1.25 www 845: if (pscat=='examtype') {
846: tablestart('Exam Type');
1.52 bisitz 847: choicewrite('<tr><td>Value:</td><td colspan="2">');
1.32 albertel 848: choicewrite('<label><input name="stringval" value="online"'+
1.29 www 849: ' type="radio" '+callradiostringeval('online'));
1.53 bisitz 850: if (svalue=='online') { choicewrite(' checked="checked"'); }
851: choicewrite(' /> Online</label><br />');
1.32 albertel 852: choicewrite('<label><input name="stringval" value="checkout"'+
1.29 www 853: ' type="radio" '+callradiostringeval('checkout'));
1.53 bisitz 854: if (svalue=='checkout') { choicewrite(' checked="checked"'); }
855: choicewrite(' /> Check out</label><br />');
1.25 www 856: }
857: if (pscat=='questiontype') {
858: tablestart('Question Type');
1.52 bisitz 859: choicewrite('<tr><td>Value:</td><td colspan="2">');
1.32 albertel 860: choicewrite('<label><input name="stringval" value="problem"'+
1.29 www 861: ' type="radio" '+callradiostringeval('problem'));
1.53 bisitz 862: if (svalue=='problem') { choicewrite(' checked="checked"'); }
863: choicewrite(' /> Standard Problem</label><br />');
1.36 albertel 864: // choicewrite('<label><input name="stringval" value="quiz"'+
865: // ' type="radio" '+callradiostringeval('quiz'));
1.53 bisitz 866: // if (svalue=='quiz') { choicewrite(' checked="checked"'); }
867: // choicewrite(' /> Quiz</label><br />');
1.35 albertel 868: choicewrite('<label><input name="stringval" value="practice"'+
869: ' type="radio" '+callradiostringeval('practice'));
1.53 bisitz 870: if (svalue=='practice') { choicewrite(' checked="checked"'); }
871: choicewrite(' /> Practice</label><br />');
1.32 albertel 872: choicewrite('<label><input name="stringval" value="exam"'+
1.29 www 873: ' type="radio" '+callradiostringeval('exam'));
1.53 bisitz 874: if (svalue=='exam') { choicewrite(' checked="checked"'); }
1.65 bisitz 875: choicewrite(' /> Bubblesheet Exam</label><br />');
1.36 albertel 876: // choicewrite('<label><input name="stringval" value="assess"'+
877: // ' type="radio" '+callradiostringeval('assess'));
1.53 bisitz 878: // if (svalue=='assess') { choicewrite(' checked="checked"'); }
879: // choicewrite(' /> Assessment</label><br />');
1.32 albertel 880: choicewrite('<label><input name="stringval" value="survey"'+
1.29 www 881: ' type="radio" '+callradiostringeval('survey'));
1.53 bisitz 882: if (svalue=='survey') { choicewrite(' checked="checked"'); }
883: choicewrite(' /> Survey</label><br />');
1.36 albertel 884: // choicewrite('<label><input name="stringval" value="form"'+
885: // ' type="radio" '+callradiostringeval('form'));
1.53 bisitz 886: // if (svalue=='form') { choicewrite(' checked="checked"'); }
1.36 albertel 887: // choicewrite('> Input Form</label><br />');
1.57 raeburn 888: choicewrite('<label><input name="stringval" value="surveycred"'+
889: ' type="radio" '+callradiostringeval('surveycred'));
890: if (svalue=='surveycred') { choicewrite(' checked="checked"'); }
891: choicewrite('> Survey (credit for submission)</label><br />');
892: choicewrite('<label><input name="stringval" value="anonsurvey"'+
893: ' type="radio" '+callradiostringeval('anonsurvey'));
894: if (svalue=='anonsurvey') { choicewrite(' checked="checked"'); }
895: choicewrite('> Anonymous Survey</label><br />');
896: choicewrite('<label><input name="stringval" value="anonsurveycred"'+
897: ' type="radio" '+callradiostringeval('anonsurveycred'));
898: if (svalue=='anonsurveycred') { choicewrite(' checked="checked"'); }
899: choicewrite('> Anonymous Survey (credit for submission)</label><br />');
1.59 raeburn 900: choicewrite('<label><input name="stringval" value="randomizetry"'+
901: ' type="radio" '+callradiostringeval('randomizetry'));
902: if (svalue=='randomizetry') { choicewrite(' checked="checked"'); }
903: choicewrite('> New Randomization Each N Tries (default N=1)</label><br />');
1.32 albertel 904: choicewrite('<label><input name="stringval" value="library"'+
1.29 www 905: ' type="radio" '+callradiostringeval('library'));
1.53 bisitz 906: if (svalue=='library') { choicewrite(' checked="checked"'); }
907: choicewrite(' /> Library</label><br />');
1.25 www 908: }
1.60 raeburn 909: if (pscat=='lenient') {
1.72 raeburn 910: var patternLenientStd = /^(yes|no|default)$/;
911: var patternLenientRel = /^([\-\d\.]+)\,([\-\d\.]+)\,([\-\d\.]+)\,([\-\d\.]+)$/;
912: var lenientweighted = 'none';
913: var relatives = new Array;
1.60 raeburn 914: tablestart('Lenient Grading (Partial Credit)');
915: choicewrite('<tr><td>Value:</td><td colspan="2">');
916: choicewrite('<label><input name="stringval" value="yes"'+
1.72 raeburn 917: ' type="radio" '+calllenientradioeval('yes'));
1.60 raeburn 918: if (svalue=='yes') { choicewrite(' checked="checked"'); }
919: choicewrite(' /> Yes</label><br />');
920: choicewrite('<label><input name="stringval" value="no"'+
1.72 raeburn 921: ' type="radio" '+calllenientradioeval('no'));
1.60 raeburn 922: if (svalue=='no') { choicewrite(' checked="checked"'); }
923: choicewrite(' /> No</label><br />');
924: choicewrite('<label><input name="stringval" value="default"'+
1.72 raeburn 925: ' type="radio" '+calllenientradioeval('default'));
1.60 raeburn 926: if (svalue=='default') { choicewrite(' checked="checked"'); }
927: choicewrite(' /> Default (only bubblesheet grading is lenient)</label><br />');
1.72 raeburn 928: choicewrite('<label><input name="stringval" value="weighted"'+
929: ' type="radio" '+calllenientradioeval('weighted'));
930: if (!patternLenientStd.test(svalue) && svalue != '') {
931: choicewrite(' checked="checked"');
932: lenientweighted='block';
933: var relatives = svalue.match(patternLenientRel);
934: }
935: choicewrite(' />Yes, weighted (optionresponse in checkbox mode)</label><br /><br />'+
936: '<div id="lenientweighteddiv" style="display:'+lenientweighted+'">'+
937: '<table class="LC_parmsel_table"><tr bgcolor="#C5DB99">'+
938: '<th colspan="2">Foil submission status</th><th>Points</th></tr>');
939: var lenienttypes = ['Correct (checked)','Correct (unchecked)','Incorrect (checked)','Incorrect (unchecked)'];
940: for (var i=0; i<lenienttypes.length; i++) {
941: var j = i+1;
942: if (relatives[j] == '') {
943: if (i < 2) {
944: relatives[j] = '1.0';
945: } else {
946: relatives[j] = '0.0';
947: }
948: }
949: choicewrite('<tr><td colspan="2">'+lenienttypes[i]+'</td>'+
950: '<td><input type="text" name="lenientrelwt" value="'+relatives[j]+'"'+
951: ' size="3" onblur="parent.lenienteval(\'weighted\')" /></td></tr>');
952: }
953: choicewrite('</table></div>');
1.60 raeburn 954: }
1.64 raeburn 955: if (pscat=='discussvote') {
956: tablestart('Discussion Voting');
957: choicewrite('<tr><td>Value:</td><td colspan="2">');
958: choicewrite('<label><input name="stringval" value="yes"'+
959: ' type="radio" '+callradiostringeval('yes'));
960: if (svalue=='yes') { choicewrite(' checked="checked"'); }
961: choicewrite(' /> Yes</label><br />');
962: choicewrite('<label><input name="stringval" value="notended"'+
963: ' type="radio" '+callradiostringeval('notended'));
964: if (svalue=='notended') { choicewrite(' checked="checked"'); }
965: choicewrite(' /> Yes, unless discussion ended</label><br />');
966: choicewrite('<label><input name="stringval" value="no"'+
967: ' type="radio" '+callradiostringeval('no'));
968: if (svalue=='no') { choicewrite(' checked="checked"'); }
969: choicewrite(' /> No</label><br />');
970: }
1.25 www 971: if (pscat=='ip') {
1.73 raeburn 972: var currallow = new Array;
973: var currdeny = new Array;
974: if ((svalue != '') && (svalue != null)) {
975: var patternComma = /,/;
976: var patternAllow = /^([\[\]a-zA-Z\.\d\*\-]+)$/;
977: var patternDeny = /^\!([\[\]a-zA-Z\.\d\*\-]+)$/;
978: var current = new Array;
979: if (patternComma.test(svalue)) {
980: current = svalue.split(',');
981: } else {
982: current = (svalue);
983: }
984: for (var i=0; i<current.length; i++) {
985: if (patternDeny.test(current[i])) {
986: var denied = current[i].replace(/^!/,'');
987: currdeny.push(denied);
988: } else {
989: if (patternAllow.test(current[i])) {
990: currallow.push(current[i]);
991: }
992: }
993: }
994: }
995: if (currdeny.length == 0) {
996: currdeny = ('');
997: }
998: if (currallow.length == 0) {
999: currallow = ('');
1000: }
1001: var curripaccess = [currallow,currdeny];
1002: tablestart('IP Number/Name');
1003: choicewrite('<tr><th>Allow from</th><th>Deny from</th></tr><tr>');
1004: var acctypes = ['allow','deny'];
1005: for (var i=0; i<acctypes.length; i++) {
1006: choicewrite('<td valign="top">'+
1007: '<div class="LC_string_ipacc_wrap" id="LC_string_ipacc_'+acctypes[i]+'">'+
1008: '<div class="LC_string_ipacc_inner" id="LC_string_ipacc_inner_'+acctypes[i]+'">');
1009: var num=0;
1010: for (var j=0; j<curripaccess[i].length; j++) {
1011: choicewrite('<div><input type="text" size="10" name="setip'+acctypes[i]+'" value="'+curripaccess[i][j]+'" onblur="parent.ipstringeval();" />');
1.74 ! raeburn 1012: choicewrite('<a href="#" onclick="parent.removeIpRule(\''+acctypes[i]+'\',\''+j+'\')">Remove</a>');
1.73 raeburn 1013: choicewrite('</div>');
1014: num ++;
1015: }
1.74 ! raeburn 1016: choicewrite('</div><button onclick="parent.addIpRule(\''+acctypes[i]+'\');">Add item</button>');
1.73 raeburn 1017: }
1018: choicewrite('</div></td></tr></table>');
1.6 www 1019: }
1.26 www 1020: if (pscat=='fileext') {
1021: tablestart('Allowed File Extensions');
1.52 bisitz 1022: choicewrite('<tr><td>Value:</td><td colspan="2">');
1.32 albertel 1023: choicewrite('<label><input name="radstringval" value="txt"'+
1.29 www 1024: ' type="radio" '+callradiostringeval('txt'));
1.53 bisitz 1025: if (svalue=='txt') { choicewrite(' checked="checked"'); }
1026: choicewrite(' /> Plain Text</label><br />');
1.32 albertel 1027: choicewrite('<label><input name="radstringval" value="png,jpg,jpeg,gif"'+
1.29 www 1028: ' type="radio" '+callradiostringeval('png,jpg,jpeg,gif'));
1.53 bisitz 1029: if (svalue=='png,jpg,jpeg,gif') { choicewrite(' checked="checked"'); }
1030: choicewrite(' /> Picture File</label><br />');
1.58 raeburn 1031: choicewrite('<label><input name="radstringval" value="doc,docx,xls,xlsx,ppt,pptx"'+
1032: ' type="radio" '+callradiostringeval('doc,docx,xls,xlsx,ppt,pptx'));
1033: if (svalue=='doc,docx,xls,xlsx,ppt,pptx') { choicewrite(' checked="checked"'); }
1.53 bisitz 1034: if (svalue=='doc,xls,ppt') { choicewrite(' checked="checked"'); }
1035: choicewrite(' /> Office Document</label><br />');
1.46 albertel 1036: choicewrite('<input name="stringval" size="20" value="'+escapeHTML(svalue)+
1.53 bisitz 1037: '" onchange="parent.stringeval()" />');
1.26 www 1038: }
1.37 albertel 1039: if (pscat=='useslots') {
1040: tablestart('Slots control access');
1.52 bisitz 1041: choicewrite('<tr><td>Value:</td><td colspan="2">');
1.37 albertel 1042: choicewrite('<label><input name="stringval" value="no"'+
1043: ' type="radio" '+callradiostringeval('no'));
1.53 bisitz 1044: if (svalue=='no') { choicewrite(' checked="checked"'); }
1045: choicewrite(' /> No</label><br />');
1.37 albertel 1046: choicewrite('<label><input name="stringval" value="resource"'+
1047: ' type="radio" '+callradiostringeval('resource'));
1.53 bisitz 1048: if (svalue=='resource') { choicewrite(' checked="checked"'); }
1049: choicewrite(' /> Yes, and the scope of student selected slot is a single resource.</label><br />');
1.38 albertel 1050: choicewrite('<label><input name="stringval" value="map"'+
1051: ' type="radio" '+callradiostringeval('map'));
1.53 bisitz 1052: if (svalue=='map') { choicewrite(' checked="checked"'); }
1053: 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 />');
1.39 albertel 1054: choicewrite('<label><input name="stringval" value="map_map"'+
1.40 albertel 1055: ' type="radio" '+callradiostringeval('map_map'));
1.53 bisitz 1056: if (svalue=='map_map') { choicewrite(' checked="checked"'); }
1.55 bisitz 1057: 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 />');
1.54 bisitz 1058: choicewrite('</td></tr></table>');
1.6 www 1059: }
1.21 www 1060: }
1061:
1062: if (ptype=='color') {
1063: tablestart('Choose a Color');
1064: choicewrite('<table>');
1065: if (svalue) {
1.23 www 1066: choicewrite('<tr><td colspan="9">Current choice:</td><td bgcolor="'+
1.46 albertel 1067: escapeHTML(svalue)+'" colspan="2"> </td></tr>');
1.21 www 1068: }
1.23 www 1069: for (var ir=0; ir<=10; ir++) {
1070: for (var ig=0; ig<=10; ig++) {
1.21 www 1071: choicewrite('<tr>');
1.23 www 1072: for (var ib=0; ib<=10; ib++) {
1.21 www 1073: colorfield(ir,ig,ib);
1074: }
1075: choicewrite('</tr>');
1076: }
1077: }
1078: choicewrite('</table></td></table>');
1.1 www 1079: }
1080:
1.40 albertel 1081: choicewrite('</form>');
1.1 www 1082: choiceend();
1083: }
1084:
1085: function sopt(va,text) {
1086: selwrite('<option value="'+va+'"');
1.2 www 1087: if (va==pscat) {
1.54 bisitz 1088: selwrite(' selected="selected"');
1.1 www 1089: }
1090: selwrite('>'+text+'</option>');
1091: }
1092:
1093: function catchange() {
1094: var sform=selector.document.forms.fsel.fcat;
1.2 www 1095: pscat=sform.options[sform.selectedIndex].value;
1.1 www 1096: draw();
1097: }
1098:
1099: function assemble() {
1.2 www 1100: if ((ptype=='date') && (pscat!='interval')) {
1.41 www 1101: svalue=Math.floor(cdate.getTime()/1000);
1.2 www 1102: }
1.12 www 1103: if (ptype=='tolerance') {
1104: if (pscat=='relative_sym') {
1105: svalue=choices.document.forms.sch.val2.value+'%';
1106: if (choices.document.forms.sch.val3.checked) {
1107: svalue+='+';
1108: }
1109: }
1110: if (pscat=='absolute_sym') {
1111: svalue=choices.document.forms.sch.val2.value;
1112: if (choices.document.forms.sch.val3.checked) {
1113: svalue+='+';
1114: }
1115: }
1116: if (pscat=='absolute') {
1117: svalue=choices.document.forms.sch.val2.value;
1118: if (choices.document.forms.sch.val3.checked) {
1119: svalue+='+';
1120: }
1121: svalue+=','+choices.document.forms.sch.val4.value;
1122: if (choices.document.forms.sch.val5.checked) {
1123: svalue+='+';
1124: }
1125: }
1126: if (pscat=='relative') {
1127: svalue=choices.document.forms.sch.val2.value+'%';
1128: if (choices.document.forms.sch.val3.checked) {
1129: svalue+='+';
1130: }
1131: svalue+=','+choices.document.forms.sch.val4.value+'%';
1132: if (choices.document.forms.sch.val5.checked) {
1133: svalue+='+';
1134: }
1135: }
1.14 www 1136: }
1137: if ((ptype=='int') && (pscat=='range')) {
1138: svalue=choices.document.forms.sch.val2.value+','+
1139: choices.document.forms.sch.val4.value;
1.12 www 1140: }
1.6 www 1141: if (pscat=='default') { svalue=''; }
1.2 www 1142: stype=ptype+'_'+pscat;
1.1 www 1143: }
1144:
1145:
1146: function init() {
1147: var i;
1.2 www 1148: var subs=new Array();
1.71 raeburn 1149: var doneRegExp = /_done(|\:[^\:]+\:)/;
1150: var doneproctorRegExp = /_done(|\:[^\:]+\:)_proctor/;
1.70 raeburn 1151: var proctorkeyRegExp = /^(\d+)_(.+)$/;
1.71 raeburn 1152: var donetextRegExp = /\:([^\:]+)\:/;
1.1 www 1153: var namevalue=this.window.location.search.split('&');
1154: namevalue[0]=namevalue[0].substr(1,namevalue[0].length-1);
1155:
1156: for (i=0;i<namevalue.length;i++) {
1157: var pair=namevalue[i].split('=');
1.3 www 1158: pair[1]=unescape(pair[1]);
1.1 www 1159: if (pair[0]=='value') { pvalue=pair[1]; }
1.2 www 1160: if (pair[0]=='type') { subs=pair[1].split('_');
1161: ptype=subs[0];
1162: pscat=subs[1];
1.11 www 1163: if (typeof(subs[2])!="undefined") {
1164: pscat+='_'+subs[2];
1165: }
1166: if ((pscat=='') || (typeof(pscat)=="undefined")) {
1.6 www 1167: pscat='default';
1168: }
1.2 www 1169: }
1.1 www 1170: if (pair[0]=='return') { preturn=pair[1]; }
1171: if (pair[0]=='call') { pcode=pair[1]; }
1.2 www 1172: if (pair[0]=='marker') { pmarker=pair[1]; }
1.1 www 1173: if (pair[0]=='name') { pname=pair[1]; }
1.63 www 1174: if (pair[0]=='modal') { pmodal=pair[1]; }
1.34 albertel 1175: if (pair[0]=='defhour' && pair[1] >= 0 && pair[1] < 24 ) {
1176: defhour=pair[1];
1177: }
1178: if (pair[0]=='defmin' && pair[1] >= 0 && pair[1] < 60) { defmin=pair[1]; }
1179: if (pair[0]=='defsec' && pair[1] >= 0 && pair[1] < 60) { defsec=pair[1]; }
1.1 www 1180: }
1181:
1.68 raeburn 1182: if (ptype=='date' && pscat == 'interval') {
1.70 raeburn 1183: if (doneproctorRegExp.test(pvalue)) {
1.71 raeburn 1184: var current = pvalue.match(doneproctorRegExp);
1185: if (current.length == 2) {
1186: var textstr = current[1];
1187: if (textstr != '') {
1188: var textvals = textstr.match(donetextRegExp);
1189: if (textvals.length == 2) {
1190: pextravaltwo = textvals[1];
1191: }
1192: }
1193: }
1.70 raeburn 1194: var intervalwithkey = pvalue.replace(doneproctorRegExp,'');
1195: if (proctorkeyRegExp.test(intervalwithkey)) {
1196: var currvals = intervalwithkey.match(proctorkeyRegExp);
1197: if (currvals.length == 3) {
1198: pvalue = currvals[1];
1199: pextraval = currvals[2];
1.71 raeburn 1200: pmodval = '_done_proctor';
1.70 raeburn 1201: } else {
1202: pmodval = '';
1203: }
1204: }
1205: } else {
1206: if (doneRegExp.test(pvalue)) {
1.71 raeburn 1207: var current = pvalue.match(doneRegExp);
1208: if (current.length == 2) {
1209: var textstr = current[1];
1210: if (textstr != '') {
1211: var textvals = textstr.match(donetextRegExp);
1212: if (textvals.length == 2) {
1213: pextravaltwo = textvals[1];
1214: }
1215: }
1216: }
1.70 raeburn 1217: var pnumval = pvalue.replace(doneRegExp,'');
1.71 raeburn 1218: pmodval = '_done';
1.70 raeburn 1219: pvalue = pnumval;
1220: }
1.68 raeburn 1221: }
1222: }
1.1 www 1223: svalue=pvalue;
1.6 www 1224: if (((ptype=='float') || (ptype=='string') || (ptype=='int')) &&
1225: (pscat=='default') &&
1.11 www 1226: (typeof(svalue)!="undefined") &&
1227: (svalue!=0) && (svalue!='')) { pscat='any'; }
1.1 www 1228:
1.13 www 1229: if (ptype=='tolerance') {
1230: var tperc=0;
1231: var trange=0;
1232: if (typeof(svalue)!='undefined') {
1233: if (svalue.indexOf('%')!=-1) { tperc=1; }
1234: if (svalue.indexOf(',')!=-1) { trange=1; }
1235: if (trange) {
1236: if (tperc) { pscat='relative'; } else { pscat='absolute'; }
1237: } else {
1238: if (tperc) { pscat='relative_sym'; } else { pscat='absolute_sym'; }
1239: }
1240: }
1241: }
1242:
1.61 raeburn 1243: this.window.selector.document.open();
1.62 raeburn 1244: selwrite('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
1245: selwrite('<html xmlns="http://www.w3.org/1999/xhtml">');
1.55 bisitz 1246: selwrite('<head>');
1.62 raeburn 1247: selwrite('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />');
1248: selwrite('<title>LON-CAPA</title>');
1.55 bisitz 1249: selwrite('<style type="text/css">');
1250: selwrite('<!--');
1251: selwrite('body {');
1252: selwrite('font-family: Verdana,Arial,Helvetica,sans-serif;');
1253: selwrite('line-height:130%;');
1254: selwrite('font-size:0.83em;');
1255: selwrite('background: #FFFFFF;');
1256: selwrite('}');
1257: selwrite('-->');
1258: selwrite('</style>');
1259: selwrite('</head>');
1.62 raeburn 1260: selwrite('<body>');
1261: selwrite('<form name="fsel" action=""><b>'+pname+'</b><br />');
1.66 bisitz 1262: selwrite('Format of Value(s): <select name="fcat" onchange="parent.catchange();">');
1.12 www 1263:
1.1 www 1264: if (ptype=='tolerance') {
1265: sopt('default','Default');
1266: sopt('relative_sym','Relative Tolerance, Symmetric (percent)');
1267: sopt('relative','Relative Tolerance (percentages)');
1268: sopt('absolute_sym','Absolute Tolerance, Symmetric (value)');
1269: sopt('absolute','Absolute Tolerance (values)');
1270: }
1271:
1272: if (ptype=='date') {
1.48 albertel 1273: if (pscat != 'interval') {
1274: sopt('default','Default');
1275: sopt('start','Starting Date');
1276: sopt('end','Ending Date');
1277: } else {
1278: sopt('interval','Time Interval');
1279: }
1280:
1.11 www 1281: if ((pvalue!='') && (typeof(pvalue)!="undefined")) {
1.2 www 1282: cdate.setTime(pvalue*1000);
1.30 www 1283: } else {
1.31 www 1284: cdate.setSeconds(defsec);
1285: cdate.setMinutes(defmin);
1286: cdate.setHours(defhour);
1.2 www 1287: }
1288:
1289: months[0]='January';
1290: months[1]='February';
1291: months[2]='March';
1292: months[3]='April';
1293: months[4]='May';
1294: months[5]='June';
1295: months[6]='July';
1296: months[7]='August';
1297: months[8]='September';
1298: months[9]='October';
1299: months[10]='November';
1300: months[11]='December';
1.1 www 1301: }
1.2 www 1302:
1.6 www 1303: if (ptype=='int') {
1304: sopt('default','Default');
1305: sopt('pos','Positive Integer, Not Zero');
1306: sopt('zeropos','Positive Integer or Zero');
1.13 www 1307: sopt('inrange','Integer in Range');
1308: sopt('range','Range of Integers');
1.6 www 1309: sopt('any','Integer');
1.1 www 1310: }
1311:
1.6 www 1312: if (ptype=='float') {
1313: sopt('default','Default');
1314: sopt('zeroone','Floating Point between 0 and 1');
1315: sopt('pos','Positive Floating Point');
1316: sopt('any','Floating Point');
1.1 www 1317:
1318: }
1319:
1.6 www 1320: if (ptype=='string') {
1.44 albertel 1321: //sopt('default','Default');
1322: if (pscat == 'yesno') { sopt('yesno','Yes/No'); }
1.47 albertel 1323: else if (pscat == 'problemstatus'){ sopt('problemstatus','Problem Status'); }
1.45 albertel 1324: else if (pscat == 'examtype') { sopt('examtype','Exam Type'); }
1325: else if (pscat == 'questiontype') { sopt('questiontype','Question Type'); }
1.60 raeburn 1326: else if (pscat == 'lenient') { sopt('lenient','Lenient Grading (Partial Credit)'); }
1.64 raeburn 1327: else if (pscat == 'discussvote') { sopt('discussvote','Discussion Voting'); }
1.45 albertel 1328: else if (pscat == 'ip') { sopt('ip','IP Number/Name'); }
1329: else if (pscat == 'fileext') { sopt('fileext','File Extension'); }
1330: else if (pscat == 'useslots') { sopt('useslots','Slots control access'); }
1331: else { pscat = 'any'; }
1.28 albertel 1332: sopt('any','String Value');
1.22 www 1333: }
1334:
1335: if (ptype=='color') {
1336: sopt('default','Use Default Color');
1337: sopt('custom','Use Custom Color');
1.1 www 1338: }
1339:
1340: selwrite('</select></form>');
1.63 www 1341: var targ='parent.opener';
1342: if (pmodal==1) {
1343: targ='parent.parent';
1.70 raeburn 1344: }
1345: if ((ptype=='date') && (pscat=='interval')) {
1346: selwrite('<a href="javascript:parent.validateInterval();');
1347: } else {
1348: selwrite('<a href="javascript:parent.assemble();');
1349: }
1.1 www 1350: if (preturn!='') {
1.63 www 1351: selwrite(targ+'.document.'+preturn+'_value.value=parent.window.svalue;');
1352: selwrite(targ+'.document.'+preturn+'_type.value=parent.window.stype;');
1.2 www 1353: }
1354: if (pmarker!='') {
1.63 www 1355: selwrite(targ+'.document.'+preturn+'_marker.value=parent.window.pmarker;');
1.1 www 1356: }
1357: if (pcode!='') {
1.63 www 1358: selwrite(targ+'.'+pcode+'();');
1.1 www 1359: }
1.43 albertel 1360: selwrite('">Save</a> ');
1.5 www 1361:
1362: selwrite('<a href="javascript:');
1.63 www 1363: selwrite(targ+'.document.'+preturn+'_value.value='+"'';");
1.5 www 1364: if (pmarker!='') {
1365: selwrite(
1.63 www 1366: targ+'.document.'+preturn+'_marker.value=parent.window.pmarker;');
1.5 www 1367: }
1368: if (pcode!='') {
1.63 www 1369: selwrite(targ+'.'+pcode+'();');
1.5 www 1370: }
1371: selwrite('">Delete</a> ');
1.4 www 1372:
1.1 www 1373: selwrite('</body></html>');
1374: this.window.selector.document.close();
1.2 www 1375: draw();
1.1 www 1376:
1377: }
1378:
1.56 raeburn 1379: // ]]>
1.1 www 1380: </script>
1.56 raeburn 1381: </head>
1.1 www 1382:
1.56 raeburn 1383: <frameset rows="120,*" onload="init();">
1384: <frame name="selector" src="empty.html" />
1385: <frame name="choices" src="empty.html" />
1.1 www 1386: </frameset>
1387:
1388:
1389:
1.16 albertel 1390: </html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>