X"; }
choicewrite(''+selection+' | ');
-
-}
+}
function draw() {
choicestart();
@@ -667,6 +925,8 @@ function draw() {
if (ptype=='string') {
if (pscat == 'ip') {
choicewrite(' action="javascript:ipstringeval();"');
+ } else if (pscat == 'grace') {
+ choicewrite(' action="javascript:gracestringeval();"');
} else {
choicewrite(' action="javascript:stringeval();"');
}
@@ -756,7 +1016,7 @@ function draw() {
tablestart('Date and time');
}
if (pscat=='interval') {
- var proctorkeytype = 'hidden';
+ var proctorkeytype = 'hidden';
var donebuttontext = 'none';
if (pmodval == '_done_proctor') {
proctorkeytype = 'text';
@@ -865,7 +1125,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');
@@ -884,7 +1144,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: | ');
@@ -953,7 +1213,7 @@ function draw() {
choicewrite(' ');
+ choicewrite(' /> Bubblesheet Exam ');
// choicewrite(' ');
}
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(' ');
choicewrite(' ');
choicewrite(' ');
+ choicewrite('
'+
+ '');
}
if (pscat=='discussvote') {
tablestart('Discussion Voting');
@@ -1019,10 +1309,22 @@ function draw() {
if (svalue=='no') { choicewrite(' checked="checked"'); }
choicewrite(' /> No ');
}
+ if (pscat=='tex') {
+ tablestart('TeX file display');
+ choicewrite(' |
Value: | ');
+ choicewrite(' ');
+ choicewrite(' ');
+ }
if (pscat=='ip') {
var currallow = new Array;
var currdeny = new Array;
- if ((svalue != '') && (svalue != null)) {
+ if ((svalue != '') && (typeof(svalue) != 'undefined')) {
var patternComma = /,/;
var patternAllow = /^([\[\]a-zA-Z\.\d\*\-]+)$/;
var patternDeny = /^\!([\[\]a-zA-Z\.\d\*\-]+)$/;
@@ -1051,20 +1353,20 @@ function draw() {
}
var curripaccess = [currallow,currdeny];
tablestart('IP Number/Name');
- choicewrite(' |
Allow from | Deny from |
---|
');
+ choicewrite('
Allow from | Deny from |
---|
'+"\n");
var acctypes = ['allow','deny'];
for (var i=0; i'+
- ''+
- '
');
+ choicewrite(['
',
+ '',
+ ' ');
+ choicewrite([' '].join("\n"));
}
- choicewrite(' ');
+ choicewrite(''+"\n");
}
- choicewrite(' |
');
+ choicewrite(''+"\n");
}
if (pscat=='fileext') {
tablestart('Allowed File Extensions');
@@ -1104,18 +1406,22 @@ function draw() {
' type="radio" '+callradiostringeval('map_map'));
if (svalue=='map_map') { choicewrite(' checked="checked"'); }
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('');
- }
+ choicewrite('');
+ }
if (pscat=='deeplink') {
var deeplinkvals = new Array();
var linkprotectparts = new Array();
- var ltikeyRegExp = /^(ltic|ltid|key):(\w+)$/;
+ var ltikeyRegExp = /^(ltic:\d+|ltid:\d+|key:[a-zA-Z\d_.!@#$%^&*()+=-]+)$/;
+ var linkexitparts = new Array();
+ var dlinkexitRegExp = /^(yes|url|no)(|:[^:,;'"]+)$/;
var dlinkkeysty = 'hidden';
var dlinkkeyval = '';
var dlinklticdivsty = 'none';
var dlinkltiddivsty = 'none';
var dlinkmenusdivsty = 'none';
- if ((svalue != '') && (svalue != null)) {
+ var dlinkexitdivsty = 'none';
+ var dlinkexittextval = '';
+ if ((svalue != '') && (typeof(svalue) != 'undefined')) {
deeplinkvals = svalue.split(',');
if (ltikeyRegExp.test(deeplinkvals[4])) {
linkprotectparts = deeplinkvals[4].split(':');
@@ -1132,8 +1438,20 @@ function draw() {
if (deeplinkvals[5] >= 1) {
dlinkmenusdivsty = 'inline-block';
}
+ if (dlinkexitRegExp.test(deeplinkvals[7])) {
+ linkexitparts = deeplinkvals[7].split(':');
+ deeplinkvals[7] = linkexitparts[0];
+ if (deeplinkvals[7] != 'no') {
+ dlinkexitdivsty = 'inline-block';
+ if (!linkexitparts[1]) {
+ dlinkexittextval = 'Exit Tool';
+ } else {
+ dlinkexittextval = linkexitparts[1];
+ }
+ }
+ }
} else {
- deeplinkvals = ['off','unhide','full','res','','0'];
+ deeplinkvals = ['off','unhide','full','res','','0','_self','no'];
}
var deeplinkstate = new Array();
deeplinkstate = ['only','off','both'];
@@ -1157,6 +1475,7 @@ function draw() {
deeplinktarget = ['_self','_top'];
var deeplinktargettxt = new Array();
deeplinktargettxt = ['Embedded','Not embedded'];
+ var deeplinkexit = ['yes','url','no'];
tablestart('Deep-linked items');
choicewrite('Access status? | ');
choicewrite('');
+ choicewrite(' |
');
+ choicewrite('Exit Button? | ');
+ choicewrite(' ');
+ choicewrite(' ');
+ choicewrite(' ');
+ choicewrite('');
+ choicewrite(' Button text: ');
+ choicewrite('');
+ choicewrite(' ');
choicewrite(' |
');
}
+ if (pscat=='grace') {
+ tablestart('Grace period after due date');
+ choicewrite(''+
+ ''+
+ ' ');
+ if ((svalue != '') && (typeof(svalue) != 'undefined')) {
+ var patternComma = /,/;
+ var patternGrace = /^\d+:(0|1).?\d*:(0|1)$/;
+ var current = new Array;
+ if (patternComma.test(svalue)) {
+ current = svalue.split(',');
+ } else {
+ current = [svalue];
+ }
+ for (var i=0; i');
+ choicewrite(graceitem(current[i]));
+ choicewrite(' ');
+ }
+ }
+ } else {
+ choicewrite(' ');
+ choicewrite(graceitem());
+ choicewrite(' ');
+ }
+ choicewrite(' ');
+ choicewrite(' |
');
+ }
}
-
+
if (ptype=='color') {
tablestart('Choose a Color');
choicewrite('');
@@ -1366,7 +1735,7 @@ function draw() {
colorfield(ir,ig,ib);
}
choicewrite('');
- }
+ }
}
choicewrite('
');
}
@@ -1389,6 +1758,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');
+ if (ismap == 1) {
+ if ((pparm != 'hiddenresource') && (pparm != 'encrypturl')) {
+ selwrite('
');
+ }
+ }
var targ='parent.opener';
if (pmodal==1) {
targ='parent.parent';
@@ -1670,10 +2112,21 @@ function init() {
selwrite('