Diff for /loncom/interface/lonpreferences.pm between versions 1.125.6.2 and 1.156

version 1.125.6.2, 2009/09/16 21:04:27 version 1.156, 2009/05/04 19:35:31
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 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('Change').'" />');      $r->print('<br /><input type="submit" value="'.&mt('Save').'" />');
 }  }
   
   
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});
     $r->print('<p>'.&mt('Setting WYSIWYG editor to:').' '.&mt($newsetting).'</p>');      &print_main_menu($r,'<p>'.&Apache::lonhtmlcommon::confirm_success(&mt('Setting WYSIWYG editor to:').' '
    .&mt($newsetting)).'</p>');
 }  }
   
 ################################################################  ################################################################
Line 137  sub verify_and_change_wysiwyg { Line 144  sub verify_and_change_wysiwyg {
 ################################################################  ################################################################
 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 158  sub languagechanger { Line 171  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('Change').'" />');      $r->print('<br /><input type="submit" value="'.&mt('Save').'" />');
 }  }
   
   
Line 173  sub verify_and_change_languages { Line 186  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=&mt('Set new preferred languages to ').'<tt>"'.$newlanguage.'"</tt>.';          $message=&Apache::lonhtmlcommon::confirm_success(&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=&mt('Reset preferred language.');          $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset preferred language.'));
     }      }
     &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 190  ENDVCSCREEN Line 201  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 207  sub texenginechanger { Line 223  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'   => 'Change',        'change'   => 'Save',
       'exmpl'    => 'Examples',        'exmpl'    => 'Examples',
       'jsmath'   => 'jsMath:',        'jsmath'   => 'jsMath:',
       'tth'      => 'tth (TeX to HTML):',        'tth'      => 'tth (TeX to HTML):',
Line 219  sub texenginechanger { Line 235  sub texenginechanger {
 <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'}:<br />  $lt{'preftxt'}: $selectionbox 
 $selectionbox <input type="submit" value="$lt{'change'}" />  <br />
   <input type="submit" value="$lt{'change'}" />
 </p>  </p>
 </form>  </form>
 <br />  <br />
Line 283  sub verify_and_change_texengine { Line 300  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=&mt('Set new preferred math display to ').'<tt>"'.$newtexengine.'"</tt>.';          $message=&Apache::lonhtmlcommon::confirm_success(&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=&mt('Reset preferred math display.');          $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset preferred math display.'));
     }      }
       &print_main_menu($r, $message);
   
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 307  sub rolesprefchanger { Line 320  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;
Line 376  sub rolesprefchanger { Line 394  sub rolesprefchanger {
 </p>  </p>
 '.$roles_check_list.'  '.$roles_check_list.'
 <br />  <br />
 <input type="submit" value="'.&mt('Change').'" />  <input type="submit" value="'.&mt('Save').'" />
 </form>');  </form>');
 }  }
   
Line 455  sub verify_and_change_rolespref { Line 473  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 />".&mt('Unfreezing '.$role.': [_1]',$role_text{$role_key})."\n";      $message .= "<br />".&Apache::lonhtmlcommon::confirm_success(&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 463  sub verify_and_change_rolespref { Line 481  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 />".&mt('Freezing '.$role.': [_1]',$role_text{$role_key})."\n";               $message .= "<br />".
                &Apache::lonhtmlcommon::confirm_success(&mt('Freezing '.$role.': [_1]',$role_text{$role_key}))."\n";
              &Apache::lonhtmlcommon::store_recent('roles',               &Apache::lonhtmlcommon::store_recent('roles',
                                           $role_key,' ',1);                                            $role_key,' ',1);
         }          }
     }      }
     $message .= "<hr /><br />\n";      $message .= "<hr /><br />\n";
       &print_main_menu($r, $message);
     $r->print(<<ENDRPSCREEN);  
 $message  
 ENDRPSCREEN  
 }  }
   
   
