Diff for /loncom/interface/domainprefs.pm between versions 1.165 and 1.166

version 1.165, 2012/08/25 04:34:44 version 1.166, 2012/08/25 21:48:12
Line 353  sub handler { Line 353  sub handler {
         'helpsettings' =>          'helpsettings' =>
                  {text   => 'Help page settings',                   {text   => 'Help page settings',
                   help   => 'Domain_Configuration_Help_Settings',                    help   => 'Domain_Configuration_Help_Settings',
                   header => [{col1 => 'Authenticated Help Settings',                    header => [{col1 => 'Help Settings (logged-in users)',
                               col2 => ''},                                col2 => 'Value'},
                              {col1 => 'Unauthenticated Help Settings',                               {col1 => 'Help Settings (before log-in)',
                               col2 => ''}],                                col2 => 'Value'}],
                  },                   },
         'coursedefaults' =>           'coursedefaults' => 
                  {text => 'Course/Community defaults',                   {text => 'Course/Community defaults',
Line 533  sub print_config_box { Line 533  sub print_config_box {
     if ($numheaders > 1) {      if ($numheaders > 1) {
         my $colspan = '';          my $colspan = '';
         my $rightcolspan = '';          my $rightcolspan = '';
         if (($action eq 'rolecolors') || ($action eq 'coursecategories') || ($action eq 'helpsettings')) {          if (($action eq 'rolecolors') || ($action eq 'coursecategories')) {
             $colspan = ' colspan="2"';              $colspan = ' colspan="2"';
         }          }
         if ($action eq 'usersessions') {          if ($action eq 'usersessions') {
Line 2263  sub print_contacts { Line 2263  sub print_contacts {
 }  }
   
 sub print_helpsettings {  sub print_helpsettings {
       my ($position,$dom,$confname,$settings,$rowtotal) = @_;
       my ($css_class,$datatable,$itemcount);
       my $switchserver = &check_switchserver($dom,$confname);
       $itemcount = 1;
       if ($position eq 'top') {
           my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles,$align);
           $choices{'submitbugs'} = &mt('Display link to: [_1]?',
                                        &Apache::loncommon::modal_link('http://bugs.loncapa.org',
                                        &mt('LON-CAPA bug tracker'),600,500));
           %defaultchecked = ('submitbugs' => 'on');
           @toggles = ('submitbugs',);
           $align = 'LC_left_item';
   
  my ($position,$dom,$confname,$settings,$rowtotal) = @_;          ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
  my ($css_class,$datatable);                                                       \%choices,$itemcount);
       } else {
  my $switchserver = &check_switchserver($dom,$confname);          $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
           $datatable .= '<tr'.$css_class.'>';
  my $itemcount = 1;          my $url = '/adm/loginproblems.html'; 
           my $type = 'default';
  if ($position eq 'top') {          my %lt = &Apache::lonlocal::texthash (
                        del     => 'Delete?',
  my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles);                       rep     => 'Replace:',
                        upl     => 'Upload:',
  %choices =                       default => 'Default',
  &Apache::lonlocal::texthash (                       custom  => 'Custom', 
  submitbugs => 'Display &quot;Submit a bug&quot; link?',                                               ); 
  );          if (ref($settings) eq 'HASH') {
               if (ref($settings->{'loginhelpurl'}) eq 'HASH') {
  %defaultchecked = ('submitbugs' => 'on');  
               } elsif ($settings->{'loginhelpurl'} ne '') {
  @toggles = ('submitbugs',);                  $type = 'custom';
                   $url = $settings->{'loginhelpurl'}.'?inhibitmenu=yes';
  foreach my $item (@toggles) {              }
  if ($defaultchecked{$item} eq 'on') {           }
  $checkedon{$item} = ' checked="checked" ';          $datatable .= '<td class="LC_left_item"><span class="LC_nobreak">'.
  $checkedoff{$item} = ' ';                        &mt('Log-in help page currently in use: [_1]',
  } elsif ($defaultchecked{$item} eq 'off') {                            &Apache::loncommon::modal_link($url,$lt{$type},600,500)).
  $checkedoff{$item} = ' checked="checked" ';                        '</span></td>'."\n".
  $checkedon{$item} = ' ';                        '<td class="LC_left_item">';
  }          if ($type eq 'custom') {
  }              $datatable .= '<span class="LC_nobreak"><label>'.
                             '<input type="checkbox" name="loginhelpurl_del" value="1" />'.$lt{'del'}. 
  if (ref($settings) eq 'HASH') {                            '</label>&nbsp;'.$lt{'rep'}.'</span>';
  foreach my $item (@toggles) {  
  if ($settings->{$item} eq '1') {  
  $checkedon{$item} =  ' checked="checked" ';  
  $checkedoff{$item} = ' ';  
  } elsif ($settings->{$item} eq '0') {  
  $checkedoff{$item} =  ' checked="checked" ';  
  $checkedon{$item} = ' ';  
  }  
  }  
  }  
   
  foreach my $item (@toggles) {  
  $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';  
  $datatable .=    
  '<tr'.$css_class.'>  
  <td><span class="LC_nobreak">'.$choices{$item}.'</span></td>  
  <td><span class="LC_nobreak">&nbsp;</span></td>  
  <td class="LC_right_item"><span class="LC_nobreak">  
  <label><input type="radio" name="'.$item.'" '.$checkedon{$item}.' value="1" />'.&mt('Yes').'</label>&nbsp;  
  <label><input type="radio" name="'.$item.'" '.$checkedoff{$item}.' value="0" />'.&mt('No').'</label>'.  
  '</span></td>'.  
  '</tr>';  
  $itemcount ++;  
  }  
        
      } else {  
        
       $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';  
        
       $datatable .= '<tr'.$css_class.'>';  
        
       if (ref($settings) eq 'HASH') {  
  if ($settings->{'loginhelpurl'} ne '') {  
  my($directory, $filename) = $settings->{'loginhelpurl'} =~ m/(.*\/)(.*)$/;  
  $datatable .= '<td width="33%"><span class="LC_left_item"><label><a href="'.$settings->{'loginhelpurl'}.'" target="_blank">'.&mt('Custom Login Page Help File In Use').'</a></label></span></td>';  
  $datatable .= '<td width="33%"><span class="LC_right_item"><label><input type="checkbox" name="loginhelpurl_del" value="1" />'.&mt('Delete?').'</label></span></td>'  
  } else {  
  $datatable .= '<td width="33%"><span class="LC_left_item"><label>'.&mt('Default Login Page Help File In Use').'</label></span></td>';  
  $datatable .= '<td width="33%"><span class="LC_right_item">&nbsp;</span></td>';  
  }  
  } else {  
  $datatable .= '<td><span class="LC_left_item">&nbsp;</span></td>';  
  $datatable .= '<td><span class="LC_right_item">&nbsp;</span></td>';  
  }  
      
       $datatable .= '<td width="33%"><span class="LC_right_item">';  
       if ($switchserver) {  
             $datatable .= &mt('Upload to library server: [_1]',$switchserver);  
         } else {          } else {
         $datatable .= &mt('Upload Custom Login Page Help File:');              $datatable .= $lt{'upl'};
             $datatable .='<input type="file" name="loginhelpurl" />';  
         }          }
         $datatable .= '</span></td></tr>';          $datatable .='<br />';
                   if ($switchserver) {
      }              $datatable .= &mt('Upload to library server: [_1]',$switchserver);
      return $datatable;          } else {
               $datatable .= '<input type="file" name="loginhelpurl" />';
           } 
           $datatable .= '</td></tr>';
       }
       return $datatable;
 }  }
   
   
 sub radiobutton_prefs {  sub radiobutton_prefs {
     my ($settings,$toggles,$defaultchecked,$choices,$itemcount) = @_;      my ($settings,$toggles,$defaultchecked,$choices,$itemcount) = @_;
     return unless ((ref($toggles) eq 'ARRAY') && (ref($defaultchecked) eq 'HASH') &&      return unless ((ref($toggles) eq 'ARRAY') && (ref($defaultchecked) eq 'HASH') &&
                    (ref($choices) eq 'HASH'));                     (ref($choices) eq 'HASH'));
   
     my (%checkedon,%checkedoff,$datatable,$css_class);      my (%checkedon,%checkedoff,$datatable,$css_class,$cell_colspan);
   
     foreach my $item (@{$toggles}) {      foreach my $item (@{$toggles}) {
         if ($defaultchecked->{$item} eq 'on') {          if ($defaultchecked->{$item} eq 'on') {
Line 7440  sub modify_serverstatuses { Line 7407  sub modify_serverstatuses {
   
 sub modify_helpsettings {  sub modify_helpsettings {
     my ($r,$dom,$confname,%domconfig) = @_;      my ($r,$dom,$confname,%domconfig) = @_;
   my ($resulttext,$errors,%changes,%helphash);      my ($resulttext,$errors,%changes,%helphash);
        my $customhelpfile = $env{'form.loginhelpurl.filename'};
   my $customhelpfile  = $env{'form.loginhelpurl.filename'};      my $defaulthelpfile = '/adm/loginproblems.html';
     my $defaulthelpfile = 'defaulthelp.html';      my $defaulttext = &mt('Default in use');
   my $servadm = $r->dir_config('lonAdmEMail');      my $servadm = $r->dir_config('lonAdmEMail');
     my ($configuserok,$author_ok,$switchserver) =       my ($configuserok,$author_ok,$switchserver) = &config_check($dom,$confname,$servadm);
         &config_check($dom,$confname,$servadm);      my %defaultchecked = ('submitbugs' => 'on');
        my @offon = ('off','on');
   my %defaultchecked = ('submitbugs' => 'on');      my %title = (
   my @offon = ('off','on');                      submitbugs    => 'Display link for users to submit a bug', 
     my %title = ( submitbugs     => 'Display link for users to submit a bug',                       loginhelpurl  => 'Unauthenticated login help page set to custom file'
      loginhelpurl  => 'Unauthenticated login help page set to custom file');                  );
        
     my @toggles = ('submitbugs');      my @toggles = ('submitbugs');
   
     $helphash{'helpsettings'} = {};      $helphash{'helpsettings'} = {};
       
     if (ref($domconfig{'helpsettings'}) ne 'HASH') {      if (ref($domconfig{'helpsettings'}) ne 'HASH') {
         if ($domconfig{'helpsettings'} eq '') {          if ($domconfig{'helpsettings'} eq '') {
             $domconfig{'helpsettings'} = {};              $domconfig{'helpsettings'} = {};
         }          }
     }      }
       
     if (ref($domconfig{'helpsettings'}) eq 'HASH') {      if (ref($domconfig{'helpsettings'}) eq 'HASH') {
      
         foreach my $item (@toggles) {          foreach my $item (@toggles) {
                      if ($defaultchecked{$item} eq 'on') { 
  if ($defaultchecked{$item} eq 'on') {                   if ($domconfig{'helpsettings'}{$item} eq '') {
  if (($domconfig{'helpsettings'}{$item} eq '') &&                      if ($env{'form.'.$item} eq '0') {
  ($env{'form.'.$item} eq '0')) {                          $changes{$item} = 1;
  $changes{$item} = 1;                      }
  } elsif ($domconfig{'helpsettings'}{$item} ne $env{'form.'.$item}) {                  } elsif ($domconfig{'helpsettings'}{$item} ne $env{'form.'.$item}) {
  $changes{$item} = 1;                      $changes{$item} = 1;
  }                  }
  } elsif ($defaultchecked{$item} eq 'off') {              } elsif ($defaultchecked{$item} eq 'off') {
  if (($domconfig{'helpsettings'}{$item} eq '') &&                  if ($domconfig{'helpsettings'}{$item} eq '') {
  ($env{'form.'.$item} eq '1')) {                      if ($env{'form.'.$item} eq '1') {
  $changes{$item} = 1;                          $changes{$item} = 1;
  } elsif ($domconfig{'helpsettings'}{$item} ne $env{'form.'.$item}) {                      }
  $changes{$item} = 1;                  } elsif ($domconfig{'helpsettings'}{$item} ne $env{'form.'.$item}) {
  }                      $changes{$item} = 1;
  }                  }
  $helphash{'helpsettings'}{$item} = $env{'form.'.$item};              }
  }              if (($env{'form.'.$item} eq '0') || ($env{'form.'.$item} eq '1')) { 
                   $helphash{'helpsettings'}{$item} = $env{'form.'.$item};
  if ($customhelpfile ne '') {              }
  my $error;          }
  if ($configuserok eq 'ok') {          if ($customhelpfile ne '') {
  if ($switchserver) {              my $error;
  $error = &mt("Upload of custom help file is not permitted to this server: [_1]",$switchserver);              if ($configuserok eq 'ok') {
  } else {                  if ($switchserver) {
  if ($author_ok eq 'ok') {                      $error = &mt("Upload of custom help file is not permitted to this server: [_1]",$switchserver);
  my ($result,$loginhelpurl) =                  } else {
  &publishlogo($r,'upload','loginhelpurl',$dom,                      if ($author_ok eq 'ok') {
  $confname,'help','','',$customhelpfile);                          my ($result,$loginhelpurl) = &publishlogo($r,'upload','loginhelpurl',$dom,
  if ($result eq 'ok') {                                                                    $confname,'help','','',$customhelpfile);
  $helphash{'helpsettings'}{'loginhelpurl'} = $loginhelpurl;                          if ($result eq 'ok') {
  $changes{'loginhelpurl'} = 1;                              $helphash{'helpsettings'}{'loginhelpurl'} = $loginhelpurl;
  } else {                              $changes{'loginhelpurl'} = 1;
  $error = &mt("Upload of [_1] failed because an error occurred publishing the file in RES space. Error was: [_2].",$customhelpfile,$result);                          } else {
  }                              $error = &mt("Upload of [_1] failed because an error occurred publishing the file in RES space. Error was: [_2].",$customhelpfile,$result);
  } else {                          }
  $error = &mt("Upload of [_1] failed because an author role could not be assigned to a Domain Configuration user ([_2]) in domain: [_3].  Error was: [_4].",$customhelpfile,$confname,$dom,$author_ok);                      } else {
  }                          $error = &mt("Upload of [_1] failed because an author role could not be assigned to a Domain Configuration user ([_2]) in domain: [_3].  Error was: [_4].",$customhelpfile,$confname,$dom,$author_ok);
  }                      }
  } else {                  }
  $error = &mt("Upload of [_1] failed because a Domain Configuration user ([_2]) could not be created in domain: [_3].  Error was: [_4].",$customhelpfile,$confname,$dom,$configuserok);              } else {
  }                  $error = &mt("Upload of [_1] failed because a Domain Configuration user ([_2]) could not be created in domain: [_3].  Error was: [_4].",$customhelpfile,$confname,$dom,$configuserok);
  if ($error) {              }
  &Apache::lonnet::logthis($error);              if ($error) {
  $errors .= '<li><span class="LC_error">'.$error.'</span></li>';                  &Apache::lonnet::logthis($error);
  }                  $errors .= '<li><span class="LC_error">'.$error.'</span></li>';
  }              }
           }
         if ($domconfig{'helpsettings'}{'loginhelpurl'} ne '') {          if ($domconfig{'helpsettings'}{'loginhelpurl'} ne '') {
             if ($env{'form.loginhelpurl_del'}) {              if ($env{'form.loginhelpurl_del'}) {
                 $helphash{'helpsettings'}{'loginhelpurl'} = '';                  $helphash{'helpsettings'}{'loginhelpurl'} = '';
Line 7521  sub modify_helpsettings { Line 7483  sub modify_helpsettings {
             }              }
         }          }
     }      }
       
       
     my $putresult;      my $putresult;
       
     if (keys(%changes) > 0) {      if (keys(%changes) > 0) {
     $putresult = &Apache::lonnet::put_dom('configuration',\%helphash,$dom);          $putresult = &Apache::lonnet::put_dom('configuration',\%helphash,$dom);
     } else {      } else {
     $putresult = 'ok';          $putresult = 'ok';
     }      }
                                                
     if ($putresult eq 'ok') {      if ($putresult eq 'ok') {
         if (keys(%changes) > 0) {          if (keys(%changes) > 0) {
  $resulttext = &mt('Changes made:').'<ul>';              $resulttext = &mt('Changes made:').'<ul>';
  foreach my $item (sort(keys(%changes))) {              foreach my $item (sort(keys(%changes))) {
  if ($item eq 'submitbugs') {                  if ($item eq 'submitbugs') {
  $resulttext .= '<li>'.&mt("$title{$item} set to $offon[$env{'form.'.$item}]").'</li>';                      $resulttext .= '<li>'.&mt('Display link to: [_1] set to "'.$offon[$env{'form.'.$item}].'".',
  }                                                &Apache::loncommon::modal_link('http://bugs.loncapa.org',
  if ($item eq 'loginhelpurl') {                                                &mt('LON-CAPA bug tracker'),600,500)).'</li>';
  if ($helphash{'helpsettings'}{'loginhelpurl'} eq '') {                  }
                         $resulttext .= '<li>'.&mt('[_1] help file removed; [_2] file will be used for the unathorized help page in this domain.',$customhelpfile,$defaulthelpfile).'</li>';                  if ($item eq 'loginhelpurl') {
                       if ($helphash{'helpsettings'}{'loginhelpurl'} eq '') {
                           $resulttext .= '<li>'.&mt('custom log-in help file removed.').'&nbsp;'.
                                                 &Apache::loncommon::modal_link($defaulthelpfile,
                                                 $defaulttext,600,500).'</li>';
                     } else {                      } else {
                         $resulttext .= '<li>'.&mt("$title{$item} [_1]",$customhelpfile).'</li>';                          $resulttext .= '<li>'.&Apache::loncommon::modal_link(
                                                     $helphash{'helpsettings'}{'loginhelpurl'}.
                                                     '?inhibitmenu=yes',
                                                     &mt('custom log-in help file'),600,500).
                                          '</li>';
                     }                      }
  }                  }
  }              }
  $resulttext .= '</ul>';              $resulttext .= '</ul>';
  } else {          } else {
  $resulttext = &mt('No changes made to help settings');              $resulttext = &mt('No changes made to help settings');
  }          }
     } else {      } else {
         $resulttext = '<span class="LC_error">'.          $errors .= '<li><span class="LC_error">'.&mt('An error occurred storing the settings: [_1]',
     &mt('An error occurred: [_1]',$putresult).'</span>';                                                       $putresult).'</span></li>';
     }      }
     if ($errors) {      if ($errors) {
         $resulttext .= &mt('The following errors occurred: ').'<ul>'.          $resulttext .= &mt('The following errors occurred: ').'<ul>'.

Removed from v.1.165  
changed lines
  Added in v.1.166


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