[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}.' <span id="css_default_'.$role.'_'.$item.'" style="background-color: '.$defaults->{'bgs'}{$item}.';"> </span><br />'.$defaults->{'bgs'}{$item}.'</td>';
+ $bgs_def .= '<td><span class="LC_nobreak">'.$choices->{$item}.'</span> <span id="css_default_'.$role.'_'.$item.'" style="background-color: '.$defaults->{'bgs'}{$item}.';"> </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> <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"> </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"> </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--