Line 488  sub screennamechanger { Line 504  sub screennamechanger {
         ('environment',['screenname','nickname']);          ('environment',['screenname','nickname']);
     my $screenname=$userenv{'screenname'};      my $screenname=$userenv{'screenname'};
     my $nickname=$userenv{'nickname'};      my $nickname=$userenv{'nickname'};
     my %lt = &Apache::lonlocal::texthash(      Apache::lonhtmlcommon::add_breadcrumb(
                                           text_screenname  => 'New screenname (shown if you post anonymously):',   { href => '/adm/preferences?action=changescreenname',
                                           text_nickname  => 'New nickname (shown if you post non-anonymously):',                    text => 'Change Screen Name'});
                                           text_submit => 'Change',      $r->print(Apache::loncommon::start_page('Personal Data'));
                                         );      $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Screen Name'));
     $r->print(<<ENDSCREEN);      $r->print('<p>'
 <form name="prefs" action="/adm/preferences" method="post">               .&mt('Change the name that is displayed in your posts.')
 <input type="hidden" name="action" value="verify_and_change_screenname" />               .'</p>'
 <br />$lt{'text_screenname'}      );
 <input type="text" size="20" value="$screenname" name="screenname" />      $r->print('<form name="prefs" action="/adm/preferences" method="post">'
 <br />$lt{'text_nickname'}               .'<input type="hidden" name="action" value="verify_and_change_screenname" />'
 <input type="text" size="20" value="$nickname" name="nickname" />               .&Apache::lonhtmlcommon::start_pick_box()
 <br />               .&Apache::lonhtmlcommon::row_title(&mt('New screenname (shown if you post anonymously)'))
 <input type="submit" value="$lt{'text_submit'}" />               .'<input type="text" size="20" value="'.$screenname.'" name="screenname" />'
 </form>               .&Apache::lonhtmlcommon::row_closure()
 ENDSCREEN               .&Apache::lonhtmlcommon::row_title(&mt('New nickname (shown if you post non-anonymously)'))
                .'<input type="text" size="20" value="'.$nickname.'" name="nickname" />'
                .&Apache::lonhtmlcommon::row_closure()
                .&Apache::lonhtmlcommon::row_title()
                .'<input type="submit" value="'.&mt('Save').'" />'
                .&Apache::lonhtmlcommon::row_closure(1)
                .&Apache::lonhtmlcommon::end_pick_box()
                .'</form>'
       );
 }  }
   
 sub verify_and_change_screenname {  sub verify_and_change_screenname {
Line 517  sub verify_and_change_screenname { Line 541  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=&mt('Set new screenname to ').'<tt>"'.$newscreen.'."</tt>.';          $message=&Apache::lonhtmlcommon::confirm_success(&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=&mt('Reset screenname.');          $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset screenname.'));
     }      }
 # Nickname  # Nickname
     $message.='<br />';      $message.='<br />';
Line 530  sub verify_and_change_screenname { Line 554  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.=&mt('Set new nickname to ').'<tt>"'.$newscreen.'"</tt>.';          $message.=&Apache::lonhtmlcommon::confirm_success(&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.=&mt('Reset nickname.');          $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Reset nickname.'));
     }      }
     &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);      &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r, $message);
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 547  ENDVCSCREEN Line 569  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 565  sub iconchanger { Line 593  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('Change');      my $change=&mt('Save');
     $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 585  sub verify_and_change_icons { Line 613  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});
     $r->print(&mt('Set menu mode to [_1].',$newicons));      &print_main_menu($r, &Apache::lonhtmlcommon::confirm_success(&mt('Set menu mode to [_1].',$newicons)));
 }  }
   
 ################################################################  ################################################################
Line 594  sub verify_and_change_icons { Line 622  sub verify_and_change_icons {
   
 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 601  sub clickerchanger { Line 634  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">
 <input type="hidden" name="action" value="verify_and_change_clicker" />  <input type="hidden" name="action" value="verify_and_change_clicker" />
 <label>$text $helplink<br />  <label>$helplink<br /><br />$text<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 627  sub verify_and_change_clicker { Line 661  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});
     $r->print(&mt('Registering clickers: [_1]',$newclickers));      &print_main_menu($r, &Apache::lonhtmlcommon::confirm_success(&mt('Registering clickers: [_1]',$newclickers)));
 }  }
   
 ################################################################  ################################################################
