');
+}
+
+################################################################
+# Language Change Subroutines #
+################################################################
sub languagechanger {
my $r = shift;
my $user = $ENV{'user.name'};
@@ -144,6 +177,165 @@ $message
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(<
+
+
$pref: $selectionbox
+
+
+Examples:
+
TeX to HTML $tth_example
+
+
+
jsMath
+
+
+
+$jsMath_example
+
+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(<
+$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 .= "\n";
+ }
+
+ $r->print(<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.
+
+
+
+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.=" Display $hotlist_n Most Recent Roles\n";
+ }
+ }
+
+ $r->print(<
+$message
+ENDRPSCREEN
+}
+
+
################################################################
# Anonymous Discussion Name Change Subroutines #
@@ -457,7 +649,8 @@ sub passwordchanger {
$lkey_npass2= hex($lkey_npass2);
# Output javascript to deal with passwords
# Output DES javascript
- $r->print("");
+ my $html=&Apache::lonxml::xmlbegin();
+ $r->print($html."");
{
my $include = $r->dir_config('lonIncludes');
my $jsh=Apache::File->new($include."/londes.js");
@@ -471,22 +664,22 @@ sub passwordchanger {
lextkey=this.document.client.elements.lkey_cpass.value;
initkeys();
- this.document.server.elements.currentpass.value
+ this.document.pserver.elements.currentpass.value
=crypted(this.document.client.elements.currentpass.value);
uextkey=this.document.client.elements.ukey_npass1.value;
lextkey=this.document.client.elements.lkey_npass1.value;
initkeys();
- this.document.server.elements.newpass_1.value
+ this.document.pserver.elements.newpass_1.value
=crypted(this.document.client.elements.newpass_1.value);
uextkey=this.document.client.elements.ukey_npass2.value;
lextkey=this.document.client.elements.lkey_npass2.value;
initkeys();
- this.document.server.elements.newpass_2.value
+ this.document.pserver.elements.newpass_2.value
=crypted(this.document.client.elements.newpass_2.value);
- this.document.server.submit();
+ this.document.pserver.submit();
}
@@ -497,7 +690,7 @@ $errormessage
ensure that unencrypted passwords will not be sent out by a
crappy browser -->
-