version 1.93.2.3, 2010/11/13 14:43:08
|
version 1.96, 2010/06/08 16:37:20
|
Line 143 sub handler {
|
Line 143 sub handler {
|
my ($numtitles,$showroles,$nohost); |
my ($numtitles,$showroles,$nohost); |
if (!$onlyown) { |
if (!$onlyown) { |
my $filterlist = ['domainfilter']; |
my $filterlist = ['domainfilter']; |
|
# created filter for DCs only |
if ($env{'user.adv'} && $env{'form.domainfilter'} && |
if ($env{'user.adv'} && $env{'form.domainfilter'} && |
exists($env{'user.role.dc./'.$env{'form.domainfilter'}.'/'}) |
exists($env{'user.role.dc./'.$env{'form.domainfilter'}.'/'}) |
&& $env{'form.form'} ne 'portform') { |
&& $env{'form.form'} ne 'portform') { |
Line 152 sub handler {
|
Line 153 sub handler {
|
} |
} |
} |
} |
push(@{$filterlist},('descriptfilter','instcodefilter')); |
push(@{$filterlist},('descriptfilter','instcodefilter')); |
|
|
if ($env{'form.form'} eq 'rules') { |
if ($env{'form.form'} eq 'rules') { |
push(@{$filterlist},'personfilter'); |
push(@{$filterlist},'personfilter'); |
if (($env{'form.personfilter'} ne '') && ($env{'form.persondomfilter'} ne '')) { |
if (($env{'form.personfilter'} ne '') && ($env{'form.persondomfilter'} ne '')) { |
Line 183 sub handler {
|
Line 183 sub handler {
|
# ---------------------------------------------------------------- Get the data |
# ---------------------------------------------------------------- Get the data |
if ((($env{'form.gosearch'}) && ($env{'form.updater'} eq '')) || |
if ((($env{'form.gosearch'}) && ($env{'form.updater'} eq '')) || |
$onlyown) { |
$onlyown) { |
my $domcloner; |
|
if ($env{'form.form'} eq 'ccrs') { |
|
if (($env{'request.role.domain'} eq $env{'form.domainfilter'}) && |
|
(&Apache::lonnet::allowed('ccc',$env{'request.role.domain'}))) { |
|
$domcloner = 1; |
|
} |
|
} |
|
my %courses = &search_courses($r,$type,$onlyown,$filter,$numtitles, |
my %courses = &search_courses($r,$type,$onlyown,$filter,$numtitles, |
$cloneruname,$clonerudom,$domcloner); |
$cloneruname,$clonerudom); |
if ($nohost) { |
if ($nohost) { |
$r->print ('<span class="LC_warning">'. |
$r->print ('<span class="LC_warning">'. |
&mt('User does not exist - username: [_1], domain: [_2].', |
&mt('User does not exist - username: [_1], domain: [_2].', |
Line 412 sub display_matched_courses {
|
Line 405 sub display_matched_courses {
|
$instcode = $courses{$course}{'inst_code'}; |
$instcode = $courses{$course}{'inst_code'}; |
$ttype = $courses{$course}{'type'}; |
$ttype = $courses{$course}{'type'}; |
if (($env{'form.form'} eq 'ccrs') || ($env{'form.form'} eq 'requestcrs')) { |
if (($env{'form.form'} eq 'ccrs') || ($env{'form.form'} eq 'requestcrs')) { |
if ($env{'form.form'} eq 'ccrs') { |
if ($cc_cloneable{$courses{$course}{'cnum'}.':'.$courses{$course}{'domain'}}) { |
if (($env{'request.role.domain'} eq $cdom) && |
$canclone = 1; |
(&Apache::lonnet::allowed('ccc',$env{'request.role.domain'}))) { |
|
$canclone = 1; |
|
} |
|
} |
|
unless ($canclone) { |
|
if ($cc_cloneable{$cnum.':'.$cdom}) { |
|
$canclone = 1; |
|
} |
|
} |
} |
unless ($canclone) { |
unless ($canclone) { |
my $cloners = $courses{$course}{'cloners'}; |
my $cloners = $courses{$course}{'cloners'}; |
Line 430 sub display_matched_courses {
|
Line 415 sub display_matched_courses {
|
if (grep(/^\*$/,@cloneable)) { |
if (grep(/^\*$/,@cloneable)) { |
$canclone = 1; |
$canclone = 1; |
} |
} |
if (grep(/^\*:\Q$clonerudom\E$/,@cloneable)) { |
if (grep(/^\*:\Q$env{'form.clonerudom'}\E$/,@cloneable)) { |
$canclone = 1; |
$canclone = 1; |
} |
} |
if (grep(/^\Q$cloneruname\E:\Q$clonerudom\E$/,@cloneable)) { |
if (grep(/^\Q$cloneruname\E:\Q$clonerudom\E$/,@cloneable)) { |
Line 551 sub build_filters {
|
Line 536 sub build_filters {
|
} else { |
} else { |
$formname = $caller; |
$formname = $caller; |
} |
} |
my $onchange; |
my $onchange = 'javascript:updateFilters(this)'; |
unless ($env{'form.interface'} eq 'textual') { |
|
$onchange = 'javascript:updateFilters(this)'; |
|
} |
|
my ($domainselectform,$sincefilterform,$createdfilterform, |
my ($domainselectform,$sincefilterform,$createdfilterform, |
$ownerdomselectform,$persondomselectform,$instcodeform, |
$ownerdomselectform,$persondomselectform,$instcodeform, |
$typeselectform,$instcodetitle); |
$typeselectform,$instcodetitle); |
Line 619 sub build_filters {
|
Line 601 sub build_filters {
|
} |
} |
} |
} |
|
|
|
|
# last course activity filter and selection |
# last course activity filter and selection |
$sincefilterform = &timebased_select_form('sincefilter',$filter); |
$sincefilterform = &timebased_select_form('sincefilter',$filter); |
|
|
Line 630 sub build_filters {
|
Line 611 sub build_filters {
|
|
|
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'cac' => "$type Activity", |
'cac' => "$type Activity", |
'ccr' => "$type Created", |
'ccr' => "$type Created", |
'cde' => "$type Title", |
'cde' => "$type Title", |
'cdo' => "$type Domain", |
'cdo' => "$type Domain", |
'ins' => 'Institutional Code', |
'ins' => 'Institutional Code', |
Line 816 sub timebased_select_form {
|
Line 797 sub timebased_select_form {
|
$filter->{$item} = $env{'form.'.$item}; |
$filter->{$item} = $env{'form.'.$item}; |
$filter->{$item} =~ s/[^\d-]//g; |
$filter->{$item} =~ s/[^\d-]//g; |
if (!$filter->{$item}) { $filter->{$item}=-1; } |
if (!$filter->{$item}) { $filter->{$item}=-1; } |
return &Apache::loncommon::select_form( |
return &Apache::loncommon::select_form( |
$filter->{$item}, |
$filter->{$item}, |
$item, |
$item, |
( '-1' => '', |
{ '-1' => '', |
'86400' => &mt('today'), |
'86400' => &mt('today'), |
'604800' => &mt('last week'), |
'604800' => &mt('last week'), |
'2592000' => &mt('last month'), |
'2592000' => &mt('last month'), |
Line 828 sub timebased_select_form {
|
Line 809 sub timebased_select_form {
|
'31104000' => &mt('last year'), |
'31104000' => &mt('last year'), |
'select_form_order' => |
'select_form_order' => |
['-1','86400','604800','2592000','7776000', |
['-1','86400','604800','2592000','7776000', |
'15552000','31104000'])); |
'15552000','31104000']}); |
} |
} |
} |
} |
|
|
sub get_coordinator_cloneable { |
sub get_coordinator_cloneable { |
my ($cloneruname,$clonerudom,$type) = @_; |
my ($cloneruname,$clonerudom,$type) = @_; |
if (($cloneruname!~/\w/) || ($clonerudom!~/\w/)) { |
if (&Apache::lonnet::homeserver($cloneruname,$clonerudom) eq 'no_host') { |
my $warning = '<div class="LC_warning">'.&mt('Intended course owner not specified'). |
|
'</div>'; |
|
return ('',$warning); |
|
} elsif (&Apache::lonnet::homeserver($cloneruname,$clonerudom) eq 'no_host') { |
|
my $warning = '<div class="LC_error">'.&mt('Intended course owner does not exist'). |
my $warning = '<div class="LC_error">'.&mt('Intended course owner does not exist'). |
'</div>'; |
'</div>'; |
return ('',$warning); |
return ('',$warning); |
Line 888 sub instcode_selectors {
|
Line 865 sub instcode_selectors {
|
} |
} |
|
|
sub search_courses { |
sub search_courses { |
my ($r,$type,$onlyown,$filter,$numtitles,$cloneruname,$clonerudom,$domcloner) = @_; |
my ($r,$type,$onlyown,$filter,$numtitles,$cloneruname,$clonerudom) = @_; |
my (%courses,%showcourses,$cloner,$ccrole); |
my (%courses,%showcourses,$cloner,$ccrole); |
if ($type eq 'Community') { |
if ($type eq 'Community') { |
$ccrole = 'co'; |
$ccrole = 'co'; |
Line 909 sub search_courses {
|
Line 886 sub search_courses {
|
} |
} |
} |
} |
my $now = time; |
my $now = time; |
my $timefilter = |
my $timefilter = |
($filter->{'sincefilter'}==-1?1:$now-$filter->{'sincefilter'}); |
($filter->{'sincefilter'}==-1?1:$now-$filter->{'sincefilter'}); |
my ($createdbefore,$createdafter); |
my ($createdbefore,$createdafter); |
if (($filter->{'createdfilter'} ne '') && ($filter->{'createdfilter'} !=-1)) { |
if (($filter->{'createdfilter'} ne '') && ($filter->{'createdfilter'} !=-1)) { |
Line 947 sub search_courses {
|
Line 924 sub search_courses {
|
undef,undef,$type,$regexpok,undef,undef, |
undef,undef,$type,$regexpok,undef,undef, |
undef,undef,$cloner,$env{'form.cc_clone'}, |
undef,undef,$cloner,$env{'form.cc_clone'}, |
$filter->{'cloneableonly'}, |
$filter->{'cloneableonly'}, |
$createdbefore,$createdafter,undef, |
$createdbefore,$createdafter); |
$domcloner); |
|
if (($filter->{'personfilter'} ne '') && ($filter->{'persondomfilter'} ne '')) { |
if (($filter->{'personfilter'} ne '') && ($filter->{'persondomfilter'} ne '')) { |
my %rolehash = &Apache::lonnet::get_my_roles($filter->{'personfilter'}, |
my %rolehash = &Apache::lonnet::get_my_roles($filter->{'personfilter'}, |
$filter->{'persondomfilter'}, |
$filter->{'persondomfilter'}, |
Line 1228 Side Effects: None
|
Line 1204 Side Effects: None
|
|
|
=item * |
=item * |
X<search_courses()> |
X<search_courses()> |
B<search_courses($r,$type,$onlyown,$filter,$numtitles,$cloneruname,$clonerudom, |
B<search_courses($r,$type,$onlyown,$filter,$numtitles,$cloneruname,$clonerudom)>: |
$domcloner)>: |
|
|
|
|
|
Input: 8 - request object, course type, search scope: only courses in which user has active role (1), or any course (0); anonymous hash of criteria and their values; for institutional codes - number of categories; optional username of new course owner, optional domain of new course owner). Seventh and eighth needed when search is for courses to clone from course request form, or course creation form (DC). Optional "domcloner" flag (has value=1 if user has ccc priv in domain being filtered by (used when DC is using course creation form). |
Input: 7 - request object, course type, search scope: only courses in which user has active role (1), or any course (0); anonymous hash of criteria and their values; for institutional codes - number of categories; optional username of new course owner, optional domain of new course owner). Last two needed when search is for courses to clone from course request form, or course creation form (DC). |
|
|
Output: 1 - %courses - hash of courses satisfying search criteria, keys = course IDs, values are corresponding colon-separated escaped description, institutional code, owner and type. |
Output: 1 - %courses - hash of courses satisfying search criteria, keys = course IDs, values are corresponding colon-separated escaped description, institutional code, owner and type. |
|
|