--- loncom/interface/coursecatalog.pm 2013/12/24 19:15:10 1.76 +++ loncom/interface/coursecatalog.pm 2018/04/29 00:31:25 1.88.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler for displaying the course catalog interface # -# $Id: coursecatalog.pm,v 1.76 2013/12/24 19:15:10 raeburn Exp $ +# $Id: coursecatalog.pm,v 1.88.2.2 2018/04/29 00:31:25 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,6 +38,7 @@ use Apache::lonlocal; use Apache::courseclassifier; use Apache::lonacc; use LONCAPA; +use LONCAPA::lonauthcgi; sub handler { my ($r) = @_; @@ -76,26 +77,153 @@ sub handler { my $domdesc = &Apache::lonnet::domain($codedom,'description'); &Apache::lonhtmlcommon::clear_breadcrumbs(); - if ($env{'form.catalog_maxdepth'} ne '') { - $env{'form.catalog_maxdepth'} =~ s{\D}{}g; - } - my %domconfig = &Apache::lonnet::get_dom('configuration',['coursecategories'],$codedom); - my (@cats,@trails,%allitems,%idx,@jsarray,%subcathash,$cathash); + 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'; + } } else { $cathash = {}; + $cattype = 'std'; } - my $subcats; + if ($cattype eq 'none') { + $r->print(&Apache::loncommon::start_page('Course/Community Catalog')); + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>"/adm/coursecatalog", + text=>"Course/Community Catalog"}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course/Community Catalog')); + if ($knownuser || $canviewall) { + $r->print('