'
@@ -576,7 +893,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');
@@ -595,7 +912,7 @@ function draw() {
}
if (ptype=='string') {
- if ((pscat=='any') || (pscat=='') || (pscat=='default') ||
+ if ((pscat=='any') || (pscat=='') || (pscat=='default') ||
(typeof(pscat)=='undefined')) {
tablestart('Text');
choicewrite('
Value:
');
@@ -699,20 +1016,50 @@ function draw() {
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)
'+
+ '
'+
+ '
'+
+ '
Foil submission status
Points
');
+ var lenienttypes = ['Correct (checked)','Correct (unchecked)','Incorrect (checked)','Incorrect (unchecked)'];
+ for (var i=0; i
'+lenienttypes[i]+'
'+
+ '
');
+ }
+ choicewrite('
');
}
if (pscat=='discussvote') {
tablestart('Discussion Voting');
@@ -731,10 +1078,51 @@ function draw() {
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; i
Allow from
Deny from
');
+ var acctypes = ['allow','deny'];
+ for (var i=0; i'+
+ '
'+
+ '
');
+ for (var j=0; j');
+ choicewrite('Remove');
+ choicewrite('
');
+ }
+ choicewrite('
');
+ }
+ choicewrite('
');
}
if (pscat=='fileext') {
tablestart('Allowed File Extensions');
@@ -765,19 +1153,181 @@ 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 dlinkkeyval = '';
+ var dlinkltidivsty = 'none';
+ var dlinkmenusdivsty = 'none';
+ 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 = 'block';
+ }
+ }
+ if (deeplinkvals[3] >= 1) {
+ dlinkmenusdivsty = 'inline-block';
+ }
+ } else {
+ deeplinkvals = ['full','res','any','0'];
+ }
+ 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('
');
+ choicewrite('');
+ choicewrite(' regular + deep ');
+ choicewrite('');
+ choicewrite(' deep only ');
+ choicewrite('');
+ choicewrite(' deep with key');
+ choicewrite('');
+ choicewrite(' ');
+
+ var possmenus = new Array();
+ if ((pextra != '') && (pextra != null)) {
+ var ltiRegExp = /^lti_/;
+ var menusRegExp = /^menus_/;
+ var extras = pextra.split('&');
+ for (var i=0; i= 1) {
+ var ltinums = new Array();
+ var ltititles = new Array();
+ for (var j=0; j');
+ choicewrite(' deep with LTI launch');
+ choicewrite('
');
+ choicewrite('');
+ var sel='';
+ if (deeplinkvals[2]!='lti') {
+ sel = ' selected="selected"';
+ }
+ if (ltinums.length > 1) {
+ choicewrite('');
+ }
+ for (var j=0; j'+ltititles[j]+'');
+ }
+ choicewrite('