--- loncom/interface/domainprefs.pm 2009/11/23 21:45:18 1.120 +++ loncom/interface/domainprefs.pm 2009/11/30 06:23:32 1.121 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set domain-wide configuration settings # -# $Id: domainprefs.pm,v 1.120 2009/11/23 21:45:18 raeburn Exp $ +# $Id: domainprefs.pm,v 1.121 2009/11/30 06:23:32 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -202,11 +202,12 @@ sub handler { 'quotas','autoenroll','autoupdate','directorysrch', 'usercreation','usermodification','contacts','defaults', 'scantron','coursecategories','serverstatuses', - 'requestcourses','helpsettings'],$dom); + 'requestcourses','helpsettings','coursedefaults'],$dom); my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', 'autoupdate','directorysrch','contacts', 'usercreation','usermodification','scantron', - 'requestcourses','coursecategories','serverstatuses','helpsettings'); + 'requestcourses','coursecategories','serverstatuses','helpsettings', + 'coursedefaults'); my %prefs = ( 'rolecolors' => { text => 'Default color schemes', @@ -325,6 +326,12 @@ sub handler { header => [{col1 => 'Setting', col2 => 'Value',}], }, + 'coursedefaults' => + {text => 'Course/Community defaults', + help => 'Domain_Configuration_Course_Defaults', + header => [{col1 => 'Setting', + col2 => 'Value',}], + }, 'privacy' => {text => 'User Privacy', help => 'Domain_Configuration_User_Privacy', @@ -429,6 +436,8 @@ sub process_changes { $output = &modify_quotas($dom,$action,%domconfig); } elsif ($action eq 'helpsettings') { $output = &modify_helpsettings($dom,%domconfig); + } elsif ($action eq 'coursedefaults') { + $output = &modify_coursedefaults($dom,%domconfig); } return $output; } @@ -617,8 +626,10 @@ sub print_config_box { } elsif ($action eq 'serverstatuses') { $output .= &print_serverstatuses($dom,$settings,\$rowtotal); } elsif ($action eq 'helpsettings') { - $output .= &print_helpsettings($dom,$settings,\$rowtotal); - } + $output .= &print_helpsettings($dom,$settings,\$rowtotal); + } elsif ($action eq 'coursedefaults') { + $output .= &print_coursedefaults($dom,$settings,\$rowtotal); + } } $output .= ' @@ -1935,33 +1946,40 @@ sub print_contacts { } sub print_helpsettings { - - my ($dom,$settings,$rowtotal) = @_; - my ($css_class,$datatable); - my $itemcount = 1; - my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles); - - %choices = + my ($dom,$settings,$rowtotal) = @_; + my ($css_class,$datatable); + my $itemcount = 1; + my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles); + %choices = &Apache::lonlocal::texthash ( submitbugs => 'Display "Submit a bug" link?', ); - - %defaultchecked = ('submitbugs' => 'on'); - - @toggles = ('submitbugs',); - - foreach my $item (@toggles) { - if ($defaultchecked{$item} eq 'on') { + %defaultchecked = ('submitbugs' => 'on'); + @toggles = ('submitbugs',); + ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, + \%choices,$itemcount); + $$rowtotal += $itemcount; + return $datatable; +} + +sub radiobutton_prefs { + my ($settings,$toggles,$defaultchecked,$choices,$itemcount) = @_; + return unless ((ref($toggles) eq 'ARRAY') && (ref($defaultchecked) eq 'HASH') && + (ref($choices) eq 'HASH')); + + my (%checkedon,%checkedoff,$datatable,$css_class); + + foreach my $item (@{$toggles}) { + if ($defaultchecked->{$item} eq 'on') { $checkedon{$item} = ' checked="checked" '; $checkedoff{$item} = ' '; - } elsif ($defaultchecked{$item} eq 'off') { + } elsif ($defaultchecked->{$item} eq 'off') { $checkedoff{$item} = ' checked="checked" '; $checkedon{$item} = ' '; } } - if (ref($settings) eq 'HASH') { - foreach my $item (@toggles) { + foreach my $item (@{$toggles}) { if ($settings->{$item} eq '1') { $checkedon{$item} = ' checked="checked" '; $checkedoff{$item} = ' '; @@ -1970,12 +1988,11 @@ sub print_helpsettings { $checkedon{$item} = ' '; } } - } - - foreach my $item (@toggles) { + } + foreach my $item (@{$toggles}) { $css_class = $itemcount%2?' class="LC_odd_row"':''; - $datatable .= - '