[LON-CAPA-cvs] cvs: loncom /interface lonparmset.pm
raeburn
raeburn at source.lon-capa.org
Mon Jun 30 17:12:21 EDT 2025
raeburn Mon Jun 30 21:12:21 2025 EDT
Modified files:
/loncom/interface lonparmset.pm
Log:
- Edit Resource Parameters - Overview Mode.
- Client-side javascript function: validateParms() is called when form
submission is via "Save", but not when submission is via "Display".
- "Save" is not shown if no parameters available to set, based on choices
made for level, parameters and parts to view.
Index: loncom/interface/lonparmset.pm
diff -u loncom/interface/lonparmset.pm:1.623 loncom/interface/lonparmset.pm:1.624
--- loncom/interface/lonparmset.pm:1.623 Mon Jun 30 20:29:03 2025
+++ loncom/interface/lonparmset.pm Mon Jun 30 21:12:21 2025
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.623 2025/06/30 20:29:03 raeburn Exp $
+# $Id: lonparmset.pm,v 1.624 2025/06/30 21:12:21 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -6396,7 +6396,8 @@
$r->print($start_page.$breadcrumbs);
&startSettingsScreen($r,'parmset',$crstype);
$r->print(<<ENDOVER);
-<form method="post" action="/adm/parmset?action=newoverview" name="parmform" onsubmit="return validateParms();">
+<form method="post" action="/adm/parmset?action=newoverview" name="parmform" id="newoverviewform">
+<input type="hidden" name="newoverviewsubm" value="dis" id="newoverviewsubm" />
ENDOVER
my @ids=();
my %typep=();
@@ -6504,7 +6505,7 @@
&sortmenu($r,$sortorder,'newoverview');
$r->print('</div></div>');
- $r->print('<p><input type="submit" name="dis" value="'.&mt('Display').'" /></p>');
+ $r->print('<p><input type="submit" name="dis" value="'.&mt('Display').'" id="newoverviewdis" /></p>');
# Build the list data hash from the specified parms
@@ -6516,9 +6517,10 @@
&secgroup_lister($cat,$pschp,$parmlev,$listdata,\@psprt,\@selected_groups,\%defkeytype,\%allmaps,\@ids,\%symbp);
}
- if (($env{'form.store'}) || ($env{'form.dis'})) {
+ my $foundkeys;
+ if ($env{'form.newoverviewsubm'}) {
- if ($env{'form.store'}) { &storedata($r,$crs,$dom); }
+ if ($env{'form.newoverviewsubm'} eq 'store') { &storedata($r,$crs,$dom); }
# Read modified data
@@ -6534,13 +6536,76 @@
$hash_for_realm->{$symbp{$ids[$i]}} = $i;
}
}
- &listdata($r,$resourcedata,$listdata,$sortorder,'newoverview',undef,$readonly,$parmlev,$hash_for_realm,$pschp);
+ $foundkeys = &listdata($r,$resourcedata,$listdata,$sortorder,'newoverview',undef,$readonly,$parmlev,$hash_for_realm,$pschp);
}
$r->print(&tableend());
- unless ($readonly) {
- $r->print( ((($env{'form.store'}) || ($env{'form.dis'}))?'<p><input type="submit" name="store" value="'.&mt('Save').'" /></p>':'') );
+ if ((!$readonly) && ($foundkeys)) {
+ $r->print( ($env{'form.newoverviewsubm'}? '<p><input type="submit" name="store" id="newoverviewstore" value="'.&mt('Save').'" /></p>':'') );
}
$r->print('</form>');
+ if ($env{'form.newoverviewsubm'}) {
+ $r->print(<<"END");
+<script type="text/javascript">
+const form = document.getElementById('newoverviewform');
+const storebutton = document.getElementById('newoverviewstore');
+const disbutton = document.getElementById('newoverviewdis');
+const submethod = document.getElementById('newoverviewsubm');
+if (storebutton) {
+ storebutton.addEventListener('keydown', (e) => {
+ if (e.key === 'Enter') {
+ if (validateParms()) {
+ if (form) {
+ if (submethod) {
+ submethod.value='store';
+ }
+ form.submit();
+ }
+ }
+ e.preventDefault();
+ return;
+ }
+ });
+ storebutton.addEventListener('click', (e) => {
+ if (validateParms()) {
+ if (form) {
+ if (submethod) {
+ submethod.value='store';
+ }
+ form.submit();
+ }
+ }
+ e.preventDefault();
+ return;
+ });
+}
+if (disbutton) {
+ disbutton.addEventListener('keydown', (e) => {
+ if (e.key === 'Enter') {
+ if (form) {
+ if (submethod) {
+ submethod.value='dis';
+ }
+ form.submit();
+ }
+ e.preventDefault();
+ }
+ });
+ disbutton.addEventListener('click', (e) => {
+ if (form) {
+ if (submethod) {
+ submethod.value='dis';
+ }
+ form.submit();
+ return;
+ }
+ e.preventDefault();
+ });
+}
+
+</script>
+
+END
+ }
&endSettingsScreen($r);
$r->print(&Apache::loncommon::end_page());
}
More information about the LON-CAPA-cvs
mailing list