Diff for /loncom/interface/lonpreferences.pm between versions 1.125.8.2 and 1.157

version 1.125.8.2, 2009/09/23 15:32:00 version 1.157, 2009/05/05 11:40:51
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 129  sub verify_and_change_wysiwyg { Line 135  sub verify_and_change_wysiwyg {
     my $newsetting=$env{'form.wysiwyg'};      my $newsetting=$env{'form.wysiwyg'};
     &Apache::lonnet::put('environment',{'wysiwygeditor' => $newsetting});      &Apache::lonnet::put('environment',{'wysiwygeditor' => $newsetting});
     &Apache::lonnet::appenv({'environment.wysiwygeditor' => $newsetting});      &Apache::lonnet::appenv({'environment.wysiwygeditor' => $newsetting});
     my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('WYSIWYG Editor').'</i>','<tt>'.&mt($newsetting).'</tt>'));      &print_main_menu($r,'<p>'.&Apache::lonhtmlcommon::confirm_success(&mt('Setting WYSIWYG editor to:').' '
     $message=&Apache::loncommon::confirmwrapper($message);   .&mt($newsetting)).'</p>');
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 141  ENDVCSCREEN Line 144  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 177  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=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Preferred language').'</i>','<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=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.&mt('Preferred language').'</i>'));          $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset preferred language.'));
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);  
     &Apache::loncommon::flush_langs_cache($user,$domain);      &Apache::loncommon::flush_langs_cache($user,$domain);
     $r->print(<<ENDVCSCREEN);      &print_main_menu($r, $message);
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 195  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 204  sub texenginechanger { Line 215  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 230  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 247  $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 277  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 294  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=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Preferred method to display Math').'</i>','<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=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.&mt('Preferred method to display Math').'</i>'));          $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset preferred math display.'));
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);      &print_main_menu($r, $message);
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 317  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;
     if ($hotlist_flag) {      if ($hotlist_flag) {
  $checked = ' checked="checked"';   $checked = 'checked="checked"';
     }      }
           
     if (!$hotlist_n) { $hotlist_n=3; }      if (!$hotlist_n) { $hotlist_n=3; }
