--- loncom/interface/lonpickcourse.pm 2003/03/26 00:26:16 1.1
+++ loncom/interface/lonpickcourse.pm 2005/01/27 19:20:55 1.24
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Pick a course
#
-# $Id: lonpickcourse.pm,v 1.1 2003/03/26 00:26:16 www Exp $
+# $Id: lonpickcourse.pm,v 1.24 2005/01/27 19:20:55 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;
@@ -47,40 +48,219 @@ sub handler {
The LearningOnline Network with CAPA
ENDDOCUMENT
-
-# Is this even in a course?
-
+# 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;
- unless ($domainfilter) { $domainfilter='.'; }
+ unless ($domainfilter) { $domainfilter=''; }
+ my $domainselectform=&Apache::loncommon::select_dom_form($domainfilter,
+ 'domainfilter',1);
+# description filter
my $descriptfilter=$ENV{'form.descriptfilter'};
- $descriptfilter=~s/\W//g;
- unless ($descriptfilter) { $descriptfilter='.'; }
+ 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;
- unless ($sincefilter) { $sincefilter=0; }
-
- $r->print(&Apache::loncommon::bodytag("Selecting a Course"));
+ $sincefilter=~s/[^\d-]//g;
+ unless ($sincefilter) { $sincefilter=-1; }
+ my $sincefilterform=&Apache::loncommon::select_form($sincefilter,
+ 'sincefilter',('-1'=>'',
+ '86400' => 'today',
+ '604800' => 'last week',
+ '2592000' => 'last month',
+ '7776000' => 'last three months',
+ '15552000' => 'last six months',
+ '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(&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,$instcodefilter,$ownerfilter);
+ $r->print('');
+ }
$r->print('