[LON-CAPA-cvs] cvs: loncom /interface domainprefs.pm
raeburn
lon-capa-cvs@mail.lon-capa.org
Thu, 01 Mar 2007 18:03:18 -0000
This is a MIME encoded message
--raeburn1172772198
Content-Type: text/plain
raeburn Thu Mar 1 13:03:18 2007 EDT
Modified files:
/loncom/interface domainprefs.pm
Log:
Modify display to show all domain configuration settings on a single page (styled similarly to What's New? Page). Help files needed for help links.
--raeburn1172772198
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20070301130318.txt"
Index: loncom/interface/domainprefs.pm
diff -u loncom/interface/domainprefs.pm:1.2 loncom/interface/domainprefs.pm:1.3
--- loncom/interface/domainprefs.pm:1.2 Thu Mar 1 12:54:13 2007
+++ loncom/interface/domainprefs.pm Thu Mar 1 13:03:18 2007
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.2 2007/03/01 17:54:13 albertel Exp $
+# $Id: domainprefs.pm,v 1.3 2007/03/01 18:03:18 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -59,211 +59,464 @@
&Apache::lonhtmlcommon::clear_breadcrumbs();
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['phase']);
- my $phase = $env{'form.phase'};
- if ($phase eq '' || $phase eq 'start') {
+ my $phase = "display";
+ if ( exists($env{'form.phase'}) ) {
+ $phase = $env{'form.phase'};
+ }
+ my %domconfig =
+ &Apache::lonnet::get_dom('configuration',['login','quotas',
+ 'autoenroll','autoupdate'],$dom);
+
+ my @prefs = (
+ { text => 'Log-in page options',
+ help => 'Domain_Log-in_Page',
+ action => 'login',
+ header => [{col1 => 'Item',
+ col2 => 'Selection',}],
+ },
+ { text => 'Default quotas for user portfolios',
+ help => 'Default_User_Quota',
+ action => 'quotas',
+ header => [{col1 => 'User type',
+ col2 => 'Default quota'}],
+ },
+ { text => 'Auto-enrollment settings',
+ help => 'Domain_Auto_Enrollment',
+ action => 'autoenroll',
+ header => [{col1 => 'Configuration setting',
+ col2 => 'Value(s)'}],
+ },
+ { text => 'Auto-update settings',
+ help => 'Domain_Auto_Update',
+ action => 'autoupdate',
+ header => [{col1 => 'Setting',
+ col2 => 'Value',},
+ {col1 => 'User Population',
+ col2 => 'Updataeable user data'}],
+ },
+ );
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"javascript:changePage(document.$phase,'display')",
+ text=>"Domain Configuration"});
+ if ($phase eq 'process') {
&Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'start')",
- text=>"Choose an action"});
- &print_main_menu($r,$dom,$domdesc);
+ ({href=>"javascript:changePage(document.$phase,'$phase')",
+ text=>"Updated"});
+ &print_header($r,$phase);
+ foreach my $item (@prefs) {
+ $r->print('<h3>'.&mt($item->{'text'}).'</h3>'.
+ &process_changes($dom,$item->{'action'},%domconfig));
+ }
+ $r->print('<p>');
+ &print_footer($r,$phase,'display','Back to actions menu');
+ $r->print('</p>');
} else {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'start')",
- text=>"Choose an action"});
- if ($phase eq 'login') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'$phase')",
- text=>"Configure Log-in page"});
- &print_login($r,$phase,$dom)
- } elsif ($phase eq 'configlogin') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'login')",
- text=>"Configure Log-in page"});
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'$phase')",
- text=>"Result"});
- &modify_login($r,$phase,$dom,$domdesc);
- } elsif ($phase eq 'quotas') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'$phase')",
- text=>"Default user quotas"});
- &print_quotas($r,$phase,$dom);
- } elsif ($phase eq 'configquotas') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'quotas')",
- text=>"Default user quotas"});
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'$phase')",
- text=>"Result"});
- &modify_quotas($r,$phase,$dom,$domdesc);
- } elsif ($phase eq 'autoenroll') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'$phase')",
- text=>"Configure Auto-enrollment"});
- &print_autoenroll($r,$phase,$dom);
- } elsif ($phase eq 'configenroll') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'autoenroll')",
- text=>"Configure Auto-enrollment"});
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'$phase')",
- text=>"Result"});
- &modify_autoenroll($r,$phase,$dom,$domdesc);
- } elsif ($phase eq 'autoupdate') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'$phase')",
- text=>"Configure Auto-update"});
- &print_autoupdate($r,$phase,$dom);
- } elsif ($phase eq 'configupdate') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'quotas')",
- text=>"Change settings"});
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'$phase')",
- text=>"Result"});
- &modify_autoupdate($r,$phase,$dom,$domdesc);
- }
- }
- &print_footer($r);
-}
-
-sub print_main_menu {
- my ($r,$dom,$domdesc) = @_;
- my @menu =
- (
- { text => 'Log-in page options',
- help => 'Domain_Log-in_Page',
- phase => 'login',
- },
- { text => 'Default quotas for user portfolios',
- help => 'Default_User_Quota',
- phase => 'quotas',
- },
- { text => 'Auto-enrollment settings',
- help => 'Domain_Auto_Enrollment',
- phase => 'autoenroll',
- },
- { text => 'Auto-update settings',
- help => 'Domain_Auto_Update',
- phase => 'autoupdate',
- },
- );
- my $menu_html = '';
- foreach my $menu_item (@menu) {
- $menu_html.='<p>';
- $menu_html.='<font size="+1">';
- if (exists($menu_item->{'url'})) {
- $menu_html.=qq{<a href="$menu_item->{'url'}">};
- } else {
- $menu_html.=
- qq{<a href="/adm/domainprefs?phase=$menu_item->{'phase'}">};
- }
- $menu_html.= &mt($menu_item->{'text'}).'</a></font>';
- if (exists($menu_item->{'help'})) {
- $menu_html.=
- &Apache::loncommon::help_open_topic($menu_item->{'help'});
+ if ($phase eq '') {
+ $phase = 'display';
}
- $menu_html.='</p>'.$/;
- }
- &print_header($r);
- $r->print($menu_html);
+ my %helphash;
+ my $numprefs = @prefs;
+ &print_header($r,$phase);
+ $r->print('<table border="0" width="100%" cellpadding="2" cellspacing="4"><tr><td align="left" valign="top" width="45%">');
+ foreach my $item (@prefs) {
+ if ($item->{'action'} eq 'autoupdate') {
+ $r->print('</td><td width="6%"> </td><td align="left" valign="top" width="47%">');
+ }
+ &print_config_box($r,$dom,$item->{'action'},$item,
+ $domconfig{$item->{'action'}});
+ }
+ $r->print('
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>');
+ &print_footer($r,$phase,'process','Store changes');
+ }
+ return OK;
+}
+
+sub process_changes {
+ my ($dom,$action,%domconfig) = @_;
+ my $output;
+ if ($action eq 'login') {
+ $output = &modify_login($dom,%domconfig);
+ } elsif ($action eq 'quotas') {
+ $output = &modify_quotas($dom,%domconfig);
+ } elsif ($action eq 'autoenroll') {
+ $output = &modify_autoenroll($dom,%domconfig);
+ } elsif ($action eq 'autoupdate') {
+ $output = &modify_autoupdate($dom,%domconfig);
+ }
+ return $output;
+}
+
+sub print_config_box {
+ my ($r,$dom,$action,$item,$settings) = @_;
+ $r->print('
+ <table class="LC_nested_outer">
+ <tr>
+ <th>'.&mt($item->{text}).' '.
+ &Apache::loncommon::help_open_topic($item->{'help'}).'</th>
+ </tr>');
+ if ($action eq 'autoupdate') {
+ $r->print('
+ <tr>
+ <td>
+ <table class="LC_nested">
+ <tr class="LC_info_row">
+ <td class="LC_left_item">'.$item->{'header'}->[0]->{'col1'}.'</td>
+ <td class="LC_right_item">'.$item->{'header'}->[0]->{'col2'}.'</td>
+ </tr>'.
+ &print_autoupdate('top',$dom,$settings).'
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table class="LC_nested">
+ <tr class="LC_info_row">
+ <td class="LC_left_item">'.$item->{'header'}->[1]->{'col1'}.'</td>
+ <td class="LC_right_item">'.$item->{'header'}->[1]->{'col2'}.'</td>
+ </tr>'.
+ &print_autoupdate('bottom',$dom,$settings));
+ } else {
+ $r->print('
+ <tr>
+ <td>
+ <table class="LC_nested">
+ <tr class="LC_info_row">
+ <td class="LC_left_item">'.$item->{'header'}->[0]->{'col1'}.'</td>
+ <td class="LC_right_item">'.$item->{'header'}->[0]->{'col2'}.'</td>
+ </tr>');
+ if ($action eq 'login') {
+ $r->print(&print_login($settings));
+ } elsif ($action eq 'quotas') {
+ $r->print(&print_quotas($dom,$settings));
+ } elsif ($action eq 'autoenroll') {
+ $r->print(&print_autoenroll($dom,$settings));
+ }
+ }
+ $r->print('
+ </table>
+ </td>
+ </tr>
+</table><br />');
return;
}
sub print_header {
- my ($r,$javascript_validations) = @_;
- my $phase = "start";
- if ( exists($env{'form.phase'}) ) {
- $phase = $env{'form.phase'};
- }
+ my ($r,$phase) = @_;
my $js = qq|
<script type="text/javascript">
function changePage(formname,newphase) {
formname.phase.value = newphase;
- if (newphase == 'processparms') {
- return;
- }
formname.submit();
}
</script>
|;
$r->print(&Apache::loncommon::start_page('View/Modify Domain Settings',
- $js));
- my $bread_text = "Domain Settings";
- $r->print(&Apache::lonhtmlcommon::breadcrumbs($bread_text));
+ $js));
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Domain Settings'));
+ $r->print('<form method="post" name="'.$phase.'" action="/adm/domainprefs">');
return;
}
sub print_footer {
- my ($r) = @_;
+ my ($r,$phase,$newphase,$button_text) = @_;
+ $button_text = &mt($button_text);
+ $r->print('<input type="hidden" name="phase" value="" />');
+ my $dest='"javascript:changePage(document.'.$phase.','."'$newphase'".')"';
+ if ($phase eq 'process') {
+ $r->print('<a href='.$dest.'>'.$button_text.'</a>');
+ } else {
+ $r->print('<input type="button" name="store" value="'.
+ $button_text.'" onclick='.$dest.' />');
+ }
+ $r->print('</form>');
$r->print('<br />'.&Apache::loncommon::end_page());
return;
}
-sub print_login {
- my ($r,$phase,$dom) = @_;
- my %domconfig = &Apache::lonnet::get_dom('configuration',
- ['login'],$dom);
+sub print_login {
+ my ($settings) = @_;
my $catalogon = ' checked="checked" ';
my $catalogoff;
my $adminmailon = ' ';
my $adminmailoff = ' checked="checked" ';
- if (ref($domconfig{'login'}) eq 'HASH') {
- if ($domconfig{'login'}{'coursecatalog'} eq '0') {
+ if (ref($settings) eq 'HASH') {
+ if ($settings->{'coursecatalog'} eq '0') {
$catalogoff = $catalogon;
$catalogon = ' ';
}
- if ($domconfig{'login'}{'adminmail'} eq '1') {
+ if ($settings->{'adminmail'} eq '1') {
$adminmailon = $adminmailoff;
$adminmailoff = ' ';
}
}
- &print_header($r);
- my $datatable=&Apache::loncommon::start_data_table().
- &Apache::loncommon::start_data_table_header_row().
- '<th>'.&mt('Item').'</th><th>'.&mt('Selection').'</th>'.
- &Apache::loncommon::end_data_table_header_row().
- &Apache::loncommon::start_data_table_row().
- '<td>'.&mt('Display Course Catalog link?').'</td>'.
- '<td><nobr><input type="radio" name="coursecatalog"'.
- $catalogon.' value="1" />'.&mt('Yes').' '.
- '<input type="radio" name="coursecatalog"'.
- $catalogoff.'value="0" />'.&mt('No').'</nobr></td>'.
- &Apache::loncommon::end_data_table_row().
- &Apache::loncommon::start_data_table_row().
- '<td>'.&mt("Display Administrator's E-mail Address?").'</td>'.
- '<td><nobr><input type="radio" name="adminmail"'. $adminmailon.' value="1" />'.&mt('Yes').' '.
- '<input type="radio" name="adminmail"'.
- $adminmailoff.'value="0" />'.&mt('No').'</nobr></td>'.
- &Apache::loncommon::end_data_table_row().
- &Apache::loncommon::start_data_table();
- &print_form($r,$datatable,$phase,'configlogin','Change');
+ my %choices =
+ &Apache::lonlocal::texthash(
+ coursecatalog => 'Display Course Catalog link?',
+ adminmail => "Display Administrator's E-mail Address?"
+ );
+ my $datatable =
+ '<tr class="LC_odd_row"><td>'.$choices{'coursecatalog'}.
+ '</td><td class="LC_right_item">'.
+ '<nobr><input type="radio" name="coursecatalog"'.
+ $catalogon.' value="1" />'.&mt('Yes').' '.
+ '<input type="radio" name="coursecatalog"'.
+ $catalogoff.'value="0" />'.&mt('No').'</nobr></td>'.
+ '</tr><tr>'.
+ '<td>'.$choices{'adminmail'}.'</td>'.
+ '<td class="LC_right_item"><nobr>'.
+ '<input type="radio" name="adminmail"'.
+ $adminmailon.' value="1" />'.&mt('Yes').' '.
+ '<input type="radio" name="adminmail"'.
+ $adminmailoff.'value="0" />'.&mt('No').'</nobr></td>'.
+ '</tr>';
+ return $datatable;
+}
+
+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 $typecount = 0;
+ my $css_class;
+ if (@types > 0) {
+ foreach my $type (@types) {
+ if (defined($usertypes->{$type})) {
+ $typecount ++;
+ $css_class = $typecount%2?' class="LC_odd_row"':'';
+ $datatable .= '<tr'.$css_class.'>'.
+ '<td>'.$usertypes->{$type}.'</td>'.
+ '<td class="LC_right_item"><nobr>'.
+ '<input type="text" name="quota_'.$type.
+ '" value="'.$settings->{$type}.
+ '" size="5" /> Mb</nobr></td></tr>';
+ }
+ }
+ $othertitle = "Other users";
+ }
+ my $defaultquota = '20';
+ if (ref($settings) eq 'HASH') {
+ if (defined($settings->{'default'})) {
+ $defaultquota = $settings->{'default'};
+ }
+ }
+ $typecount ++;
+ $css_class = $typecount%2?' class="LC_odd_row"':'';
+ $datatable .= '<tr'.$css_class.'>'.
+ '<td>'.&mt($othertitle).'</td>'.
+ '<td class="LC_right_item"><nobr>'.
+ '<input type="text" name="default" value="'.
+ $defaultquota.'" size="5" /> Mb</nobr></td></tr>';
+ return $datatable;
+}
+
+sub print_autoenroll {
+ my ($dom,$settings) = @_;
+ my $defdom = $dom;
+ my $autorun = &Apache::lonnet::auto_run(undef,$dom),
+ my ($runon,$runoff);
+ if (ref($settings) eq 'HASH') {
+ if (exists($settings->{'run'})) {
+ if ($settings->{'run'} eq '0') {
+ $runoff = ' checked="checked" ';
+ $runon = ' ';
+ } else {
+ $runon = ' checked="checked" ';
+ $runoff = ' ';
+ }
+ } else {
+ if ($autorun) {
+ $runon = ' checked="checked" ';
+ $runoff = ' ';
+ } else {
+ $runoff = ' checked="checked" ';
+ $runon = ' ';
+ }
+ }
+ if (exists($settings->{'sender_domain'})) {
+ $defdom = $settings->{'sender_domain'};
+ }
+ }
+ my $domform = &Apache::loncommon::select_dom_form($defdom,'sender_domain',1);
+ my $datatable='<tr class="LC_odd_row">'.
+ '<td>'.&mt('Auto-enrollment active?').'</td>'.
+ '<td class="LC_right_item"><nobr>'.
+ '<input type="radio" name="autoenroll_run"'.
+ $runon.' value="1" />'.&mt('Yes').' '.
+ '<input type="radio" name="autoenroll_run"'.
+ $runoff.'value="0" />'.&mt('No').'</nobr></td>'.
+ '</tr><tr>'.
+ '<td>'.&mt('Notification messages - sender').
+ '</td><td class="LC_right_item"><nobr>'.
+ &mt('username').': '.
+ '<input type="text" name="sender_uname" value="'.
+ $settings->{'sender_uname'}.
+ '" size="10" /> '.&mt('domain').
+ ': '.$domform.'</nobr></td></tr>';
+ return $datatable;
+}
+
+sub print_autoupdate {
+ my ($position,$dom,$settings) = @_;
+ my $datatable;
+ if ($position eq 'top') {
+ my $updateon = ' ';
+ my $updateoff = ' checked="checked" ';
+ my $classlistson = ' ';
+ my $classlistsoff = ' checked="checked" ';
+ if (ref($settings) eq 'HASH') {
+ if ($settings->{'run'} eq '1') {
+ $updateon = $updateoff;
+ $updateoff = ' ';
+ }
+ if ($settings->{'classlists'} eq '1') {
+ $classlistson = $classlistsoff;
+ $classlistsoff = ' ';
+ }
+ }
+ my %title = (
+ run => 'Auto-update active?',
+ classlists => 'Update information in classlists?',
+ );
+ $datatable = '<tr class="LC_odd_row">'.
+ '<td>'.&mt($title{'run'}).'</td>'.
+ '<td class="LC_right_item"><nobr>'.
+ '<input type="radio" name="autoupdate_run"'.
+ $updateon.' value="1" />'.&mt('Yes').' '.
+ '<input type="radio" name="autoupdate_run"'.
+ $updateoff.'value="0" />'.&mt('No').'</nobr></td>'.
+ '</tr><tr>'.
+ '<td>'.&mt($title{'classlists'}).'</td>'.
+ '<td class="LC_right_item"><nobr>'.
+ '<input type="radio" name="classlists"'.
+ $classlistson.' value="1" />'.&mt('Yes').' '.
+ '<input type="radio" name="classlists"'.
+ $classlistsoff.'value="0" />'.&mt('No').'</nobr></td>'.
+ '</tr>';
+ } 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 %fieldtitles = &Apache::lonlocal::texthash (
+ id => 'Student/Employee ID',
+ email => '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);
+ }
+ $datatable .=
+ &usertype_update_row($settings,{'default' => $othertitle},
+ \%fieldtitles,\@fields,['default'],
+ \$numrows);
+ }
+ return $datatable;
+}
+
+sub usertype_update_row {
+ my ($settings,$usertypes,$fieldtitles,$fields,$types,$rownums) = @_;
+ my $datatable;
+ my $numinrow = 4;
+ foreach my $type (@{$types}) {
+ if (defined($usertypes->{$type})) {
+ $$rownums ++;
+ my $css_class = $$rownums%2?' class="LC_odd_row"':'';
+ $datatable .= '<tr'.$css_class.'><td>'.$usertypes->{$type}.
+ '</td><td class="LC_left_item"><table>';
+ for (my $i=0; $i<@{$fields}; $i++) {
+ my $rem = $i%($numinrow);
+ if ($rem == 0) {
+ if ($i > 0) {
+ $datatable .= '</tr>';
+ }
+ $datatable .= '<tr>';
+ }
+ my $check = ' ';
+ if (ref($settings->{'fields'}) eq 'HASH') {
+ if (ref($settings->{'fields'}{$type}) eq 'ARRAY') {
+ if (grep(/^\Q$fields->[$i]\E$/,@{$settings->{'fields'}{$type}})) {
+ $check = ' checked="checked" ';
+ }
+ }
+ }
+
+ if ($i == @{$fields}-1) {
+ my $colsleft = $numinrow - $rem;
+ if ($colsleft > 1) {
+ $datatable .= '<td colspan="'.$colsleft.'">';
+ } else {
+ $datatable .= '<td>';
+ }
+ } else {
+ $datatable .= '<td>';
+ }
+ $datatable .= '<nobr><input type="checkbox" name="updateable_'.
+ $type.'_'.$fields->[$i].'" '.
+ '" value="1"'.$check.'/>'.
+ $fieldtitles->{$fields->[$i]}.'</nobr></td>';
+ }
+ $datatable .= '</tr></table></td></tr>';
+ }
+ }
+ return $datatable;
}
sub modify_login {
- my ($r,$phase,$dom,$domdesc) = @_;
+ my ($dom,%domconfig) = @_;
my ($resulttext,%changes);
- my %domconfig = &Apache::lonnet::get_dom('configuration',
- ['login'],$dom);
my %title = ( coursecatalog => 'Display course catalog',
adminmail => 'Display administrator E-mail address');
- my @offon = ('off','on');
+ my @offon = ('off','on');
my %loginhash = (
- login => { coursecatalog => $env{'form.coursecatalog'},
- adminmail => $env{'form.adminmail'},
+ login => { coursecatalog => $env{'form.coursecatalog'}, adminmail => $env{'form.adminmail'},
}
);
my $putresult = &Apache::lonnet::put_dom('configuration',\%loginhash,
$dom);
if ($putresult eq 'ok') {
- if (($domconfig{'login'}{'coursecatalog'} eq '0') &&
+ if (($domconfig{'login'}{'coursecatalog'} eq '0') &&
($env{'form.coursecatalog'} eq '1')) {
$changes{'coursecatalog'} = 1;
- } elsif (($domconfig{'login'}{'coursecatalog'} eq '' ||
- $domconfig{'login'}{'coursecatalog'} eq '1') &&
+ } elsif (($domconfig{'login'}{'coursecatalog'} eq '' ||
+ $domconfig{'login'}{'coursecatalog'} eq '1') &&
($env{'form.coursecatalog'} eq '0')) {
$changes{'coursecatalog'} = 1;
}
- if (($domconfig{'login'}{'adminmail'} eq '1') &&
+ if (($domconfig{'login'}{'adminmail'} eq '1') &&
($env{'form.adminmail'} eq '0')) {
$changes{'adminmail'} = 1;
} elsif (($domconfig{'login'}{'adminmail'} eq '' ||
@@ -283,67 +536,14 @@
} else {
$resulttext = &mt('An error occurred: [_1]',$putresult);
}
- &print_header($r);
- &print_form($r,$resulttext,$phase,'start','Back to actions menu');
-}
-
-sub print_quotas {
- my ($r,$phase,$dom) = @_;
- my %currquota;
- my %domconfig = &Apache::lonnet::get_dom('configuration',
- ['quotas'],$dom);
- if (ref($domconfig{'quotas'}) eq 'HASH') {
- foreach my $key (keys(%{$domconfig{'quotas'}})) {
- $currquota{$key} = $domconfig{'quotas'}{$key};
- }
- }
- my $datatable=&Apache::loncommon::start_data_table().
- &Apache::loncommon::start_data_table_header_row().
- '<th>'.&mt('User type').'</th><th>'.&mt('Default quota').'</th>'.
- &Apache::loncommon::end_data_table_header_row();
- 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 (@types > 0) {
- foreach my $type (@types) {
- if (defined($usertypes->{$type})) {
- $datatable .= &Apache::loncommon::start_data_table_row().
- '<td>'.$usertypes->{$type}.'</td><td><nobr>'.
- '<input type="text" name="quota_'.$type.
- '" value="'.$currquota{$type}.
- '" size="5" /> Mb</nobr></td>';
- }
- }
- $othertitle = "Other users";
- }
- my $defaultquota = '20';
- if (defined($currquota{'default'})) {
- $defaultquota = $currquota{'default'};
- }
- $datatable .= &Apache::loncommon::start_data_table_row().
- '<td>'.&mt($othertitle).'</td><td><nobr>'.
- '<input type="text" name="default" value="'.
- $defaultquota.'" size="5" /> Mb</nobr></td>'.
- &Apache::loncommon::end_data_table_row().
- &Apache::loncommon::end_data_table();
- &print_header($r);
- &print_form($r,$datatable,$phase,'configquotas','Change');
+ return $resulttext;
}
sub modify_quotas {
- my ($r,$phase,$dom,$domdesc) = @_;
+ my ($dom,%domconfig) = @_;
my ($resulttext,%changes);
- my %domconfig = &Apache::lonnet::get_dom('configuration',
- ['quotas'],$dom);
- my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom);
+ my ($usertypes,$order) =
+ &Apache::lonnet::retrieve_inst_usertypes($dom);
my %formhash;
foreach my $key (keys(%env)) {
if ($key =~ /^form\.quota_(.+)$/) {
@@ -363,13 +563,13 @@
}
foreach my $key (keys(%formhash)) {
if ($formhash{$key} ne '') {
- if (!exists($domconfig{$key})) {
+ if (!exists($domconfig{'quotas'}{$key})) {
$changes{$key} = 1;
}
}
}
my %quotahash = (
- quotas => {%formhash},
+ quotas => {%formhash},
);
my $putresult = &Apache::lonnet::put_dom('configuration',\%quotahash,
$dom);
@@ -386,70 +586,13 @@
} else {
$resulttext = &mt('An error occurred: [_1]',$putresult);
}
- &print_header($r);
- &print_form($r,$resulttext,$phase,'start','Back to actions menu');
-}
-
-sub print_autoenroll {
- my ($r,$phase,$dom) = @_;
- my %currautoenroll;
- my %domconfig = &Apache::lonnet::get_dom('configuration',
- ['autoenroll'],$dom);
- if (ref($domconfig{'autoenroll'}) eq 'HASH') {
- foreach my $key (keys(%{$domconfig{'autoenroll'}})) {
- $currautoenroll{$key} = $domconfig{'autoenroll'}{$key};
- }
- }
- my $autorun = &Apache::lonnet::auto_run(undef,$dom),
- my ($runon,$runoff);
- if (exists($currautoenroll{'run'})) {
- if ($currautoenroll{'run'} eq '0') {
- $runoff = ' checked="checked" ';
- $runon = ' ';
- } else {
- $runon = ' checked="checked" ';
- $runoff = ' ';
- }
- } else {
- if ($autorun) {
- $runon = ' checked="checked" ';
- $runoff = ' ';
- } else {
- $runoff = ' checked="checked" ';
- $runon = ' ';
- }
- }
- my $defdom = $dom;
- if (exists($currautoenroll{'sender_domain'})) {
- $defdom = $currautoenroll{'sender_domain'};
- }
- my $domform = &Apache::loncommon::select_dom_form($defdom,'sender_domain',1);
- my $datatable=&Apache::loncommon::start_data_table().
- &Apache::loncommon::start_data_table_header_row().
- '<th>'.&mt('Configuration setting').'</th><th>'.&mt('Value(s)').'</th>'.
- &Apache::loncommon::end_data_table_header_row().
- &Apache::loncommon::start_data_table_row().
- '<td>'.&mt('Auto-enrollment active?').'</td>'. '<td><nobr><input type="radio" name="autoenroll_run"'.
- $runon.' value="1" />'.&mt('Yes').' '.
- '<input type="radio" name="autoenroll_run"'.
- $runoff.'value="0" />'.&mt('No').'</nobr></td>'.
- &Apache::loncommon::end_data_table_row().
- &Apache::loncommon::start_data_table_row().
- '<td>'.&mt('Notification messages - sender').'</td><td><nobr>'.
- &mt('username').': <input type="text" name="sender_uname" value="'.
- $currautoenroll{'sender_uname'}.'" size="10" /> '.&mt('domain').': '.$domform.'</nobr></td>'.
- &Apache::loncommon::end_data_table_row().
- &Apache::loncommon::end_data_table();
- &print_header($r);
- &print_form($r,$datatable,$phase,'configenroll','Change');
+ return $resulttext;
}
-sub modify_autoenroll {
- my ($r,$phase,$dom,$domdesc) = @_;
+sub modify_autoenroll {
+ my ($dom,%domconfig) = @_;
my ($resulttext,%changes);
my %currautoenroll;
- my %domconfig = &Apache::lonnet::get_dom('configuration',
- ['autoenroll'],$dom);
if (ref($domconfig{'autoenroll'}) eq 'HASH') {
foreach my $key (keys(%{$domconfig{'autoenroll'}})) {
$currautoenroll{$key} = $domconfig{'autoenroll'}{$key};
@@ -466,8 +609,7 @@
}
);
- my $putresult = &Apache::lonnet::put_dom('configuration',\%autoenrollhash,
- $dom);
+ my $putresult = &Apache::lonnet::put_dom('configuration',\%autoenrollhash, $dom);
if ($putresult eq 'ok') {
if (exists($currautoenroll{'run'})) {
if ($currautoenroll{'run'} ne $env{'form.autoenroll_run'}) {
@@ -494,7 +636,7 @@
}
if (keys(%changes) > 0) {
$resulttext = &mt('Changes made:').'<ul>';
- if ($changes{'run'}) {
+ if ($changes{'run'}) {
$resulttext .= '<li>'.&mt("$title{'run'} set to $offon[$env{'form.autoenroll_run'}]").'</li>';
}
if ($changes{'sender'}) {
@@ -507,167 +649,12 @@
} else {
$resulttext = &mt('An error occurred: [_1]',$putresult);
}
- &print_header($r);
- &print_form($r,$resulttext,$phase,'start','Back to actions menu');
-}
-
-sub print_autoupdate {
- my ($r,$phase,$dom) = @_;
- my (%currautoupdate,$datatable);
- my %domconfig = &Apache::lonnet::get_dom('configuration',
- ['autoupdate'],$dom);
- if (ref($domconfig{'autoupdate'}) eq 'HASH') {
- foreach my $key (keys(%{$domconfig{'autoupdate'}})) {
- $currautoupdate{$key} = $domconfig{'autoupdate'}{$key};
- }
- }
- my $updateon = ' ';
- my $updateoff = ' checked="checked" ';
- if ($currautoupdate{'run'} eq '1') {
- $updateon = $updateoff;
- $updateoff = ' ';
- }
- my $classlistson = ' ';
- my $classlistsoff = ' checked="checked" ';
- if ($currautoupdate{'classlists'} eq '1') {
- $classlistson = $classlistsoff;
- $classlistsoff = ' ';
- }
- my %title = (
- run => 'Auto-update enabled?',
- classlists => 'Update information in classlists?',
- );
- $datatable = &Apache::loncommon::start_data_table().
- &Apache::loncommon::start_data_table_header_row().
- '<th>'.&mt('Setting').'</th><th>'.&mt('Value').'</th>'.
- &Apache::loncommon::end_data_table_header_row().
- &Apache::loncommon::start_data_table_row().
- '<td>'.&mt($title{'run'}).'</td>'.
- '<td><nobr><input type="radio" name="autoupdate_run"'.
- $updateon.' value="1" />'.&mt('Yes').' '.
- '<input type="radio" name="autoupdate_run"'.
- $updateoff.'value="0" />'.&mt('No').'</nobr></td>'.
- &Apache::loncommon::end_data_table_row().
- &Apache::loncommon::start_data_table_row().
- '<td>'.&mt($title{'classlists'}).'</td>'.
- '<td><nobr><input type="radio" name="classlists"'.
- $classlistson.' value="1" />'.&mt('Yes').' '.
- '<input type="radio" name="classlists"'.
- $classlistsoff.'value="0" />'.&mt('No').'</nobr></td>'.
- &Apache::loncommon::end_data_table_row().
- &Apache::loncommon::end_data_table().'<br /><br />';
- 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 $numinrow = 4;
- my %fieldtitles = &Apache::lonlocal::texthash (
- id => 'Student/Employee ID',
- email => 'E-mail address',
- lastname => 'Last Name',
- firstname => 'First Name',
- middlename => 'Middle Name',
- gen => 'Generation',
- );
- $datatable .= &Apache::loncommon::start_data_table().
- &Apache::loncommon::start_data_table_header_row().
- '<th>'.&mt('User Population').'</th><th>'.&mt('Updateable user data').'</th>'.
- &Apache::loncommon::end_data_table_header_row();
- if (@types > 0) {
- foreach my $type (@types) {
- if (defined($usertypes->{$type})) {
- $datatable .= &Apache::loncommon::start_data_table_row().
- '<td>'.$usertypes->{$type}.'</td><td><table>';
- for (my $i=0; $i<@fields; $i++) {
- my $rem = $i%($numinrow);
- if ($rem == 0) {
- if ($i > 0) {
- $datatable .= '</tr>';
- }
- $datatable .= '<tr>';
- }
- my $check = ' ';
- if (ref($currautoupdate{'fields'}) eq 'HASH') {
- if (ref($currautoupdate{'fields'}{$type}) eq 'ARRAY') {
- if (grep(/^\Q$fields[$i]\E$/,@{$currautoupdate{'fields'}{$type}})) {
- $check = ' checked="checked" ';
- }
- }
- }
- if ($i == @fields-1) {
- my $colsleft = $numinrow - $rem;
- if ($colsleft > 1) {
- $datatable .= '<td colspan="'.$colsleft.'">';
- } else {
- $datatable .= '<td>';
- }
- } else {
- $datatable .= '<td>';
- }
- $datatable .= '<nobr><input type="checkbox" name="updateable_'.
- $type.'_'.$fields[$i].'" '.
- '" value="1"'.$check.'/>'.
- $fieldtitles{$fields[$i]}.'</nobr></td>';
- }
- $datatable .= '</tr></table></td>'.&Apache::loncommon::end_data_table_row();
- }
- }
- }
- $datatable .= &Apache::loncommon::start_data_table_row().
- '<td>'.&mt($othertitle).'</td><td><table>';
- for (my $i=0; $i<@fields; $i++) {
- my $rem = $i%($numinrow);
- if ($rem == 0) {
- if ($i > 0) {
- $datatable .= '</tr>';
- }
- $datatable .= '<tr>';
- }
- my $check = ' ';
- if (ref($currautoupdate{'fields'}) eq 'HASH') {
- if (ref($currautoupdate{'fields'}{'default'}) eq 'ARRAY') {
- if (grep(/^\Q$fields[$i]\E$/,@{$currautoupdate{'fields'}{'default'}})) {
- $check = ' checked="checked" ';
- }
- }
- }
- if ($i == @fields-1) {
- my $colsleft = $numinrow - $rem;
- if ($colsleft > 1) {
- $datatable .= '<td colspan="'.$colsleft.'">';
- } else {
- $datatable .= '<td>';
- }
- } else {
- $datatable .= '<td>';
- }
- $datatable .= '<nobr><input type="checkbox" name="updateable_default_'.
- $fields[$i].'" value="1"'.$check.'/>'.
- $fieldtitles{$fields[$i]}.'</nobr></td>';
- }
- $datatable .= '</tr></table></td>'.
- &Apache::loncommon::end_data_table_row().
- &Apache::loncommon::end_data_table();
- &print_header($r);
- &print_form($r,$datatable,$phase,'configupdate','Change');
+ return $resulttext;
}
sub modify_autoupdate {
- my ($r,$phase,$dom,$domdesc) = @_;
+ my ($dom,%domconfig) = @_;
my ($resulttext,%currautoupdate,%fields,%changes);
- my %domconfig = &Apache::lonnet::get_dom('configuration',
- ['autoupdate'],$dom);
if (ref($domconfig{'autoupdate'}) eq 'HASH') {
foreach my $key (keys(%{$domconfig{'autoupdate'}})) {
$currautoupdate{$key} = $domconfig{'autoupdate'}{$key};
@@ -752,7 +739,12 @@
foreach my $type (@{$fields{$item}}) {
push(@newvalues,$fieldtitles{$type});
}
- my $newvaluestr = join(', ',@newvalues);
+ my $newvaluestr;
+ if (@newvalues > 0) {
+ $newvaluestr = join(', ',@newvalues);
+ } else {
+ $newvaluestr = &mt('none');
+ }
if ($item eq 'default') {
$resulttext .= '<li>'.&mt("Updates for $othertitle set to: [_1]",$newvaluestr).'</li>';
} else {
@@ -765,34 +757,19 @@
$newvalue = $offon[$env{'form.autoupdate_run'}];
} else {
$newvalue = $offon[$env{'form.'.$key}];
- }
+ }
$resulttext .= '<li>'.&mt("[_1] set to $newvalue",$title{$key}).'</li>';
}
}
$resulttext .= '</ul>';
} else {
- $resulttext = &mt('No changes made to default quotas');
+ $resulttext = &mt('No changes made to autoupdates');
}
} else {
$resulttext = &mt('An error occurred: [_1]',$putresult);
}
- &print_header($r);
- &print_form($r,$resulttext,$phase,'start','Back to actions menu');
-}
-
-sub print_form {
- my ($r,$datatable,$phase,$newphase,$button_text) = @_;
- my $button_text = &mt($button_text);
- $r->print(<<ENDDOCUMENT);
-<form action="/adm/domainprefs" method="post" name="$phase">
-<br />
-$datatable
-<br />
-<input type="hidden" name="phase" value="" />
-<input type="button" name="store" value="$button_text" onclick="javascript:changePage(document.$phase,'$newphase')" />
-</form>
-ENDDOCUMENT
- return;
+ return $resulttext;
}
1;
+
--raeburn1172772198--