Line 636  sub verify_and_change_clicker { Line 670  sub verify_and_change_clicker {
   
 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 646  sub domcoordchanger { Line 685  sub domcoordchanger {
     }      }
     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('Change');      my $change=&mt('Save');
     $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" />
Line 665  sub verify_and_change_domcoord { Line 704  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'}});
     $r->print(&mt('Registering Domain Coordinator access restrictions.'));      &print_main_menu($r,&Apache::lonhtmlcommon::confirm_success(&mt('Registering Domain Coordinator access restrictions.')));
 }  }
   
 #################################################################  #################################################################
Line 721  sub msgforwardchanger { Line 760  sub msgforwardchanger {
                                           foad  => 'Forwarding Address(es)',                                            foad  => 'Forwarding Address(es)',
                                           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  => 'Email Address(es) which should be notified about new LON-CAPA messages', # old: 'Message Notification Email Address(es)',                                            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   => 'Change',                                            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 'Change' 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 to preferences menu',                                            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 894  ENDMSG Line 939  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{'chg'}" onclick="javascript:validate()" />  
 <input type="button" value="$lt{'prme'}" onclick="location.href='/adm/preferences'" />  <input type="button" value="$lt{'prme'}" onclick="location.href='/adm/preferences'" />
   <input type="button" value="$lt{'chg'}" onclick="javascript:validate()" />
 </form>  </form>
 |);  |);
   
Line 1024  sub verify_and_change_msgforward { Line 1069  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();
Line 1031  sub colorschanger { Line 1081  sub colorschanger {
                     'tabbg' => 'Header Background',                      'tabbg' => 'Header Background',
                     'sidebg'=> 'Header Border',                      'sidebg'=> 'Header Border',
                     'font'  => 'Font',                      'font'  => 'Font',
       'fontmenu' => 'Font Menu',
                     'link'  => 'Un-Visited Link',                      'link'  => 'Un-Visited Link',
                     'vlink' => 'Visited Link',                      'vlink' => 'Visited Link',
                     'alink' => 'Active Link');                      'alink' => 'Active Link');
Line 1049  sub colorschanger { Line 1100  sub colorschanger {
     }      }
     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 $save = &mt('Save');
       my $rstall = &mt('Reset All');
       my $resetdefault = &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 1087  $start_data_table Line 1141  $start_data_table
 $chtable  $chtable
 $end_data_table  $end_data_table
 </table>  </table>
 <input type="submit" value="Change Custom Colors" />  <input type="submit" value="$save" />
 <input type="submit" name="resetall" value="Reset All Colors to Default" />  <input type="submit" name="resetall" value="$rstall" title="$resetdefault" />
 </form>  </form>
 ENDCOL  ENDCOL
 }  }
Line 1102  sub verify_and_change_colors { Line 1156  sub verify_and_change_colors {
                     'tabbg' => 'Header Background',                      'tabbg' => 'Header Background',
                     'sidebg'=> 'Header Border',                      'sidebg'=> 'Header Border',
                     'font'  => 'Font',                      'font'  => 'Font',
       'fontmenu' => 'Font Menu',
                     'link'  => 'Un-Visited Link',                      'link'  => 'Un-Visited Link',
                     'vlink' => 'Visited Link',                      'vlink' => 'Visited Link',
                     'alink' => 'Active Link');                      'alink' => 'Active Link');
Line 1113  sub verify_and_change_colors { Line 1168  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.=&mt('Set '.$colortypes{$item}.' to ').'<tt>"'.$color.'"</tt>.<br />';      $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Set '.$colortypes{$item}.' to ').'<tt>"'.$color.'"</tt>').'<br />';
  } else {   } else {
     &Apache::lonnet::del('environment',[$entry]);      &Apache::lonnet::del('environment',[$entry]);
     &Apache::lonnet::delenv('environment.'.$entry);      &Apache::lonnet::delenv('environment.'.$entry);
     $message.=&mt('Reset '.$colortypes{$item}.'.').'<br />';      $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Reset '.$colortypes{$item}.'.')).'<br />';
  }   }
     }      }
     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  
 <form name="client" action="/adm/preferences" method="post">  
 <input type="hidden" name="action" value="changecolors" />  
 </form>  
 ENDVCCOL  
 }  }
   
 ######################################################  ######################################################
