Diff for /loncom/interface/lonpreferences.pm between versions 1.44 and 1.54

version 1.44, 2004/06/08 01:32:02 version 1.54, 2005/02/25 05:54:01
Line 177  $message Line 177  $message
 ENDVCSCREEN  ENDVCSCREEN
 }  }
   
   ################################################################
   #         Tex Engine Change Subroutines                        #
   ################################################################
   sub texenginechanger {
       my $r = shift;
       my $user       = $ENV{'user.name'};
       my $domain     = $ENV{'user.domain'};
       my %userenv = &Apache::lonnet::get('environment',['texengine']);
       my $texengine=$userenv{'texengine'};
   
       my $pref=&mt('Preferred method to display Math');
       my %mathchoices=('' => 'No Preference',
        'tth' => 'TeX to HTML',
        #'ttm' => 'TeX to MathML',
        'jsMath' => 'jsMath',
        #'mimetex' => 'Convert to Images'
                        );
       my $selectionbox=&Apache::loncommon::select_form($texengine,'texengine',
        %mathchoices);
       my $mathexample='$$\int\left(\frac{a+b}{c^6*d}\right)$$';
       my $jsMath_example=&Apache::lontexconvert::jsMath_converted(\$mathexample);
       $mathexample='$$\int\left(\frac{a+b}{c^6*d}\right)$$';
       my $tth_example=&Apache::lontexconvert::tth_converted(\$mathexample);
       my $change=&mt('Change');
       $r->print(<<ENDLSCREEN);
   <form name="server" action="/adm/preferences" method="post">
   <input type="hidden" name="action" value="verify_and_change_texengine" />
   <p>$pref: $selectionbox</p>
   <p><input type="submit" value="$change" /></p>
   </form>
   Examples:
   <p> TeX to HTML <br /> $tth_example</p>
   <script type"text/javascript">function NoFontMessage () { }</script>
   <script src="/adm/jsMath/jsMath.js"></script>
   <p>jsMath <br /> 
   
   <script type"text/javascript">
   if (jsMath.nofonts == 1) {
       document.writeln
           ('<center><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></center>');
   }
   </script>
   
   $jsMath_example</p>
   <script type="text/javascript">jsMath.Process()</script>
   ENDLSCREEN
   }
   
   
   sub verify_and_change_texengine {
       my $r = shift;
       my $user       = $ENV{'user.name'};
       my $domain     = $ENV{'user.domain'};
   # Screenname
       my $newtexengine  = $ENV{'form.texengine'};
       $newtexengine=~s/[^\-\w]//g;
       my $message='';
       if ($newtexengine) {
           &Apache::lonnet::put('environment',{'texengine' => $newtexengine});
           &Apache::lonnet::appenv('environment.texengine' => $newtexengine);
           $message='Set new preferred math display to '.$newtexengine;
       } else {
           &Apache::lonnet::del('environment',['texengine']);
           &Apache::lonnet::delenv('environment\.texengine');
           $message='Reset preferred math display.';
       }
       $r->print(<<ENDVCSCREEN);
   </p>
   $message
   ENDVCSCREEN
   }
   
   ################################################################
   #         Roles Page Preference Change Subroutines         #
   ################################################################
   sub rolesprefchanger {
       my $r = shift;
       my $user       = $ENV{'user.name'};
       my $domain     = $ENV{'user.domain'};
       my %userenv = &Apache::lonnet::get
           ('environment',['recentroles','recentrolesn']);
       my $hotlist_flag=$userenv{'recentroles'};
       my $hotlist_n=$userenv{'recentrolesn'};
       my $checked;
       if ($hotlist_flag) {
    $checked = 'checked="checked"';
       }
       
       if (!$hotlist_n) { $hotlist_n=3; }
       my $options;
       for (my $i=1; $i<10; $i++) {
    my $select;
    if ($hotlist_n == $i) { $select = 'selected="selected"'; }
    $options .= "<option $select>$i</option>\n";
       }
   
       $r->print(<<ENDSCREEN);
   <p>Some LON-CAPA users have a long list of roles. The Recent Roles Hotlist
   feature keeps track of the last N roles which have been
   visited and places a table of these at the top of the roles page.
   People with very few roles should leave this feature disabled.
   </p>
   
   <form name="server" action="/adm/preferences" method="post">
   <input type="hidden" name="action" value="verify_and_change_rolespref" />
   <br />Enable Recent Roles Hotlist:
   <input type="checkbox" $checked name="recentroles" value="true" />
   <br />Number of roles in Hotlist:
   <select name="recentrolesn" size="1">
   $options
   </select>
   <br />
   <input type="submit" value="Change" />
   </form>
   ENDSCREEN
   }
   
   sub verify_and_change_rolespref {
       my $r = shift;
       my $user       = $ENV{'user.name'};
       my $domain     = $ENV{'user.domain'};
   # Recent Roles Hotlist Flag
       my $hotlist_flag  = $ENV{'form.recentroles'};
       my $hotlist_n  = $ENV{'form.recentrolesn'};
       my $message='';
       if ($hotlist_flag) {
           &Apache::lonnet::put('environment',{'recentroles' => $hotlist_flag});
           &Apache::lonnet::appenv('environment.recentroles' => $hotlist_flag);
           $message='Recent Roles Hotlist is Enabled';
       } else {
           &Apache::lonnet::del('environment',['recentroles']);
           &Apache::lonnet::delenv('environment\.recentroles');
           $message='Recent Roles Hotlist is Disabled';
       }
       if ($hotlist_n) {
           &Apache::lonnet::put('environment',{'recentrolesn' => $hotlist_n});
           &Apache::lonnet::appenv('environment.recentrolesn' => $hotlist_n);
           if ($hotlist_flag) {
               $message.="<br />Display $hotlist_n Most Recent Roles\n";
           }
       }
   
       $r->print(<<ENDRPSCREEN);
   </p>
   $message
   ENDRPSCREEN
   }
   
   
   
 ################################################################  ################################################################
 #         Anonymous Discussion Name Change Subroutines         #  #         Anonymous Discussion Name Change Subroutines         #
