[LON-CAPA-cvs] cvs: loncom /interface lonparmset.pm
raeburn
raeburn at source.lon-capa.org
Mon Jun 30 17:35:05 EDT 2025
raeburn Mon Jun 30 21:35:05 2025 EDT
Modified files:
/loncom/interface lonparmset.pm
Log:
- Support localization of alerts generated if validateParams() detects
an issue when "Save" submits "Edit Resource Parameters - Overview Mode"
or "Modify Resource Parameters - Overview Mode" form.
-------------- next part --------------
Index: loncom/interface/lonparmset.pm
diff -u loncom/interface/lonparmset.pm:1.624 loncom/interface/lonparmset.pm:1.625
--- loncom/interface/lonparmset.pm:1.624 Mon Jun 30 21:12:21 2025
+++ loncom/interface/lonparmset.pm Mon Jun 30 21:35:05 2025
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.624 2025/06/30 21:12:21 raeburn Exp $
+# $Id: lonparmset.pm,v 1.625 2025/06/30 21:35:05 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1285,13 +1285,31 @@
# Javascript function validateParms, for overview mode
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() {
var textRegExp = /^settext_/;
- var tailLenient = /\.lenient$/;
- var patternRelWeight = /^\-?[\d.]+$/;
- var patternLenientStd = /^(yes|no|default)$/;
+ var tailLenient = /\.lenient\$/;
+ var patternRelWeight = /^\-?[\d.]+\$/;
+ var patternLenientStd = /^(yes|no|default)\$/;
var ipRegExp = /^setip/;
var ipallowRegExp = /^setipallow_/;
var ipdenyRegExp = /^setipdeny_/;
@@ -1322,7 +1340,7 @@
if (document.parmform.elements['set_'+identifier][j].checked) {
if (!(patternLenientStd.test(document.parmform.elements['set_'+identifier][j].value))) {
var relweight = document.parmform.elements[i].value;
- relweight = relweight.replace(/^\s+|\s+$/g,'');
+ relweight = relweight.replace(/^\s+|\s+\$/g,'');
if (!patternRelWeight.test(relweight)) {
relweight = '0.0';
}
@@ -1341,7 +1359,7 @@
if (ipallowRegExp.test(name)) {
var identifier = name.replace(ipallowRegExp,'');
var possallow = document.parmform.elements[i].value;
- possallow = possallow.replace(/^\s+|\s+$/g,'');
+ possallow = possallow.replace(/^\s+|\s+\$/g,'');
if (patternIP.test(possallow)) {
if (document.parmform.elements['set_'+identifier].value) {
possallow = ','+possallow;
@@ -1351,7 +1369,7 @@
} else if (ipdenyRegExp.test(name)) {
var identifier = name.replace(ipdenyRegExp,'');
var possdeny = document.parmform.elements[i].value;
- possdeny = possdeny.replace(/^\s+|\s+$/g,'');
+ possdeny = possdeny.replace(/^\s+|\s+\$/g,'');
if (patternIP.test(possdeny)) {
possdeny = '!'+possdeny;
if (document.parmform.elements['set_'+identifier].value) {
@@ -1366,7 +1384,7 @@
var idx = document.parmform.elements[i].selectedIndex;
if (idx > 0) {
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) {
possdeeplink = ','+possdeeplink;
}
@@ -1376,7 +1394,7 @@
if (document.parmform.elements[i].checked) {
var identifier = name.replace(dlLinkProtectRegExp,'');
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) {
posslinkurl = ','+posslinkurl;
}
@@ -1394,7 +1412,7 @@
document.parmform.elements['set_'+identifier].value += possltid;
} else {
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;
}
}
@@ -1410,7 +1428,7 @@
document.parmform.elements['set_'+identifier].value += possltic;
} else {
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;
}
}
@@ -1418,14 +1436,14 @@
var identifier = name.replace(dlKeyRegExp,'');
if (isRadioSet('deeplink_protect_'+identifier,'key')) {
var posskey = document.parmform.elements[i].value;
- posskey = posskey.replace(/^\s+|\s+$/g,'');
+ posskey = posskey.replace(/^\s+|\s+\$/g,'');
var origlength = posskey.length;
- posskey = posskey.replace(/[^a-zA-Z\d_.!@#$%^&*()+=-]/g,'');
+ posskey = posskey.replace(/[^a-zA-Z\d_.!\@#\$%^&*()+=-]/g,'');
var newlength = posskey.length;
if (newlength > 0) {
var change = origlength - newlength;
if (change) {
- alert(change+' disallowed character(s) removed from deeplink key');
+ alert(change+" $lt{'disa'}");
}
if (document.parmform.elements['set_'+identifier].value) {
posskey = ':'+posskey;
@@ -1434,9 +1452,9 @@
} else {
document.parmform.elements['set_'+identifier].value = '';
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 {
- 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;
}
@@ -1445,7 +1463,7 @@
if (document.parmform.elements[i].checked) {
var identifier = name.replace(dlMenusRegExp,'');
var posslinkmenu = document.parmform.elements[i].value;
- posslinkmenu = posslinkmenu.replace(/^\s+|\s+$/g,'');
+ posslinkmenu = posslinkmenu.replace(/^\s+|\s+\$/g,'');
if (posslinkmenu == 'std') {
posslinkmenu = '0';
if (document.parmform.elements['set_'+identifier].value) {
@@ -1468,7 +1486,7 @@
var idx = document.parmform.elements[i].selectedIndex;
if (idx > 0) {
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) {
linktarget = ','+linktarget;
}
@@ -1478,7 +1496,7 @@
if (document.parmform.elements[i].checked) {
var identifier = name.replace(dlExitRegExp,'');
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) {
posslinkexit = ','+posslinkexit;
}
@@ -1489,14 +1507,14 @@
if ((isRadioSet('deeplink_exit_'+identifier,'yes')) ||
(isRadioSet('deeplink_exit_'+identifier,'url'))) {
var posstext = document.parmform.elements[i].value;
- posstext = posstext.replace(/^\s+|\s+$/g,'');
+ posstext = posstext.replace(/^\s+|\s+\$/g,'');
var origlength = posstext.length;
posstext = posstext.replace(/[:;'",]/g,'');
var newlength = posstext.length;
if (newlength > 0) {
var change = origlength - newlength;
if (change) {
- alert(change+' disallowed character(s) removed from Exit Button text');
+ alert(change+" $lt{'dise'}");
}
if (posstext !== 'Exit Tool') {
posstext = ':'+posstext;
@@ -1505,9 +1523,9 @@
} else {
document.parmform.elements['set_'+identifier].value = '';
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 {
- 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;
}
@@ -1586,10 +1604,10 @@
document.parmform.elements['set_'+identifier].value += document.parmform.elements[i].value;
} else {
if (frac == '') {
- alert('Grace Period Past-Due: enter partial credit (number between 0 and 1.0).');
+ alert("$lt{'gppc'}");
return false;
} 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;
}
}
More information about the LON-CAPA-cvs
mailing list