--- loncom/interface/lonpreferences.pm 2006/06/26 18:56:50 1.93
+++ loncom/interface/lonpreferences.pm 2008/06/10 14:49:07 1.124
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Preferences
#
-# $Id: lonpreferences.pm,v 1.93 2006/06/26 18:56:50 albertel Exp $
+# $Id: lonpreferences.pm,v 1.124 2008/06/10 14:49:07 www 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();
#
# Write lonnet::passwd to do the call below.
@@ -107,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
@@ -122,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('
');
}
@@ -166,12 +172,12 @@ 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';
+ $message=&mt('Reset preferred language.');
}
$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') {
@@ -251,21 +272,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.';
+ $message=&mt('Reset preferred math display.');
}
@@ -279,6 +300,8 @@ ENDVCSCREEN
################################################################
sub rolesprefchanger {
my $r = shift;
+ my $role = ($env{'user.adv'} ? 'Role' : 'Course');
+ my $lc_role = ($env{'user.adv'} ? 'role' : 'course');
my $user = $env{'user.name'};
my $domain = $env{'user.domain'};
my %userenv = &Apache::lonnet::get
@@ -313,8 +336,8 @@ sub rolesprefchanger {
$roles_check_list .=
&Apache::loncommon::start_data_table().
&Apache::loncommon::start_data_table_header_row().
- "
".&mt('Freeze Role')."
".
- "
".&mt('Role')."".
+ "
".&mt('Freeze '.$role)."
".
+ "
".&mt($role)."".
&Apache::loncommon::end_data_table_header_row().
"\n";
my $count;
@@ -338,17 +361,17 @@ sub rolesprefchanger {
}
$r->print('
-
'.&mt('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.').'
+
'.&mt('Some LON-CAPA users have a long list of '.$lc_role.'s. The Recent '.$role.'s Hotlist feature keeps track of the last N '.$lc_role.'s which have been visited and places a table of these at the top of the '.$lc_role.'s page. People with very few '.$lc_role.'s should leave this feature disabled.').'
ENDSCREEN
}
@@ -485,12 +515,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';
+ $message=&mt('Reset screenname.');
}
# Nickname
$message.=' ';
@@ -498,12 +528,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';
+ $message.=&mt('Reset nickname.');
}
&Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain);
$r->print(<print(<
+
+
+
+
+
+
+ENDSCREEN
+}
+
+sub verify_and_change_icons {
+ my $r = shift;
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
+ my $newicons = $env{'form.menumode'};
+
+ &Apache::lonnet::put('environment',{'icons' => $newicons});
+ &Apache::lonnet::appenv({'environment.icons' => $newicons});
+ $r->print(&mt('Set menu mode to [_1].',$newicons));
+}
+
+################################################################
+# Clicker Subroutines #
+################################################################
+
+sub clickerchanger {
+ my $r = shift;
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
+ my %userenv = &Apache::lonnet::get
+ ('environment',['clickers']);
+ my $clickers=$userenv{'clickers'};
+ $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(<
+
+
+
+
+ENDSCREEN
+}
+
+sub verify_and_change_clicker {
+ my $r = shift;
+ my $user = $env{'user.name'};
+ my $domain = $env{'user.domain'};
+ my $newclickers = $env{'form.clickers'};
+ $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});
+ $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
+
+
+
+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
+
+$which
+
+$textbottom
+
+
+ENDSCREEN
+}
+
+sub verify_and_change_lockwarning {
+ my $r = shift;
+ &Apache::lonnet::remove_all_locks();
+ $r->print(&mt('Cleared locks.'));
+}
+
+
+################################################################
# Message Forward #
################################################################
sub msgforwardchanger {
- my $r = shift;
+ my ($r,$message) = @_;
my $user = $env{'user.name'};
my $domain = $env{'user.domain'};
- my %userenv = &Apache::lonnet::get('environment',['msgforward','notification','critnotification']);
+ my %userenv = &Apache::lonnet::get('environment',['msgforward','notification','critnotification','notifywithhtml']);
my $msgforward=$userenv{'msgforward'};
- my $notification=$userenv{'notification'};
- my $critnotification=$userenv{'critnotification'};
- 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 %lt = &Apache::lonlocal::texthash(
+ all => 'All',
+ crit => 'Critical only',
+ reg => 'Non-critical only',
+ foad => 'Forwarding 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");
+ 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|
+
+|;
$r->print(<
+$jscript
+$message
+
$lt{'foad'} $forwardingHelp
+$lt{'foad'} ($lt{'foad_exmpl'}):
+
+
$lt{'noti'} $notificationHelp
+$lt{'mnot'} ($lt{'mnot_exmpl'}):
ENDMSG
+ my @sortforwards = sort (keys(%allnot));
+ my $output = &Apache::loncommon::start_data_table().
+ &Apache::loncommon::start_data_table_header_row().
+ '
'.
+ '
'.&mt('Action').'
'.
+ '
'.&mt('Notification address').'
'.
+ &mt('Types of message for which notification is sent').
+ $criticalMessageHelp.'
'.
+ &mt('Excerpt retains HTML tags in message').'
'.
+ &Apache::loncommon::end_data_table_header_row();
+ my $num = 0;
+ my $counter = 1;
+ foreach my $item (@sortforwards) {
+ $output .= &Apache::loncommon::start_data_table_row().
+ '
\n".
+ &mt("One or more password fields were blank").
+ "\n
",$caller,$mailtoken);
return;
}
# Get the keys
@@ -847,10 +1398,14 @@ sub verify_and_change_password {
my $tmpinfo = Apache::lonnet::reply('tmpget:'.$logtoken,$lonhost);
if (($tmpinfo=~/^error/) || ($tmpinfo eq 'con_lost')) {
# I do not a have a better idea about how to handle this
+ my $tryagain_text = &mt('Please log out and try again.');
+ if ($caller eq 'reset_by_email') {
+ $tryagain_text = &mt('Please try again later.');
+ }
+ my $unable=&mt("Unable to retrieve saved token for password decryption");
$r->print(<
-ERROR: Unable to retrieve stored token for
-password decryption. Please log out and try again.
+$unable. $tryagain_text
ENDERROR
# Probably should log an error here
@@ -861,19 +1416,36 @@ ENDERROR
$currentpass = &des_decrypt($ckey ,$currentpass);
$newpass1 = &des_decrypt($n1key,$newpass1);
$newpass2 = &des_decrypt($n2key,$newpass2);
- #
+ #
+ if ($caller eq 'reset_by_email') {
+ my %data = &Apache::lonnet::tmpget($mailtoken);
+ if (keys(%data) == 0) {
+ &passwordchanger($r,
+ ''.
+ &mt('Could not verify current authentication.').' '.
+ &mt('Please try again.').'',$caller,$mailtoken);
+ return 1;
+ }
+ if ($currentpass ne $data{'temppasswd'}) {
+ &passwordchanger($r,
+ ''.
+ &mt('Could not verify current authentication.').' '.
+ &mt('Please try again.').'',$caller,$mailtoken);
+ return 1;
+ }
+ }
if ($newpass1 ne $newpass2) {
&passwordchanger($r,
- 'ERROR:'.
- 'The new passwords you entered do not match. '.
- 'Please try again.');
+ ''.
+ &mt('The new passwords you entered do not match.').' '.
+ &mt('Please try again.').'',$caller,$mailtoken);
return 1;
}
if (length($newpass1) < 7) {
&passwordchanger($r,
- 'ERROR:'.
- 'Passwords must be a minimum of 7 characters long. '.
- 'Please try again.');
+ ''.
+ &mt('Passwords must be a minimum of 7 characters long.').' '.
+ &mt('Please try again.').'',$caller,$mailtoken);
return 1;
}
#
@@ -884,31 +1456,29 @@ ENDERROR
}
if ($badpassword) {
# I can't figure out how to enter bad characters on my browser.
- &passwordchanger($r,<ERROR:
-The password you entered contained illegal characters.
-Valid characters are: space and
+ my $errormessage =''.
+ &mt('The password you entered contained illegal characters.').' '.
+ &mt('Valid characters are').(<<"ENDERROR");
+: space and
+
ENDERROR
+ &passwordchanger($r,$errormessage,$caller,$mailtoken);
+ return 1;
}
#
# Change the password (finally)
my $result = &Apache::lonnet::changepass
- ($user,$domain,$currentpass,$newpass1,$homeserver);
+ ($user,$domain,$currentpass,$newpass1,$homeserver,$caller);
# Inform the user the password has (not?) been changed
if ($result =~ /^ok$/) {
- $r->print(<<"ENDTEXT");
-
The password for $user was successfully changed
-ENDTEXT
+ $r->print("
".&mt('The password for [_1] was successfully changed',$user)."
");
} else {
# error error: run in circles, scream and shout
- $r->print(<The password for $user was not changed
-Please make sure your old password was entered correctly.
-ENDERROR
+ $r->print("
".&mt("The password for [_1] was not changed",$user)."
".
+ &mt('Please make sure your old password was entered correctly.'));
return 1;
}
return;
@@ -1012,7 +1582,7 @@ END
$r->print(<<"END");
-
+
Note: $lt{'thde'}
@@ -1028,11 +1598,11 @@ sub verify_and_change_discussion {
if (defined($env{'form.discdisp'}) ) {
my $newdisp = $env{'form.newdisp'};
if ($newdisp eq 'unread') {
- $message .='In discussions: only new posts will be displayed. ';
+ $message .=&mt('In discussions: only new posts will be displayed.').' ';
&Apache::lonnet::put('environment',{'discdisplay' => $newdisp});
- &Apache::lonnet::appenv('environment.discdisplay' => $newdisp);
+ &Apache::lonnet::appenv({'environment.discdisplay' => $newdisp});
} else {
- $message .= 'In discussions: all posts will be displayed. ';
+ $message .= &mt('In discussions: all posts will be displayed.').' ';
&Apache::lonnet::del('environment',['discdisplay']);
&Apache::lonnet::delenv('environment\.discdisplay');
}
@@ -1040,11 +1610,11 @@ sub verify_and_change_discussion {
if (defined($env{'form.discmark'}) ) {
my $newmark = $env{'form.newmark'};
if ($newmark eq 'ondisp') {
- $message.='In discussions: new posts will be cease to be identified as "new" after display. ';
+ $message.=&mt('In discussions: new posts will be cease to be identified as "NEW" after display.').' ';
&Apache::lonnet::put('environment',{'discmarkread' => $newmark});
- &Apache::lonnet::appenv('environment.discmarkread' => $newmark);
+ &Apache::lonnet::appenv({'environment.discmarkread' => $newmark});
} else {
- $message.='In discussions: posts will be identified as "new" until marked as read by the reader. ';
+ $message.=&mt('In discussions: posts will be identified as "NEW" until marked as read by the reader.').' ';
&Apache::lonnet::del('environment',['discmarkread']);
&Apache::lonnet::delenv('environment\.discmarkread');
}
@@ -1107,7 +1677,7 @@ sub verify_and_change_coursepage {
if ($newdisp eq 'firstres') {
$message .= $lt{'ywbt'}.' ';
&Apache::lonnet::put('environment',{'course_init_display' => $newdisp});
- &Apache::lonnet::appenv('environment.course_init_display' => $newdisp);
+ &Apache::lonnet::appenv({'environment.course_init_display' => $newdisp});
} else {
$message .= $lt{'apwb'}.' ';
&Apache::lonnet::del('environment',['course_init_display']);
@@ -1197,19 +1767,20 @@ sub handler {
}));
push (@Options,({ action => 'changemsgforward',
- linktext => 'Change Message Forwarding and Notification Addresses',
+ linktext => 'Change Message Forwarding and Notification Email Addresses',
href => '/adm/preferences',
- help => 'Prefs_Forwarding',
+ help => 'Prefs_Messages',
breadcrumb =>
{ href => '/adm/preferences?action=changemsgforward',
- text => 'Change Message Forwarding'},
+ text => 'Change Message Forwarding/Notification'},
subroutine => \&msgforwardchanger,
},
{ action => 'verify_and_change_msgforward',
+ help => 'Prefs_Messages',
breadcrumb =>
{ href => '/adm/preferences?action=changemsgforward',
- text => 'Change Message Forwarding'},
- printmenu => 'yes',
+ text => 'Change Message Forwarding/Notification'},
+ printmenu => 'no',
subroutine => \&verify_and_change_msgforward }));
my $aboutmeaction=
'/adm/'.$env{'user.domain'}.'/'.$env{'user.name'}.'/aboutme';
@@ -1281,20 +1852,21 @@ sub handler {
printmenu => 'yes',
subroutine => \&verify_and_change_discussion, }
));
-
+
+ my $role = ($env{'user.adv'} ? 'Roles' : 'Course');
push (@Options,({ action => 'changerolespref',
- linktext => 'Change Roles Page Preferences',
+ linktext => 'Change '.$role.' Page Preferences',
href => '/adm/preferences',
subroutine => \&rolesprefchanger,
breadcrumb =>
{ href => '/adm/preferences?action=changerolespref',
- text => 'Change Roles Pref'},
+ text => 'Change '.$role.' Page Pref'},
},
{ action => 'verify_and_change_rolespref',
subroutine => \&verify_and_change_rolespref,
breadcrumb =>
{ href => '/adm/preferences?action=changerolespref',
- text => 'Change Roles Preferences'},
+ text => 'Change '.$role.' Page Preferences'},
printmenu => 'yes',
}));
@@ -1326,6 +1898,70 @@ sub handler {
}));
}
+ push (@Options,({ action => 'changeicons',
+ linktext => 'Change How Menus are Displayed',
+ href => '/adm/preferences',
+ subroutine => \&iconchanger,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changeicons',
+ text => 'Change Main Menu'},
+ },
+ { action => 'verify_and_change_icons',
+ subroutine => \&verify_and_change_icons,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changeicons',
+ text => 'Change Main Menu'},
+ printmenu => 'yes',
+ }));
+
+ push (@Options,({ action => 'changeclicker',
+ linktext => 'Register Response Devices ("Clickers")',
+ href => '/adm/preferences',
+ subroutine => \&clickerchanger,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changeclicker',
+ text => 'Register Clicker'},
+ },
+ { action => 'verify_and_change_clicker',
+ subroutine => \&verify_and_change_clicker,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changeclicker',
+ text => 'Register Clicker'},
+ printmenu => 'yes',
+ }));
+ if ($env{'user.adv'}) {
+ push (@Options,({ action => 'changedomcoord',
+ linktext => 'Restrict Domain Coordinator Access',
+ href => '/adm/preferences',
+ subroutine => \&domcoordchanger,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changedomcoord',
+ text => 'Restrict Domain Coordinator Access'},
+ },
+ { action => 'verify_and_change_domcoord',
+ subroutine => \&verify_and_change_domcoord,
+ breadcrumb =>
+ { href => '/adm/preferences?action=changedomcoord',
+ text => 'Restrict Domain Coordinator Access'},
+ printmenu => 'yes',
+ }));
+ }
+
+ push (@Options,({ action => 'lockwarning',
+ subroutine => \&lockwarning,
+ breadcrumb =>
+ { href => '/adm/preferences?action=lockwarning',
+ text => 'Lock Warnings'},
+ },
+ { action => 'verify_and_change_locks',
+ subroutine => \&verify_and_change_lockwarning,
+ breadcrumb =>
+ { href => '/adm/preferences?action=lockwarning',
+ text => 'Lockwarnings'},
+ printmenu => 'yes',
+ }));
+
+
if (&Apache::lonnet::allowed('whn',$env{'request.course.id'})
|| &Apache::lonnet::allowed('whn',$env{'request.course.id'}.'/'
.$env{'request.course.sec'})) {
@@ -1345,7 +1981,7 @@ sub handler {
}));
}
- if ($env{'user.name'} =~ /^(albertel|fox|foxr|koretemey|korte|hallmat3|turtle|raeburn)$/) {
+ if ($env{'user.name'} =~ /^(albertel|fox|foxr|kortemey|korte|raeburn)$/) {
push (@Options,({ action => 'debugtoggle',
printmenu => 'yes',
subroutine => \&toggle_debug,
@@ -1428,7 +2064,7 @@ sub toggle_debug {
if ($env{'user.debug'}) {
&Apache::lonnet::delenv('user\.debug');
} else {
- &Apache::lonnet::appenv('user.debug' => 1);
+ &Apache::lonnet::appenv({'user.debug' => 1});
}
}