[LON-CAPA-cvs] cvs: loncom /auth lonlogin.pm /interface domainprefs.pm loncommon.pm

raeburn raeburn@source.lon-capa.org
Mon, 01 Dec 2008 15:03:43 -0000


This is a MIME encoded message

--raeburn1228143823
Content-Type: text/plain

raeburn		Mon Dec  1 15:03:43 2008 EDT

  Modified files:              
    /loncom/interface	domainprefs.pm loncommon.pm 
    /loncom/auth	lonlogin.pm 
  Log:
  - New subroutine in domainprefs: &logo_display_options() - used to provide "show" checkbox for login page images - 'img' and 'logo' ('Header' image and 'Main Logo' respectively).
  - Domains can choose to include/exclude these two images in the log-in page.
    - Default is to include the images (and to display defaults, if not custom image was uploaded).    
  
  
--raeburn1228143823
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20081201150343.txt"

Index: loncom/interface/domainprefs.pm
diff -u loncom/interface/domainprefs.pm:1.69 loncom/interface/domainprefs.pm:1.70
--- loncom/interface/domainprefs.pm:1.69	Fri Nov 28 21:02:35 2008
+++ loncom/interface/domainprefs.pm	Mon Dec  1 15:03:40 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler to set domain-wide configuration settings
 #