Line 490  sub passwordchanger { Line 649  sub passwordchanger {
     $lkey_npass2= hex($lkey_npass2);      $lkey_npass2= hex($lkey_npass2);
     # Output javascript to deal with passwords      # Output javascript to deal with passwords
     # Output DES javascript      # Output DES javascript
     $r->print("<html><head>");      my $html=&Apache::lonxml::xmlbegin();
       $r->print($html."<head>");
     {      {
  my $include = $r->dir_config('lonIncludes');   my $include = $r->dir_config('lonIncludes');
  my $jsh=Apache::File->new($include."/londes.js");   my $jsh=Apache::File->new($include."/londes.js");
Line 504  sub passwordchanger { Line 664  sub passwordchanger {
         lextkey=this.document.client.elements.lkey_cpass.value;          lextkey=this.document.client.elements.lkey_cpass.value;
         initkeys();          initkeys();
   
         this.document.server.elements.currentpass.value          this.document.pserver.elements.currentpass.value
             =crypted(this.document.client.elements.currentpass.value);              =crypted(this.document.client.elements.currentpass.value);
   
         uextkey=this.document.client.elements.ukey_npass1.value;          uextkey=this.document.client.elements.ukey_npass1.value;
         lextkey=this.document.client.elements.lkey_npass1.value;          lextkey=this.document.client.elements.lkey_npass1.value;
         initkeys();          initkeys();
         this.document.server.elements.newpass_1.value          this.document.pserver.elements.newpass_1.value
             =crypted(this.document.client.elements.newpass_1.value);              =crypted(this.document.client.elements.newpass_1.value);
   
         uextkey=this.document.client.elements.ukey_npass2.value;          uextkey=this.document.client.elements.ukey_npass2.value;
         lextkey=this.document.client.elements.lkey_npass2.value;          lextkey=this.document.client.elements.lkey_npass2.value;
         initkeys();          initkeys();
         this.document.server.elements.newpass_2.value          this.document.pserver.elements.newpass_2.value
             =crypted(this.document.client.elements.newpass_2.value);              =crypted(this.document.client.elements.newpass_2.value);
   
         this.document.server.submit();          this.document.pserver.submit();
     }      }
   
 </script>  </script>
Line 530  $errormessage Line 690  $errormessage
      ensure that unencrypted passwords will not be sent out by a       ensure that unencrypted passwords will not be sent out by a
      crappy browser -->       crappy browser -->
   
 <form name="server" action="/adm/preferences" method="post">  <form name="pserver" action="/adm/preferences" method="post">
 <input type="hidden" name="logtoken"    value="$logtoken" />  <input type="hidden" name="logtoken"    value="$logtoken" />
 <input type="hidden" name="action"      value="verify_and_change_pass" />  <input type="hidden" name="action"      value="verify_and_change_pass" />
 <input type="hidden" name="currentpass" value="" />  <input type="hidden" name="currentpass" value="" />
Line 571  sub verify_and_change_password { Line 731  sub verify_and_change_password {
     # Check for authentication types that allow changing of the password.      # Check for authentication types that allow changing of the password.
     return if ($currentauth !~ /^(unix|internal):/);      return if ($currentauth !~ /^(unix|internal):/);
     #      #
       my $html=&Apache::lonxml::xmlbegin();
     $r->print(<<ENDHEADER);      $r->print(<<ENDHEADER);
 <html>  $html
 <head>  <head>
 <title>LON-CAPA Preferences:  Change password for $user</title>  <title>LON-CAPA Preferences:  Change password for $user</title>
 </head>  </head>
Line 868  sub handler { Line 1029  sub handler {
                       }));                        }));
   
     push (@Options,({ action   => 'changemsgforward',      push (@Options,({ action   => 'changemsgforward',
                       linktext => 'Change Message Forwarding',                        linktext => 'Change Message Forwarding and Notification Addresses',
                       text     => 'and Notification Addresses',  
                       href     => '/adm/preferences',                        href     => '/adm/preferences',
                       help     => 'Prefs_Forwarding',                        help     => 'Prefs_Forwarding',
                       breadcrumb =>                         breadcrumb => 
Line 888  sub handler { Line 1048  sub handler {
     push (@Options,{ action => 'none',       push (@Options,{ action => 'none', 
                      linktext =>                       linktext =>
                          q{Edit the 'About Me' Personal Information Screen},                           q{Edit the 'About Me' Personal Information Screen},
        help => 'Prefs_About_Me',
                      href => $aboutmeaction});                       href => $aboutmeaction});
     push (@Options,({ action => 'changecolors',      push (@Options,({ action => 'changecolors',
                       linktext => 'Change Color Scheme',                        linktext => 'Change Color Scheme',
Line 908  sub handler { Line 1069  sub handler {
     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',
                       breadcrumb=>                        breadcrumb=>
                           { href => '/adm/preferences?action=changelanguages',                            { href => '/adm/preferences?action=changelanguages',
                             text => 'Change Language'},                              text => 'Change Language'},
Line 938  sub handler { Line 1100  sub handler {
     push (@Options,({ action => 'changediscussions',      push (@Options,({ action => 'changediscussions',
                       linktext => 'Change Discussion Display Preferences',                        linktext => 'Change Discussion Display Preferences',
                       href => '/adm/preferences',                        href => '/adm/preferences',
                         help => 'Change_Discussion_Display',
                       breadcrumb =>                         breadcrumb => 
                             { href => '/adm/preferences?action=changediscussions',                              { href => '/adm/preferences?action=changediscussions',
                               text => 'Change Discussion Preferences'},                                text => 'Change Discussion Preferences'},
Line 951  sub handler { Line 1114  sub handler {
                       subroutine => \&verify_and_change_discussion, }                        subroutine => \&verify_and_change_discussion, }
                     ));                      ));
                                                 
     if ($ENV{'user.name'} =~ /^(albertel|koretemey|korte|hallmat3|turtle)$/) {      push (@Options,({ action   => 'changerolespref',
                         linktext => 'Change Roles Page Preferences',
                         href     => '/adm/preferences',
                         subroutine => \&rolesprefchanger,
                         breadcrumb =>
                             { href => '/adm/preferences?action=changerolespref',
                               text => 'Change Roles Pref'},
                         },
                       { action   => 'verify_and_change_rolespref',
                         subroutine => \&verify_and_change_rolespref,
                         breadcrumb =>
                             { href => '/adm/preferences?action=changerolespref',
                               text => 'Change Roles Preferences'},
                         printmenu => 'yes',
                         }));
   
       push (@Options,({ action   => 'changetexenginepref',
                         linktext => 'Change How Math Equations Are Displayed',
                         href     => '/adm/preferences',
                         subroutine => \&texenginechanger,
                         breadcrumb =>
                             { href => '/adm/preferences?action=changetexenginepref',
                               text => 'Change Math Pref'},
                         },
                       { action   => 'verify_and_change_texengine',
                         subroutine => \&verify_and_change_texengine,
                         breadcrumb =>
                             { href => '/adm/preferences?action=changetexenginepref',
                               text => 'Change Math Preferences'},
                         printmenu => 'yes',
                         }));
   
   
       if ($ENV{'user.name'} =~ /^(albertel|fox|foxr|koretemey|korte|hallmat3|turtle)$/) {
         push (@Options,({ action => 'debugtoggle',          push (@Options,({ action => 'debugtoggle',
                           printmenu => 'yes',                            printmenu => 'yes',
                           subroutine => \&toggle_debug,                            subroutine => \&toggle_debug,
                           }));                            }));
     }      }
       my $html=&Apache::lonxml::xmlbegin();
     $r->print(<<ENDHEADER);      $r->print(<<ENDHEADER);
 <html>  $html
 <head>  <head>
 <title>LON-CAPA Preferences</title>  <title>LON-CAPA Preferences</title>
 </head>  </head>
 ENDHEADER  ENDHEADER
     my $call = undef;      my $call = undef;
       my $help = undef;
     my $printmenu = 'yes';      my $printmenu = 'yes';
     foreach my $option (@Options) {      foreach my $option (@Options) {
         if ($option->{'action'} eq $ENV{'form.action'}) {          if ($option->{'action'} eq $ENV{'form.action'}) {
Line 973  ENDHEADER Line 1171  ENDHEADER
                 &Apache::lonhtmlcommon::add_breadcrumb                  &Apache::lonhtmlcommon::add_breadcrumb
                     ($option->{'breadcrumb'});                      ($option->{'breadcrumb'});
             }              }
       $help=$option->{'help'};
         }          }
     }      }
     $r->print(&Apache::loncommon::bodytag('Change Preferences'));      $r->print(&Apache::loncommon::bodytag('Change Preferences'));
     $r->print(&Apache::lonhtmlcommon::breadcrumbs      $r->print(&Apache::lonhtmlcommon::breadcrumbs
               (undef,'Change Preferences'));                (undef,'Change Preferences',$help));
     if (defined($call)) {      if (defined($call)) {
         $call->($r);          $call->($r);
     }      }
     if (($printmenu eq 'yes') && (!$ENV{'form.returnurl'})) {      if (($printmenu eq 'yes') && (!$ENV{'form.returnurl'})) {
         my $optionlist = '<table cellpadding="5">';          my $optionlist = '<table cellpadding="5">';
         if ($ENV{'user.name'} =~           if ($ENV{'user.name'} =~ 
                          /^(albertel|kortemey|korte|hallmat3|turtle)$/                           /^(albertel|kortemey|fox|foxr|korte|hallmat3|turtle)$/
             ) {              ) {
             push (@Options,({ action => 'debugtoggle',              push (@Options,({ action => 'debugtoggle',
                               linktext => 'Toggle Debug Messages',                                linktext => 'Toggle Debug Messages',
Line 1001  ENDHEADER Line 1200  ENDHEADER
                 $optiontext .=                   $optiontext .= 
                     '<a href="'.$option->{'href'}.                      '<a href="'.$option->{'href'}.
                     '?action='.$option->{'action'}.'">'.                      '?action='.$option->{'action'}.'">'.
                     $option->{'linktext'}.'</a>';                      &mt($option->{'linktext'}).'</a>';
             }              }
             if (exists($option->{'text'})) {              if (exists($option->{'text'})) {
                 $optiontext .= ' '.$option->{'text'};                  $optiontext .= ' '.&mt($option->{'text'});
             }              }
             if ($optiontext ne '') {              if ($optiontext ne '') {
                 $optiontext = '<font size="+1">'.$optiontext.'</font>';                   $optiontext = '<font size="+1">'.$optiontext.'</font>'; 
Line 1025  ENDHEADER Line 1224  ENDHEADER
  $r->print('<br /><a href="'.$ENV{'form.returnurl'}.'"><font size="+1">'.   $r->print('<br /><a href="'.$ENV{'form.returnurl'}.'"><font size="+1">'.
   &mt('Return').'</font></a>');    &mt('Return').'</font></a>');
     }      }
     $r->print(<<ENDFOOTER);      $r->print(&Apache::loncommon::endbodytag().'</html>');
 </body>  
 </html>  
 ENDFOOTER  
     return OK;      return OK;
 }  }
   

Removed from v.1.44  
changed lines
  Added in v.1.54


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