--- loncom/interface/coursecatalog.pm 2010/10/07 14:45:04 1.53.4.7 +++ loncom/interface/coursecatalog.pm 2009/10/01 17:24:23 1.54 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler for displaying the course catalog interface # -# $Id: coursecatalog.pm,v 1.53.4.7 2010/10/07 14:45:04 raeburn Exp $ +# $Id: coursecatalog.pm,v 1.54 2009/10/01 17:24:23 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -149,19 +149,13 @@ ENDJS for (my $i=0; $i<$deeper; $i++) { $r->print(''."\n"); } - my $display_button; - if ($env{'form.currcat_0'} eq 'communities::0') { - $display_button = &mt('Display communities'); - } else { - $display_button = &mt('Display courses'); - } $r->print(''."\n". ''."\n". ''."\n". ''. '

'); + &mt('Display courses').'" />

'); } if ($env{'form.state'} eq 'listing') { $r->print(&print_course_listing($codedom,undef,\@trails,\%allitems,$subcats)); @@ -180,7 +174,7 @@ sub course_details { my $js = ''."\n"; my $start_page = - &Apache::loncommon::start_page('Course/Community Catalog',$js, + &Apache::loncommon::start_page('Course Catalog',$js, { 'add_entries' => \%add_entries, 'no_inline_link' => 1,}); @@ -188,36 +182,19 @@ sub course_details { if ($env{'form.numtitles'} > 0) { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/coursecatalog", - text=>"Course/Community Catalog"}); - } - my $brtextone = 'Course listing'; - my $brtexttwo = 'Course details'; - if ($env{'form.currcat_0'} eq 'communities::0') { - $brtextone = 'Community listing'; - $brtexttwo = 'Community details'; + text=>"Select courses"}); } &Apache::lonhtmlcommon::add_breadcrumb ({href=>"javascript:document.$formname.submit()", - text=>$brtextone}, - {text=>$brtexttwo}); - $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course/Community Catalog')); - $r->print('
'); - if ($env{'form.currcat_0'} eq 'communities::0') { - $r->print(&mt('Detailed community information:')); - } else { - $r->print(&mt('Detailed course information:')); - } - $r->print('

'. + text=>"Course listing"}, + {text=>"Course details"}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Details')); + $r->print('
'.&mt('Detailed course information:').'

'. &print_course_listing($codedom,undef,$trails,$allitems). '

'); $r->print('
'. - ''); - if ($env{'form.currcat_0'} eq 'communities::0') { - $r->print(&mt('Back to community listing')); - } else { - $r->print(&mt('Back to course listing')); - } - $r->print(''. + ''. + &mt('Back to course listing').''. &Apache::lonhtmlcommon::echo_form_input(['coursenum','catalogfilter', 'showdetails','courseid']).'
'); return; @@ -306,33 +283,30 @@ sub instcode_course_selector { sub cat_header { my ($r,$codedom,$js,$add_entries,$catlinks,$numtitles) = @_; my $start_page = - &Apache::loncommon::start_page('Course/Community Catalog',$js, + &Apache::loncommon::start_page('Other',$js, { 'add_entries' => $add_entries, 'no_inline_link' => 1,}); $r->print($start_page); - my $brtext = 'Course listing'; - if ($env{'form.currcat_0'} eq 'communities::0') { - $brtext = 'Community listing'; - } if ($env{'form.state'} eq 'listing') { if ($numtitles > 0) { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/coursecatalog", - text=>"Course/Community Catalog"}, - {text=>$brtext}); + text=>"Select courses"}, + {text=>"Course listing"}); } else { &Apache::lonhtmlcommon::add_breadcrumb - ({text=>$brtext}); + ({text=>"Course listing"}); } + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Listing')); } else { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/coursecatalog", - text=>"Course/Community Catalog"}); + text=>"Select courses"}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Select courses')); } - $r->print(&Apache::lonhtmlcommon::breadcrumbs('Course/Community Catalog')); my $onchange; - unless (($env{'browser.interface'} eq 'textual') || ($env{'form.interface'} eq 'textual')) { + unless ($env{'form.interface'} eq 'textual') { $onchange = 'this.form.submit()'; } $r->print('
'. @@ -352,71 +326,73 @@ sub category_breadcrumbs { my ($dom,@cats) = @_; my $crumbsymbol = ' ▶ '; my ($currdepth,$deeper) = &get_depth_values(); - my $currcat_str = - ''. - ''; - my $catlinks = ''.&mt('Catalog:').''; return ($catlinks,$has_subcats,$selitem); } -sub main_category_selector { - my (@cats) = @_; - my $maincatlinks = ''."\n"; - } - return $maincatlinks; -} - sub get_depth_values { my $currdepth = 0; my $deeper = 0; @@ -528,15 +476,10 @@ sub additional_filters { if ($env{'form.showselfenroll'}) { $show_selfenroll_status = 'checked="checked" '; } - my $selfenroll_text; - if ($env{'form.currcat_0'} eq 'communities::0') { - $selfenroll_text = &mt('Only show communities which allow self-enrollment'); - } else { - $selfenroll_text = &mt('Only show courses which allow self-enrollment'); - } $output .= ''; if (&user_is_dc($codedom)) { my $showdetails_status; @@ -548,20 +491,14 @@ sub additional_filters { $showhidden_status = 'checked="checked" '; } my $dc_title = &Apache::lonnet::plaintext('dc'); - my ($details_text,$hidden_text); - if ($env{'form.currcat_0'} eq 'communities::0') { - $details_text = &mt('Show full details for each community ([_1] only)',$dc_title); - $hidden_text = &mt('Include communities set to be hidden from catalog ([_1] only)',$dc_title); - } else { - $details_text = &mt('Show full details for each course ([_1] only)',$dc_title); - $hidden_text = &mt('Include courses set to be hidden from catalog ([_1] only)',$dc_title); - } $output .= ''; } $output .= '
'; + my $currcat_str = ''; + my $catlinks = ''.&mt('Catalog:').''; my $has_subcats; my $selitem; - if (ref($cats[0]) eq 'ARRAY') { - if (@{$cats[0]} == 0) { - $catlinks .= &mt('No categories defined in this domain'); - } elsif (@{$cats[0]} == 1) { - if ($cats[0][0] eq 'instcode') { - $catlinks .= &mt('Official courses (with institutional codes)'); - $env{'form.currcat_0'} = 'instcode::0'; - } elsif ($cats[0][0] eq 'communities') { - $catlinks .= &mt('Communities'); - $env{'form.currcat_0'} = 'communities::0'; - } else { - my $name = $cats[0][0]; - my $item = &escape($name).'::0'; - $catlinks .= $name; - $env{'form.currcat_0'} = $item; - } - $currcat_str .= ''; - } else { - $catlinks .= &main_category_selector(@cats); - if (($env{'form.currcat_0'} ne '') && - ($env{'form.currcat_0'} ne 'instcode::0')) { - $catlinks .= $crumbsymbol; - } else { - $catlinks .= ''; + for (my $i=0; $i<$deeper; $i++) { + $currcat_str .= ''; + my ($cattitle,$shallower); + if ($i == 0) { + if (ref($cats[0]) eq 'ARRAY') { + if (@{$cats[0]} > 1) { + $cattitle = &mt('Main Categories'); + } } + } else { + $shallower = $i-1; + my ($cat,$container,$depth) = map { &unescape($_); } split(/:/,$env{'form.currcat_'.$shallower}); + $cattitle = $cat; + } + if ($cattitle ne '') { + $catlinks .= ''; } - } else { - $catlinks .= &mt('Official courses (with institutional codes)'); - $env{'form.currcat_0'} = 'instcode::0'; - $currcat_str .= ''; } - if ($deeper) { - for (my $i=1; $i<=$deeper; $i++) { - my $shallower = $i-1; - next if ($shallower == 0); - my ($cat,$container,$depth) = map { &unescape($_); } split(/:/,$env{'form.currcat_'.$shallower}); - if ($cat ne '') { - $catlinks .= '
'.$cattitle.''.$crumbsymbol.''. - ''; + if (ref($cats[0]) eq 'ARRAY') { + if ((@{$cats[0]} == 1) && (@cats == 1)) { + if ($cats[0][0] eq 'instcode') { + $catlinks .= &mt('Official courses (with institutional codes)'). + ''; + $env{'form.currcat_0'} = 'instcode::0'; + } else { + my $name = $cats[0][0]; + my $item = &escape($name).'::0'; + $catlinks .= $name. + ''; + $env{'form.currcat_0'} = $item; + } + } else { + $has_subcats = 1; + my $buttontext = &mt('Show subcategories'); + $selitem = 'currcat_0'; + $catlinks .= ''; + $catlinks .= ''."\n". + ' '; } - unless ($i == $deeper) { - $catlinks .= $crumbsymbol; - } + } else { + $catlinks .= &mt('Official courses (with institutional codes)'). + ''; + $env{'form.currcat_0'} = 'instcode::0'; } + } else { my ($cat,$container,$depth); if ($env{'form.currcat_'.$currdepth} eq '') { my $shallower = $currdepth - 1; @@ -424,66 +400,38 @@ sub category_breadcrumbs { } else { ($cat,$container,$depth) = map { &unescape($_); } split(/:/,$env{'form.currcat_'.$currdepth}); } - my $deeperlevel = $depth +1; - if (ref($cats[$deeperlevel]{$cat}) eq 'ARRAY') { + my $deeper = $depth +1; + my $currcat = $cat; + if ($cat eq 'instcode') { + $currcat = &mt('Official courses (with institutional codes)'); + } + $catlinks .= ''.$currcat.''; + if (ref($cats[$deeper]{$cat}) eq 'ARRAY') { $has_subcats = 1; my $buttontext = &mt('Show subcategories'); - my $selitem = 'currcat_'.$deeperlevel; - $catlinks .= ' '; + if (@{$cats[$deeper]{$cat}} > 1) { $catlinks .= ''; + &mt('Select').''; + $buttontext = &mt('Pick subcategory'); } - for (my $k=0; $k<@{$cats[$deeperlevel]{$cat}}; $k++) { - my $name = $cats[$deeperlevel]{$cat}[$k]; - my $item = &escape($name).':'.&escape($cat).':'.$deeperlevel; + for (my $k=0; $k<@{$cats[$deeper]{$cat}}; $k++) { + my $name = $cats[$deeper]{$cat}[$k]; + my $item = &escape($name).':'.&escape($cat).':'.$deeper; $catlinks .= ''."\n"; } - $catlinks .= ''."\n"; + $catlinks .= ''."\n". + ' '; } elsif ($cat ne 'instcode') { $catlinks .= ' '.&mt('(No subcategories)'); } - } else { - $selitem = 'currcat_0'; } $catlinks .= $currcat_str.'
'. '
'."\n". ''."\n".'
'. ''."\n".'

'; @@ -622,18 +559,13 @@ sub search_courselist { } else { $filterstr = $filter; } - my ($showhidden,$typefilter); + my $showhidden; if (&user_is_dc($domain)) { $showhidden = $env{'form.showhidden'}; } - if ($env{'form.currcat_0'} eq 'communities::0') { - $typefilter = 'Community'; - } else { - $typefilter = '.'; - } %courses = &Apache::lonnet::courseiddump($domain,'.',1,'.','.','.',undef,undef, - $typefilter,1,$env{'form.showselfenroll'}, + '.',1,$env{'form.showselfenroll'}, $filterstr,$showhidden,'coursecatalog'); } return %courses; @@ -655,11 +587,7 @@ sub print_course_listing { $env{'form.coursenum'}, undef,undef,'.',1); if (keys(%courses) == 0) { - if ($env{'form.currcat_0'} eq 'communities::0') { - $output .= &mt('The courseID provided does not match a community in this domain.'); - } else { - $output .= &mt('The courseID provided does not match a course in this domain.'); - } + $output .= &mt('The courseID provided does not match a course in this domain.'); return $output; } } else { @@ -669,11 +597,7 @@ sub print_course_listing { %courses = &search_courselist($domain,$subcats); } if (keys(%courses) == 0) { - if ($env{'form.currcat_0'} eq 'communities::0') { - $output = &mt('No communities match the criteria you selected.'); - } else { - $output = &mt('No courses match the criteria you selected.'); - } + $output = &mt('No courses match the criteria you selected.'); return $output; } if (($knownuser) && (!$env{'form.showdetails'}) && (!&user_is_dc($domain))) { @@ -728,14 +652,10 @@ sub construct_data_table { } if ($knownuser) { if ($details) { - if ($env{'form.currcat_0'} eq 'communities::0') { - $output .= ''.&mt('Default Access Dates for Members').''; - } else { - $output .= - ''.&mt('Default Access Dates for Students').''. - ''.&mt('Student Counts').''. - ''.&mt('Auto-enrollment of[_1]registered students','
').''; - } + $output .= + ''.&mt('Default Access Dates for Students').''. + ''.&mt('Student Counts').''. + ''.&mt('Auto-enrollment of[_1]registered students','
').''; } else { $output .= ''.&mt('Details').''; } @@ -1004,14 +924,10 @@ sub courseinfo_row { ''.$ownerlast.''; if ($knownuser) { if ($details) { - if ($env{'form.currcat_0'} eq 'communities::0') { - $output .= ''.$accessdates.''; - } else { - $output .= - ''.$accessdates.''. - ''.$counts.''. - ''.$autoenrollment.''; - } + $output .= + ''.$accessdates.''. + ''.$counts.''. + ''.$autoenrollment.''; } else { $output .= "".&mt('Show more details').''; }