--- loncom/interface/lonpickcourse.pm 2003/11/04 16:33:10 1.12
+++ loncom/interface/lonpickcourse.pm 2004/12/28 05:55:11 1.23
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Pick a course
#
-# $Id: lonpickcourse.pm,v 1.12 2003/11/04 16:33:10 albertel Exp $
+# $Id: lonpickcourse.pm,v 1.23 2004/12/28 05:55:11 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -51,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;
@@ -60,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;
@@ -78,35 +87,120 @@ ENDDOCUMENT
'select_form_order' =>
['-1','86400','604800','2592000','7776000',
'15552000','31104000']));
-
- $r->print(&Apache::loncommon::bodytag("Selecting a Course"));
+# 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');
+ '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
@@ -116,30 +210,44 @@ ENDSCRIPT
$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('');
+ $r->print(''."\n".
+ ''."\n".
+ ''."\n".
+ ''."\n".
+ '');
}
$r->print('