-# $Id: domainprefs.pm,v 1.69 2008/11/28 21:02:35 raeburn Exp $
+# $Id: domainprefs.pm,v 1.70 2008/12/01 15:03:40 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -697,6 +697,7 @@
                    );
     foreach my $item (@images) {
         $defaults{$item} = $defaultdesign{'login.'.$item};
+        $defaults{'showlogo'}{$item} = 1;
     }
     foreach my $item (@bgs) {
         $defaults{'bgs'}{$item} = $defaultdesign{'login.'.$item};
@@ -718,10 +719,13 @@
             }
         }
         foreach my $item (@images) {
-            if ($settings->{$item} ne '') {
+            if (defined($settings->{$item})) {
                 $designs{$item} = $settings->{$item};
                 $is_custom{$item} = 1;
             }
+            if (defined($settings->{'showlogo'}{$item})) {
+                $designs{'showlogo'}{$item} = $settings->{'showlogo'}{$item};
+            }
         }
         foreach my $item (@logintext) {
             if ($settings->{$item} ne '') {
@@ -915,20 +919,27 @@
 	$itemcount ++;
         $css_class = $itemcount%2?' class="LC_odd_row"':'';
         $datatable .= '<tr'.$css_class.'>'.
-                      '<td>'.$choices->{$img}.'</td>';
+                      '<td>'.$choices->{$img};
         my ($imgfile,$img_import,$login_hdr_pick,$logincolors);
+        if ($role eq 'login') {
+            if ($img eq 'login') {
+                $login_hdr_pick =
+                    &login_header_options($img,$role,$defaults,$is_custom,$choices,
+                                          $loginheader);
+                $logincolors =
+                    &login_text_colors($img,$role,$logintext,$phase,$choices,
+                                            $designs);
+            } elsif ($img ne 'domlogo') {
+                $datatable.= &logo_display_options($img,$defaults,$designs);
+            }
+        }
+        $datatable .= '</td>';
         if ($designs->{$img} ne '') {
             $imgfile = $designs->{$img};
 	    $img_import = ($imgfile =~ m{^/adm/});
         } else {
             $imgfile = $defaults->{$img};
         }
-        if ($img eq 'login') {
-            $login_hdr_pick = &login_header_options($img,$role,$defaults,$is_custom,$choices,
-                                                    $loginheader);
-            $logincolors =
-                &login_text_colors($img,$role,$logintext,$phase,$choices,$designs);
-        }
         if ($imgfile) {
             my ($showfile,$fullsize);
             if ($imgfile =~ m-^(/res/\Q$dom\E/\Q$confname\E/\Q$img\E)/([^/]+)$-) {
@@ -1017,7 +1028,7 @@
     my $bgs_def;
     foreach my $item (@{$bgs}) {
         if (!$is_custom->{$item}) {
-            $bgs_def .= '<td>'.$choices->{$item}.'&nbsp;<span id="css_default_'.$role.'_'.$item.'" style="background-color: '.$defaults->{'bgs'}{$item}.';">&nbsp;&nbsp;&nbsp;</span><br />'.$defaults->{'bgs'}{$item}.'</td>';
+            $bgs_def .= '<td><span class="LC_nobreak">'.$choices->{$item}.'</span>&nbsp;<span id="css_default_'.$role.'_'.$item.'" style="background-color: '.$defaults->{'bgs'}{$item}.';">&nbsp;&nbsp;&nbsp;</span><br />'.$defaults->{'bgs'}{$item}.'</td>';
         }
     }
     if ($bgs_def) {
@@ -1068,6 +1079,32 @@
     return $datatable;
 }
 
+sub logo_display_options {
+    my ($img,$defaults,$designs) = @_;
+    my $checkedon;
+    if (ref($defaults) eq 'HASH') {
+        if (ref($defaults->{'showlogo'}) eq 'HASH') {
+            if ($defaults->{'showlogo'}{$img}) {
+                $checkedon = 'checked="checked" ';     
+            }
+        } 
+    }
+    if (ref($designs) eq 'HASH') {
+        if (ref($designs->{'showlogo'}) eq 'HASH') {
+            if (defined($designs->{'showlogo'}{$img})) {
+                if ($designs->{'showlogo'}{$img} == 0) {
+                    $checkedon = '';
+                } elsif ($designs->{'showlogo'}{$img} == 1) {
+                    $checkedon = 'checked="checked" ';
+                }
+            }
+        }
+    }
+    return '<br /><label>&nbsp;&nbsp;<input type="checkbox" name="'.
+           'login_showlogo_'.$img.'" value="1" '.$checkedon.'/>'.
+           &mt('show').'</label>'."\n";
+}
+
 sub login_header_options  {
     my ($img,$role,$defaults,$is_custom,$choices,$loginheader) = @_;
     my $image_checked = ' checked="checked" ';
@@ -1119,7 +1156,7 @@
     my ($is_custom,$alt_text,$img_import,$showfile,$fullsize,$role,$img,$imgfile,$logincolors) = @_;
     my $output;
     if (!$is_custom) {
-        if ($img eq 'login') {
+        if ($img ne 'domlogo') {
             $output .= &mt('Default image:').'<br />';
         } else {
             $output .= &mt('Default in use:').'<br />';
@@ -2847,6 +2884,13 @@
             $domconfig->{$role} = {};
         }
         foreach my $img (@images) {
+            if (($role eq 'login') && (($img eq 'img') || ($img eq 'logo'))) {  
+                if (defined($env{'form.login_showlogo_'.$img})) {
+                    $confhash->{$role}{'showlogo'}{$img} = 1;
+                } else { 
+                    $confhash->{$role}{'showlogo'}{$img} = 0;
+                }
+            } 
 	    if ( ! $env{'form.'.$role.'_'.$img.'.filename'} 
 		 && !defined($domconfig->{$role}{$img})
 		 && !$env{'form.'.$role.'_del_'.$img}
@@ -2921,7 +2965,19 @@
                             $changes{$role}{'images'}{$img} = 1;
                         } 
                     }
-                }  
+                    if (($role eq 'login') && (($img eq 'logo') || ($img eq 'img'))) {
+                        if (ref($domconfig->{'login'}{'showlogo'}) eq 'HASH') {
+                            if ($confhash->{$role}{'showlogo'}{$img} ne 
+                                $domconfig->{$role}{'showlogo'}{$img}) {
+                                $changes{$role}{'showlogo'}{$img} = 1; 
+                            }
+                        } else {
+                            if ($confhash->{$role}{'showlogo'}{$img} == 0) {
+                                $changes{$role}{'showlogo'}{$img} = 1;
+                            }
+                        }
+                    }
+                }
                 if ($domconfig->{$role}{'font'} ne '') {
                     if ($confhash->{$role}{'font'} ne $domconfig->{$role}{'font'}) {
                         $changes{$role}{'font'} = 1;
@@ -3013,6 +3069,11 @@
             $confhash->{$role}{$img} = '';
             $changes->{$role}{'images'}{$img} = 1;
         }
+        if ($role eq 'login') {
+            if ($confhash->{$role}{'showlogo'}{$img} == 0) {
+                $changes->{$role}{'showlogo'}{$img} = 1;
+            }
+        }
     }
     if ($confhash->{$role}{'font'}) {
         $changes->{$role}{'font'} = 1;
@@ -3044,7 +3105,13 @@
                         $resulttext .= '<li>'.&mt($choices{$key}).':<ul>';
                     }
                     foreach my $item (sort(keys(%{$changes->{$role}{$key}}))) {
-                        if ($confhash->{$role}{$item} eq '') {
+                        if (($role eq 'login') && ($key eq 'showlogo')) {
+                            if ($confhash->{$role}{$key}{$item}) {
+                                $resulttext .= '<li>'.&mt("$choices{$item} set to be displayed").'</li>';
+                            } else {
+                                $resulttext .= '<li>'.&mt("$choices{$item} set to not be displayed").'</li>';
+                            }
+                        } elsif ($confhash->{$role}{$item} eq '') {
                             $resulttext .= '<li>'.&mt("$choices{$item} set to default").'</li>';
                         } else {
                             my $newitem = $confhash->{$role}{$item};
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.698 loncom/interface/loncommon.pm:1.699
--- loncom/interface/loncommon.pm:1.698	Mon Dec  1 14:38:49 2008
+++ loncom/interface/loncommon.pm	Mon Dec  1 15:03:40 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.698 2008/12/01 14:38:49 harmsja Exp $
+# $Id: loncommon.pm,v 1.699 2008/12/01 15:03:40 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -3880,7 +3880,14 @@
         if (ref($domconfig{'login'}) eq 'HASH') {
             if (keys(%{$domconfig{'login'}})) {
                 foreach my $key (keys(%{$domconfig{'login'}})) {
-                    $designhash{$udom.'.login.'.$key}=$domconfig{'login'}{$key};
+                    if (ref($domconfig{'login'}{$key}) eq 'HASH') {
+                        foreach my $img (keys(%{$domconfig{'login'}{$key}})) {
+                            $designhash{$udom.'.login.'.$key.'_'.$img} = 
+                                $domconfig{'login'}{$key}{$img};
+                        }
+                    } else {
+                        $designhash{$udom.'.login.'.$key}=$domconfig{'login'}{$key};
+                    }
                 }
             } else {
                 $legacy{'login'} = 1;
Index: loncom/auth/lonlogin.pm
diff -u loncom/auth/lonlogin.pm:1.108 loncom/auth/lonlogin.pm:1.109
--- loncom/auth/lonlogin.pm:1.108	Sun Nov 23 11:01:01 2008
+++ loncom/auth/lonlogin.pm	Mon Dec  1 15:03:43 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Login Screen
 #
-# $Id: lonlogin.pm,v 1.108 2008/11/23 11:01:01 tempelho Exp $
+# $Id: lonlogin.pm,v 1.109 2008/12/01 15:03:43 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -266,6 +266,14 @@
 if ($login eq '') {
 $login = $iconpath.'/'.&mt('userauthentication.gif');
 }
+my $showbanner = 1;
+my $showmainlogo = 1;
+if (defined(&Apache::loncommon::designparm('login.showlogo_img',$domain))) {
+    $showbanner = &Apache::loncommon::designparm('login.showlogo_img',$domain);
+}
+if (defined(&Apache::loncommon::designparm('login.showlogo_logo',$domain))) {
+    $showmainlogo = &Apache::loncommon::designparm('login.showlogo_logo',$domain);
+}
 my $showadminmail=&Apache::loncommon::designparm('login.adminmail',$domain);
 my $showcoursecat =
 &Apache::loncommon::designparm('login.coursecatalog',$domain);
@@ -398,16 +406,6 @@
 my $helpdeskscript;
 my $contactblock = &contactdisplay(\%lt,$servadm,$showadminmail,
                             $version,$authdomain,\$helpdeskscript);
-my $loncapaheader=(<<HEADER);
-<!-- The LON-CAPA Header -->
-<table border="0" align="left" width="100%" cellspacing="0" cellpadding="1">
- <tr>
-  <td align="left" valign="top" bgcolor="$pgbg">
-      <img src="$img" border=0 alt="The Learning Online Network with CAPA" /> 
-  </td>
- </tr>
-</table>
-HEADER
 
 my $loginform=(<<LFORM);
 <form name="client" onsubmit="return(send())">
@@ -423,12 +421,24 @@
 </form>
 LFORM
 
-if ($fullgraph) { 
-$r->print(<<ENDTOP);
-$loncapaheader
-<div class="LC_loginpage_space">&nbsp;</div>
-    <img src="$logo" alt="" />
-
+if ($fullgraph) {
+    if ($showbanner) {
+        $r->print(<<HEADER);
+<!-- The LON-CAPA Header -->
+<table border="0" align="left" width="100%" cellspacing="0" cellpadding="1">
+ <tr>
+  <td align="left" valign="top" bgcolor="$pgbg">
+      <img src="$img" border=0 alt="The Learning Online Network with CAPA" />
+  </td>
+ </tr>
+</table>
+HEADER
+    }
+    if ($showmainlogo) {
+        $r->print('<div class="LC_loginpage_space">&nbsp;</div>'."\n".
+                  '    <img src="'.$logo.'" alt="" />'."\n");
+    }
+    $r->print(<<ENDTOP);
 <div class="LC_loginpage_loginContainer">
  <fieldset class="LC_loginpage_fieldset">
   <legend class="LC_loginpage_legend">$logintitle</legend>

--raeburn1228143823--