--- loncom/interface/lonpickcourse.pm 2005/10/14 18:43:13 1.33 +++ loncom/interface/lonpickcourse.pm 2006/05/18 01:08:50 1.46 @@ -1,7 +1,7 @@ # The LearningOnline Network # Pick a course # -# $Id: lonpickcourse.pm,v 1.33 2005/10/14 18:43:13 albertel Exp $ +# $Id: lonpickcourse.pm,v 1.46 2006/05/18 01:08:50 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -34,6 +34,7 @@ use Apache::loncommon; use Apache::loncoursedata; use Apache::lonnet; use Apache::lonlocal; +use Apache::longroup; sub handler { my $r = shift; @@ -42,20 +43,14 @@ sub handler { return OK if $r->header_only; # ------------------------------------------------------------ Print the screen - my $html=&Apache::lonxml::xmlbegin(); - $r->print(< -The LearningOnline Network with CAPA - -ENDDOCUMENT + # Get parameters from query string &Apache::loncommon::get_unprocessed_cgi ($ENV{'QUERY_STRING'},['domainfilter','descriptfilter', 'sincefilter','form','cnumelement', 'cdomelement','cnameelement','roleelement', 'pickedcourse','instcodefilter', - 'ownerfilter','coursefilter']); + 'ownerfilter','coursefilter','multiple']); # domain filter and selection my $domainfilter=$env{'form.domainfilter'}; $domainfilter=~s/\W//g; @@ -82,7 +77,7 @@ ENDDOCUMENT unless ($coursefilter) { $coursefilter=''; } my $listcourseid=&HTML::Entities::encode($coursefilter,'<>&"'); $courseidtag = &mt('LON-CAPA course ID'); - $courseidtag .= qq| + $courseidtag .= qq|:
|; } @@ -102,37 +97,38 @@ ENDDOCUMENT ['-1','86400','604800','2592000','7776000', '15552000','31104000'])); # if called from loncreateuser, report sections, then close - my ($loaditem,$seclist); + my (%loaditem,$seclist,$groupslist); my $num_sections = 0; if ($env{'form.form'} eq 'cu' && $env{'form.pickedcourse'}) { - $loaditem = 'onLoad="setSections()"'; + $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); - } + + my %sections_count = &Apache::loncommon::get_sections($cdom,$cnum); + my @sections = (sort {$a <=> $b} keys(%sections_count)); + $seclist = join('","',@sections); + + my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum); + $groupslist = join(',',sort(keys(%curr_groups))); } -# if called from rolefilter, setup for multiple course selections. - my $multflag = 0; my $jscript; my $title = 'Selecting a course'; - if ($env{'form.form'} eq 'rolefilter') { - $multflag = 1; +# Setup for multiple course selections, if flag for multiples set. + my $multiple = $env{'form.multiple'}; + my $multelement; + if ($multiple) { $title = 'Selecting course(s)'; - } - if ($multflag) { $jscript = &Apache::loncommon::check_uncheck_jscript(); + $multelement = ''; } - $r->print(&Apache::loncommon::bodytag($title,undef,$loaditem,undef,undef,undef,undef,1)); + $r->print(&Apache::loncommon::start_page($title,undef, + {'add_entries' => \%loaditem, + 'no_nav_bar' => 1, })); my %lt=&Apache::lonlocal::texthash( 'cac' => 'Course Activity', 'cde' => 'Course Description', 'cdo' => 'Course Domain', 'cin' => 'Course Institutional Code', - 'cow' => "Course Owner's usename"); + 'cow' => "Course Owner's Username"); 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;"; @@ -150,16 +146,16 @@ ENDDOCUMENT my $roledom = $env{'form.roleelement'}; if ($roledom) { $roleelement = ''; - $submitopener = &Apache::lonroles::processpick($roledom); + $submitopener = &Apache::lonroles::processpick(); $autosubmit = 'process_pick("'.$roledom.'")'; } $r->print(< -function gochoose(cname,cdom,cdesc,multflag,caller) { +function gochoose(cname,cdom,cdesc,multiple,caller) { var openerForm = "$env{'form.form'}"; courseCount = 0; var courses = ''; - if (multflag) { + if (multiple) { if (typeof(document.courselist.course_id.length) == 'undefined') { // only 1 course checkbox was created if (document.courselist.course_id.checked) { @@ -186,8 +182,7 @@ function gochoose(cname,cdom,cdesc,multf for (var j=0; j $roleelement +$multelement $lt{'cac'}: $sincefilterform
$lt{'cdo'}: $domainselectform @@ -292,27 +285,28 @@ ENDSCRIPT my $numcourses = keys(%courses); foreach my $course (keys(%courses)) { my $descr; - if ($courses{$course} =~ m/^([^:]*):/) { + if ($courses{$course} =~ m/^([^:]*):/i) { $descr = &Apache::lonnet::unescape($1); } else { $descr = &Apache::lonnet::unescape($courses{$course}); } - my $description = lc($descr); + my $description = $descr; push (@{$by_descrip{$description}}, $course); } - if ($numcourses > 1 && $multflag) { + if ($numcourses > 1 && $multiple) { $r->print('   

'); } - foreach my $description (sort(keys(%by_descrip))) { + foreach my $description (sort + { lc($a) cmp lc($b) } (keys(%by_descrip))) { foreach my $course (@{$by_descrip{$description}}) { my $cleandesc=&HTML::Entities::encode($description,'<>&"'); $cleandesc=~s/'/\\'/g; my ($cdom,$cnum)=split(/\_/,$course); my ($descr,$instcode,$owner) = split/:/,$courses{$course}; - $r->print(&course_chooser($multflag,$cdom,$cnum,$cleandesc)); + $r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc)); $r->print($description.'('. ($Apache::lonnet::domaindescription{$cdom}? $Apache::lonnet::domaindescription{$cdom}:$cdom).")"); @@ -322,29 +316,32 @@ ENDSCRIPT unless ($owner eq '') { $r->print(", owner - ".&Apache::lonnet::unescape($owner)); } - if ($multflag) { $r->print("\n"); } + if ($multiple) { $r->print("\n"); } $r->print("
\n"); } } if (!%courses) { $r->print(&mt('None found')); - } elsif ($multflag) { + } elsif ($multiple) { $r->print(''); } $r->print(''."\n". ''."\n". ''."\n". - ''."\n". - ''); + ''."\n"); + if ((exists($env{'form.roleelement'})) && ($env{'form.form'} eq 'rolechoice')) { + $r->print(''."\n"); + } + $r->print("\n"); } - $r->print(''); + $r->print(&Apache::loncommon::end_page()); return OK; } sub course_chooser { - my ($multflag,$cdom,$cnum,$cleandesc) = @_; + my ($multiple,$cdom,$cnum,$cleandesc) = @_; my $output; - if ($multflag) { + if ($multiple) { $output = '