Line 356  sub rolesprefchanger { Line 364  sub rolesprefchanger {
             my $checked = "";              my $checked = "";
             my $value = $recent_roles{$role_key};              my $value = $recent_roles{$role_key};
             if ($frozen_roles{$role_key}) {              if ($frozen_roles{$role_key}) {
                 $checked = ' checked="checked"';                  $checked = "checked=\"checked\"";
             }              }
     $count++;      $count++;
             $roles_check_list .=              $roles_check_list .=
  &Apache::loncommon::start_data_table_row().   &Apache::loncommon::start_data_table_row().
  '<td class="LC_table_cell_checkbox">'.   '<td class="LC_table_cell_checkbox">'.
  "<input type=\"checkbox\"$checked name=\"freezeroles\"".   "<input type=\"checkbox\" $checked name=\"freezeroles\"".
  " id=\"freezeroles$count\" value=\"$role_key\" /></td>".   " id=\"freezeroles$count\" value=\"$role_key\" /></td>".
  "<td><label for=\"freezeroles$count\">".   "<td><label for=\"freezeroles$count\">".
  "$role_text{$role_key}</label></td>".   "$role_text{$role_key}</label></td>".
Line 374  sub rolesprefchanger { Line 382  sub rolesprefchanger {
     $r->print('      $r->print('
 <p>'.&mt('Some LON-CAPA users have a long list of '.$lc_role.'s. The Recent '.$role.'s Hotlist feature keeps track of the last N '.$lc_role.'s which have been visited and places a table of these at the top of the '.$lc_role.'s page. People with very few '.$lc_role.'s should leave this feature disabled.').'  <p>'.&mt('Some LON-CAPA users have a long list of '.$lc_role.'s. The Recent '.$role.'s Hotlist feature keeps track of the last N '.$lc_role.'s which have been visited and places a table of these at the top of the '.$lc_role.'s page. People with very few '.$lc_role.'s should leave this feature disabled.').'
 </p>  </p>
 <form name="prefs" action="/adm/preferences" method="post">  <form name="prefs" action="/adm/preferences" method="POST">
 <input type="hidden" name="action" value="verify_and_change_rolespref" />  <input type="hidden" name="action" value="verify_and_change_rolespref" />
 <br /><label>'.&mt('Enable Recent '.$role.'s Hotlist:').'  <br /><label>'.&mt('Enable Recent '.$role.'s Hotlist:').'
 <input type="checkbox"'.$checked.' name="recentroles" value="true" /></label>  <input type="checkbox" '.$checked.' name="recentroles" value="true" /></label>
 <br />'.&mt('Number of '.$role.'s in Hotlist:').'  <br />'.&mt('Number of '.$role.'s in Hotlist:').'
 <select name="recentrolesn" size="1">  <select name="recentrolesn" size="1">
 '.$options.'  '.$options.'
Line 465  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 />".&Apache::lonhtmlcommon::confirm_success(&mt('Unfreezing '.$role.': [_1]','<i>'.$role_text{$role_key}.'</i>'));      $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 474  sub verify_and_change_rolespref { Line 482  sub verify_and_change_rolespref {
     foreach my $role_key (@freeze_list) {      foreach my $role_key (@freeze_list) {
         if (!$frozen_roles{$role_key}) {          if (!$frozen_roles{$role_key}) {
              $message .= "<br />".               $message .= "<br />".
              &Apache::lonhtmlcommon::confirm_success(&mt('Freezing '.$role.': [_1]','<i>'.$role_text{$role_key}.'</i>'));               &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=&Apache::loncommon::confirmwrapper($message);      $message .= "<hr /><br />\n";
     $r->print(<<ENDRPSCREEN);      &print_main_menu($r, $message);
 $message  
 ENDRPSCREEN  
 }  }
   
   
Line 498  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'};
       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 530  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=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Screenname').'</i>','<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=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.&mt('Screenname').'</i>'));          $message=&Apache::lonhtmlcommon::confirm_success(&mt('Reset screenname.'));
     }      }
 # Nickname  # Nickname
     $message.='<br />';      $message.='<br />';
Line 543  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.=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Nickname').'</i>','<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.=&Apache::lonhtmlcommon::confirm_success(&mt('Reset [_1]','<i>'.&mt('Nickname').'</i>'));          $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Reset nickname.'));
     }      }
     &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);      &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);
     $message=&Apache::loncommon::confirmwrapper($message);      &print_main_menu($r, $message);
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 561  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 599  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});
     my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Menu Display').'</i>','<tt>'.$newicons.'</tt>'));      &print_main_menu($r, &Apache::lonhtmlcommon::confirm_success(&mt('Set menu mode to [_1].',$newicons)));
     $message=&Apache::loncommon::confirmwrapper($message);  
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 612  ENDVCSCREEN Line 622  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 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">
Line 646  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});
     my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Registering clickers: [_1]',$newclickers));      &print_main_menu($r, &Apache::lonhtmlcommon::confirm_success(&mt('Registering clickers: [_1]',$newclickers)));
     $message=&Apache::loncommon::confirmwrapper($message);  
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 659  ENDVCSCREEN Line 670  ENDVCSCREEN
   
 sub domcoordchanger {  sub domcoordchanger {
     my $r = shift;      my $r = shift;
       &Apache::lonhtmlcommon::add_breadcrumb(
       { href => '/adm/preferences?action=changedomcoord',
                   text => 'Restrict Domain Coordinator Access'});
       $r->print(Apache::loncommon::start_page('Restrict Domain Coordinator Access'));
       $r->print(Apache::lonhtmlcommon::breadcrumbs('Restrict Domain Coordinator Access'));
     my $user       = $env{'user.name'};      my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};      my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get      my %userenv = &Apache::lonnet::get
         ('environment',['domcoord.author']);          ('environment',['domcoord.author']);
     my $constchecked='';      my $constchecked='';
     if ($userenv{'domcoord.author'} eq 'blocked') {      if ($userenv{'domcoord.author'} eq 'blocked') {
        $constchecked=' checked="checked"';         $constchecked='checked="checked"';
     }      }
     my $text=&mt('By default, the Domain Coordinator can enter your construction space.');      my $text=&mt('By default, the Domain Coordinator can enter your construction space.');
     my $construction=&mt('Block access to construction space');      my $construction=&mt('Block access to construction space');
Line 674  sub domcoordchanger { Line 690  sub domcoordchanger {
 <form name="prefs" action="/adm/preferences" method="post">  <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_domcoord" />  <input type="hidden" name="action" value="verify_and_change_domcoord" />
 $text<br />  $text<br />
 <label><input type="checkbox" name="construction"$constchecked />$construction</label><br />  <label><input type="checkbox" name="construction" $constchecked />$construction</label><br />
 <input type="submit" value="$change" />  <input type="submit" value="$change" />
 </form>  </form>
 ENDSCREEN  ENDSCREEN
Line 688  sub verify_and_change_domcoord { Line 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'}});
     my $status='';      &print_main_menu($r,&Apache::lonhtmlcommon::confirm_success(&mt('Registering Domain Coordinator access restrictions.')));
     if ($domcoord{'domcoord.author'} eq 'blocked') {  
         $status=&mt('on');  
     } else {  
         $status=&mt('off');  
     }  
     my $message=&Apache::lonhtmlcommon::confirm_success(&mt('Set [_1] to [_2]','<i>'.&mt('Block access to construction space').'</i>','<tt>'.$status.'</tt>'));  
     $message=&Apache::loncommon::confirmwrapper($message);  
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 #################################################################  #################################################################
Line 755  sub msgforwardchanger { Line 761  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 781  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 974  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 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();
     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 1106  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 1143  $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 1156  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 1158  sub verify_and_change_colors { Line 1183  sub verify_and_change_colors {
                      .'<br />';                       .'<br />';
  }   }
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);  
   
     my $now = time;      my $now = time;
     &Apache::lonnet::put('environment',{'color.timestamp' => $now});      &Apache::lonnet::put('environment',{'color.timestamp' => $now});
     &Apache::lonnet::appenv({'environment.color.timestamp' => $now});      &Apache::lonnet::appenv({'environment.color.timestamp' => $now});
   
     $r->print(<<ENDVCCOL);      &print_main_menu($r, $message);
 $message  
 <form name="client" action="/adm/preferences" method="post">  
 <input type="hidden" name="action" value="changecolors" />  
 </form>  
 ENDVCCOL  
 }  }
   
 ######################################################  ######################################################
Line 1181  sub passwordchanger { Line 1200  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 1217  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 1288  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 1309  sub client_form { Line 1335  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 1350  sub client_form { Line 1378  sub client_form {
 <input type="hidden" name="lkey_npass2" value="$hexkey->{'lkey_npass2'}" />  <input type="hidden" name="lkey_npass2" value="$hexkey->{'lkey_npass2'}" />
 </form>  </form>
 </p>  </p>
 |;  ENDFORM
     return $output;      return $output;
 }  }
   
Line 1516  ENDERROR Line 1544  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 [_1] was successfully changed.',$user));
         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
         $message = &Apache::lonhtmlcommon::confirm_success(          $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);            &mt("The password for [_1] was not changed.",$user).' '.&mt('Please make sure your old password was entered correctly.'),1);
         if ($caller eq 'reset_by_email') {          unless ($caller eq 'reset_by_email') {
             $r->print($message.'<br />');              &print_main_menu($r, $message);
         } else {  
             $r->print(&Apache::loncommon::confirmwrapper($message));  
         }          }
         return 1;          return 1;
     }      }
Line 1541  ENDERROR Line 1567  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 1554  sub discussionchanger { Line 1585  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 1580  sub discussionchanger { Line 1611  sub discussionchanger {
         'disa' => 'Posts displayed?',          'disa' => 'Posts displayed?',
         'npmr' => 'New posts cease to be identified as "New"?',          'npmr' => 'New posts cease to be identified as "New"?',
         'thde'  => 'The preferences you set here can be overridden within each individual discussion.',          'thde'  => 'The preferences you set here can be overridden within each individual discussion.',
         'chgt' => 'Change to ',          'chgt' => 'Change to '
     );      );
     my $dispchange = $lt{'unread'};      my $dispchange = $lt{'unread'};
     my $markchange = $lt{'ondisp'};      my $markchange = $lt{'ondisp'};
Line 1604  sub discussionchanger { Line 1635  sub discussionchanger {
 <input type="hidden" name="action" value="verify_and_change_discussion" />  <input type="hidden" name="action" value="verify_and_change_discussion" />
 <br />  <br />
 $lt{'sdpf'}<br /> $lt{'prca'}  <ol><li>$lt{'whpo'}</li><li>$lt{'unwh'}</li></ol>   $lt{'sdpf'}<br /> $lt{'prca'}  <ol><li>$lt{'whpo'}</li><li>$lt{'unwh'}</li></ol> 
   <br />
   <br />
 END  END
     $r->print('<p class="LC_info">'.$lt{'thde'}.'</p>');  
   
     $r->print(&Apache::loncommon::start_data_table());      $r->print(&Apache::loncommon::start_data_table());
     $r->print(<<"END");      $r->print(<<"END");
        <tr>         <tr>
Line 1631  END Line 1662  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 /><br /><input type="submit" name="sub" value="'.&mt('Save').'" /><br /><br />'.&mt('Note').': '.$lt{'thde'}.'</form>');
               '</form>');  
 }  }
                                                                                                                                                                                                                                   
 sub verify_and_change_discussion {  sub verify_and_change_discussion {
Line 1644  sub verify_and_change_discussion { Line 1674  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 1665  sub verify_and_change_discussion { Line 1695  sub verify_and_change_discussion {
             &Apache::lonnet::delenv('environment.discmarkread');              &Apache::lonnet::delenv('environment.discmarkread');
         }          }
     }      }
     $message=&Apache::loncommon::confirmwrapper($message);      &print_main_menu($r, $message);
     $r->print(<<ENDVCSCREEN);  
 $message  
 ENDVCSCREEN  
 }  }
   
 ################################################################  ################################################################
Line 1676  ENDVCSCREEN Line 1703  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 1689  sub coursedisplaychanger { Line 1721  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 1748  sub verify_and_change_coursepage { Line 1782  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 1762  ENDVCSCREEN Line 1979  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 1819  sub handler { Line 2122  sub handler {
                       }));                        }));
   
     push (@Options,({ action   => 'changemsgforward',      push (@Options,({ action   => 'changemsgforward',
                       linktext => 'Messages &amp; Notifications',                        linktext => 'Change Message Forwarding and Notification E-mail Addresses',
                       href     => '/adm/preferences',                        href     => '/adm/preferences',
                       help     => 'Prefs_Messages',                        help     => 'Prefs_Messages',
                       breadcrumb =>                         breadcrumb => 
Line 1832  sub handler { Line 2135  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 1857  sub handler { Line 2160  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 1967  sub handler { Line 2268  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 2037  sub handler { Line 2337  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.2  
changed lines
  Added in v.1.157


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