--- loncom/interface/coursecatalog.pm 2019/07/23 01:30:35 1.101
+++ loncom/interface/coursecatalog.pm 2021/06/15 20:52:26 1.105
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler for displaying the course catalog interface
#
-# $Id: coursecatalog.pm,v 1.101 2019/07/23 01:30:35 raeburn Exp $
+# $Id: coursecatalog.pm,v 1.105 2021/06/15 20:52:26 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -59,6 +59,7 @@ sub handler {
my $serverdefdom = &Apache::lonnet::default_login_domain();
my $codedom = $serverdefdom;
+ my $hostname = $r->hostname();
if (($env{'user.domain'} ne '') && ($env{'user.domain'} ne 'public')) {
$codedom = $env{'user.domain'};
@@ -138,7 +139,7 @@ sub handler {
}
my $js = ''."\n";
$r->print(&Apache::loncommon::start_page('Search for a Course/Community',$js));
@@ -191,7 +192,8 @@ sub handler {
if ($courseinfo{$codedom.'_'.$cnum}{'showsyllabus'}) {
my $usehttp = 0;
if (($ENV{'SERVER_PORT'} == 443) && ($courseinfo{$codedom.'_'.$cnum}{'extsyllplain'})) {
- unless (&Apache::lonnet::uses_sts()) {
+ unless ((&Apache::lonnet::uses_sts()) ||
+ (&Apache::lonnet::waf_allssl($hostname))) {
$usehttp = 1;
}
}
@@ -253,7 +255,8 @@ sub handler {
&validate_input($codedom,\@cats,\%maxd,$cathash);
my ($numtitles,@codetitles);
if (($env{'form.coursenum'} ne '') && ($knownuser)) {
- &course_details($r,$codedom,$formname,$domdesc,\@trails,\%allitems,\@codetitles);
+ &course_details($r,$codedom,$formname,$domdesc,$hostname,\@trails,
+ \%allitems,\@codetitles);
} else {
my ($catlinks,$has_subcats,$selitem) = &category_breadcrumbs($codedom,@cats);
my $wasacctext = &get_wasactive_text();
@@ -281,7 +284,7 @@ function setCatDepth(depth) {
}
document.coursecats.catalog_maxdepth.value = depth;
} else {
- document.coursecats.currcat_0.value = '';
+ document.coursecats.currcat_0.value = '';
document.coursecats.catalog_maxdepth.value = '';
}
document.coursecats.submit();
@@ -299,7 +302,7 @@ function setCourseId(caller) {
}
ENDSCRIPT
- $catjs .= &courselink_javascript($r);
+ $catjs .= &courselink_javascript($hostname);
if (&user_is_dc($codedom) || $canviewall) {
$catjs .= <print(&print_course_listing($codedom,$numtitles,undef,undef,undef,
- \@codetitles,$canviewall));
+ \@codetitles,$canviewall,$hostname));
}
} else {
my (%add_entries);
@@ -383,7 +386,7 @@ ENDJS
}
if ($env{'form.state'} eq 'listing') {
$r->print(&print_course_listing($codedom,undef,\@trails,\%allitems,$subcats,\@codetitles,
- $canviewall));
+ $canviewall,$hostname));
}
}
}
@@ -623,8 +626,6 @@ sub validate_input {
} elsif (ref($crscatsref) eq 'HASH') {
unless (exists($crscatsref->{$env{'form.'.$key}})) {
delete($env{'form.'.$key});
- } else {
- delete($env{'form.'.$key});
}
} else {
delete($env{'form.'.$key});
@@ -637,16 +638,11 @@ sub validate_input {
sub get_instcode_allowable {
my ($codedom,$possvalref) = @_;
return 1 unless (ref($possvalref) eq 'HASH');
- my $caller = 'global';
- my %coursecodes = ();
- my %codes = ();
- my @codetitles = ();
- my %cat_titles = ();
- my %cat_order = ();
- my $totcodes = &Apache::courseclassifier::retrieve_instcodes(\%coursecodes,$codedom);
- if ($totcodes > 0) {
- if (&Apache::lonnet::auto_instcode_format($caller,$codedom,\%coursecodes,
- \%codes,\@codetitles,\%cat_titles,\%cat_order) eq 'ok') {
+ my $instcats = &Apache::lonnet::get_dom_instcats($codedom);
+ if (ref($instcats) eq 'HASH') {
+ if ((ref($instcats->{'codetitles'}) eq 'ARRAY') && (ref($instcats->{'codes'}) eq 'HASH')) {
+ my %codes = %{$instcats->{'codes'}};
+ my @codetitles = @{$instcats->{'codetitles'}};
my @standardnames = &Apache::loncommon::get_standard_codeitems();
my %local_to_standard;
for (my $i=0; $i<@codetitles; $i++) {
@@ -666,12 +662,12 @@ sub get_instcode_allowable {
}
sub course_details {
- my ($r,$codedom,$formname,$domdesc,$trails,$allitems,$codetitles) = @_;
+ my ($r,$codedom,$formname,$domdesc,$hostname,$trails,$allitems,$codetitles) = @_;
my $output;
my %add_entries = (topmargin => "0",
marginheight => "0",);
my $js = ''."\n";
+ &courselink_javascript($hostname).''."\n";
my $start_page =
&Apache::loncommon::start_page('Course/Community Catalog',$js,
{'add_entries' => \%add_entries, });
@@ -703,7 +699,7 @@ sub course_details {
$r->print(
&Apache::lonhtmlcommon::breadcrumbs('Course/Community Catalog').
''.$textthree.'
'.
- &print_course_listing($codedom,undef,$trails,$allitems,undef,$codetitles).
+ &print_course_listing($codedom,undef,$trails,$allitems,undef,$codetitles,undef,$hostname).
'
'.
'