--- loncom/interface/domainprefs.pm 2007/09/19 17:36:47 1.29
+++ loncom/interface/domainprefs.pm 2007/09/26 12:42:32 1.30
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.29 2007/09/19 17:36:47 raeburn Exp $
+# $Id: domainprefs.pm,v 1.30 2007/09/26 12:42:32 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -61,7 +61,7 @@ sub handler {
&Apache::lonhtmlcommon::clear_breadcrumbs();
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['phase']);
- my $phase = "display";
+ my $phase = 'pickactions';
if ( exists($env{'form.phase'}) ) {
$phase = $env{'form.phase'};
}
@@ -69,91 +69,168 @@ sub handler {
&Apache::lonnet::get_dom('configuration',['login','rolecolors',
'quotas','autoenroll','autoupdate','directorysrch',
'usercreation','contacts'],$dom);
- my @prefs = (
- { text => 'Default color schemes',
- help => 'Default_Color_Schemes',
- action => 'rolecolors',
- header => [{col1 => 'Student Settings',
- col2 => '',},
- {col1 => 'Coordinator Settings',
- col2 => '',},
- {col1 => 'Author Settings',
- col2 => '',},
- {col1 => 'Administrator Settings',
- col2 => '',}],
- },
- { text => 'Log-in page options',
- help => 'Domain_Log-in_Page',
- action => 'login',
- header => [{col1 => 'Item',
- col2 => '',}],
- },
- { 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'}],
- },
- { text => 'Institutional directory searches',
- help => 'Domain_Directory_Search',
- action => 'directorysrch',
- header => [{col1 => 'Setting',
- col2 => 'Value',}],
- },
- { text => 'Contact Information',
- help => 'Domain_Contact_Information',
- action => 'contacts',
- header => [{col1 => 'Setting',
- col2 => 'Value',}],
- },
-
- { text => 'User creation',
- help => 'Domain_User_Creation',
- action => 'usercreation',
- header => [{col1 => 'Setting',
- col2 => 'Value',},
- {col1 => 'Context',
- col2 => 'Assignable Authentication Types'}],
- },
+ my @prefs_order = ('rolecolors','login','quotas','autoenroll',
+ 'autoupdate','directorysrch','contacts',
+ 'usercreation');
+ my %prefs = (
+ 'rolecolors' =>
+ { text => 'Default color schemes',
+ help => 'Default_Color_Schemes',
+ header => [{col1 => 'Student Settings',
+ col2 => '',},
+ {col1 => 'Coordinator Settings',
+ col2 => '',},
+ {col1 => 'Author Settings',
+ col2 => '',},
+ {col1 => 'Administrator Settings',
+ col2 => '',}],
+ },
+ 'login' =>
+ { text => 'Log-in page options',
+ help => 'Domain_Log-in_Page',
+ header => [{col1 => 'Item',
+ col2 => '',}],
+ },
+ 'quotas' =>
+ { text => 'Default quotas for user portfolios',
+ help => 'Default_User_Quota',
+ header => [{col1 => 'User type',
+ col2 => 'Default quota'}],
+ },
+ 'autoenroll' =>
+ { text => 'Auto-enrollment settings',
+ help => 'Domain_Auto_Enrollment',
+ header => [{col1 => 'Configuration setting',
+ col2 => 'Value(s)'}],
+ },
+ 'autoupdate' =>
+ { text => 'Auto-update settings',
+ help => 'Domain_Auto_Update',
+ header => [{col1 => 'Setting',
+ col2 => 'Value',},
+ {col1 => 'User Population',
+ col2 => 'Updataeable user data'}],
+ },
+ 'directorysrch' =>
+ { text => 'Institutional directory searches',
+ help => 'Domain_Directory_Search',
+ header => [{col1 => 'Setting',
+ col2 => 'Value',}],
+ },
+ 'contacts' =>
+ { text => 'Contact Information',
+ help => 'Domain_Contact_Information',
+ header => [{col1 => 'Setting',
+ col2 => 'Value',}],
+ },
+
+ 'usercreation' =>
+ { text => 'User creation',
+ help => 'Domain_User_Creation',
+ header => [{col1 => 'Setting',
+ col2 => 'Value',},
+ {col1 => 'Context',
+ col2 => 'Assignable Authentication Types'}],
+ },
);
my @roles = ('student','coordinator','author','admin');
+ my @actions = &Apache::loncommon::get_env_multiple('form.actions');
&Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'display')",
- text=>"Domain Configuration"});
+ ({href=>"javascript:changePage(document.$phase,'pickactions')",
+ text=>"Pick functionality"});
my $confname = $dom.'-domainconfig';
if ($phase eq 'process') {
&Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"javascript:changePage(document.$phase,'$phase')",
+ ({href=>"javascript:changePage(document.$phase,'display')",
+ text=>"Domain Configuration"},
+ {href=>"javascript:changePage(document.$phase,'$phase')",
text=>"Updated"});
&print_header($r,$phase);
- foreach my $item (@prefs) {
- $r->print('
'.&mt($item->{'text'}).' '.
- &process_changes($r,$dom,$confname,
- $item->{'action'},\@roles,%domconfig));
+ foreach my $item (@prefs_order) {
+ if (grep(/^\Q$item\E$/,@actions)) {
+ $r->print(''.&mt($prefs{$item}{'text'}).' '.
+ &process_changes($r,$dom,$confname,$item,
+ \@roles,%domconfig));
+ }
}
$r->print('');
- &print_footer($r,$phase,'display','Back to actions menu');
+ &print_footer($r,$phase,'display','Back to configuration display',
+ \@actions);
$r->print('
');
+ } elsif ($phase eq 'display') {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"javascript:changePage(document.$phase,'display')",
+ text=>"Domain Configuration"});
+ &print_header($r,$phase);
+ if (@actions > 0) {
+ my $rowsum = 0;
+ my (%output,%rowtotal,@items);
+ my $halfway = @actions/2;
+ foreach my $item (@prefs_order) {
+ if (grep(/^\Q$item\E$/,@actions)) {
+ push(@items,$item);
+ ($output{$item},$rowtotal{$item}) =
+ &print_config_box($r,$dom,$confname,$phase,
+ $item,$prefs{$item},
+ $domconfig{$item});
+ $rowsum += $rowtotal{$item};
+ }
+ }
+ my $colend;
+ my $halfway = $rowsum/2;
+ my $aggregate = 0;
+ my $sumleft = 0;
+ my $sumright = 0;
+ my $crossover;
+ for (my $i=0; $i<@items; $i++) {
+ $aggregate += $rowtotal{$items[$i]};
+ if ($aggregate > $halfway) {
+ $crossover = $i;
+ last;
+ }
+ }
+ for (my $i=0; $i<$crossover; $i++) {
+ $sumleft += $rowtotal{$items[$i]};
+ }
+ for (my $i=$crossover+1; $i<@items; $i++) {
+ $sumright += $rowtotal{$items[$i]};
+ }
+ if ((@items > 1) && ($env{'form.numcols'} == 2)) {
+ my $sumdiff = $sumright - $sumleft;
+ if ($sumdiff > 0) {
+ $colend = $crossover + 1;
+ } else {
+ $colend = $crossover;
+ }
+ } else {
+ $colend = @items;
+ }
+ $r->print('
');
+ for (my $i=0; $i<$colend; $i++) {
+ $r->print($output{$items[$i]});
+ }
+ $r->print(' ');
+ if ($colend < @items) {
+ for (my $i=$colend; $i<@items; $i++) {
+ $r->print($output{$items[$i]});
+ }
+ }
+ $r->print('
');
+ $r->print(&print_footer($r,$phase,'process','Save',\@actions));
+ } else {
+ $r->print(' '.
+ ' '."\n".
+ ''.&mt('No settings chosen').
+ ' ');
+ }
+ $r->print('');
+ $r->print(&Apache::loncommon::end_page());
} else {
if ($phase eq '') {
- $phase = 'display';
+ $phase = 'pickactions';
}
- my %helphash;
- my $numprefs = @prefs;
+ my %helphash;
&print_header($r,$phase);
if (keys(%domconfig) == 0) {
my $primarylibserv = &Apache::lonnet::domain($dom,'primary');
@@ -180,25 +257,33 @@ sub handler {
&mt("Thereafter, (with a Domain Coordinator role selected in the domain) you will be able to update settings when logged in to any server in the LON-CAPA network.").' '.
&mt("However, you will still need to switch to the domain's primary library server to upload new images or logos.").' ');
if ($switch_server) {
- $r->print($switch_server.' '.&mt('to primary library server for domain: [_1]',$dom));
+ $r->print($switch_server.' '.&mt('to primary library server for domain: [_1]',$dom));
}
return OK;
}
}
}
- $r->print('');
- foreach my $item (@prefs) {
- if ($item->{'action'} eq 'login') {
- $r->print(' ');
- }
- &print_config_box($r,$dom,$confname,$phase,$item->{'action'},
- $item,$domconfig{$item->{'action'}});
- }
- $r->print('
-
-
-
');
- &print_footer($r,$phase,'process','Save changes');
+ $r->print(''.&mt('Functionality to display/modify').' ');
+ $r->print(''."\n".' '.
+ '
');
+ foreach my $item (@prefs_order) {
+ $r->print(' '.$prefs{$item}->{'text'}.'
');
+ }
+ $r->print(''.&mt('Display options').' '."\n".
+ ''.&mt('Display using: ')."\n".
+ ' '.
+ &mt('one column').' '.
+ ' '.
+ &mt('two columns').'
');
+ $r->print(&print_footer($r,$phase,'display','Go'));
+ $r->print('');
+ $r->print(&Apache::loncommon::end_page());
}
return OK;
}
@@ -229,34 +314,38 @@ sub process_changes {
sub print_config_box {
my ($r,$dom,$confname,$phase,$action,$item,$settings) = @_;
- $r->print('
-
+ my $rowtotal = 0;
+ my $output =
+ '
- '.&mt($item->{text}).' ');
+ '.&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'}).'
# ');
+ $rowtotal ++;
if (($action eq 'autoupdate') || ($action eq 'rolecolors') ||
($action eq 'usercreation')) {
my $colspan = ($action eq 'rolecolors')?' colspan="2"':'';
- $r->print('
+ $output .= '
'.$item->{'header'}->[0]->{'col1'}.'
'.$item->{'header'}->[0]->{'col2'}.'
- ');
+ ';
+ $rowtotal ++;
if ($action eq 'autoupdate') {
- $r->print(&print_autoupdate('top',$dom,$settings));
+ $output .= &print_autoupdate('top',$dom,$settings,\$rowtotal);
} elsif ($action eq 'usercreation') {
- $r->print(&print_usercreation('top',$dom,$settings));
+ $output .= &print_usercreation('top',$dom,$settings,\$rowtotal);
} else {
- $r->print(&print_rolecolors($phase,'student',$dom,$confname,$settings));
+ $output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal);
}
- $r->print('
+ $output .= '
@@ -266,13 +355,14 @@ sub print_config_box {
'.$item->{'header'}->[1]->{'col1'}.'
'.$item->{'header'}->[1]->{'col2'}.'
- ');
+ ';
+ $rowtotal ++;
if ($action eq 'autoupdate') {
- $r->print(&print_autoupdate('bottom',$dom,$settings));
+ $output .= &print_autoupdate('bottom',$dom,$settings,\$rowtotal);
} elsif ($action eq 'usercreation') {
- $r->print(&print_usercreation('bottom',$dom,$settings));
+ $output .= &print_usercreation('bottom',$dom,$settings,\$rowtotal);
} else {
- $r->print(&print_rolecolors($phase,'coordinator',$dom,$confname,$settings).'
+ $output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).'
@@ -283,7 +373,7 @@ sub print_config_box {
'.$item->{'header'}->[2]->{'col1'}.'
'.$item->{'header'}->[2]->{'col2'}.'
'.
- &print_rolecolors($phase,'author',$dom,$confname,$settings).'
+ &print_rolecolors($phase,'author',$dom,$confname,$settings,\$rowtotal).'
@@ -294,58 +384,99 @@ sub print_config_box {
'.$item->{'header'}->[3]->{'col1'}.'
'.$item->{'header'}->[3]->{'col2'}.'
'.
- &print_rolecolors($phase,'admin',$dom,$confname,$settings));
+ &print_rolecolors($phase,'admin',$dom,$confname,$settings,\$rowtotal);
+ $rowtotal += 2;
}
} else {
- $r->print('
+ $output .= '
- ');
+ ';
if (($action eq 'login') || ($action eq 'directorysrch')) {
- $r->print('
- '.$item->{'header'}->[0]->{'col1'}.' ');
+ $output .= '
+ '.$item->{'header'}->[0]->{'col1'}.' ';
} else {
- $r->print('
- '.$item->{'header'}->[0]->{'col1'}.' ');
+ $output .= '
+ '.$item->{'header'}->[0]->{'col1'}.' ';
}
- $r->print('
+ $output .= '
'.$item->{'header'}->[0]->{'col2'}.'
- ');
+ ';
+ $rowtotal ++;
if ($action eq 'login') {
- $r->print(&print_login($dom,$confname,$phase,$settings));
+ $output .= &print_login($dom,$confname,$phase,$settings,\$rowtotal);
} elsif ($action eq 'quotas') {
- $r->print(&print_quotas($dom,$settings));
+ $output .= &print_quotas($dom,$settings,\$rowtotal);
} elsif ($action eq 'autoenroll') {
- $r->print(&print_autoenroll($dom,$settings));
+ $output .= &print_autoenroll($dom,$settings,\$rowtotal);
} elsif ($action eq 'directorysrch') {
- $r->print(&print_directorysrch($dom,$settings));
+ $output .= &print_directorysrch($dom,$settings,\$rowtotal);
} elsif ($action eq 'contacts') {
- $r->print(&print_contacts($dom,$settings));
+ $output .= &print_contacts($dom,$settings,\$rowtotal);
}
}
- $r->print('
+ $output .= '
- ');
- return;
+ ';
+ return ($output,$rowtotal);
}
sub print_header {
my ($r,$phase) = @_;
+ my $alert = &mt('You must select at least one functionality type to display.');
my $js = '
';
+ my $additem;
+ if ($phase eq 'pickactions') {
+ my %loaditems = (
+ 'onload' => "javascript:;getDimensions(document.$phase.width,document.$phase.height);setDisplayColumns();setFormElements(document.pickactions);",
+ );
+ $additem = {'add_entries' => \%loaditems,};
+ } else {
+ my %loaditems = (
+ 'onload' => "javascript:getDimensions(document.$phase.width,document.$phase.height)",
+ );
+ $additem = {'add_entries' => \%loaditems,};
+ }
$r->print(&Apache::loncommon::start_page('View/Modify Domain Settings',
- $js));
+ $js,$additem));
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Domain Settings'));
$r->print('
'.&Apache::loncommon::end_page());
}
- $r->print('');
- $r->print(' '.&Apache::loncommon::end_page());
return;
}
sub print_login {
- my ($dom,$confname,$phase,$settings) = @_;
+ my ($dom,$confname,$phase,$settings,$rowtotal) = @_;
my %choices = &login_choices();
my ($catalogon,$catalogoff,$adminmailon,$adminmailoff);
$catalogon = ' checked="checked" ';
@@ -477,7 +627,7 @@ sub print_login {
' '.&mt('No').' ';
$itemcount ++;
- $datatable .= &display_color_options($dom,$confname,$phase,'login',$itemcount,\%choices,\%is_custom,\%defaults,\%designs,\@images,\@bgs,\@links,\%alt_text);
+ $datatable .= &display_color_options($dom,$confname,$phase,'login',$itemcount,\%choices,\%is_custom,\%defaults,\%designs,\@images,\@bgs,\@links,\%alt_text,$rowtotal);
$datatable .= '';
return $datatable;
}
@@ -504,7 +654,7 @@ sub login_choices {
}
sub print_rolecolors {
- my ($phase,$role,$dom,$confname,$settings) = @_;
+ my ($phase,$role,$dom,$confname,$settings,$rowtotal) = @_;
my %choices = &color_font_choices();
my @bgs = ('pgbg','tabbg','sidebg');
my @links = ('link','alink','vlink');
@@ -570,19 +720,19 @@ sub print_rolecolors {
}
}
my $itemcount = 1;
- my $datatable = &display_color_options($dom,$confname,$phase,$role,$itemcount,\%choices,\%is_custom,\%defaults,\%designs,\@images,\@bgs,\@links,\%alt_text);
+ my $datatable = &display_color_options($dom,$confname,$phase,$role,$itemcount,\%choices,\%is_custom,\%defaults,\%designs,\@images,\@bgs,\@links,\%alt_text,$rowtotal);
$datatable .= '';
return $datatable;
}
sub display_color_options {
my ($dom,$confname,$phase,$role,$itemcount,$choices,$is_custom,$defaults,$designs,
- $images,$bgs,$links,$alt_text) = @_;
+ $images,$bgs,$links,$alt_text,$rowtotal) = @_;
my $css_class = $itemcount%2?' class="LC_odd_row"':'';
my $datatable = ''.
''.$choices->{'font'}.' ';
if (!$is_custom->{'font'}) {
- $datatable .= ''.&mt('Default in use:').' '.$defaults->{'font'}.' ';
+ $datatable .= ''.&mt('Default in use:').' '.$defaults->{'font'}.' ';
} else {
$datatable .= ' ';
}
@@ -590,6 +740,8 @@ sub display_color_options {
$datatable .= ''.
' '.$fontlink.
+ ' '.
' ';
my $switchserver = &check_switchserver($dom,$confname);
foreach my $img (@{$images}) {
@@ -685,7 +837,7 @@ sub display_color_options {
my $bgs_def;
foreach my $item (@{$bgs}) {
if (!$is_custom->{$item}) {
- $bgs_def .= ''.$choices->{$item}.' '.$defaults->{'bgs'}{$item}.' ';
+ $bgs_def .= ''.$choices->{$item}.' '.$defaults->{'bgs'}{$item}.' ';
}
}
if ($bgs_def) {
@@ -699,10 +851,10 @@ sub display_color_options {
my $link = &color_pick($phase,$role,$item,$choices->{$item},$designs->{'bgs'}{$item});
$datatable .= ''.$link;
if ($designs->{'bgs'}{$item}) {
- $datatable .= ' ';
+ $datatable .= ' ';
}
$datatable .= ' ';
+ '" onblur = "javascript:document.display.css_'.$role.'_'.$item.'.style.background-color = document.display.'.$role.'_'.$item.'.value;"/>';
}
$datatable .= '';
$itemcount ++;
@@ -712,7 +864,7 @@ sub display_color_options {
my $links_def;
foreach my $item (@{$links}) {
if (!$is_custom->{$item}) {
- $links_def .= ''.$choices->{$item}.' '.$defaults->{'links'}{$item}.' ';
+ $links_def .= ''.$choices->{$item}.''.$defaults->{'links'}{$item}.' ';
}
}
if ($links_def) {
@@ -723,17 +875,16 @@ sub display_color_options {
$datatable .= ''.
'';
foreach my $item (@{$links}) {
- $datatable .= '';
- my $link = &color_pick($phase,$role,$item,$choices->{$item},$designs->{'links'}{$item});
+ $datatable .= ' '."\n".
+ &color_pick($phase,$role,$item,$choices->{$item},
+ $designs->{'links'}{$item});
if ($designs->{'links'}{$item}) {
- $datatable.=''.
- $link.' ';
- } else {
- $datatable .= $link;
+ $datatable.=' ';
}
$datatable .= ' ';
}
+ $$rowtotal += $itemcount;
return $datatable;
}
@@ -773,7 +924,7 @@ ENDCOL
}
sub print_quotas {
- my ($dom,$settings) = @_;
+ my ($dom,$settings,$rowtotal) = @_;
my $datatable;
my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
my $typecount = 0;
@@ -805,11 +956,12 @@ sub print_quotas {
''.
' Mb ';
+ $$rowtotal += $typecount;
return $datatable;
}
sub print_autoenroll {
- my ($dom,$settings) = @_;
+ my ($dom,$settings,$rowtotal) = @_;
my $autorun = &Apache::lonnet::auto_run(undef,$dom),
my ($defdom,$runon,$runoff);
if (ref($settings) eq 'HASH') {
@@ -858,11 +1010,12 @@ sub print_autoenroll {
$settings->{'sender_uname'}.
'" size="10" /> '.&mt('domain').
': '.$domform.'';
+ $$rowtotal += 2;
return $datatable;
}
sub print_autoupdate {
- my ($position,$dom,$settings) = @_;
+ my ($position,$dom,$settings,$rowtotal) = @_;
my $datatable;
if ($position eq 'top') {
my $updateon = ' ';
@@ -898,6 +1051,7 @@ sub print_autoupdate {
' '.&mt('No').' '.
'';
+ $$rowtotal += 2;
} else {
my ($othertitle,$usertypes,$types) = &sorted_inst_types($dom);
my @fields = ('lastname','firstname','middlename','gen',
@@ -916,18 +1070,20 @@ sub print_autoupdate {
$datatable =
&usertype_update_row($settings,$usertypes,\%fieldtitles,
\@fields,$types,\$numrows);
+ $$rowtotal += @{$types};
}
}
$datatable .=
&usertype_update_row($settings,{'default' => $othertitle},
\%fieldtitles,\@fields,['default'],
\$numrows);
+ $$rowtotal ++;
}
return $datatable;
}
sub print_directorysrch {
- my ($dom,$settings) = @_;
+ my ($dom,$settings,$rowtotal) = @_;
my $srchon = ' ';
my $srchoff = ' checked="checked" ';
my ($exacton,$containson,$beginson);
@@ -969,20 +1125,21 @@ sub print_directorysrch {
my $numinrow = 4;
my $cansrchrow = 0;
my $datatable=''.
- ''.&mt('Directory search available?').' '.
+ ''.&mt('Directory search available?').' '.
''.
' '.&mt('Yes').' '.
' '.&mt('No').' '.
' '.
- ''.&mt('Other domains can search?').' '.
+ ''.&mt('Other domains can search?').' '.
''.
' '.&mt('Yes').' '.
' '.&mt('No').' '.
' ';
+ $$rowtotal += 2;
if (ref($usertypes) eq 'HASH') {
if (keys(%{$usertypes}) > 0) {
$datatable .= &users_cansearch_row($settings,$types,$usertypes,$dom,
@@ -991,12 +1148,13 @@ sub print_directorysrch {
}
}
if ($cansrchrow) {
+ $$rowtotal ++;
$datatable .= '';
} else {
$datatable .= ' ';
}
- $datatable .= ''.&mt('Supported search methods').
- ' ';
+ $datatable .= ''.&mt('Supported search methods').
+ ' ';
foreach my $title (@{$titleorder}) {
if (defined($searchtitles->{$title})) {
my $check = ' ';
@@ -1013,12 +1171,13 @@ sub print_directorysrch {
}
}
$datatable .= '
';
+ $$rowtotal ++;
if ($cansrchrow) {
$datatable .= '';
} else {
$datatable .= ' ';
}
- $datatable .= ''.&mt('Search latitude').' '.
+ $datatable .= ''.&mt('Search latitude').' '.
''.
''.
' '.&mt('Contains').
' ';
+ $$rowtotal ++;
return $datatable;
}
sub print_contacts {
- my ($dom,$settings) = @_;
+ my ($dom,$settings,$rowtotal) = @_;
my $datatable;
my @contacts = ('adminemail','supportemail');
my (%checked,%to,%otheremails);
@@ -1076,9 +1236,9 @@ sub print_contacts {
} else {
$css_class = ' class="LC_odd_row" ';
}
- $datatable .= ''.
- ''.$titles->{$item}.' '.
- ''.
+ $datatable .= ' '.
+ ''.$titles->{$item}.
+ ' '.
' ';
$rownum ++;
@@ -1090,7 +1250,8 @@ sub print_contacts {
$css_class = ' class="LC_odd_row" ';
}
$datatable .= ''.
- ''.$titles->{$type}.': '.
+ ''.
+ $titles->{$type}.': '.
''.
'';
foreach my $item (@contacts) {
@@ -1106,6 +1267,7 @@ sub print_contacts {
' '."\n";
$rownum ++;
}
+ $$rowtotal += $rownum;
return $datatable;
}
@@ -1125,9 +1287,8 @@ sub contact_titles {
}
sub print_usercreation {
- my ($position,$dom,$settings) = @_;
+ my ($position,$dom,$settings,$rowtotal) = @_;
my $numinrow = 4;
- my $rowcount = 0;
my ($rules,$ruleorder) = &Apache::lonnet::inst_userrules($dom);
my $datatable;
my %lt = &Apache::lonlocal::texthash (
@@ -1145,8 +1306,8 @@ sub print_usercreation {
}
}
$datatable = ''.
- ''.$lt{'nondc'}.' '.
- '';
+ ''.$lt{'nondc'}.
+ ' ';
- $rowcount ++;
+ $$rowtotal ++;
if (ref($rules) eq 'HASH') {
if (keys(%{$rules}) > 0) {
$datatable .= &username_formats_row($settings,$rules,
$ruleorder,$numinrow);
- $rowcount ++;
+ $$rowtotal ++;
}
}
} else {
@@ -1190,7 +1351,7 @@ sub print_usercreation {
} else {
$css_class = ' class="LC_odd_row" ';
}
- $datatable .= ''.
+ $datatable .= ' '.
''.$title{$item}.
' '.
'';
@@ -1203,6 +1364,7 @@ sub print_usercreation {
$datatable .= ' ';
$rownum ++;
}
+ $$rowtotal += $rownum;
}
return $datatable;
}
@@ -1210,8 +1372,10 @@ sub print_usercreation {
sub username_formats_row {
my ($settings,$rules,$ruleorder,$numinrow) = @_;
my $output = ''.
- ''.&mt('Format rules to check for new usernames: ').
- ' ';
+ ''.
+ &mt('Format rules to check for new usernames: ').
+ ' '.
+ '';
my $rem;
if (ref($ruleorder) eq 'ARRAY') {
for (my $i=0; $i<@{$ruleorder}; $i++) {
@@ -2009,6 +2173,18 @@ sub check_switchserver {
return $switchserver;
}
+sub javascript_set_colnums {
+ return < 1100) {
+ document.pickactions.numcols[1].checked = true;
+ } else {
+ document.pickactions.numcols[0].checked = true;
+ }
+}
+END
+}
+
sub modify_quotas {
my ($dom,%domconfig) = @_;
my ($resulttext,%changes);