version 1.2, 2007/03/01 17:54:13
|
version 1.3, 2007/03/01 18:03:18
|
Line 59 sub handler {
|
Line 59 sub handler {
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['phase']); |
['phase']); |
my $phase = $env{'form.phase'}; |
my $phase = "display"; |
if ($phase eq '' || $phase eq 'start') { |
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 |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"javascript:changePage(document.$phase,'start')", |
({href=>"javascript:changePage(document.$phase,'$phase')", |
text=>"Choose an action"}); |
text=>"Updated"}); |
&print_main_menu($r,$dom,$domdesc); |
&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 { |
} else { |
&Apache::lonhtmlcommon::add_breadcrumb |
if ($phase eq '') { |
({href=>"javascript:changePage(document.$phase,'start')", |
$phase = 'display'; |
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'}); |
|
} |
} |
$menu_html.='</p>'.$/; |
my %helphash; |
} |
my $numprefs = @prefs; |
&print_header($r); |
&print_header($r,$phase); |
$r->print($menu_html); |
$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; |
return; |
} |
} |
|
|
sub print_header { |
sub print_header { |
my ($r,$javascript_validations) = @_; |
my ($r,$phase) = @_; |
my $phase = "start"; |
|
if ( exists($env{'form.phase'}) ) { |
|
$phase = $env{'form.phase'}; |
|
} |
|
my $js = qq| |
my $js = qq| |
<script type="text/javascript"> |
<script type="text/javascript"> |
function changePage(formname,newphase) { |
function changePage(formname,newphase) { |
formname.phase.value = newphase; |
formname.phase.value = newphase; |
if (newphase == 'processparms') { |
|
return; |
|
} |
|
formname.submit(); |
formname.submit(); |
} |
} |
</script> |
</script> |
|; |
|; |
$r->print(&Apache::loncommon::start_page('View/Modify Domain Settings', |
$r->print(&Apache::loncommon::start_page('View/Modify Domain Settings', |
$js)); |
$js)); |
my $bread_text = "Domain Settings"; |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Domain Settings')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs($bread_text)); |
$r->print('<form method="post" name="'.$phase.'" action="/adm/domainprefs">'); |
return; |
return; |
} |
} |
|
|
sub print_footer { |
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()); |
$r->print('<br />'.&Apache::loncommon::end_page()); |
return; |
return; |
} |
} |
|
|
sub print_login { |
sub print_login { |
my ($r,$phase,$dom) = @_; |
my ($settings) = @_; |
my %domconfig = &Apache::lonnet::get_dom('configuration', |
|
['login'],$dom); |
|
my $catalogon = ' checked="checked" '; |
my $catalogon = ' checked="checked" '; |
my $catalogoff; |
my $catalogoff; |
my $adminmailon = ' '; |
my $adminmailon = ' '; |
my $adminmailoff = ' checked="checked" '; |
my $adminmailoff = ' checked="checked" '; |
if (ref($domconfig{'login'}) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if ($domconfig{'login'}{'coursecatalog'} eq '0') { |
if ($settings->{'coursecatalog'} eq '0') { |
$catalogoff = $catalogon; |
$catalogoff = $catalogon; |
$catalogon = ' '; |
$catalogon = ' '; |
} |
} |
if ($domconfig{'login'}{'adminmail'} eq '1') { |
if ($settings->{'adminmail'} eq '1') { |
$adminmailon = $adminmailoff; |
$adminmailon = $adminmailoff; |
$adminmailoff = ' '; |
$adminmailoff = ' '; |
} |
} |
} |
} |
&print_header($r); |
my %choices = |
my $datatable=&Apache::loncommon::start_data_table(). |
&Apache::lonlocal::texthash( |
&Apache::loncommon::start_data_table_header_row(). |
coursecatalog => 'Display Course Catalog link?', |
'<th>'.&mt('Item').'</th><th>'.&mt('Selection').'</th>'. |
adminmail => "Display Administrator's E-mail Address?" |
&Apache::loncommon::end_data_table_header_row(). |
); |
&Apache::loncommon::start_data_table_row(). |
my $datatable = |
'<td>'.&mt('Display Course Catalog link?').'</td>'. |
'<tr class="LC_odd_row"><td>'.$choices{'coursecatalog'}. |
'<td><nobr><input type="radio" name="coursecatalog"'. |
'</td><td class="LC_right_item">'. |
$catalogon.' value="1" />'.&mt('Yes').' '. |
'<nobr><input type="radio" name="coursecatalog"'. |
'<input type="radio" name="coursecatalog"'. |
$catalogon.' value="1" />'.&mt('Yes').' '. |
$catalogoff.'value="0" />'.&mt('No').'</nobr></td>'. |
'<input type="radio" name="coursecatalog"'. |
&Apache::loncommon::end_data_table_row(). |
$catalogoff.'value="0" />'.&mt('No').'</nobr></td>'. |
&Apache::loncommon::start_data_table_row(). |
'</tr><tr>'. |
'<td>'.&mt("Display Administrator's E-mail Address?").'</td>'. |
'<td>'.$choices{'adminmail'}.'</td>'. |
'<td><nobr><input type="radio" name="adminmail"'. $adminmailon.' value="1" />'.&mt('Yes').' '. |
'<td class="LC_right_item"><nobr>'. |
'<input type="radio" name="adminmail"'. |
'<input type="radio" name="adminmail"'. |
$adminmailoff.'value="0" />'.&mt('No').'</nobr></td>'. |
$adminmailon.' value="1" />'.&mt('Yes').' '. |
&Apache::loncommon::end_data_table_row(). |
'<input type="radio" name="adminmail"'. |
&Apache::loncommon::start_data_table(); |
$adminmailoff.'value="0" />'.&mt('No').'</nobr></td>'. |
&print_form($r,$datatable,$phase,'configlogin','Change'); |
'</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 { |
sub modify_login { |
my ($r,$phase,$dom,$domdesc) = @_; |
my ($dom,%domconfig) = @_; |
my ($resulttext,%changes); |
my ($resulttext,%changes); |
my %domconfig = &Apache::lonnet::get_dom('configuration', |
|
['login'],$dom); |
|
my %title = ( coursecatalog => 'Display course catalog', |
my %title = ( coursecatalog => 'Display course catalog', |
adminmail => 'Display administrator E-mail address'); |
adminmail => 'Display administrator E-mail address'); |
my @offon = ('off','on'); |
my @offon = ('off','on'); |
my %loginhash = ( |
my %loginhash = ( |
login => { coursecatalog => $env{'form.coursecatalog'}, |
login => { coursecatalog => $env{'form.coursecatalog'}, adminmail => $env{'form.adminmail'}, |
adminmail => $env{'form.adminmail'}, |
|
} |
} |
); |
); |
my $putresult = &Apache::lonnet::put_dom('configuration',\%loginhash, |
my $putresult = &Apache::lonnet::put_dom('configuration',\%loginhash, |
$dom); |
$dom); |
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
if (($domconfig{'login'}{'coursecatalog'} eq '0') && |
if (($domconfig{'login'}{'coursecatalog'} eq '0') && |
($env{'form.coursecatalog'} eq '1')) { |
($env{'form.coursecatalog'} eq '1')) { |
$changes{'coursecatalog'} = 1; |
$changes{'coursecatalog'} = 1; |
} elsif (($domconfig{'login'}{'coursecatalog'} eq '' || |
} elsif (($domconfig{'login'}{'coursecatalog'} eq '' || |
$domconfig{'login'}{'coursecatalog'} eq '1') && |
$domconfig{'login'}{'coursecatalog'} eq '1') && |
($env{'form.coursecatalog'} eq '0')) { |
($env{'form.coursecatalog'} eq '0')) { |
$changes{'coursecatalog'} = 1; |
$changes{'coursecatalog'} = 1; |
} |
} |
if (($domconfig{'login'}{'adminmail'} eq '1') && |
if (($domconfig{'login'}{'adminmail'} eq '1') && |
($env{'form.adminmail'} eq '0')) { |
($env{'form.adminmail'} eq '0')) { |
$changes{'adminmail'} = 1; |
$changes{'adminmail'} = 1; |
} elsif (($domconfig{'login'}{'adminmail'} eq '' || |
} elsif (($domconfig{'login'}{'adminmail'} eq '' || |
Line 283 sub modify_login {
|
Line 536 sub modify_login {
|
} else { |
} else { |
$resulttext = &mt('An error occurred: [_1]',$putresult); |
$resulttext = &mt('An error occurred: [_1]',$putresult); |
} |
} |
&print_header($r); |
return $resulttext; |
&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'); |
|
} |
} |
|
|
sub modify_quotas { |
sub modify_quotas { |
my ($r,$phase,$dom,$domdesc) = @_; |
my ($dom,%domconfig) = @_; |
my ($resulttext,%changes); |
my ($resulttext,%changes); |
my %domconfig = &Apache::lonnet::get_dom('configuration', |
my ($usertypes,$order) = |
['quotas'],$dom); |
&Apache::lonnet::retrieve_inst_usertypes($dom); |
my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom); |
|
my %formhash; |
my %formhash; |
foreach my $key (keys(%env)) { |
foreach my $key (keys(%env)) { |
if ($key =~ /^form\.quota_(.+)$/) { |
if ($key =~ /^form\.quota_(.+)$/) { |
Line 363 sub modify_quotas {
|
Line 563 sub modify_quotas {
|
} |
} |
foreach my $key (keys(%formhash)) { |
foreach my $key (keys(%formhash)) { |
if ($formhash{$key} ne '') { |
if ($formhash{$key} ne '') { |
if (!exists($domconfig{$key})) { |
if (!exists($domconfig{'quotas'}{$key})) { |
$changes{$key} = 1; |
$changes{$key} = 1; |
} |
} |
} |
} |
} |
} |
my %quotahash = ( |
my %quotahash = ( |
quotas => {%formhash}, |
quotas => {%formhash}, |
); |
); |
my $putresult = &Apache::lonnet::put_dom('configuration',\%quotahash, |
my $putresult = &Apache::lonnet::put_dom('configuration',\%quotahash, |
$dom); |
$dom); |
Line 386 sub modify_quotas {
|
Line 586 sub modify_quotas {
|
} else { |
} else { |
$resulttext = &mt('An error occurred: [_1]',$putresult); |
$resulttext = &mt('An error occurred: [_1]',$putresult); |
} |
} |
&print_header($r); |
return $resulttext; |
&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'); |
|
} |
} |
|
|
sub modify_autoenroll { |
sub modify_autoenroll { |
my ($r,$phase,$dom,$domdesc) = @_; |
my ($dom,%domconfig) = @_; |
my ($resulttext,%changes); |
my ($resulttext,%changes); |
my %currautoenroll; |
my %currautoenroll; |
my %domconfig = &Apache::lonnet::get_dom('configuration', |
|
['autoenroll'],$dom); |
|
if (ref($domconfig{'autoenroll'}) eq 'HASH') { |
if (ref($domconfig{'autoenroll'}) eq 'HASH') { |
foreach my $key (keys(%{$domconfig{'autoenroll'}})) { |
foreach my $key (keys(%{$domconfig{'autoenroll'}})) { |
$currautoenroll{$key} = $domconfig{'autoenroll'}{$key}; |
$currautoenroll{$key} = $domconfig{'autoenroll'}{$key}; |
Line 466 sub modify_autoenroll {
|
Line 609 sub modify_autoenroll {
|
|
|
} |
} |
); |
); |
my $putresult = &Apache::lonnet::put_dom('configuration',\%autoenrollhash, |
my $putresult = &Apache::lonnet::put_dom('configuration',\%autoenrollhash, $dom); |
$dom); |
|
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
if (exists($currautoenroll{'run'})) { |
if (exists($currautoenroll{'run'})) { |
if ($currautoenroll{'run'} ne $env{'form.autoenroll_run'}) { |
if ($currautoenroll{'run'} ne $env{'form.autoenroll_run'}) { |
Line 494 sub modify_autoenroll {
|
Line 636 sub modify_autoenroll {
|
} |
} |
if (keys(%changes) > 0) { |
if (keys(%changes) > 0) { |
$resulttext = &mt('Changes made:').'<ul>'; |
$resulttext = &mt('Changes made:').'<ul>'; |
if ($changes{'run'}) { |
if ($changes{'run'}) { |
$resulttext .= '<li>'.&mt("$title{'run'} set to $offon[$env{'form.autoenroll_run'}]").'</li>'; |
$resulttext .= '<li>'.&mt("$title{'run'} set to $offon[$env{'form.autoenroll_run'}]").'</li>'; |
} |
} |
if ($changes{'sender'}) { |
if ($changes{'sender'}) { |
Line 507 sub modify_autoenroll {
|
Line 649 sub modify_autoenroll {
|
} else { |
} else { |
$resulttext = &mt('An error occurred: [_1]',$putresult); |
$resulttext = &mt('An error occurred: [_1]',$putresult); |
} |
} |
&print_header($r); |
return $resulttext; |
&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'); |
|
} |
} |
|
|
sub modify_autoupdate { |
sub modify_autoupdate { |
my ($r,$phase,$dom,$domdesc) = @_; |
my ($dom,%domconfig) = @_; |
my ($resulttext,%currautoupdate,%fields,%changes); |
my ($resulttext,%currautoupdate,%fields,%changes); |
my %domconfig = &Apache::lonnet::get_dom('configuration', |
|
['autoupdate'],$dom); |
|
if (ref($domconfig{'autoupdate'}) eq 'HASH') { |
if (ref($domconfig{'autoupdate'}) eq 'HASH') { |
foreach my $key (keys(%{$domconfig{'autoupdate'}})) { |
foreach my $key (keys(%{$domconfig{'autoupdate'}})) { |
$currautoupdate{$key} = $domconfig{'autoupdate'}{$key}; |
$currautoupdate{$key} = $domconfig{'autoupdate'}{$key}; |
Line 752 sub modify_autoupdate {
|
Line 739 sub modify_autoupdate {
|
foreach my $type (@{$fields{$item}}) { |
foreach my $type (@{$fields{$item}}) { |
push(@newvalues,$fieldtitles{$type}); |
push(@newvalues,$fieldtitles{$type}); |
} |
} |
my $newvaluestr = join(', ',@newvalues); |
my $newvaluestr; |
|
if (@newvalues > 0) { |
|
$newvaluestr = join(', ',@newvalues); |
|
} else { |
|
$newvaluestr = &mt('none'); |
|
} |
if ($item eq 'default') { |
if ($item eq 'default') { |
$resulttext .= '<li>'.&mt("Updates for $othertitle set to: [_1]",$newvaluestr).'</li>'; |
$resulttext .= '<li>'.&mt("Updates for $othertitle set to: [_1]",$newvaluestr).'</li>'; |
} else { |
} else { |
Line 765 sub modify_autoupdate {
|
Line 757 sub modify_autoupdate {
|
$newvalue = $offon[$env{'form.autoupdate_run'}]; |
$newvalue = $offon[$env{'form.autoupdate_run'}]; |
} else { |
} else { |
$newvalue = $offon[$env{'form.'.$key}]; |
$newvalue = $offon[$env{'form.'.$key}]; |
} |
} |
$resulttext .= '<li>'.&mt("[_1] set to $newvalue",$title{$key}).'</li>'; |
$resulttext .= '<li>'.&mt("[_1] set to $newvalue",$title{$key}).'</li>'; |
} |
} |
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
} else { |
} else { |
$resulttext = &mt('No changes made to default quotas'); |
$resulttext = &mt('No changes made to autoupdates'); |
} |
} |
} else { |
} else { |
$resulttext = &mt('An error occurred: [_1]',$putresult); |
$resulttext = &mt('An error occurred: [_1]',$putresult); |
} |
} |
&print_header($r); |
return $resulttext; |
&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; |
|
} |
} |
|
|
1; |
1; |
|
|