Diff for /loncom/interface/lonpreferences.pm between versions 1.125.8.3 and 1.159

version 1.125.8.3, 2009/11/19 15:41:59 version 1.159, 2009/05/06 16:19:34
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('Content Display Settings'));
       $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 131  sub verify_and_change_wysiwyg { Line 137  sub verify_and_change_wysiwyg {
     &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>'));      my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('WYSIWYG Editor').'</i>','<tt>'.&mt($newsetting).'</tt>'));
     $message=&Apache::loncommon::confirmwrapper($message);      $message=&Apache::loncommon::confirmwrapper($message);
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r,$message);
 $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('Content Display Settings'));
       $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 185  sub verify_and_change_languages { Line 195  sub verify_and_change_languages {
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);      $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  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 195  ENDVCSCREEN Line 203  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('Content Display Settings'));
       $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 217  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 220  sub texenginechanger { Line 232  sub texenginechanger {
       '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'}: $selectionbox 
 <br />  <br />
 <input type="submit" value="$lt{'change'}" />  <input type="submit" value="$lt{'change'}" />
 </p>  </p>
Line 252  $lt{'exmpl'} Line 249  $lt{'exmpl'}
 <h3>$lt{'jsmath'}</h3>   <h3>$lt{'jsmath'}</h3> 
 <p>  <p>
 $jsMath_start  $jsMath_start
 <script type="text/javascript">  <script type="text/javascript" language="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 271  if (jsMath.nofonts == 1) { Line 279  if (jsMath.nofonts == 1) {
 </p>  </p>
 ENDLSCREEN  ENDLSCREEN
     if ($env{'environment.texengine'} ne 'jsMath') {      if ($env{'environment.texengine'} ne 'jsMath') {
  $r->print('<script type="text/javascript">jsMath.Process()</script>');   $r->print('<script type="text/javascript" language="JavaScript">jsMath.Process()</script>');
     }      }
 }  }
   
Line 301  sub verify_and_change_texengine { Line 309  sub verify_and_change_texengine {
         $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.&mt('Preferred method to display Math').'</i>'));          $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.&mt('Preferred method to display Math').'</i>'));
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);      $message=&Apache::loncommon::confirmwrapper($message);
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r, $message);
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 317  sub rolesprefchanger { Line 323  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('Content Display Settings'));
       $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 374  sub rolesprefchanger { Line 385  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>
Line 465  sub verify_and_change_rolespref { Line 476  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 />".&Apache::lonhtmlcommon::confirm_success(&mt('Unfreezing '.$role.': [_1]','<i>'.$role_text{$role_key}.'</i>'));
     &Apache::lonhtmlcommon::store_recent('roles',$role_key,' ',0);      &Apache::lonhtmlcommon::store_recent('roles',$role_key,' ',0);
         }          }
     }      }
Line 480  sub verify_and_change_rolespref { Line 491  sub verify_and_change_rolespref {
         }          }
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);      $message=&Apache::loncommon::confirmwrapper($message);
     $r->print(<<ENDRPSCREEN);      &print_main_menu($r, $message);
 $message  
 ENDRPSCREEN  
 }  }
   
   
