Diff for /loncom/interface/domainprefs.pm between versions 1.434 and 1.438

version 1.434, 2024/02/24 23:41:44 version 1.438, 2024/04/14 17:12:27
Line 386  sub handler { Line 386  sub handler {
                       help => 'Domain_Configuration_Quotas',                        help => 'Domain_Configuration_Quotas',
                       header => [{col1 => 'User affiliation',                        header => [{col1 => 'User affiliation',
                                   col2 => 'Available tools',                                    col2 => 'Available tools',
                                   col3 => 'Portfilo quota (MB)',}],                                    col3 => 'Portfolio quota (MB)',}],
                       print => \&print_quotas,                        print => \&print_quotas,
                       modify => \&modify_quotas,                        modify => \&modify_quotas,
                     },                      },
Line 670  sub handler { Line 670  sub handler {
                              {col1 => 'Rules for shared secrets',                               {col1 => 'Rules for shared secrets',
                               col2 => 'Settings'},                                col2 => 'Settings'},
                              {col1 => 'Link Protectors in Courses',                               {col1 => 'Link Protectors in Courses',
                               col2 => 'Values'},                                 col2 => 'Values'},
                              {col1 => 'Link Protectors',                               {col1 => 'Link Protectors',
                               col2 => 'Settings'},                                col2 => 'Settings'},
                              {col1 => 'Consumers',                               {col1 => 'Consumers',
Line 686  sub handler { Line 686  sub handler {
                         print  => \&print_ipaccess,                          print  => \&print_ipaccess,
                         modify => \&modify_ipaccess,                          modify => \&modify_ipaccess,
                        },                         },
         'authordefaults' =>           'authordefaults' =>
                             {text => 'Authoring Space defaults',                              {text => 'Authoring Space defaults',
                              help => 'Domain_Configuration_Author_Defaults',                               help => 'Domain_Configuration_Author_Defaults',
                              header => [{col1 => 'Defaults which can be overridden by Author',                               header => [{col1 => 'Defaults which can be overridden by Author',
Line 6917  sub print_coursedefaults { Line 6917  sub print_coursedefaults {
         domexttool           => 'External Tools defined in the domain may be used in courses/communities (by type)',          domexttool           => 'External Tools defined in the domain may be used in courses/communities (by type)',
         exttool              => 'External Tools can be defined and configured in courses/communities (by type)',          exttool              => 'External Tools can be defined and configured in courses/communities (by type)',
         crsauthor            => 'Standard LON-CAPA problems can be created within a course/community (by type)',          crsauthor            => 'Standard LON-CAPA problems can be created within a course/community (by type)',
           crseditors           => 'Available editors for web pages and/or problems created in a course/community',
     );      );
     my %staticdefaults = (      my %staticdefaults = (
                            anonsurvey_threshold => 10,                             anonsurvey_threshold => 10,
Line 6927  sub print_coursedefaults { Line 6928  sub print_coursedefaults {
                            domexttool           => 1,                             domexttool           => 1,
                            exttool              => 0,                             exttool              => 0,
                            crsauthor            => 1,                             crsauthor            => 1,
                              crseditors           => ['edit','xml'],  
                          );                           );
     if ($position eq 'top') {      if ($position eq 'top') {
         %defaultchecked = (          %defaultchecked = (
Line 7048  sub print_coursedefaults { Line 7050  sub print_coursedefaults {
         my %domexttool;          my %domexttool;
         my %exttool;          my %exttool;
         my %crsauthor;          my %crsauthor;
           my %crseditors;
         my @types = ('official','unofficial','community','textbook','placement');          my @types = ('official','unofficial','community','textbook','placement');
         if (ref($settings) eq 'HASH') {          if (ref($settings) eq 'HASH') {
             if ($settings->{'ltiauth'}) {              if ($settings->{'ltiauth'}) {
Line 7086  sub print_coursedefaults { Line 7089  sub print_coursedefaults {
                     }                      }
                 }                  }
             }              }
               if (ref($settings->{'crseditors'}) eq 'ARRAY') {
                   foreach my $editor (@{$settings->{'crseditors'}}) {
                       $crseditors{$editor} = ' checked="checked"';
                   }
               } else {
                   foreach my $editor (@{$staticdefaults{'crseditors'}}) {
                       $crseditors{$editor} = ' checked="checked"';
                   }
               }
             $currdefresponder = $settings->{'anonsurvey_threshold'};              $currdefresponder = $settings->{'anonsurvey_threshold'};
             if (ref($settings->{'uploadquota'}) eq 'HASH') {              if (ref($settings->{'uploadquota'}) eq 'HASH') {
                 foreach my $type (keys(%{$settings->{'uploadquota'}})) {                  foreach my $type (keys(%{$settings->{'uploadquota'}})) {
Line 7149  sub print_coursedefaults { Line 7161  sub print_coursedefaults {
                     $crsauthor{$type} = ' checked="checked"';                      $crsauthor{$type} = ' checked="checked"';
                 }                  }
             }              }
               foreach my $editor (@{$staticdefaults{'crseditors'}}) {
                   $crseditors{$editor} = ' checked="checked"';
               }
         }          }
         if (!$currdefresponder) {          if (!$currdefresponder) {
             $currdefresponder = $staticdefaults{'anonsurvey_threshold'};              $currdefresponder = $staticdefaults{'anonsurvey_threshold'};
Line 7276  sub print_coursedefaults { Line 7291  sub print_coursedefaults {
         foreach my $type (@types) {          foreach my $type (@types) {
             $datatable .= '<td style="text-align: left">'.              $datatable .= '<td style="text-align: left">'.
                           '<span class="LC_nobreak">'.                            '<span class="LC_nobreak">'.
                           '<input type="checkbox" name="domexttool"'.                            '<label><input type="checkbox" name="domexttool"'.
                           ' value="'.$type.'"'.$domexttool{$type}.' />'.                            ' value="'.$type.'"'.$domexttool{$type}.' />'.
                           &mt($type).'</span></td>'."\n";                            &mt($type).'</label></span></td>'."\n";
         }          }
         $datatable .= '</tr></table></td></tr>'."\n";          $datatable .= '</tr></table></td></tr>'."\n";
         $itemcount ++;          $itemcount ++;
Line 7291  sub print_coursedefaults { Line 7306  sub print_coursedefaults {
         foreach my $type (@types) {          foreach my $type (@types) {
             $datatable .= '<td style="text-align: left">'.              $datatable .= '<td style="text-align: left">'.
                           '<span class="LC_nobreak">'.                            '<span class="LC_nobreak">'.
                           '<input type="checkbox" name="exttool"'.                            '<label><input type="checkbox" name="exttool"'.
                           ' value="'.$type.'"'.$exttool{$type}.' />'.                            ' value="'.$type.'"'.$exttool{$type}.' />'.
                           &mt($type).'</span></td>'."\n";                            &mt($type).'</label></span></td>'."\n";
         }          }
         $datatable .= '</tr></table></td></tr>'."\n";          $datatable .= '</tr></table></td></tr>'."\n";
         $itemcount ++;          $itemcount ++;
Line 7306  sub print_coursedefaults { Line 7321  sub print_coursedefaults {
         foreach my $type (@types) {          foreach my $type (@types) {
             $datatable .= '<td style="text-align: left">'.              $datatable .= '<td style="text-align: left">'.
                           '<span class="LC_nobreak">'.                            '<span class="LC_nobreak">'.
                           '<input type="checkbox" name="crsauthor"'.                            '<label><input type="checkbox" name="crsauthor"'.
                           ' value="'.$type.'"'.$crsauthor{$type}.' />'.                            ' value="'.$type.'"'.$crsauthor{$type}.' />'.
                           &mt($type).'</span></td>'."\n";                            &mt($type).'</label></span></td>'."\n";
           }
           $datatable .= '</tr></table></td></tr>'."\n";
           $itemcount ++;
           $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
           $datatable .= '<tr'.$css_class.'><td><span class="LC_nobreak">'.
                         $choices{'crseditors'}.
                         '</span></td>'.
                         '<td style="text-align: right" class="LC_right_item">'.
                         '<table><tr>';
           my @editors = ('edit','xml','daxe');
           my %editornames = &crseditor_titles();
           foreach my $editor (@editors) {
               $datatable .= '<td style="text-align: left">'.
                             '<span class="LC_nobreak">'.
                             '<label><input type="checkbox" name="crseditors"'.
                             ' value="'.$editor.'"'.$crseditors{$editor}.' />'.
                             $editornames{$editor}.'</label></span></td>'."\n";
         }          }
         $datatable .= '</tr></table></td></tr>'."\n";          $datatable .= '</tr></table></td></tr>'."\n";
     }      }
Line 7316  sub print_coursedefaults { Line 7348  sub print_coursedefaults {
     return $datatable;      return $datatable;
 }  }
   
   sub crseditor_titles {
       return &Apache::lonlocal::texthash(
                  edit  => 'Standard editor (Edit)',
                  xml   => 'Text editor (EditXML)',
                  daxe  => 'Daxe editor (Daxe)',
              );
   }
   
 sub print_authordefaults {  sub print_authordefaults {
     my ($position,$dom,$settings,$rowtotal) = @_;      my ($position,$dom,$settings,$rowtotal) = @_;
     my ($css_class,$datatable,%checkedon,%checkedoff);      my ($css_class,$datatable,%checkedon,%checkedoff);
Line 7324  sub print_authordefaults { Line 7364  sub print_authordefaults {
     if ($position eq 'top') {      if ($position eq 'top') {
         my %defaultchecked = (          my %defaultchecked = (
                             'nocodemirror' => 'off',                              'nocodemirror' => 'off',
                               'daxecollapse' => 'off',
                             'domcoordacc'  => 'on',                              'domcoordacc'  => 'on',
                           );                            );
         my @toggles = ('nocodemirror','domcoordacc');          my @toggles = ('nocodemirror','daxecollapse','domcoordacc');
         ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,          ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
                                                      \%titles,$itemcount);                                                       \%titles,$itemcount);
         my %staticdefaults = (          my %staticdefaults = (
Line 7445  sub print_authordefaults { Line 7486  sub print_authordefaults {
         my $checkedno = ' checked="checked"';          my $checkedno = ' checked="checked"';
         my ($checkedon,$checkedoff);          my ($checkedon,$checkedoff);
         if (ref($quotas{'webdav'}) eq 'HASH') {          if (ref($quotas{'webdav'}) eq 'HASH') {
             if ($quotas{'webdav'}{'_LC_adv'} =~ /^0|1$/) {               if ($quotas{'webdav'}{'_LC_adv'} =~ /^0|1$/) {
                 if ($quotas{'webdav'}{'_LC_adv'}) {                  if ($quotas{'webdav'}{'_LC_adv'}) {
                     $checkedon = $checkedno;                      $checkedon = $checkedno;
                 } else {                  } else {
Line 7474  sub print_authordefaults { Line 7515  sub print_authordefaults {
                 $text = $titles{'overon'};                  $text = $titles{'overon'};
                 $val = 1;                  $val = 1;
                 $checked = $checkedon;                  $checked = $checkedon;
             }               }
             $datatable .= '<span class="LC_nobreak"><label>'.              $datatable .= '<span class="LC_nobreak"><label>'.
                           '<input type="radio" name="webdav_LC_adv"'.                            '<input type="radio" name="webdav_LC_adv"'.
                           ' value="'.$val.'"'.$checked.' />'.                            ' value="'.$val.'"'.$checked.' />'.
Line 7495  sub authordefaults_titles { Line 7536  sub authordefaults_titles {
                webdav => 'WebDAV',                 webdav => 'WebDAV',
                authorquota => 'Authoring Space quotas (MB)',                 authorquota => 'Authoring Space quotas (MB)',
                nocodemirror => 'Deactivate CodeMirror for EditXML editor',                 nocodemirror => 'Deactivate CodeMirror for EditXML editor',
                  daxecollapse => 'Daxe editor: LON-CAPA standard menus start collapsed',
                domcoordacc => 'Dom. Coords. can enter Authoring Spaces in domain',                 domcoordacc => 'Dom. Coords. can enter Authoring Spaces in domain',
                edit  => 'Standard editor (Edit)',                 edit  => 'Standard editor (Edit)',
                xml   => 'Text editor (EditXML)',                 xml   => 'Text editor (EditXML)',
Line 7503  sub authordefaults_titles { Line 7545  sub authordefaults_titles {
                webdav_LC_adv_over => '(overrides access based on affiliation, if set)',                 webdav_LC_adv_over => '(overrides access based on affiliation, if set)',
                none => 'No override set',                 none => 'No override set',
                overon => 'Override -- webDAV on',                 overon => 'Override -- webDAV on',
                overoff => 'Override -- webDAV off',                  overoff => 'Override -- webDAV off',
     );      );
 }  }
   
Line 13381  sub modify_authordefaults { Line 13423  sub modify_authordefaults {
                            'copyright'    => 'default',                             'copyright'    => 'default',
                            'sourceavail'  => 'closed',                             'sourceavail'  => 'closed',
                            'nocodemirror' => 'off',                             'nocodemirror' => 'off',
                              'daxecollapse' => 'off',
                            'domcoordacc'  => 'on',                             'domcoordacc'  => 'on',
                            'editors'      => ['edit','xml'].                             'editors'      => ['edit','xml'].
                            'authorquota'  => 500,                             'authorquota'  => 500,
                            'webdav'       => 0,                             'webdav'       => 0,
                          );                           );
     my %titles = &authordefaults_titles();      my %titles = &authordefaults_titles();
     foreach my $item ('nocodemirror','domcoordacc') {      foreach my $item ('nocodemirror','daxecollapse','domcoordacc') {
         if ($env{'form.'.$item} =~ /^(0|1)$/) {          if ($env{'form.'.$item} =~ /^(0|1)$/) {
             $confhash{$item} = $env{'form.'.$item};              $confhash{$item} = $env{'form.'.$item};
         }          }
Line 13407  sub modify_authordefaults { Line 13450  sub modify_authordefaults {
         }          }
     }      }
     $confhash{'editors'} = \@editors;      $confhash{'editors'} = \@editors;
      
     my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom);      my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom);
     my @insttypes;      my @insttypes;
     if (ref($types) eq 'ARRAY') {      if (ref($types) eq 'ARRAY') {
Line 13431  sub modify_authordefaults { Line 13474  sub modify_authordefaults {
         $save_quotas{'webdav'}{'_LC_adv'} = $env{'form.webdav_LC_adv'};          $save_quotas{'webdav'}{'_LC_adv'} = $env{'form.webdav_LC_adv'};
     }      }
     if (ref($domconfig{'authordefaults'}) eq 'HASH') {      if (ref($domconfig{'authordefaults'}) eq 'HASH') {
         foreach my $item ('nocodemirror','domcoordacc','copyright','sourceavail') {          foreach my $item ('nocodemirror','daxecollapse','domcoordacc','copyright','sourceavail') {
             if ($domconfig{'authordefaults'}{$item} ne $confhash{$item}) {              if ($domconfig{'authordefaults'}{$item} ne $confhash{$item}) {
                 $changes{$item} = 1;                  $changes{$item} = 1;
              }               }
         }          }
         if (ref($domconfig{'authordefaults'}{'editors'}) eq 'ARRAY') {          if (ref($domconfig{'authordefaults'}{'editors'}) eq 'ARRAY') {
             my @diffs =               my @diffs =
                 &Apache::loncommon::compare_arrays($confhash{'editors'},                  &Apache::loncommon::compare_arrays($confhash{'editors'},
                                                    $domconfig{'authordefaults'}{'editors'});                                                     $domconfig{'authordefaults'}{'editors'});
             unless (@diffs == 0) {              unless (@diffs == 0) {
Line 13453  sub modify_authordefaults { Line 13496  sub modify_authordefaults {
         }          }
     } else {      } else {
         my @offon = ('off','on');          my @offon = ('off','on');
         foreach my $item ('nocodemirror','domcoordacc') {          foreach my $item ('nocodemirror','daxecollapse','domcoordacc') {
             if ($offon[$confhash{$item}] ne $staticdefaults{$item}) {               if ($offon[$confhash{$item}] ne $staticdefaults{$item}) {
                 $changes{$item} = 1;                   $changes{$item} = 1; 
             }              }
         }          }
Line 13491  sub modify_authordefaults { Line 13534  sub modify_authordefaults {
     }      }
     if (ref($curr_quotas{'webdav'}) eq 'HASH') {      if (ref($curr_quotas{'webdav'}) eq 'HASH') {
         if (exists($save_quotas{'webdav'}{'_LC_adv'})) {          if (exists($save_quotas{'webdav'}{'_LC_adv'})) {
             if ($save_quotas{'webdav'}{'_LC_adv'} ne $curr_quotas{'webdav'}{'_LC_adv'}) {               if ($save_quotas{'webdav'}{'_LC_adv'} ne $curr_quotas{'webdav'}{'_LC_adv'}) {
                 $changes{'webdav_LC_adv'} = 1;                  $changes{'webdav_LC_adv'} = 1;
             }              }
         } elsif (exists($curr_quotas{'webdav'}{'_LC_adv'})) {          } elsif (exists($curr_quotas{'webdav'}{'_LC_adv'})) {
Line 13511  sub modify_authordefaults { Line 13554  sub modify_authordefaults {
         if (keys(%changes)) {          if (keys(%changes)) {
             my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);              my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
             if ((exists($changes{'authorquota'})) || (exists($changes{'webdav'})) ||              if ((exists($changes{'authorquota'})) || (exists($changes{'webdav'})) ||
                 ($changes{'webdav_LC_adv'})) {                   ($changes{'webdav_LC_adv'})) {
                 if ((exists($changes{'authorquota'})) && (ref($save_quotas{'authorquota'}) eq 'HASH')) {                  if ((exists($changes{'authorquota'})) && (ref($save_quotas{'authorquota'}) eq 'HASH')) {
                     $domdefaults{'authorquota'} = $save_quotas{'authorquota'};                      $domdefaults{'authorquota'} = $save_quotas{'authorquota'};
                 }                  }
Line 13522  sub modify_authordefaults { Line 13565  sub modify_authordefaults {
             }              }
             $resulttext = &mt('Changes made:').'<ul>';              $resulttext = &mt('Changes made:').'<ul>';
             my $authoroverride;              my $authoroverride;
             foreach my $key ('nocodemirror','domcoordacc','copyright','sourceavail') {              foreach my $key ('nocodemirror','daxecollapse','domcoordacc','copyright','sourceavail') {
                 if (exists($changes{$key})) {                  if (exists($changes{$key})) {
                     $domdefaults{$key} = $confhash{$key};                      $domdefaults{$key} = $confhash{$key};
                     my $shown;                      my $shown;
Line 13530  sub modify_authordefaults { Line 13573  sub modify_authordefaults {
                         $resulttext .= '<li>'.&mt('Defaults which can be overridden by Author').'<ul>';                          $resulttext .= '<li>'.&mt('Defaults which can be overridden by Author').'<ul>';
                         $authoroverride = 1;                          $authoroverride = 1;
                     }                      }
                     if (($key eq 'nocodemirror') || ($key eq 'domcoordacc')) {                       if (($key eq 'nocodemirror') || ($key eq 'daxecollapse') || ($key eq 'domcoordacc')) {
                         $shown = ($confhash{$key} ? &mt('Yes') : &mt('No'));                          $shown = ($confhash{$key} ? &mt('Yes') : &mt('No'));
                     } elsif ($key eq 'copyright') {                      } elsif ($key eq 'copyright') {
                         $shown = &Apache::loncommon::copyrightdescription($confhash{$key});                          $shown = &Apache::loncommon::copyrightdescription($confhash{$key});
                     } elsif ($key eq 'sourceavail') {                      } elsif ($key eq 'sourceavail') {
                         $shown = &Apache::loncommon::source_copyrightdescription($confhash{$key});                          $shown = &Apache::loncommon::source_copyrightdescription($confhash{$key});
                     }                      }
                     $resulttext .= '<li>'.&mt('[_1] set to: [_2]',$titles{$key},$shown).'</li>';                       $resulttext .= '<li>'.&mt('[_1] set to: [_2]',$titles{$key},$shown).'</li>';
                 }                  }
             }              }
             if ($authoroverride) {              if ($authoroverride) {
Line 13578  sub modify_authordefaults { Line 13621  sub modify_authordefaults {
                         }                          }
                     }                      }
                     $resulttext .= '<li>'.&mt('[_1] set to: [_2]',$titles{$key},$shown).'</li>';                      $resulttext .= '<li>'.&mt('[_1] set to: [_2]',$titles{$key},$shown).'</li>';
                 }                                                 }
             }              }
             if ($domcoordoverride) {              if ($domcoordoverride) {
                 $resulttext .= '</ul></li>';                  $resulttext .= '</ul></li>';
Line 21210  sub modify_coursedefaults { Line 21253  sub modify_coursedefaults {
                            mysqltables          => 172800,                             mysqltables          => 172800,
                            domexttool           => 1,                             domexttool           => 1,
                            crsauthor            => 1,                             crsauthor            => 1,
                              crseditors           => ['edit','xml'],
                          );                           );
     my %texoptions = (      my %texoptions = (
                         MathJax  => 'MathJax',                          MathJax  => 'MathJax',
                         mimetex  => &mt('Convert to Images'),                          mimetex  => &mt('Convert to Images'),
                         tth      => &mt('TeX to HTML'),                          tth      => &mt('TeX to HTML'),
                      );                       );
   
       my @editors = ('edit','xml','daxe');
       my %editornames = &crseditor_titles();
   
     $defaultshash{'coursedefaults'} = {};      $defaultshash{'coursedefaults'} = {};
   
     if (ref($domconfig{'coursedefaults'}) ne 'HASH') {      if (ref($domconfig{'coursedefaults'}) ne 'HASH') {
Line 21401  sub modify_coursedefaults { Line 21449  sub modify_coursedefaults {
                 $changes{'postsubmit'} = 1;                  $changes{'postsubmit'} = 1;
             }              }
         }          }
         my (%newdomexttool,%newexttool,%newcrsauthor,%olddomexttool,%oldexttool,%oldcrsauthor);          my (%newdomexttool,%newexttool,%newcrsauthor,%olddomexttool,%oldexttool,%oldcrsauthor,
               %posscrseditors);
         map { $newdomexttool{$_} = 1; } &Apache::loncommon::get_env_multiple('form.domexttool');          map { $newdomexttool{$_} = 1; } &Apache::loncommon::get_env_multiple('form.domexttool');
         map { $newexttool{$_} = 1; } &Apache::loncommon::get_env_multiple('form.exttool');          map { $newexttool{$_} = 1; } &Apache::loncommon::get_env_multiple('form.exttool');
         map { $newcrsauthor{$_} = 1; } &Apache::loncommon::get_env_multiple('form.crsauthor');          map { $newcrsauthor{$_} = 1; } &Apache::loncommon::get_env_multiple('form.crsauthor');
           map { $posscrseditors{$_} = 1; } &Apache::loncommon::get_env_multiple('form.crseditors');
         if (ref($domconfig{'coursedefaults'}{'domexttool'}) eq 'HASH') {          if (ref($domconfig{'coursedefaults'}{'domexttool'}) eq 'HASH') {
             %olddomexttool = %{$domconfig{'coursedefaults'}{'domexttool'}};              %olddomexttool = %{$domconfig{'coursedefaults'}{'domexttool'}};
         } else {          } else {
Line 21438  sub modify_coursedefaults { Line 21488  sub modify_coursedefaults {
                }                 }
             }              }
         }          }
           my @newcrseditors = ();
           foreach my $editor (@editors) {
               if ($posscrseditors{$editor}) {
                   push(@newcrseditors,$editor);
               }
           }
           if (ref($domconfig{'coursedefaults'}{'crseditors'}) eq 'ARRAY') {
               my @diffs =
                   &Apache::loncommon::compare_arrays($domconfig{'coursedefaults'}{'crseditors'},
                                                      \@newcrseditors);
               if (@diffs) {
                   $changes{'crseditors'} = 1; 
               }
           } else {
               my @diffs =
                   &Apache::loncommon::compare_arrays($staticdefaults{'crseditors'},
                                                      \@newcrseditors);
               unless (@diffs == 0) {
                   $changes{'crseditors'} = 1;
               }       
           }
         foreach my $type (@types) {          foreach my $type (@types) {
             unless ($newdomexttool{$type}) {              unless ($newdomexttool{$type}) {
                 $newdomexttool{$type} = 0;                  $newdomexttool{$type} = 0;
Line 21461  sub modify_coursedefaults { Line 21532  sub modify_coursedefaults {
         $defaultshash{'coursedefaults'}{'domexttool'} = \%newdomexttool;          $defaultshash{'coursedefaults'}{'domexttool'} = \%newdomexttool;
         $defaultshash{'coursedefaults'}{'exttool'} = \%newexttool;          $defaultshash{'coursedefaults'}{'exttool'} = \%newexttool;
         $defaultshash{'coursedefaults'}{'crsauthor'} = \%newcrsauthor;          $defaultshash{'coursedefaults'}{'crsauthor'} = \%newcrsauthor;
           $defaultshash{'coursedefaults'}{'crseditors'} = \@newcrseditors;
     }      }
     my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash,      my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash,
                                              $dom);                                               $dom);
Line 21544  sub modify_coursedefaults { Line 21616  sub modify_coursedefaults {
                         }                          }
                     }                      }
                 }                  }
                   if ($changes{'crseditors'}) {
                       if (ref($defaultshash{'coursedefaults'}{'crseditors'}) eq 'ARRAY') {
                           $domdefaults{'crseditors'}=join(',',@{$defaultshash{'coursedefaults'}{'crseditors'}});
                       }
                   }
                 my $cachetime = 24*60*60;                  my $cachetime = 24*60*60;
                 &Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime);                  &Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime);
                 if (ref($lastactref) eq 'HASH') {                  if (ref($lastactref) eq 'HASH') {
Line 21723  sub modify_coursedefaults { Line 21800  sub modify_coursedefaults {
                     } else {                      } else {
                         $resulttext .= '<li>'.$status{$item}{'default'}.'</li>';                          $resulttext .= '<li>'.$status{$item}{'default'}.'</li>';
                     }                      }
                   } elsif ($item eq 'crseditors') {
                       if (ref($defaultshash{'coursedefaults'}{$item}) eq 'ARRAY') {
                           my $shown;
                           if (@{$defaultshash{'coursedefaults'}{$item}}) {
                               $shown = join(', ', map { $editornames{$_} } @{$defaultshash{'coursedefaults'}{$item}});
                           } else {
                               $shown = &mt('None');
                           }
                           $resulttext .= '<li>'.&mt('Available editors for course/community resources: [_1]',$shown).'</li>';
                       }
                 }                  }
             }              }
             $resulttext .= '</ul>';              $resulttext .= '</ul>';

Removed from v.1.434  
changed lines
  Added in v.1.438


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>