[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /interface lonconfigsettings.pm

raeburn raeburn at source.lon-capa.org
Tue Jul 30 07:41:26 EDT 2019


raeburn		Tue Jul 30 11:41:26 2019 EDT

  Modified files:              (Branch: version_2_11_X)
    /loncom/interface	lonconfigsettings.pm 
  Log:
  - For 2.11
    Backport 1.34, 1.35, 1.36
  
  
Index: loncom/interface/lonconfigsettings.pm
diff -u loncom/interface/lonconfigsettings.pm:1.21.4.9 loncom/interface/lonconfigsettings.pm:1.21.4.10
--- loncom/interface/lonconfigsettings.pm:1.21.4.9	Sun Oct 23 21:13:51 2016
+++ loncom/interface/lonconfigsettings.pm	Tue Jul 30 11:41:26 2019
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler to set domain-wide configuration settings
 #
-# $Id: lonconfigsettings.pm,v 1.21.4.9 2016/10/23 21:13:51 raeburn Exp $
+# $Id: lonconfigsettings.pm,v 1.21.4.10 2019/07/30 11:41:26 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -39,7 +39,7 @@
 use LONCAPA qw(:DEFAULT :match);
 
 sub print_header {
-    my ($r,$phase,$context,$jscript,$container) = @_;
+    my ($r,$phase,$context,$jscript,$container,$instcode,$dom) = @_;
     my ($pagetitle,$brcrumtitle,$action,$call_category_check,$instcode_check,
         $crstype, at actions, at code_order);
     if ($phase eq 'display') {
@@ -176,11 +176,42 @@
         $additem = {'add_entries' => \%loaditems,};
     } elsif ($phase eq 'display') {
         if ($context eq 'domain') {
+            my $onload;
             if (grep(/^coursedefaults$/, at actions)) {
+                $onload = "toggleDisplay(document.display,'cloneinstcode');".
+                          "toggleDisplay(document.display,'credits');".
+                          "toggleDisplay(document.display,'studentsubmission');";
+            }
+            if (grep(/^selfcreation$/, at 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 ($onload) {
                 my %loaditems = (
-                    '             onload' => "toggleDisplay(document.display,'cloneinstcode');".
-                                             "toggleDisplay(document.display,'credits');".
-                                             "toggleDisplay(document.display,'studentsubmission');",
+                                  'onload' => $onload,
                                 );
                 $additem = {'add_entries' => \%loaditems,};
             }
@@ -335,7 +366,7 @@
     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);
     my $divwidth = 900;
     if ((ref($prefs_order) eq 'ARRAY') && (ref($prefs) eq 'HASH') && (ref($values) eq 'HASH')) { 
         if (@actions > 0) {




More information about the LON-CAPA-cvs mailing list