version 1.57, 2006/11/14 16:51:42
|
version 1.65, 2007/10/06 04:32:49
|
Line 35 use Apache::loncoursedata;
|
Line 35 use Apache::loncoursedata;
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::longroup; |
use Apache::longroup; |
use lib '/home/httpd/lib/perl/'; |
|
use LONCAPA; |
use LONCAPA; |
|
|
sub handler { |
sub handler { |
Line 79 sub handler {
|
Line 78 sub handler {
|
|
|
my $onlyown = 0; |
my $onlyown = 0; |
# if called to assign course-based portfolio access control |
# if called to assign course-based portfolio access control |
if ((($env{'form.form'} eq 'portform') && ($env{'user.adv'}))) { |
if ((($env{'form.form'} eq 'portform') && (!$env{'user.adv'}))) { |
$onlyown = 1; |
$onlyown = 1; |
} |
} |
|
|
Line 108 sub handler {
|
Line 107 sub handler {
|
|
|
# print javascript functions for choosing a course |
# print javascript functions for choosing a course |
if ($env{'form.gosearch'} || $onlyown) { |
if ($env{'form.gosearch'} || $onlyown) { |
$r->print(&gochoose_javascript($type,$autosubmit,$lastaction)); |
$r->print(&gochoose_javascript($type,$multiple,$autosubmit,$lastaction)); |
} |
} |
$r->print('<script type="text/javascript">'.$jscript.'</script>'); |
$r->print('<script type="text/javascript">'.$jscript.'</script>'); |
$r->print($submitopener); |
$r->print($submitopener); |
Line 176 sub display_matched_courses {
|
Line 175 sub display_matched_courses {
|
my $numcourses = keys(%courses); |
my $numcourses = keys(%courses); |
foreach my $course (keys(%courses)) { |
foreach my $course (keys(%courses)) { |
my $descr; |
my $descr; |
if ($courses{$course} =~ m/^([^:]*):/i) { |
if (ref($courses{$course}) eq 'HASH') { |
|
$descr = $courses{$course}{'description'}; |
|
} elsif ($courses{$course} =~ m/^([^:]*):/i) { |
$descr = &unescape($1); |
$descr = &unescape($1); |
} else { |
} else { |
$descr = &unescape($courses{$course}); |
$descr = &unescape($courses{$course}); |
Line 196 sub display_matched_courses {
|
Line 197 sub display_matched_courses {
|
my $cleandesc=&HTML::Entities::encode($description,'<>&"'); |
my $cleandesc=&HTML::Entities::encode($description,'<>&"'); |
$cleandesc=~s/'/\\'/g; |
$cleandesc=~s/'/\\'/g; |
my ($cdom,$cnum)=split(/\_/,$course); |
my ($cdom,$cnum)=split(/\_/,$course); |
my ($descr,$instcode,$owner,$ttype) = split/:/,$courses{$course}; |
my ($descr,$instcode,$ttype,@owners); |
|
if (ref($courses{$course}) eq 'HASH') { |
|
$descr = $courses{$course}{'description'}; |
|
$instcode = $courses{$course}{'inst_code'}; |
|
$ttype = $courses{$course}{'type'}; |
|
push(@owners,&unescape($courses{$course}{'owner'})); |
|
if (ref($courses{$course}{'co-owners'}) eq 'ARRAY') { |
|
foreach my $item (@{$courses{$course}{'co-owners'}}) { |
|
push(@owners,&unescape($item)); |
|
} |
|
} |
|
} else { |
|
my $singleowner; |
|
($descr,$instcode,$singleowner,$ttype)=split(/:/,$courses{$course}); |
|
push(@owners,&unescape($singleowner)); |
|
} |
|
my $owner = join(', ',@owners); |
$r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc)); |
$r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc)); |
$r->print($description.'('. |
$r->print($description.'('. |
($Apache::lonnet::domaindescription{$cdom}? |
(&Apache::lonnet::domain($cdom,'description')? |
$Apache::lonnet::domaindescription{$cdom}:$cdom).")"); |
&Apache::lonnet::domain($cdom,'description'):$cdom).")"); |
unless ($instcode eq '') { |
if ($instcode ne '') { |
$r->print(" - ".&unescape($instcode)); |
$r->print(" - ".&unescape($instcode)); |
} |
} |
unless ($owner eq '') { |
if (@owners > 1) { |
$r->print(", owner - ".&unescape($owner)); |
$r->print(', '.&mt('owners').' - ',join(', ',@owners)); |
|
} elsif (@owners == 1) { |
|
$r->print(', '.&mt('owner').' - '.$owner); |
} |
} |
unless ($ttype eq '') { |
if ($ttype ne '') { |
$r->print('('.&unescape($ttype).')'); |
$r->print('('.&unescape($ttype).')'); |
} |
} |
if ($multiple) { $r->print("</label>\n"); } |
if ($multiple) { $r->print("</label>\n"); } |
Line 266 sub build_filters {
|
Line 285 sub build_filters {
|
foreach my $item (@{$filterlist}) { |
foreach my $item (@{$filterlist}) { |
$filter->{$item} = $env{'form.'.$item}; |
$filter->{$item} = $env{'form.'.$item}; |
if ($item ne 'descriptfilter' && $item ne 'instcodefilter') { |
if ($item ne 'descriptfilter' && $item ne 'instcodefilter') { |
$filter->{$item} =~ s/\W//g; |
if ($item eq 'domainfilter' || $item eq 'ownerdomfilter') { |
|
$filter->{$item} = &LONCAPA::clean_domain($filter->{$item}); |
|
} elsif ($item eq 'coursefilter') { |
|
$filter->{$item} = &LONCAPA::clean_courseid($filter->{$item}); |
|
} elsif ($item eq 'ownerfilter') { |
|
$filter->{$item} = &LONCAPA::clean_username($filter->{$item}); |
|
} else { |
|
$filter->{$item} =~ s/\W//g; |
|
} |
if (!$filter->{$item}) { |
if (!$filter->{$item}) { |
$filter->{$item} = ''; |
$filter->{$item} = ''; |
} |
} |
} |
} |
if ($item eq 'domainfilter') { |
if ($item eq 'domainfilter') { |
|
my $allow_blank = 1; |
|
if ($formname eq 'portform') { |
|
$filter->{$item} ||= $env{'user.domain'}; |
|
$allow_blank=0; |
|
} |
$domainselectform = |
$domainselectform = |
&Apache::loncommon::select_dom_form($filter->{$item},'domainfilter',1); |
&Apache::loncommon::select_dom_form($filter->{$item}, |
|
'domainfilter', |
|
$allow_blank); |
} elsif ($item eq 'ownerdomfilter') { |
} elsif ($item eq 'ownerdomfilter') { |
$ownerdomselectform = |
$ownerdomselectform = |
&Apache::loncommon::select_dom_form($filter->{$item},'ownerdomfilter',1); |
&Apache::loncommon::select_dom_form($filter->{$item},'ownerdomfilter',1); |
Line 308 sub build_filters {
|
Line 342 sub build_filters {
|
'cog' => &mt('Course Type') |
'cog' => &mt('Course Type') |
); |
); |
|
|
$typeselectform = '<select name="type" size="1"'; |
$typeselectform = '<select name="type" size="1">'."\n"; |
$typeselectform .= ">\n"; |
|
if ($type eq 'Course') { |
if ($type eq 'Course') { |
$instcodeform = |
$instcodeform = |
'<input type="text" name="instcodefilter" size="10" value="'. |
'<input type="text" name="instcodefilter" size="10" value="'. |
Line 339 $name_input
|
Line 372 $name_input
|
$roleelement |
$roleelement |
$multelement |
$multelement |
|; |
|; |
|
if ($formname eq 'portform') { |
|
$output .= '<input type="hidden" name="setroles" value="'.$env{'form.setroles'}.'" />'; |
|
} |
} |
} |
if ($sincefilterform) { |
if ($sincefilterform) { |
$output .= $lt{'cac'}.': '.$sincefilterform.'<br />'."\n"; |
$output .= $lt{'cac'}.': '.$sincefilterform.'<br />'."\n"; |
Line 406 sub search_courses {
|
Line 442 sub search_courses {
|
undef,undef,$type); |
undef,undef,$type); |
} else { |
} else { |
$r->print('<br />'); |
$r->print('<br />'); |
foreach my $cid (sort(&Apache::loncommon::findallcourses())) { |
my %coursehash = &Apache::loncommon::findallcourses(); |
$courses{$cid} = $env{'course.'.$cid.'.description'}; |
foreach my $cid (sort(keys(%coursehash))) { |
|
$courses{$cid}{'description'} = $env{'course.'.$cid.'.description'}; |
} |
} |
} |
} |
return %courses; |
return %courses; |