Diff for /loncom/interface/lonpreferences.pm between versions 1.125.4.4 and 1.132

version 1.125.4.4, 2009/09/10 16:24:47 version 1.132, 2008/12/23 19:22:13
Line 98  sub des_decrypt { Line 98  sub des_decrypt {
   
 sub wysiwygchanger {  sub wysiwygchanger {
     my $r = shift;      my $r = shift;
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changewysiwyg',
                   text => 'Change WYSIWYG Preferences'});
       $r->print(Apache::loncommon::start_page('Change WYSIWYG Preferences'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change WYSIWYG Preferences'));
   
     my %userenv = &Apache::lonnet::get      my %userenv = &Apache::lonnet::get
         ('environment',['wysiwygeditor']);          ('environment',['wysiwygeditor']);
     my $onselect='checked="checked"';      my $onselect='checked="checked"';
Line 120  $warning Line 126  $warning
 <label><input type="radio" name="wysiwyg" value="off" $onselect /> $switchoff</label><br />  <label><input type="radio" name="wysiwyg" value="off" $onselect /> $switchoff</label><br />
 <label><input type="radio" name="wysiwyg" value="on" $offselect /> $switchon</label>  <label><input type="radio" name="wysiwyg" value="on" $offselect /> $switchon</label>
 ENDLSCREEN  ENDLSCREEN
     $r->print('<br /><input type="submit" value="'.&mt('Save').'" />');      $r->print('<br /><input type="submit" value="'.&mt('Change').'" />');
 }  }
   
   
Line 129  sub verify_and_change_wysiwyg { Line 135  sub verify_and_change_wysiwyg {
     my $newsetting=$env{'form.wysiwyg'};      my $newsetting=$env{'form.wysiwyg'};
     &Apache::lonnet::put('environment',{'wysiwygeditor' => $newsetting});      &Apache::lonnet::put('environment',{'wysiwygeditor' => $newsetting});
     &Apache::lonnet::appenv({'environment.wysiwygeditor' => $newsetting});      &Apache::lonnet::appenv({'environment.wysiwygeditor' => $newsetting});
     my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('WYSIWYG Editor').'</i>','<tt>'.&mt($newsetting).'</tt>'));  #   $r->print('<p>'.&mt('Setting WYSIWYG editor to:').' '.&mt($newsetting).'</p>');
     $message=&Apache::loncommon::confirmwrapper($message);      print_main_menu($r,'<p>'.&mt('Setting WYSIWYG editor to:').' '
     $r->print(<<ENDVCSCREEN);   .&mt($newsetting).'</p>');
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 141  ENDVCSCREEN Line 145  ENDVCSCREEN
 ################################################################  ################################################################
 sub languagechanger {  sub languagechanger {
     my $r = shift;      my $r = shift;
       
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changelanguages',
                   text => 'Change Language'});
       $r->print(Apache::loncommon::start_page('Change Language'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Language')); 
     my $user       = $env{'user.name'};      my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};      my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get      my %userenv = &Apache::lonnet::get
Line 162  sub languagechanger { Line 172  sub languagechanger {
 <input type="hidden" name="action" value="verify_and_change_languages" />  <input type="hidden" name="action" value="verify_and_change_languages" />
 <br />$pref: $selectionbox  <br />$pref: $selectionbox
 ENDLSCREEN  ENDLSCREEN
     $r->print('<br /><input type="submit" value="'.&mt('Save').'" />');      $r->print('<br /><input type="submit" value="'.&mt('Change').'" />');
 }  }
   
   
Line 177  sub verify_and_change_languages { Line 187  sub verify_and_change_languages {
     if ($newlanguage) {      if ($newlanguage) {
         &Apache::lonnet::put('environment',{'languages' => $newlanguage});          &Apache::lonnet::put('environment',{'languages' => $newlanguage});
         &Apache::lonnet::appenv({'environment.languages' => $newlanguage});          &Apache::lonnet::appenv({'environment.languages' => $newlanguage});
         $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Preferred language').'</i>','<tt>"'.$newlanguage.'"</tt>.'));          $message=&mt('Set new preferred languages to ').'<tt>"'.$newlanguage.'"</tt>.';
     } else {      } else {
         &Apache::lonnet::del('environment',['languages']);          &Apache::lonnet::del('environment',['languages']);
         &Apache::lonnet::delenv('environment.languages');          &Apache::lonnet::delenv('environment\.languages');
         $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.&mt('Preferred language').'</i>'));          $message=&mt('Reset preferred language.');
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);  
     &Apache::loncommon::flush_langs_cache($user,$domain);      &Apache::loncommon::flush_langs_cache($user,$domain);
     $r->print(<<ENDVCSCREEN);      print_main_menu($r, $message);
 $message  #    $r->print(<<ENDVCSCREEN);
 ENDVCSCREEN  #$message
   #ENDVCSCREEN
 }  }
   
 ################################################################  ################################################################
Line 195  ENDVCSCREEN Line 205  ENDVCSCREEN
 ################################################################  ################################################################
 sub texenginechanger {  sub texenginechanger {
     my $r = shift;      my $r = shift;
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changetexenginepref',
                   text => 'Change How Math Equations Are Displayed'});
       $r->print(Apache::loncommon::start_page('Change How Math Equations Are Displayed'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change How Math Equations Are Displayed'));
     my $user       = $env{'user.name'};      my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};      my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get('environment',['texengine']);      my %userenv = &Apache::lonnet::get('environment',['texengine']);
Line 204  sub texenginechanger { Line 219  sub texenginechanger {
      'tth' => 'tth (TeX to HTML)',       'tth' => 'tth (TeX to HTML)',
      #'ttm' => 'TeX to MathML',       #'ttm' => 'TeX to MathML',
      'jsMath' => 'jsMath',       'jsMath' => 'jsMath',
      'mimetex' => 'mimetex (Convert to Images)',       'mimetex' => 'mimetex (Convert to Images)'
                      'raw' => 'Raw (Screen Reader)'  
                      );                       );
     my $selectionbox=&Apache::loncommon::select_form($texengine,'texengine',      my $selectionbox=&Apache::loncommon::select_form($texengine,'texengine',
      %mathchoices);       %mathchoices);
Line 213  sub texenginechanger { Line 227  sub texenginechanger {
     my %lt=&Apache::lonlocal::texthash(      my %lt=&Apache::lonlocal::texthash(
       'headline' => 'Change Math Preferences',        'headline' => 'Change Math Preferences',
       'preftxt'  => 'Preferred method to display Math',        'preftxt'  => 'Preferred method to display Math',
       'change'   => 'Save',        'change'   => 'Change',
       'exmpl'    => 'Examples',        'exmpl'    => 'Examples',
       'jsmath'   => 'jsMath:',        'jsmath'   => 'jsMath:',
       'tth'      => 'tth (TeX to HTML):',        'tth'      => 'tth (TeX to HTML):',
       'mimetex'  => 'mimetex (Convert to Images):',        'mimetex'  => 'mimetex (Convert to Images):',
     );      );
   
     my $jsMathWarning='<p>'  
                      .'<div class="LC_warning">'  
                      .&mt("It looks like you don't have the TeX math fonts installed.")  
                      .'</div>'  
                      .'<div>'  
                      .&mt('The jsMath example on this page may not look right without them. '  
                          .'The [_1]jsMath Home Page[_2] has information on how to download the '  
                          .'needed fonts. In the meantime, jsMath will do the best it can '  
                          .'with the fonts you have, but it may not be pretty and some equations '  
                          .'may not be rendered correctly.'  
                          ,'<a href="http://www.math.union.edu/locate/jsMath/" target="_blank">'  
                          ,'</a>')  
                      .'</div>'  
                      .'</p>';  
   
     $r->print(<<ENDLSCREEN);      $r->print(<<ENDLSCREEN);
 <h2>$lt{'headline'}</h2>  <h2>$lt{'headline'}</h2>
 <form name="prefs" action="/adm/preferences" method="post">  <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_texengine" />  <input type="hidden" name="action" value="verify_and_change_texengine" />
 <p>  <p>
 $lt{'preftxt'}: $selectionbox  $lt{'preftxt'}:<br />
 <br />  $selectionbox <input type="submit" value="$lt{'change'}" />
 <input type="submit" value="$lt{'change'}" />  
 </p>  </p>
 </form>  </form>
 <br />  <br />
Line 254  $lt{'exmpl'} Line 252  $lt{'exmpl'}
 $jsMath_start  $jsMath_start
 <script type="text/javascript">  <script type="text/javascript">
 if (jsMath.nofonts == 1) {  if (jsMath.nofonts == 1) {
     document.writeln($jsMathWarning);      document.writeln
           ('<div style="padding: 10; border-style: solid; border-width:3;'
    +' border-color: #DD0000; background-color: #FFF8F8; width: 75%; text-align: left">'
    +'<small><font color="#AA0000"><b>Warning:</b> '
    +'It looks like you don\\\'t have the TeX math fonts installed. '
    +'The jsMath example on this page may not look right without them. '
    +'The <a href="http://www.math.union.edu/locate/jsMath/" target="_blank"> '
    +'jsMath Home Page</a> has information on how to download the '
    +'needed fonts.  In the meantime, jsMath will do the best it can '
    +'with the fonts you have, but it may not be pretty and some equations '
    +'may not be rendered correctly. '
    +'</font></small></div>');
 }  }
 </script>  </script>
 <iframe src="/res/adm/pages/math_example.tex?inhibitmenu=yes&texengine=jsMath" width="400" height="120"></iframe>  <iframe src="/res/adm/pages/math_example.tex?inhibitmenu=yes&texengine=jsMath" width="400" height="120"></iframe>
Line 294  sub verify_and_change_texengine { Line 303  sub verify_and_change_texengine {
     if ($newtexengine) {      if ($newtexengine) {
         &Apache::lonnet::put('environment',{'texengine' => $newtexengine});          &Apache::lonnet::put('environment',{'texengine' => $newtexengine});
         &Apache::lonnet::appenv({'environment.texengine' => $newtexengine});          &Apache::lonnet::appenv({'environment.texengine' => $newtexengine});
         $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Preferred method to display Math').'</i>','<tt>"'.$newtexengine.'"</tt>'));          $message=&mt('Set new preferred math display to ').'<tt>"'.$newtexengine.'"</tt>.';
     } else {      } else {
         &Apache::lonnet::del('environment',['texengine']);          &Apache::lonnet::del('environment',['texengine']);
         &Apache::lonnet::delenv('environment.texengine');          &Apache::lonnet::delenv('environment\.texengine');
         $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.&mt('Preferred method to display Math').'</i>'));          $message=&mt('Reset preferred math display.');
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);  
     $r->print(<<ENDVCSCREEN);  
 $message  #    $r->print(<<ENDVCSCREEN);
 ENDVCSCREEN  #$message
   #ENDVCSCREEN
       print_main_menu($r, $message);
 }  }
   
 ################################################################  ################################################################
Line 317  sub rolesprefchanger { Line 328  sub rolesprefchanger {
     my $domain     = $env{'user.domain'};      my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get      my %userenv = &Apache::lonnet::get
         ('environment',['recentroles','recentrolesn']);          ('environment',['recentroles','recentrolesn']);
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changerolespref',
                   text => 'Change '.$role.' Page Pref'});
       $r->print(Apache::loncommon::start_page('Change '.$role.' Page Pref'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change '.$role.' Page Pref'));
     my $hotlist_flag=$userenv{'recentroles'};      my $hotlist_flag=$userenv{'recentroles'};
     my $hotlist_n=$userenv{'recentrolesn'};      my $hotlist_n=$userenv{'recentrolesn'};
     my $checked;      my $checked;
     if ($hotlist_flag) {      if ($hotlist_flag) {
  $checked = ' checked="checked"';   $checked = 'checked="checked"';
     }      }
           
     if (!$hotlist_n) { $hotlist_n=3; }      if (!$hotlist_n) { $hotlist_n=3; }
Line 356  sub rolesprefchanger { Line 372  sub rolesprefchanger {
             my $checked = "";              my $checked = "";
             my $value = $recent_roles{$role_key};              my $value = $recent_roles{$role_key};
             if ($frozen_roles{$role_key}) {              if ($frozen_roles{$role_key}) {
                 $checked = ' checked="checked"';                  $checked = "checked=\"checked\"";
             }              }
     $count++;      $count++;
             $roles_check_list .=              $roles_check_list .=
  &Apache::loncommon::start_data_table_row().   &Apache::loncommon::start_data_table_row().
  '<td class="LC_table_cell_checkbox">'.   '<td class="LC_table_cell_checkbox">'.
  "<input type=\"checkbox\"$checked name=\"freezeroles\"".   "<input type=\"checkbox\" $checked name=\"freezeroles\"".
  " id=\"freezeroles$count\" value=\"$role_key\" /></td>".   " id=\"freezeroles$count\" value=\"$role_key\" /></td>".
  "<td><label for=\"freezeroles$count\">".   "<td><label for=\"freezeroles$count\">".
  "$role_text{$role_key}</label></td>".   "$role_text{$role_key}</label></td>".
Line 374  sub rolesprefchanger { Line 390  sub rolesprefchanger {
     $r->print('      $r->print('
 <p>'.&mt('Some LON-CAPA users have a long list of '.$lc_role.'s. The Recent '.$role.'s Hotlist feature keeps track of the last N '.$lc_role.'s which have been visited and places a table of these at the top of the '.$lc_role.'s page. People with very few '.$lc_role.'s should leave this feature disabled.').'  <p>'.&mt('Some LON-CAPA users have a long list of '.$lc_role.'s. The Recent '.$role.'s Hotlist feature keeps track of the last N '.$lc_role.'s which have been visited and places a table of these at the top of the '.$lc_role.'s page. People with very few '.$lc_role.'s should leave this feature disabled.').'
 </p>  </p>
 <form name="prefs" action="/adm/preferences" method="post">  <form name="prefs" action="/adm/preferences" method="POST">
 <input type="hidden" name="action" value="verify_and_change_rolespref" />  <input type="hidden" name="action" value="verify_and_change_rolespref" />
 <br /><label>'.&mt('Enable Recent '.$role.'s Hotlist:').'  <br /><label>'.&mt('Enable Recent '.$role.'s Hotlist:').'
 <input type="checkbox"'.$checked.' name="recentroles" value="true" /></label>  <input type="checkbox" '.$checked.' name="recentroles" value="true" /></label>
 <br />'.&mt('Number of '.$role.'s in Hotlist:').'  <br />'.&mt('Number of '.$role.'s in Hotlist:').'
 <select name="recentrolesn" size="1">  <select name="recentrolesn" size="1">
 '.$options.'  '.$options.'
Line 386  sub rolesprefchanger { Line 402  sub rolesprefchanger {
 </p>  </p>
 '.$roles_check_list.'  '.$roles_check_list.'
 <br />  <br />
 <input type="submit" value="'.&mt('Save').'" />  <input type="submit" value="'.&mt('Change').'" />
 </form>');  </form>');
 }  }
   
Line 435  sub verify_and_change_rolespref { Line 451  sub verify_and_change_rolespref {
         $message=&mt('Recent '.$role.'s Hotlist is Enabled');          $message=&mt('Recent '.$role.'s Hotlist is Enabled');
     } else {      } else {
         &Apache::lonnet::del('environment',['recentroles']);          &Apache::lonnet::del('environment',['recentroles']);
         &Apache::lonnet::delenv('environment.recentroles');          &Apache::lonnet::delenv('environment\.recentroles');
         $message=&mt('Recent '.$role.'s Hotlist is Disabled');          $message=&mt('Recent '.$role.'s Hotlist is Disabled');
     }      }
     if ($hotlist_n) {      if ($hotlist_n) {
Line 465  sub verify_and_change_rolespref { Line 481  sub verify_and_change_rolespref {
 # Unset any roles that were previously frozen but aren't in list  # Unset any roles that were previously frozen but aren't in list
     foreach my $role_key (sort(keys(%recent_roles))) {      foreach my $role_key (sort(keys(%recent_roles))) {
         if (($frozen_roles{$role_key}) && (!exists($freeze{$role_key}))) {          if (($frozen_roles{$role_key}) && (!exists($freeze{$role_key}))) {
             $message .= "<br />".&Apache::lonhtmlcommon::confirm_success(&mt('Unfreezing '.$role.': [_1]','<i>'.$role_text{$role_key}.'</i>'));      $message .= "<br />".&mt('Unfreezing '.$role.': [_1]',$role_text{$role_key})."\n";
     &Apache::lonhtmlcommon::store_recent('roles',$role_key,' ',0);      &Apache::lonhtmlcommon::store_recent('roles',$role_key,' ',0);
         }          }
     }      }
Line 473  sub verify_and_change_rolespref { Line 489  sub verify_and_change_rolespref {
 # Freeze selected roles  # Freeze selected roles
     foreach my $role_key (@freeze_list) {      foreach my $role_key (@freeze_list) {
         if (!$frozen_roles{$role_key}) {          if (!$frozen_roles{$role_key}) {
              $message .= "<br />".               $message .= "<br />".&mt('Freezing '.$role.': [_1]',$role_text{$role_key})."\n";
              &Apache::lonhtmlcommon::confirm_success(&mt('Freezing '.$role.': [_1]','<i>'.$role_text{$role_key}.'</i>'));  
              &Apache::lonhtmlcommon::store_recent('roles',               &Apache::lonhtmlcommon::store_recent('roles',
                                           $role_key,' ',1);                                            $role_key,' ',1);
         }          }
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);      $message .= "<hr /><br />\n";
     $r->print(<<ENDRPSCREEN);  
 $message  #    $r->print(<<ENDRPSCREEN);
 ENDRPSCREEN  #$message
   #ENDRPSCREEN
       print_main_menu($r, $message);
 }  }
   
   
Line 498  sub screennamechanger { Line 515  sub screennamechanger {
         ('environment',['screenname','nickname']);          ('environment',['screenname','nickname']);
     my $screenname=$userenv{'screenname'};      my $screenname=$userenv{'screenname'};
     my $nickname=$userenv{'nickname'};      my $nickname=$userenv{'nickname'};
     $r->print('<p>'      my %lt = &Apache::lonlocal::texthash(
              .&mt('Change the name that is displayed in your posts.')                                            text_screenname  => 'New screenname (shown if you post anonymously):',
              .'</p>'                                            text_nickname  => 'New nickname (shown if you post non-anonymously):',
     );                                            text_submit => 'Change',
     $r->print('<form name="prefs" action="/adm/preferences" method="post">'                                          );
              .'<input type="hidden" name="action" value="verify_and_change_screenname" />'      Apache::lonhtmlcommon::add_breadcrumb(
              .&Apache::lonhtmlcommon::start_pick_box()   { href => '/adm/preferences?action=changescreenname',
              .&Apache::lonhtmlcommon::row_title(&mt('New screenname (shown if you post anonymously)'))                    text => 'Change Screen Name'});
              .'<input type="text" size="20" value="'.$screenname.'" name="screenname" />'      $r->print(Apache::loncommon::start_page('Change Screen Name'));
              .&Apache::lonhtmlcommon::row_closure()      $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Screen Name'));
              .&Apache::lonhtmlcommon::row_title(&mt('New nickname (shown if you post non-anonymously)'))      $r->print(<<ENDSCREEN);
              .'<input type="text" size="20" value="'.$nickname.'" name="nickname" />'  <form name="prefs" action="/adm/preferences" method="post">
              .&Apache::lonhtmlcommon::row_closure()  <input type="hidden" name="action" value="verify_and_change_screenname" />
              .&Apache::lonhtmlcommon::row_title()  <br />$lt{'text_screenname'}
              .'<input type="submit" value="'.&mt('Save').'" />'  <input type="text" size="20" value="$screenname" name="screenname" />
              .&Apache::lonhtmlcommon::row_closure(1)  <br />$lt{'text_nickname'}
              .&Apache::lonhtmlcommon::end_pick_box()  <input type="text" size="20" value="$nickname" name="nickname" />
              .'</form>'  <br />
     );  <input type="submit" value="$lt{'text_submit'}" />
   </form>
   ENDSCREEN
 }  }
   
 sub verify_and_change_screenname {  sub verify_and_change_screenname {
Line 530  sub verify_and_change_screenname { Line 549  sub verify_and_change_screenname {
     if ($newscreen) {      if ($newscreen) {
         &Apache::lonnet::put('environment',{'screenname' => $newscreen});          &Apache::lonnet::put('environment',{'screenname' => $newscreen});
         &Apache::lonnet::appenv({'environment.screenname' => $newscreen});          &Apache::lonnet::appenv({'environment.screenname' => $newscreen});
         $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Screenname').'</i>','<tt>"'.$newscreen.'"</tt>'));          $message=&mt('Set new screenname to ').'<tt>"'.$newscreen.'."</tt>.';
     } else {      } else {
         &Apache::lonnet::del('environment',['screenname']);          &Apache::lonnet::del('environment',['screenname']);
         &Apache::lonnet::delenv('environment.screenname');          &Apache::lonnet::delenv('environment\.screenname');
         $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.&mt('Screenname').'</i>'));          $message=&mt('Reset screenname.');
     }      }
 # Nickname  # Nickname
     $message.='<br />';      $message.='<br />';
Line 543  sub verify_and_change_screenname { Line 562  sub verify_and_change_screenname {
     if ($newscreen) {      if ($newscreen) {
         &Apache::lonnet::put('environment',{'nickname' => $newscreen});          &Apache::lonnet::put('environment',{'nickname' => $newscreen});
         &Apache::lonnet::appenv({'environment.nickname' => $newscreen});          &Apache::lonnet::appenv({'environment.nickname' => $newscreen});
         $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Nickname').'</i>','<tt>"'.$newscreen.'"</tt>'));          $message.=&mt('Set new nickname to ').'<tt>"'.$newscreen.'"</tt>.';
     } else {      } else {
         &Apache::lonnet::del('environment',['nickname']);          &Apache::lonnet::del('environment',['nickname']);
         &Apache::lonnet::delenv('environment.nickname');          &Apache::lonnet::delenv('environment\.nickname');
         $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.&mt('Nickname').'</i>'));          $message.=&mt('Reset nickname.');
     }      }
     &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);      &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);
     $message=&Apache::loncommon::confirmwrapper($message);  #    $r->print(<<ENDVCSCREEN);
     $r->print(<<ENDVCSCREEN);  #$message
 $message  #ENDVCSCREEN
 ENDVCSCREEN      print_main_menu($r, $message);
 }  }
   
 ################################################################  ################################################################
Line 561  ENDVCSCREEN Line 580  ENDVCSCREEN
 ################################################################  ################################################################
 sub iconchanger {  sub iconchanger {
     my $r = shift;      my $r = shift;
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changeicons',
                   text => 'Change Main Menu'});
       $r->print(Apache::loncommon::start_page('Change Main Menu'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Main Menu'));
   
     my $user       = $env{'user.name'};      my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};      my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get      my %userenv = &Apache::lonnet::get
Line 579  sub iconchanger { Line 604  sub iconchanger {
     my $useicons=&mt('Use icons and text');      my $useicons=&mt('Use icons and text');
     my $usebuttons=&mt('Use buttons and text');      my $usebuttons=&mt('Use buttons and text');
     my $useicononly=&mt('Use icons only');      my $useicononly=&mt('Use icons only');
     my $change=&mt('Save');      my $change=&mt('Change');
     $r->print(<<ENDSCREEN);      $r->print(<<ENDSCREEN);
 <form name="prefs" action="/adm/preferences" method="post">  <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_icons" />  <input type="hidden" name="action" value="verify_and_change_icons" />
Line 599  sub verify_and_change_icons { Line 624  sub verify_and_change_icons {
   
     &Apache::lonnet::put('environment',{'icons' => $newicons});      &Apache::lonnet::put('environment',{'icons' => $newicons});
     &Apache::lonnet::appenv({'environment.icons' => $newicons});      &Apache::lonnet::appenv({'environment.icons' => $newicons});
     my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Menu Display').'</i>','<tt>'.$newicons.'</tt>'));  #    $r->print(&mt('Set menu mode to [_1].',$newicons));
     $message=&Apache::loncommon::confirmwrapper($message);      print_main_menu($r, &mt('Set menu mode to [_1].',$newicons));
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 612  ENDVCSCREEN Line 634  ENDVCSCREEN
   
 sub clickerchanger {  sub clickerchanger {
     my $r = shift;      my $r = shift;
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changeclicker',
                   text => 'Register Clicker'});
       $r->print(Apache::loncommon::start_page('Register Clicker'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Register Clicker'));
     my $user       = $env{'user.name'};      my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};      my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get      my %userenv = &Apache::lonnet::get
Line 624  sub clickerchanger { Line 651  sub clickerchanger {
     $r->print(<<ENDSCREEN);      $r->print(<<ENDSCREEN);
 <form name="prefs" action="/adm/preferences" method="post">  <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_clicker" />  <input type="hidden" name="action" value="verify_and_change_clicker" />
 <label>$helplink<br /><br />$text<br />  <label>$text $helplink<br />
 <textarea name="clickers" rows="5" cols="20">$clickers</textarea>  <textarea name="clickers" rows="5" cols="20">$clickers</textarea>
 </label>  </label>
 <br />  
 <input type="submit" value="$change" />  <input type="submit" value="$change" />
 </form>  </form>
 ENDSCREEN  ENDSCREEN
Line 646  sub verify_and_change_clicker { Line 672  sub verify_and_change_clicker {
     $newclickers=~s/\,$//;      $newclickers=~s/\,$//;
     &Apache::lonnet::put('environment',{'clickers' => $newclickers});      &Apache::lonnet::put('environment',{'clickers' => $newclickers});
     &Apache::lonnet::appenv({'environment.clickers' => $newclickers});      &Apache::lonnet::appenv({'environment.clickers' => $newclickers});
     my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Registering clickers: [_1]',$newclickers));  #    $r->print(&mt('Registering clickers: [_1]',$newclickers));
     $message=&Apache::loncommon::confirmwrapper($message);      print_main_menu($r, &mt('Registering clickers: [_1]',$newclickers));
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 659  ENDVCSCREEN Line 682  ENDVCSCREEN
   
 sub domcoordchanger {  sub domcoordchanger {
     my $r = shift;      my $r = shift;
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changedomcoord',
                   text => 'Restrict Domain Coordinator Access'});
       $r->print(Apache::loncommon::start_page('Restrict Domain Coordinator Access'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Restrict Domain Coordinator Access'));
     my $user       = $env{'user.name'};      my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};      my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get      my %userenv = &Apache::lonnet::get
         ('environment',['domcoord.author']);          ('environment',['domcoord.author']);
     my $constchecked='';      my $constchecked='';
     if ($userenv{'domcoord.author'} eq 'blocked') {      if ($userenv{'domcoord.author'} eq 'blocked') {
        $constchecked=' checked="checked"';         $constchecked='checked="checked"';
     }      }
     my $text=&mt('By default, the Domain Coordinator can enter your construction space.');      my $text=&mt('By default, the Domain Coordinator can enter your construction space.');
     my $construction=&mt('Block access to construction space');      my $construction=&mt('Block access to construction space');
     my $change=&mt('Save');      my $change=&mt('Change');
     $r->print(<<ENDSCREEN);      $r->print(<<ENDSCREEN);
 <form name="prefs" action="/adm/preferences" method="post">  <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_domcoord" />  <input type="hidden" name="action" value="verify_and_change_domcoord" />
 $text<br />  $text<br />
 <label><input type="checkbox" name="construction"$constchecked />$construction</label><br />  <label><input type="checkbox" name="construction" $constchecked />$construction</label><br />
 <input type="submit" value="$change" />  <input type="submit" value="$change" />
 </form>  </form>
 ENDSCREEN  ENDSCREEN
Line 688  sub verify_and_change_domcoord { Line 716  sub verify_and_change_domcoord {
     if ($env{'form.construction'}) { $domcoord{'domcoord.author'}='blocked'; }      if ($env{'form.construction'}) { $domcoord{'domcoord.author'}='blocked'; }
     &Apache::lonnet::put('environment',\%domcoord);      &Apache::lonnet::put('environment',\%domcoord);
     &Apache::lonnet::appenv({'environment.domcoord.author' => $domcoord{'domcoord.author'}});      &Apache::lonnet::appenv({'environment.domcoord.author' => $domcoord{'domcoord.author'}});
     my $status='';  #    $r->print(&mt('Registering Domain Coordinator access restrictions.'));
     if ($domcoord{'domcoord.author'} eq 'blocked') {      print_main_menu($r, &mt('Registering Domain Coordinator access restrictions.'));
         $status=&mt('on');  
     } else {  
         $status=&mt('off');  
     }  
     my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Block access to construction space').'</i>','<tt>'.$status.'</tt>'));  
     $message=&Apache::loncommon::confirmwrapper($message);  
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 #################################################################  #################################################################
Line 755  sub msgforwardchanger { Line 774  sub msgforwardchanger {
                                           noti  => 'Notification E-mail Address(es)',                                             noti  => 'Notification E-mail Address(es)', 
                                           foad_exmpl => 'e.g. <tt>userA:domain1,userB:domain2,...</tt>',                                            foad_exmpl => 'e.g. <tt>userA:domain1,userB:domain2,...</tt>',
                                           mnot  => 'E-mail Address(es) which should be notified about new LON-CAPA messages',                                            mnot  => 'E-mail Address(es) which should be notified about new LON-CAPA messages',
    # old: 'Message Notification Email Address(es)',
                                           mnot_exmpl => 'e.g. <tt>joe@doe.com</tt>',                                            mnot_exmpl => 'e.g. <tt>joe@doe.com</tt>',
                                           chg   => 'Save',                                            chg   => 'Change',
                                           email => 'The e-mail address entered in row ',                                            email => 'The e-mail address entered in row ',
                                           notv => 'is not a valid e-mail address',                                            notv => 'is not a valid e-mail address',
                                           toen => "To enter multiple addresses, enter one address at a time, click 'Save' and then add the next one",                                             toen => "To enter multiple addresses, enter one address at a time, click 'Change' and then add the next one", 
                                           prme => 'Back',                                            prme => 'Back to preferences menu',
                                         );                                          );
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changemsgforward',
    text => 'Change Message Forwarding/Notification'});
       $r->print(Apache::loncommon::start_page('Change Message Forwarding/Notification'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Message Forwarding/Notification'));
     my $forwardingHelp = &Apache::loncommon::help_open_topic("Prefs_Forwarding");      my $forwardingHelp = &Apache::loncommon::help_open_topic("Prefs_Forwarding");
     my $notificationHelp = &Apache::loncommon::help_open_topic("Prefs_Notification");      my $notificationHelp = &Apache::loncommon::help_open_topic("Prefs_Notification");
     my $criticalMessageHelp = &Apache::loncommon::help_open_topic("Course_Critical_Message");      my $criticalMessageHelp = &Apache::loncommon::help_open_topic("Course_Critical_Message");
Line 927  ENDMSG Line 952  ENDMSG
     $r->print(qq|      $r->print(qq|
 <br /><hr />  <br /><hr />
 <input type="hidden" name="numnotify" value="$num" />  <input type="hidden" name="numnotify" value="$num" />
 <input type="button" value="$lt{'prme'}" onclick="location.href='/adm/preferences'" />  
 <input type="button" value="$lt{'chg'}" onclick="javascript:validate()" />  <input type="button" value="$lt{'chg'}" onclick="javascript:validate()" />
   <input type="button" value="$lt{'prme'}" onclick="location.href='/adm/preferences'" />
 </form>  </form>
 |);  |);
   
Line 962  sub verify_and_change_msgforward { Line 987  sub verify_and_change_msgforward {
     if (&Apache::lonnet::homeserver($msuser,$msdomain) ne 'no_host') {      if (&Apache::lonnet::homeserver($msuser,$msdomain) ne 'no_host') {
                $newscreen.=$msuser.':'.$msdomain.',';                 $newscreen.=$msuser.':'.$msdomain.',';
    } else {     } else {
                $message.= &mt('No such user: ').'<tt>'.$msuser.':'.$msdomain.'</tt><br />';                 $message.= &mt('No such user: ').'<tt>'.$msuser.':'.$msdomain.'</tt><br>';
            }             }
         }          }
     }      }
Line 974  sub verify_and_change_msgforward { Line 999  sub verify_and_change_msgforward {
                     .'<br />';                      .'<br />';
     } else {      } else {
         &Apache::lonnet::del('environment',['msgforward']);          &Apache::lonnet::del('environment',['msgforward']);
         &Apache::lonnet::delenv('environment.msgforward');          &Apache::lonnet::delenv('environment\.msgforward');
         $message.= &mt("Set message forwarding to 'off'.").'<br />';          $message.= &mt("Set message forwarding to 'off'.").'<br />';
     }      }
     my $critnotification;      my $critnotification;
Line 1014  sub verify_and_change_msgforward { Line 1039  sub verify_and_change_msgforward {
         $message.=&mt('Set non-critical message notification address(es) to ').'<tt>"'.$notification.'"</tt>.<br />';          $message.=&mt('Set non-critical message notification address(es) to ').'<tt>"'.$notification.'"</tt>.<br />';
     } else {      } else {
         &Apache::lonnet::del('environment',['notification']);          &Apache::lonnet::del('environment',['notification']);
         &Apache::lonnet::delenv('environment.notification');          &Apache::lonnet::delenv('environment\.notification');
         $message.=&mt("Set non-critical message notification to 'off'.").'<br />';          $message.=&mt("Set non-critical message notification to 'off'.").'<br />';
     }      }
     if ($critnotification) {      if ($critnotification) {
Line 1023  sub verify_and_change_msgforward { Line 1048  sub verify_and_change_msgforward {
         $message.=&mt('Set critical message notification address(es) to ').'<tt>"'.$critnotification.'"</tt>.<br />';          $message.=&mt('Set critical message notification address(es) to ').'<tt>"'.$critnotification.'"</tt>.<br />';
     } else {      } else {
         &Apache::lonnet::del('environment',['critnotification']);          &Apache::lonnet::del('environment',['critnotification']);
         &Apache::lonnet::delenv('environment.critnotification');          &Apache::lonnet::delenv('environment\.critnotification');
         $message.=&mt("Set critical message notification to 'off'.").'<br />';          $message.=&mt("Set critical message notification to 'off'.").'<br />';
     }      }
     if ($critnotification || $notification) {      if ($critnotification || $notification) {
Line 1033  sub verify_and_change_msgforward { Line 1058  sub verify_and_change_msgforward {
             $message.=&mt('Set address(es) to receive excerpts with html retained ').'<tt>"'.$notify_with_html.'"</tt>.';              $message.=&mt('Set address(es) to receive excerpts with html retained ').'<tt>"'.$notify_with_html.'"</tt>.';
         } else {          } else {
             &Apache::lonnet::del('environment',['notifywithhtml']);              &Apache::lonnet::del('environment',['notifywithhtml']);
             &Apache::lonnet::delenv('environment.notifywithhtml');              &Apache::lonnet::delenv('environment\.notifywithhtml');
             if ($totaladdresses == 1) {              if ($totaladdresses == 1) {
                 $message.=&mt("Set notification address to receive excerpts with html stripped.");                  $message.=&mt("Set notification address to receive excerpts with html stripped.");
             } else {              } else {
Line 1042  sub verify_and_change_msgforward { Line 1067  sub verify_and_change_msgforward {
         }          }
     } else {      } else {
         &Apache::lonnet::del('environment',['notifywithhtml']);          &Apache::lonnet::del('environment',['notifywithhtml']);
         &Apache::lonnet::delenv('environment.notifywithhtml');          &Apache::lonnet::delenv('environment\.notifywithhtml');
     }      }
     if ($message) {      if ($message) {
         $message .= '<br /><hr />';          $message .= '<br /><hr />';
Line 1057  sub verify_and_change_msgforward { Line 1082  sub verify_and_change_msgforward {
   
 sub colorschanger {  sub colorschanger {
     my $r = shift;      my $r = shift;
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changecolors',
                   text => 'Change Colors'});
       $r->print(Apache::loncommon::start_page('Change Colors'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Colors'));
 # figure out colors  # figure out colors
     my $function=&Apache::loncommon::get_users_function();      my $function=&Apache::loncommon::get_users_function();
     my $domain=&Apache::loncommon::determinedomain();      my $domain=&Apache::loncommon::determinedomain();
     my %colortypes=('pgbg'  => 'Page Background Color',      my %colortypes=('pgbg'  => 'Page Background',
                     'tabbg' => 'Header Background Color',                      'tabbg' => 'Header Background',
                     'sidebg'=> 'Header Border Color',                      'sidebg'=> 'Header Border',
                     'font'  => 'Font Color',                      'font'  => 'Font',
                     'link'  => 'Un-Visited Link Color',                      'link'  => 'Un-Visited Link',
                     'vlink' => 'Visited Link Color',                      'vlink' => 'Visited Link',
                     'alink' => 'Active Link Color');                      'alink' => 'Active Link');
     my $start_data_table = &Apache::loncommon::start_data_table();      my $start_data_table = &Apache::loncommon::start_data_table();
     my $chtable='';      my $chtable='';
     foreach my $item (sort(keys(%colortypes))) {      foreach my $item (sort(keys(%colortypes))) {
Line 1077  sub colorschanger { Line 1107  sub colorschanger {
         '" size="10" value="'.$curcol.          '" size="10" value="'.$curcol.
 '" /></td><td><a href="javascript:pjump('."'color_custom','".$colortypes{$item}.  '" /></td><td><a href="javascript:pjump('."'color_custom','".$colortypes{$item}.
 "','".$curcol."','"  "','".$curcol."','"
     .$item."','parmform.pres','psub'".');">'.&mt('Select').'</a></td>'.      .$item."','parmform.pres','psub'".');">Select</a></td>'.
     &Apache::loncommon::end_data_table_row()."\n";      &Apache::loncommon::end_data_table_row()."\n";
     }      }
     my $end_data_table = &Apache::loncommon::end_data_table();      my $end_data_table = &Apache::loncommon::end_data_table();
     my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();      my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
     my $savebutton = &mt('Save');  
     my $resetbutton = &mt('Reset All');  
     my $resetbuttondesc = &mt('Reset All Colors to Default');  
     $r->print(<<ENDCOL);      $r->print(<<ENDCOL);
 <script type="text/javascript">  <script type="text/javascript">
   
Line 1123  $start_data_table Line 1150  $start_data_table
 $chtable  $chtable
 $end_data_table  $end_data_table
 </table>  </table>
 <input type="submit" value="$savebutton" />  <input type="submit" value="Change Custom Colors" />
 <input type="submit" name="resetall" value="$resetbutton" title="$resetbuttondesc" />  <input type="submit" name="resetall" value="Reset All Colors to Default" />
 </form>  </form>
 ENDCOL  ENDCOL
 }  }
Line 1134  sub verify_and_change_colors { Line 1161  sub verify_and_change_colors {
 # figure out colors  # figure out colors
     my $function=&Apache::loncommon::get_users_function();      my $function=&Apache::loncommon::get_users_function();
     my $domain=&Apache::loncommon::determinedomain();      my $domain=&Apache::loncommon::determinedomain();
     my %colortypes=('pgbg'  => 'Page Background Color',      my %colortypes=('pgbg'  => 'Page Background',
                     'tabbg' => 'Header Background Color',                      'tabbg' => 'Header Background',
                     'sidebg'=> 'Header Border Color',                      'sidebg'=> 'Header Border',
                     'font'  => 'Font Color',                      'font'  => 'Font',
                     'link'  => 'Un-Visited Link Color',                      'link'  => 'Un-Visited Link',
                     'vlink' => 'Visited Link Color',                      'vlink' => 'Visited Link',
                     'alink' => 'Active Link Color');                      'alink' => 'Active Link');
   
     my $message='';      my $message='';
     foreach my $item (keys %colortypes) {      foreach my $item (keys %colortypes) {
Line 1149  sub verify_and_change_colors { Line 1176  sub verify_and_change_colors {
  if (($color=~/^\#[0-9A-Fa-f]{6}$/) && (!$env{'form.resetall'})) {   if (($color=~/^\#[0-9A-Fa-f]{6}$/) && (!$env{'form.resetall'})) {
     &Apache::lonnet::put('environment',{$entry => $color});      &Apache::lonnet::put('environment',{$entry => $color});
     &Apache::lonnet::appenv({'environment.'.$entry => $color});      &Apache::lonnet::appenv({'environment.'.$entry => $color});
             $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.$colortypes{$item}.'</i>','<tt>"'.$color.'"</tt>'))      $message.=&mt('Set '.$colortypes{$item}.' to ').'<tt>"'.$color.'"</tt>.<br />';
                     .'<br />';  
  } else {   } else {
     &Apache::lonnet::del('environment',[$entry]);      &Apache::lonnet::del('environment',[$entry]);
     &Apache::lonnet::delenv('environment.'.$entry);      &Apache::lonnet::delenv('environment\.'.$entry);
             $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.$colortypes{$item}.'</i>'))      $message.=&mt('Reset '.$colortypes{$item}.'.').'<br />';
                      .'<br />';  
  }   }
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);  
   
     my $now = time;      my $now = time;
     &Apache::lonnet::put('environment',{'color.timestamp' => $now});      &Apache::lonnet::put('environment',{'color.timestamp' => $now});
     &Apache::lonnet::appenv({'environment.color.timestamp' => $now});      &Apache::lonnet::appenv({'environment.color.timestamp' => $now});
   
     $r->print(<<ENDVCCOL);      print_main_menu($r, $message);
 $message  #    $r->print(<<ENDVCCOL);
 <form name="client" action="/adm/preferences" method="post">  #$message
 <input type="hidden" name="action" value="changecolors" />  #<form name="client" action="/adm/preferences" method="post">
 </form>  #<input type="hidden" name="action" value="changecolors" />
 ENDVCCOL  #</form>
   #ENDVCCOL
 }  }
   
 ######################################################  ######################################################
Line 1181  sub passwordchanger { Line 1205  sub passwordchanger {
     # Passwords are encrypted using londes.js (DES encryption)      # Passwords are encrypted using londes.js (DES encryption)
     $errormessage = ($errormessage || '');      $errormessage = ($errormessage || '');
     my ($user,$domain,$currentpass,$defdom);      my ($user,$domain,$currentpass,$defdom);
       Apache::lonhtmlcommon::add_breadcrumb(
    { href => '/adm/preferences?action=changepass',
                     text => 'Change Password'});
       $r->print(Apache::loncommon::start_page('Change Password'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Password'));
     if ((!defined($caller)) || ($caller eq 'preferences')) {      if ((!defined($caller)) || ($caller eq 'preferences')) {
         $user = $env{'user.name'};          $user = $env{'user.name'};
         $domain = $env{'user.domain'};          $domain = $env{'user.domain'};
Line 1191  sub passwordchanger { Line 1220  sub passwordchanger {
             $defdom = $r->dir_config('lonDefDomain');              $defdom = $r->dir_config('lonDefDomain');
             my %data = &Apache::lonnet::tmpget($mailtoken);              my %data = &Apache::lonnet::tmpget($mailtoken);
             if (keys(%data) == 0) {              if (keys(%data) == 0) {
                 $r->print(&mt('Sorry, the URL you provided to complete the reset of your password was invalid. Either the token included in the URL has been deleted or the URL you provided was invalid. Please submit a [_1]new request[_2] for a password reset, and follow the link to the new URL included in the e-mail that will be sent to you, to allow you to enter a new password.',                  $r->print(&mt('Sorry, the URL you provided to complete the reset of your password was invalid. Either the token included in the URL has been deleted or the URL you provided was invalid. Please submit a <a href="/adm/resetpw">new request</a> for a password reset, and follow the link to the new URL included in the e-mail that will be sent to you, to allow you to enter a new password.'));
                           '<a href="/adm/resetpw">','</a>')  
                 );  
                 return;                  return;
             }              }
             if (defined($data{time})) {              if (defined($data{time})) {
Line 1308  sub client_form { Line 1335  sub client_form {
                 'currentpass' => 'Current Password',                  'currentpass' => 'Current Password',
                 'newpass' => 'New Password',                  'newpass' => 'New Password',
                 'confirmpass' => 'Confirm Password',                  'confirmpass' => 'Confirm Password',
                 'changepass' => 'Save');                  'changepass' => 'Change Password');
     my $output = '<form name="client">'  
                 .&Apache::lonhtmlcommon::start_pick_box();      my $output = qq|
   <form name="client" >
   <table>
   |;
     if ($caller eq 'reset_by_email') {      if ($caller eq 'reset_by_email') {
         $output .= &Apache::lonhtmlcommon::row_title(          $output .= qq|
                        '<label for="email">'.$lt{'email'}.'</label>')  <tr><td class="LC_preferences_labeltext"><label for="email">$lt{'email'}</label>:</td>
                   .'<input type="text" name="email" size="30" />'      <td><input type="text" name="email" size="30" /> </td></tr>
                   .&Apache::lonhtmlcommon::row_closure()  <tr><td class="LC_preferences_labeltext"><label for="uname">$lt{'username'}</label>:</td>
                   .&Apache::lonhtmlcommon::row_title(      <td>
                        '<label for="uname">'.$lt{'username'}.'</label>')       <input type="text" name="uname" size="15" />
                   .'<input type="text" name="uname" size="15" />'       <input type="hidden" name="currentpass" value="$currentpass" />
                   .'<input type="hidden" name="currentpass" value="'.$currentpass.'" />'      </td></tr>
                   .&Apache::lonhtmlcommon::row_closure()  <tr><td class="LC_preferences_labeltext"><label for="udom">$lt{'domain'}</label>:</td>
                   .&Apache::lonhtmlcommon::row_title(      <td>
                        '<label for="udom">'.$lt{'domain'}.'</label>')  |;
                   .&Apache::loncommon::select_dom_form($defdom,'udom')          $output .= &Apache::loncommon::select_dom_form($defdom,'udom').'
                   .&Apache::lonhtmlcommon::row_closure();     </td>
   </tr>
   ';
     } else {      } else {
         $output .= &Apache::lonhtmlcommon::row_title(          $output .= qq|
                        '<label for="currentpass">'.$lt{'currentpass'}.'</label>')  <tr><td class="LC_preferences_labeltext"><label for="currentpass">$lt{'currentpass'}</label></td>
                   .'<input type="password" name="currentpass" size="10"/>'      <td><input type="password" name="currentpass" size="10"/> </td></tr>
                   .&Apache::lonhtmlcommon::row_closure();  |;
     }      }
     $output .= &Apache::lonhtmlcommon::row_title(      $output .= <<"ENDFORM";
                    '<label for="newpass_1">'.$lt{'newpass'}.'</label>')  <tr><td class="LC_preferences_labeltext"><label for="newpass_1">$lt{'newpass'}</label></td>
               .'<input type="password" name="newpass_1" size="10" />'      <td><input type="password" name="newpass_1" size="10"  /> </td></tr>
               .&Apache::lonhtmlcommon::row_closure()  <tr><td class="LC_preferences_labeltext"><label for="newpass_2">$lt{'confirmpass'}</label></td>
               .&Apache::lonhtmlcommon::row_title(      <td><input type="password" name="newpass_2" size="10"  /> </td></tr>
                    '<label for="newpass_2">'.$lt{'confirmpass'}.'</label>')  <tr><td colspan="2" align="center">
               .'<input type="password" name="newpass_2" size="10" />'      <input type="button" value="$lt{'changepass'}" onClick="send();">
               .&Apache::lonhtmlcommon::row_closure(1)  </table>
               .&Apache::lonhtmlcommon::end_pick_box();  
     $output .= '<p><input type="button" value="'.$lt{'changepass'}.'" onClick="send();" /></p>'  
                .qq|  
 <input type="hidden" name="ukey_cpass"  value="$hexkey->{'ukey_cpass'}" />  <input type="hidden" name="ukey_cpass"  value="$hexkey->{'ukey_cpass'}" />
 <input type="hidden" name="lkey_cpass"  value="$hexkey->{'lkey_cpass'}" />  <input type="hidden" name="lkey_cpass"  value="$hexkey->{'lkey_cpass'}" />
 <input type="hidden" name="ukey_npass1" value="$hexkey->{'ukey_npass1'}" />  <input type="hidden" name="ukey_npass1" value="$hexkey->{'ukey_npass1'}" />
Line 1350  sub client_form { Line 1379  sub client_form {
 <input type="hidden" name="lkey_npass2" value="$hexkey->{'lkey_npass2'}" />  <input type="hidden" name="lkey_npass2" value="$hexkey->{'lkey_npass2'}" />
 </form>  </form>
 </p>  </p>
 |;  ENDFORM
     return $output;      return $output;
 }  }
   
Line 1516  ENDERROR Line 1545  ENDERROR
     # Inform the user the password has (not?) been changed      # Inform the user the password has (not?) been changed
     my $message;      my $message;
     if ($result =~ /^ok$/) {      if ($result =~ /^ok$/) {
         $message = &Apache::lonhtmlcommon::confirm_success(&mt('The password for user [_1] was successfully changed.','<i>'.$user.'<i>'));          $message = &mt('The password for [_1] was successfully changed',$user);
         if ($caller eq 'reset_by_email') {          print_main_menu($r, $message);
             $r->print($message.'<br />');  # $r->print("<h3>".&mt('The password for [_1] was successfully changed',$user)."</h3>");
         } else {  
             $r->print(&Apache::loncommon::confirmwrapper($message));  
         }  
     } else {      } else {
  # error error: run in circles, scream and shout   # error error: run in circles, scream and shout
         $message = &Apache::lonhtmlcommon::confirm_success(          $message = &mt("The password for [_1] was not changed",$user)
                    &mt("The password for user [_1] was not changed.",'<i>'.$user.'</i>').' '.&mt('Please make sure your old password was entered correctly.'),1);   .&mt('Please make sure your old password was entered correctly.');
         if ($caller eq 'reset_by_email') {          print_main_menu($r, $message);
             $r->print($message.'<br />');  #        $r->print("<h3><span class='LC_error'>".&mt("The password for [_1] was not changed",$user)."</span></h3>".
         } else {  #                  &mt('Please make sure your old password was entered correctly.'));
             $r->print(&Apache::loncommon::confirmwrapper($message));  
         }  
         return 1;          return 1;
     }      }
     return;      return;
Line 1541  ENDERROR Line 1565  ENDERROR
 ################################################################  ################################################################
 sub discussionchanger {  sub discussionchanger {
     my $r = shift;      my $r = shift;
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changediscussions',
                   text => 'Change Discussion Preferences'});
       $r->print(Apache::loncommon::start_page('Change Discussion Preferences'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Discussion Preferences'));
     my $user       = $env{'user.name'};      my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};      my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get      my %userenv = &Apache::lonnet::get
Line 1554  sub discussionchanger { Line 1583  sub discussionchanger {
         }          }
     }      }
     if (defined($userenv{'discmarkread'})) {      if (defined($userenv{'discmarkread'})) {
         unless ($userenv{'discmarkread'} eq '') {           unless ($userenv{'discdisplay'} eq '') { 
             $discmark = $userenv{'discmarkread'};              $discmark = $userenv{'discmarkread'};
         }          }
     }      }
Line 1569  sub discussionchanger { Line 1598  sub discussionchanger {
         'pref' => 'Display Preference',          'pref' => 'Display Preference',
         'curr' => 'Current setting ',          'curr' => 'Current setting ',
         'actn' => 'Action',          'actn' => 'Action',
         'sdpf' => 'Set display preferences for discussion posts for both discussion boards and individual resources in all your courses.',          'sdpf' => 'Set display preferences for discussion posts for both bulletin boards and individual resources in all your courses.',
         'prca' => 'Preferences can be set that determine',          'prca' => 'Preferences can be set that determine',
         'whpo' => 'Which posts are displayed when you display a discussion board or resource, and',          'whpo' => 'Which posts are displayed when you display a bulletin board or resource, and',
         'unwh' => 'Under what circumstances posts are identfied as "New"',          'unwh' => 'Under what circumstances posts are identfied as "New"',
         'allposts' => 'All posts',          'allposts' => 'All posts',
         'unread' => 'New posts only',          'unread' => 'New posts only',
Line 1580  sub discussionchanger { Line 1609  sub discussionchanger {
         'disa' => 'Posts displayed?',          'disa' => 'Posts displayed?',
         'npmr' => 'New posts cease to be identified as "New"?',          'npmr' => 'New posts cease to be identified as "New"?',
         'thde'  => 'The preferences you set here can be overridden within each individual discussion.',          'thde'  => 'The preferences you set here can be overridden within each individual discussion.',
         'chgt' => 'Change to ',          'chgt' => 'Change to '
     );      );
     my $dispchange = $lt{'unread'};      my $dispchange = $lt{'unread'};
     my $markchange = $lt{'ondisp'};      my $markchange = $lt{'ondisp'};
Line 1604  sub discussionchanger { Line 1633  sub discussionchanger {
 <input type="hidden" name="action" value="verify_and_change_discussion" />  <input type="hidden" name="action" value="verify_and_change_discussion" />
 <br />  <br />
 $lt{'sdpf'}<br /> $lt{'prca'}  <ol><li>$lt{'whpo'}</li><li>$lt{'unwh'}</li></ol>   $lt{'sdpf'}<br /> $lt{'prca'}  <ol><li>$lt{'whpo'}</li><li>$lt{'unwh'}</li></ol> 
   <br />
   <br />
 END  END
     $r->print('<p class="LC_info">'.$lt{'thde'}.'</p>');  
   
     $r->print(&Apache::loncommon::start_data_table());      $r->print(&Apache::loncommon::start_data_table());
     $r->print(<<"END");      $r->print(<<"END");
        <tr>         <tr>
Line 1631  END Line 1660  END
 END  END
     $r->print(&Apache::loncommon::end_data_table_row().      $r->print(&Apache::loncommon::end_data_table_row().
       &Apache::loncommon::end_data_table());        &Apache::loncommon::end_data_table());
     $r->print('<br />'.      $r->print(<<"END");
               '<input type="submit" name="sub" value="'.&mt('Save').'" />'.  <br />
               '</form>');  <br />
   <input type="submit" name="sub" value="Save Changes" />
   <br />
   <br />
   Note: $lt{'thde'}
   </form>
   END
 }  }
                                                                                                                                                                                                                                   
 sub verify_and_change_discussion {  sub verify_and_change_discussion {
Line 1644  sub verify_and_change_discussion { Line 1679  sub verify_and_change_discussion {
     if (defined($env{'form.discdisp'}) ) {      if (defined($env{'form.discdisp'}) ) {
         my $newdisp  = $env{'form.newdisp'};          my $newdisp  = $env{'form.newdisp'};
         if ($newdisp eq 'unread') {          if ($newdisp eq 'unread') {
             $message .= &Apache::lonhtmlcommon::confirm_success(&mt('In discussions: only new posts will be displayed.')).'<br />';              $message .=&mt('In discussions: only new posts will be displayed.').'<br />';
             &Apache::lonnet::put('environment',{'discdisplay' => $newdisp});              &Apache::lonnet::put('environment',{'discdisplay' => $newdisp});
             &Apache::lonnet::appenv({'environment.discdisplay' => $newdisp});              &Apache::lonnet::appenv({'environment.discdisplay' => $newdisp});
         } else {          } else {
             $message .= &Apache::lonhtmlcommon::confirm_success(&mt('In discussions: all posts will be displayed.')).'<br />';              $message .= &mt('In discussions: all posts will be displayed.').'<br />';
             &Apache::lonnet::del('environment',['discdisplay']);              &Apache::lonnet::del('environment',['discdisplay']);
             &Apache::lonnet::delenv('environment.discdisplay');              &Apache::lonnet::delenv('environment\.discdisplay');
         }          }
     }      }
     if (defined($env{'form.discmark'}) ) {      if (defined($env{'form.discmark'}) ) {
         my $newmark = $env{'form.newmark'};          my $newmark = $env{'form.newmark'};
         if ($newmark eq 'ondisp') {          if ($newmark eq 'ondisp') {
             $message.=&Apache::lonhtmlcommon::confirm_success(&mt('In discussions: new posts will be cease to be identified as "NEW" after display.')).'<br />';             $message.=&mt('In discussions: new posts will be cease to be identified as "NEW" after display.').'<br />';
             &Apache::lonnet::put('environment',{'discmarkread' => $newmark});              &Apache::lonnet::put('environment',{'discmarkread' => $newmark});
             &Apache::lonnet::appenv({'environment.discmarkread' => $newmark});              &Apache::lonnet::appenv({'environment.discmarkread' => $newmark});
         } else {          } else {
             $message.=&Apache::lonhtmlcommon::confirm_success(&mt('In discussions: posts will be identified as "NEW" until marked as read by the reader.')).'<br />';              $message.=&mt('In discussions: posts will be identified as "NEW" until marked as read by the reader.').'<br />';
             &Apache::lonnet::del('environment',['discmarkread']);              &Apache::lonnet::del('environment',['discmarkread']);
             &Apache::lonnet::delenv('environment.discmarkread');              &Apache::lonnet::delenv('environment\.discmarkread');
         }          }
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);  #    $r->print(<<ENDVCSCREEN);
     $r->print(<<ENDVCSCREEN);  #$message
 $message  #ENDVCSCREEN
 ENDVCSCREEN      print_main_menu($r, $message);
 }  }
   
 ################################################################  ################################################################
Line 1676  ENDVCSCREEN Line 1711  ENDVCSCREEN
 ################################################################  ################################################################
 sub coursedisplaychanger {  sub coursedisplaychanger {
     my $r = shift;      my $r = shift;
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changecourseinit',
                   text => 'Change Course Init. Pref.'});
       $r->print(Apache::loncommon::start_page('Change Course Initialization Preference'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Course Init. Pref.'));
     my $user       = $env{'user.name'};      my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};      my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get('environment',['course_init_display']);      my %userenv = &Apache::lonnet::get('environment',['course_init_display']);
Line 1691  sub coursedisplaychanger { Line 1731  sub coursedisplaychanger {
     }      }
     my %pagenames = (      my %pagenames = (
                        firstres => 'First resource',                         firstres => 'First resource',
                        whatsnew => "What's New Page",                         whatsnew => "What's new page",
                     );                      );
     my $whatsnew_off=&mt('Display the [_1]first resource[_2] in the course.','<b>','</b>');      my $whatsnew_off=&mt('Display the [_1] in the course.','<b>first resource</b>');
     my $whatsnew_on=&mt("Display the [_1]What's New Page[_2] - a summary of items in the course which require attention.",'<b>','</b>');      my $whatsnew_on=&mt('Display the "[_1]" page - a summary of items in the course which require attention.',"<b>What's New</b>");
   
     $r->print('<br /><b>'.      $r->print('<br /><b>'.&mt('Set the default page to be displayed when you select a course role').'</b>&nbsp;'.&mt('(Currently: [_1])',$pagenames{$currvalue}).'<br />'.&mt('The global user preference you set for your courses can be overridden in an individual course by setting a course specific setting via the "[_1]" page in the course',"<i>What's New</i>").'<br /><br />');
               &mt('Set the default page to be displayed when you select a course role').  
               '</b>&nbsp;'.  
               &mt('(Currently: [_1])',$pagenames{$currvalue}).'<br />'.  
               &mt("The global user preference you set for your courses can be overridden in an individual course by setting a course specific setting via the [_1]What's New Page[_2] page in the course.",'<i>','</i>').  
               '<br /><br />');  
     $r->print(<<ENDLSCREEN);      $r->print(<<ENDLSCREEN);
 <form name="prefs" action="/adm/preferences" method="post">  <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_coursepage" />  <input type="hidden" name="action" value="verify_and_change_coursepage" />
Line 1709  sub coursedisplaychanger { Line 1744  sub coursedisplaychanger {
 <label><input type="radio" name="newdisp" value="firstres" $firstselect /> $whatsnew_off</label><br />  <label><input type="radio" name="newdisp" value="firstres" $firstselect /> $whatsnew_off</label><br />
 <label><input type="radio" name="newdisp" value="whatsnew" $whatsnewselect /> $whatsnew_on</label><input type="hidden" name="refpage" value="$env{'form.refpage'}" />  <label><input type="radio" name="newdisp" value="whatsnew" $whatsnewselect /> $whatsnew_on</label><input type="hidden" name="refpage" value="$env{'form.refpage'}" />
 ENDLSCREEN  ENDLSCREEN
     $r->print('<br /><br /><input type="submit" value="'.&mt('Save').'" />      $r->print('<br /><br /><input type="submit" value="'.&mt('Change').'" />
 </form>');  </form>');
 }  }
   
Line 1722  sub verify_and_change_coursepage { Line 1757  sub verify_and_change_coursepage {
         'ywbt' => 'you will be taken to the start of the course.',          'ywbt' => 'you will be taken to the start of the course.',
         'apwb' => 'a page will be displayed that lists items in the course that may require action from you.',          'apwb' => 'a page will be displayed that lists items in the course that may require action from you.',
         'gtts' => 'Go to the start of the course',          'gtts' => 'Go to the start of the course',
         'dasp' => "Display the What's New Page",           'dasp' => "Display the What's New page listing course action items", 
     );      );
     my $newdisp  = $env{'form.newdisp'};      my $newdisp  = $env{'form.newdisp'};
     $message = '<b>'.$lt{'defs'}.'</b>: '.$lt{'when'}.', ';      $message = '<b>'.$lt{'defs'}.'</b>: '.$lt{'when'}.', ';
Line 1733  sub verify_and_change_coursepage { Line 1768  sub verify_and_change_coursepage {
     } else {      } else {
         $message .= $lt{'apwb'}.'<br />';          $message .= $lt{'apwb'}.'<br />';
         &Apache::lonnet::del('environment',['course_init_display']);          &Apache::lonnet::del('environment',['course_init_display']);
         &Apache::lonnet::delenv('environment.course_init_display');          &Apache::lonnet::delenv('environment\.course_init_display');
     }      }
     my $refpage = $env{'form.refpage'};      my $refpage = $env{'form.refpage'};
     if (($env{'request.course.fn'}) && ($env{'request.course.id'})) {      if (($env{'request.course.fn'}) && ($env{'request.course.id'})) {
Line 1748  sub verify_and_change_coursepage { Line 1783  sub verify_and_change_coursepage {
                         $refpage.'">'.$lt{'dasp'}.'</a></font>';                          $refpage.'">'.$lt{'dasp'}.'</a></font>';
         }          }
     }      }
     $message = &Apache::lonhtmlcommon::confirm_success($message);  #    $r->print(<<ENDVCSCREEN);
     $r->print(<<ENDVCSCREEN);  #$message
 $message  #<br /><br />
 ENDVCSCREEN  #ENDVCSCREEN
       print_main_menu($r, $message);
 }  }
   
   sub print_main_menu {
       my ($r, $message) = @_;
       # Determine current authentication method
       my $user = $env{'user.name'};
       my $domain = $env{'user.domain'};
       my $currentauth=&Apache::lonnet::queryauthenticate($user,$domain);
   
       # build the data structure for menu generation
   my $aboutmeurl='/adm/'.$env{'user.domain'}.'/'.$env{'user.name'}.'/aboutme';
   my $role = ($env{'user.adv'} ? 'Roles' : 'Course');
   my %permissions;
   if (&Apache::lonnet::usertools_access($user,$domain,'aboutme')) {
       $permissions{'aboutme'} = 'F';
   }
   my @menu=
       ({ categorytitle=>'Personal Data',
    items =>[
       { linktext => 'About Me',
    url => $aboutmeurl,
    permission => $permissions{'aboutme'},
    #help => 'Prefs_About_Me',
    icon => 'system-users.png',
    linktitle => 'Edit information about yourself that should be displayed on your public profile.'
       },
       { linktext => 'Screen Name',
    url => '/adm/preferences?action=changescreenname',
    permission => 'F',
    #help => 'Prefs_Screen_Name_Nickname',
    icon => 'preferences-desktop-font.png',
    linktitle => 'Change the name that is displayed in your posts.'
       },
    ]
       },
       { categorytitle=>'Page Display Settings',
    items =>[
       { linktext => 'Color Scheme',
    url => '/adm/preferences?action=changecolors',
    permission => 'F',
    #help => 'Change_Colors',
    icon => 'preferences-desktop-theme.png',
    linktitle => 'Change LON-CAPA default colors.'
       },
       { linktext => 'Menu Display',
    url => '/adm/preferences?action=changeicons',
    permission => 'F',
    #help => '',
    icon => 'preferences-system-windows.png',
    linktitle => 'Change whether the menus are displayed with buttons, icons or icons and text.'
       }
   
    ]
       },
       { categorytitle=>'Content Display Settings',
    items =>[
       { linktext => 'Language',
    url => '/adm/preferences?action=changelanguages',
    permission => 'F',
    #help => 'Prefs_Language',
    icon => 'preferences-desktop-locale.png',
    linktitle => 'Choose the default language for this user.'
       },
       { linktext => 'WYSIWYG Editor',
    url => '/adm/preferences?action=changewysiwyg',
    permission => 'F',
    #help => '',
    icon => 'edit-select-all.png',
    linktitle => 'Enable or disable the WYSIWYG-Editor.'
       },
       { linktext => $role.' Page',
    url => '/adm/preferences?action=changerolespref',
    permission => 'F',
    #help => '',
    icon => 'sctr.png',
    linktitle => 'Configure the roles hotlist.'
       },
       { linktext => 'Display of Scientific Equations',
    url => '/adm/preferences?action=changetexenginepref',
    permission => 'F',
    #help => '',
    icon => 'stat.png',
    linktitle => 'Change how Scientific Equations are displayed.'
       },
    ]
       },
       { categorytitle=>'Message Management',
    items =>[
       { linktext => 'Messages & Notifications',
    url => '/adm/preferences?action=changemsgforward',
    permission => 'F',
    #help => 'Prefs_Messages',
    icon => 'mail-reply-all.png',
    linktitle => 'Change messageforwarding or notifications settings.'
       },
       { linktext => 'Discussion Display',
    url => '/adm/preferences?action=changediscussions',
    permission => 'F',
    #help => 'Change_Discussion_Display',
    icon => 'mail-message-new.png',
    linktitle => 'Set display preferences for discussion posts for both bulletin boards and individual resources in all your courses.'
       },
    ]
       },
       { categorytitle=>'Other',
    items =>[
       { linktext => 'Register Response Devices ("Clickers")',
    url => '/adm/preferences?action=changeclicker',
    permission => 'F',
    #help => '',
    icon => 'network-workgroup.png',
    linktitle => 'Register your clicker.'
       },
    ]
       },
       );
   
       if ($currentauth =~ /^(unix|internal):/) {
   push(@{ $menu[0]->{items} }, {
    linktext => 'Password',
    url => '/adm/preferences?action=changepass',
    permission => 'F',
    #help => 'Change_Password',
    icon => 'emblem-readonly.png',
    linktitle => 'Change your password.',
    });
       }
       if ($env{'environment.remote'} eq 'off') {
   push(@{ $menu[1]->{items} }, {
    linktext => 'Launch Remote Control',
    url => '/adm/remote?url=/adm/preferences?action=launch',
    permission => 'F',
    #help => '',
    icon => 'network-wireless.png',
    linktitle => 'Launch the remote control for LON-CAPA.',
    });
       }else{
   push(@{ $menu[1]->{items} }, {
    linktext => 'Collapse Remote Control',
    url => '/adm/remote?url=/adm/preferences?action=collapse',
    permission => 'F',
    #help => '',
    icon => 'network-wireless.png',
    linktitle => 'Collapse the remote control for LON-CAPA.',
    });
       }
       my %author_roles = &Apache::lonnet::get_my_roles($user,$domain,'userroles','',['au']);
       if (keys(%author_roles) > 0) {
   push(@{ $menu[4]->{items} }, {
    linktext => 'Restrict Domain Coordinator Access',
    url => '/adm/preferences?action=changedomcoord',
    permission => 'F',
    #help => '',
    icon => 'system-lock-screen.png',
    linktitle => 'Restrict domain coordinator access.',
    });
       }
   
       if (&Apache::lonnet::allowed('whn',$env{'request.course.id'})
    || &Apache::lonnet::allowed('whn',$env{'request.course.id'}.'/'
       .$env{'request.course.sec'})) {
   push(@{ $menu[4]->{items} }, {
    linktext => 'Course Initialization',
    url => '/adm/preferences?action=changecourseinit',
    permission => 'F',
    #help => '',
    icon => 'edit-copy.png',
    linktitle => 'Set the default page to be displayed when you select a course role.',
    });
   
       }
       if ($env{'user.name'} =~ /^(albertel|fox|foxr|kortemey|korte|raeburn)$/) {
   push(@{ $menu[4]->{items} }, {
    linktext => 'Toggle Debug Messages (Current:'.$env{'user.debug'}.')',
    url => '/adm/preferences?action=debugtoggle',
    permission => 'F',
    #help => '',
    icon => 'blog.png',
    linktitle => 'Toggle Debug Messages.',
    });
       }   
   
       $r->print(&Apache::loncommon::start_page('Change Preferences'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Preferences'));
       $r->print($message);
       $r->print(Apache::lonhtmlcommon::generate_menu(@menu));
       $r->print(Apache::loncommon::end_page());
   }
   
 ######################################################  ######################################################
 #            other handler subroutines               #  #            other handler subroutines               #
Line 1762  ENDVCSCREEN Line 1984  ENDVCSCREEN
 ################################################################  ################################################################
 #                          Main handler                        #  #                          Main handler                        #
 ################################################################  ################################################################
 sub handler {  sub handler {    
       my $r = shift;
       Apache::loncommon::content_type($r,'text/html');
       # Some pages contain DES keys and should not be cached.
       Apache::loncommon::no_cache($r);
       $r->send_http_header;
       return OK if $r->header_only;
       #
       Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                      ['action','wysiwyg','returnurl','refpage']);
       #
       Apache::lonhtmlcommon::clear_breadcrumbs();
       Apache::lonhtmlcommon::add_breadcrumb
           ({href => '/adm/preferences',
             text => 'Set User Preferences'});
       if(!exists $env{'form.action'}) {
    &print_main_menu($r);
       }elsif($env{'form.action'} eq 'changepass'){
           &passwordchanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_pass'){
           &verify_and_change_password($r);
       }elsif($env{'form.action'} eq 'changescreenname'){
           &screennamechanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_screenname'){
           &verify_and_change_screenname($r);
       }elsif($env{'form.action'} eq 'changemsgforward'){
           &msgforwardchanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_msgforward'){
           &verify_and_change_msgforward($r);
       }elsif($env{'form.action'} eq 'changecolors'){
           &colorschanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_colors'){
           &verify_and_change_colors($r);
       }elsif($env{'form.action'} eq 'changelanguages'){
           &languagechanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_languages'){
           &verify_and_change_languages($r);
       }elsif($env{'form.action'} eq 'changewysiwyg'){
           &wysiwygchanger($r);
       }elsif($env{'form.action'} eq 'set_wysiwyg'){
           &verify_and_change_wysiwyg($r);
       }elsif($env{'form.action'} eq 'changediscussions'){
           &discussionchanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_discussion'){
           &verify_and_change_discussion($r);
       }elsif($env{'form.action'} eq 'changerolespref'){
           &rolesprefchanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_rolespref'){
           &verify_and_change_rolespref($r);
       }elsif($env{'form.action'} eq 'changetexenginepref'){
           &texenginechanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_texengine'){
           &verify_and_change_texengine($r);
       }elsif($env{'form.action'} eq 'changeicons'){
           &iconchanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_icons'){
           &verify_and_change_icons($r);
       }elsif($env{'form.action'} eq 'changeclicker'){
           &clickerchanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_clicker'){
           &verify_and_change_clicker($r);
       }elsif($env{'form.action'} eq 'changedomcoord'){
           &domcoordchanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_domcoord'){
           &verify_and_change_domcoord($r);
       }elsif($env{'form.action'} eq 'lockwarning'){
           &lockwarning($r);
       }elsif($env{'form.action'} eq 'verify_and_change_locks'){
           &verify_and_change_lockwarning($r);
       }elsif($env{'form.action'} eq 'changecourseinit'){
           &coursedisplaychanger($r);
       }elsif($env{'form.action'} eq 'verify_and_change_coursepage'){
           &verify_and_change_coursepage($r);
       }elsif($env{'form.action'} eq 'debugtoggle'){
           toggle_debug();
    print_main_menu($r);
       }
   
       return OK;
   
   
   }
   #remove when done
   #old handler routine
   sub handler2 {
     my $r = shift;      my $r = shift;
     my $user = $env{'user.name'};      my $user = $env{'user.name'};
     my $domain = $env{'user.domain'};      my $domain = $env{'user.domain'};
Line 1819  sub handler { Line 2125  sub handler {
                       }));                        }));
   
     push (@Options,({ action   => 'changemsgforward',      push (@Options,({ action   => 'changemsgforward',
                       linktext => 'Messages &amp; Notifications',                        linktext => 'Change Message Forwarding and Notification E-mail Addresses',
                       href     => '/adm/preferences',                        href     => '/adm/preferences',
                       help     => 'Prefs_Messages',                        help     => 'Prefs_Messages',
                       breadcrumb =>                         breadcrumb => 
Line 1832  sub handler { Line 2138  sub handler {
                       breadcrumb =>                         breadcrumb => 
                           { href => '/adm/preferences?action=changemsgforward',                            { href => '/adm/preferences?action=changemsgforward',
                             text => 'Change Message Forwarding/Notification'},                              text => 'Change Message Forwarding/Notification'},
                       printmenu => 'no',                        printmenu => 'yes',
                       subroutine => \&verify_and_change_msgforward }));                        subroutine => \&verify_and_change_msgforward }));
     if (&Apache::lonnet::usertools_access($user,$domain,'aboutme')) {      my $aboutmeaction=
         my $aboutmeaction = '/adm/'.$domain.'/'.$user.'/aboutme';          '/adm/'.$env{'user.domain'}.'/'.$env{'user.name'}.'/aboutme';
         push (@Options,{ action   => 'none',       push (@Options,{ action => 'none', 
                          linktext =>"Edit the Personal Information Page",                       linktext =>
                          help     => 'Prefs_About_Me',                           q{Edit the 'About Me' Personal Information Screen},
                          href => $aboutmeaction});       help => 'Prefs_About_Me',
     }                       href => $aboutmeaction});
     push (@Options,({ action => 'changecolors',      push (@Options,({ action => 'changecolors',
                       linktext => 'Change Color Scheme',                        linktext => 'Change Color Scheme',
                       href => '/adm/preferences',                        href => '/adm/preferences',
Line 1967  sub handler { Line 2273  sub handler {
                       }));                        }));
   
     push (@Options,({ action   => 'changeclicker',      push (@Options,({ action   => 'changeclicker',
                       linktext => 'Register Response Devices (&quot;Clickers&quot;)',                        linktext => 'Register Response Devices ("Clickers")',
                       href     => '/adm/preferences',                        href     => '/adm/preferences',
                       subroutine => \&clickerchanger,                        subroutine => \&clickerchanger,
                       breadcrumb =>                        breadcrumb =>
Line 2115  sub handler { Line 2421  sub handler {
   
 sub toggle_debug {  sub toggle_debug {
     if ($env{'user.debug'}) {      if ($env{'user.debug'}) {
         &Apache::lonnet::delenv('user.debug');          &Apache::lonnet::delenv('user\.debug');
     } else {      } else {
         &Apache::lonnet::appenv({'user.debug' => 1});          &Apache::lonnet::appenv({'user.debug' => 1});
     }      }

Removed from v.1.125.4.4  
changed lines
  Added in v.1.132


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