[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