'.&mt('None found').'
'); } elsif ($multiple) { - $r->print(''); + $r->print(''); } $r->print(''. "\n".''."\n". @@ -519,7 +543,7 @@ sub multiples_tag { sub build_filters { my ($filterlist,$type,$roleelement,$multelement,$filter,$action, - $numtitlesref,$caller,$cloneruname,$clonerudom,$typeelement) = @_; + $numtitlesref,$caller,$cloneruname,$clonerudom,$typeelement,$codetitlesref) = @_; my ($list,$formname,$fixeddom,$codedom,$jscript); $codedom = $env{'request.role.domain'}; if (defined($env{'form.form'})) { @@ -527,12 +551,10 @@ sub build_filters { } else { $formname = $caller; } - my $onchange; - unless ($env{'form.interface'} eq 'textual') { - $onchange = 'javascript:updateFilters(this)'; - } - my ($domainselectform,$sincefilterform,$ownerdomselectform,$persondomselectform, - $instcodeform,$typeselectform,$instcodetitle); + my $onchange = 'javascript:updateFilters(this)'; + my ($domainselectform,$sincefilterform,$createdfilterform, + $ownerdomselectform,$persondomselectform,$instcodeform, + $typeselectform,$instcodetitle); foreach my $item (@{$filterlist}) { $filter->{$item} = $env{'form.'.$item}; if ($item ne 'descriptfilter' && $item ne 'instcodefilter') { @@ -595,25 +617,16 @@ sub build_filters { } # last course activity filter and selection - $filter->{'sincefilter'} = $env{'form.sincefilter'}; - $filter->{'sincefilter'} =~ s/[^\d-]//g; - if (!$filter->{'sincefilter'}) { $filter->{'sincefilter'}=-1; } - $sincefilterform=&Apache::loncommon::select_form( - $filter->{'sincefilter'}, - 'sincefilter', - ( '-1' => '', - '86400' => &mt('today'), - '604800' => &mt('last week'), - '2592000' => &mt('last month'), - '7776000' => &mt('last three months'), - '15552000' => &mt('last six months'), - '31104000' => &mt('last year'), - 'select_form_order' => - ['-1','86400','604800','2592000','7776000', - '15552000','31104000'])); + $sincefilterform = &timebased_select_form('sincefilter',$filter); + + # course created filter and selection + if (exists($filter->{'createdfilter'})) { + $createdfilterform = &timebased_select_form('createdfilter',$filter); + } my %lt = &Apache::lonlocal::texthash( 'cac' => "$type Activity", + 'ccr' => "$type Created", 'cde' => "$type Title", 'cdo' => "$type Domain", 'ins' => 'Institutional Code', @@ -664,7 +677,7 @@ sub build_filters { || ($formname eq 'modifycourse')) { $officialjs = 1; ($instcodeform,$jscript,$$numtitlesref) = - &instcode_selectors($codedom,'filterpicker',$officialjs); + &instcode_selectors($codedom,'filterpicker',$officialjs,$codetitlesref); if ($jscript) { $jscript = ''."\n"; @@ -719,6 +732,11 @@ $typeelement .$sincefilterform .&Apache::lonhtmlcommon::row_closure(); } + if ($createdfilterform) { + $output .= &Apache::lonhtmlcommon::row_title($lt{'ccr'}) + .$createdfilterform + .&Apache::lonhtmlcommon::row_closure(); + } if ($domainselectform) { $output .= &Apache::lonhtmlcommon::row_title($lt{'cdo'}) .$domainselectform @@ -788,9 +806,35 @@ $typeelement return $jscript.$warning.$output; } +sub timebased_select_form { + my ($item,$filter) = @_; + if (ref($filter) eq 'HASH') { + $filter->{$item} = $env{'form.'.$item}; + $filter->{$item} =~ s/[^\d-]//g; + if (!$filter->{$item}) { $filter->{$item}=-1; } + return &Apache::loncommon::select_form( + $filter->{$item}, + $item, + { '-1' => '', + '86400' => &mt('today'), + '604800' => &mt('last week'), + '2592000' => &mt('last month'), + '7776000' => &mt('last three months'), + '15552000' => &mt('last six months'), + '31104000' => &mt('last year'), + 'select_form_order' => + ['-1','86400','604800','2592000','7776000', + '15552000','31104000']}); + } +} + sub get_coordinator_cloneable { my ($cloneruname,$clonerudom,$type) = @_; - if (&Apache::lonnet::homeserver($cloneruname,$clonerudom) eq 'no_host') { + if (($cloneruname!~/\w/) || ($clonerudom!~/\w/)) { + my $warning = '