--- loncom/interface/lonmodifycourse.pm 2013/11/13 00:09:28 1.64 +++ 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.64 2013/11/13 00:09:28 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); @@ -436,7 +448,7 @@ sub print_setquota { coursequota => 20, uploadquota => 500, ); - my %settings = &Apache::lonnet::get('environment',['internal.coursequota','internal.uploadquota','internal.instcode'], + my %settings = &Apache::lonnet::get('environment',['internal.coursequota','internal.uploadquota','internal.coursecode'], $cdom,$cnum); my $coursequota = $settings{'internal.coursequota'}; my $uploadquota = $settings{'internal.uploadquota'}; @@ -447,8 +459,10 @@ sub print_setquota { my %domdefs = &Apache::lonnet::get_domain_defaults($cdom); if ($type eq 'Community') { $uploadquota = $domdefs{$lctype.'quota'}; - } elsif ($settings{'internal.instcode'}) { + } elsif ($settings{'internal.coursecode'}) { $uploadquota = $domdefs{'officialquota'}; + } elsif ($settings{'internal.textbook'}) { + $uploadquota = $domdefs{'textbookquota'}; } else { $uploadquota = $domdefs{'unofficialquota'}; } @@ -994,18 +1008,19 @@ sub modify_course { $reply = '

'.$mainheader.' '.$cdesc.'

'."\n". '

'.$reply.'

'."\n". '
'. - &hidden_form_elements(). - ''. - &mt('Pick another action').''; + &hidden_form_elements(); + my @actions = + (''. + &mt('Pick another action').''); if ($numwarnings) { my $newrole = $ccrole.'./'.$cdom.'/'.$cnum; my $escuri = &HTML::Entities::encode('/adm/roles?selectrole=1&'.$newrole. '=1&destinationurl=/adm/populate','&<>"'); - $reply .= '
'. - &mt('Go to Automated Enrollment Manager for course').''; + push(@actions, ''. + &mt('Go to Automated Enrollment Manager for course').''); } - $reply .= '
'; + $reply .= &Apache::lonhtmlcommon::actionbox(\@actions).''; $r->print($reply); return; } @@ -1238,10 +1253,10 @@ sub modify_quota { } $r->print('

'); if ($type eq 'Community') { - $r->print(&mt('Disk usage [_1] exceeds the quota for this community.',$newoverquota).' '. + $r->print(&mt("Disk usage $newoverquota exceeds the quota for this community.").' '. &mt('Upload of new portfolio files and assignment of a non-zero MB quota to new groups in the community will not be possible until some files have been deleted, and total usage is below community quota.')); } else { - $r->print(&mt('Disk usage [_1] exceeds the quota for this course.',$newoverquota).' '. + $r->print(&mt("Disk usage $newoverquota exceeds the quota for this course.").' '. &mt('Upload of new portfolio files and assignment of a non-zero MB quota to new groups in the course will not be possible until some files have been deleted, and total usage is below course quota.')); } $r->print('

'); @@ -1636,7 +1651,7 @@ sub hidden_form_elements { sub showcredits { my ($dom) = @_; my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); - if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'}) { + if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'} || $domdefaults{'textbokcredits'}) { return 1; } }