--- loncom/interface/domainprefs.pm 2014/04/23 11:08:55 1.160.6.40 +++ loncom/interface/domainprefs.pm 2014/05/05 21:40:52 1.160.6.44 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set domain-wide configuration settings # -# $Id: domainprefs.pm,v 1.160.6.40 2014/04/23 11:08:55 raeburn Exp $ +# $Id: domainprefs.pm,v 1.160.6.44 2014/05/05 21:40:52 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -220,7 +220,7 @@ sub handler { 'autoupdate','autocreate','directorysrch','contacts', 'usercreation','selfcreation','usermodification','scantron', 'requestcourses','requestauthor','coursecategories', - 'serverstatuses',coursedefaults','selfenrollment', + 'serverstatuses','coursedefaults','selfenrollment', 'usersessions'); my %existing; if (ref($domconfig{'loadbalancing'}) eq 'HASH') { @@ -387,7 +387,9 @@ sub handler { 'coursecategories' => { text => 'Cataloging of courses/communities', help => 'Domain_Configuration_Cataloging_Courses', - header => [{col1 => 'Category settings', + header => [{col1 => 'Catalog type/availability', + col2 => '',}, + {col1 => 'Category settings for standard catalog', col2 => '',}, {col1 => 'Categories', col2 => '', @@ -604,7 +606,7 @@ sub process_changes { } elsif ($action eq 'scantron') { $output = &modify_scantron($r,$dom,$confname,$lastactref,%domconfig); } elsif ($action eq 'coursecategories') { - $output = &modify_coursecategories($dom,%domconfig); + $output = &modify_coursecategories($dom,$lastactref,%domconfig); } elsif ($action eq 'serverstatuses') { $output = &modify_serverstatuses($dom,%domconfig); } elsif ($action eq 'requestcourses') { @@ -647,7 +649,7 @@ sub print_config_box { if ($numheaders > 1) { my $colspan = ''; my $rightcolspan = ''; - if (($action eq 'rolecolors') || ($action eq 'coursecategories') || ($action eq 'defaults') || + if (($action eq 'rolecolors') || ($action eq 'defaults') || (($action eq 'login') && ($numheaders < 3))) { $colspan = ' colspan="2"'; } @@ -695,8 +697,14 @@ sub print_config_box { $rowtotal ++; if (($action eq 'autoupdate') || ($action eq 'usercreation') || ($action eq 'selfcreation') || ($action eq 'selfenrollment') || - ($action eq 'usersessions')) { - $output .= $item->{'print'}->('middle',$dom,$settings,\$rowtotal).' + ($action eq 'usersessions') || ($action eq 'coursecategories')) { + if ($action eq 'coursecategories') { + $output .= &print_coursecategories('middle',$dom,$item,$settings,\$rowtotal); + $colspan = ' colspan="2"'; + } else { + $output .= $item->{'print'}->('middle',$dom,$settings,\$rowtotal); + } + $output .= ' @@ -706,14 +714,16 @@ sub print_config_box { '.&mt($item->{'header'}->[2]->{'col1'}).' '.&mt($item->{'header'}->[2]->{'col2'}).' - '."\n". - $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); + '."\n"; + if ($action eq 'coursecategories') { + $output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal); + } else { + $output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); + } $rowtotal ++; } elsif (($action eq 'usermodification') || ($action eq 'coursedefaults') || ($action eq 'defaults')) { $output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); - } elsif ($action eq 'coursecategories') { - $output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal); } elsif ($action eq 'login') { if ($numheaders == 3) { $output .= &print_login('page',$dom,$confname,$phase,$settings,\$rowtotal).' @@ -4053,6 +4063,43 @@ sub print_selfcreation { $$rowtotal ++; } } + my @fields = ('lastname','firstname','middlename','permanentemail','id','inststatus'); + my %fieldtitles = &Apache::loncommon::personal_data_fieldtitles(); + $fieldtitles{'inststatus'} = &mt('Institutional status'); + my $rem; + my $numperrow = 2; + my $css_class = $$rowtotal%2?' class="LC_odd_row"':''; + $datatable .= ''. + ''.&mt('Shibboleth (SSO) Data').''. + ''."\n". + ''; + } + $datatable .= ''; + } + my $currval; + if (ref($createsettings->{'shibenv'}) eq 'HASH') { + $currval = $createsettings->{'shibenv'}{$fields[$i]}; + } + $datatable .= ''; + } + my $colsleft = $numperrow - $rem; + if ($colsleft > 1 ) { + $datatable .= ''; + } elsif ($colsleft == 1) { + $datatable .= ''; + } + $datatable .= '
'."\n"; + for (my $i=0; $i<@fields; $i++) { + $rem = $i%($numperrow); + if ($rem == 0) { + if ($i > 0) { + $datatable .= '
'. + ''. + ' '. + $fieldtitles{$fields[$i]}.''. + '  
'; + $$rowtotal ++; } elsif ($position eq 'middle') { my %domconf = &Apache::lonnet::get_dom('configuration',['usermodification'],$dom); my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); @@ -4063,7 +4110,7 @@ sub print_selfcreation { foreach my $status (@{$types}) { $datatable .= &modifiable_userdata_row('selfcreate',$status,$domconf{'usermodification'}, $numinrow,$$rowtotal,$usertypes); - $$rowtotal ++; + $$rowtotal ++; } } } else { @@ -4109,8 +4156,8 @@ sub print_selfcreation { $additional .= ''."\n"; ($datatable,$itemcount) = &radiobutton_prefs(\%radiohash,\@toggles,\%defaultchecked, - \%choices,$itemcount,$onclick,$additional); - $$rowtotal += $itemcount; + \%choices,$$rowtotal,$onclick,$additional); + $$rowtotal ++; $datatable .= &print_requestmail($dom,'selfcreation',$createsettings,$rowtotal); $$rowtotal ++; my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); @@ -4728,6 +4775,49 @@ sub print_coursecategories { my ($position,$dom,$hdritem,$settings,$rowtotal) = @_; my $datatable; if ($position eq 'top') { + my (%checked); + my @catitems = ('unauth','auth'); + my @cattypes = ('std','domonly','codesrch','none'); + $checked{'unauth'} = 'std'; + $checked{'auth'} = 'std'; + if (ref($settings) eq 'HASH') { + foreach my $type (@cattypes) { + if ($type eq $settings->{'unauth'}) { + $checked{'unauth'} = $type; + } + if ($type eq $settings->{'auth'}) { + $checked{'auth'} = $type; + } + } + } + my %lt = &Apache::lonlocal::texthash ( + unauth => 'Catalog type for unauthenticated users', + auth => 'Catalog type for authenticated users', + none => 'No catalog', + std => 'Standard catalog', + domonly => 'Domain-only catalog', + codesrch => "Code search form", + ); + my $itemcount = 0; + foreach my $item (@catitems) { + my $css_class = $itemcount%2? ' class="LC_odd_row"':''; + $datatable .= ''. + ''.$lt{$item}.''. + ''; + foreach my $type (@cattypes) { + my $ischecked; + if ($checked{$item} eq $type) { + $ischecked=' checked="checked"'; + } + $datatable .= ' '; + } + $datatable .= ''; + $itemcount ++; + } + $$rowtotal += $itemcount; + } elsif ($position eq 'middle') { my $toggle_cats_crs = ' '; my $toggle_cats_dom = ' checked="checked" '; my $can_cat_crs = ' '; @@ -4934,7 +5024,7 @@ sub print_coursecategories { $datatable .= &initialize_categories($itemcount); } } else { - $datatable .= ''.$hdritem->{'header'}->[0]->{'col2'}.'' + $datatable .= ''.$hdritem->{'header'}->[1]->{'col2'}.'' .&initialize_categories($itemcount); } $$rowtotal += $itemcount; @@ -5080,9 +5170,9 @@ sub coursecategories_javascript { $jstext = ' var categories = Array(1);'."\n". ' categories[0] = Array("instcode_pos");'."\n"; } - my $instcode_reserved = &mt('The name: "instcode" is a reserved category'); - my $communities_reserved = &mt('The name: "communities" is a reserved category'); - my $choose_again = '\\n'.&mt('Please use a different name for the new top level category'); + my $instcode_reserved = &mt('The name: [_1] is a reserved category.','"instcode"'); + my $communities_reserved = &mt('The name: [_1] is a reserved category.','"communities"'); + my $choose_again = '\\n'.&mt('Please use a different name for the new top level category.'); $output = <<"ENDSCRIPT";