--- loncom/interface/lonpickcourse.pm 2005/10/03 23:53:25 1.30 +++ loncom/interface/lonpickcourse.pm 2005/11/15 20:46:40 1.35 @@ -1,7 +1,7 @@ # The LearningOnline Network # Pick a course # -# $Id: lonpickcourse.pm,v 1.30 2005/10/03 23:53:25 raeburn Exp $ +# $Id: lonpickcourse.pm,v 1.35 2005/11/15 20:46:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -55,7 +55,7 @@ ENDDOCUMENT '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; @@ -111,20 +111,19 @@ ENDDOCUMENT $num_sections = &Apache::loncommon::get_sections($cdom,$cnum,\%sections_count); my @sections = (); if ($num_sections > 0) { - @sections = (sort {$a <=> $b} keys %sections_count); + @sections = (sort {$a <=> $b} keys(%sections_count)); $seclist = join('","',@sections); } } -# 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)); my %lt=&Apache::lonlocal::texthash( @@ -155,39 +154,54 @@ ENDDOCUMENT } $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) { - for (var j=0; j 0) { - courses = courses.substr(0,courses.length-2); - opener.document.$env{'form.form'}.courselist.value = courses - } - } - else { + if (typeof(opener.document.$env{'form.form'}.coursepick.length) == + 'undefined') { + if (opener.document.$env{'form.form'}.coursepick.value == 'specific') { + opener.document.$env{'form.form'}.coursepick.checked = true; + } else { + opener.document.$env{'form.form'}.coursepick.checked = false; + } + } else { + for (var j=0; j 0) { + courses = courses.substr(0,courses.length-2); + opener.document.$env{'form.form'}.courselist.value = courses; + } + } else { $name_code opener.document.$env{'form.form'}.$env{'form.cnumelement'}.value=cname; - if (openerForm == 'cu') { + var slct=opener.document.$env{'form.form'}.$env{'form.cdomelement'}; + if (slct.options == undefined) { opener.document.$env{'form.form'}.$env{'form.cdomelement'}.value=cdom; } else { - var slct=opener.document.$env{'form.form'}.$env{'form.cdomelement'}; var i; for (i=0;i $roleelement +$multelement $lt{'cac'}: $sincefilterform
$lt{'cdo'}: $domainselectform @@ -272,8 +284,8 @@ ENDSCRIPT ($domainfilter,$descriptfilter,$timefilter,$instcodefilter,$ownerfilter,$coursefilter); $r->print('
'); my %by_descrip; - my $numcourses = keys %courses; - foreach my $course (keys %courses) { + my $numcourses = keys(%courses); + foreach my $course (keys(%courses)) { my $descr; if ($courses{$course} =~ m/^([^:]*):/) { $descr = &Apache::lonnet::unescape($1); @@ -283,7 +295,7 @@ ENDSCRIPT my $description = lc($descr); push (@{$by_descrip{$description}}, $course); } - if ($numcourses > 1 && $multflag) { + if ($numcourses > 1 && $multiple) { $r->print('    @@ -295,7 +307,7 @@ ENDSCRIPT $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).")"); @@ -305,12 +317,13 @@ ENDSCRIPT unless ($owner eq '') { $r->print(", owner - ".&Apache::lonnet::unescape($owner)); } + if ($multiple) { $r->print("\n"); } $r->print("
\n"); } } if (!%courses) { $r->print(&mt('None found')); - } elsif ($multflag) { + } elsif ($multiple) { $r->print(''); } $r->print(''."\n". @@ -324,10 +337,10 @@ ENDSCRIPT } sub course_chooser { - my ($multflag,$cdom,$cnum,$cleandesc) = @_; + my ($multiple,$cdom,$cnum,$cleandesc) = @_; my $output; - if ($multflag) { - $output = ''."\n"; + if ($multiple) { + $output = '