--- loncom/interface/coursecatalog.pm 2008/07/08 09:23:38 1.37
+++ loncom/interface/coursecatalog.pm 2008/07/17 12:00:28 1.41
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler for displaying the course catalog interface
#
-# $Id: coursecatalog.pm,v 1.37 2008/07/08 09:23:38 raeburn Exp $
+# $Id: coursecatalog.pm,v 1.41 2008/07/17 12:00:28 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -53,7 +53,8 @@ sub handler {
}
&Apache::lonacc::get_posted_cgi($r);
&Apache::lonlocal::get_language_handle($r);
- &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['sortby']);
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+ ['sortby','showdom']);
my $codedom = &Apache::lonnet::default_login_domain();
@@ -105,12 +106,14 @@ function changeSort(caller) {
document.$formname.sortby.value = caller;
document.$formname.submit();
}
+
function setCourseId(caller) {
document.$formname.coursenum.value = caller;
document.$formname.submit();
}
ENDSCRIPT
+ $catjs .= &courselink_javascript();
my $numtitles;
if ($env{'form.currcat_0'} eq 'instcode::0') {
$numtitles = &instcode_course_selector($r,$codedom,$formname,$domdesc,
@@ -154,8 +157,10 @@ sub course_details {
my $output;
my %add_entries = (topmargin => "0",
marginheight => "0",);
+ my $js = ''."\n";
my $start_page =
- &Apache::loncommon::start_page('Course Catalog','',
+ &Apache::loncommon::start_page('Course Catalog',$js,
{
'add_entries' => \%add_entries,
'no_inline_link' => 1,});
@@ -171,16 +176,43 @@ sub course_details {
{text=>"Course details"});
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Details'));
$r->print('
'.&mt('Detailed course information:').'
'.
- '
');
+ return;
+}
+
+sub courselink_javascript {
+ return <<"END";
+
+function ToSyllabus(cdom,cnum) {
+ if (cdom == '' || cdom == null) {
+ return;
+ }
+ if (cnum == '' || cnum == null) {
+ return;
+ }
+ document.linklaunch.action = "/public/"+cdom+"/"+cnum+"/syllabus";
+ document.linklaunch.submit();
}
+function ToSelfenroll(courseid) {
+ if (courseid == '') {
+ return;
+ }
+ document.linklaunch.action = "/adm/selfenroll";
+ document.linklaunch.courseid.value = courseid;
+ document.linklaunch.submit();
+}
+
+END
+}
+
+
sub instcode_course_selector {
my ($r,$codedom,$formname,$domdesc,$catlinks,$catjs) = @_;
my %coursecodes = ();
@@ -487,8 +519,8 @@ sub additional_filters {
$output .= ' |
';
+ &mt('Include subcategories within "[_1]"',
+ &unescape($catname)).'';
}
}
my $show_selfenroll_status;
@@ -733,9 +765,10 @@ sub print_course_listing {
my %domconfig =
&Apache::lonnet::get_dom('configuration',['usercreation'],$domain);
$output .= &construct_data_table($knownuser,\%courses,$details,undef,$now,\%domconfig,$trails,$allitems);
- if ($env{'form.coursenum'} ne '') {
- $output .= &Apache::lonhtmlcommon::echo_form_input(['coursenum','state','catalogfilter','sortby','showdetails']);
- }
+ $output .= "\n".'';
return $output;
}
@@ -836,7 +869,7 @@ sub build_courseinfo_hash {
$cleandesc=~s/'/\\'/g;
$cleandesc =~ s/^\s+//;
my ($cdom,$cnum)=split(/\_/,$course);
- my ($descr,$instcode,$singleowner,$ttype,$selfenroll_types,
+ my ($instcode,$singleowner,$ttype,$selfenroll_types,
$selfenroll_start,$selfenroll_end,@owners,%ownernames,$categories);
if (ref($courses->{$course}) eq 'HASH') {
$descr = $courses->{$course}{'description'};
@@ -1038,7 +1071,7 @@ sub courseinfo_row {
''.$xlist_items.' | '.
''.$title.' ';
if ($showsyllabus) {
- $output .= &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$cnum,$cdom);
+ $output .= ''.&mt('Syllabus').'';
} else {
$output .= ' ';
}
@@ -1062,7 +1095,7 @@ sub courseinfo_row {
if (($info->{'selfenroll_start'} > 0) && ($info->{'selfenroll_start'} > $now)) {
$output .= ' | '.&mt('Starts: [_1]',''.$showstart.'').' '.&mt('Ends: [_1]',''.$showend.'').' | ';
} else {
- $output .= ''.&mt('Enroll in course').' | ';
+ $output .= ''.&mt('Enroll in course').' | ';
}
$selfenroll = 1;
}
@@ -1092,7 +1125,7 @@ sub identify_sections {
}
}
@secnums = sort {$a <=> $b} @secnums;
- my $seclist = join(', ',@secnums);
+ $seclist = join(', ',@secnums);
my $numsec = @secnums;
return ($seclist,$numsec);
}