--- loncom/interface/lonconfigsettings.pm 2016/10/11 22:58:55 1.33
+++ loncom/interface/lonconfigsettings.pm 2021/07/30 13:48:20 1.49
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: lonconfigsettings.pm,v 1.33 2016/10/11 22:58:55 raeburn Exp $
+# $Id: lonconfigsettings.pm,v 1.49 2021/07/30 13:48:20 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -40,7 +40,7 @@ use Apache::courseclassifier();
use LONCAPA qw(:DEFAULT :match);
sub print_header {
- my ($r,$phase,$context,$jscript,$container) = @_;
+ my ($r,$phase,$context,$jscript,$container,$instcode,$dom,$values) = @_;
my ($pagetitle,$brcrumtitle,$action,$call_category_check,$instcode_check,
$crstype,@actions,@code_order);
if ($phase eq 'display') {
@@ -177,11 +177,95 @@ $jscript
$additem = {'add_entries' => \%loaditems,};
} elsif ($phase eq 'display') {
if ($context eq 'domain') {
+ my $onload;
if (grep(/^coursedefaults$/,@actions)) {
+ $onload = "toggleDisplay(document.display,'cloneinstcode');".
+ "toggleDisplay(document.display,'credits');".
+ "toggleDisplay(document.display,'studentsubmission');";
+ }
+ if (grep(/^selfcreation$/,@actions)) {
+ my $prefix = 'cancreate_emailverified';
+ my $customclass = 'LC_selfcreate_email';
+ my $classprefix = 'LC_canmodify_emailusername_';
+ my $optionsprefix = 'LC_options_emailusername_';
+ $onload .= "toggleRows(document.display,'cancreate_email','selfassign','$customclass','$classprefix','$optionsprefix');";
+ my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom);
+ my $hascustom;
+ my ($emailrules,$emailruleorder) = &Apache::lonnet::inst_userrules($dom,'email');
+ if (ref($emailrules) eq 'HASH') {
+ if (keys(%{$emailrules}) > 0) {
+ $hascustom = 'cancreate_emailrule';
+ }
+ }
+ my @posstypes;
+ if (ref($types) eq 'ARRAY') {
+ @posstypes = @{$types};
+ push(@posstypes,'default');
+ foreach my $type (@posstypes) {
+ $onload .= "toggleEmailOptions(document.display,'cancreate_emailoptions','$hascustom',".
+ "'cancreate_emaildomain','$type');";
+ }
+ } else {
+ $onload .= "toggleEmailOptions(document.display,'cancreate_emailoptions','$hascustom',".
+ "'cancreate_emaildomain','default');";
+ }
+ }
+ if (grep(/^contacts$/,@actions)) {
+ my $customclass = 'LC_helpdesk_override';
+ my $optionsprefix = 'LC_options_helpdesk_';
+ $onload .= "toggleHelpdeskRow(document.display,'overrides','$customclass','$optionsprefix');";
+ }
+ if (grep(/^lti$/,@actions)) {
+ $onload .= "toggleLTI(document.display,'user','add');".
+ "toggleLTI(document.display,'crs','add');".
+ "toggleLTI(document.display,'sec','add');".
+ "toggleLTI(document.display,'lcauth','add');".
+ "toggleLTI(document.display,'lcmenu','add');".
+ "toggleLTI(document.display,'passback','add');".
+ "toggleLTI(document.display,'callback','add');";
+ if (ref($values) eq 'HASH') {
+ if (ref($values->{'lti'}) eq 'HASH') {
+ my $numlti = scalar(keys(%{$values->{'lti'}}));
+ for (my $i=0; $i<$numlti; $i++) {
+ $onload .= "toggleLTI(document.display,'user','$i');".
+ "toggleLTI(document.display,'crs','$i');".
+ "toggleLTI(document.display,'sec','$i');".
+ "toggleLTI(document.display,'lcauth','$i');".
+ "toggleLTI(document.display,'lcmenu','$i');".
+ "toggleLTI(document.display,'passback','$i');".
+ "toggleLTI(document.display,'callback','$i');";
+ }
+ }
+ }
+ }
+ if (grep(/^ltitools$/,@actions)) {
+ $onload .= "toggleLTITools(document.display,'passback','add');".
+ "toggleLTITools(document.display,'roster','add');".
+ "toggleLTITools(document.display,'user','add');";
+ if (ref($values) eq 'HASH') {
+ if (ref($values->{'ltitools'}) eq 'HASH') {
+ my $numltitools = scalar(keys(%{$values->{'ltitools'}}));
+ for (my $i=0; $i<$numltitools; $i++) {
+ $onload .= "toggleLTITools(document.display,'passback','$i');".
+ "toggleLTITools(document.display,'roster','$i');".
+ "toggleLTITools(document.display,'user','$i');";
+ }
+ }
+ }
+ }
+ if (grep(/^wafproxy$/,@actions)) {
+ $onload .= "toggleWAF();checkWAF();updateWAF();";
+ }
+ if (grep(/^proctoring$/,@actions)) {
+ $onload .= "toggleProctoring(document.display,'proctorio');".
+ "toggleProctoring(document.display,'examity');";
+ }
+ if (grep(/^scantron$/,@actions)) {
+ $onload .= "toggleScantron('document.display');";
+ }
+ if ($onload) {
my %loaditems = (
- ' onload' => "toggleDisplay(document.display,'cloneinstcode');".
- "toggleDisplay(document.display,'credits');".
- "toggleDisplay(document.display,'studentsubmission');",
+ 'onload' => $onload,
);
$additem = {'add_entries' => \%loaditems,};
}
@@ -342,7 +426,7 @@ sub display_settings {
if (ref($values) eq 'HASH') {
$instcode = $values->{'internal.coursecode'};
}
- &print_header($r,$phase,$context,$jscript,$container,$instcode);
+ &print_header($r,$phase,$context,$jscript,$container,$instcode,$dom,$values);
my $divwidth = 900;
if ((ref($prefs_order) eq 'ARRAY') && (ref($prefs) eq 'HASH') && (ref($values) eq 'HASH')) {
if (@actions > 0) {
@@ -475,8 +559,8 @@ sub display_choices {
$thirddiv = 1;
}
}
- $r->print('
');
}
+ $r->print('