--- loncom/interface/lonpreferences.pm 2003/04/19 01:34:22 1.19 +++ loncom/interface/lonpreferences.pm 2003/04/19 15:34:06 1.21 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.19 2003/04/19 01:34:22 www Exp $ +# $Id: lonpreferences.pm,v 1.21 2003/04/19 15:34:06 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -172,13 +172,108 @@ ENDVCSCREEN } ################################################################ +# Message Forward # +################################################################ + +sub msgforwardchanger { + my $r = shift; + my $user = $ENV{'user.name'}; + my $domain = $ENV{'user.domain'}; + my %userenv = &Apache::lonnet::get('environment',['msgforward']); + my $msgforward=$userenv{'msgforward'}; + my $notification=$userenv{'notification'}; + my $critnotification=$userenv{'critnotification'}; + my $bodytag=&Apache::loncommon::bodytag( + 'Change Your Message Forwarding and Notification'); + $r->print(< +$bodytag + +
+ +New Forwarding Address(es) (user:domain,user:domain,...): +
+New Message Notification Email Address(es) (joe\@doe.com,jane\@doe.edu,...): +
+New Critical Message Notification Email Address(es) (joe\@doe.com,jane\@doe.edu,...): +
+ +
+ + +ENDMSG +} + +sub verify_and_change_msgforward { + my $r = shift; + my $user = $ENV{'user.name'}; + my $domain = $ENV{'user.domain'}; + my $newscreen = ''; + my $message=''; + foreach (split(/\,/,$ENV{'form.msgforward'})) { + my ($msuser,$msdomain)=split(/[\@\:]/,$_); + $msuser=~s/\W//g; + $msdomain=~s/\W//g; + if (($msuser) && ($msdomain)) { + if (&Apache::lonnet::homeserver($msuser,$msdomain) ne 'no_host') { + $newscreen.=$msuser.':'.$msdomain.','; + } else { + $message.='No such user: '.$msuser.':'.$msdomain.'
'; + } + } + } + $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 $notification=$ENV{'form.notification'}; + $notification=~s/\s//gs; + if ($notification) { + &Apache::lonnet::put('environment',{'notification' => $notification}); + &Apache::lonnet::appenv('environment.notification' => $notification); + $message.='Set message notification address to '.$notification.'
'; + } else { + &Apache::lonnet::del('environment',['notification']); + &Apache::lonnet::delenv('environment\.notification'); + $message.='Reset message notification
'; + } + my $critnotification=$ENV{'form.critnotification'}; + $critnotification=~s/\s//gs; + if ($critnotification) { + &Apache::lonnet::put('environment',{'critnotification' => $critnotification}); + &Apache::lonnet::appenv('environment.critnotification' => $critnotification); + $message.='Set critical message notification address to '.$critnotification; + } else { + &Apache::lonnet::del('environment',['critnotification']); + &Apache::lonnet::delenv('environment\.critnotification'); + $message.='Reset critical message notification
'; + } + my $bodytag=&Apache::loncommon::bodytag( + 'Change Your Message Forwarding and Notifications'); + $r->print(< +$bodytag +

+$message + +ENDVCMSG +} + +################################################################ # Colors # ################################################################ sub colorschanger { my $r = shift; my $bodytag=&Apache::loncommon::bodytag( - 'Change Color Scheme for Current Role Type'); + 'Change Color Scheme for Current Role Type','', + 'onUnload="pclose();"'); # figure out colors my $function='student'; if ($ENV{'request.role'}=~/^(cc|in|ta|ep)/) { @@ -204,10 +299,10 @@ sub colorschanger { my $curcol=&Apache::loncommon::designparm($function.'.'.$item,$domain); $chtable.=''.$colortypes{$item}.'      Select'; + .$item."','parmform.pres','psub'".');">Select'; } $r->print(< @@ -231,20 +326,11 @@ sub colorschanger { function psub() { pclose(); if (document.parmform.pres_marker.value!='') { - document.parmform.action+='#'+document.parmform.pres_marker.value; - var typedef=new Array(); - typedef=document.parmform.pres_type.value.split('_'); - if (document.parmform.pres_type.value!='') { - if (typedef[0]=='date') { - eval('document.parmform.recent_'+ - document.parmform.pres_type.value+ + if (document.parmform.pres_type.value!='') { + eval('document.server.'+ + document.parmform.pres_marker.value+ '.value=document.parmform.pres_value.value;'); - } else { - eval('document.parmform.recent_'+typedef[0]+ - '.value=document.parmform.pres_value.value;'); - } - } - document.parmform.submit(); + } } else { document.parmform.pres_value.value=''; document.parmform.pres_marker.value=''; @@ -254,13 +340,18 @@ sub colorschanger { $bodytag - +
+ + + +
$chtable
- + +
@@ -291,18 +382,19 @@ sub verify_and_change_colors { '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
'; -# } - + foreach my $item (keys %colortypes) { + my $color=$ENV{'form.'.$item}; + my $entry='color.'.$function.'.'.$item; + if (($color=~/^\#[0-9A-Fa-f]{6}$/) && (!$ENV{'form.resetall'})) { + &Apache::lonnet::put('environment',{$entry => $color}); + &Apache::lonnet::appenv('environment.'.$entry => $color); + $message.='Set '.$colortypes{$item}.' to '.$color.'
'; + } else { + &Apache::lonnet::del('environment',[$entry]); + &Apache::lonnet::delenv('environment\.'.$entry); + $message.='Reset '.$colortypes{$item}.'
'; + } + } my $bodytag=&Apache::loncommon::bodytag( 'Change Color Scheme for Current Role Type'); $r->print(< $message +
+ + +
ENDVCCOL }