version 1.85, 2020/12/23 21:20:36
|
version 1.86, 2021/08/04 19:59:12
|
Line 416 function validateInterval() {
|
Line 416 function validateInterval() {
|
|
|
function validateDeepLink() { |
function validateDeepLink() { |
var sform=choices.document.forms.sch; |
var sform=choices.document.forms.sch; |
svalue = sform.deeplinklisted.options[sform.deeplinklisted.selectedIndex].value+','; |
svalue = sform.deeplinkstate.options[sform.deeplinkstate.selectedIndex].value+','; |
|
svalue += sform.deeplinkothers.options[sform.deeplinkothers.selectedIndex].value+','; |
|
svalue += sform.deeplinklisted.options[sform.deeplinklisted.selectedIndex].value+','; |
svalue += sform.deeplinkacc.options[sform.deeplinkacc.selectedIndex].value+','; |
svalue += sform.deeplinkacc.options[sform.deeplinkacc.selectedIndex].value+','; |
var keyRegExp = /^[a-zA-Z\d_.!@#$%^&*()+=-]+$/; |
var keyRegExp = /^[a-zA-Z\d_.!@#$%^&*()+=-]+$/; |
var numRegExp = /^\d+$/; |
var numRegExp = /^\d+$/; |
if (sform.deeplinktypes.length) { |
if (sform.deeplinkprotect.length) { |
for (var i=0; i<sform.deeplinktypes.length; i++) { |
for (var i=0; i<sform.deeplinkprotect.length; i++) { |
if (sform.deeplinktypes[i].checked) { |
if (sform.deeplinkprotect[i].checked) { |
svalue += sform.deeplinktypes[i].value; |
svalue += sform.deeplinkprotect[i].value; |
if (sform.deeplinktypes[i].value == 'key') { |
if (sform.deeplinkprotect[i].value == 'key') { |
var posskey = sform.deeplinkkey.value; |
var posskey = sform.deeplinkkey.value; |
posskey = posskey.replace(/^\s+|\s+$/g,''); |
posskey = posskey.replace(/^\s+|\s+$/g,''); |
if (keyRegExp.test(posskey)) { |
if (keyRegExp.test(posskey)) { |
Line 434 function validateDeepLink() {
|
Line 436 function validateDeepLink() {
|
'or choose a different supported link type.'); |
'or choose a different supported link type.'); |
return; |
return; |
} |
} |
} else if (sform.deeplinktypes[i].value == 'lti') { |
} else if (sform.deeplinkprotect[i].value == 'ltic') { |
var posslti = sform.linkposslti.options[sform.linkposslti.selectedIndex].value; |
var possltic = sform.linkpossltic.options[sform.linkpossltic.selectedIndex].value; |
if ((numRegExp.test(posslti)) && (posslti > 0)) { |
if ((numRegExp.test(possltic)) && (possltic > 0)) { |
svalue += ':'+posslti; |
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 { |
} else { |
alert('Please select an LTI launcher, or choose a different supported link type.'); |
alert('Please select an LTI launcher, or choose a different supported link type.'); |
return; |
return; |
Line 471 function validateDeepLink() {
|
Line 481 function validateDeepLink() {
|
|
|
function toggleDeepLink(caller) { |
function toggleDeepLink(caller) { |
var sform=choices.document.forms.sch; |
var sform=choices.document.forms.sch; |
if ((caller == 'types') && (sform.deeplinktypes.length)) { |
if ((caller == 'protect') && (sform.deeplinkprotect.length)) { |
var frame = window.frames["choices"]; |
var frame = window.frames["choices"]; |
for (var i=0; i<sform.deeplinktypes.length; i++) { |
for (var i=0; i<sform.deeplinkprotect.length; i++) { |
if (sform.deeplinktypes[i].checked) { |
if (sform.deeplinkprotect[i].checked) { |
if (sform.deeplinktypes[i].value == 'key') { |
if (frame.document.getElementById('deeplinkkey')) { |
if (frame.document.getElementById('deeplinkkey')) { |
if (sform.deeplinkprotect[i].value == 'key') { |
frame.document.getElementById('deeplinkkey').type='text'; |
frame.document.getElementById('deeplinkkey').type='text'; |
} |
} else { |
if (frame.document.getElementById('deeplinkltidiv')) { |
|
frame.document.getElementById('deeplinkltidiv').style.display='none'; |
|
} |
|
} else { |
|
if (frame.document.getElementById('deeplinkkey')) { |
|
frame.document.getElementById('deeplinkkey').type='hidden'; |
frame.document.getElementById('deeplinkkey').type='hidden'; |
} |
} |
if (frame.document.getElementById('deeplinkltidiv')) { |
} |
if (sform.deeplinktypes[i].value == 'lti') { |
if (frame.document.getElementById('deeplinklticdiv')) { |
frame.document.getElementById('deeplinkltidiv').style.display='block'; |
if (sform.deeplinkprotect[i].value == 'ltic') { |
} else { |
frame.document.getElementById('deeplinklticdiv').style.display='block'; |
frame.document.getElementById('deeplinkltidiv').style.display='none'; |
} else { |
} |
frame.document.getElementById('deeplinklticdiv').style.display='none'; |
|
} |
|
} |
|
if (frame.document.getElementById('deeplinkltiddiv')) { |
|
if (sform.deeplinkprotect[i].value == 'ltid') { |
|
frame.document.getElementById('deeplinkltiddiv').style.display='block'; |
|
} else { |
|
frame.document.getElementById('deeplinkltiddiv').style.display='none'; |
} |
} |
} |
} |
break; |
break; |
Line 1167 function draw() {
|
Line 1179 function draw() {
|
} |
} |
if (pscat=='deeplink') { |
if (pscat=='deeplink') { |
var deeplinkvals = new Array(); |
var deeplinkvals = new Array(); |
var linktypeparts = new Array(); |
var linkprotectparts = new Array(); |
var ltikeyRegExp = /^(lti|key):(\w+)$/; |
var ltikeyRegExp = /^(ltic|ltid|key):(\w+)$/; |
var dlinkkeysty = 'hidden'; |
var dlinkkeysty = 'hidden'; |
var dlinkkeyval = ''; |
var dlinkkeyval = ''; |
var dlinkltidivsty = 'none'; |
var dlinklticdivsty = 'none'; |
|
var dlinkltiddivsty = 'none'; |
var dlinkmenusdivsty = 'none'; |
var dlinkmenusdivsty = 'none'; |
if ((svalue != '') && (svalue != null)) { |
if ((svalue != '') && (svalue != null)) { |
deeplinkvals = svalue.split(','); |
deeplinkvals = svalue.split(','); |
if (ltikeyRegExp.test(deeplinkvals[2])) { |
if (ltikeyRegExp.test(deeplinkvals[4])) { |
linktypeparts = deeplinkvals[2].split(':'); |
linkprotectparts = deeplinkvals[4].split(':'); |
deeplinkvals[2] = linktypeparts[0]; |
deeplinkvals[4] = linkprotectparts[0]; |
if (linktypeparts[0] == 'key') { |
if (linkprotectparts[0] == 'key') { |
dlinkkeysty = 'text'; |
dlinkkeysty = 'text'; |
dlinkkeyval = linktypeparts[1]; |
dlinkkeyval = linkprotectparts[1]; |
} else if (linktypeparts[0] == 'lti') { |
} else if (linkprotectparts[0] == 'ltic') { |
dlinkltidivsty = 'block'; |
dlinklticdivsty = 'block'; |
|
} else if (linkprotectparts[0] == 'ltid') { |
|
dlinkltiddivsty = 'block'; |
} |
} |
} |
} |
if (deeplinkvals[3] >= 1) { |
if (deeplinkvals[5] >= 1) { |
dlinkmenusdivsty = 'inline-block'; |
dlinkmenusdivsty = 'inline-block'; |
} |
} |
} else { |
} else { |
deeplinkvals = ['full','res','any','0']; |
deeplinkvals = ['off','unhide','full','res','','0']; |
} |
} |
|
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(); |
var deeplinklisting = new Array(); |
deeplinklisting = ['full','absent','grades','details','datestatus']; |
deeplinklisting = ['full','absent','grades','details','datestatus']; |
var deeplinklisttxt = new Array(); |
var deeplinklisttxt = new Array(); |
Line 1199 function draw() {
|
Line 1222 function draw() {
|
deeplinkscopes = ['res','map','rec']; |
deeplinkscopes = ['res','map','rec']; |
var deeplinkscopetxt = new Array(); |
var deeplinkscopetxt = new Array(); |
deeplinkscopetxt = ['resource only','enclosing map/folder','recursive map/folder']; |
deeplinkscopetxt = ['resource only','enclosing map/folder','recursive map/folder']; |
var deeplinkurls = new Array(); |
var deeplinkprotect = new Array(); |
deeplinkurls = ['any','only','key','lti']; |
deeplinkprotect = ['none','key','ltic','ltid']; |
tablestart('Deep-linked items'); |
tablestart('Deep-linked items'); |
|
choicewrite('<tr><td>Access status?</td><td>'); |
|
choicewrite('<select name="deeplinkstate">'); |
|
for (var i=0; i<deeplinkstate.length; i++) { |
|
choicewrite('<option value="'+deeplinkstate[i]+'"'); |
|
if (deeplinkvals[0] == deeplinkstate[i]) { |
|
choicewrite(' selected="selected"'); |
|
} |
|
choicewrite('>'+deeplinkstatetxt[i]+'</option>'); |
|
} |
|
choicewrite('</select></td></tr>'); |
|
choicewrite('<tr><td>Hide other resources?</td><td>'); |
|
choicewrite('<select name="deeplinkothers">'); |
|
for (var i=0; i<deeplinkothers.length; i++) { |
|
choicewrite('<option value="'+deeplinkothers[i]+'"'); |
|
if (deeplinkvals[1] == deeplinkothers[i]) { |
|
choicewrite(' selected="selected"'); |
|
} |
|
choicewrite('>'+deeplinkotherstxt[i]+'</option>'); |
|
} |
|
choicewrite('</select></td></tr>'); |
choicewrite('<tr><td>In Contents + Gradebook?</td><td>'); |
choicewrite('<tr><td>In Contents + Gradebook?</td><td>'); |
choicewrite('<select name="deeplinklisted">'); |
choicewrite('<select name="deeplinklisted">'); |
for (var i=0; i<deeplinklisting.length; i++) { |
for (var i=0; i<deeplinklisting.length; i++) { |
choicewrite('<option value="'+deeplinklisting[i]+'"'); |
choicewrite('<option value="'+deeplinklisting[i]+'"'); |
if (deeplinkvals[0] == deeplinklisting[i]) { |
if (deeplinkvals[2] == deeplinklisting[i]) { |
choicewrite(' selected="selected"'); |
choicewrite(' selected="selected"'); |
} |
} |
choicewrite('>'+deeplinklisttxt[i]+'</option>'); |
choicewrite('>'+deeplinklisttxt[i]+'</option>'); |
} |
} |
choicewrite('</select></td></tr>'); |
choicewrite('</select></td></tr>'); |
choicewrite('<tr><td>Access scope via deep-link</td><td>'); |
choicewrite('<tr><td>Access scope for link</td><td>'); |
choicewrite('<select name="deeplinkacc">'); |
choicewrite('<select name="deeplinkacc">'); |
for (var i=0; i<deeplinkscopes.length; i++) { |
for (var i=0; i<deeplinkscopes.length; i++) { |
choicewrite('<option value="'+deeplinkscopes[i]+'"'); |
choicewrite('<option value="'+deeplinkscopes[i]+'"'); |
if (deeplinkvals[1] == deeplinkscopes[i]) { |
if (deeplinkvals[3] == deeplinkscopes[i]) { |
choicewrite(' selected="selected"'); |
choicewrite(' selected="selected"'); |
} |
} |
choicewrite('>'+deeplinkscopetxt[i]+'</option>'); |
choicewrite('>'+deeplinkscopetxt[i]+'</option>'); |
} |
} |
choicewrite('</select></td></tr>'); |
choicewrite('</select></td></tr>'); |
choicewrite('<tr><td>Supported Link Types</td><td>'); |
choicewrite('<tr><td>Link protection</td><td>'); |
choicewrite('<span style="white-space: nowrap;"><label>'); |
|
choicewrite('<input name="deeplinktypes" value="any"'+ |
|
' type="radio" '+calldeeplink('types')); |
|
if (deeplinkvals[2]=='any') { choicewrite(' checked="checked"'); } |
|
choicewrite(' /> regular + deep</label></span><br />'); |
|
choicewrite('<span style="white-space: nowrap;"><label>'); |
choicewrite('<span style="white-space: nowrap;"><label>'); |
choicewrite('<input name="deeplinktypes" value="only"'+ |
choicewrite('<input name="deeplinkprotect" value="none"'+ |
' type="radio" '+calldeeplink('types')); |
' type="radio" '+calldeeplink('protect')); |
if (deeplinkvals[2]=='only') { choicewrite(' checked="checked"'); } |
if (deeplinkvals[4]=='none') { choicewrite(' checked="checked"'); } |
choicewrite(' /> deep only</label></span><br />'); |
choicewrite(' /> not in use</label>'); |
choicewrite('<span style="white-space: nowrap;"><label>'); |
choicewrite('<input name="deeplinkprotect" value="key"'+ |
choicewrite('<input name="deeplinktypes" value="key"'+ |
' type="radio" '+calldeeplink('protect')); |
' type="radio" '+calldeeplink('types')); |
if (deeplinkvals[4]=='key') { choicewrite(' checked="checked"'); } |
if (deeplinkvals[2]=='key') { choicewrite(' checked="checked"'); } |
choicewrite(' /> key access</label>'); |
choicewrite(' /> deep with key</label>'); |
|
choicewrite('<input type="'+dlinkkeysty+'" name="deeplinkkey" id="deeplinkkey" value="'+dlinkkeyval+'" size="10" />'); |
choicewrite('<input type="'+dlinkkeysty+'" name="deeplinkkey" id="deeplinkkey" value="'+dlinkkeyval+'" size="10" />'); |
choicewrite('</span><br />'); |
choicewrite('</span><br />'); |
|
|
var possmenus = new Array(); |
var possmenus = new Array(); |
if ((pextra != '') && (pextra != null)) { |
if ((pextra != '') && (pextra != null)) { |
var ltiRegExp = /^lti_/; |
var lticRegExp = /^ltic_/; |
|
var ltidRegExp = /^ltid_/; |
var menusRegExp = /^menus_/; |
var menusRegExp = /^menus_/; |
var extras = pextra.split('&'); |
var extras = pextra.split('&'); |
for (var i=0; i<extras.length; i++) { |
for (var i=0; i<extras.length; i++) { |
if (ltiRegExp.test(extras[i])) { |
if (lticRegExp.test(extras[i])) { |
extras[i] = extras[i].replace(ltiRegExp,''); |
extras[i] = extras[i].replace(lticRegExp,''); |
var posslti = extras[i].split(','); |
var possltic = extras[i].split(','); |
if (posslti.length >= 1) { |
if (possltic.length >= 1) { |
var ltinums = new Array(); |
var lticnums = new Array(); |
var ltititles = new Array(); |
var ltictitles = new Array(); |
for (var j=0; j<posslti.length; j++) { |
for (var j=0; j<possltic.length; j++) { |
var entries = posslti[j].split(':'); |
var entries = possltic[j].split(':'); |
ltinums[j] = entries[0]; |
lticnums[j] = entries[0]; |
ltititles[j] = decodeURIComponent(entries[1]); |
ltictitles[j] = decodeURIComponent(entries[1]); |
} |
} |
if (ltinums.length) { |
if (lticnums.length) { |
choicewrite('<span style="white-space: nowrap;"><label>'); |
choicewrite('<span style="white-space: nowrap;"><label>'); |
choicewrite('<input name="deeplinktypes" value="lti"'+ |
choicewrite('<input name="deeplinkprotect" value="ltic"'+ |
' type="radio" '+calldeeplink('types')); |
' type="radio" '+calldeeplink('protect')); |
if (deeplinkvals[2]=='lti') { choicewrite(' checked="checked"'); } |
if (deeplinkvals[4]=='ltic') { choicewrite(' checked="checked"'); } |
choicewrite(' /> deep with LTI launch</label>'); |
choicewrite(' /> course LTI launch</label>'); |
choicewrite('<div id="deeplinkltidiv" style="display:'+dlinkltidivsty+'">'); |
choicewrite('<div id="deeplinklticdiv" style="display:'+dlinklticdivsty+'">'); |
choicewrite('<select name="linkposslti">'); |
choicewrite('<select name="linkpossltic">'); |
var sel=''; |
var sel=''; |
if (deeplinkvals[2]!='lti') { |
if (deeplinkvals[4]!='ltic') { |
sel = ' selected="selected"'; |
sel = ' selected="selected"'; |
} |
} |
if (ltinums.length > 1) { |
if (lticnums.length > 1) { |
choicewrite('<option value=""'+sel+'>Select</option>'); |
choicewrite('<option value=""'+sel+'>Select</option>'); |
} |
} |
for (var j=0; j<ltinums.length; j++) { |
for (var j=0; j<lticnums.length; j++) { |
sel = ''; |
sel = ''; |
if (deeplinkvals[2]=='lti') { |
if (deeplinkvals[4]=='ltic') { |
if (linktypeparts.length) { |
if (linkprotectparts.length) { |
if (ltinums[j] == linktypeparts[1]) { |
if (lticnums[j] == linkprotectparts[1]) { |
sel = ' selected="selected"'; |
sel = ' selected="selected"'; |
} |
} |
} |
} |
} |
} |
choicewrite('<option value="'+ltinums[j]+'"'+sel+'>'+ltititles[j]+'</option>'); |
choicewrite('<option value="'+lticnums[j]+'"'+sel+'>'+ltictitles[j]+'</option>'); |
} |
} |
choicewrite('</select></div></span><br />'); |
choicewrite('</select></div></span><br />'); |
} |
} |
} |
} |
|
} 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<possltid.length; j++) { |
|
var entries = possltid[j].split(':'); |
|
ltidnums[j] = entries[0]; |
|
ltidtitles[j] = decodeURIComponent(entries[1]); |
|
} |
|
if (ltidnums.length) { |
|
choicewrite('<span style="white-space: nowrap;"><label>'); |
|
choicewrite('<input name="deeplinkprotect" value="ltid"'+ |
|
' type="radio" '+calldeeplink('protect')); |
|
if (deeplinkvals[4]=='ltid') { choicewrite(' checked="checked"'); } |
|
choicewrite(' />domain LTI launch</label>'); |
|
choicewrite('<div id="deeplinkltiddiv" style="display:'+dlinkltiddivsty+'">'); |
|
choicewrite('<select name="linkpossltid">'); |
|
var sel=''; |
|
if (deeplinkvals[4]!='ltid') { |
|
sel = ' selected="selected"'; |
|
} |
|
if (ltidnums.length > 1) { |
|
choicewrite('<option value=""'+sel+'>Select</option>'); |
|
} |
|
for (var j=0; j<ltidnums.length; j++) { |
|
sel = ''; |
|
if (deeplinkvals[4]=='ltid') { |
|
if (linkprotectparts.length) { |
|
if (ltidnums[j] == linkprotectparts[1]) { |
|
sel = ' selected="selected"'; |
|
} |
|
} |
|
} |
|
choicewrite('<option value="'+ltidnums[j]+'"'+sel+'>'+ltidtitles[j]+'</option>'); |
|
} |
|
choicewrite('</select></div></span><br />'); |
|
} |
|
} |
|
|
} else if (menusRegExp.test(extras[i])) { |
} else if (menusRegExp.test(extras[i])) { |
extras[i] = extras[i].replace(menusRegExp,''); |
extras[i] = extras[i].replace(menusRegExp,''); |
possmenus = extras[i].split(','); |
possmenus = extras[i].split(','); |
Line 1297 function draw() {
|
Line 1376 function draw() {
|
choicewrite('<span style="white-space: nowrap;"><label>'); |
choicewrite('<span style="white-space: nowrap;"><label>'); |
choicewrite('<input name="deeplinkmenus" value="std"'+ |
choicewrite('<input name="deeplinkmenus" value="std"'+ |
' type="radio" '+calldeeplink('menus')); |
' type="radio" '+calldeeplink('menus')); |
if (deeplinkvals[3] == 0) { |
if (deeplinkvals[5] == 0) { |
choicewrite(' checked="checked"'); |
choicewrite(' checked="checked"'); |
} |
} |
choicewrite(' /> Standard (all menus)</label></span><br />'); |
choicewrite(' /> Standard (all menus)</label></span><br />'); |
Line 1305 function draw() {
|
Line 1384 function draw() {
|
choicewrite('<span style="white-space: nowrap;"><label>'); |
choicewrite('<span style="white-space: nowrap;"><label>'); |
choicewrite('<input name="deeplinkmenus" value="collnum"'+ |
choicewrite('<input name="deeplinkmenus" value="collnum"'+ |
' type="radio" '+calldeeplink('menus')); |
' type="radio" '+calldeeplink('menus')); |
if (deeplinkvals[3] > 0) { choicewrite(' checked="checked"'); } |
if (deeplinkvals[5] > 0) { choicewrite(' checked="checked"'); } |
choicewrite(' /> Numbered collection</label>'); |
choicewrite(' /> Numbered collection</label>'); |
choicewrite('<div id="deeplinkmenusdiv" style="display:'+dlinkmenusdivsty+'">'); |
choicewrite('<div id="deeplinkmenusdiv" style="display:'+dlinkmenusdivsty+'">'); |
choicewrite('<select name="linkpossmenu">'); |
choicewrite('<select name="linkpossmenu">'); |
var sel=''; |
var sel=''; |
if (deeplinkvals[3] == 0) { |
if (deeplinkvals[5] == 0) { |
sel = ' selected="selected"'; |
sel = ' selected="selected"'; |
} |
} |
if (possmenus.length > 1) { |
if (possmenus.length > 1) { |
Line 1318 function draw() {
|
Line 1397 function draw() {
|
} |
} |
for (var i=0; i<possmenus.length; i++) { |
for (var i=0; i<possmenus.length; i++) { |
sel = ''; |
sel = ''; |
if (deeplinkvals[3] == possmenus[i]) { |
if (deeplinkvals[5] == possmenus[i]) { |
sel = ' selected="selected"'; |
sel = ' selected="selected"'; |
} |
} |
choicewrite('<option value="'+possmenus[i]+'"'+sel+'>'+possmenus[i]+'</option>'); |
choicewrite('<option value="'+possmenus[i]+'"'+sel+'>'+possmenus[i]+'</option>'); |