--- loncom/interface/domainprefs.pm 2007/04/10 21:40:12 1.10
+++ loncom/interface/domainprefs.pm 2007/08/26 15:31:03 1.25
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.10 2007/04/10 21:40:12 albertel Exp $
+# $Id: domainprefs.pm,v 1.25 2007/08/26 15:31:03 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -67,7 +67,7 @@ sub handler {
}
my %domconfig =
&Apache::lonnet::get_dom('configuration',['login','rolecolors',
- 'quotas','autoenroll','autoupdate'],$dom);
+ 'quotas','autoenroll','autoupdate','directorysrch'],$dom);
my @prefs = (
{ text => 'Default color schemes',
help => 'Default_Color_Schemes',
@@ -106,7 +106,13 @@ sub handler {
col2 => 'Value',},
{col1 => 'User Population',
col2 => 'Updataeable user data'}],
- },
+ },
+ { text => 'Institutional directory searches',
+ help => 'Domain_Directory_Search',
+ action => 'directorysrch',
+ header => [{col1 => 'Setting',
+ col2 => 'Value',}],
+ },
);
my @roles = ('student','coordinator','author','admin');
&Apache::lonhtmlcommon::add_breadcrumb
@@ -133,6 +139,31 @@ sub handler {
my %helphash;
my $numprefs = @prefs;
&print_header($r,$phase);
+ if (keys(%domconfig) == 0) {
+ my $primarylibserv = &Apache::lonnet::domain($dom,'primary');
+ my $perlvarref = &LONCAPA::Configuration::read_conf('loncapa.conf');
+ my $hostid = $perlvarref->{'lonHostID'};
+ if ($hostid ne $primarylibserv) {
+ my %designhash = &Apache::loncommon::get_domainconf($dom);
+ my @loginimages = ('img','logo','domlogo');
+ my $custom_img_count = 0;
+ foreach my $img (@loginimages) {
+ if ($designhash{$dom.'.login.'.$img} ne '') {
+ $custom_img_count ++;
+ }
+ }
+ foreach my $role (@roles) {
+ if ($designhash{$dom.'.'.$role.'.img'} ne '') {
+ $custom_img_count ++;
+ }
+ }
+ if ($custom_img_count > 0) {
+ my $switch_server = &check_switchserver($dom,$confname);
+ $r->print(&mt('Domain configuration settings have yet to be saved for this domain via the web-based domain preferences interface.').' '.&mt("While this remains so, you must switch to the domain's primary library server in order to update settings.").'
'.&mt("Thereafter, you will be able to update settings from this screen when logged in to any server in the LON-CAPA network (with a DC role selected in the domain), although you will still need to switch to the domain's primary library server to upload new images or logos.").'
'.$switch_server.' '.&mt('to primary library server for domain: [_1]',$dom));
+ return OK;
+ }
+ }
+ }
$r->print('
');
foreach my $item (@prefs) {
if ($item->{'action'} eq 'login') {
@@ -145,7 +176,7 @@ sub handler {
';
+ return $output;
+}
+
+sub sorted_inst_types {
+ my ($dom) = @_;
+ my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom);
+ my $othertitle = "All users";
+ my @types;
+ if (ref($order) eq 'ARRAY') {
+ @types = @{$order};
+ }
+ if (@types == 0) {
+ if (ref($usertypes) eq 'HASH') {
+ @types = sort(keys(%{$usertypes}));
+ }
+ }
+ if (keys(%{$usertypes}) > 0) {
+ $othertitle = &mt('Other users');
+ }
+ return ($othertitle,$usertypes,\@types);
+}
+
+sub sorted_searchtitles {
+ my %searchtitles = &Apache::lonlocal::texthash(
+ 'uname' => 'username',
+ 'lastname' => 'last name',
+ 'lastfirst' => 'last name, first name',
+ );
+ my @titleorder = ('uname','lastname','lastfirst');
+ return (\%searchtitles,\@titleorder);
+}
+
+sub sorted_searchtypes {
+ my %srchtypes_desc = (
+ exact => 'is exact match',
+ contains => 'contains ..',
+ begins => 'begins with ..',
+ );
+ my @srchtypeorder = ('exact','begins','contains');
+ return (\%srchtypes_desc,\@srchtypeorder);
+}
+
sub usertype_update_row {
my ($settings,$usertypes,$fieldtitles,$fields,$types,$rownums) = @_;
my $datatable;
@@ -951,7 +1163,8 @@ sub modify_login {
$resulttext = &mt('No changes made to log-in page settings');
}
} else {
- $resulttext = &mt('An error occurred: [_1]',$putresult);
+ $resulttext = ''.
+ &mt('An error occurred: [_1]',$putresult).'';
}
if ($errors) {
$resulttext .= ' '.&mt('The following errors occurred: ').'
'.
@@ -993,7 +1206,8 @@ sub modify_rolecolors {
$resulttext = &mt('No changes made to default color schemes');
}
} else {
- $resulttext = &mt('An error occurred: [_1]',$putresult);
+ $resulttext = ''.
+ &mt('An error occurred: [_1]',$putresult).'';
}
if ($errors) {
$resulttext .= &mt('The following errors occurred: ').'
'.
@@ -1004,7 +1218,7 @@ sub modify_rolecolors {
sub modify_colors {
my ($r,$dom,$confname,$roles,$domconfig,$confhash) = @_;
- my %changes;
+ my (%changes,%choices);
my @bgs = ('pgbg','mainbg','sidebg');
my @links = ('link','alink','vlink');
my @images;
@@ -1012,6 +1226,11 @@ sub modify_colors {
my $errors;
foreach my $role (@{$roles}) {
if ($role eq 'login') {
+ %choices = &login_choices();
+ } else {
+ %choices = &color_font_choices();
+ }
+ if ($role eq 'login') {
@images = ('img','logo','domlogo');
} else {
@images = ('img');
@@ -1032,11 +1251,20 @@ sub modify_colors {
}
my ($width,$height) = &thumb_dimensions();
foreach my $img (@images) {
+ if ( ! $env{'form.'.$role.'_'.$img.'.filename'}
+ && !defined($domconfig->{$role}{$img})
+ && !$env{'form.'.$role.'_del_'.$img}
+ && $env{'form.'.$role.'_import_'.$img}) {
+ # import the old configured image from the .tab setting
+ # if they haven't provided a new one
+ $domconfig->{$role}{$img} =
+ $env{'form.'.$role.'_import_'.$img};
+ }
if ($env{'form.'.$role.'_'.$img.'.filename'} ne '') {
my $error;
if ($configuserok eq 'ok') {
if ($switchserver) {
- $error = &mt("Upload of image [_1] for $role page(s) is not permitted to this server: [_2]",$img,$switchserver);
+ $error = &mt("Upload of [_1] image for $role page(s) is not permitted to this server: [_2]",$choices{$img},$switchserver);
} else {
if ($author_ok eq 'ok') {
my ($result,$logourl) =
@@ -1044,20 +1272,20 @@ sub modify_colors {
$dom,$confname,$img,$width,$height);
if ($result eq 'ok') {
$confhash->{$role}{$img} = $logourl;
- $changes{$role}{$img} = 1;
+ $changes{$role}{'images'}{$img} = 1;
} else {
- $error = &mt("Upload of image [_1] for $role page(s) failed because an error occurred publshing the file in RES space. Error was: [_2].",$img,$result);
+ $error = &mt("Upload of [_1] image for $role page(s) failed because an error occurred publishing the file in RES space. Error was: [_2].",$choices{img},$result);
}
} else {
- $error = &mt("Upload of image [_1] for $role page(s) failed because an author role could not be assigned to a Domain Configuation user ([_2]) in domain: [_3]. Error was: [_4].",$img,$confname,$dom,$author_ok);
+ $error = &mt("Upload of [_1] image for $role page(s) failed because an author role could not be assigned to a Domain Configuation user ([_2]) in domain: [_3]. Error was: [_4].",$choices{$img},$confname,$dom,$author_ok);
}
}
} else {
- $error = &mt("Upload of image [_1] for $role page(s) failed because a Domain Configuation user ([_2]) could not be created in domain: [_3]. Error was: [_4].",$img,$confname,$dom,$configuserok);
+ $error = &mt("Upload of [_1] image for $role page(s) failed because a Domain Configuation user ([_2]) could not be created in domain: [_3]. Error was: [_4].",$choices{$img},$confname,$dom,$configuserok);
}
if ($error) {
&Apache::lonnet::logthis($error);
- $errors .= '
'.$error.'
';
+ $errors .= '
'.$error.'
';
}
} elsif ($domconfig->{$role}{$img} ne '') {
if ($domconfig->{$role}{$img} !~ m-^(/res/\Q$dom\E/\Q$confname\E/\Q$img\E)/([^/]+)$-) {
@@ -1071,6 +1299,7 @@ sub modify_colors {
$dom,$confname,$img,$width,$height);
if ($result eq 'ok') {
$confhash->{$role}{$img} = $logourl;
+ $changes{$role}{'images'}{$img} = 1;
}
}
}
@@ -1084,7 +1313,7 @@ sub modify_colors {
if ($domconfig->{$role}{$img} ne '') {
if ($env{'form.'.$role.'_del_'.$img}) {
$confhash->{$role}{$img} = '';
- $changes{$role}{$img} = 1;
+ $changes{$role}{'images'}{$img} = 1;
} else {
if ($confhash->{$role}{$img} eq '') {
$confhash->{$role}{$img} = $domconfig->{$role}{$img};
@@ -1093,7 +1322,7 @@ sub modify_colors {
} else {
if ($env{'form.'.$role.'_del_'.$img}) {
$confhash->{$role}{$img} = '';
- $changes{$role}{$img} = 1;
+ $changes{$role}{'images'}{$img} = 1;
}
}
}
@@ -1155,7 +1384,7 @@ sub default_change_checker {
foreach my $img (@{$images}) {
if ($env{'form.'.$role.'_del_'.$img}) {
$confhash->{$role}{$img} = '';
- $changes->{$role}{$img} = 1;
+ $changes->{$role}{'images'}{$img} = 1;
}
}
if ($confhash->{$role}{'font'}) {
@@ -1192,7 +1421,11 @@ sub display_colorchgs {
if ($confhash->{$role}{$item} eq '') {
$resulttext .= '
'.&mt("$choices{$item} set to default").'
';
} else {
- $resulttext .= '
'.&mt("$choices{$item} set to [_1]",$confhash->{$role}{$item}).'