[LON-CAPA-cvs] cvs: loncom /interface coursecatalog.pm
raeburn
lon-capa-cvs-allow@mail.lon-capa.org
Tue, 15 Jul 2008 19:43:18 -0000
raeburn Tue Jul 15 15:43:18 2008 EDT
Modified files:
/loncom/interface coursecatalog.pm
Log:
Provide syllabus page with means to construct breadcrumbs to facilitate return to Catalog after viewing syllabus.
- new subroutine: &syllabus_javascript() includes javascrript to dynamically set form action to URL for syllabus page and to submit form (includes catalog search parameters as hidden input).
- Replace call to &Apache::loncommon::syllabuswrapper() for syllabus link with link including call to javascript:ToSyllabus(cdom,cnum).
Index: loncom/interface/coursecatalog.pm
diff -u loncom/interface/coursecatalog.pm:1.39 loncom/interface/coursecatalog.pm:1.40
--- loncom/interface/coursecatalog.pm:1.39 Mon Jul 14 06:24:27 2008
+++ loncom/interface/coursecatalog.pm Tue Jul 15 15:43:15 2008
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler for displaying the course catalog interface
#
-# $Id: coursecatalog.pm,v 1.39 2008/07/14 10:24:27 raeburn Exp $
+# $Id: coursecatalog.pm,v 1.40 2008/07/15 19:43:15 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -106,12 +106,14 @@
document.$formname.sortby.value = caller;
document.$formname.submit();
}
+
function setCourseId(caller) {
document.$formname.coursenum.value = caller;
document.$formname.submit();
}
ENDSCRIPT
+ $catjs .= &syllabus_javascript();
my $numtitles;
if ($env{'form.currcat_0'} eq 'instcode::0') {
$numtitles = &instcode_course_selector($r,$codedom,$formname,$domdesc,
@@ -155,8 +157,10 @@
my $output;
my %add_entries = (topmargin => "0",
marginheight => "0",);
+ my $js = '<script type="text/javascript">'."\n".
+ &syllabus_javascript().'</script>'."\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,});
@@ -172,16 +176,33 @@
{text=>"Course details"});
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Details'));
$r->print('<br />'.&mt('Detailed course information:').'<br /><br />'.
- '<form name="'.$formname.'" method="post" action="/adm/coursecatalog">'.
&print_course_listing($codedom,undef,$trails,$allitems).
'<br /><br />');
- $r->print('<a href = "javascript:document.coursecatalog.submit()">'.
+ $r->print('<form name="'.$formname.'" method="post" action="/adm/coursecatalog">'.
+ '<a href = "javascript:document.coursecatalog.submit()">'.
&mt('Back to course listing').'</a>'.
- '<input type="hidden" name="sortby" value="'.
- $env{'form.sortby'}.'" />'.
- '<input type="hidden" name="state" value="listing" /></form>');
+ &Apache::lonhtmlcommon::echo_form_input(['coursenum','catalogfilter','showdetails']).'</form>');
+ return;
+}
+
+sub syllabus_javascript {
+ return <<"END";
+
+function ToSyllabus(cdom,cnum) {
+ if (cdom == '' || cdom == null) {
+ return;
+ }
+ if (cnum == '' || cnum == null) {
+ return;
+ }
+ document.syllabuslaunch.action = "/public/"+cdom+"/"+cnum+"/syllabus";
+ document.syllabuslaunch.submit();
+}
+
+END
}
+
sub instcode_course_selector {
my ($r,$codedom,$formname,$domdesc,$catlinks,$catjs) = @_;
my %coursecodes = ();
@@ -734,9 +755,9 @@
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".'<form name="syllabuslaunch" method="post" action="">'.
+ '<input type="hidden" name="backto" value="coursecatalog" />'.
+ &Apache::lonhtmlcommon::echo_form_input(['catalogfilter']).'</form>';
return $output;
}
@@ -1039,7 +1060,7 @@
'<td>'.$xlist_items.'</td>'.
'<td>'.$title.' <font size="-2">';
if ($showsyllabus) {
- $output .= &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$cnum,$cdom);
+ $output .= '<a href="javascript:ToSyllabus('."'$cdom','$cnum'".')">'.&mt('Syllabus').'</a>';
} else {
$output .= ' ';
}