[LON-CAPA-cvs] cvs: loncom /interface lonpreferences.pm

www lon-capa-cvs@mail.lon-capa.org
Sat, 19 Apr 2003 01:34:23 -0000


This is a MIME encoded message

--www1050716063
Content-Type: text/plain

www		Fri Apr 18 21:34:23 2003 EDT

  Modified files:              
    /loncom/interface	lonpreferences.pm 
  Log:
  Change color scheme - not working yet.
  
  
--www1050716063
Content-Type: text/plain
Content-Disposition: attachment; filename="www-20030418213423.txt"

Index: loncom/interface/lonpreferences.pm
diff -u loncom/interface/lonpreferences.pm:1.18 loncom/interface/lonpreferences.pm:1.19
--- loncom/interface/lonpreferences.pm:1.18	Tue Apr  1 17:21:45 2003
+++ loncom/interface/lonpreferences.pm	Fri Apr 18 21:34:22 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Preferences
 #
-# $Id: lonpreferences.pm,v 1.18 2003/04/01 22:21:45 www Exp $
+# $Id: lonpreferences.pm,v 1.19 2003/04/19 01:34:22 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -172,97 +172,146 @@
 }
 
 ################################################################
-#         Message Forward                                      #
+#         Colors                                               #
 ################################################################
 
-sub msgforwardchanger {
+sub colorschanger {
     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(<<ENDMSG);
+                    '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.='<tr><td>'.$colortypes{$item}.'</td><td bgcolor="'.$curcol.
+        '">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td><input name="'.$item.
+        '" size="8" value="'.$curcol.
+'" /></td><td><a href="javascript:pjump('."'color','".$colortypes{$item}.
+"','".$curcol."','"
+	    .$item."','".$item."','psub'".');">Select</a></td></tr>';
+    }
+    $r->print(<<ENDCOL);
 <html>
+<script>
+
+    function pclose() {
+        parmwin=window.open("/adm/rat/empty.html","LONCAPAparms",
+                 "height=350,width=350,scrollbars=no,menubar=no");
+        parmwin.close();
+    }
+
+    function pjump(type,dis,value,marker,ret,call) {
+        parmwin=window.open("/adm/rat/parameter.html?type="+escape(type)
+                 +"&value="+escape(value)+"&marker="+escape(marker)
+                 +"&return="+escape(ret)
+                 +"&call="+escape(call)+"&name="+escape(dis),"LONCAPAparms",
+                 "height=350,width=350,scrollbars=no,menubar=no");
+
+    }
+
+    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+
+		     '.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='';
+        }
+    }
+
+
+</script>
 $bodytag
 
 <form name="server" action="/adm/preferences" method="post">
-<input type="hidden" name="action" value="verify_and_change_msgforward" />
-New Forwarding Address(es) (<tt>user:domain,user:domain,...</tt>):
-<input type="text" size="40" value="$msgforward" name="msgforward" /><hr />
-New Message Notification Email Address(es) (<tt>joe\@doe.com,jane\@doe.edu,...</tt>):
-<input type="text" size="40" value="$notification" name="notification" /><hr />
-New Critical Message Notification Email Address(es) (<tt>joe\@doe.com,jane\@doe.edu,...</tt>):
-<input type="text" size="40" value="$critnotification" name="critnotification" /><hr />
+<input type="hidden" name="action" value="verify_and_change_colors" />
+<table border="2">
+$chtable
+</table>
 <input type="submit" value="Change" />
 </form>
 </body>
 </html>
-ENDMSG
+ENDCOL
 }
 
-sub verify_and_change_msgforward {
+sub verify_and_change_colors {
     my $r = shift;
-    my $user       = $ENV{'user.name'};
-    my $domain     = $ENV{'user.domain'};
-    my $newscreen  = '';
+# 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='';
-    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.'<br>';
-           }
-        }
-    }
-    $newscreen=~s/\,$//;
-    if ($newscreen) {
-        &Apache::lonnet::put('environment',{'msgforward' => $newscreen});
-        &Apache::lonnet::appenv('environment.msgforward' => $newscreen);
-        $message.='Set new message forwarding to '.$newscreen.'<br />';
-    } else {
-        &Apache::lonnet::del('environment',['msgforward']);
-        &Apache::lonnet::delenv('environment\.msgforward');
-        $message.='Reset message forwarding<br />';
-    }
-    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.'<br />';
-    } else {
-        &Apache::lonnet::del('environment',['notification']);
-        &Apache::lonnet::delenv('environment\.notification');
-        $message.='Reset message notification<br />';
-    }
-    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<br />';
-    }
+#    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.'<br />';
+#    } else {
+#        &Apache::lonnet::del('environment',['msgforward']);
+#        &Apache::lonnet::delenv('environment\.msgforward');
+#        $message.='Reset message forwarding<br />';
+#    }
+
     my $bodytag=&Apache::loncommon::bodytag(
-                           'Change Your Message Forwarding and Notifications');
-    $r->print(<<ENDVCMSG);
+                           'Change Color Scheme for Current Role Type');
+    $r->print(<<ENDVCCOL);
 <html>
 $bodytag
 </p>
 $message
 </body></html>
-ENDVCMSG
+ENDVCCOL
 }
 
 ######################################################
@@ -506,6 +555,10 @@
         &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'}) {
@@ -552,9 +605,16 @@
 	$r->print(<<ENDABOUTME);
 <form name="client" action="$aboutmeaction" method="post">
 <input type="hidden" name="action" value="changescreenname" />
-<input type="submit" value="Edit the 'About Me' Personal Information Screen" />
+<input type="submit" value="Edit the 'About Me' personal information screen" />
 </form>
 ENDABOUTME
+	    $r->print(<<ENDCOLORFORM);
+<form name="client" action="/adm/preferences" method="post">
+<input type="hidden" name="action" value="changecolors" />
+<input type="submit" value="Change color scheme" />
+</form>
+ENDCOLORFORM
+
 	if ($ENV{'user.name'} eq 'albertel') {
 	    $r->print(<<ENDDEBUG);
 <form name="client" action="/adm/preferences" method="post">

--www1050716063--