--- loncom/interface/lonpickcourse.pm 2003/03/27 20:56:30 1.6
+++ loncom/interface/lonpickcourse.pm 2004/11/30 00:21:24 1.21
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Pick a course
#
-# $Id: lonpickcourse.pm,v 1.6 2003/03/27 20:56:30 www Exp $
+# $Id: lonpickcourse.pm,v 1.21 2004/11/30 00:21:24 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -33,10 +33,11 @@ use Apache::Constants qw(:common);
use Apache::loncommon;
use Apache::loncoursedata;
use Apache::lonnet;
+use Apache::lonlocal;
sub handler {
my $r = shift;
- $r->content_type('text/html');
+ &Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
return OK if $r->header_only;
@@ -50,7 +51,9 @@ ENDDOCUMENT
# Get parameters from query string
&Apache::loncommon::get_unprocessed_cgi
($ENV{'QUERY_STRING'},['domainfilter','descriptfilter',
- 'sincefilter','form','cnumelement','cdomelement']);
+ 'sincefilter','form','cnumelement',
+ 'cdomelement','cnameelement','roleelement',
+ 'pickedcourse','instcodefilter','ownerfilter']);
# domain filter and selection
my $domainfilter=$ENV{'form.domainfilter'};
$domainfilter=~s/\W//g;
@@ -59,9 +62,16 @@ ENDDOCUMENT
'domainfilter',1);
# description filter
my $descriptfilter=$ENV{'form.descriptfilter'};
- $descriptfilter=~s/[^\w\s]//g;
unless ($descriptfilter) { $descriptfilter=''; }
-
+ my $listdescript=&HTML::Entities::encode($descriptfilter,'<>&"');
+# institutional code filter
+ my $instcodefilter=$ENV{'form.instcodefilter'};
+ unless ($instcodefilter) { $instcodefilter=''; }
+ my $listinstcode=&HTML::Entities::encode($instcodefilter,'<>&"');
+# course owner filter
+ my $ownerfilter=$ENV{'form.ownerfilter'};
+ unless ($ownerfilter) { $ownerfilter=''; }
+ my $listowner=&HTML::Entities::encode($ownerfilter,'<>&"');
# last course activity filter and selection
my $sincefilter=$ENV{'form.sincefilter'};
$sincefilter=~s/[^\d-]//g;
@@ -73,59 +83,160 @@ ENDDOCUMENT
'2592000' => 'last month',
'7776000' => 'last three months',
'15552000' => 'last six months',
- '31104000' => 'last year'));
-
- $r->print(&Apache::loncommon::bodytag("Selecting a Course"));
+ '31104000' => 'last year',
+ 'select_form_order' =>
+ ['-1','86400','604800','2592000','7776000',
+ '15552000','31104000']));
+# if called from loncreateuser, report sections, then close
+ my ($loaditem,$seclist);
+ my $num_sections = 0;
+ if ($ENV{'form.form'} eq 'cu' && $ENV{'form.pickedcourse'}) {
+ $loaditem = 'onLoad="setSections()"';
+ my ($cdom,$cnum) = split/_/,$ENV{'form.pickedcourse'};
+ my %sections_count = ();
+ $num_sections = &Apache::loncommon::get_sections($cdom,$cnum,\%sections_count);
+ my @sections = ();
+ if ($num_sections > 0) {
+ @sections = (sort {$a <=> $b} keys %sections_count);
+ $seclist = join('","',@sections);
+ }
+ }
+ $r->print(&Apache::loncommon::bodytag("Selecting a Course",undef,$loaditem));
+ my %lt=&Apache::lonlocal::texthash(
+ 'cac' => 'Course Activity',
+ 'cde' => 'Course Description',
+ 'cdo' => 'Course Domain',
+ 'cin' => 'Course Institutional Code',
+ 'cow' => "Course Owner's usename");
+ my ($name_code,$name_input);
+ if (defined($ENV{'form.cnameelement'}) && $ENV{'form.cnameelement'} ne '') {
+ $name_code = "opener.document.$ENV{'form.form'}.$ENV{'form.cnameelement'}.value=cdesc;";
+ $name_input ='';
+ }
+ my $submitopener = '';
+ my $autosubmit = '';
+ my $roleelement = '';
+ my $lastaction = 'self.close()';
+ if ($ENV{'form.form'} eq 'cu') {
+ $lastaction = 'document.courselist.pickedcourse.value = cdom+"_"+cname;'."\n".
+ 'document.courselist.submit();';
+ }
+ my $roledom = $ENV{'form.roleelement'};
+ if ($roledom) {
+ $roleelement = '';
+ $submitopener = &Apache::lonroles::processpick($roledom);
+ $autosubmit = 'process_pick("'.$roledom.'")';
+ }
$r->print(<
-function gochoose(cname,cdom) {
+function gochoose(cname,cdom,cdesc) {
+ $name_code
+ var openerForm = "$ENV{'form.form'}";
opener.document.$ENV{'form.form'}.$ENV{'form.cnumelement'}.value=cname;
- var slct=opener.document.$ENV{'form.form'}.$ENV{'form.cdomelement'};
- var i;
- for (i=0;i
+$submitopener
ENDSCRIPT
# ---------------------------------------------------------------- Get the data
if ($ENV{'form.gosearch'}) {
- $r->print('Searching ...
');
+ $r->print(&mt('Searching').' ...
');
$r->rflush();
unless ($descriptfilter) { $descriptfilter='.'; }
+ unless ($instcodefilter) { $instcodefilter='.'; }
+ unless ($ownerfilter) { $ownerfilter='.'; }
my $timefilter=($sincefilter==-1?1:time-$sincefilter);
my %courses=
&Apache::lonnet::courseiddump
- ($domainfilter,$descriptfilter,$timefilter);
- $r->print('');
+ if (!%courses) { $r->print(&mt('None found')); }
+ $r->print(''."\n".
+ ''."\n".
+ ''."\n".
+ ''."\n".
+ '');
}
$r->print('