--- loncom/interface/domainprefs.pm 2007/04/12 20:33:31 1.11
+++ loncom/interface/domainprefs.pm 2007/07/28 21:23:53 1.24
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.11 2007/04/12 20:33:31 albertel Exp $
+# $Id: domainprefs.pm,v 1.24 2007/07/28 21:23:53 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 {
';
+ foreach my $title (@{$titleorder}) {
+ if (defined($searchtitles->{$title})) {
+ my $check = ' ';
+ if (ref($settings->{'searchby'}) eq 'ARRAY') {
+ if (grep(/^\Q$title\E$/,@{$settings->{'searchby'}})) {
+ $check = ' checked="checked" ';
+ }
+ }
+ $datatable .= '
'.
+ '
';
+ }
+ }
+ $datatable .= '
';
+ return $datatable;
+}
+
+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 usertype_update_row {
my ($settings,$usertypes,$fieldtitles,$fields,$types,$rownums) = @_;
my $datatable;
@@ -1006,7 +1189,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;
@@ -1014,6 +1197,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');
@@ -1034,11 +1222,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) =
@@ -1046,16 +1243,16 @@ 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 publishing 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);
@@ -1073,6 +1270,7 @@ sub modify_colors {
$dom,$confname,$img,$width,$height);
if ($result eq 'ok') {
$confhash->{$role}{$img} = $logourl;
+ $changes{$role}{'images'}{$img} = 1;
}
}
}
@@ -1086,7 +1284,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};
@@ -1095,7 +1293,7 @@ sub modify_colors {
} else {
if ($env{'form.'.$role.'_del_'.$img}) {
$confhash->{$role}{$img} = '';
- $changes{$role}{$img} = 1;
+ $changes{$role}{'images'}{$img} = 1;
}
}
}
@@ -1157,7 +1355,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'}) {
@@ -1194,7 +1392,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}).'