--- loncom/interface/lonpreferences.pm 2002/08/27 13:23:01 1.11 +++ loncom/interface/lonpreferences.pm 2003/04/19 01:34:22 1.19 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.11 2002/08/27 13:23:01 www Exp $ +# $Id: lonpreferences.pm,v 1.19 2003/04/19 01:34:22 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -106,18 +106,22 @@ sub screennamechanger { my $r = shift; my $user = $ENV{'user.name'}; my $domain = $ENV{'user.domain'}; - my %userenv = &Apache::lonnet::get('environment',['screenname']); + my %userenv = &Apache::lonnet::get + ('environment',['screenname','nickname']); my $screenname=$userenv{'screenname'}; + my $nickname=$userenv{'nickname'}; my $bodytag=&Apache::loncommon::bodytag( - 'Change Your Anonymous Screen Name'); + 'Change Your Nickname and Anonymous Screen Name'); $r->print(< $bodytag
-New screenname: +
New screenname (shown if you post anonymously): +
New nickname (shown if you post non-anonymously): +
@@ -129,8 +133,9 @@ sub verify_and_change_screenname { my $r = shift; my $user = $ENV{'user.name'}; my $domain = $ENV{'user.domain'}; +# Screenname my $newscreen = $ENV{'form.screenname'}; - $newscreen=~s/\W//g; + $newscreen=~s/[^ \w]//g; my $message=''; if ($newscreen) { &Apache::lonnet::put('environment',{'screenname' => $newscreen}); @@ -141,8 +146,22 @@ sub verify_and_change_screenname { &Apache::lonnet::delenv('environment\.screenname'); $message='Reset screenname'; } +# Nickname + $message.='
'; + $newscreen = $ENV{'form.nickname'}; + $newscreen=~s/[^ \w]//g; + if ($newscreen) { + &Apache::lonnet::put('environment',{'nickname' => $newscreen}); + &Apache::lonnet::appenv('environment.nickname' => $newscreen); + $message.='Set new nickname to '.$newscreen; + } else { + &Apache::lonnet::del('environment',['nickname']); + &Apache::lonnet::delenv('environment\.nickname'); + $message.='Reset nickname'; + } + my $bodytag=&Apache::loncommon::bodytag( - 'Change Your Anonymous Screen Name'); + 'Change Your Nickname and Anonymous Screen Name'); $r->print(< $bodytag @@ -152,6 +171,149 @@ $message ENDVCSCREEN } +################################################################ +# Colors # +################################################################ + +sub colorschanger { + my $r = shift; + my $bodytag=&Apache::loncommon::bodytag( + 'Change Color Scheme for Current Role Type'); +# 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 $domain=&Apache::loncommon::determinedomain(); + my %colortypes=('pgbg' => 'Page Background', + 'tabbg' => 'Header Background', + 'sidebg'=> 'Header Border', + 'font' => 'Font', + 'link' => 'Un-Visited Link', + 'vlink' => 'Visited Link', + 'alink' => 'Active Link'); + my $chtable=''; + foreach my $item (keys %colortypes) { + my $curcol=&Apache::loncommon::designparm($function.'.'.$item,$domain); + $chtable.=''.$colortypes{$item}.'      Select'; + } + $r->print(< + +$bodytag + +
+ + +$chtable +
+ +
+ + +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 $domain=&Apache::loncommon::determinedomain(); + my %colortypes=('pgbg' => 'Page Background', + 'tabbg' => 'Header Background', + 'sidebg'=> 'Header Border', + 'font' => 'Font', + 'link' => 'Un-Visited Link', + 'vlink' => 'Visited Link', + 'alink' => 'Active Link'); + + my $message=''; +# my $newscreen=''; +# $newscreen=~s/\,$//; +# if ($newscreen) { +# &Apache::lonnet::put('environment',{'msgforward' => $newscreen}); +# &Apache::lonnet::appenv('environment.msgforward' => $newscreen); +# $message.='Set new message forwarding to '.$newscreen.'
'; +# } else { +# &Apache::lonnet::del('environment',['msgforward']); +# &Apache::lonnet::delenv('environment\.msgforward'); +# $message.='Reset message forwarding
'; +# } + + my $bodytag=&Apache::loncommon::bodytag( + 'Change Color Scheme for Current Role Type'); + $r->print(< +$bodytag +

+$message + +ENDVCCOL +} + ###################################################### # password handler subroutines # ###################################################### @@ -309,9 +471,9 @@ ENDERROR } my ($ckey,$n1key,$n2key)=split(/&/,$tmpinfo); # - my $currentpass = &des_decrypt($ckey ,$currentpass); - my $newpass1 = &des_decrypt($n1key,$newpass1); - my $newpass2 = &des_decrypt($n2key,$newpass2); + $currentpass = &des_decrypt($ckey ,$currentpass); + $newpass1 = &des_decrypt($n1key,$newpass1); + $newpass2 = &des_decrypt($n2key,$newpass2); # if ($newpass1 ne $newpass2) { &passwordchanger($r, @@ -389,6 +551,22 @@ sub handler { &screennamechanger($r); } elsif ($ENV{'form.action'} eq 'verify_and_change_screenname') { &verify_and_change_screenname($r); + } elsif ($ENV{'form.action'} eq 'changemsgforward') { + &msgforwardchanger($r); + } elsif ($ENV{'form.action'} eq 'verify_and_change_msgforward') { + &verify_and_change_msgforward($r); + } elsif ($ENV{'form.action'} eq 'changecolors') { + &colorschanger($r); + } elsif ($ENV{'form.action'} eq 'verify_and_change_colors') { + &verify_and_change_colors($r); + } elsif ($ENV{'form.action'} eq 'debugtoggle') { + if ($ENV{'user.name'} eq 'albertel' ) { + if ($ENV{'user.debug'}) { + &Apache::lonnet::delenv('user\.debug'); + } else { + &Apache::lonnet::appenv('user.debug' => 1); + } + } } else { $r->print(< @@ -402,35 +580,58 @@ ENDHEADER if ($currentauth =~ /^(unix|internal):/) { $r->print(< - - + + ENDPASSWORDFORM + } # Change screen name $r->print(< - - + + ENDSCREENNAMEFORM + $r->print(< + + + +ENDMSGFORWARDFORM # The "about me" page - my $aboutmeaction= - '/adm/'.$ENV{'user.domain'}.'/'.$ENV{'user.name'}.'/aboutme'; - $r->print(<print(< - - + + ENDABOUTME - # Other preference setting code should be added here + $r->print(< + + + +ENDCOLORFORM + + if ($ENV{'user.name'} eq 'albertel') { + $r->print(< + + +Current Debug status is -$ENV{'user.debug'}-. + +ENDDEBUG } + # Other preference setting code should be added here } $r->print(< ENDFOOTER return OK; -} +} 1; __END__