--- loncom/interface/lonpreferences.pm 2006/01/06 19:05:30 1.73
+++ loncom/interface/lonpreferences.pm 2006/04/10 18:59:30 1.80
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Preferences
#
-# $Id: lonpreferences.pm,v 1.73 2006/01/06 19:05:30 albertel Exp $
+# $Id: lonpreferences.pm,v 1.80 2006/04/10 18:59:30 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -98,16 +98,16 @@ sub wysiwygchanger {
my $r = shift;
my %userenv = &Apache::lonnet::get
('environment',['wysiwygeditor']);
+ my $onselect='checked="checked"';
my $offselect='';
- my $onselect='checked="1"';
- if ($userenv{'wysiwygeditor'}) {
+ if ($userenv{'wysiwygeditor'} eq 'on') {
$onselect='';
- $offselect='checked="1"';
+ $offselect='checked="checked"';
}
my $switchoff=&mt('Disable WYSIWYG editor');
my $switchon=&mt('Enable WYSIWYG editor');
$r->print(<
+
-
+
Enable Recent Roles Hotlist:
@@ -362,7 +362,7 @@ sub screennamechanger {
my $screenname=$userenv{'screenname'};
my $nickname=$userenv{'nickname'};
$r->print(<
+
New screenname (shown if you post anonymously):
@@ -430,7 +430,7 @@ sub msgforwardchanger {
$r->print(<
-
+
New Forwarding Address(es) (user:domain,user:domain,...):
@@ -505,17 +505,7 @@ ENDVCMSG
sub colorschanger {
my $r = shift;
# figure out colors
- my $function='student';
- if ($env{'request.role'}=~/^(cc|in|ta|ep)/) {
- $function='coordinator';
- }
- if ($env{'request.role'}=~/^(su|dc|ad|li)/) {
- $function='admin';
- }
- if (($env{'request.role'}=~/^(au|ca)/) ||
- ($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) {
- $function='author';
- }
+ my $function=&Apache::loncommon::get_users_function();
my $domain=&Apache::loncommon::determinedomain();
my %colortypes=('pgbg' => 'Page Background',
'tabbg' => 'Header Background',
@@ -550,7 +540,7 @@ sub colorschanger {
pclose();
if (document.parmform.pres_marker.value!='') {
if (document.parmform.pres_type.value!='') {
- eval('document.server.'+
+ eval('document.prefs.'+
document.parmform.pres_marker.value+
'.value=document.parmform.pres_value.value;');
}
@@ -567,7 +557,7 @@ sub colorschanger {
-
+
$chtable
@@ -581,17 +571,7 @@ ENDCOL
sub verify_and_change_colors {
my $r = shift;
# figure out colors
- my $function='student';
- if ($env{'request.role'}=~/^(cc|in|ta|ep)/) {
- $function='coordinator';
- }
- if ($env{'request.role'}=~/^(su|dc|ad|li)/) {
- $function='admin';
- }
- if (($env{'request.role'}=~/^(au|ca)/) ||
- ($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) {
- $function='author';
- }
+ my $function=&Apache::loncommon::get_users_function();
my $domain=&Apache::loncommon::determinedomain();
my %colortypes=('pgbg' => 'Page Background',
'tabbg' => 'Header Background',
@@ -617,7 +597,7 @@ sub verify_and_change_colors {
}
$r->print(<
+
ENDVCCOL
@@ -659,8 +639,6 @@ sub passwordchanger {
$lkey_npass2= hex($lkey_npass2);
# Output javascript to deal with passwords
# Output DES javascript
- my $html=&Apache::lonxml::xmlbegin();
- $r->print($html."");
{
my $include = $r->dir_config('lonIncludes');
my $jsh=Apache::File->new($include."/londes.js");
@@ -700,7 +678,7 @@ $errormessage
ensure that unencrypted passwords will not be sent out by a
crappy browser -->
-
+
@@ -741,14 +719,6 @@ sub verify_and_change_password {
# Check for authentication types that allow changing of the password.
return if ($currentauth !~ /^(unix|internal):/);
#
- my $html=&Apache::lonxml::xmlbegin();
- $r->print(<
-LON-CAPA Preferences: Change password for $user
-
-ENDHEADER
- #
my $currentpass = $env{'form.currentpass'};
my $newpass1 = $env{'form.newpass_1'};
my $newpass2 = $env{'form.newpass_2'};
@@ -773,7 +743,7 @@ password decryption. Please log out and
ENDERROR
# Probably should log an error here
- return;
+ return 1;
}
my ($ckey,$n1key,$n2key)=split(/&/,$tmpinfo);
#
@@ -786,14 +756,14 @@ ENDERROR
'ERROR:'.
'The new passwords you entered do not match. '.
'Please try again.');
- return;
+ return 1;
}
if (length($newpass1) < 7) {
&passwordchanger($r,
'ERROR:'.
'Passwords must be a minimum of 7 characters long. '.
'Please try again.');
- return;
+ return 1;
}
#
# Check for bad characters
@@ -828,6 +798,7 @@ ENDTEXT
The password for $user was not changed
Please make sure your old password was entered correctly.
ENDERROR
+ return 1;
}
return;
}
@@ -896,7 +867,7 @@ sub discussionchanger {
}
$r->print(<<"END");
-
+
$lt{'sdpf'} $lt{'prca'}
$lt{'whpo'}
$lt{'unwh'}
@@ -1001,7 +972,7 @@ sub coursedisplaychanger {
$r->print(' '.&mt('Set the default page to be displayed when you select a course role').' '.&mt('(Currently: [_1])',$pagenames{$currvalue}).' '.&mt('The global user preference you set for your courses can be overridden in an individual course by setting a course specific setting via the "[_1]" page in the course',"What's New").'
');
$r->print(<
+
@@ -1096,7 +1067,7 @@ sub handler {
breadcrumb =>
{ href =>'/adm/preferences?action=changepass',
text => 'Change Password'},
- printmenu => 'yes',
+ printmenu => 'not_on_error',
}));
}
push (@Options,({ action => 'changescreenname',
@@ -1233,7 +1204,9 @@ sub handler {
text => 'Change Math Preferences'},
printmenu => 'yes',
}));
- if ($env{'user.adv'}) {
+ if (&Apache::lonnet::allowed('whn',$env{'request.course.id'})
+ || &Apache::lonnet::allowed('whn',$env{'request.course.id'}.'/'
+ .$env{'request.course.sec'})) {
push (@Options,({ action => 'changecourseinit',
linktext => 'Change Course Initialization Preference',
href => '/adm/preferences',
@@ -1256,13 +1229,9 @@ sub handler {
subroutine => \&toggle_debug,
}));
}
- my $html=&Apache::lonxml::xmlbegin();
- $r->print(<
-LON-CAPA Preferences
-
-ENDHEADER
+
+ $r->print(&Apache::loncommon::start_page('Change Preferences'));
+
my $call = undef;
my $help = undef;
my $printmenu = 'yes';
@@ -1277,13 +1246,15 @@ ENDHEADER
$help=$option->{'help'};
}
}
- $r->print(&Apache::loncommon::bodytag('Change Preferences'));
$r->print(&Apache::lonhtmlcommon::breadcrumbs
(undef,'Change Preferences',$help));
+ my $error;
if (defined($call)) {
- $call->($r);
+ $error = $call->($r);
}
- if (($printmenu eq 'yes') && (!$env{'form.returnurl'})) {
+ if ( ( ($printmenu eq 'yes')
+ || ($printmenu eq 'not_on_error' && !$error) )
+ && (!$env{'form.returnurl'})) {
my $optionlist = '