--- loncom/interface/lonmodifycourse.pm 2014/03/11 00:57:23 1.68 +++ loncom/interface/lonmodifycourse.pm 2014/03/13 14:46:46 1.69 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # handler for DC-only modifiable course settings # -# $Id: lonmodifycourse.pm,v 1.68 2014/03/11 00:57:23 raeburn Exp $ +# $Id: lonmodifycourse.pm,v 1.69 2014/03/13 14:46:46 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -153,10 +153,7 @@ sub print_course_search_page { $type = 'Course'; } &print_header($r,$type); - my $filterlist = ['descriptfilter', - 'instcodefilter','ownerfilter', - 'coursefilter']; - my $filter = {}; + my ($filterlist,$filter) = &get_filters(); my ($numtitles,$cctitle,$dctitle,@codetitles); my $ccrole = 'cc'; if ($type eq 'Community') { @@ -169,10 +166,10 @@ sub print_course_search_page { $r->print('

'.&mt('Search for a community in the [_1] domain',$domdesc).'

'); } else { $r->print('

'.&mt('Search for a course in the [_1] domain',$domdesc).'

'); - } - $r->print(&Apache::lonpickcourse::build_filters($filterlist,$type, - undef,undef,$filter,$action,\$numtitles,'modifycourse', - undef,undef,undef,\@codetitles)); + } + $r->print(&Apache::loncommon::build_filters($filterlist,$type,undef,undef,$filter,$action, + \$numtitles,'modifycourse',undef,undef,undef, + \@codetitles,$filter->{'domainfilter'})); if ($type eq 'Community') { $r->print(&mt('Actions available after searching for a community:').''); } + return; } sub print_course_selection_page { @@ -195,27 +193,41 @@ sub print_course_selection_page { &print_header($r,$type); # Criteria for course search - my $filterlist = ['descriptfilter', - 'instcodefilter','ownerfilter', - 'ownerdomfilter','coursefilter']; - my %filter; + my ($filterlist,$filter) = &get_filters(); my $action = '/adm/modifycourse'; my $dctitle = &Apache::lonnet::plaintext('dc'); my ($numtitles,@codetitles); $r->print(&Apache::lonpickcourse::js_changer()); $r->print(&mt('Revise your search criteria for this domain').' ('.$domdesc.').
'); - $r->print(&Apache::lonpickcourse::build_filters($filterlist,$type, - undef,undef,\%filter,$action,\$numtitles, - undef,undef,undef,undef,\@codetitles)); - $filter{'domainfilter'} = $dom; - my %courses = &Apache::lonpickcourse::search_courses($r,$type,0, - \%filter,$numtitles,undef, - undef,undef,\@codetitles); + $r->print(&Apache::loncommon::build_filters($filterlist,$type,undef,undef,$filter,$action, + \$numtitles,'modifycourse',undef,undef,undef, + \@codetitles,$filter->{'domainfilter'}, + $env{'form.form'})); + if (ref($filter) eq 'HASH') { + $filter->{'domainfilter'} = $dom; + } + my %courses = &Apache::lonpickcourse::search_courses($r,$type,0,$filter,$numtitles, + undef,undef,undef,\@codetitles); &Apache::lonpickcourse::display_matched_courses($r,$type,0,$action,undef,undef,undef, %courses); return; } +sub get_filters { + my @filterlist = ('descriptfilter','instcodefilter','ownerfilter', + 'ownerdomfilter','coursefilter','sincefilter'); + # created filter + my $loncaparev = &Apache::lonnet::get_server_loncaparev($env{'form.domainfilter'}); + if ($loncaparev ne 'unknown_cmd') { + push(@filterlist,'createdfilter'); + } + my %filter; + foreach my $item (@filterlist) { + $filter{$item} = $env{'form.'.$item}; + } + return (\@filterlist,\%filter); +} + sub print_modification_menu { my ($r,$cdesc,$domdesc,$dom,$type) = @_; &print_header($r,$type);