Line 498  sub screennamechanger { Line 507  sub screennamechanger {
         ('environment',['screenname','nickname']);          ('environment',['screenname','nickname']);
     my $screenname=$userenv{'screenname'};      my $screenname=$userenv{'screenname'};
     my $nickname=$userenv{'nickname'};      my $nickname=$userenv{'nickname'};
       Apache::lonhtmlcommon::add_breadcrumb(
    { href => '/adm/preferences?action=changescreenname',
                     text => 'Change Screen Name'});
       $r->print(Apache::loncommon::start_page('Personal Data'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Screen Name'));
     $r->print('<p>'      $r->print('<p>'
              .&mt('Change the name that is displayed in your posts.')               .&mt('Change the name that is displayed in your posts.')
              .'</p>'               .'</p>'
Line 505  sub screennamechanger { Line 519  sub screennamechanger {
     $r->print('<form name="prefs" action="/adm/preferences" method="post">'      $r->print('<form name="prefs" action="/adm/preferences" method="post">'
              .'<input type="hidden" name="action" value="verify_and_change_screenname" />'               .'<input type="hidden" name="action" value="verify_and_change_screenname" />'
              .&Apache::lonhtmlcommon::start_pick_box()               .&Apache::lonhtmlcommon::start_pick_box()
              .&Apache::lonhtmlcommon::row_title(&mt('New screenname (shown if you post anonymously)'))               .&Apache::lonhtmlcommon::row_title(&mt('Screenname').' '.&mt('(shown if you post anonymously)'))
              .'<input type="text" size="20" value="'.$screenname.'" name="screenname" />'               .'<input type="text" size="20" value="'.$screenname.'" name="screenname" />'
              .&Apache::lonhtmlcommon::row_closure()               .&Apache::lonhtmlcommon::row_closure()
              .&Apache::lonhtmlcommon::row_title(&mt('New nickname (shown if you post non-anonymously)'))               .&Apache::lonhtmlcommon::row_title(&mt('Nickname').' '.&mt('(shown if you post non-anonymously)'))
              .'<input type="text" size="20" value="'.$nickname.'" name="nickname" />'               .'<input type="text" size="20" value="'.$nickname.'" name="nickname" />'
              .&Apache::lonhtmlcommon::row_closure()               .&Apache::lonhtmlcommon::row_closure()
              .&Apache::lonhtmlcommon::row_title()               .&Apache::lonhtmlcommon::row_title()
Line 530  sub verify_and_change_screenname { Line 544  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=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Screenname').'</i>','<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');
Line 543  sub verify_and_change_screenname { Line 557  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.=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Nickname').'</i>','<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');
Line 551  sub verify_and_change_screenname { Line 565  sub verify_and_change_screenname {
     }      }
     &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);      &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);
     $message=&Apache::loncommon::confirmwrapper($message);      $message=&Apache::loncommon::confirmwrapper($message);
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r, $message);
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 561  ENDVCSCREEN Line 573  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('Page Display Settings'));
       $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 595  sub verify_and_change_icons { Line 613  sub verify_and_change_icons {
     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'};
     my $newicons  = $env{'form.menumode'};      my $newicons   = $env{'form.menumode'};
   
     &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>'));      my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Menu Display').'</i>','<tt>'.$newicons.'</tt>'));
     $message=&Apache::loncommon::confirmwrapper($message);      $message=&Apache::loncommon::confirmwrapper($message);
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r, $message);
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 612  ENDVCSCREEN Line 628  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('Other'));
       $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 619  sub clickerchanger { Line 640  sub clickerchanger {
     my $clickers=$userenv{'clickers'};      my $clickers=$userenv{'clickers'};
     $clickers=~s/\,/\n/gs;      $clickers=~s/\,/\n/gs;
     my $text=&mt('Enter response device ("clicker") numbers');      my $text=&mt('Enter response device ("clicker") numbers');
     my $change=&mt('Register');      my $change=&mt('Save');
     my $helplink=&Apache::loncommon::help_open_topic('Clicker_Registration',&mt('Locating your clicker ID'));      my $helplink=&Apache::loncommon::help_open_topic('Clicker_Registration',&mt('Locating your clicker ID'));
     $r->print(<<ENDSCREEN);      $r->print(<<ENDSCREEN);
 <form name="prefs" action="/adm/preferences" method="post">  <form name="prefs" action="/adm/preferences" method="post">
Line 648  sub verify_and_change_clicker { Line 669  sub verify_and_change_clicker {
     &Apache::lonnet::appenv({'environment.clickers' => $newclickers});      &Apache::lonnet::appenv({'environment.clickers' => $newclickers});
     my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Registering clickers: [_1]',$newclickers));      my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Registering clickers: [_1]',$newclickers));
     $message=&Apache::loncommon::confirmwrapper($message);      $message=&Apache::loncommon::confirmwrapper($message);
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r, $message);
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 659  ENDVCSCREEN Line 678  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
Line 696  sub verify_and_change_domcoord { Line 720  sub verify_and_change_domcoord {
     }      }
     my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Block access to construction space').'</i>','<tt>'.$status.'</tt>'));      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);      $message=&Apache::loncommon::confirmwrapper($message);
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r,$message);
 $message  
 ENDVCSCREEN  
 }  }
   
 #################################################################  #################################################################
Line 755  sub msgforwardchanger { Line 777  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   => 'Save',
                                           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',
                                         );                                          );
       Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changemsgforward',
    text => 'Change Message Forwarding/Notification'});
       $r->print(Apache::loncommon::start_page('Message Management'));
       $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 769  sub msgforwardchanger { Line 797  sub msgforwardchanger {
     my %allnot = &get_notifications(\%userenv);      my %allnot = &get_notifications(\%userenv);
     my $validatescript = &Apache::lonhtmlcommon::javascript_valid_email();      my $validatescript = &Apache::lonhtmlcommon::javascript_valid_email();
     my $jscript = qq|      my $jscript = qq|
 <script type="text/javascript">  <script type="text/javascript" language="JavaScript">
 function validate() {  function validate() {
     for (var i=0; i<document.prefs.numnotify.value; i++) {      for (var i=0; i<document.prefs.numnotify.value; i++) {
         var checkaddress = 0;          var checkaddress = 0;
Line 962  sub verify_and_change_msgforward { Line 990  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 1057  sub verify_and_change_msgforward { Line 1085  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('Page Display Settings'));
       $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=&Apache::lonlocal::texthash(
                     'tabbg' => 'Header Background Color',          'pgbg'     => 'Page Background Color',
                     'sidebg'=> 'Header Border Color',          'tabbg'    => 'Header Background Color',
                     'font'  => 'Font Color',          'sidebg'   => 'Header Border Color',
                     'link'  => 'Un-Visited Link Color',          'font'     => 'Font Color',
                     'vlink' => 'Visited Link Color',          'fontmenu' => 'Font Menu Color',
                     'alink' => 'Active Link Color');          'link'     => 'Un-Visited Link Color',
           'vlink'    => 'Visited Link Color',
           'alink'    => 'Active Link Color',
       );
     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 1086  sub colorschanger { Line 1122  sub colorschanger {
     my $resetbutton = &mt('Reset All');      my $resetbutton = &mt('Reset All');
     my $resetbuttondesc = &mt('Reset All Colors to Default');      my $resetbuttondesc = &mt('Reset All Colors to Default');
     $r->print(<<ENDCOL);      $r->print(<<ENDCOL);
 <script type="text/javascript">  <script type="text/javascript" language="JavaScript">
   
     function pclose() {      function pclose() {
         parmwin=window.open("/adm/rat/empty.html","LONCAPAparms",          parmwin=window.open("/adm/rat/empty.html","LONCAPAparms",
Line 1123  $start_data_table Line 1159  $start_data_table
 $chtable  $chtable
 $end_data_table  $end_data_table
 </table>  </table>
   <p>
 <input type="submit" value="$savebutton" />  <input type="submit" value="$savebutton" />
 <input type="submit" name="resetall" value="$resetbutton" title="$resetbuttondesc" />  <input type="submit" name="resetall" value="$resetbutton" title="$resetbuttondesc" />
   </p>
 </form>  </form>
 ENDCOL  ENDCOL
 }  }
Line 1134  sub verify_and_change_colors { Line 1172  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=&Apache::lonlocal::texthash(
                     'tabbg' => 'Header Background Color',          'pgbg'     => 'Page Background Color',
                     'sidebg'=> 'Header Border Color',          'tabbg'    => 'Header Background Color',
                     'font'  => 'Font Color',          'sidebg'   => 'Header Border Color',
                     'link'  => 'Un-Visited Link Color',          'font'     => 'Font Color',
                     'vlink' => 'Visited Link Color',   'fontmenu' => 'Font Menu Color',
                     'alink' => 'Active Link Color');          'link'     => 'Un-Visited Link Color',
           'vlink'    => 'Visited Link Color',
           'alink'    => 'Active Link Color',
       );
   
     my $message='';      my $message='';
     foreach my $item (keys %colortypes) {      foreach my $item (keys %colortypes) {
Line 1164  sub verify_and_change_colors { Line 1205  sub verify_and_change_colors {
     &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  
 <form name="client" action="/adm/preferences" method="post">  
 <input type="hidden" name="action" value="changecolors" />  
 </form>  
 ENDVCCOL  
 }  }
   
 ######################################################  ######################################################
Line 1181  sub passwordchanger { Line 1217  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'});
       unless ($caller eq 'reset_by_email') {
           $r->print(Apache::loncommon::start_page('Personal Data'));
           $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 1234  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 [_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.'
                           '<a href="/adm/resetpw">','</a>')                               ,'<a href="/adm/resetpw">','</a>')
                 );                  );
                 return;                  return;
             }              }
Line 1262  ENDFORM Line 1305  ENDFORM
 sub jscript_send {  sub jscript_send {
     my ($caller) = @_;      my ($caller) = @_;
     my $output = qq|      my $output = qq|
 <script language="JavaScript">  <script type="text/javascript" language="JavaScript">
   
     function send() {      function send() {
         uextkey=this.document.client.elements.ukey_cpass.value;          uextkey=this.document.client.elements.ukey_cpass.value;
Line 1290  sub jscript_send { Line 1333  sub jscript_send {
                    this.document.client.elements.uname.value;                     this.document.client.elements.uname.value;
         this.document.pserver.elements.udom.value =          this.document.pserver.elements.udom.value =
                    this.document.client.elements.udom.options[this.document.client.elements.udom.selectedIndex].value;                     this.document.client.elements.udom.options[this.document.client.elements.udom.selectedIndex].value;
         this.document.pserver.elements.email.value =  
                    this.document.client.elements.email.value;  
 |;  |;
     }      }
     $ output .= qq|      $ output .= qq|
Line 1311  sub client_form { Line 1352  sub client_form {
                 'newpass' => 'New Password',                  'newpass' => 'New Password',
                 'confirmpass' => 'Confirm Password',                  'confirmpass' => 'Confirm Password',
                 'changepass' => 'Save');                  'changepass' => 'Save');
     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 1352  sub client_form { Line 1395  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 1374  sub server_form { Line 1417  sub server_form {
 <input type="hidden" name="token"   value="$mailtoken" />  <input type="hidden" name="token"   value="$mailtoken" />
 <input type="hidden" name="uname"   value="" />  <input type="hidden" name="uname"   value="" />
 <input type="hidden" name="udom"   value="" />  <input type="hidden" name="udom"   value="" />
 <input type="hidden" name="email"   value="" />  
   
 |;  |;
     }      }
Line 1519  ENDERROR Line 1561  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 = &Apache::lonhtmlcommon::confirm_success(&mt('The password for user [_1] was successfully changed.','<i>'.$user.'<i>'));
         if ($caller eq 'reset_by_email') {          if ($caller eq 'reset_by_email') {
             $r->print($message.'<br />');              $r->print($message.'<br />');
         } else {          } else {
             $r->print(&Apache::loncommon::confirmwrapper($message));              &print_main_menu($r, $message);
         }          }
     } else {      } else {
  # error error: run in circles, scream and shout   # error error: run in circles, scream and shout
         if ($caller eq 'reset_by_email') {          $message = &Apache::lonhtmlcommon::confirm_success(
             if (!$result) {            &mt("The password for user [_1] was not changed.",'<i>'.$user.'</i>').' '.&mt('Please make sure your old password was entered correctly.'),1);
                 return 1;          unless ($caller eq 'reset_by_email') {
             } else {              $message=&Apache::loncommon::confirmwrapper($message);
                 return $result;              &print_main_menu($r, $message);
             }  
         } else {  
             $message = &Apache::lonhtmlcommon::confirm_success(  
                 &mt("The password for user [_1] was not changed.",'<i>'.$user.'</i>').' '.&mt('Please make sure your old password was entered correctly.'),1);  
             $r->print(&Apache::loncommon::confirmwrapper($message));  
         }          }
           return 1;
     }      }
     return;      return;
 }  }
Line 1547  ENDERROR Line 1585  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('Message Management'));
       $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 1560  sub discussionchanger { Line 1603  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 1586  sub discussionchanger { Line 1629  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 1611  sub discussionchanger { Line 1654  sub discussionchanger {
 <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> 
 END  END
   
     $r->print('<p class="LC_info">'.$lt{'thde'}.'</p>');      $r->print('<p class="LC_info">'.$lt{'thde'}.'</p>');
   
     $r->print(&Apache::loncommon::start_data_table());      $r->print(&Apache::loncommon::start_data_table());
Line 1637  END Line 1681  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 />'.  
               '<input type="submit" name="sub" value="'.&mt('Save').'" />'.      $r->print('<br />'
               '</form>');               .'<input type="submit" name="sub" value="'.&mt('Save').'" />'
                .'</form>'
       );
 }  }
                                                                                                                                                                                                                                   
 sub verify_and_change_discussion {  sub verify_and_change_discussion {
Line 1650  sub verify_and_change_discussion { Line 1696  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');
         }          }
Line 1672  sub verify_and_change_discussion { Line 1718  sub verify_and_change_discussion {
         }          }
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);      $message=&Apache::loncommon::confirmwrapper($message);
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r, $message);
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 1682  ENDVCSCREEN Line 1726  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 1695  sub coursedisplaychanger { Line 1744  sub coursedisplaychanger {
     $whatsnewselect = '';      $whatsnewselect = '';
         }          }
     }      }
     my %pagenames = (      my %pagenames = &Apache::lonlocal::texthash(
                        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]first resource[_2] in the course.','<b>','</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]What's New Page[_2] - a summary of items in the course which require attention.",'<b>','</b>');
   
     $r->print('<br /><b>'.      $r->print('<br /><b>'
               &mt('Set the default page to be displayed when you select a course role').               .&mt('Set the default page to be displayed when you select a course role')
               '</b>&nbsp;'.               .'</b>&nbsp;'
               &mt('(Currently: [_1])',$pagenames{$currvalue}).'<br />'.               .&mt('(Currently: [_1])',$pagenames{$currvalue})
               &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 /><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] 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 1754  sub verify_and_change_coursepage { Line 1805  sub verify_and_change_coursepage {
                         $refpage.'">'.$lt{'dasp'}.'</a></font>';                          $refpage.'">'.$lt{'dasp'}.'</a></font>';
         }          }
     }      }
     $message = &Apache::lonhtmlcommon::confirm_success($message);      &print_main_menu($r, &Apache::lonhtmlcommon::confirm_success($message));
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
   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 => 'Personal Information Page',
    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 &amp; 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 discussion boards and individual resources in all your courses.'
       },
    ]
       },
       { categorytitle=>'Other',
    items =>[
       { linktext => 'Register Response Devices (&quot;Clickers&quot;)',
    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('My Space'));
       $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 1768  ENDVCSCREEN Line 2002  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',
             help =>
             'Prefs_About_Me,Prefs_Language,Prefs_Screen_Name_Nickname,Change_Colors,Change_Password,Prefs_Messages,Change_Discussion_Display'});
       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 1825  sub handler { Line 2145  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 1838  sub handler { Line 2158  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 Personal Information Page},
                          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 1863  sub handler { Line 2183  sub handler {
                       printmenu => 'yes',                        printmenu => 'yes',
                       subroutine => \&verify_and_change_colors,                        subroutine => \&verify_and_change_colors,
                       }));                        }));
     if ($env{'user.adv'}) {      push (@Options,({ action => 'changelanguages',
         push (@Options,({ action => 'changelanguages',                        linktext => 'Change Language Preferences',
                           linktext => 'Change Language Preferences',                        href => '/adm/preferences',
                           href => '/adm/preferences',        help => 'Prefs_Language',
               help => 'Prefs_Language',                        breadcrumb=>
                           breadcrumb=>                            { href => '/adm/preferences?action=changelanguages',
                               { href => '/adm/preferences?action=changelanguages',                              text => 'Change Language'},
                                 text => 'Change Language'},                        subroutine =>  \&languagechanger,
                           subroutine =>  \&languagechanger,                    },
                       },                      { action => 'verify_and_change_languages',
                         { action => 'verify_and_change_languages',                        breadcrumb=>
                           breadcrumb=>                            {href => '/adm/preferences?action=changelanguages',
                               {href => '/adm/preferences?action=changelanguages',                             text => 'Change Language'},
                                text => 'Change Language'},                        printmenu => 'yes',
                           printmenu => 'yes',                        subroutine=>\&verify_and_change_languages, }
                           subroutine=>\&verify_and_change_languages, }  
                     ));                      ));
     }  
     push (@Options,({ action => 'changewysiwyg',      push (@Options,({ action => 'changewysiwyg',
                       linktext => 'Change WYSIWYG Editor Preferences',                        linktext => 'Change WYSIWYG Editor Preferences',
                       href => '/adm/preferences',                        href => '/adm/preferences',
Line 1973  sub handler { Line 2291  sub handler {
                             text => 'Change Main Menu'},                              text => 'Change Main Menu'},
                       printmenu => 'yes',                        printmenu => 'yes',
                       }));                        }));
     if ($env{'user.adv'}) {  
         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 =>
                               { href => '/adm/preferences?action=changeclicker',                            { href => '/adm/preferences?action=changeclicker',
                                 text => 'Register Clicker'},                              text => 'Register Clicker'},
                           },                        },
                           { action   => 'verify_and_change_clicker',                      { action   => 'verify_and_change_clicker',
                           subroutine => \&verify_and_change_clicker,                        subroutine => \&verify_and_change_clicker,
                           breadcrumb =>                        breadcrumb =>
                               { href => '/adm/preferences?action=changeclicker',                            { href => '/adm/preferences?action=changeclicker',
                                 text => 'Register Clicker'},                              text => 'Register Clicker'},
                           printmenu => 'yes',                        printmenu => 'yes',
                           }));                        }));
     }  
     my %author_roles = &Apache::lonnet::get_my_roles($user,$domain,'userroles','',['au']);      my %author_roles = &Apache::lonnet::get_my_roles($user,$domain,'userroles','',['au']);
     if (keys(%author_roles) > 0) {      if (keys(%author_roles) > 0) {
       push (@Options,({ action   => 'changedomcoord',        push (@Options,({ action   => 'changedomcoord',
Line 2043  sub handler { Line 2360  sub handler {
                        }));                         }));
     }      }
   
     if ($env{'user.name'} =~ /^(albertel|fox|foxr|kortemey|korte|raeburn)$/) {      if (($env{'user.name'} =~ /^(albertel|fox|foxr|kortemey|korte|raeburn)$/)
        && ($env{'user.domain'} =~/^(msu|gerd)$/)){
         push (@Options,({ action => 'debugtoggle',          push (@Options,({ action => 'debugtoggle',
                           printmenu => 'yes',                            printmenu => 'yes',
                           subroutine => \&toggle_debug,                            subroutine => \&toggle_debug,

Removed from v.1.125.8.3  
changed lines
  Added in v.1.159


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