--- rat/client/parameter.html 2011/11/21 01:03:09 1.61 +++ rat/client/parameter.html 2022/07/08 16:38:03 1.64.2.5.2.3 @@ -5,7 +5,7 @@ The LearningOnline Network with CAPA Parameter Input Window // -// $Id: parameter.html,v 1.61 2011/11/21 01:03:09 raeburn Exp $ +// $Id: parameter.html,v 1.64.2.5.2.3 2022/07/08 16:38:03 raeburn Exp $ // // Copyright Michigan State University Board of Trustees // @@ -39,11 +39,16 @@ Parameter Input Window var ptype=''; var pvalue=''; +var pmodval=''; +var pextraval=''; +var pextravaltwo=''; var preturn=''; var pcode=''; var pscat=''; var pmarker=''; +var pmodal=''; var pname=''; +var pextra=''; var defhour=0; var defmin=0; @@ -71,8 +76,11 @@ function selwrite(text) { function choicestart() { this.window.choices.document.open(); - choicewrite(''); + choicewrite(''); + choicewrite(''); choicewrite(''); + choicewrite(''); + choicewrite('LON-CAPA'); choicewrite(''); choicewrite(''); + choicewrite(''); } function choiceend() { @@ -236,58 +245,66 @@ function month() { function intminute() { var thisminutes=cmins; var i; - choicewrite(''; for (i=0;i<=59;i++) { - choicewrite(''); + result += '>'+i+''; } - choicewrite(''); + result += ''; + return result; } function inthour() { var thishours=chours; var i; - choicewrite(''; for (i=0;i<=23;i++) { - choicewrite(''); + result += '>'+i+''; } - choicewrite(''); -} + result += ''; + return result; +} function intsecond() { - var thisseconds=csecs; + var thisseconds=csecs; var i; - choicewrite(''; for (i=0;i<=59;i++) { - choicewrite(''); + result += '>'+i+''; } - choicewrite(''); -} + result += ''; + return result; +} function intday() { var thisdate=cdays; var i; - choicewrite(''; for (i=0;i<=31;i++) { - choicewrite(''); + result += '>'+i+''; } - choicewrite(''); + result += ''; + return result; } function intcalc() { @@ -296,7 +313,264 @@ function intcalc() { sform.hours.options[sform.hours.selectedIndex].value*1)*60+ sform.minutes.options[sform.minutes.selectedIndex].value*1)*60+ 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 0)) { + svalue += ':'+possltic; + } else { + alert('Please select an LTI launcher, or choose a different supported link type.'); + return; + } + } else if (sform.deeplinkprotect[i].value == 'ltid') { + var possltid = sform.linkpossltid.options[sform.linkpossltid.selectedIndex].value; + if ((numRegExp.test(possltid)) && (possltid > 0)) { + svalue += ':'+possltid; + } else { + alert('Please select an LTI launcher, or choose a different supported link type.'); + return; + } + } + break; + } + } + } + svalue += ','; + if (sform.deeplinkmenus.length) { + for (var i=0; i 0)) { + svalue += posscoll; + } else { + alert("Please select either a numbered collection or check 'Standard (all menus)'."); + return; + } + } + break; + } + } + } + svalue += ','; + svalue += sform.deeplinktarget.options[sform.deeplinktarget.selectedIndex].value; + svalue += ','; + if (sform.deeplinkexit.length) { + for (var i=0; i 0) { + for (var j=0; j'+ + 'Remove'; + 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'); if (ptype=='tolerance') { @@ -464,16 +801,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('
'); + choicewrite('
'); + choicewrite(''+ + ''); + choicewrite(' 
'+ + '
'+ + '
'+ + 'Button text:'+ + '
'); + choicewrite(''); + } else { choicewrite('' +cdate.toString()+ 'Date:'); @@ -554,7 +929,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:'); @@ -673,11 +1048,68 @@ function draw() { if (svalue=='default') { choicewrite(' checked="checked"'); } choicewrite(' /> Default (only bubblesheet grading is lenient)
'); } + if (pscat=='discussvote') { + tablestart('Discussion Voting'); + choicewrite('Value:'); + choicewrite('
'); + choicewrite('
'); + choicewrite('
'); + } if (pscat=='ip') { - tablestart('IP Number/Name'); - choicewrite('Value:'); - choicewrite(''); + var currallow = new Array; + var currdeny = new Array; + if ((svalue != '') && (typeof(svalue) != 'undefined')) { + 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 fromDeny 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'); @@ -708,17 +1140,299 @@ function draw() { choicewrite('
'); + choicewrite(' /> Yes, and the scope of the slot is a single resource.
'); choicewrite('
'); + choicewrite(' /> Yes, and the scope of the slot is the enclosing map/folder. When checking in, it applies to only one resource.
'); 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 linkprotectparts = new Array(); + 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'; + var dlinkexitdivsty = 'none'; + var dlinkexittextval = ''; + if ((svalue != '') && (typeof(svalue) != 'undefined')) { + deeplinkvals = svalue.split(','); + if (ltikeyRegExp.test(deeplinkvals[4])) { + linkprotectparts = deeplinkvals[4].split(':'); + deeplinkvals[4] = linkprotectparts[0]; + if (linkprotectparts[0] == 'key') { + dlinkkeysty = 'text'; + dlinkkeyval = linkprotectparts[1]; + } else if (linkprotectparts[0] == 'ltic') { + dlinklticdivsty = 'block'; + } else if (linkprotectparts[0] == 'ltid') { + dlinkltiddivsty = 'block'; + } + } + 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','_self','no']; + } + var deeplinkstate = new Array(); + deeplinkstate = ['only','off','both']; + var deeplinkstatetxt = new Array(); + deeplinkstatetxt = ['deep only','deeplink off','regular + deep']; + var deeplinkothers = new Array(); + deeplinkothers = ['hide','unhide']; + var deeplinkotherstxt = new Array(); + deeplinkotherstxt = ['Hidden','Unhidden']; + 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 deeplinkprotect = new Array(); + deeplinkprotect = ['none','key','ltic','ltid']; + var deeplinktarget = new Array(); + 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('Hide other resources?'); + choicewrite(''); + choicewrite('In Contents + Gradebook?'); + choicewrite(''); + choicewrite('Access scope for link'); + choicewrite(''); + choicewrite('Link protection'); + choicewrite(''); + choicewrite(' key access'); + choicewrite(''); + choicewrite('
'); + + var possmenus = new Array(); + if ((pextra != '') && (typeof(pextra) != 'undefined')) { + var lticRegExp = /^ltic_/; + var ltidRegExp = /^ltid_/; + var menusRegExp = /^menus_/; + var extras = pextra.split('&'); + for (var i=0; i= 1) { + var lticnums = new Array(); + var ltictitles = new Array(); + for (var j=0; j'); + choicewrite('
'); + choicewrite('

'); + } + } + } else if (ltidRegExp.test(extras[i])) { + extras[i] = extras[i].replace(ltidRegExp,''); + var possltid = extras[i].split(','); + if (possltid.length >= 1) { + var ltidnums = new Array(); + var ltidtitles = new Array(); + for (var j=0; j'); + choicewrite('
'); + choicewrite('

'); + } + } + + } else if (menusRegExp.test(extras[i])) { + extras[i] = extras[i].replace(menusRegExp,''); + possmenus = extras[i].split(','); + } + } + } + choicewrite('Menu Items Displayed'); + choicewrite('
'); + if (possmenus.length >= 1) { + choicewrite(''); + choicewrite('
'); + choicewrite('

'); + } + choicewrite(''); + choicewrite('Embedded?'); + choicewrite(''); + choicewrite(''); + choicewrite('Exit Button?'); + choicewrite('
'); + choicewrite(' '); + choicewrite('
'); + choicewrite('
'); + choicewrite('
Button text: '); + choicewrite(''); + choicewrite('
'); + choicewrite(''); + } } if (ptype=='color') { @@ -808,6 +1522,10 @@ function assemble() { function init() { var i; var subs=new Array(); + var doneRegExp = /_done(|\:[^\:]+\:)/; + var doneproctorRegExp = /_done(|\:[^\:]+\:)_proctor/; + var proctorkeyRegExp = /^(\d+)_(.+)$/; + var donetextRegExp = /\:([^\:]+)\:/; var namevalue=this.window.location.search.split('&'); namevalue[0]=namevalue[0].substr(1,namevalue[0].length-1); @@ -829,13 +1547,56 @@ function init() { if (pair[0]=='call') { pcode=pair[1]; } if (pair[0]=='marker') { pmarker=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]; } + if (pair[0]=='extra') { pextra=pair[1]; } } + 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') && @@ -857,8 +1618,11 @@ function init() { } this.window.selector.document.open(); - selwrite(''); + selwrite(''); + selwrite(''); selwrite(''); + selwrite(''); + selwrite('LON-CAPA'); selwrite(''); selwrite(''); - selwrite('
'+pname+'
'); - selwrite(''); if (ptype=='tolerance') { sopt('default','Default'); @@ -936,11 +1701,13 @@ function init() { 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 (pscat != 'deeplink') { sopt('any','String Value'); } } if (ptype=='color') { @@ -949,67 +1716,54 @@ function init() { } selwrite('
'); - - selwrite('Save  '); selwrite('Delete  '); - selwrite('Cancel'); - selwrite(''); this.window.selector.document.close(); + if (pscat == 'deeplink') { + document.getElementById("LCparampopup").rows="60,*"; + } draw(); - + } // ]]> - +