--- loncom/interface/courseprefs.pm 2021/08/04 19:59:10 1.93 +++ loncom/interface/courseprefs.pm 2022/01/16 16:50:40 1.96 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set configuration settings for a course # -# $Id: courseprefs.pm,v 1.93 2021/08/04 19:59:10 raeburn Exp $ +# $Id: courseprefs.pm,v 1.96 2022/01/16 16:50:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -473,7 +473,7 @@ sub handler { help => 'Course_Prefs_Display', ordered => ['default_xml_style','pageseparators', 'disable_receipt_display','texengine', - 'tthoptions','uselcmath','usejsme'], + 'tthoptions','uselcmath','usejsme','inline_chem'], itemtext => { default_xml_style => 'Default XML style file', pageseparators => 'Visibly Separate Items on Pages', @@ -482,6 +482,7 @@ sub handler { tthoptions => 'Default set of options to pass to tth/m when converting TeX', uselcmath => 'Student formula entry uses inline preview, not DragMath pop-up', usejsme => 'Molecule editor uses JSME (HTML5) in place of JME (Java)', + inline_chem => 'Chemical reaction response uses inline preview, not pop-up', }, }, 'grading' => @@ -995,8 +996,8 @@ sub process_changes { } } } - } + foreach my $idx (@items) { my $itemid = $itemids{$idx}; next unless ($itemid); @@ -1163,7 +1164,9 @@ sub process_changes { $autocoowner = $domconf{'autoenroll'}{'co-owners'}; } } - unless ($autocoowner) { + if ($autocoowner) { + $newvalues{'co-owners'} = $values->{'internal.co-owners'}; + } else { my @keepcoowners = &Apache::loncommon::get_env_multiple('form.coowners'); my @pendingcoowners = &Apache::loncommon::get_env_multiple('form.pendingcoowners'); my @invitecoowners = &Apache::loncommon::get_env_multiple('form.invitecoowners'); @@ -1208,6 +1211,8 @@ sub process_changes { if ($pendingcoowners ne '') { @newpending = @pendingcoown; } + } else { + @newcoown = @currcoown; } $newvalues{'pendingco-owners'} = join(',',sort(@newpending)); $newvalues{'co-owners'} = join(',',sort(@newcoown)); @@ -1852,7 +1857,8 @@ sub store_changes { $displayval = &Apache::lonlocal::locallocaltime($displayval); } elsif ($key eq 'categories') { $displayval = $env{'form.categories_display'}; - } elsif (($key eq 'canuse_pdfforms') || ($key eq 'usejsme') || ($key eq 'uselcmath')) { + } elsif (($key eq 'canuse_pdfforms') || ($key eq 'usejsme') || + ($key eq 'uselcmath') || ($key eq 'inline_chem')) { if ($changes->{$item}{$key} eq '1') { $displayval = &mt('Yes'); } elsif ($changes->{$item}{$key} eq '0') { @@ -4076,8 +4082,8 @@ sub print_feedback { } if ($position eq 'top') { my $includeempty = 0; - $datatable .= ''. - &user_table($cdom,$item,\@sections, + $datatable .= ''. + &user_table($cdom,$item,\@sections, $settings->{$item},\%lt,$noedit); } else { $datatable .= &Apache::lonhtmlcommon::textbox($item.'.text', @@ -4300,8 +4306,8 @@ sub print_discussion { ''.&role_checkboxes($cdom,$cnum,$item,$settings,undef,undef,$noedit). '
'; } elsif ($item eq 'plc.users.denied') { - $datatable .= ''. - &user_table($cdom,$item,undef, + $datatable .= ''. + &user_table($cdom,$item,undef, $settings->{$item},\%lt,$noedit); } elsif ($item eq 'pch.roles.denied') { $datatable .= ''. @@ -4671,6 +4677,10 @@ sub print_appearance { text => ''.&mt($itemtext->{'usejsme'}).'', input => 'radio', }, + 'inline_chem' => { + text => ''.&mt($itemtext->{'inline_chem'}).'', + input => 'radio', + }, ); return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance',$noedit); } @@ -5064,7 +5074,7 @@ sub print_menuitems { my %checked; my $on = ' checked="checked"'; foreach my $key (keys(%{$menu{$num}})) { - if (($key eq 'top') || ($key eq 'inline') || ($key eq 'main')) { + if (($key eq 'top') || ($key eq 'inline') || ($key eq 'foot') || ($key eq 'main')) { if ($menu{$num}{$key} eq 'y') { $checked{$key} = $on; } @@ -5081,7 +5091,13 @@ sub print_menuitems { foreach my $category (@order) { if ((ref($categories{$category}) eq 'ARRAY') && (@{$categories{$category}} > 0)) { $datatable .= '
'.$menutitles{$category}.''."\n"; + if ($category eq 'text') { + $datatable .= ''.&mt('Header').'
'; + } foreach my $field (@{$categories{$category}}) { + if ($field eq 'disc') { + $datatable .= '
'.&mt('Footer').'
'; + } $datatable .= '
'; } @@ -5131,8 +5147,8 @@ sub menuitems_abbreviations { sub menuitems_categories { my @order = ('shown','text','links','list','inline'); my %categories = ( - shown => ['top','inline','main'], - text => ['name','role','crs'], + shown => ['top','inline','foot','main'], + text => ['name','role','crs','disc','fdbk'], links => ['pers','logo','menu','comm','roles','help','logout'], list => ['about','prefs','port','wish','anno','rss'], inline => ['cont','grades','chat','people','groups','resv','syll','feeds'], @@ -5143,7 +5159,7 @@ sub menuitems_categories { sub menuitems_titles { return &Apache::lonlocal::texthash ( shown => 'Hierarchy', - text => 'Header text', + text => 'Text', links => 'Header links', list => 'Drop-down list', inline => 'Inline links', @@ -5154,6 +5170,7 @@ sub menuitems_fields { return &Apache::lonlocal::texthash ( top => 'Display header', inline => 'Display inline menu', + foot => 'Display footer', main => 'Access to main menu', pers => 'Personal', logo => 'LON-CAPA', @@ -5165,6 +5182,8 @@ sub menuitems_fields { name => 'Fullname', crs => 'Course Title', role => 'Current Role', + disc => 'Discussion', + fdbk => 'Feedback', about => 'Information', prefs => 'Preferences', port => 'Portfolio', @@ -5206,7 +5225,7 @@ sub menucollections_display { foreach my $num (@current) { my %checked; foreach my $key (keys(%{$menu{$num}})) { - if (($key eq 'top') || ($key eq 'inline') || ($key eq 'main')) { + if (($key eq 'top') || ($key eq 'inline') || ($key eq 'foot') || ($key eq 'main')) { if ($menu{$num}{$key} eq 'y') { $checked{$key} = 1; } @@ -5224,7 +5243,13 @@ sub menucollections_display { if ((ref($categories{$category}) eq 'ARRAY') && (@{$categories{$category}} > 0)) { $output .= '
'. ''.$menutitles{$category}.''."\n"; + if ($category eq 'text') { + $output .= ''.&mt('Header Text').'

'; + } foreach my $field (@{$categories{$category}}) { + if ($field eq 'disc') { + $output .= '
'.&mt('Footer Text').'

'; + } if ($checked{$field}) { $output .= &Apache::lonhtmlcommon::confirm_success($menufields{$field}); } else { @@ -5536,7 +5561,7 @@ sub make_item_rows { $settings->{$item},$disabled); } elsif ($items->{$item}{input} eq 'radio') { my ($unsetdefault,$valueyes,$valueno); - if (($item eq 'usejsme') || ($item eq 'uselcmath')) { + if (($item eq 'usejsme') || ($item eq 'uselcmath') || ($item eq 'inline_chem')) { my %domdefs = &Apache::lonnet::get_domain_defaults($cdom); unless ($domdefs{$item} eq '0') { $unsetdefault = 1;