--- loncom/interface/coursecatalog.pm 2010/02/12 00:21:30 1.53.4.4 +++ loncom/interface/coursecatalog.pm 2009/11/23 21:45:18 1.57 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler for displaying the course catalog interface # -# $Id: coursecatalog.pm,v 1.53.4.4 2010/02/12 00:21:30 raeburn Exp $ +# $Id: coursecatalog.pm,v 1.57 2009/11/23 21:45:18 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -289,7 +289,7 @@ 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,}); @@ -311,7 +311,7 @@ sub cat_header { } $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('
'. @@ -334,68 +334,78 @@ sub category_breadcrumbs { 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;
'; + 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; + 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'); + } } - $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 .= ''; - } - } - } 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); + $shallower = $i-1; my ($cat,$container,$depth) = map { &unescape($_); } split(/:/,$env{'form.currcat_'.$shallower}); - if ($cat ne '') { - $catlinks .= ''; + } + } + if ($deeper == 0) { + $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'; + } 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; + } + } 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; @@ -403,66 +413,40 @@ 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)'); + } elsif ($cat eq 'communities') { + $currcat = &mt('Communities'); + } + $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.'