');
foreach my $item (@prefs) {
if ($item->{'action'} eq 'login') {
@@ -164,6 +195,8 @@ sub process_changes {
$output = &modify_autoenroll($dom,%domconfig);
} elsif ($action eq 'autoupdate') {
$output = &modify_autoupdate($dom,%domconfig);
+ } elsif ($action eq 'directorysrch') {
+ $output = &modify_directorysrch($dom,%domconfig);
}
return $output;
}
@@ -173,9 +206,12 @@ sub print_config_box {
$r->print('
- '.&mt($item->{text}).' '.
- &Apache::loncommon::help_open_topic($item->{'help'}).'
- ');
+ '.&mt($item->{text}).' ');
+#
+# FIXME - put the help link back in when the help files exist
+# '.&mt($item->{text}).' '.
+# &Apache::loncommon::help_open_topic($item->{'help'}).'
+# ');
if (($action eq 'autoupdate') || ($action eq 'rolecolors')) {
my $colspan = ($action eq 'rolecolors')?' colspan="2"':'';
$r->print('
@@ -235,7 +271,7 @@ sub print_config_box {
');
- if ($action eq 'login') {
+ if (($action eq 'login') || ($action eq 'directorysrch')) {
$r->print('
'.$item->{'header'}->[0]->{'col1'}.' ');
} else {
@@ -251,6 +287,8 @@ sub print_config_box {
$r->print(&print_quotas($dom,$settings));
} elsif ($action eq 'autoenroll') {
$r->print(&print_autoenroll($dom,$settings));
+ } elsif ($action eq 'directorysrch') {
+ $r->print(&print_directorysrch($dom,$settings));
}
}
$r->print('
@@ -522,13 +560,14 @@ sub display_color_options {
' ';
my $switchserver = &check_switchserver($dom,$confname);
foreach my $img (@{$images}) {
- $itemcount ++;
+ $itemcount ++;
$css_class = $itemcount%2?' class="LC_odd_row"':'';
$datatable .= ''.
''.$choices->{$img}.' ';
- my $imgfile;
+ my ($imgfile, $img_import);
if ($designs->{$img} ne '') {
$imgfile = $designs->{$img};
+ $img_import = ($imgfile =~ m{^/adm/});
} else {
$imgfile = $defaults->{$img};
}
@@ -578,6 +617,9 @@ sub display_color_options {
if (!$is_custom->{$img}) {
$datatable .= &mt('Default in use:').' ';
}
+ if ($img_import) {
+ $datatable.= ' ';
+ }
$datatable.= ' ';
@@ -700,21 +742,11 @@ ENDCOL
sub print_quotas {
my ($dom,$settings) = @_;
my $datatable;
- 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}));
- }
- }
+ my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
my $typecount = 0;
my $css_class;
- if (@types > 0) {
- foreach my $type (@types) {
+ if (ref($types) eq 'ARRAY') {
+ foreach my $type (@{$types}) {
if (defined($usertypes->{$type})) {
$typecount ++;
$css_class = $typecount%2?' class="LC_odd_row"':'';
@@ -726,7 +758,6 @@ sub print_quotas {
'" size="5" /> Mb ';
}
}
- $othertitle = "Other users";
}
my $defaultquota = '20';
if (ref($settings) eq 'HASH') {
@@ -737,7 +768,7 @@ sub print_quotas {
$typecount ++;
$css_class = $typecount%2?' class="LC_odd_row"':'';
$datatable .= ''.
- ''.&mt($othertitle).' '.
+ ''.$othertitle.' '.
''.
' Mb ';
@@ -746,9 +777,8 @@ sub print_quotas {
sub print_autoenroll {
my ($dom,$settings) = @_;
- my $defdom = $dom;
my $autorun = &Apache::lonnet::auto_run(undef,$dom),
- my ($runon,$runoff);
+ my ($defdom,$runon,$runoff);
if (ref($settings) eq 'HASH') {
if (exists($settings->{'run'})) {
if ($settings->{'run'} eq '0') {
@@ -836,34 +866,24 @@ sub print_autoupdate {
$classlistsoff.'value="0" />'.&mt('No').''.
'';
} else {
- my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom);
- my @types;
- if (ref($order) eq 'ARRAY') {
- @types = @{$order};
- }
- if (@types == 0) {
- if (ref($usertypes) eq 'HASH') {
- @types = sort(keys(%{$usertypes}));
- }
- }
- my $othertitle = &mt('All users');
- if (keys(%{$usertypes}) > 0) {
- $othertitle = &mt('Other users');
- }
- my @fields = ('lastname','firstname','middlename','gen','email','id');
+ my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
+ my @fields = ('lastname','firstname','middlename','gen',
+ 'permanentemail','id');
my %fieldtitles = &Apache::lonlocal::texthash (
id => 'Student/Employee ID',
- email => 'E-mail address',
+ permanentemail => 'E-mail address',
lastname => 'Last Name',
firstname => 'First Name',
middlename => 'Middle Name',
gen => 'Generation',
);
my $numrows = 0;
- if (@types > 0) {
- $datatable =
- &usertype_update_row($settings,$usertypes,\%fieldtitles,
- \@fields,\@types,\$numrows);
+ if (ref($types) eq 'ARRAY') {
+ if (@{$types} > 0) {
+ $datatable =
+ &usertype_update_row($settings,$usertypes,\%fieldtitles,
+ \@fields,$types,\$numrows);
+ }
}
$datatable .=
&usertype_update_row($settings,{'default' => $othertitle},
@@ -873,6 +893,204 @@ sub print_autoupdate {
return $datatable;
}
+sub print_directorysrch {
+ my ($dom,$settings) = @_;
+ my $srchon = ' ';
+ my $srchoff = ' checked="checked" ';
+ my ($exacton,$containson,$beginson);
+ my $localon = ' ';
+ my $localoff = ' checked="checked" ';
+ if (ref($settings) eq 'HASH') {
+ if ($settings->{'available'} eq '1') {
+ $srchon = $srchoff;
+ $srchoff = ' ';
+ }
+ if ($settings->{'localonly'} eq '1') {
+ $localon = $localoff;
+ $localoff = ' ';
+ }
+ if (ref($settings->{'searchtypes'}) eq 'ARRAY') {
+ foreach my $type (@{$settings->{'searchtypes'}}) {
+ if ($type eq 'exact') {
+ $exacton = ' checked="checked" ';
+ } elsif ($type eq 'contains') {
+ $containson = ' checked="checked" ';
+ } elsif ($type eq 'begins') {
+ $beginson = ' checked="checked" ';
+ }
+ }
+ } else {
+ if ($settings->{'searchtypes'} eq 'exact') {
+ $exacton = ' checked="checked" ';
+ } elsif ($settings->{'searchtypes'} eq 'contains') {
+ $containson = ' checked="checked" ';
+ } elsif ($settings->{'searchtypes'} eq 'specify') {
+ $exacton = ' checked="checked" ';
+ $containson = ' checked="checked" ';
+ }
+ }
+ }
+ my ($searchtitles,$titleorder) = &sorted_searchtitles();
+ my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
+
+ my $numinrow = 4;
+ my $cansrchrow = 0;
+ my $datatable=''.
+ ''.&mt('Directory search available?').' '.
+ ''.
+ ' '.&mt('Yes').' '.
+ ' '.&mt('No').' '.
+ ' '.
+ ''.&mt('Other domains can search?').' '.
+ ''.
+ ' '.&mt('Yes').' '.
+ ' '.&mt('No').' '.
+ ' ';
+ if (ref($usertypes) eq 'HASH') {
+ if (keys(%{$usertypes}) > 0) {
+ $datatable .= &users_cansearch_row($settings,$types,$usertypes,$dom,
+ $numinrow,$othertitle);
+ $cansrchrow = 1;
+ }
+ }
+ if ($cansrchrow) {
+ $datatable .= '';
+ } else {
+ $datatable .= ' ';
+ }
+ $datatable .= ''.&mt('Supported search methods').
+ ' ';
+ if ($cansrchrow) {
+ $datatable .= '';
+ } else {
+ $datatable .= ' ';
+ }
+ $datatable .= ''.&mt('Search latitude').' '.
+ ''.
+ ''.
+ ' '.&mt('Exact match').
+ ' '.
+ ' '.&mt('Begins with').
+ ' '.
+ ' '.&mt('Contains').
+ ' ';
+ return $datatable;
+}
+
+sub users_cansearch_row {
+ my ($settings,$types,$usertypes,$dom,$numinrow,$othertitle) = @_;
+ my $output = ''.
+ ''.&mt('Users allowed to search').' ('.$dom.')'.
+ ' ';
+ return $output;
+}
+
+sub sorted_inst_types {
+ my ($dom) = @_;
+ my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom);
+ my $othertitle = &mt('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;
@@ -1053,6 +1271,15 @@ 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') {
@@ -1092,6 +1319,7 @@ sub modify_colors {
$dom,$confname,$img,$width,$height);
if ($result eq 'ok') {
$confhash->{$role}{$img} = $logourl;
+ $changes{$role}{'images'}{$img} = 1;
}
}
}
@@ -1254,7 +1482,7 @@ sub check_dimensions {
}
chomp($imageinfo);
my ($fullsize) =
- ($imageinfo =~ /^\Q$inputfile\E\s+\w+\s+(\d+x\d+)\s+/);
+ ($imageinfo =~ /^\Q$inputfile\E\s+\w+\s+(\d+x\d+)/);
if ($fullsize) {
($fullwidth,$fullheight) = split(/x/,$fullsize);
}
@@ -1515,8 +1743,7 @@ sub check_switchserver {
sub modify_quotas {
my ($dom,%domconfig) = @_;
my ($resulttext,%changes);
- my ($usertypes,$order) =
- &Apache::lonnet::retrieve_inst_usertypes($dom);
+ my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
my %formhash;
foreach my $key (keys(%env)) {
if ($key =~ /^form\.quota_(.+)$/) {
@@ -1550,8 +1777,14 @@ sub modify_quotas {
if ($putresult eq 'ok') {
if (keys(%changes) > 0) {
$resulttext = &mt('Changes made:').'';
- foreach my $item (sort(keys(%changes))) {
- $resulttext .= ''.&mt('[_1] set to [_2] Mb',$usertypes->{$item},$formhash{$item}).' ';
+ foreach my $type (@{$types},'default') {
+ if (defined($changes{$type})) {
+ my $typetitle = $usertypes->{$type};
+ if ($type eq 'default') {
+ $typetitle = $othertitle;
+ }
+ $resulttext .= ''.&mt('[_1] set to [_2] Mb',$typetitle,$formhash{$type}).' ';
+ }
}
$resulttext .= ' ';
} else {
@@ -1577,10 +1810,17 @@ sub modify_autoenroll {
my %title = ( run => 'Auto-enrollment active',
sender => 'Sender for notification messages');
my @offon = ('off','on');
+ my $sender_uname = $env{'form.sender_uname'};
+ my $sender_domain = $env{'form.sender_domain'};
+ if ($sender_domain eq '') {
+ $sender_uname = '';
+ } elsif ($sender_uname eq '') {
+ $sender_domain = '';
+ }
my %autoenrollhash = (
autoenroll => { run => $env{'form.autoenroll_run'},
- sender_uname => $env{'form.sender_uname'},
- sender_domain => $env{'form.sender_domain'},
+ sender_uname => $sender_uname,
+ sender_domain => $sender_domain,
}
);
@@ -1593,21 +1833,13 @@ sub modify_autoenroll {
}
} elsif ($autorun) {
if ($env{'form.autoenroll_run'} ne '1') {
- $changes{'run'} = 1;
+ $changes{'run'} = 1;
}
}
- if (exists($currautoenroll{sender_uname})) {
- if ($currautoenroll{'sender_uname'} ne $env{'form.sender_uname'}) {
- $changes{'sender'} = 1;
- }
- } else {
+ if ($currautoenroll{'sender_uname'} ne $sender_uname) {
$changes{'sender'} = 1;
}
- if (exists($currautoenroll{sender_domain})) {
- if ($currautoenroll{'sender_domain'} ne $env{'form.sender_domain'}) {
- $changes{'sender'} = 1;
- }
- } else {
+ if ($currautoenroll{'sender_domain'} ne $sender_domain) {
$changes{'sender'} = 1;
}
if (keys(%changes) > 0) {
@@ -1616,7 +1848,11 @@ sub modify_autoenroll {
$resulttext .= ''.&mt("$title{'run'} set to $offon[$env{'form.autoenroll_run'}]").' ';
}
if ($changes{'sender'}) {
- $resulttext .= ''.&mt("$title{'sender'} set to [_1]",$env{'form.sender_uname'}.':'.$env{'form.sender_domain'}).' ';
+ if ($sender_uname eq '' || $sender_domain eq '') {
+ $resulttext .= ''.&mt("$title{'sender'} set to default (course owner).").' ';
+ } else {
+ $resulttext .= ''.&mt("$title{'sender'} set to [_1]",$sender_uname.':'.$sender_domain).' ';
+ }
}
$resulttext .= '';
} else {
@@ -1642,10 +1878,10 @@ sub modify_autoupdate {
run => 'Auto-update:',
classlists => 'Updates to user information in classlists?'
);
- my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom);
+ my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
my %fieldtitles = &Apache::lonlocal::texthash (
id => 'Student/Employee ID',
- email => 'E-mail address',
+ permanentemail => 'E-mail address',
lastname => 'Last Name',
firstname => 'First Name',
middlename => 'Middle Name',
@@ -1653,7 +1889,7 @@ sub modify_autoupdate {
);
my $othertitle = &mt('All users');
if (keys(%{$usertypes}) > 0) {
- $othertitle = "Other users";
+ $othertitle = &mt('Other users');
}
foreach my $key (keys(%env)) {
if ($key =~ /^form\.updateable_(.+)_([^_]+)$/) {
@@ -1675,14 +1911,14 @@ sub modify_autoupdate {
}
} elsif ($key eq 'fields') {
if (ref($currautoupdate{$key}) eq 'HASH') {
- foreach my $item (keys(%{$currautoupdate{$key}})) {
+ foreach my $item (@{$types},'default') {
if (ref($currautoupdate{$key}{$item}) eq 'ARRAY') {
my $change = 0;
foreach my $type (@{$currautoupdate{$key}{$item}}) {
if (!exists($fields{$item})) {
$change = 1;
} elsif (ref($fields{$item}) eq 'ARRAY') {
- if (!grep/^\Q$type\E$/,@{$fields{$item}}) {
+ if (!grep(/^\Q$type\E$/,@{$fields{$item}})) {
$change = 1;
}
}
@@ -1690,18 +1926,20 @@ sub modify_autoupdate {
if ($change) {
push(@{$changes{$key}},$item);
}
- }
+ }
}
}
}
}
- foreach my $key (keys(%fields)) {
- if (ref($currautoupdate{'fields'}) eq 'HASH') {
- if (!exists($currautoupdate{'fields'}{$key})) {
- push(@{$changes{'fields'}},$key);
+ foreach my $item (@{$types},'default') {
+ if (defined($fields{$item})) {
+ if (ref($currautoupdate{'fields'}) eq 'HASH') {
+ if (!exists($currautoupdate{'fields'}{$item})) {
+ push(@{$changes{'fields'}},$item);
+ }
+ } else {
+ push(@{$changes{'fields'}},$item);
}
- } else {
- push(@{$changes{'fields'}},$key);
}
}
my $putresult = &Apache::lonnet::put_dom('configuration',\%updatehash,
@@ -1723,9 +1961,9 @@ sub modify_autoupdate {
$newvaluestr = &mt('none');
}
if ($item eq 'default') {
- $resulttext .= ''.&mt("Updates for $othertitle set to: [_1]",$newvaluestr).' ';
+ $resulttext .= ''.&mt("Updates for '[_1]' set to: '[_2]'",$othertitle,$newvaluestr).' ';
} else {
- $resulttext .= ''.&mt("Updates for [_1] set to: [_2]",$usertypes->{$item},$newvaluestr).' ';
+ $resulttext .= ''.&mt("Updates for '[_1]' set to: '[_2]'",$usertypes->{$item},$newvaluestr).' ';
}
}
} else {
@@ -1749,5 +1987,178 @@ sub modify_autoupdate {
return $resulttext;
}
-1;
+sub modify_directorysrch {
+ my ($dom,%domconfig) = @_;
+ my ($resulttext,%changes);
+ my %currdirsrch;
+ if (ref($domconfig{'directorysrch'}) eq 'HASH') {
+ foreach my $key (keys(%{$domconfig{'directorysrch'}})) {
+ $currdirsrch{$key} = $domconfig{'directorysrch'}{$key};
+ }
+ }
+ my %title = ( available => 'Directory search available',
+ localonly => 'Other domains can search',
+ searchby => 'Search types',
+ searchtypes => 'Search latitude');
+ my @offon = ('off','on');
+ my @otherdoms = ('Yes','No');
+
+ my @searchtypes = &Apache::loncommon::get_env_multiple('form.searchtypes');
+ my @cansearch = &Apache::loncommon::get_env_multiple('form.cansearch');
+ my @searchby = &Apache::loncommon::get_env_multiple('form.searchby');
+
+ my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
+ if (keys(%{$usertypes}) == 0) {
+ @cansearch = ('default');
+ } else {
+ if (ref($currdirsrch{'cansearch'}) eq 'ARRAY') {
+ foreach my $type (@{$currdirsrch{'cansearch'}}) {
+ if (!grep(/^\Q$type\E$/,@cansearch)) {
+ push(@{$changes{'cansearch'}},$type);
+ }
+ }
+ foreach my $type (@cansearch) {
+ if (!grep(/^\Q$type\E$/,@{$currdirsrch{'cansearch'}})) {
+ push(@{$changes{'cansearch'}},$type);
+ }
+ }
+ } else {
+ push(@{$changes{'cansearch'}},@cansearch);
+ }
+ }
+
+ if (ref($currdirsrch{'searchby'}) eq 'ARRAY') {
+ foreach my $by (@{$currdirsrch{'searchby'}}) {
+ if (!grep(/^\Q$by\E$/,@searchby)) {
+ push(@{$changes{'searchby'}},$by);
+ }
+ }
+ foreach my $by (@searchby) {
+ if (!grep(/^\Q$by\E$/,@{$currdirsrch{'searchby'}})) {
+ push(@{$changes{'searchby'}},$by);
+ }
+ }
+ } else {
+ push(@{$changes{'searchby'}},@searchby);
+ }
+
+ if (ref($currdirsrch{'searchtypes'}) eq 'ARRAY') {
+ foreach my $type (@{$currdirsrch{'searchtypes'}}) {
+ if (!grep(/^\Q$type\E$/,@searchtypes)) {
+ push(@{$changes{'searchtypes'}},$type);
+ }
+ }
+ foreach my $type (@searchtypes) {
+ if (!grep(/^\Q$type\E$/,@{$currdirsrch{'searchtypes'}})) {
+ push(@{$changes{'searchtypes'}},$type);
+ }
+ }
+ } else {
+ if (exists($currdirsrch{'searchtypes'})) {
+ foreach my $type (@searchtypes) {
+ if ($type ne $currdirsrch{'searchtypes'}) {
+ push(@{$changes{'searchtypes'}},$type);
+ }
+ }
+ if (!grep(/^\Q$currdirsrch{'searchtypes'}\E/,@searchtypes)) {
+ push(@{$changes{'searchtypes'}},$currdirsrch{'searchtypes'});
+ }
+ } else {
+ push(@{$changes{'searchtypes'}},@searchtypes);
+ }
+ }
+ my %dirsrch_hash = (
+ directorysrch => { available => $env{'form.dirsrch_available'},
+ cansearch => \@cansearch,
+ localonly => $env{'form.dirsrch_localonly'},
+ searchby => \@searchby,
+ searchtypes => \@searchtypes,
+ }
+ );
+ my $putresult = &Apache::lonnet::put_dom('configuration',\%dirsrch_hash,
+ $dom);
+ if ($putresult eq 'ok') {
+ if (exists($currdirsrch{'available'})) {
+ if ($currdirsrch{'available'} ne $env{'form.dirsrch_available'}) {
+ $changes{'available'} = 1;
+ }
+ } else {
+ if ($env{'form.dirsrch_available'} eq '1') {
+ $changes{'available'} = 1;
+ }
+ }
+ if (exists($currdirsrch{'localonly'})) {
+ if ($currdirsrch{'localonly'} ne $env{'form.dirsrch_localonly'}) {
+ $changes{'localonly'} = 1;
+ }
+ } else {
+ if ($env{'form.dirsrch_localonly'} eq '1') {
+ $changes{'localonly'} = 1;
+ }
+ }
+ if (keys(%changes) > 0) {
+ $resulttext = &mt('Changes made:').'';
+ if ($changes{'available'}) {
+ $resulttext .= ''.&mt("$title{'available'} set to: $offon[$env{'form.dirsrch_available'}]").' ';
+ }
+ if ($changes{'localonly'}) {
+ $resulttext .= ''.&mt("$title{'localonly'} set to: $otherdoms[$env{'form.dirsrch_localonly'}]").' ';
+ }
+
+ if (ref($changes{'cansearch'}) eq 'ARRAY') {
+ my $chgtext;
+ if (ref($usertypes) eq 'HASH') {
+ if (keys(%{$usertypes}) > 0) {
+ foreach my $type (@{$types}) {
+ if (grep(/^\Q$type\E$/,@cansearch)) {
+ $chgtext .= $usertypes->{$type}.'; ';
+ }
+ }
+ if (grep(/^default$/,@cansearch)) {
+ $chgtext .= $othertitle;
+ } else {
+ $chgtext =~ s/\; $//;
+ }
+ $resulttext .= ''.&mt("Users from domain '[_1] ' permitted to search the institutional directory set to: [_2]",$dom,$chgtext).' ';
+ }
+ }
+ }
+ if (ref($changes{'searchby'}) eq 'ARRAY') {
+ my ($searchtitles,$titleorder) = &sorted_searchtitles();
+ my $chgtext;
+ foreach my $type (@{$titleorder}) {
+ if (grep(/^\Q$type\E$/,@searchby)) {
+ if (defined($searchtitles->{$type})) {
+ $chgtext .= $searchtitles->{$type}.'; ';
+ }
+ }
+ }
+ $chgtext =~ s/\; $//;
+ $resulttext .= ''.&mt("$title{'searchby'} set to: [_1]",$chgtext).' ';
+ }
+ if (ref($changes{'searchtypes'}) eq 'ARRAY') {
+ my ($srchtypes_desc,$srchtypeorder) = &sorted_searchtypes();
+ my $chgtext;
+ foreach my $type (@{$srchtypeorder}) {
+ if (grep(/^\Q$type\E$/,@searchtypes)) {
+ if (defined($srchtypes_desc->{$type})) {
+ $chgtext .= $srchtypes_desc->{$type}.'; ';
+ }
+ }
+ }
+ $chgtext =~ s/\; $//;
+ $resulttext .= ''.&mt("$title{'searchtypes'} set to: \"[_1]\"",$chgtext).' ';
+ }
+ $resulttext .= ' ';
+ } else {
+ $resulttext = &mt('No changes made to institution directory search settings');
+ }
+ } else {
+ $resulttext = ''.
+ &mt('An error occurred: [_1]',$putresult).' ';
+ }
+ return $resulttext;
+}
+
+1;