');
+}
+
+################################################################
+# Language Change Subroutines #
+################################################################
sub languagechanger {
my $r = shift;
my $user = $ENV{'user.name'};
@@ -149,11 +172,181 @@ sub verify_and_change_languages {
$message='Reset preferred language';
}
$r->print(<
$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);
+ $mathexample='$$\int\left(\frac{a+b}{c^6*d}\right)$$';
+ my $mimetex_example=&Apache::lontexconvert::mimetex_converted(\$mathexample);
+ my $change=&mt('Change');
+ $r->print(<
+
+
$pref: $selectionbox
+
+
+Examples:
+
TeX to HTML $tth_example
+
+
+
jsMath
+
+
+
+$jsMath_example
+
Convert to Images $mimetex_example
+ENDLSCREEN
+ if ($ENV{'environment.texengine'} ne 'jsMath') {
+ $r->print('');
+ }
+}
+
+
+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;
+ if ($newtexengine eq 'ttm') {
+ &Apache::lonnet::appenv('browser.mathml' => 1);
+ } else {
+ if ($ENV{'environment.texengine'} eq 'ttm') {
+ &Apache::lonnet::appenv('browser.mathml' => 0);
+ }
+ }
+ 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(<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(<print(<
$message
ENDVCSCREEN
}
@@ -300,7 +492,6 @@ sub verify_and_change_msgforward {
$message.='Reset critical message notification ';
}
$r->print(<
$message
ENDVCMSG
}
@@ -423,7 +614,6 @@ sub verify_and_change_colors {
}
}
$r->print(<
$message