version 1.624, 2025/06/30 21:12:21
|
version 1.626, 2025/07/02 16:33:51
|
Line 1285 ENDSCRIPT
|
Line 1285 ENDSCRIPT
|
|
|
# Javascript function validateParms, for overview mode |
# Javascript function validateParms, for overview mode |
sub validateparms_js { |
sub validateparms_js { |
return <<'ENDSCRIPT'; |
my %lt = &Apache::lonlocal::texthash ( |
|
nodom => "A link type of 'domain LTI launch' was selected but no domain LTI launcher was selected.", |
|
nocrs => "A link type of 'course LTI launch' was selected but no course LTI launcher was selected.", |
|
plss => 'Please select one, or choose a different supported link type.', |
|
disa => 'disallowed character(s) removed from deeplink key.', |
|
nokyr => "A link type of 'deep with key' was selected but the key value was blank, after removing disallowed characters.", |
|
plse => 'Please enter a key using one or more of:', |
|
nokey => "A link type of 'deep with key' was selected but the key value was blank.", |
|
plsk => 'Please enter a key.', |
|
dise => 'disallowed character(s) removed from Exit Button text.', |
|
exit => "An exit link type of 'In use' was selected but the button text value was blank, after removing disallowed characters.", |
|
disc => 'Disallowed characters are ', |
|
notxt => "An exit link type of 'In use' was selected but the button text value was blank.", |
|
plst => 'Please enter the text to use.', |
|
gppc => 'Grace Period Past-Due: enter partial credit (number between 0 and 1.0).', |
|
gpsn => 'Grace Period Past-Due: select a number in at least one of the time past due select boxes, or delete the value for partial credit.', |
|
); |
|
&js_escape(\%lt); |
|
return <<"ENDSCRIPT"; |
|
|
function validateParms() { |
function validateParms() { |
var textRegExp = /^settext_/; |
var textRegExp = /^settext_/; |
var tailLenient = /\.lenient$/; |
var tailLenient = /\\.lenient\$/; |
var patternRelWeight = /^\-?[\d.]+$/; |
var patternRelWeight = /^\\-?[\\d.]+\$/; |
var patternLenientStd = /^(yes|no|default)$/; |
var patternLenientStd = /^(yes|no|default)\$/; |
var ipRegExp = /^setip/; |
var ipRegExp = /^setip/; |
var ipallowRegExp = /^setipallow_/; |
var ipallowRegExp = /^setipallow_/; |
var ipdenyRegExp = /^setipdeny_/; |
var ipdenyRegExp = /^setipdeny_/; |
Line 1307 function validateParms() {
|
Line 1325 function validateParms() {
|
var dlTargetRegExp = /^deeplink_target_/; |
var dlTargetRegExp = /^deeplink_target_/; |
var dlExitRegExp = /^deeplink_exit_/; |
var dlExitRegExp = /^deeplink_exit_/; |
var dlExitTextRegExp = /^deeplink_exittext_/; |
var dlExitTextRegExp = /^deeplink_exittext_/; |
var patternIP = /[\[\]\*\.a-zA-Z\d\-]+/; |
var patternIP = /[\\[\\]\\*\\.a-zA-Z\\d\\-]+/; |
var patternGrace = /^\d+:(0|1)\.?\d*:(0|1)\$/; |
var patternGrace = /^\\d+:(0|1)\\.?\\d*:(0|1)\$/; |
var numelements = document.parmform.elements.length; |
var numelements = document.parmform.elements.length; |
if ((typeof(numelements) != 'undefined') && (numelements != null)) { |
if ((typeof(numelements) != 'undefined') && (numelements != null)) { |
if (numelements) { |
if (numelements) { |
Line 1322 function validateParms() {
|
Line 1340 function validateParms() {
|
if (document.parmform.elements['set_'+identifier][j].checked) { |
if (document.parmform.elements['set_'+identifier][j].checked) { |
if (!(patternLenientStd.test(document.parmform.elements['set_'+identifier][j].value))) { |
if (!(patternLenientStd.test(document.parmform.elements['set_'+identifier][j].value))) { |
var relweight = document.parmform.elements[i].value; |
var relweight = document.parmform.elements[i].value; |
relweight = relweight.replace(/^\s+|\s+$/g,''); |
relweight = relweight.replace(/^\s+|\s+\$/g,''); |
if (!patternRelWeight.test(relweight)) { |
if (!patternRelWeight.test(relweight)) { |
relweight = '0.0'; |
relweight = '0.0'; |
} |
} |
Line 1341 function validateParms() {
|
Line 1359 function validateParms() {
|
if (ipallowRegExp.test(name)) { |
if (ipallowRegExp.test(name)) { |
var identifier = name.replace(ipallowRegExp,''); |
var identifier = name.replace(ipallowRegExp,''); |
var possallow = document.parmform.elements[i].value; |
var possallow = document.parmform.elements[i].value; |
possallow = possallow.replace(/^\s+|\s+$/g,''); |
possallow = possallow.replace(/^\s+|\s+\$/g,''); |
if (patternIP.test(possallow)) { |
if (patternIP.test(possallow)) { |
if (document.parmform.elements['set_'+identifier].value) { |
if (document.parmform.elements['set_'+identifier].value) { |
possallow = ','+possallow; |
possallow = ','+possallow; |
Line 1351 function validateParms() {
|
Line 1369 function validateParms() {
|
} else if (ipdenyRegExp.test(name)) { |
} else if (ipdenyRegExp.test(name)) { |
var identifier = name.replace(ipdenyRegExp,''); |
var identifier = name.replace(ipdenyRegExp,''); |
var possdeny = document.parmform.elements[i].value; |
var possdeny = document.parmform.elements[i].value; |
possdeny = possdeny.replace(/^\s+|\s+$/g,''); |
possdeny = possdeny.replace(/^\s+|\s+\$/g,''); |
if (patternIP.test(possdeny)) { |
if (patternIP.test(possdeny)) { |
possdeny = '!'+possdeny; |
possdeny = '!'+possdeny; |
if (document.parmform.elements['set_'+identifier].value) { |
if (document.parmform.elements['set_'+identifier].value) { |
Line 1366 function validateParms() {
|
Line 1384 function validateParms() {
|
var idx = document.parmform.elements[i].selectedIndex; |
var idx = document.parmform.elements[i].selectedIndex; |
if (idx > 0) { |
if (idx > 0) { |
var possdeeplink = document.parmform.elements[i].options[idx].value |
var possdeeplink = document.parmform.elements[i].options[idx].value |
possdeeplink = possdeeplink.replace(/^\s+|\s+$/g,''); |
possdeeplink = possdeeplink.replace(/^\s+|\s+\$/g,''); |
if (document.parmform.elements['set_'+identifier].value) { |
if (document.parmform.elements['set_'+identifier].value) { |
possdeeplink = ','+possdeeplink; |
possdeeplink = ','+possdeeplink; |
} |
} |
Line 1376 function validateParms() {
|
Line 1394 function validateParms() {
|
if (document.parmform.elements[i].checked) { |
if (document.parmform.elements[i].checked) { |
var identifier = name.replace(dlLinkProtectRegExp,''); |
var identifier = name.replace(dlLinkProtectRegExp,''); |
var posslinkurl = document.parmform.elements[i].value; |
var posslinkurl = document.parmform.elements[i].value; |
posslinkurl = posslinkurl.replace(/^\s+|\s+$/g,''); |
posslinkurl = posslinkurl.replace(/^\s+|\s+\$/g,''); |
if (document.parmform.elements['set_'+identifier].value) { |
if (document.parmform.elements['set_'+identifier].value) { |
posslinkurl = ','+posslinkurl; |
posslinkurl = ','+posslinkurl; |
} |
} |
Line 1394 function validateParms() {
|
Line 1412 function validateParms() {
|
document.parmform.elements['set_'+identifier].value += possltid; |
document.parmform.elements['set_'+identifier].value += possltid; |
} else { |
} else { |
document.parmform.elements['set_'+identifier].value = ''; |
document.parmform.elements['set_'+identifier].value = ''; |
alert("A link type of 'domain LTI launch' was selected but no domain LTI launcher was selected.\nPlease select one, or choose a different supported link type."); |
alert("$lt{'nodom'}\\n$lt{'plss'}"); |
return false; |
return false; |
} |
} |
} |
} |
Line 1410 function validateParms() {
|
Line 1428 function validateParms() {
|
document.parmform.elements['set_'+identifier].value += possltic; |
document.parmform.elements['set_'+identifier].value += possltic; |
} else { |
} else { |
document.parmform.elements['set_'+identifier].value = ''; |
document.parmform.elements['set_'+identifier].value = ''; |
alert("A link type of 'course LTI launch' was selected but no course LTI launcher was selected.\nPlease select one, or choose a different supported link type."); |
alert("$lt{'nocrs'}\\n$lt{'plss'}"); |
return false; |
return false; |
} |
} |
} |
} |
Line 1418 function validateParms() {
|
Line 1436 function validateParms() {
|
var identifier = name.replace(dlKeyRegExp,''); |
var identifier = name.replace(dlKeyRegExp,''); |
if (isRadioSet('deeplink_protect_'+identifier,'key')) { |
if (isRadioSet('deeplink_protect_'+identifier,'key')) { |
var posskey = document.parmform.elements[i].value; |
var posskey = document.parmform.elements[i].value; |
posskey = posskey.replace(/^\s+|\s+$/g,''); |
posskey = posskey.replace(/^\s+|\s+\$/g,''); |
var origlength = posskey.length; |
var origlength = posskey.length; |
posskey = posskey.replace(/[^a-zA-Z\d_.!@#$%^&*()+=-]/g,''); |
posskey = posskey.replace(/[^a-zA-Z\d_.!\@#\$%^&*()+=-]/g,''); |
var newlength = posskey.length; |
var newlength = posskey.length; |
if (newlength > 0) { |
if (newlength > 0) { |
var change = origlength - newlength; |
var change = origlength - newlength; |
if (change) { |
if (change) { |
alert(change+' disallowed character(s) removed from deeplink key'); |
alert(change+" $lt{'disa'}"); |
} |
} |
if (document.parmform.elements['set_'+identifier].value) { |
if (document.parmform.elements['set_'+identifier].value) { |
posskey = ':'+posskey; |
posskey = ':'+posskey; |
Line 1434 function validateParms() {
|
Line 1452 function validateParms() {
|
} else { |
} else { |
document.parmform.elements['set_'+identifier].value = ''; |
document.parmform.elements['set_'+identifier].value = ''; |
if (newlength < origlength) { |
if (newlength < origlength) { |
alert("A link type of 'deep with key' was selected but the key value was blank, after removing disallowed characters.\nPlease enter a key using one or more of: a-zA-Z0-9_.!@#$%^&*()+=-"); |
alert("$lt{'nokyr'}\\n$lt{'plse'} "+'a-zA-Z0-9_.!\@#\$%^&*()+=-'); |
} else { |
} else { |
alert("A link type of 'deep with key' was selected but the key value was blank.\nPlease enter a key."); |
alert("$lt{'nokey'}\\n$lt{'plsk'}"); |
} |
} |
return false; |
return false; |
} |
} |
Line 1445 function validateParms() {
|
Line 1463 function validateParms() {
|
if (document.parmform.elements[i].checked) { |
if (document.parmform.elements[i].checked) { |
var identifier = name.replace(dlMenusRegExp,''); |
var identifier = name.replace(dlMenusRegExp,''); |
var posslinkmenu = document.parmform.elements[i].value; |
var posslinkmenu = document.parmform.elements[i].value; |
posslinkmenu = posslinkmenu.replace(/^\s+|\s+$/g,''); |
posslinkmenu = posslinkmenu.replace(/^\s+|\s+\$/g,''); |
if (posslinkmenu == 'std') { |
if (posslinkmenu == 'std') { |
posslinkmenu = '0'; |
posslinkmenu = '0'; |
if (document.parmform.elements['set_'+identifier].value) { |
if (document.parmform.elements['set_'+identifier].value) { |
Line 1468 function validateParms() {
|
Line 1486 function validateParms() {
|
var idx = document.parmform.elements[i].selectedIndex; |
var idx = document.parmform.elements[i].selectedIndex; |
if (idx > 0) { |
if (idx > 0) { |
var linktarget = document.parmform.elements[i].options[idx].value |
var linktarget = document.parmform.elements[i].options[idx].value |
linktarget = linktarget.replace(/^\s+|\s+$/g,''); |
linktarget = linktarget.replace(/^\s+|\s+\$/g,''); |
if (document.parmform.elements['set_'+identifier].value) { |
if (document.parmform.elements['set_'+identifier].value) { |
linktarget = ','+linktarget; |
linktarget = ','+linktarget; |
} |
} |
Line 1478 function validateParms() {
|
Line 1496 function validateParms() {
|
if (document.parmform.elements[i].checked) { |
if (document.parmform.elements[i].checked) { |
var identifier = name.replace(dlExitRegExp,''); |
var identifier = name.replace(dlExitRegExp,''); |
var posslinkexit = document.parmform.elements[i].value; |
var posslinkexit = document.parmform.elements[i].value; |
posslinkexit = posslinkexit.replace(/^\s+|\s+$/g,''); |
posslinkexit = posslinkexit.replace(/^\s+|\s+\$/g,''); |
if (document.parmform.elements['set_'+identifier].value) { |
if (document.parmform.elements['set_'+identifier].value) { |
posslinkexit = ','+posslinkexit; |
posslinkexit = ','+posslinkexit; |
} |
} |
Line 1489 function validateParms() {
|
Line 1507 function validateParms() {
|
if ((isRadioSet('deeplink_exit_'+identifier,'yes')) || |
if ((isRadioSet('deeplink_exit_'+identifier,'yes')) || |
(isRadioSet('deeplink_exit_'+identifier,'url'))) { |
(isRadioSet('deeplink_exit_'+identifier,'url'))) { |
var posstext = document.parmform.elements[i].value; |
var posstext = document.parmform.elements[i].value; |
posstext = posstext.replace(/^\s+|\s+$/g,''); |
posstext = posstext.replace(/^\s+|\s+\$/g,''); |
var origlength = posstext.length; |
var origlength = posstext.length; |
posstext = posstext.replace(/[:;'",]/g,''); |
posstext = posstext.replace(/[:;'",]/g,''); |
var newlength = posstext.length; |
var newlength = posstext.length; |
if (newlength > 0) { |
if (newlength > 0) { |
var change = origlength - newlength; |
var change = origlength - newlength; |
if (change) { |
if (change) { |
alert(change+' disallowed character(s) removed from Exit Button text'); |
alert(change+" $lt{'dise'}"); |
} |
} |
if (posstext !== 'Exit Tool') { |
if (posstext !== 'Exit Tool') { |
posstext = ':'+posstext; |
posstext = ':'+posstext; |
Line 1505 function validateParms() {
|
Line 1523 function validateParms() {
|
} else { |
} else { |
document.parmform.elements['set_'+identifier].value = ''; |
document.parmform.elements['set_'+identifier].value = ''; |
if (newlength < origlength) { |
if (newlength < origlength) { |
alert("An exit link type of 'In use' was selected but the button text value was blank, after removing disallowed characters.\nDisallowed characters are ,\":;'"); |
alert("$lt{'exit'}\\n$lt{'disc'}"+'":;\\''); |
} else { |
} else { |
alert("An exit link type of 'In use' was selected but the button text value was blank.\nPlease enter the text to use."); |
alert("$lt{'notxt'}\\n$lt{'plst'}"); |
} |
} |
return false; |
return false; |
} |
} |
Line 1586 function validateParms() {
|
Line 1604 function validateParms() {
|
document.parmform.elements['set_'+identifier].value += document.parmform.elements[i].value; |
document.parmform.elements['set_'+identifier].value += document.parmform.elements[i].value; |
} else { |
} else { |
if (frac == '') { |
if (frac == '') { |
alert('Grace Period Past-Due: enter partial credit (number between 0 and 1.0).'); |
alert("$lt{'gppc'}"); |
return false; |
return false; |
} else { |
} else { |
alert('Grace Period Past-Due: select a number in at least one of the time past due select boxes, or delete the value for partial credit.'); |
alert("$lt{'gpsn'}"); |
return false; |
return false; |
} |
} |
} |
} |