version 1.93.2.2, 2010/08/20 20:14:03
|
version 1.94, 2010/03/16 05:11:40
|
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') { |
|
my $loncaparev = &Apache::lonnet::get_server_loncaparev($env{'form.domainfilter'}); |
my $loncaparev = &Apache::lonnet::get_server_loncaparev($env{'form.domainfilter'}); |
if ($loncaparev ne 'unknown_cmd') { |
if ($loncaparev ne 'unknown_cmd') { |
push(@{$filterlist},'createdfilter'); |
push(@{$filterlist},'createdfilter'); |
} |
} |
} |
} |
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 182 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 404 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 414 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 619 sub build_filters {
|
Line 603 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 613 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 799 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' => '', |
Line 884 sub instcode_selectors {
|
Line 867 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 905 sub search_courses {
|
Line 888 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 943 sub search_courses {
|
Line 926 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 1224 Side Effects: None
|
Line 1206 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. |
|
|