X"; }
choicewrite(''+selection+' ');
-
-}
+}
function draw() {
choicestart();
@@ -380,7 +651,14 @@ function draw() {
choicewrite(' action="javascript:floateval();"');
}
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('>');
if (ptype=='tolerance') {
@@ -464,16 +742,54 @@ function draw() {
tablestart('Date and time');
}
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');
- choicewrite('');
- intervaldis();
- choicewrite(' Time:'
- +' ');
- intday();choicewrite('days ');
- inthour();choicewrite('hours ');
- intminute(); choicewrite('mins '); intsecond();
- choicewrite('secs ');
- } else {
+ choicewrite( [
+ ''+intervaldis()+' ',
+ 'Time: ',
+ ''+intday()+' days ',
+ ''+inthour()+' hours ',
+ ''+intminute()+' mins ',
+ ''+intsecond()+' secs ',
+ ' ',
+ '',
+ ' ',
+ ].join("\n"));
+ tablestart('Provide a "Done" button to students?');
+ choicewrite('Value: ');
+ choicewrite(' No ');
+ choicewrite(' Yes ');
+ choicewrite(''+
+ ' Yes, with proctor key ');
+ choicewrite(' '+
+ ''+
+ ''+
+ 'Button text:'+
+ '
');
+ choicewrite(' ');
+ } else {
choicewrite(''
+cdate.toString()+
' Date: ');
@@ -535,7 +851,7 @@ function draw() {
if (ptype=='float') {
if (pscat=='default') {
tablestart('Default value or none');
- choicewrite('');
+ choicewrite('');
} else {
if (pscat=='pos') {
tablestart('Positive floating point number or zero');
@@ -623,7 +939,7 @@ function draw() {
choicewrite(' Exam ');
+ choicewrite(' /> Bubblesheet Exam ');
// choicewrite(' Anonymous Survey (credit for submission) ');
-
+ choicewrite(' New Randomization Each N Tries (default N=1) ');
choicewrite(' Library ');
}
+ 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(' Value: ');
+ choicewrite(' Yes ');
+ choicewrite(' No ');
+ choicewrite(' Default (only bubblesheet grading is lenient) ');
+ choicewrite(' Yes, weighted (optionresponse in checkbox mode) '+
+ '');
+ }
+ if (pscat=='discussvote') {
+ tablestart('Discussion Voting');
+ choicewrite(' Value: ');
+ choicewrite(' Yes ');
+ choicewrite(' Yes, unless discussion ended ');
+ choicewrite(' No ');
+ }
if (pscat=='ip') {
- tablestart('IP Number/Name');
- choicewrite(' Value: ');
- choicewrite(' ');
+ 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; iAllow from Deny from ');
+ var acctypes = ['allow','deny'];
+ for (var i=0; i'+
+ ''+
+ '
');
+ }
+ choicewrite('
Add item ');
+ }
+ choicewrite(' ');
}
if (pscat=='fileext') {
tablestart('Allowed File Extensions');
@@ -689,19 +1111,136 @@ function draw() {
choicewrite(' Yes, and the scope of student selected slot is a single resource. ');
+ choicewrite(' /> Yes, and the scope of the slot is a single resource. ');
choicewrite(' Yes, and the scope of student selected slot is the enclosing map/folder. When checking in, it applies to only one resource. ');
+ choicewrite(' /> Yes, and the scope of the slot is the enclosing map/folder. When checking in, it applies to only one resource. ');
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. ');
- choicewrite('');
- }
+ choicewrite(' /> Yes, and the scope of the slot is the enclosing map/folder. When checking in, all resources in the map/folder are checked in. ');
+ choicewrite('');
+ }
+ if (pscat=='deeplink') {
+ var deeplinkvals = new Array();
+ var linktypeparts = new Array();
+ var ltikeyRegExp = /^(lti|key):(\w+)$/;
+ var dlinkkeysty = 'hidden';
+ var dlinkltidivsty = 'none';
+ var dlinkkeyval = '';
+ if ((svalue != '') && (svalue != null)) {
+ deeplinkvals = svalue.split(',');
+ if (ltikeyRegExp.test(deeplinkvals[2])) {
+ linktypeparts = deeplinkvals[2].split(':');
+ deeplinkvals[2] = linktypeparts[0];
+ if (linktypeparts[0] == 'key') {
+ dlinkkeysty = 'text';
+ dlinkkeyval = linktypeparts[1];
+ } else if (linktypeparts[0] == 'lti') {
+ dlinkltidivsty = 'inline-block';
+ }
+ }
+ } else {
+ deeplinkvals = ['full','res','any'];
+ }
+ var deeplinklisting = new Array();
+ deeplinklisting = ['full','absent','grades','details','datestatus'];
+ var deeplinklisttxt = new Array();
+ deeplinklisttxt = ['Listed (linked) in both','Not listed','Listed in grades only','Listed (unlinked) in both','Listed (unlinked) inc. status in both'];
+ var deeplinkscopes = new Array();
+ deeplinkscopes = ['res','map','rec'];
+ var deeplinkscopetxt = new Array();
+ deeplinkscopetxt = ['resource only','enclosing map/folder','recursive map/folder'];
+ var deeplinkurls = new Array();
+ deeplinkurls = ['any','only','key','lti'];
+ tablestart('Deep-linked items');
+ choicewrite('In Contents or Gradebook? ');
+ choicewrite('');
+ for (var i=0; i'+deeplinklisttxt[i]+'');
+ }
+ choicewrite(' ');
+ choicewrite('Access scope via deep-link ');
+ choicewrite('');
+ for (var i=0; i'+deeplinkscopetxt[i]+'');
+ }
+ choicewrite(' ');
+ choicewrite('Supported Link Types ');
+ choicewrite('');
+ choicewrite(' regular + deep ');
+ choicewrite('');
+ choicewrite(' deep only ');
+ choicewrite('');
+ choicewrite(' deep with key ');
+ choicewrite(' ');
+ choicewrite(' ');
+ if ((pextra != '') && (pextra != null)) {
+ var ltiRegExp = /^lti_/;
+ if (ltiRegExp.test(pextra)) {
+ pextra = pextra.replace(ltiRegExp,'');
+ var posslti = pextra.split(',');
+ if (posslti.length >= 1) {
+ var ltinums = new Array();
+ var ltititles = new Array();
+ for (var i=0; i');
+ choicewrite(' deep with LTI launch ');
+ choicewrite('');
+ choicewrite('');
+ var sel='';
+ if (deeplinkvals[2]!='lti') {
+ sel = ' selected="selected"';
+ }
+ if (ltinums.length > 1) {
+ choicewrite('Please select ');
+ }
+ for (var i=0; i'+ltititles[i]+'');
+ }
+ choicewrite('
');
+ }
+ }
+ }
+ }
+ choicewrite(' ');
+ }
}
-
+
if (ptype=='color') {
tablestart('Choose a Color');
choicewrite('');
@@ -716,7 +1255,7 @@ function draw() {
colorfield(ir,ig,ib);
}
choicewrite('');
- }
+ }
}
choicewrite('
');
}
@@ -739,6 +1278,22 @@ function catchange() {
draw();
}
+function recursechange() {
+ var rform=selector.document.forms.frec;
+ var count = rform.recurse.length;
+ if (count > 0) {
+ for (var i=0; i= 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]; }
+ if (pair[0]=='extra') { pextra=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;
if (((ptype=='float') || (ptype=='string') || (ptype=='int')) &&
- (pscat=='default') &&
- (typeof(svalue)!="undefined") &&
+ (pscat=='default') &&
+ (typeof(svalue)!="undefined") &&
(svalue!=0) && (svalue!='')) { pscat='any'; }
if (ptype=='tolerance') {
@@ -837,9 +1477,12 @@ function init() {
}
}
- this.window.selector.document.clear();
- selwrite('');
+ this.window.selector.document.open();
+ selwrite('');
+ selwrite('');
selwrite('');
+ selwrite(' ');
+ selwrite('LON-CAPA ');
selwrite('');
selwrite('');
- selwrite(' ');
+ }
+ }
+ var targ='parent.opener';
+ if (pmodal==1) {
+ targ='parent.parent';
+ }
+ if ((ptype=='date') && (pscat=='interval')) {
+ selwrite('Save ');
selwrite('Delete ');
- selwrite('Cancel ');
-
selwrite('');
this.window.selector.document.close();
draw();
@@ -989,7 +1636,7 @@ function init() {
-
+