Line 1141  sub passwordchanger { Line 1191  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 1151  sub passwordchanger { Line 1208  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 <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.'));                  $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>')
                   );
                 return;                  return;
             }              }
             if (defined($data{time})) {              if (defined($data{time})) {
Line 1266  sub client_form { Line 1325  sub client_form {
                 'currentpass' => 'Current Password',                  'currentpass' => 'Current Password',
                 'newpass' => 'New Password',                  'newpass' => 'New Password',
                 'confirmpass' => 'Confirm Password',                  'confirmpass' => 'Confirm Password',
                 'changepass' => 'Change Password');                  'changepass' => 'Save');
   
     my $output = qq|      my $output = qq|
 <form name="client" >  <form name="client" >
Line 1300  sub client_form { Line 1359  sub client_form {
 <tr><td class="LC_preferences_labeltext"><label for="newpass_2">$lt{'confirmpass'}</label></td>  <tr><td class="LC_preferences_labeltext"><label for="newpass_2">$lt{'confirmpass'}</label></td>
     <td><input type="password" name="newpass_2" size="10"  /> </td></tr>      <td><input type="password" name="newpass_2" size="10"  /> </td></tr>
 <tr><td colspan="2" align="center">  <tr><td colspan="2" align="center">
     <input type="button" value="$lt{'changepass'}" onClick="send();">      <input type="button" value="$lt{'changepass'}" onClick="send();" />
 </table>  </table>
 <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'}" />
Line 1474  ENDERROR Line 1533  ENDERROR
     my $result = &Apache::lonnet::changepass      my $result = &Apache::lonnet::changepass
  ($user,$domain,$currentpass,$newpass1,$homeserver,$caller);   ($user,$domain,$currentpass,$newpass1,$homeserver,$caller);
     # Inform the user the password has (not?) been changed      # Inform the user the password has (not?) been changed
       my $message;
     if ($result =~ /^ok$/) {      if ($result =~ /^ok$/) {
  $r->print("<h3>".&mt('The password for [_1] was successfully changed',$user)."</h3>");          $message = &Apache::lonhtmlcommon::confirm_success(&mt('The password for [_1] was successfully changed.',$user));
           if ($caller eq 'reset_by_email') {
               $r->print($message.'<br />');
           } else {
               &print_main_menu($r, $message);
           }
     } else {      } else {
  # error error: run in circles, scream and shout   # error error: run in circles, scream and shout
         $r->print("<h3><span class='LC_error'>".&mt("The password for [_1] was not changed",$user)."</span></h3>".          $message = &Apache::lonhtmlcommon::confirm_success(
                   &mt('Please make sure your old password was entered correctly.'));            &mt("The password for [_1] was not changed.",$user).' '.&mt('Please make sure your old password was entered correctly.'),1);
           unless ($caller eq 'reset_by_email') {
               &print_main_menu($r, $message);
           }
         return 1;          return 1;
     }      }
     return;      return;
Line 1490  ENDERROR Line 1558  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 1518  sub discussionchanger { Line 1591  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 bulletin boards and individual resources in all your courses.',          'sdpf' => 'Set display preferences for discussion posts for both discussion 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 bulletin board or resource, and',          'whpo' => 'Which posts are displayed when you display a discussion 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  END Line 1653  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 /><br /><input type="submit" name="sub" value="'.&mt('Save').'" /><br /><br />'.&mt('Note').': '.$lt{'thde'}.'</form>');      $r->print('<br /><br /><input type="submit" name="sub" value="'.&mt('Save').'" /><br /><br />'.&mt('Note').': '.$lt{'thde'}.'</form>');
 }  }
                                                                                                                                                                                                                                   
Line 1603  sub verify_and_change_discussion { Line 1677  sub verify_and_change_discussion {
     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.=&mt('In discussions: new posts will be cease to be identified as "NEW" after display.').'<br />';              $message.=&Apache::lonhtmlcommon::confirm_success(&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.=&mt('In discussions: posts will be identified as "NEW" until marked as read by the reader.').'<br />';              $message.=&Apache::lonhtmlcommon::confirm_success(&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');
         }          }
     }      }
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r, $message);
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 1622  ENDVCSCREEN Line 1694  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 1657  sub coursedisplaychanger { Line 1734  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('Change').'" />      $r->print('<br /><br /><input type="submit" value="'.&mt('Save').'" />
 </form>');  </form>');
 }  }
   
