--- loncom/interface/coursecatalog.pm 2019/07/21 14:26:02 1.100 +++ loncom/interface/coursecatalog.pm 2019/07/23 01:30:35 1.101 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler for displaying the course catalog interface # -# $Id: coursecatalog.pm,v 1.100 2019/07/21 14:26:02 raeburn Exp $ +# $Id: coursecatalog.pm,v 1.101 2019/07/23 01:30:35 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -91,24 +91,23 @@ sub handler { $r->print(&Apache::loncommon::end_page()); return OK; } - my %domconfig = - &Apache::lonnet::get_dom('configuration',['coursecategories'],$codedom); + my $crscats = &Apache::lonnet::get_dom_cats($codedom); + my %domdefaults = &Apache::lonnet::get_domain_defaults($codedom); my $knownuser = &user_is_known(); my $canviewall = &canview_all($knownuser,$codedom); my ($cathash,$cattype); - if (ref($domconfig{'coursecategories'}) eq 'HASH') { - $cathash = $domconfig{'coursecategories'}{'cats'}; - if ($knownuser || $canviewall) { - $cattype = $domconfig{'coursecategories'}{'auth'}; - } else { - $cattype = $domconfig{'coursecategories'}{'unauth'}; - } - if ($cattype eq '') { - $cattype = 'std'; - } + if (ref($crscats) eq 'HASH') { + %{$cathash} = %{$crscats}; } else { $cathash = {}; + } + if ($knownuser || $canviewall) { + $cattype = $domdefaults{'catauth'}; + } else { + $cattype = $domdefaults{'catunauth'}; + } + if ($cattype eq '') { $cattype = 'std'; } if ($cattype eq 'none') { @@ -120,7 +119,7 @@ sub handler { if ($knownuser || $canviewall) { $r->print('
'.&mt('No catalog of LON-CAPA courses/communities is provided for: [_1]',$domdesc).'
'); } else { - if ($domconfig{'coursecategories'}{'auth'} eq 'none') { + if ($domdefaults{'catauth'} eq 'none') { $r->print('
'.&mt('No catalog of LON-CAPA courses/communities is provided for: [_1]',$domdesc).'
'); } else { $r->print('
'.&mt('The catalog of LON-CAPA courses/communities provided for: "[_1]" is only available to users who are logged in.',$domdesc).'
'); @@ -130,7 +129,7 @@ sub handler { return OK; } - my $cnum; + my $cnum; if ($cattype eq 'codesrch') { my ($uniquecode,$codemsg,$brtext); if ($env{'form.uniquecode'}) { @@ -251,7 +250,7 @@ sub handler { $toplevelstr =~ s/,$//; $maxdepthstr =~ s/,$//; } - &validate_input($codedom,\@cats,\%maxd,$domconfig{'coursecategories'}); + &validate_input($codedom,\@cats,\%maxd,$cathash); my ($numtitles,@codetitles); if (($env{'form.coursenum'} ne '') && ($knownuser)) { &course_details($r,$codedom,$formname,$domdesc,\@trails,\%allitems,\@codetitles); @@ -393,7 +392,7 @@ ENDJS } sub validate_input { - my ($codedom,$cats,$maxd,$configref) = @_; + my ($codedom,$cats,$maxd,$crscatsref) = @_; my $currcat = ''; my $depth = 0; if ($env{'form.catalog_maxdepth'} ne '') { @@ -519,12 +518,8 @@ sub validate_input { if (exists($env{'form.currcat_0'})) { unless ($env{'form.currcat_0'} =~ /^(instcode|communities|placement)\Q::0\E$/) { if ($env{'form.currcat_0'} =~ /^.+\Q::0\E$/) { - if (ref($configref) eq 'HASH') { - if (ref($configref->{'cats'}) eq 'HASH') { - unless (exists($configref->{'cats'}->{$env{'form.currcat_0'}})) { - delete($env{'form.currcat_0'}); - } - } else { + if (ref($crscatsref) eq 'HASH') { + unless (exists($crscatsref->{$env{'form.currcat_0'}})) { delete($env{'form.currcat_0'}); } } else { @@ -625,11 +620,9 @@ sub validate_input { foreach my $key (keys(%currcats)) { if ($env{'form.'.$key} eq '') { delete($env{'form.'.$key}); - } elsif (ref($configref) eq 'HASH') { - if (ref($configref->{'cats'}) eq 'HASH') { - unless (exists($configref->{'cats'}->{$env{'form.'.$key}})) { - delete($env{'form.'.$key}); - } + } elsif (ref($crscatsref) eq 'HASH') { + unless (exists($crscatsref->{$env{'form.'.$key}})) { + delete($env{'form.'.$key}); } else { delete($env{'form.'.$key}); }