--- loncom/interface/lonpreferences.pm 2007/06/17 02:11:57 1.106
+++ loncom/interface/lonpreferences.pm 2009/09/16 20:49:18 1.125.6.1
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Preferences
#
-# $Id: lonpreferences.pm,v 1.106 2007/06/17 02:11:57 www Exp $
+# $Id: lonpreferences.pm,v 1.125.6.1 2009/09/16 20:49:18 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -108,9 +108,14 @@ sub wysiwygchanger {
}
my $switchoff=&mt('Disable WYSIWYG editor');
my $switchon=&mt('Enable WYSIWYG editor');
+ my $warning='';
+ if ($env{'user.adv'}) {
+ $warning.="
".&mt("The WYSIWYG editor only supports simple HTML and is in many cases unsuited for advanced authoring. In a number of cases, it may destroy advanced authoring involving LaTeX and script function calls.")."
";
+ }
$r->print(<
+$warning
$switchoff
$switchon
@@ -123,7 +128,7 @@ sub verify_and_change_wysiwyg {
my $r = shift;
my $newsetting=$env{'form.wysiwyg'};
&Apache::lonnet::put('environment',{'wysiwygeditor' => $newsetting});
- &Apache::lonnet::appenv('environment.wysiwygeditor' => $newsetting);
+ &Apache::lonnet::appenv({'environment.wysiwygeditor' => $newsetting});
$r->print(''.&mt('Setting WYSIWYG editor to:').' '.&mt($newsetting).'
');
}
@@ -167,13 +172,14 @@ sub verify_and_change_languages {
my $message='';
if ($newlanguage) {
&Apache::lonnet::put('environment',{'languages' => $newlanguage});
- &Apache::lonnet::appenv('environment.languages' => $newlanguage);
- $message='Set new preferred languages to '.$newlanguage;
+ &Apache::lonnet::appenv({'environment.languages' => $newlanguage});
+ $message=&mt('Set new preferred languages to ').'"'.$newlanguage.'" .';
} else {
&Apache::lonnet::del('environment',['languages']);
- &Apache::lonnet::delenv('environment\.languages');
- $message='Reset preferred language';
+ &Apache::lonnet::delenv('environment.languages');
+ $message=&mt('Reset preferred language.');
}
+ &Apache::loncommon::flush_langs_cache($user,$domain);
$r->print(< 'Default',
- 'tth' => 'TeX to HTML',
+ 'tth' => 'tth (TeX to HTML)',
#'ttm' => 'TeX to MathML',
'jsMath' => 'jsMath',
- 'mimetex' => 'Convert to Images'
+ 'mimetex' => 'mimetex (Convert to Images)'
);
my $selectionbox=&Apache::loncommon::select_form($texengine,'texengine',
%mathchoices);
my $jsMath_start=&Apache::lontexconvert::jsMath_header();
- my $change=&mt('Change');
- $r->print(<
+ my %lt=&Apache::lonlocal::texthash(
+ 'headline' => 'Change Math Preferences',
+ 'preftxt' => 'Preferred method to display Math',
+ 'change' => 'Change',
+ 'exmpl' => 'Examples',
+ 'jsmath' => 'jsMath:',
+ 'tth' => 'tth (TeX to HTML):',
+ 'mimetex' => 'mimetex (Convert to Images):',
+ );
+ $r->print(<$lt{'headline'}
-Examples:
- TeX to HTML
-
+
+$lt{'preftxt'}:
+$selectionbox
-jsMath
+
+
+
+$lt{'exmpl'}
+
+$lt{'jsmath'}
+
$jsMath_start
-
-
+
+
+$lt{'mimetex'}
+
+
- Convert to Images
-
-
+
+
$lt{'tth'}
+
+
ENDLSCREEN
if ($env{'environment.texengine'} ne 'jsMath') {
- $r->print('');
+ $r->print('');
}
}
@@ -252,21 +273,21 @@ sub verify_and_change_texengine {
my $newtexengine = $env{'form.texengine'};
$newtexengine=~s/[^\-\w]//g;
if ($newtexengine eq 'ttm') {
- &Apache::lonnet::appenv('browser.mathml' => 1);
+ &Apache::lonnet::appenv({'browser.mathml' => 1});
} else {
if ($env{'environment.texengine'} eq 'ttm') {
- &Apache::lonnet::appenv('browser.mathml' => 0);
+ &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;
+ &Apache::lonnet::appenv({'environment.texengine' => $newtexengine});
+ $message=&mt('Set new preferred math display to ').'"'.$newtexengine.'" .';
} else {
&Apache::lonnet::del('environment',['texengine']);
- &Apache::lonnet::delenv('environment\.texengine');
- $message='Reset preferred math display.';
+ &Apache::lonnet::delenv('environment.texengine');
+ $message=&mt('Reset preferred math display.');
}
@@ -400,16 +421,16 @@ sub verify_and_change_rolespref {
my $message=' ';
if ($hotlist_flag) {
&Apache::lonnet::put('environment',{'recentroles' => $hotlist_flag});
- &Apache::lonnet::appenv('environment.recentroles' => $hotlist_flag);
+ &Apache::lonnet::appenv({'environment.recentroles' => $hotlist_flag});
$message=&mt('Recent '.$role.'s Hotlist is Enabled');
} else {
&Apache::lonnet::del('environment',['recentroles']);
- &Apache::lonnet::delenv('environment\.recentroles');
+ &Apache::lonnet::delenv('environment.recentroles');
$message=&mt('Recent '.$role.'s Hotlist is Disabled');
}
if ($hotlist_n) {
&Apache::lonnet::put('environment',{'recentrolesn' => $hotlist_n});
- &Apache::lonnet::appenv('environment.recentrolesn' => $hotlist_n);
+ &Apache::lonnet::appenv({'environment.recentrolesn' => $hotlist_n});
if ($hotlist_flag) {
$message.=" ".
&mt('Display [_1] Most Recent '.$role.'s',$hotlist_n)."\n";
@@ -467,14 +488,20 @@ sub screennamechanger {
('environment',['screenname','nickname']);
my $screenname=$userenv{'screenname'};
my $nickname=$userenv{'nickname'};
+ my %lt = &Apache::lonlocal::texthash(
+ text_screenname => 'New screenname (shown if you post anonymously):',
+ text_nickname => 'New nickname (shown if you post non-anonymously):',
+ text_submit => 'Change',
+ );
$r->print(<
- New screenname (shown if you post anonymously):
+ $lt{'text_screenname'}
- New nickname (shown if you post non-anonymously):
+ $lt{'text_nickname'}
-
+
+
ENDSCREEN
}
@@ -489,12 +516,12 @@ sub verify_and_change_screenname {
my $message='';
if ($newscreen) {
&Apache::lonnet::put('environment',{'screenname' => $newscreen});
- &Apache::lonnet::appenv('environment.screenname' => $newscreen);
- $message='Set new screenname to '.$newscreen;
+ &Apache::lonnet::appenv({'environment.screenname' => $newscreen});
+ $message=&mt('Set new screenname to ').'"'.$newscreen.'." .';
} else {
&Apache::lonnet::del('environment',['screenname']);
- &Apache::lonnet::delenv('environment\.screenname');
- $message='Reset screenname';
+ &Apache::lonnet::delenv('environment.screenname');
+ $message=&mt('Reset screenname.');
}
# Nickname
$message.=' ';
@@ -502,12 +529,12 @@ sub verify_and_change_screenname {
$newscreen=~s/[^ \w]//g;
if ($newscreen) {
&Apache::lonnet::put('environment',{'nickname' => $newscreen});
- &Apache::lonnet::appenv('environment.nickname' => $newscreen);
- $message.='Set new nickname to '.$newscreen;
+ &Apache::lonnet::appenv({'environment.nickname' => $newscreen});
+ $message.=&mt('Set new nickname to ').'"'.$newscreen.'" .';
} else {
&Apache::lonnet::del('environment',['nickname']);
- &Apache::lonnet::delenv('environment\.nickname');
- $message.='Reset nickname';
+ &Apache::lonnet::delenv('environment.nickname');
+ $message.=&mt('Reset nickname.');
}
&Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);
$r->print(< $newicons});
- &Apache::lonnet::appenv('environment.icons' => $newicons);
+ &Apache::lonnet::appenv({'environment.icons' => $newicons});
$r->print(&mt('Set menu mode to [_1].',$newicons));
}
@@ -575,11 +602,12 @@ sub clickerchanger {
$clickers=~s/\,/\n/gs;
my $text=&mt('Enter response device ("clicker") numbers');
my $change=&mt('Register');
+ my $helplink=&Apache::loncommon::help_open_topic('Clicker_Registration',&mt('Locating your clicker ID'));
$r->print(<
-$text
-
+$text $helplink
+
@@ -591,16 +619,92 @@ sub verify_and_change_clicker {
my $user = $env{'user.name'};
my $domain = $env{'user.domain'};
my $newclickers = $env{'form.clickers'};
- $newclickers=~s/\W+/\,/gs;
+ $newclickers=~s/[^\w\:\-]+/\,/gs;
$newclickers=~tr/a-z/A-Z/;
+ $newclickers=~s/[\:\-]+/\-/g;
+ $newclickers=~s/\,+/\,/g;
$newclickers=~s/^\,//;
$newclickers=~s/\,$//;
&Apache::lonnet::put('environment',{'clickers' => $newclickers});
- &Apache::lonnet::appenv('environment.clickers' => $newclickers);
+ &Apache::lonnet::appenv({'environment.clickers' => $newclickers});
$r->print(&mt('Registering clickers: [_1]',$newclickers));
}
################################################################
+# Domcoord Access Subroutines #
+################################################################
+
+sub domcoordchanger {
+ my $r = shift;
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
+ my %userenv = &Apache::lonnet::get
+ ('environment',['domcoord.author']);
+ my $constchecked='';
+ if ($userenv{'domcoord.author'} eq 'blocked') {
+ $constchecked='checked="checked"';
+ }
+ my $text=&mt('By default, the Domain Coordinator can enter your construction space.');
+ my $construction=&mt('Block access to construction space');
+ my $change=&mt('Change');
+ $r->print(<
+
+$text
+ $construction
+
+
+ENDSCREEN
+}
+
+sub verify_and_change_domcoord {
+ my $r = shift;
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
+ my %domcoord=('domcoord.author' => '');
+ if ($env{'form.construction'}) { $domcoord{'domcoord.author'}='blocked'; }
+ &Apache::lonnet::put('environment',\%domcoord);
+ &Apache::lonnet::appenv({'environment.domcoord.author' => $domcoord{'domcoord.author'}});
+ $r->print(&mt('Registering Domain Coordinator access restrictions.'));
+}
+
+#################################################################
+## Lock Subroutines #
+#################################################################
+
+sub lockwarning {
+ my $r = shift;
+ my $title=&mt('Action locked');
+ my $texttop=&mt('LON-CAPA is currently performing the following actions:');
+ my $textbottom=&mt('Changing roles or logging out may result in data corruption.');
+ my ($num,%which)=&Apache::lonnet::get_locks();
+ my $which='';
+ foreach my $id (keys %which) {
+ $which.=''.$which{$id}.' ';
+ }
+ my $change=&mt('Override');
+ $r->print(<
+
+$title
+$texttop
+
+$textbottom
+
+
+ENDSCREEN
+}
+
+sub verify_and_change_lockwarning {
+ my $r = shift;
+ &Apache::lonnet::remove_all_locks();
+ $r->print(&mt('Cleared locks.'));
+}
+
+
+################################################################
# Message Forward #
################################################################
@@ -615,24 +719,24 @@ sub msgforwardchanger {
crit => 'Critical only',
reg => 'Non-critical only',
foad => 'Forwarding Address(es)',
- mnot => 'Message Notification Email Address(es)',
+ noti => 'Notification E-mail Address(es)',
+ foad_exmpl => 'e.g. userA:domain1,userB:domain2,... ',
+ mnot => 'Email Address(es) which should be notified about new LON-CAPA messages', # old: 'Message Notification Email Address(es)',
+ mnot_exmpl => 'e.g. joe@doe.com ',
chg => 'Change',
email => 'The e-mail address entered in row ',
notv => 'is not a valid e-mail address',
toen => "To enter multiple addresses, enter one address at a time, click 'Change' and then add the next one",
prme => 'Back to preferences menu',
);
- my $forwardingHelp = Apache::loncommon::help_open_topic("Prefs_Forwarding",
- "What are forwarding ".
- "and notification ".
- "addresses");
- my $criticalMessageHelp = Apache::loncommon::help_open_topic("Course_Critical_Message",
- "What are critical messages");
+ my $forwardingHelp = &Apache::loncommon::help_open_topic("Prefs_Forwarding");
+ my $notificationHelp = &Apache::loncommon::help_open_topic("Prefs_Notification");
+ my $criticalMessageHelp = &Apache::loncommon::help_open_topic("Course_Critical_Message");
my @allow_html = split(/,/,$userenv{'notifywithhtml'});
my %allnot = &get_notifications(\%userenv);
my $validatescript = &Apache::lonhtmlcommon::javascript_valid_email();
my $jscript = qq|
-