--- loncom/interface/domainprefs.pm 2011/02/07 21:39:45 1.102.2.16 +++ loncom/interface/domainprefs.pm 2009/08/20 20:13:06 1.103 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set domain-wide configuration settings # -# $Id: domainprefs.pm,v 1.102.2.16 2011/02/07 21:39:45 raeburn Exp $ +# $Id: domainprefs.pm,v 1.103 2009/08/20 20:13:06 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -105,7 +105,7 @@ affiliate type (and also default, and _L (official, unofficial and community). In each case the radio buttons allow the selection of one of four values: -0, approval, validate, autolimit=N (where N is blank, or a positive integer). +0, approve, validate, autolimit=N (where N is blank, or a positive integer). which have the following effects: 0 @@ -116,7 +116,7 @@ which have the following effects: =back -approval +approve =over @@ -199,12 +199,12 @@ sub handler { } my %domconfig = &Apache::lonnet::get_dom('configuration',['login','rolecolors', - 'quotas','autoenroll','autoupdate','autocreate', - 'directorysrch','usercreation','usermodification', - 'contacts','defaults','scantron','coursecategories', - 'serverstatuses','requestcourses'],$dom); + 'quotas','autoenroll','autoupdate','directorysrch', + 'usercreation','usermodification','contacts','defaults', + 'scantron','coursecategories','serverstatuses', + 'requestcourses'],$dom); my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', - 'autoupdate','autocreate','directorysrch','contacts', + 'autoupdate','directorysrch','contacts', 'usercreation','usermodification','scantron', 'requestcourses','coursecategories','serverstatuses'); my %prefs = ( @@ -233,7 +233,7 @@ sub handler { col2 => 'Value'}], }, 'quotas' => - { text => 'User blogs, personal information pages, portfolios', + { text => 'User blogs, personal information pages and portfolios', help => 'Domain_Configuration_Quotas', header => [{col1 => 'User affiliation', col2 => 'Available tools', @@ -250,16 +250,8 @@ sub handler { help => 'Domain_Configuration_Auto_Updates', header => [{col1 => 'Setting', col2 => 'Value',}, - {col1 => 'Setting', - col2 => 'Affiliation'}, {col1 => 'User population', - col2 => 'Updateable user data'}], - }, - 'autocreate' => - { text => 'Auto-course creation settings', - help => 'Domain_Configuration_Auto_Creation', - header => [{col1 => 'Configuration Setting', - col2 => 'Value',}], + col2 => 'Updataeable user data'}], }, 'directorysrch' => { text => 'Institutional directory searches', @@ -310,7 +302,7 @@ sub handler { col2 => 'Value'}], }, 'coursecategories' => - { text => 'Cataloging of courses/communities', + { text => 'Cataloging of courses', help => 'Domain_Configuration_Cataloging_Courses', header => [{col1 => 'Category settings', col2 => '',}, @@ -326,28 +318,12 @@ sub handler { col3 => 'Specific IPs', }], }, - 'coursedefaults' => - {text => 'Course/Community defaults', - help => 'Domain_Configuration_Course_Defaults', - header => [{col1 => 'Setting', - col2 => 'Value',}], - }, ); - my %servers = &dom_servers($dom); - if (keys(%servers) > 1) { - $prefs{'login'} = { text => 'Log-in page options', - help => 'Domain_Configuration_Login_Page', - header => [{col1 => 'Log-in Service', - col2 => 'Server Setting',}, - {col1 => 'Log-in Page Items', - col2 => ''}], - }; - } my @roles = ('student','coordinator','author','admin'); my @actions = &Apache::loncommon::get_env_multiple('form.actions'); &Apache::lonhtmlcommon::add_breadcrumb ({href=>"javascript:changePage(document.$phase,'pickactions')", - text=>"Settings to display/modify"}); + text=>"Pick functionality"}); my $confname = $dom.'-domainconfig'; if ($phase eq 'process') { &Apache::lonconfigsettings::make_changes($r,$dom,$phase,$context,\@prefs_order,\%prefs,\%domconfig,$confname,\@roles); @@ -410,8 +386,6 @@ sub process_changes { $output = &modify_autoenroll($dom,%domconfig); } elsif ($action eq 'autoupdate') { $output = &modify_autoupdate($dom,%domconfig); - } elsif ($action eq 'autocreate') { - $output = &modify_autocreate($dom,%domconfig); } elsif ($action eq 'directorysrch') { $output = &modify_directorysrch($dom,%domconfig); } elsif ($action eq 'usercreation') { @@ -449,11 +423,9 @@ sub print_config_box { &Apache::loncommon::help_open_topic($item->{'help'}).''."\n". ''; $rowtotal ++; - my $numheaders = 1; - if (ref($item->{'header'}) eq 'ARRAY') { - $numheaders = scalar(@{$item->{'header'}}); - } - if ($numheaders > 1) { + if (($action eq 'autoupdate') || ($action eq 'rolecolors') || + ($action eq 'usercreation') || ($action eq 'usermodification') || + ($action eq 'coursecategories') || ($action eq 'requestcourses')) { my $colspan = ''; if (($action eq 'rolecolors') || ($action eq 'coursecategories')) { $colspan = ' colspan="2"'; @@ -475,9 +447,6 @@ sub print_config_box { $output .= &print_usermodification('top',$dom,$settings,\$rowtotal); } elsif ($action eq 'coursecategories') { $output .= &print_coursecategories('top',$dom,$item,$settings,\$rowtotal); - } elsif ($action eq 'login') { - $output .= &print_login('top',$dom,$confname,$phase,$settings,\$rowtotal); - $colspan = ' colspan="2"'; } elsif ($action eq 'requestcourses') { $output .= &print_quotas($dom,$settings,\$rowtotal,$action); } else { @@ -497,18 +466,7 @@ sub print_config_box { '; $rowtotal ++; if ($action eq 'autoupdate') { - $output .= &print_autoupdate('middle',$dom,$settings,\$rowtotal).' - - - - - - - - - '. - &print_autoupdate('bottom',$dom,$settings,\$rowtotal); - $rowtotal ++; + $output .= &print_autoupdate('bottom',$dom,$settings,\$rowtotal); } elsif ($action eq 'usercreation') { $output .= &print_usercreation('middle',$dom,$settings,\$rowtotal).'
'.&mt($item->{'header'}->[2]->{'col1'}).''.&mt($item->{'header'}->[2]->{'col2'}).'
@@ -532,13 +490,12 @@ sub print_config_box { - '. + '. + &print_usermodification('bottom',$dom,$settings,\$rowtotal); $rowtotal ++; } elsif ($action eq 'coursecategories') { $output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal); - } elsif ($action eq 'login') { - $output .= &print_login('bottom',$dom,$confname,$phase,$settings,\$rowtotal); } elsif ($action eq 'requestcourses') { $output .= &print_courserequestmail($dom,$settings,\$rowtotal); } else { @@ -609,14 +566,11 @@ sub print_config_box { $output .= ''; $rowtotal ++; if ($action eq 'login') { - $output .= &print_login('bottom',$dom,$confname,$phase,$settings, - \$rowtotal); + $output .= &print_login($dom,$confname,$phase,$settings,\$rowtotal); } elsif ($action eq 'quotas') { $output .= &print_quotas($dom,$settings,\$rowtotal,$action); } elsif ($action eq 'autoenroll') { $output .= &print_autoenroll($dom,$settings,\$rowtotal); - } elsif ($action eq 'autocreate') { - $output .= &print_autocreate($dom,$settings,\$rowtotal); } elsif ($action eq 'directorysrch') { $output .= &print_directorysrch($dom,$settings,\$rowtotal); } elsif ($action eq 'contacts') { @@ -638,79 +592,8 @@ sub print_config_box { } sub print_login { - my ($position,$dom,$confname,$phase,$settings,$rowtotal) = @_; - my ($css_class,$datatable); + my ($dom,$confname,$phase,$settings,$rowtotal) = @_; my %choices = &login_choices(); - - if ($position eq 'top') { - my %servers = &dom_servers($dom); - my $choice = $choices{'disallowlogin'}; - $css_class = ' class="LC_odd_row"'; - $datatable .= ''. - ''; - return $datatable; - } - my %defaultchecked = ( 'coursecatalog' => 'on', 'adminmail' => 'off', @@ -824,6 +707,7 @@ sub print_login { domlogo => 'Domain Logo', login => 'Login box'); my $itemcount = 1; + my ($css_class,$datatable); foreach my $item (@toggles) { $css_class = $itemcount%2?' class="LC_odd_row"':''; $datatable .= @@ -844,15 +728,8 @@ sub print_login { sub login_choices { my %choices = &Apache::lonlocal::texthash ( - coursecatalog => 'Display Course/Community Catalog link?', + coursecatalog => 'Display Course Catalog link?', adminmail => "Display Administrator's E-mail Address?", - disallowlogin => "Login page requests redirected", - hostid => "Server", - server => "Redirect to:", - serverpath => "Path", - custompath => "Custom", - exempt => "Exempt IP(s)", - directlogin => "No redirect", newuser => "Link to create a user account", img => "Header", logo => "Main Logo", @@ -886,6 +763,7 @@ sub print_rolecolors { my %defaults = ( img => $defaultdesign{$role.'.img'}, font => $defaultdesign{$role.'.font'}, + fontmenu => $defaultdesign{$role.'.fontmenu'}, ); foreach my $item (@bgs) { $defaults{'bgs'}{$item} = $defaultdesign{$role.'.'.$item}; @@ -903,6 +781,10 @@ sub print_rolecolors { $designs{'font'} = $settings->{$role}->{'font'}; $is_custom{'font'} = 1; } + if ($settings->{$role}->{'fontmenu'} ne '') { + $designs{'fontmenu'} = $settings->{$role}->{'fontmenu'}; + $is_custom{'fontmenu'} = 1; + } foreach my $item (@bgs) { if ($settings->{$role}->{$item} ne '') { $designs{'bgs'}{$item} = $settings->{$role}->{$item}; @@ -921,6 +803,10 @@ sub print_rolecolors { $designs{img} = $designhash{$dom.'.'.$role.'.img'}; $is_custom{'img'} = 1; } + if ($designhash{$dom.'.'.$role.'.fontmenu'} ne '') { + $designs{fontmenu} = $designhash{$dom.'.'.$role.'.fontmenu'}; + $is_custom{'fontmenu'} = 1; + } if ($designhash{$dom.'.'.$role.'.font'} ne '') { $designs{font} = $designhash{$dom.'.'.$role.'.font'}; $is_custom{'font'} = 1; @@ -949,7 +835,7 @@ sub display_color_options { my ($dom,$confname,$phase,$role,$itemcount,$choices,$is_custom,$defaults,$designs, $images,$bgs,$links,$alt_text,$rowtotal,$logintext,$loginheader) = @_; my $css_class = $itemcount%2?' class="LC_odd_row"':''; - my $datatable = ''. + my $datatable = ''. ''; if (!$is_custom->{'font'}) { $datatable .= ''; @@ -963,6 +849,20 @@ sub display_color_options { '    '. ''; + $datatable .= ''. + ''; + if (!$is_custom->{'fontmenu'}) { + $datatable .= ''; + } else { + $datatable .= ''; + } + $fontlink = &color_pick($phase,$role,'fontmenu',$choices->{'fontmenu'},$designs->{'fontmenu'}); + $datatable .= ''; my $switchserver = &check_switchserver($dom,$confname); foreach my $img (@{$images}) { $itemcount ++; @@ -1249,7 +1149,7 @@ sub print_quotas { my ($css_class,%titles); if ($context eq 'requestcourses') { @usertools = ('official','unofficial','community'); - @options =('norequest','approval','validate','autolimit'); + @options =('norequest','approve','autolimit','validate'); %validations = &Apache::lonnet::auto_courserequest_checks($dom); %titles = &courserequest_titles(); } else { @@ -1318,15 +1218,15 @@ sub print_quotas { $cell{$item} .= ''; + $titles{$option}.' '; if ($option eq 'autolimit') { - $cell{$item} .= ' '; } - $cell{$item} .= ' '; + $cell{$item} .= '  '; if ($option eq 'autolimit') { - $cell{$item} .= $titles{'unlimited'}; + $cell{$item} .= $titles{'unlimited'} } } } else { @@ -1349,7 +1249,7 @@ sub print_quotas { if ($context eq 'requestcourses') { $datatable .= ''; foreach my $item (@usertools) { - $datatable .= ''; + $datatable .= ''; } $datatable .= '
'.&mt($item->{'header'}->[2]->{'col1'}).''.&mt($item->{'header'}->[2]->{'col2'}).'
'.&mt($item->{'header'}->[2]->{'col2'}).'
'.$choice.''. - ''. - ''. - ''. - ''."\n"; - my %disallowed; - if (ref($settings) eq 'HASH') { - if (ref($settings->{'loginvia'}) eq 'HASH') { - %disallowed = %{$settings->{'loginvia'}}; - } - } - foreach my $lonhost (sort(keys(%servers))) { - my $direct = 'selected="selected"'; - if (ref($disallowed{$lonhost}) eq 'HASH') { - if ($disallowed{$lonhost}{'server'} ne '') { - $direct = ''; - } - } - $datatable .= ''. - ''. - ''; - my ($custom,$exempt); - if (ref($disallowed{$lonhost}) eq 'HASH') { - $custom = $disallowed{$lonhost}{'custompath'}; - $exempt = $disallowed{$lonhost}{'exempt'}; - } - $datatable .= ''. - ''. - ''; - } - $datatable .= '
'.$choices{'hostid'}.''.$choices{'server'}.''.$choices{'serverpath'}.''.$choices{'custompath'}.''.$choices{'exempt'}.'
'.$servers{$lonhost}.'
'.$choices->{'font'}.''.&mt('Default in use:').' '.$defaults->{'font'}.'
'.$choices->{'fontmenu'}.''.&mt('Default in use:').' '.$defaults->{'fontmenu'}.' '. + ' '.$fontlink. + '    '. + '
'.$cell{$item}.''.$cell{$item}.'
'; } @@ -1426,14 +1326,11 @@ sub print_quotas { '_default" value="'.$val.'"'.$checked.' />'. $titles{$option}.''; if ($option eq 'autolimit') { - $defcell{$item} .= ' '; } - $defcell{$item} .= ' '; - if ($option eq 'autolimit') { - $defcell{$item} .= $titles{'unlimited'}; - } + $defcell{$item} .= '  '; } } else { my $checked = 'checked="checked" '; @@ -1455,7 +1352,7 @@ sub print_quotas { if ($context eq 'requestcourses') { $datatable .= ''; foreach my $item (@usertools) { - $datatable .= ''.$defcell{$item}.''; + $datatable .= ''.$defcell{$item}.''; } $datatable .= ''; } @@ -1469,17 +1366,14 @@ sub print_quotas { $typecount ++; $css_class = $typecount%2?' class="LC_odd_row"':''; $datatable .= ''. - ''.&mt('LON-CAPA Advanced Users').' '; + ''.&mt('LON-CAPA Advanced Users'). + ' ('. + &mt('overrides affiliation').')'. + ''; if ($context eq 'requestcourses') { - $datatable .= &mt('(overrides affiliation, if set)'). - ''. - ''. - ''; + $datatable .= '
'; } else { - $datatable .= &mt('(overrides affiliation, if checked)'). - ''. - ''; - my $checked = ''; - if ($curroption eq '') { - $checked = ' checked="checked"'; - } - $advcell{$item} .= '  '; foreach my $option (@options) { my $val = $option; if ($option eq 'norequest') { @@ -1517,7 +1406,7 @@ sub print_quotas { next if (!$canvalidate); } my $checked = ''; - if ($val eq $curroption) { + if ($option eq $curroption) { $checked = ' checked="checked"'; } elsif ($option eq 'autolimit') { if ($curroption =~ /^autolimit/) { @@ -1529,14 +1418,11 @@ sub print_quotas { '__LC_adv" value="'.$val.'"'.$checked.' />'. $titles{$option}.''; if ($option eq 'autolimit') { - $advcell{$item} .= ' '; } - $advcell{$item} .= ' '; - if ($option eq 'autolimit') { - $advcell{$item} .= $titles{'unlimited'}; - } + $advcell{$item} .= '  '; } } else { my $checked = 'checked="checked" '; @@ -1558,7 +1444,7 @@ sub print_quotas { if ($context eq 'requestcourses') { $datatable .= ''; foreach my $item (@usertools) { - $datatable .= ''; + $datatable .= ''; } $datatable .= '
'. - '
'; + $datatable .= '
'; } my %advcell; foreach my $item (@usertools) { @@ -1493,15 +1387,10 @@ sub print_quotas { } } } + if (!$curroption) { + $curroption = 'norequest'; + } $datatable .= '
'.$titles{$item}.'
'.$advcell{$item}.''.$advcell{$item}.'
'; } @@ -1569,7 +1455,7 @@ sub print_quotas { sub print_courserequestmail { my ($dom,$settings,$rowtotal) = @_; - my ($now,$datatable,%dompersonnel,@domcoord,@currapproval,$rows); + my ($now,$datatable,%dompersonnel,@domcoord,@currapprove,$rows); $now = time; $rows = 0; %dompersonnel = &Apache::lonnet::get_domain_roles($dom,['dc'],$now,$now); @@ -1584,12 +1470,12 @@ sub print_courserequestmail { if (ref($settings) eq 'HASH') { if (ref($settings->{'notify'}) eq 'HASH') { if ($settings->{'notify'}{'approval'} ne '') { - @currapproval = split(',',$settings->{'notify'}{'approval'}); + @currapprove = split(',',$settings->{'notify'}{'approval'}); } } } - if (@currapproval) { - foreach my $dc (@currapproval) { + if (@currapprove) { + foreach my $dc (@currapprove) { unless (grep(/^\Q$dc\E$/,@domcoord)) { push(@domcoord,$dc); } @@ -1615,7 +1501,7 @@ sub print_courserequestmail { $rows ++; } my $check = ' '; - if (grep(/^\Q$domcoord[$i]\E$/,@currapproval)) { + if (grep(/^\Q$domcoord[$i]\E$/,@currapprove)) { $check = ' checked="checked" '; } my ($uname,$udom) = split(':',$domcoord[$i]); @@ -1648,7 +1534,7 @@ sub print_courserequestmail { sub print_autoenroll { my ($dom,$settings,$rowtotal) = @_; my $autorun = &Apache::lonnet::auto_run(undef,$dom), - my ($defdom,$runon,$runoff,$coownerson,$coownersoff); + my ($defdom,$runon,$runoff); if (ref($settings) eq 'HASH') { if (exists($settings->{'run'})) { if ($settings->{'run'} eq '0') { @@ -1667,18 +1553,6 @@ sub print_autoenroll { $runon = ' '; } } - if (exists($settings->{'co-owners'})) { - if ($settings->{'co-owners'} eq '0') { - $coownersoff = ' checked="checked" '; - $coownerson = ' '; - } else { - $coownerson = ' checked="checked" '; - $coownersoff = ' '; - } - } else { - $coownersoff = ' checked="checked" '; - $coownerson = ' '; - } if (exists($settings->{'sender_domain'})) { $defdom = $settings->{'sender_domain'}; } @@ -1709,16 +1583,8 @@ sub print_autoenroll { &mt('username').': '. '  '.&mt('domain'). - ': '.$domform.''. - ''. - ''.&mt('Automatically assign co-ownership').''. - ' '. - ''. - ''; - $$rowtotal += 3; + ': '.$domform.''; + $$rowtotal += 2; return $datatable; } @@ -1760,17 +1626,9 @@ sub print_autoupdate { $classlistsoff.'value="0" />'.&mt('No').''. ''; $$rowtotal += 2; - } elsif ($position eq 'middle') { - my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); - my $numinrow = 3; - my $locknamesettings; - $datatable .= &insttypes_row($settings,$types,$usertypes, - $dom,$numinrow,$othertitle, - 'lockablenames'); - $$rowtotal ++; } else { my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); - my @fields = ('lastname','firstname','middlename','generation', + my @fields = ('lastname','firstname','middlename','gen', 'permanentemail','id'); my %fieldtitles = &Apache::loncommon::personal_data_fieldtitles(); my $numrows = 0; @@ -1791,57 +1649,6 @@ sub print_autoupdate { return $datatable; } -sub print_autocreate { - my ($dom,$settings,$rowtotal) = @_; - my (%createon,%createoff); - my $curr_dc; - my @types = ('xml','req'); - if (ref($settings) eq 'HASH') { - foreach my $item (@types) { - $createoff{$item} = ' checked="checked" '; - $createon{$item} = ' '; - if (exists($settings->{$item})) { - if ($settings->{$item}) { - $createon{$item} = ' checked="checked" '; - $createoff{$item} = ' '; - } - } - } - $curr_dc = $settings->{'xmldc'}; - } else { - foreach my $item (@types) { - $createoff{$item} = ' checked="checked" '; - $createon{$item} = ' '; - } - } - $$rowtotal += 2; - my $datatable=''. - ''.&mt('Create pending official courses from XML files').''. - ' '. - ''; - my ($numdc,$dctable) = &active_dc_picker($dom,$curr_dc); - if ($numdc > 1) { - $datatable .= ''. - &mt('XML files processed as: (choose Dom. Coord.)'). - ''.$dctable.''. - ''; - $$rowtotal ++ ; - } else { - $datatable .= ''; - } - $datatable .= ''.&mt('Create pending requests for official courses (if validated)').''. - ' '. - ''. - ''; - return $datatable; -} - sub print_directorysrch { my ($dom,$settings,$rowtotal) = @_; my $srchon = ' '; @@ -1959,13 +1766,12 @@ sub print_contacts { my ($dom,$settings,$rowtotal) = @_; my $datatable; my @contacts = ('adminemail','supportemail'); - my (%checked,%to,%otheremails,%bccemails); + my (%checked,%to,%otheremails); my @mailings = ('errormail','packagesmail','lonstatusmail','helpdeskmail', 'requestsmail'); foreach my $type (@mailings) { $otheremails{$type} = ''; } - $bccemails{'helpdeskmail'} = ''; if (ref($settings) eq 'HASH') { foreach my $item (@contacts) { if (exists($settings->{$item})) { @@ -1981,9 +1787,6 @@ sub print_contacts { } } $otheremails{$type} = $settings->{$type}{'others'}; - if ($type eq 'helpdeskmail') { - $bccemails{$type} = $settings->{$type}{'bcc'}; - } } } elsif ($type eq 'lonstatusmail') { $checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" '; @@ -2027,79 +1830,13 @@ sub print_contacts { } $datatable .= '
'.&mt('Others').':  '. ''; - if ($type eq 'helpdeskmail') { - $datatable .= '
'.&mt('Bcc:').(' 'x6). - ''; - } - $datatable .= ''."\n"; + 'value="'.$otheremails{$type}.'" />'. + ''."\n"; } $$rowtotal += $rownum; 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') { - $checkedoff{$item} = ' checked="checked" '; - $checkedon{$item} = ' '; - } - } - if (ref($settings) eq 'HASH') { - foreach my $item (@{$toggles}) { - if ($settings->{$item} eq '1') { - $checkedon{$item} = ' checked="checked" '; - $checkedoff{$item} = ' '; - } elsif ($settings->{$item} eq '0') { - $checkedoff{$item} = ' checked="checked" '; - $checkedon{$item} = ' '; - } - } - } - foreach my $item (@{$toggles}) { - $css_class = $itemcount%2?' class="LC_odd_row"':''; - $datatable .= - ''.$choices->{$item}. - ''. - ''. - ' '. - ''. - ''; - $itemcount ++; - } - return ($datatable,$itemcount); -} - -sub print_coursedefaults { - my ($dom,$settings,$rowtotal) = @_; - my ($css_class,$datatable); - my $itemcount = 1; - my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles); - %choices = - &Apache::lonlocal::texthash ( - canuse_pdfforms => 'Course/Community users can create/upload PDF forms', - ); - %defaultchecked = ('canuse_pdfforms' => 'off'); - @toggles = ('canuse_pdfforms',); - ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, - \%choices,$itemcount); - $$rowtotal += $itemcount; - return $datatable; -} - sub contact_titles { my %titles = &Apache::lonlocal::texthash ( 'supportemail' => 'Support E-mail address', @@ -2135,7 +1872,7 @@ sub courserequest_titles { unofficial => 'Unofficial', community => 'Communities', norequest => 'Not allowed', - approval => 'Approval by Dom. Coord.', + approve => 'Approval by Dom. Coord.', validate => 'With validation', autolimit => 'Numerical limit', unlimited => '(blank for unlimited)', @@ -2145,7 +1882,7 @@ sub courserequest_titles { sub courserequest_conditions { my %conditions = &Apache::lonlocal::texthash ( - approval => '(Processing of request subject to approval by Domain Coordinator).', + approve => '(Processing of request subject to approval by Domain Coordinator).', validate => '(Processing of request subject to instittutional validation).', ); return %conditions; @@ -2641,7 +2378,7 @@ sub print_scantronformat { ''; if ($scantronurl) { $datatable .= ''. - &mt('Default bubblesheet format file').''; + &mt('Default scantron format file').''; } else { $datatable = &mt('File unavailable for display'); } @@ -2668,7 +2405,7 @@ sub print_scantronformat { } elsif ($scantronurl) { $datatable .= ''. ''. - &mt('Custom bubblesheet format file').''. ' '. @@ -2697,7 +2434,7 @@ sub legacy_scantronformat { &publishlogo($r,'copy',$legacyfile,$dom,$confname,'scantron', '','',$newfile); if ($result ne 'ok') { - $error = &mt("An error occurred publishing the [_1] bubblesheet format file in RES space. Error was: [_2].",$newfile,$result); + $error = &mt("An error occurred publishing the [_1] scantron format file in RES space. Error was: [_2].",$newfile,$result); } } return ($url,$error); @@ -2711,11 +2448,6 @@ sub print_coursecategories { my $toggle_cats_dom = ' checked="checked" '; my $can_cat_crs = ' '; my $can_cat_dom = ' checked="checked" '; - my $toggle_catscomm_comm = ' '; - my $toggle_catscomm_dom = ' checked="checked" '; - my $can_catcomm_comm = ' '; - my $can_catcomm_dom = ' checked="checked" '; - if (ref($settings) eq 'HASH') { if ($settings->{'togglecats'} eq 'crs') { $toggle_cats_crs = $toggle_cats_dom; @@ -2725,25 +2457,14 @@ sub print_coursecategories { $can_cat_crs = $can_cat_dom; $can_cat_dom = ' '; } - if ($settings->{'togglecatscomm'} eq 'comm') { - $toggle_catscomm_comm = $toggle_catscomm_dom; - $toggle_catscomm_dom = ' '; - } - if ($settings->{'categorizecomm'} eq 'comm') { - $can_catcomm_comm = $can_catcomm_dom; - $can_catcomm_dom = ' '; - } } my %title = &Apache::lonlocal::texthash ( - togglecats => 'Show/Hide a course in catalog', - togglecatscomm => 'Show/Hide a community in catalog', - categorize => 'Assign a category to a course', - categorizecomm => 'Assign a category to a community', + togglecats => 'Show/Hide a course in the catalog', + categorize => 'Assign a category to a course', ); my %level = &Apache::lonlocal::texthash ( - dom => 'Set in Domain', - crs => 'Set in Course', - comm => 'Set in Community', + dom => 'Set in "Modify Course" (Domain)', + crs => 'Set in "Modify Parameters" (Course)', ); $datatable = ''. ''.$title{'togglecats'}.''. @@ -2759,22 +2480,8 @@ sub print_coursecategories { $can_cat_dom.' value="dom" />'.$level{'dom'}.' '. ''. - ''. - ''.$title{'togglecatscomm'}.''. - ' '. - ''. - ''. - ''.$title{'categorizecomm'}.''. - ''. - ' '. - ''. ''; - $$rowtotal += 4; + $$rowtotal += 2; } else { my $css_class; my $itemcount = 1; @@ -2796,15 +2503,7 @@ sub print_coursecategories { if (ref($cats[0]) eq 'ARRAY') { my $numtop = @{$cats[0]}; my $maxnum = $numtop; - my %default_names = ( - instcode => &mt('Official courses'), - communities => &mt('Communities'), - ); - - if ((!grep(/^instcode$/,@{$cats[0]})) || - ($cathash->{'instcode::0'} eq '') || - (!grep(/^communities$/,@{$cats[0]})) || - ($cathash->{'communities::0'} eq '')) { + if ((!grep(/^instcode$/,@{$cats[0]})) || ($cathash->{'instcode::0'} eq '')) { $maxnum ++; } my $lastidx; @@ -2825,33 +2524,14 @@ sub print_coursecategories { $datatable .= ''; } $datatable .= ''; - if ($parent eq 'instcode' || $parent eq 'communities') { - $datatable .= '' - .$default_names{$parent}.''; - if ($parent eq 'instcode') { - $datatable .= '
(' - .&mt('with institutional codes') - .')'; - } else { - $datatable .= '
'; - } - $datatable .= '' - .''; - if ($parent eq 'instcode') { - $datatable .= ' '; - } else { - $datatable .= '
' - .''; - } - $datatable .= ''; - if ($parent eq 'communities') { - $datatable .= '
'; - } - $datatable .= ''; + if ($parent eq 'instcode') { + $datatable .= ''.&mt('Official courses') + .'
(' + .&mt('with institutional codes').')' + .' ' + .''; } else { $datatable .= $parent .' 
' + .&mt('Official courses').''.'
(' + .&mt('with institutional codes').')' + .' ' + .''; } } } else { @@ -2969,7 +2642,7 @@ sub print_serverstatuses { sub serverstatus_pages { return ('userstatus','lonstatus','loncron','server-status','codeversions', 'clusterstatus','metadata_keywords','metadata_harvest', - 'takeoffline','takeonline','showenv','toggledebug'); + 'takeoffline','takeonline','showenv'); } sub coursecategories_javascript { @@ -2994,12 +2667,8 @@ 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'); $output = <<"ENDSCRIPT"; ENDSCRIPT @@ -3078,40 +2733,25 @@ ENDSCRIPT sub initialize_categories { my ($itemcount) = @_; - my ($datatable,$css_class,$chgstr); - my %default_names = ( - instcode => 'Official courses (with institutional codes)', - communities => 'Communities', - ); - my $select0 = ' selected="selected"'; - my $select1 = ''; - foreach my $default ('instcode','communities') { - $css_class = $itemcount%2?' class="LC_odd_row"':''; - $chgstr = ' onchange="javascript:reorderCats(this.form,'."'',$default"."_pos','0'".');"'; - if ($default eq 'communities') { - $select1 = $select0; - $select0 = ''; - } - $datatable .= '' - .' ' - .$default_names{$default} - .'' - .' '; } } + $rem = @{$types}%($numinrow); } my $colsleft = $numinrow - $rem; - if (($rem == 0) && (@{$types} > 0)) { - $output .= ''; - } if ($colsleft > 1) { $output .= ''; } else { @@ -3421,14 +3058,6 @@ sub modify_login { newuser => 'Link for visitors to create a user account', loginheader => 'Log-in box header'); my @offon = ('off','on'); - my %curr_loginvia; - if (ref($domconfig{login}) eq 'HASH') { - if (ref($domconfig{login}{loginvia}) eq 'HASH') { - foreach my $lonhost (keys(%{$domconfig{login}{loginvia}})) { - $curr_loginvia{$lonhost} = $domconfig{login}{loginvia}{$lonhost}; - } - } - } my %loginhash; ($errors,%colchanges) = &modify_colors($r,$dom,$confname,['login'], \%domconfig,\%loginhash); @@ -3441,93 +3070,6 @@ sub modify_login { $colchgtext = &display_colorchgs($dom,\%colchanges,['login'], \%loginhash); } - - my %servers = &dom_servers($dom); - my @loginvia_attribs = ('serverpath','custompath','exempt'); - if (keys(%servers) > 1) { - foreach my $lonhost (keys(%servers)) { - next if ($env{'form.'.$lonhost.'_server'} eq $lonhost); - if (ref($curr_loginvia{$lonhost}) eq 'HASH') { - if ($env{'form.'.$lonhost.'_server'} eq $curr_loginvia{$lonhost}{'server'}) { - $loginhash{login}{loginvia}{$lonhost}{'server'} = $curr_loginvia{$lonhost}{'server'}; - } elsif ($curr_loginvia{$lonhost}{'server'} ne '') { - if (defined($servers{$env{'form.'.$lonhost.'_server'}})) { - $loginhash{login}{loginvia}{$lonhost}{'server'} = $env{'form.'.$lonhost.'_server'}; - $changes{'loginvia'}{$lonhost} = 1; - } else { - $loginhash{login}{loginvia}{$lonhost}{'server'} = ''; - $changes{'loginvia'}{$lonhost} = 1; - } - } else { - if (defined($servers{$env{'form.'.$lonhost.'_server'}})) { - $loginhash{login}{loginvia}{$lonhost}{'server'} = $env{'form.'.$lonhost.'_server'}; - $changes{'loginvia'}{$lonhost} = 1; - } - } - if ($loginhash{login}{loginvia}{$lonhost}{'server'} eq '') { - foreach my $item (@loginvia_attribs) { - $loginhash{login}{loginvia}{$lonhost}{$item} = ''; - } - } else { - foreach my $item (@loginvia_attribs) { - my $new = $env{'form.'.$lonhost.'_'.$item}; - if (($item eq 'serverpath') && ($new eq 'custom')) { - $env{'form.'.$lonhost.'_custompath'} =~ s/\s+//g; - if ($env{'form.'.$lonhost.'_custompath'} eq '') { - $new = '/'; - } - } - if (($item eq 'custompath') && - ($env{'form.'.$lonhost.'_serverpath'} ne 'custom')) { - $new = ''; - } - if ($new ne $curr_loginvia{$lonhost}{$item}) { - $changes{'loginvia'}{$lonhost} = 1; - } - if ($item eq 'exempt') { - $new =~ s/^\s+//; - $new =~ s/\s+$//; - my @poss_ips = split(/\s*[,:]\s*/,$new); - my @okips; - foreach my $ip (@poss_ips) { - if ($ip =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { - if (($1 <= 255) && ($2 <= 255) && ($3 <= 255) && ($4 <= 255)) { - push(@okips,$ip); - } - } - } - if (@okips > 0) { - $new = join(',',@okips); - } else { - $new = ''; - } - } - - $loginhash{login}{loginvia}{$lonhost}{$item} = $new; - } - } - } else { - if (defined($servers{$env{'form.'.$lonhost.'_server'}})) { - $loginhash{login}{loginvia}{$lonhost}{'server'} = $env{'form.'.$lonhost.'_server'}; - $changes{'loginvia'}{$lonhost} = 1; - foreach my $item (@loginvia_attribs) { - my $new = $env{'form.'.$lonhost.'_'.$item}; - if (($item eq 'serverpath') && ($new eq 'custom')) { - if ($env{'form.'.$lonhost.'_custompath'} eq '') { - $new = '/'; - } - } - if (($item eq 'custompath') && - ($env{'form.'.$lonhost.'_serverpath'} ne 'custom')) { - $new = ''; - } - $loginhash{login}{loginvia}{$lonhost}{$item} = $new; - } - } - } - } - } - my $putresult = &Apache::lonnet::put_dom('configuration',\%loginhash, $dom); if ($putresult eq 'ok') { @@ -3574,35 +3116,6 @@ sub modify_login { foreach my $item (sort(keys(%changes))) { if ($item eq 'loginheader') { $resulttext .= '
  • '.&mt("$title{$item} set to $env{'form.loginheader'}").'
  • '; - } elsif ($item eq 'loginvia') { - if (ref($changes{$item}) eq 'HASH') { - $resulttext .= '
  • '.&mt('Log-in page availability:').'
      '; - foreach my $lonhost (sort(keys(%{$changes{$item}}))) { - if (defined($servers{$loginhash{login}{loginvia}{$lonhost}{'server'}})) { - if (ref($loginhash{login}{loginvia}{$lonhost}) eq 'HASH') { - my $protocol = $Apache::lonnet::protocol{$env{'form.'.$lonhost.'_server'}}; - $protocol = 'http' if ($protocol ne 'https'); - my $target = $protocol.'://'.$servers{$env{'form.'.$lonhost.'_server'}}; - - if ($loginhash{login}{loginvia}{$lonhost}{'serverpath'} eq 'custom') { - $target .= $loginhash{login}{loginvia}{$lonhost}{'custompath'}; - } else { - $target .= $loginhash{login}{loginvia}{$lonhost}{'serverpath'}; - } - $resulttext .= '
    • '.&mt('Server: [_1] log-in page redirects to [_2].',$servers{$lonhost},''.$target.''); - if ($loginhash{login}{loginvia}{$lonhost}{'exempt'} ne '') { - $resulttext .= ' '.&mt('No redirection for clients from following IPs:').' '.$loginhash{login}{loginvia}{$lonhost}{'exempt'}; - } - $resulttext .= '
    • '; - } else { - $resulttext .= '
    • '.&mt('Server: [_1] has standard log-in page.',$lonhost).'
    • '; - } - } else { - $resulttext .= '
    • '.&mt('Server: [_1] has standard log-in page.',$servers{$lonhost}).'
    • '; - } - } - $resulttext .= '
  • '; - } } else { $resulttext .= '
  • '.&mt("$title{$item} set to $offon[$env{'form.'.$item}]").'
  • '; } @@ -3630,6 +3143,7 @@ sub color_font_choices { links => "Link colors", images => "Images", font => "Font color", + fontmenu => "Font Menu", pgbg => "Page", tabbg => "Header", sidebg => "Border", @@ -3696,6 +3210,7 @@ sub modify_colors { @bgs = ('pgbg','tabbg','sidebg'); } $confhash->{$role}{'font'} = $env{'form.'.$role.'_font'}; + $confhash->{$role}{'fontmenu'} = $env{'form.'.$role.'_fontmenu'}; foreach my $item (@bgs,@links,@logintext) { $confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; } @@ -3809,6 +3324,15 @@ sub modify_colors { $changes{$role}{'font'} = 1; } } + if ($domconfig->{$role}{'fontmenu'} ne '') { + if ($confhash->{$role}{'fontmenu'} ne $domconfig->{$role}{'fontmenu'}) { + $changes{$role}{'fontmenu'} = 1; + } + } else { + if ($confhash->{$role}{'fontmenu'}) { + $changes{$role}{'fontmenu'} = 1; + } + } foreach my $item (@bgs) { if ($domconfig->{$role}{$item} ne '') { if ($confhash->{$role}{$item} ne $domconfig->{$role}{$item}) { @@ -4249,7 +3773,7 @@ sub modify_quotas { } if ($context eq 'requestcourses') { @usertools = ('official','unofficial','community'); - @options =('norequest','approval','validate','autolimit'); + @options =('norequest','approve','autolimit','validate'); %validations = &Apache::lonnet::auto_courserequest_checks($dom); %titles = &courserequest_titles(); $toolregexp = join('|',@usertools); @@ -4304,12 +3828,7 @@ sub modify_quotas { } foreach my $item (@usertools) { foreach my $type (@{$types},'default','_LC_adv') { - my $unset; if ($context eq 'requestcourses') { - $unset = '0'; - if ($type eq '_LC_adv') { - $unset = ''; - } if ($confhash{$item}{$type} eq 'autolimit') { $confhash{$item}{$type} .= '='; unless ($limithash{$item}{$type} =~ /\D/) { @@ -4330,7 +3849,7 @@ sub modify_quotas { } } else { if ($context eq 'requestcourses') { - if ($confhash{$item}{$type} ne $unset) { + if ($confhash{$item}{$type} ne 'norequest') { $changes{$item}{$type} = 1; } } else { @@ -4341,7 +3860,7 @@ sub modify_quotas { } } else { if ($context eq 'requestcourses') { - if ($confhash{$item}{$type} ne $unset) { + if ($confhash{$item}{$type} eq 'norequest') { $changes{$item}{$type} = 1; } } else { @@ -4433,8 +3952,8 @@ sub modify_quotas { $env{'user.domain'}, $item,'reload',$context); if ($context eq 'requestcourses') { - if ($env{'environment.canrequest.'.$item} ne $newacc) { - $newenv{'environment.canrequest.'.$item} = $newacc; + if ($env{'environment.crsrequest.'.$item} ne $newacc) { + $newenv{'environment.crsrequest.'.$item} = $newacc; } } else { if ($env{'environment.availabletools.'.$item} ne $newacc) { @@ -4467,15 +3986,7 @@ sub modify_quotas { $resulttext .= '
  • '.&mt('Set to be available to [_1]',$typetitle).'
  • '; } } else { - if ($type eq '_LC_adv') { - if ($confhash{$item}{$type} eq '0') { - $resulttext .= '
  • '.&mt('Set to be unavailable to [_1]',$typetitle).'
  • '; - } else { - $resulttext .= '
  • '.&mt('No override set for [_1]',$typetitle).'
  • '; - } - } else { - $resulttext .= '
  • '.&mt('Set to be unavailable to [_1]',$typetitle).'
  • '; - } + $resulttext .= '
  • '.&mt('Set to be unavailable to [_1]',$typetitle).'
  • '; } } } @@ -4524,8 +4035,7 @@ sub modify_autoenroll { } my $autorun = &Apache::lonnet::auto_run(undef,$dom), my %title = ( run => 'Auto-enrollment active', - sender => 'Sender for notification messages', - coowners => 'Automatic assignment of co-ownership to instructors of record (institutional data)'); + sender => 'Sender for notification messages'); my @offon = ('off','on'); my $sender_uname = $env{'form.sender_uname'}; my $sender_domain = $env{'form.sender_domain'}; @@ -4534,12 +4044,11 @@ sub modify_autoenroll { } elsif ($sender_uname eq '') { $sender_domain = ''; } - my $coowners = $env{'form.autoassign_coowners'}; my %autoenrollhash = ( autoenroll => { run => $env{'form.autoenroll_run'}, sender_uname => $sender_uname, sender_domain => $sender_domain, - 'co-owners' => $coowners, + } ); my $putresult = &Apache::lonnet::put_dom('configuration',\%autoenrollhash, @@ -4560,13 +4069,6 @@ sub modify_autoenroll { if ($currautoenroll{'sender_domain'} ne $sender_domain) { $changes{'sender'} = 1; } - if ($currautoenroll{'co-owners'} ne '') { - if ($currautoenroll{'co-owners'} ne $coowners) { - $changes{'coowners'} = 1; - } - } elsif ($coowners) { - $changes{'coowners'} = 1; - } if (keys(%changes) > 0) { $resulttext = &mt('Changes made:').''; } else { $resulttext = &mt('No changes made to auto-enrollment settings'); @@ -4614,43 +4112,21 @@ sub modify_autoupdate { lastname => 'Last Name', firstname => 'First Name', middlename => 'Middle Name', - generation => 'Generation', + gen => 'Generation', ); - $othertitle = &mt('All users'); + my $othertitle = &mt('All users'); if (keys(%{$usertypes}) > 0) { $othertitle = &mt('Other users'); } foreach my $key (keys(%env)) { if ($key =~ /^form\.updateable_(.+)_([^_]+)$/) { - my ($usertype,$item) = ($1,$2); - if (grep(/^\Q$item\E$/,keys(%fieldtitles))) { - if ($usertype eq 'default') { - push(@{$fields{$1}},$2); - } elsif (ref($types) eq 'ARRAY') { - if (grep(/^\Q$usertype\E$/,@{$types})) { - push(@{$fields{$1}},$2); - } - } - } - } - } - my @lockablenames = &Apache::loncommon::get_env_multiple('form.lockablenames'); - @lockablenames = sort(@lockablenames); - if (ref($currautoupdate{'lockablenames'}) eq 'ARRAY') { - my @changed = &Apache::loncommon::compare_arrays($currautoupdate{'lockablenames'},\@lockablenames); - if (@changed) { - $changes{'lockablenames'} = 1; - } - } else { - if (@lockablenames) { - $changes{'lockablenames'} = 1; + push(@{$fields{$1}},$2); } } my %updatehash = ( autoupdate => { run => $env{'form.autoupdate_run'}, classlists => $env{'form.classlists'}, fields => {%fields}, - lockablenames => \@lockablenames, } ); foreach my $key (keys(%currautoupdate)) { @@ -4668,11 +4144,9 @@ sub modify_autoupdate { foreach my $type (@{$currautoupdate{$key}{$item}}) { if (!exists($fields{$item})) { $change = 1; - last; } elsif (ref($fields{$item}) eq 'ARRAY') { if (!grep(/^\Q$type\E$/,@{$fields{$item}})) { $change = 1; - last; } } } @@ -4682,41 +4156,12 @@ sub modify_autoupdate { } } } - } elsif ($key eq 'lockablenames') { - if (ref($currautoupdate{$key}) eq 'ARRAY') { - my @changed = &Apache::loncommon::compare_arrays($currautoupdate{'lockablenames'},\@lockablenames); - if (@changed) { - $changes{'lockablenames'} = 1; - } - } else { - if (@lockablenames) { - $changes{'lockablenames'} = 1; - } - } - } - } - unless (grep(/^\Qlockablenames\E$/,keys(%currautoupdate))) { - if (@lockablenames) { - $changes{'lockablenames'} = 1; } } foreach my $item (@{$types},'default') { if (defined($fields{$item})) { if (ref($currautoupdate{'fields'}) eq 'HASH') { - if (ref($currautoupdate{'fields'}{$item}) eq 'ARRAY') { - my $change = 0; - if (ref($fields{$item}) eq 'ARRAY') { - foreach my $type (@{$fields{$item}}) { - if (!grep(/^\Q$type\E$/,@{$currautoupdate{'fields'}{$item}})) { - $change = 1; - last; - } - } - } - if ($change) { - push(@{$changes{'fields'}},$item); - } - } else { + if (!exists($currautoupdate{'fields'}{$item})) { push(@{$changes{'fields'}},$item); } } else { @@ -4730,17 +4175,7 @@ sub modify_autoupdate { if (keys(%changes) > 0) { $resulttext = &mt('Changes made:').''; @@ -5625,7 +4968,7 @@ sub modify_usermodification { } my @modifiable; if ($context eq 'selfcreate') { - $resulttext .= '
  • '.&mt('Self-creation of account by users with status: [_1]',$rolename).' - '.&mt('modifiable fields (if institutional data blank): '); + $resulttext .= '
  • '.&mt('Self-creation of account by users with status: [_1] ',$rolename).' - '.&mt('modifiable fields (if institutional data blank): '); } else { $resulttext .= '
  • '.&mt('Target user with [_1] role',$rolename).' - '.&mt('modifiable fields: '); } @@ -5769,7 +5112,7 @@ sub modify_scantron { my $error; if ($configuserok eq 'ok') { if ($switchserver) { - $error = &mt("Upload of bubblesheet format file is not permitted to this server: [_1]",$switchserver); + $error = &mt("Upload of scantron format file is not permitted to this server: [_1]",$switchserver); } else { if ($author_ok eq 'ok') { my ($result,$scantronurl) = @@ -5809,25 +5152,25 @@ sub modify_scantron { if (ref($confhash{'scantron'}) eq 'HASH') { $resulttext = &mt('Changes made:').'
      '; if ($confhash{'scantron'}{'scantronformat'} eq '') { - $resulttext .= '
    • '.&mt('[_1] bubblesheet format file removed; [_2] file will be used for courses in this domain.',$custom,$default).'
    • '; + $resulttext .= '
    • '.&mt('[_1] scantron format file removed; [_2] file will be used for courses in this domain.',$custom,$default).'
    • '; } else { - $resulttext .= '
    • '.&mt('Custom bubblesheet format file ([_1]) uploaded for use with courses in this domain.',$custom).'
    • '; + $resulttext .= '
    • '.&mt('Custom scantron format file ([_1]) uploaded for use with courses in this domain.',$custom).'
    • '; } $resulttext .= '
    '; } else { - $resulttext = &mt('Changes made to bubblesheet format file.'); + $resulttext = &mt('Changes made to scantron format file.'); } $resulttext .= ''; &Apache::loncommon::devalidate_domconfig_cache($dom); } else { - $resulttext = &mt('No changes made to bubblesheet format file'); + $resulttext = &mt('No changes made to scantron format file'); } } else { $resulttext = ''. &mt('An error occurred: [_1]',$putresult).''; } } else { - $resulttext = &mt('No changes made to bubblesheet format file'); + $resulttext = &mt('No changes made to scantron format file'); } if ($errors) { $resulttext .= &mt('The following errors occurred: ').'
      '. @@ -5851,33 +5194,18 @@ sub modify_coursecategories { $changes{'categorize'} = 1; $domconfig{'coursecategories'}{'categorize'} = $env{'form.categorize'}; } - if ($domconfig{'coursecategories'}{'togglecatscomm'} ne $env{'form.togglecatscomm'}) { - $changes{'togglecatscomm'} = 1; - $domconfig{'coursecategories'}{'togglecatscomm'} = $env{'form.togglecatscomm'}; - } - if ($domconfig{'coursecategories'}{'categorizecomm'} ne $env{'form.categorizecomm'}) { - $changes{'categorizecomm'} = 1; - $domconfig{'coursecategories'}{'categorizecomm'} = $env{'form.categorizecomm'}; - } } else { $changes{'togglecats'} = 1; $changes{'categorize'} = 1; - $changes{'togglecatscomm'} = 1; - $changes{'categorizecomm'} = 1; $domconfig{'coursecategories'} = { togglecats => $env{'form.togglecats'}, categorize => $env{'form.categorize'}, - togglecatscomm => $env{'form.togglecatscomm'}, - categorizecomm => $env{'form.categorizecomm'}, }; } if (ref($cathash) eq 'HASH') { if (($domconfig{'coursecategories'}{'cats'}{'instcode::0'} ne '') && ($env{'form.instcode'} == 0)) { push (@deletecategory,'instcode::0'); } - if (($domconfig{'coursecategories'}{'cats'}{'communities::0'} ne '') && ($env{'form.communities'} == 0)) { - push(@deletecategory,'communities::0'); - } } my (@predelcats,@predeltrails,%predelallitems,%sort_by_deltrail); if (ref($cathash) eq 'HASH') { @@ -5927,26 +5255,10 @@ sub modify_coursecategories { $adds{$newitem} = 1; } } - if ($env{'form.communities'} eq '1') { - if (ref($cathash) eq 'HASH') { - my $newitem = 'communities::0'; - if ($cathash->{$newitem} eq '') { - $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.communities_pos'}; - $adds{$newitem} = 1; - } - } else { - my $newitem = 'communities::0'; - $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.communities_pos'}; - $adds{$newitem} = 1; - } - } if ($env{'form.addcategory_name'} ne '') { - if (($env{'form.addcategory_name'} ne 'instcode') && - ($env{'form.addcategory_name'} ne 'communities')) { - my $newitem = &escape($env{'form.addcategory_name'}).'::0'; - $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.addcategory_pos'}; - $adds{$newitem} = 1; - } + my $newitem = &escape($env{'form.addcategory_name'}).'::0'; + $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.addcategory_pos'}; + $adds{$newitem} = 1; } my $putresult; if ((keys(%deletions) > 0) || (keys(%reorderings) > 0) || (keys(%adds) > 0)) { @@ -5983,15 +5295,12 @@ sub modify_coursecategories { $putresult = &Apache::lonnet::put_dom('configuration',\%domconfig,$dom); if ($putresult eq 'ok') { my %title = ( - togglecats => 'Show/Hide a course in catalog', - categorize => 'Assign a category to a course', - togglecatscomm => 'Show/Hide a community in catalog', - categorizecomm => 'Assign a category to a community', + togglecats => 'Show/Hide a course in the catalog', + categorize => 'Category assigned to course', ); my %level = ( - dom => 'set in Domain ("Modify Course/Community")', - crs => 'set in Course ("Course Configuration")', - comm => 'set in Community ("Community Configuration")', + dom => 'set from "Modify Course" (Domain)', + crs => 'set from "Parameters" (Course)', ); $resulttext = &mt('Changes made:').'
        '; if ($changes{'togglecats'}) { @@ -6000,12 +5309,6 @@ sub modify_coursecategories { if ($changes{'categorize'}) { $resulttext .= '
      • '.&mt("$title{'categorize'} $level{$env{'form.categorize'}}").'
      • '; } - if ($changes{'togglecatscomm'}) { - $resulttext .= '
      • '.&mt("$title{'togglecatscomm'} $level{$env{'form.togglecatscomm'}}").'
      • '; - } - if ($changes{'categorizecomm'}) { - $resulttext .= '
      • '.&mt("$title{'categorizecomm'} $level{$env{'form.categorizecomm'}}").'
      • '; - } if ((keys(%deletions) > 0) || (keys(%reorderings) > 0) || (keys(%adds) > 0)) { my $cathash; if (ref($domconfig{'coursecategories'}) eq 'HASH') { @@ -6055,7 +5358,7 @@ sub modify_coursecategories { &mt('An error occurred: [_1]',$putresult).''; } } else { - $resulttext = &mt('No changes made to course and community categories'); + $resulttext = &mt('No changes made to course categories'); } return $resulttext; } @@ -6112,6 +5415,7 @@ sub modify_serverstatuses { my %serverstatushash = ( serverstatuses => \%newserverstatus, ); + my %changes; foreach my $type (@pages) { foreach my $setting ('namedusers','machines') { my (@current,@new); @@ -6184,72 +5488,6 @@ sub modify_serverstatuses { return $resulttext; } -sub modify_coursedefaults { - my ($dom,%domconfig) = @_; - my ($resulttext,$errors,%changes,%defaultshash); - my %defaultchecked = ('canuse_pdfforms' => 'off'); - my @offon = ('off','on'); - my @toggles = ('canuse_pdfforms'); - - $defaultshash{'coursedefaults'} = {}; - - if (ref($domconfig{'coursedefaults'}) ne 'HASH') { - if ($domconfig{'coursedefaults'} eq '') { - $domconfig{'coursedefaults'} = {}; - } - } - - if (ref($domconfig{'coursedefaults'}) eq 'HASH') { - foreach my $item (@toggles) { - if ($defaultchecked{$item} eq 'on') { - if (($domconfig{'coursedefaults'}{$item} eq '') && - ($env{'form.'.$item} eq '0')) { - $changes{$item} = 1; - } elsif ($domconfig{'coursdefaults'}{$item} ne $env{'form.'.$item}) { - $changes{$item} = 1; - } - } elsif ($defaultchecked{$item} eq 'off') { - if (($domconfig{'coursedefaults'}{$item} eq '') && - ($env{'form.'.$item} eq '1')) { - $changes{$item} = 1; - } elsif ($domconfig{'coursedefaults'}{$item} ne $env{'form.'.$item}) { - $changes{$item} = 1; - } - } - $defaultshash{'coursedefaults'}{$item} = $env{'form.'.$item}; - } - } - my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash, - $dom); - if ($putresult eq 'ok') { - if (keys(%changes) > 0) { - if ($changes{'canuse_pdfforms'}) { - my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); - $domdefaults{'canuse_pdfforms'}=$defaultshash{'coursedefaults'}{'canuse_pdfforms'}; - my $cachetime = 24*60*60; - &Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); - } - $resulttext = &mt('Changes made:').'
          '; - foreach my $item (sort(keys(%changes))) { - if ($item eq 'canuse_pdfforms') { - if ($env{'form.'.$item} eq '1') { - $resulttext .= '
        • '.&mt("Course/Community users can create/upload PDF forms set to 'on'").'
        • '; - } else { - $resulttext .= '
        • '.&mt('Course/Community users can create/upload PDF forms set to "off"').'
        • '; - } - } - } - $resulttext .= '
        '; - } else { - $resulttext = &mt('No changes made to course defaults'); - } - } else { - $resulttext = ''. - &mt('An error occurred: [_1]',$putresult).''; - } - return $resulttext; -} - sub recurse_check { my ($chkcats,$categories,$depth,$name) = @_; if (ref($chkcats->[$depth]{$name}) eq 'ARRAY') { @@ -6290,107 +5528,4 @@ sub recurse_cat_deletes { return; } -sub dom_servers { - my ($dom) = @_; - my (%uniqservers,%servers); - my $primaryserver = &Apache::lonnet::hostname(&Apache::lonnet::domain($dom,'primary')); - my @machinedoms = &Apache::lonnet::machine_domains($primaryserver); - foreach my $mdom (@machinedoms) { - my %currservers = %servers; - my %server = &Apache::lonnet::get_servers($mdom); - %servers = (%currservers,%server); - } - my %by_hostname; - foreach my $id (keys(%servers)) { - push(@{$by_hostname{$servers{$id}}},$id); - } - foreach my $hostname (sort(keys(%by_hostname))) { - if (@{$by_hostname{$hostname}} > 1) { - my $match = 0; - foreach my $id (@{$by_hostname{$hostname}}) { - if (&Apache::lonnet::host_domain($id) eq $dom) { - $uniqservers{$id} = $hostname; - $match = 1; - } - } - unless ($match) { - $uniqservers{$by_hostname{$hostname}[0]} = $hostname; - } - } else { - $uniqservers{$by_hostname{$hostname}[0]} = $hostname; - } - } - return %uniqservers; -} - -sub get_active_dcs { - my ($dom) = @_; - my %dompersonnel = &Apache::lonnet::get_domain_roles($dom,['dc']); - my %domcoords; - my $numdcs = 0; - my $now = time; - foreach my $server (keys(%dompersonnel)) { - foreach my $user (sort(keys(%{$dompersonnel{$server}}))) { - my ($trole,$uname,$udom,$runame,$rudom,$rsec) = split(/:/,$user); - my ($end,$start) = split(':',$dompersonnel{$server}{$user}); - if (($end eq '') || ($end == 0) || ($end > $now)) { - if ($start <= $now) { - $domcoords{$uname.':'.$udom} = $dompersonnel{$server}{$user}; - } - } - } - } - return %domcoords; -} - -sub active_dc_picker { - my ($dom,$curr_dc) = @_; - my %domcoords = &get_active_dcs($dom); - my @dcs = sort(keys(%domcoords)); - my $numdcs = scalar(@dcs); - my $datatable; - my $numinrow = 2; - if ($numdcs > 1) { - $datatable = ''; - for (my $i=0; $i<@dcs; $i++) { - my $rem = $i%($numinrow); - if ($rem == 0) { - if ($i > 0) { - $datatable .= ''; - } - $datatable .= ''; - } - my $check = ' '; - if ($curr_dc eq '') { - if (!$i) { - $check = ' checked="checked" '; - } - } elsif ($dcs[$i] eq $curr_dc) { - $check = ' checked="checked" '; - } - if ($i == @dcs - 1) { - my $colsleft = $numinrow - $rem; - if ($colsleft > 1) { - $datatable .= ''; - } - $datatable .= '
        '; - } else { - $datatable .= ''; - } - } else { - $datatable .= ''; - } - my ($dcname,$dcdom) = split(':',$dcs[$i]); - $datatable .= '
        '; - } elsif (@dcs) { - $datatable .= ''; - } - return ($numdcs,$datatable); -} - 1; 500 Internal Server Error

        Internal Server Error

        The server encountered an internal error or misconfiguration and was unable to complete your request.

        Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

        More information about this error may be available in the server error log.