Line 1670  sub verify_and_change_coursepage { Line 1747  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 listing course action items",           'dasp' => "Display the What's New Page", 
     );      );
     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 1696  sub verify_and_change_coursepage { Line 1773  sub verify_and_change_coursepage {
                         $refpage.'">'.$lt{'dasp'}.'</a></font>';                          $refpage.'">'.$lt{'dasp'}.'</a></font>';
         }          }
     }      }
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r, &Apache::lonhtmlcommon::confirm_success($message));
 $message  
 <br /><br />  
 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 1710  ENDVCSCREEN Line 1970  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 1767  sub handler { Line 2113  sub handler {
                       }));                        }));
   
     push (@Options,({ action   => 'changemsgforward',      push (@Options,({ action   => 'changemsgforward',
                       linktext => 'Change Message Forwarding and Notification Email Addresses',                        linktext => 'Change Message Forwarding and Notification E-mail Addresses',
                       href     => '/adm/preferences',                        href     => '/adm/preferences',
                       help     => 'Prefs_Messages',                        help     => 'Prefs_Messages',
                       breadcrumb =>                         breadcrumb => 
Line 1780  sub handler { Line 2126  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 =>                       linktext =>
                              q{Edit the 'About Me' Personal Information Screen},                           q{Edit the Personal Information Page},
            help => 'Prefs_About_Me',       help => 'Prefs_About_Me',
                          href => $aboutmeaction});                       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 1806  sub handler { Line 2151  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',
Line 1823  sub handler { Line 2167  sub handler {
                       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 1855  sub handler { Line 2198  sub handler {
                       printmenu => 'yes',                        printmenu => 'yes',
                       subroutine => \&verify_and_change_discussion, }                        subroutine => \&verify_and_change_discussion, }
                     ));                      ));
     if ($env{'user.adv'}) {  
         my $role = ($env{'user.adv'} ? 'Roles' : 'Course');      my $role = ($env{'user.adv'} ? 'Roles' : 'Course');
         push (@Options,({ action   => 'changerolespref',      push (@Options,({ action   => 'changerolespref',
                       linktext => 'Change '.$role.' Page Preferences',                        linktext => 'Change '.$role.' Page Preferences',
                       href     => '/adm/preferences',                        href     => '/adm/preferences',
                       subroutine => \&rolesprefchanger,                        subroutine => \&rolesprefchanger,
Line 1873  sub handler { Line 2216  sub handler {
                       printmenu => 'yes',                        printmenu => 'yes',
                       }));                        }));
   
         push (@Options,({ action   => 'changetexenginepref',      push (@Options,({ action   => 'changetexenginepref',
                       linktext => 'Change How Math Equations Are Displayed',                        linktext => 'Change How Math Equations Are Displayed',
                       href     => '/adm/preferences',                        href     => '/adm/preferences',
                       subroutine => \&texenginechanger,                        subroutine => \&texenginechanger,
Line 1889  sub handler { Line 2232  sub handler {
                       printmenu => 'yes',                        printmenu => 'yes',
                       }));                        }));
   
         if ($env{'environment.remote'} eq 'off') {      if ($env{'environment.remote'} eq 'off') {
     push (@Options,({ action => 'launch',   push (@Options,({ action => 'launch',
         linktext => 'Launch Remote Control',    linktext => 'Launch Remote Control',
       href => '/adm/remote?url=/adm/preferences',    href => '/adm/remote?url=/adm/preferences',
           }));        }));
         } else {      } else {
     push (@Options,({ action => 'collapse',   push (@Options,({ action => 'collapse',
   linktext => 'Collapse Remote Control',    linktext => 'Collapse Remote Control',
   href => '/adm/remote?url=/adm/preferences',    href => '/adm/remote?url=/adm/preferences',
           }));        }));
         }  
     }      }
   
     push (@Options,({ action   => 'changeicons',      push (@Options,({ action   => 'changeicons',
Line 1917  sub handler { Line 2259  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 ("Clickers")',                        linktext => 'Register Response Devices ("Clickers")',
                       href     => '/adm/preferences',                        href     => '/adm/preferences',
                       subroutine => \&clickerchanger,                        subroutine => \&clickerchanger,
Line 1933  sub handler { Line 2275  sub handler {
                             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',
                         linktext => 'Restrict Domain Coordinator Access',                          linktext => 'Restrict Domain Coordinator Access',
                         href     => '/adm/preferences',                          href     => '/adm/preferences',
                         subroutine => \&domcoordchanger,                          subroutine => \&domcoordchanger,
Line 1950  sub handler { Line 2292  sub handler {
                               text => 'Restrict Domain Coordinator Access'},                                text => 'Restrict Domain Coordinator Access'},
                         printmenu => 'yes',                          printmenu => 'yes',
                       }));                        }));
         }  
     }      }
   
     push (@Options,({ action   => 'lockwarning',      push (@Options,({ action   => 'lockwarning',
Line 1987  sub handler { Line 2328  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.6.2  
changed lines
  Added in v.1.156


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