--- loncom/interface/domainprefs.pm 2007/03/01 17:54:13 1.2 +++ loncom/interface/domainprefs.pm 2007/03/01 18:03:18 1.3 @@ -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 @@ sub handler { &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('

'.&mt($item->{'text'}).'

'. + &process_changes($dom,$item->{'action'},%domconfig)); + } + $r->print('

'); + &print_footer($r,$phase,'display','Back to actions menu'); + $r->print('

'); } 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.='

'; - $menu_html.=''; - if (exists($menu_item->{'url'})) { - $menu_html.=qq{}; - } else { - $menu_html.= - qq{}; - } - $menu_html.= &mt($menu_item->{'text'}).''; - if (exists($menu_item->{'help'})) { - $menu_html.= - &Apache::loncommon::help_open_topic($menu_item->{'help'}); + if ($phase eq '') { + $phase = 'display'; } - $menu_html.='

'.$/; - } - &print_header($r); - $r->print($menu_html); + my %helphash; + my $numprefs = @prefs; + &print_header($r,$phase); + $r->print('
'); + foreach my $item (@prefs) { + if ($item->{'action'} eq 'autoupdate') { + $r->print(' '); + } + &print_config_box($r,$dom,$item->{'action'},$item, + $domconfig{$item->{'action'}}); + } + $r->print(' +
+ + + + + + '); + &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(' + + + + '); + if ($action eq 'autoupdate') { + $r->print(' + + + + + '. - &Apache::loncommon::end_data_table_header_row(). - &Apache::loncommon::start_data_table_row(). - ''. - ''. - &Apache::loncommon::end_data_table_row(). - &Apache::loncommon::start_data_table_row(). - ''. - ''. - &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 = + ''. + ''. + ''. + ''. + ''; + 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 .= ''. + ''. + ''; + } + } + $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 .= ''. + ''. + ''; + 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=''. + ''. + ''. + ''. + ''; + 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 = ''. + ''. + ''. + ''. + ''. + ''. + ''; + } 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 .= ''; + } + } + 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 @@ sub modify_login { } 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(). - ''. - &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(). - ''; - } - } - $othertitle = "Other users"; - } - my $defaultquota = '20'; - if (defined($currquota{'default'})) { - $defaultquota = $currquota{'default'}; - } - $datatable .= &Apache::loncommon::start_data_table_row(). - ''. - &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 @@ sub modify_quotas { } 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 @@ sub modify_quotas { } 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(). - ''. - &Apache::loncommon::end_data_table_header_row(). - &Apache::loncommon::start_data_table_row(). - ''. ''. - &Apache::loncommon::end_data_table_row(). - &Apache::loncommon::start_data_table_row(). - ''. - &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 @@ sub modify_autoenroll { } ); - 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 @@ sub modify_autoenroll { } if (keys(%changes) > 0) { $resulttext = &mt('Changes made:').''. - &Apache::loncommon::end_data_table_header_row(). - &Apache::loncommon::start_data_table_row(). - ''. - ''. - &Apache::loncommon::end_data_table_row(). - &Apache::loncommon::start_data_table_row(). - ''. - ''. - &Apache::loncommon::end_data_table_row(). - &Apache::loncommon::end_data_table().'

'; - 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(). - ''. - &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(). - ''.&Apache::loncommon::end_data_table_row(); - } - } - } - $datatable .= &Apache::loncommon::start_data_table_row(). - ''. - &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 @@ sub modify_autoupdate { 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 .= '
  • '.&mt("Updates for $othertitle set to: [_1]",$newvaluestr).'
  • '; } else { @@ -765,34 +757,19 @@ sub modify_autoupdate { $newvalue = $offon[$env{'form.autoupdate_run'}]; } else { $newvalue = $offon[$env{'form.'.$key}]; - } + } $resulttext .= '
  • '.&mt("[_1] set to $newvalue",$title{$key}).'
  • '; } } $resulttext .= ''; } 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(< -
    -$datatable -
    - - - -ENDDOCUMENT - return; + return $resulttext; } 1; +
    '.&mt($item->{text}).' '. + &Apache::loncommon::help_open_topic($item->{'help'}).'
    + + + + + '. + &print_autoupdate('top',$dom,$settings).' +
    '.$item->{'header'}->[0]->{'col1'}.''.$item->{'header'}->[0]->{'col2'}.'
    +
    + + + + + '. + &print_autoupdate('bottom',$dom,$settings)); + } else { + $r->print(' + + + +
    '.$item->{'header'}->[1]->{'col1'}.''.$item->{'header'}->[1]->{'col2'}.'
    + + + + + '); + 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(' +
    '.$item->{'header'}->[0]->{'col1'}.''.$item->{'header'}->[0]->{'col2'}.'
    +

    '); 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| |; $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('
    '); return; } sub print_footer { - my ($r) = @_; + my ($r,$phase,$newphase,$button_text) = @_; + $button_text = &mt($button_text); + $r->print(''); + my $dest='"javascript:changePage(document.'.$phase.','."'$newphase'".')"'; + if ($phase eq 'process') { + $r->print(''.$button_text.''); + } else { + $r->print(''); + } + $r->print('
    '); $r->print('
    '.&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(). - '
    '.&mt('Item').''.&mt('Selection').''.&mt('Display Course Catalog link?').''.&mt('Yes').' '. - ''.&mt('No').''.&mt("Display Administrator's E-mail Address?").''.&mt('Yes').' '. - ''.&mt('No').'
    '.$choices{'coursecatalog'}. + ''. + ''.&mt('Yes').' '. + ''.&mt('No').'
    '.$choices{'adminmail'}.''. + ''.&mt('Yes').' '. + ''.&mt('No').'
    '.$usertypes->{$type}.''. + ' Mb
    '.&mt($othertitle).''. + ' Mb
    '.&mt('Auto-enrollment active?').''. + ''.&mt('Yes').' '. + ''.&mt('No').'
    '.&mt('Notification messages - sender'). + ''. + &mt('username').': '. + '  '.&mt('domain'). + ': '.$domform.'
    '.&mt($title{'run'}).''. + ''.&mt('Yes').' '. + ''.&mt('No').'
    '.&mt($title{'classlists'}).''. + ''.&mt('Yes').' '. + ''.&mt('No').'
    '.$usertypes->{$type}. + ''; + for (my $i=0; $i<@{$fields}; $i++) { + my $rem = $i%($numinrow); + if ($rem == 0) { + if ($i > 0) { + $datatable .= ''; + } + $datatable .= ''; + } + 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 .= ''; + } + $datatable .= '
    '; + } else { + $datatable .= ''; + } + } else { + $datatable .= ''; + } + $datatable .= ''. + $fieldtitles->{$fields->[$i]}.'
    '.&mt('User type').''.&mt('Default quota').''.$usertypes->{$type}.''. - ' Mb'.&mt($othertitle).''. - ' Mb'.&mt('Configuration setting').''.&mt('Value(s)').''.&mt('Auto-enrollment active?').''.&mt('Yes').' '. - ''.&mt('No').''.&mt('Notification messages - sender').''. - &mt('username').':   '.&mt('domain').': '.$domform.''.&mt('Setting').''.&mt('Value').''.&mt($title{'run'}).''.&mt('Yes').' '. - ''.&mt('No').''.&mt($title{'classlists'}).''.&mt('Yes').' '. - ''.&mt('No').''.&mt('User Population').''.&mt('Updateable user data').''.$usertypes->{$type}.''; - for (my $i=0; $i<@fields; $i++) { - my $rem = $i%($numinrow); - if ($rem == 0) { - if ($i > 0) { - $datatable .= ''; - } - $datatable .= ''; - } - 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 .= ''; - } - $datatable .= '
    '; - } else { - $datatable .= ''; - } - } else { - $datatable .= ''; - } - $datatable .= ''. - $fieldtitles{$fields[$i]}.'
    '.&mt($othertitle).''; - for (my $i=0; $i<@fields; $i++) { - my $rem = $i%($numinrow); - if ($rem == 0) { - if ($i > 0) { - $datatable .= ''; - } - $datatable .= ''; - } - 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 .= ''; - } - $datatable .= '
    '; - } else { - $datatable .= ''; - } - } else { - $datatable .= ''; - } - $datatable .= ''. - $fieldtitles{$fields[$i]}.'