--- loncom/interface/lonpreferences.pm 2009/09/10 16:33:38 1.125.4.5 +++ loncom/interface/lonpreferences.pm 2010/01/28 15:40:10 1.125.4.9 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.125.4.5 2009/09/10 16:33:38 raeburn Exp $ +# $Id: lonpreferences.pm,v 1.125.4.9 2010/01/28 15:40:10 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -42,6 +42,7 @@ use Apache::loncommon(); use Apache::lonhtmlcommon(); use Apache::lonlocal; use Apache::lonnet; +use LONCAPA::lonauthcgi(); use LONCAPA(); # @@ -155,8 +156,11 @@ sub languagechanger { = &Apache::loncommon::plainlanguagedescription($_); } } - my $selectionbox=&Apache::loncommon::select_form($language,'language', - %langchoices); + my $selectionbox= + &Apache::loncommon::select_form( + $language, + 'language', + &Apache::lonlocal::texthash(%langchoices)); $r->print(< @@ -207,12 +211,15 @@ sub texenginechanger { 'mimetex' => 'mimetex (Convert to Images)', 'raw' => 'Raw (Screen Reader)' ); - my $selectionbox=&Apache::loncommon::select_form($texengine,'texengine', - %mathchoices); + my $selectionbox= + &Apache::loncommon::select_form( + $texengine, + 'texengine', + &Apache::lonlocal::texthash(%mathchoices)); my $jsMath_start=&Apache::lontexconvert::jsMath_header(); my %lt=&Apache::lonlocal::texthash( - 'headline' => 'Change Math Preferences', - 'preftxt' => 'Preferred method to display Math', + 'headline' => 'Change how math is displayed', + 'preftxt' => 'Preferred method to display math', 'change' => 'Save', 'exmpl' => 'Examples', 'jsmath' => 'jsMath:', @@ -267,7 +274,7 @@ if (jsMath.nofonts == 1) {

$lt{'tth'}

- +

