--- loncom/interface/courseprefs.pm 2024/02/24 20:46:24 1.130 +++ loncom/interface/courseprefs.pm 2025/01/07 16:19:19 1.133 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set configuration settings for a course # -# $Id: courseprefs.pm,v 1.130 2024/02/24 20:46:24 raeburn Exp $ +# $Id: courseprefs.pm,v 1.133 2025/01/07 16:19:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -372,6 +372,12 @@ sub handler { my %values=&Apache::lonnet::dump('environment',$cdom,$cnum); my %linkprot=&Apache::lonnet::dump('lti',$cdom,$cnum,undef,undef,undef,1); + my %domdefs = &Apache::lonnet::get_domain_defaults($cdom); + unless ($phase eq 'process') { + if (ref($domdefs{'linkprotsuggested'}) eq 'HASH') { + $values{'suggested'} = $domdefs{'linkprotsuggested'}; + } + } my %ltienc = &Apache::lonnet::dump('nohist_ltienc',$cdom,$cnum,undef,undef,undef,1); my %ltitools = &Apache::lonnet::dump('ltitools',$cdom,$cnum,undef,undef,undef,1); my %ltitoolsenc = &Apache::lonnet::dump('nohist_toolsenc',$cdom,$cnum,undef,undef,undef,1); @@ -793,9 +799,38 @@ sub print_config_box { '; + if ($action eq 'linkprot') { + if ((ref($settings) eq 'HASH') && (ref($settings->{'suggested'}) eq 'HASH')) { + my $hints; + my $hintcount = 0; + foreach my $key (sort { $a <=> $b } keys(%{$settings->{'suggested'}})) { + if ((ref($settings->{'suggested'}->{$key}) eq 'HASH')) { + if (($settings->{'suggested'}->{$key}-{'name'} ne '') && + ($settings->{'suggested'}->{$key}-{'info'} ne '')) { + my $css_class = $hintcount%2?' class="LC_odd_row"':' class="LC_even_row"'; + $hints .= ''. + ''; + $hintcount ++; + } + } + } + if ($hintcount) { + $output .= ''. + ''. + ''."\n". + ''. + ''. + ''."\n". + $hints; + } + } + } if (exists $item->{'header'}->[0]->{'col1'} || exists $item->{'header'}->[0]->{'col2'}) { - $output .= ' + $output .= ' '; if (($action eq 'courseinfo') || ($action eq 'localization') || @@ -2700,14 +2735,14 @@ sub store_changes { $displayname = &mt('Recipients of '.$text.' questions'); } } elsif ($item eq 'discussion') { - if ($key =~ /^p(lc|ch)\.roles\.denied/) { + if ($key =~ /^p(lc|ch|ac)\.roles\.denied/) { $displayname = &mt("$text (role-based)"); if ($displayval ne '') { my @roles = split(',',$displayval); @roles = map { &Apache::lonnet::plaintext($_); } @roles; $displayval = join(', ',@roles); } - } elsif ($key =~ /^p(lc|ch)\.users\.denied/) { + } elsif ($key =~ /^p(lc|ch|ac)\.users\.denied/) { $displayname = &mt("$text (specific user(s))"); } else { if ($key eq 'allow_discussion_post_editing') { @@ -5263,8 +5298,7 @@ sub update_releasereq { } $modified_courses = []; } - undef($registered_cleanup); - return; + return OK; } sub show_autocoowners {
'. + $settings->{'suggested'}->{$key}->{'name'}.'
'.
+                                      $settings->{'suggested'}->{$key}->{'info'}.
+                                      '
'.&mt('Recommendation(s) for specific launcher application(s)').'
'.&mt('Launcher Application').''.&mt('Recommendation(s)').'
'.&mt($item->{'header'}->[0]->{'col1'}).'