--- loncom/interface/lonpickcourse.pm 2006/03/16 21:54:40 1.41
+++ loncom/interface/lonpickcourse.pm 2006/05/30 20:12:15 1.48
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Pick a course
#
-# $Id: lonpickcourse.pm,v 1.41 2006/03/16 21:54:40 albertel Exp $
+# $Id: lonpickcourse.pm,v 1.48 2006/05/30 20:12:15 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -34,6 +34,9 @@ use Apache::loncommon;
use Apache::loncoursedata;
use Apache::lonnet;
use Apache::lonlocal;
+use Apache::longroup;
+use lib '/home/httpd/lib/perl/';
+use LONCAPA;
sub handler {
my $r = shift;
@@ -49,7 +52,8 @@ sub handler {
'sincefilter','form','cnumelement',
'cdomelement','cnameelement','roleelement',
'pickedcourse','instcodefilter',
- 'ownerfilter','coursefilter','multiple']);
+ 'ownerfilter','coursefilter','multiple',
+ 'type']);
# domain filter and selection
my $domainfilter=$env{'form.domainfilter'};
$domainfilter=~s/\W//g;
@@ -96,38 +100,55 @@ sub handler {
['-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);
+ $num_sections = scalar(@sections);
+ my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
+ $groupslist = join(',',sort(keys(%curr_groups)));
}
my $jscript;
- my $title = 'Selecting a course';
+ my $type = $env{'form.type'};
+ if (!defined($env{'form.type'})) {
+ $type = 'Course';
+ }
+ my $typeselectform = '";
+ my $title = &mt('Selecting a [_1]',$type);
# Setup for multiple course selections, if flag for multiples set.
my $multiple = $env{'form.multiple'};
my $multelement;
if ($multiple) {
- $title = 'Selecting course(s)';
+ $title = &mt('Selecting [_1](s)',lc($type));
$jscript = &Apache::loncommon::check_uncheck_jscript();
$multelement = '';
}
$r->print(&Apache::loncommon::start_page($title,undef,
- {'add_entries' => $loaditem,
+ {'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 Username");
+ my %lt = (
+ 'cac' => &mt('[_1] Activity',$type),
+ 'cde' => &mt('[_1] Description',$type),
+ 'cdo' => &mt('[_1] Domain',$type),
+ 'cin' => &mt('Course Institutional Code'),
+ 'cow' => &mt("[_1] Owner's Username",$type),
+ 'cog' => &mt('Course or Group')
+ );
+
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;";
@@ -148,6 +169,25 @@ sub handler {
$submitopener = &Apache::lonroles::processpick();
$autosubmit = 'process_pick("'.$roledom.'")';
}
+ my $instcodeform;
+ if ($type eq 'Course') {
+ $instcodeform = $lt{'cin'}.':
';
+ }
+
+ my %elements = (
+ Course => {
+ name => 'coursepick',
+ total => 'coursetotal',
+ list => 'courselist',
+ },
+ Group => {
+ name => 'grouppick',
+ total => 'grouptotal',
+ list => 'grouplist',
+ },
+ );
+
$r->print(<
function gochoose(cname,cdom,cdesc,multiple,caller) {
@@ -169,26 +209,26 @@ function gochoose(cname,cdom,cdesc,multi
}
}
}
- opener.document.$env{'form.form'}.coursetotal.value = courseCount;
- if (typeof(opener.document.$env{'form.form'}.coursepick.length) ==
+ opener.document.$env{'form.form'}.$elements{$type}{'total'}.value = courseCount;
+ if (typeof(opener.document.$env{'form.form'}.$elements{$type}{'name'}.length) ==
'undefined') {
- if (opener.document.$env{'form.form'}.coursepick.value == 'specific') {
- opener.document.$env{'form.form'}.coursepick.checked = true;
+ if (opener.document.$env{'form.form'}.$elements{$type}{'name'}.value == 'specific') {
+ opener.document.$env{'form.form'}.$elements{$type}{'name'}.checked = true;
} else {
- opener.document.$env{'form.form'}.coursepick.checked = false;
+ opener.document.$env{'form.form'}.$elements{$type}{'name'}.checked = false;
}
} else {
- for (var j=0; j 0) {
courses = courses.substr(0,courses.length-2);
- opener.document.$env{'form.form'}.courselist.value = courses;
+ opener.document.$env{'form.form'}.$elements{$type}{'list'}.value = courses;
}
} else {
$name_code
@@ -236,13 +276,14 @@ function setSections() {
opener.document.$env{"form.form"}.currsec.options[0].selected = false
}
}
+ opener.document.$env{"form.form"}.groups.value='$groupslist';
self.close()
}
$jscript
$submitopener
-