--- loncom/interface/lonpickcourse.pm 2009/10/30 04:44:56 1.87 +++ loncom/interface/lonpickcourse.pm 2010/03/16 05:11:40 1.94 @@ -1,7 +1,7 @@ # The LearningOnline Network # Pick a course # -# $Id: lonpickcourse.pm,v 1.87 2009/10/30 04:44:56 raeburn Exp $ +# $Id: lonpickcourse.pm,v 1.94 2010/03/16 05:11:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -51,7 +51,7 @@ sub handler { ($ENV{'QUERY_STRING'},['domainfilter','form','cnumelement', 'cdomelement','cnameelement','roleelement', 'multiple','type','setroles','fixeddom','cloner']); - my ($type,$title,$jscript,$multelement,$multiple,$roleelement, + my ($type,$title,$jscript,$multelement,$multiple,$roleelement,$typeelement, $lastaction,$autosubmit,$submitopener,$cloneruname,$clonerudom); # Get course type - Course or Community. @@ -75,8 +75,11 @@ sub handler { $submitopener = &processpick(); $autosubmit = 'process_pick("'.$roledom.'")'; } + if ($env{'form.typeelement'} ne '') { + $typeelement = ''; + } - # if called when a DC is creating a course + # if called when a DC is creating a course for another user. if ($env{'form.form'} eq 'ccrs') { ($cloneruname,$clonerudom) = ($env{'form.cloner'} =~ /^($match_username):($match_domain)$/); } @@ -102,10 +105,7 @@ sub handler { if ((($env{'form.form'} eq 'cu') || ($env{'form.form'} eq 'studentform')) && ($env{'form.pickedcourse'})) { - if ($env{'form.form'} eq 'cu') { - $loaditem{'onload'} .= 'setRoles();'; - } - $loaditem{'onload'} .= 'setSections();'; + $loaditem{'onload'} .= 'setRoles();setSections();'; } my $js = &js_changer(); $r->print(&Apache::loncommon::start_page($title,$js, @@ -142,8 +142,16 @@ sub handler { my $action = '/adm/pickcourse'; my ($numtitles,$showroles,$nohost); if (!$onlyown) { - my $filterlist = ['domainfilter','descriptfilter', - 'instcodefilter']; + my $filterlist = ['domainfilter']; + # created filter for DCs only + if ($env{'user.adv'} && $env{'form.domainfilter'} && + exists($env{'user.role.dc./'.$env{'form.domainfilter'}.'/'})) { + my $loncaparev = &Apache::lonnet::get_server_loncaparev($env{'form.domainfilter'}); + if ($loncaparev ne 'unknown_cmd') { + push(@{$filterlist},'createdfilter'); + } + } + push(@{$filterlist},('descriptfilter','instcodefilter')); if ($env{'form.form'} eq 'rules') { push(@{$filterlist},'personfilter'); if (($env{'form.personfilter'} ne '') && ($env{'form.persondomfilter'} ne '')) { @@ -168,7 +176,7 @@ sub handler { $r->print(&build_filters($filterlist,$type,$roleelement,$multelement, $filter,$action,\$numtitles,undef,$cloneruname, - $clonerudom)); + $clonerudom,$typeelement)); } # ---------------------------------------------------------------- Get the data @@ -223,7 +231,12 @@ ENDONE $process_pick .= <<"ENDTWO"; if (pickedDomain == dom) { if (pickedCourse != '') { - var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse + var ccrole = "cc"; + var pickedType = "$env{'form.type'}"; + if (pickedType == "Community") { + ccrole = "co"; + } + var courseTarget = ccrole+"./"+pickedDomain+"/"+pickedCourse opener.document.title='Role selected. Please stand by.'; opener.status='Role selected. Please stand by.'; opener.document.rolechoice.newrole.value=courseTarget @@ -295,25 +308,34 @@ sub display_matched_courses { $r->print('