--- loncom/interface/lonpickcourse.pm 2006/05/30 20:12:15 1.48
+++ loncom/interface/lonpickcourse.pm 2006/06/22 13:02:22 1.49
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Pick a course
#
-# $Id: lonpickcourse.pm,v 1.48 2006/05/30 20:12:15 raeburn Exp $
+# $Id: lonpickcourse.pm,v 1.49 2006/06/22 13:02:22 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -100,28 +100,125 @@ sub handler {
['-1','86400','604800','2592000','7776000',
'15552000','31104000']));
# if called from loncreateuser, report sections, then close
- my (%loaditem,$seclist,$groupslist);
+ my (%loaditem,$seclist,$groupslist,$roleslist,$rolesnameslist,$sec_element,
+ $grplist_element,$accesslist,$accessnameslist);
+ my $sec_element = 'currsec';
+ my $grplist_element = 'groups';
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 = &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 $num_groups = 0;
+ my $num_roles = 0;
+ my $num_access = 0;
+ my ($cdom,$cnum);
+ if ($env{'form.pickedcourse'}) {
+ ($cdom,$cnum) = split/_/,$env{'form.pickedcourse'};
}
- my $jscript;
my $type = $env{'form.type'};
if (!defined($env{'form.type'})) {
$type = 'Course';
}
- my $typeselectform = '';
@@ -251,35 +352,37 @@ function gochoose(cname,cdom,cdesc,multi
function setSections() {
var numSections = $num_sections
var sectionsArray = new Array("$seclist")
- opener.document.$env{"form.form"}.currsec.length = 0
+ opener.document.$env{"form.form"}.$sec_element.length = 0
if (numSections == 0) {
- opener.document.$env{"form.form"}.currsec.multiple=false
- opener.document.$env{"form.form"}.currsec.size=1;
- opener.document.$env{"form.form"}.currsec.options[0] = new Option('No existing sections','',false,false)
+ opener.document.$env{"form.form"}.$sec_element.multiple=false
+ opener.document.$env{"form.form"}.$sec_element.size=1;
+ opener.document.$env{"form.form"}.$sec_element.options[0] = new Option('No existing sections','',false,false)
} else {
if (numSections == 1) {
- opener.document.$env{"form.form"}.currsec.multiple=false;
- opener.document.$env{"form.form"}.currsec.size=1;
- opener.document.$env{"form.form"}.currsec.options[0] = new Option('Select','',true,true);
- opener.document.$env{"form.form"}.currsec.options[1] = new Option('No section','',false,false)
- opener.document.$env{"form.form"}.currsec.options[2] = new Option(sectionsArray[0],sectionsArray[0],false,false);
+ opener.document.$env{"form.form"}.$sec_element.multiple=false;
+ opener.document.$env{"form.form"}.$sec_element.size=1;
+ opener.document.$env{"form.form"}.$sec_element.options[0] = new Option('Select','',true,true);
+ opener.document.$env{"form.form"}.$sec_element.options[1] = new Option('No section','',false,false)
+ opener.document.$env{"form.form"}.$sec_element.options[2] = new Option(sectionsArray[0],sectionsArray[0],false,false);
} else {
for (var i=0; i
$submitopener
@@ -392,7 +495,53 @@ sub course_chooser {
"'".$cnum."','".$cdom."','".$cleandesc."')".'" />'."\n";
}
return $output;
-}
+}
+
+sub build_selection_lists {
+ my ($cdom,$cnum,$type,$needroles,$needaccess,$caller) = @_;
+ my ($sections,$groups,$allroles,$roleshash,$accesshash) =
+ &Apache::loncommon::get_secgrprole_info($cdom,$cnum,$needroles,$type);
+ if ($caller eq 'portform') {
+ if (@{$sections} == 0) {
+ @{$sections} = ('none');
+ } else {
+ unshift(@{$sections},('all','none'));
+ }
+ if (@{$groups} == 0) {
+ @{$groups} = ('none');
+ } else {
+ unshift(@{$groups},('all','none'));
+ }
+
+ }
+ my $num_sections = scalar(@{$sections});
+ my $seclist = join('","',@{$sections});
+ my $num_groups = scalar(@{$groups});
+ my $groupslist = join('","',@{$groups});
+ my ($roleslist,$num_roles,$rolesnameslist,$num_access,$accesslist,
+ $accessnameslist);
+ if ($needroles) {
+ $num_roles = @{$allroles};
+ $roleslist = join('","',@{$allroles});
+ my @allrolesnames;
+ foreach my $role (@{$allroles}) {
+ push(@allrolesnames,$$roleshash{$role});
+ }
+ $rolesnameslist = join('","',@allrolesnames);
+ }
+ if ($needaccess) {
+ $num_access = keys(%{$accesshash});
+ my (@allaccess,@allaccessnames);
+ foreach my $key (sort(keys(%{$accesshash}))) {
+ push(@allaccess,$key);
+ push(@allaccessnames,$$accesshash{$key});
+ }
+ $accesslist = join('","',@allaccess);
+ $accessnameslist = join('","',@allaccessnames);
+ }
+ return ($seclist,$num_sections,$groupslist,$num_groups,$roleslist,
+ $num_roles,$rolesnameslist,$accesslist,$num_access,$accessnameslist);
+}
1;
__END__