--- loncom/interface/lonpickcourse.pm 2007/10/03 19:57:29 1.64 +++ loncom/interface/lonpickcourse.pm 2007/11/06 04:39:19 1.67 @@ -1,7 +1,7 @@ # The LearningOnline Network # Pick a course # -# $Id: lonpickcourse.pm,v 1.64 2007/10/03 19:57:29 raeburn Exp $ +# $Id: lonpickcourse.pm,v 1.67 2007/11/06 04:39:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -72,7 +72,7 @@ sub handler { my $roledom = $env{'form.roleelement'}; if ($roledom) { $roleelement = ''; - $submitopener = &Apache::lonroles::processpick(); + $submitopener = &processpick(); $autosubmit = 'process_pick("'.$roledom.'")'; } @@ -83,7 +83,8 @@ sub handler { } my %loaditem; - if ($env{'form.form'} eq 'cu' && $env{'form.pickedcourse'}) { + if ((($env{'form.form'} eq 'cu') || ($env{'form.form'} eq 'studentform')) && + ($env{'form.pickedcourse'})) { $loaditem{'onload'} ="setSections()"; } $r->print(&Apache::loncommon::start_page($title,undef, @@ -92,7 +93,8 @@ sub handler { if ($env{'form.form'} eq 'portform') { $lastaction = 'document.courselist.submit()'; - } elsif ($env{'form.form'} eq 'cu') { + } elsif ($env{'form.form'} eq 'cu' || ($env{'form.form'} eq 'studentform' && + !$multiple)) { $lastaction = 'document.courselist.pickedcourse.value = cdom+"_"+cname;'."\n". 'document.courselist.submit();'; @@ -101,7 +103,7 @@ sub handler { } # if called to assign a role in a course to a user via CUSR - if ($env{'form.form'} eq 'cu') { + if ($env{'form.form'} eq 'cu' || $env{'form.form'} eq 'studentform') { $r->print(&create_user_javascript($type)); } @@ -137,6 +139,49 @@ sub handler { return OK; } +sub processpick { + my $openerform = 'rolechoice'; + if ($env{'form.form'} eq 'studentform') { + $openerform = $env{'form.form'}; + } + my $process_pick = <<"ENDONE"; + +"; + return $process_pick; +} + sub create_user_javascript { my ($type) = @_; my $output; @@ -176,7 +221,7 @@ sub display_matched_courses { foreach my $course (keys(%courses)) { my $descr; if (ref($courses{$course}) eq 'HASH') { - $descr = &unescape($courses{$course}{'description'}); + $descr = $courses{$course}{'description'}; } elsif ($courses{$course} =~ m/^([^:]*):/i) { $descr = &unescape($1); } else { @@ -200,7 +245,7 @@ sub display_matched_courses { my ($descr,$instcode,$ttype,@owners); if (ref($courses{$course}) eq 'HASH') { $descr = $courses{$course}{'description'}; - $instcode = $courses{$course}{'instcode'}; + $instcode = $courses{$course}{'inst_code'}; $ttype = $courses{$course}{'type'}; push(@owners,&unescape($courses{$course}{'owner'})); if (ref($courses{$course}{'co-owners'}) eq 'ARRAY') { @@ -303,7 +348,10 @@ sub build_filters { if ($formname eq 'portform') { $filter->{$item} ||= $env{'user.domain'}; $allow_blank=0; - } + } elsif ($formname eq 'studentform') { + $filter->{$item} ||= $env{'request.role.domain'}; + $allow_blank=0; + } $domainselectform = &Apache::loncommon::select_dom_form($filter->{$item}, 'domainfilter', @@ -342,8 +390,7 @@ sub build_filters { 'cog' => &mt('Course Type') ); - $typeselectform = '