ENDLSCREEN if ($env{'environment.texengine'} ne 'jsMath') { @@ -376,13 +383,20 @@ sub rolesprefchanger {

-
-
'.&mt('Number of '.$role.'s in Hotlist:').' - -

'.&mt('This list below can be used to freeze '.$lc_role.'s on your screen. Those marked as frozen will not be removed from the list, even if they have not been used recently.').' +
'. +'

'.&mt('Recent '.$role.'s Hotlist').'

'. +&Apache::lonhtmlcommon::start_pick_box(). +&Apache::lonhtmlcommon::row_title(''). +''. +&Apache::lonhtmlcommon::row_closure(). +&Apache::lonhtmlcommon::row_title(''). +''. +&Apache::lonhtmlcommon::row_closure(1). +&Apache::lonhtmlcommon::end_pick_box(). +'

'.&mt('Freeze Roles').'

'. +'

'.&mt('This list below can be used to freeze '.$lc_role.'s on your screen. Those marked as frozen will not be removed from the list, even if they have not been used recently.').'

'.$roles_check_list.'
@@ -432,11 +446,11 @@ sub verify_and_change_rolespref { if ($hotlist_flag) { &Apache::lonnet::put('environment',{'recentroles' => $hotlist_flag}); &Apache::lonnet::appenv({'environment.recentroles' => $hotlist_flag}); - $message=&mt('Recent '.$role.'s Hotlist is Enabled'); + $message=&Apache::lonhtmlcommon::confirm_success(&mt('Recent '.$role.'s Hotlist is Enabled.')." ".&mt('Display [_1] Most Recent '.$role.'s.',$hotlist_n)); } else { &Apache::lonnet::del('environment',['recentroles']); &Apache::lonnet::delenv('environment.recentroles'); - $message=&mt('Recent '.$role.'s Hotlist is Disabled'); + $message=&Apache::lonhtmlcommon::confirm_success(&mt('Recent '.$role.'s Hotlist is Disabled')); } if ($hotlist_n) { &Apache::lonnet::put('environment',{'recentrolesn' => $hotlist_n}); @@ -751,8 +765,9 @@ sub msgforwardchanger { all => 'All', crit => 'Critical only', reg => 'Non-critical only', - foad => 'Forwarding Address(es)', - noti => 'Notification E-mail Address(es)', + foad => 'Forward to account(s)', + fwdm => 'Forward messages to other account(s) in LON-CAPA', + noti => 'E-mail notification of LON-CAPA messages', foad_exmpl => 'e.g. userA:domain1,userB:domain2,...', mnot => 'E-mail Address(es) which should be notified about new LON-CAPA messages', mnot_exmpl => 'e.g. joe@doe.com', @@ -827,11 +842,12 @@ $validatescript $r->print(<$lt{'foad'} $forwardingHelp +

$lt{'fwdm'} $forwardingHelp

$lt{'foad'} ($lt{'foad_exmpl'}): -
+ +

$lt{'noti'} $notificationHelp

$lt{'mnot'} ($lt{'mnot_exmpl'}):
ENDMSG @@ -876,7 +892,7 @@ ENDMSG ''. - $lt{$type}.' '; + $lt{$type}.''.(' ' x4); } my $htmlon = ''; my $htmloff = ''; @@ -888,7 +904,7 @@ ENDMSG $output .= ' '. + &mt('Yes').''.(' ' x3). ''.(' ' x4); } $output .= ' '. + '" value="1" />'.&mt('Yes').''.(' ' x3). ''. @@ -954,28 +970,32 @@ sub verify_and_change_msgforward { my $domain = $env{'user.domain'}; my $newscreen = ''; my $message=''; - foreach (split(/\,/,$env{'form.msgforward'})) { - my ($msuser,$msdomain)=split(/[\@\:]/,$_); + foreach my $recip (split(/\,/,$env{'form.msgforward'})) { + my ($msuser,$msdomain); + if ($recip =~ /:/) { + ($msuser,$msdomain)=split(':',$recip); + } else { + ($msuser,$msdomain)=split(/\@/,$recip); + } $msuser = &LONCAPA::clean_username($msuser); $msdomain = &LONCAPA::clean_domain($msdomain); if (($msuser) && ($msdomain)) { if (&Apache::lonnet::homeserver($msuser,$msdomain) ne 'no_host') { - $newscreen.=$msuser.':'.$msdomain.','; - } else { - $message.= &mt('No such user: ').''.$msuser.':'.$msdomain.'
'; - } + $newscreen.=$msuser.':'.$msdomain.','; + } else { + $message.= &mt('No such user: ').''.$msuser.':'.$msdomain.'
'; + } } } $newscreen=~s/\,$//; if ($newscreen) { &Apache::lonnet::put('environment',{'msgforward' => $newscreen}); &Apache::lonnet::appenv({'environment.msgforward' => $newscreen}); - $message .= &mt('Set message forwarding to ').'"'.$newscreen.'".' - .'
'; + $message .= &Apache::lonhtmlcommon::confirm_success(&mt('Set message forwarding to ').'"'.$newscreen.'".
'); } else { &Apache::lonnet::del('environment',['msgforward']); &Apache::lonnet::delenv('environment.msgforward'); - $message.= &mt("Set message forwarding to 'off'.").'
'; + $message.= &Apache::lonhtmlcommon::confirm_success(&mt("Set message forwarding to 'off'.").'
'); } my $critnotification; my $notification; @@ -1011,33 +1031,33 @@ sub verify_and_change_msgforward { if ($notification) { &Apache::lonnet::put('environment',{'notification' => $notification}); &Apache::lonnet::appenv({'environment.notification' => $notification}); - $message.=&mt('Set non-critical message notification address(es) to ').'"'.$notification.'".
'; + $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Set non-critical message notification address(es) to ').'"'.$notification.'".
'); } else { &Apache::lonnet::del('environment',['notification']); &Apache::lonnet::delenv('environment.notification'); - $message.=&mt("Set non-critical message notification to 'off'.").'
'; + $message.=&Apache::lonhtmlcommon::confirm_success(&mt("Set non-critical message notification to 'off'.").'
'); } if ($critnotification) { &Apache::lonnet::put('environment',{'critnotification' => $critnotification}); &Apache::lonnet::appenv({'environment.critnotification' => $critnotification}); - $message.=&mt('Set critical message notification address(es) to ').'"'.$critnotification.'".
'; + $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Set critical message notification address(es) to ').'"'.$critnotification.'".
'); } else { &Apache::lonnet::del('environment',['critnotification']); &Apache::lonnet::delenv('environment.critnotification'); - $message.=&mt("Set critical message notification to 'off'.").'
'; + $message.=&Apache::lonhtmlcommon::confirm_success(&mt("Set critical message notification to 'off'.").'
'); } if ($critnotification || $notification) { if ($notify_with_html) { &Apache::lonnet::put('environment',{'notifywithhtml' => $notify_with_html}); &Apache::lonnet::appenv({'environment.notifywithhtml' => $notify_with_html}); - $message.=&mt('Set address(es) to receive excerpts with html retained ').'"'.$notify_with_html.'".'; + $message.=&Apache::lonhtmlcommon::confirm_success(&mt('Set address(es) to receive excerpts with html retained ').'"'.$notify_with_html.'".'); } else { &Apache::lonnet::del('environment',['notifywithhtml']); &Apache::lonnet::delenv('environment.notifywithhtml'); if ($totaladdresses == 1) { - $message.=&mt("Set notification address to receive excerpts with html stripped."); + $message.=&Apache::lonhtmlcommon::confirm_success(&mt("Set notification address to receive excerpts with html stripped.")); } else { - $message.=&mt("Set all notification addresses to receive excerpts with html stripped."); + $message.=&Apache::lonhtmlcommon::confirm_success(&mt("Set all notification addresses to receive excerpts with html stripped.")); } } } else { @@ -1048,6 +1068,7 @@ sub verify_and_change_msgforward { $message .= '

'; } &Apache::loncommon::flush_email_cache($user,$domain); + $message=&Apache::loncommon::confirmwrapper($message); &msgforwardchanger($r,$message); } @@ -1290,6 +1311,8 @@ sub jscript_send { this.document.client.elements.uname.value; this.document.pserver.elements.udom.value = this.document.client.elements.udom.options[this.document.client.elements.udom.selectedIndex].value; + this.document.pserver.elements.email.value = + this.document.client.elements.email.value; |; } $ output .= qq| @@ -1372,6 +1395,7 @@ sub server_form { + |; } @@ -1517,6 +1541,7 @@ ENDERROR my $message; if ($result =~ /^ok$/) { $message = &Apache::lonhtmlcommon::confirm_success(&mt('The password for user [_1] was successfully changed.',''.$user.'')); + $message = &Apache::loncommon::confirmwrapper($message); if ($caller eq 'reset_by_email') { $r->print($message.'
'); } else { @@ -1524,14 +1549,17 @@ ENDERROR } } else { # error error: run in circles, scream and shout - $message = &Apache::lonhtmlcommon::confirm_success( - &mt("The password for user [_1] was not changed.",''.$user.'').' '.&mt('Please make sure your old password was entered correctly.'),1); if ($caller eq 'reset_by_email') { - $r->print($message.'
'); + if (!$result) { + return 1; + } else { + return $result; + } } else { + $message = &Apache::lonhtmlcommon::confirm_success( + &mt("The password for user [_1] was not changed.",''.$user.'').' '.&mt('Please make sure your old password was entered correctly.'),1); $r->print(&Apache::loncommon::confirmwrapper($message)); } - return 1; } return; } @@ -1742,19 +1770,19 @@ sub verify_and_change_coursepage { my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; my ($furl,$ferr)= &Apache::lonuserstate::readmap($cdom.'/'.$cnum); - $message .= '
'.$lt{'gtts'}.' '.&mt('now').''; + $message .= '
'.$lt{'gtts'}.' '.&mt('now').''; } else { - $message .= '
'.$lt{'dasp'}.''; + $message .= '
'.$lt{'dasp'}.''; } } $message = &Apache::lonhtmlcommon::confirm_success($message); + $message = &Apache::loncommon::confirmwrapper($message); $r->print(< 'Prefs_Messages', breadcrumb => { href => '/adm/preferences?action=changemsgforward', - text => 'Change Message Forwarding/Notification'}, + + text => 'Messages & Notifications'}, subroutine => \&msgforwardchanger, }, { action => 'verify_and_change_msgforward', help => 'Prefs_Messages', breadcrumb => { href => '/adm/preferences?action=changemsgforward', - text => 'Change Message Forwarding/Notification'}, + text => 'Messages & Notifications'}, printmenu => 'no', subroutine => \&verify_and_change_msgforward })); if (&Apache::lonnet::usertools_access($user,$domain,'aboutme')) { @@ -1923,12 +1952,12 @@ sub handler { })); push (@Options,({ action => 'changetexenginepref', - linktext => 'Change How Math Equations Are Displayed', + linktext => 'Math display settings', href => '/adm/preferences', subroutine => \&texenginechanger, breadcrumb => { href => '/adm/preferences?action=changetexenginepref', - text => 'Change Math Pref'}, + text => 'Math display settings'}, }, { action => 'verify_and_change_texengine', subroutine => \&verify_and_change_texengine, @@ -2034,7 +2063,7 @@ sub handler { })); } - if ($env{'user.name'} =~ /^(albertel|fox|foxr|kortemey|korte|raeburn)$/) { + if (&can_toggle_debug()) { push (@Options,({ action => 'debugtoggle', printmenu => 'yes', subroutine => \&toggle_debug, @@ -2066,13 +2095,11 @@ sub handler { || ($printmenu eq 'not_on_error' && !$error) ) && (!$env{'form.returnurl'})) { my $optionlist = ''; - if ($env{'user.name'} =~ - /^(albertel|kortemey|fox|foxr|korte|hallmat3|turtle|raeburn)$/ - ) { + if (&can_toggle_debug()) { push (@Options,({ action => 'debugtoggle', linktext => 'Toggle Debug Messages', - text => 'Current Debug status is -'. - $env{'user.debug'}.'-.', + text => 'Current Debug status is: '. + ($env{'user.debug'} ? 'on' : 'off'), href => '/adm/preferences', printmenu => 'yes', subroutine => \&toggle_debug, @@ -2114,12 +2141,26 @@ sub handler { } sub toggle_debug { - if ($env{'user.debug'}) { - &Apache::lonnet::delenv('user.debug'); - } else { - &Apache::lonnet::appenv({'user.debug' => 1}); + if (&can_toggle_debug()) { + if ($env{'user.debug'}) { + &Apache::lonnet::delenv('user.debug'); + } else { + &Apache::lonnet::appenv({'user.debug' => 1}); + } } } +sub can_toggle_debug { + my $can_toggle = 0; + my $page = 'toggledebug'; + if (&LONCAPA::lonauthcgi::can_view($page)) { + $can_toggle = 1; + } elsif (&LONCAPA::lonauthcgi::check_ipbased_access($page)) { + $can_toggle = 1; + } + return $can_toggle; +} + + 1; __END__