version 1.112, 2014/03/17 02:45:25
|
version 1.116, 2015/05/21 23:40:09
|
Line 50 sub handler {
|
Line 50 sub handler {
|
&Apache::loncommon::get_unprocessed_cgi |
&Apache::loncommon::get_unprocessed_cgi |
($ENV{'QUERY_STRING'},['domainfilter','form','cnumelement', |
($ENV{'QUERY_STRING'},['domainfilter','form','cnumelement', |
'cdomelement','cnameelement','roleelement', |
'cdomelement','cnameelement','roleelement', |
'multiple','type','setroles','fixeddom','cloner']); |
'multiple','type','setroles','fixeddom','cloner', |
|
'crscode','crsdom']); |
my ($type,$title,$jscript,$multelement,$multiple,$roleelement,$typeelement, |
my ($type,$title,$jscript,$multelement,$multiple,$roleelement,$typeelement, |
$lastaction,$autosubmit,$submitopener,$cloneruname,$clonerudom); |
$lastaction,$autosubmit,$submitopener,$cloneruname,$clonerudom,$crscode,$crsdom); |
|
|
# Get course type - Course or Community. |
# Get course type - Course or Community. |
$type = $env{'form.type'}; |
$type = $env{'form.type'}; |
Line 82 sub handler {
|
Line 83 sub handler {
|
# if called when a DC is creating a course for another user. |
# if called when a DC is creating a course for another user. |
if ($env{'form.form'} eq 'ccrs') { |
if ($env{'form.form'} eq 'ccrs') { |
($cloneruname,$clonerudom) = ($env{'form.cloner'} =~ /^($match_username):($match_domain)$/); |
($cloneruname,$clonerudom) = ($env{'form.cloner'} =~ /^($match_username):($match_domain)$/); |
|
$crscode = $env{'form.crscode'}; |
|
$crsdom = $env{'request.role.domain'}; |
} |
} |
|
|
# if called when requesting a course |
# if called when requesting a course |
if ($env{'form.form'} eq 'requestcrs') { |
if ($env{'form.form'} eq 'requestcrs') { |
$cloneruname = $env{'user.name'}; |
$cloneruname = $env{'user.name'}; |
$clonerudom = $env{'user.domain'}; |
$clonerudom = $env{'user.domain'}; |
|
$crscode = $env{'form.crscode'}; |
|
$crsdom = $env{'form.crsdom'}; |
} |
} |
|
|
my $onlyown = 0; |
my $onlyown = 0; |
Line 105 sub handler {
|
Line 110 sub handler {
|
|
|
if ((($env{'form.form'} eq 'cu') || ($env{'form.form'} eq 'studentform')) && |
if ((($env{'form.form'} eq 'cu') || ($env{'form.form'} eq 'studentform')) && |
($env{'form.pickedcourse'})) { |
($env{'form.pickedcourse'})) { |
$loaditem{'onload'} .= 'setDefaultCredits();setRoles();setSections();'; |
if ($type ne 'Community') { |
|
my %coursedescription = |
|
&Apache::lonnet::coursedescription($env{'form.pickedcourse'}, |
|
{'one_time' => '1'}); |
|
my $cdom = $coursedescription{'domain'}; |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($cdom); |
|
if (($domdefs{'officialcredits'} || $domdefs{'unofficialcredits'} || $domdefs{'textbookcredits'})) { |
|
$loaditem{'onload'} .= 'setDefaultCredits();'; |
|
} |
|
} |
|
$loaditem{'onload'} .= 'setRoles();setSections();'; |
|
} |
|
if ((($env{'form.gosearch'}) && ($env{'form.updater'} eq '')) && (!$onlyown)) { |
|
$loaditem{'onload'} .= 'hideSearching(); '; |
} |
} |
my $js = &Apache::loncommon::js_changer(); |
my $js = &Apache::loncommon::js_changer(); |
$r->print(&Apache::loncommon::start_page($title,$js, |
$r->print(&Apache::loncommon::start_page($title,$js, |
Line 207 sub handler {
|
Line 225 sub handler {
|
if ($coord_cloneable) { |
if ($coord_cloneable) { |
$clonetext .= '<input type="hidden" name="cc_clone" value="'.$coord_cloneable.'" />'; |
$clonetext .= '<input type="hidden" name="cc_clone" value="'.$coord_cloneable.'" />'; |
} |
} |
|
if ($crscode ne '') { |
|
$clonetext .= '<input type="hidden" name="crscode" value="'.$crscode.'" />'; |
|
} |
|
if ($crsdom ne '') { |
|
$clonetext .= '<input type="hidden" name="crsdom" value="'.$crsdom.'" />'; |
|
} |
} |
} |
$r->print(&Apache::loncommon::build_filters($filterlist,$type,$roleelement,$multelement, |
$r->print(&Apache::loncommon::build_filters($filterlist,$type,$roleelement,$multelement, |
$filter,$action,\$numtitles,undef,$cloneruname, |
$filter,$action,\$numtitles,undef,$cloneruname, |
Line 234 sub handler {
|
Line 258 sub handler {
|
my $srchdom = $filter->{'domainfilter'}; |
my $srchdom = $filter->{'domainfilter'}; |
%courses = &Apache::loncommon::search_courses($srchdom,$type,$filter,$numtitles, |
%courses = &Apache::loncommon::search_courses($srchdom,$type,$filter,$numtitles, |
$cloneruname,$clonerudom,$domcloner, |
$cloneruname,$clonerudom,$domcloner, |
\@codetitles,$env{'form.cc_clone'}); |
\@codetitles,$env{'form.cc_clone'}, |
|
$crsdom,$crscode); |
} else { |
} else { |
$r->print('<br />'); |
$r->print('<br />'); |
my %coursehash = &Apache::loncommon::findallcourses(); |
my %coursehash = &Apache::loncommon::findallcourses(); |
Line 249 sub handler {
|
Line 274 sub handler {
|
'<b>'.$filter->{'persondomfilter'}.'</b>').'</span>'); |
'<b>'.$filter->{'persondomfilter'}.'</b>').'</span>'); |
} else { |
} else { |
&display_matched_courses($r,$type,$multiple,$action,$showroles,$cloneruname, |
&display_matched_courses($r,$type,$multiple,$action,$showroles,$cloneruname, |
$clonerudom,%courses); |
$clonerudom,$crsdom,$crscode,%courses); |
} |
} |
} |
} |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
Line 358 function setDefaultCredits() {
|
Line 383 function setDefaultCredits() {
|
} |
} |
|
|
sub display_matched_courses { |
sub display_matched_courses { |
my ($r,$type,$multiple,$action,$showroles,$cloneruname,$clonerudom,%courses) = @_; |
my ($r,$type,$multiple,$action,$showroles,$cloneruname,$clonerudom,$crsdom,$crscode,%courses) = @_; |
if ($env{'form.form'} eq 'portform') { |
if ($env{'form.form'} eq 'portform') { |
$action = '/adm/portfolio'; |
$action = '/adm/portfolio'; |
} |
} |
Line 451 sub display_matched_courses {
|
Line 476 sub display_matched_courses {
|
map {$cc_cloneable{$_} = 1;} split('&',$coord_cloneable); |
map {$cc_cloneable{$_} = 1;} split('&',$coord_cloneable); |
} |
} |
} |
} |
|
my (%gotdomdefaults,%gotcodedefaults); |
foreach my $description (sort { lc($a) cmp lc($b) } (keys(%by_descrip))) { |
foreach my $description (sort { lc($a) cmp lc($b) } (keys(%by_descrip))) { |
foreach my $course (@{$by_descrip{$description}}) { |
foreach my $course (@{$by_descrip{$description}}) { |
$r->print(&Apache::loncommon::start_data_table_row()); |
$r->print(&Apache::loncommon::start_data_table_row()); |
Line 476 sub display_matched_courses {
|
Line 502 sub display_matched_courses {
|
} |
} |
unless ($canclone) { |
unless ($canclone) { |
my $cloners = $courses{$course}{'cloners'}; |
my $cloners = $courses{$course}{'cloners'}; |
if ($cloners ne '') { |
if ($cloners ne '') { |
my @cloneable = split(',',$cloners); |
my @cloneable = split(',',$cloners); |
if (grep(/^\*$/,@cloneable)) { |
if (grep(/^\*$/,@cloneable)) { |
$canclone = 1; |
$canclone = 1; |
Line 487 sub display_matched_courses {
|
Line 513 sub display_matched_courses {
|
if (grep(/^\Q$cloneruname\E:\Q$clonerudom\E$/,@cloneable)) { |
if (grep(/^\Q$cloneruname\E:\Q$clonerudom\E$/,@cloneable)) { |
$canclone = 1; |
$canclone = 1; |
} |
} |
|
unless ($canclone) { |
|
if (($instcode) && ($crscode) && ($cdom eq $crsdom)) { |
|
foreach my $cloner (@cloneable) { |
|
if (($cloner ne '*') && ($cloner !~ /^\*\:$match_domain$/) && |
|
($cloner !~ /^$match_username\:$match_domain$/) && ($cloner ne '')) { |
|
if ($cloner =~ /\=/) { |
|
my (%codedefaults,@code_order); |
|
if (ref($gotcodedefaults{$cdom}) eq 'HASH') { |
|
if (ref($gotcodedefaults{$cdom}{'defaults'}) eq 'HASH') { |
|
%codedefaults = %{$gotcodedefaults{$cdom}{'defaults'}}; |
|
} |
|
if (ref($gotcodedefaults{$cdom}{'order'}) eq 'ARRAY') { |
|
@code_order = @{$gotcodedefaults{$cdom}{'order'}}; |
|
} |
|
} else { |
|
&Apache::lonnet::auto_instcode_defaults($cdom, |
|
\%codedefaults, |
|
\@code_order); |
|
$gotcodedefaults{$cdom}{'defaults'} = \%codedefaults; |
|
$gotcodedefaults{$cdom}{'order'} = \@code_order; |
|
} |
|
if (@code_order > 0) { |
|
if (&Apache::lonnet::check_instcode_cloning(\%codedefaults,\@code_order, |
|
$cloner,$instcode,$crscode)) { |
|
$canclone = 1; |
|
last; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} else { |
|
my %domdefs; |
|
if (ref($gotdomdefaults{$cdom}) eq 'HASH') { |
|
%domdefs = %{$gotdomdefaults{$cdom}}; |
|
} else { |
|
%domdefs = &Apache::lonnet::get_domain_defaults($cdom); |
|
$gotdomdefaults{$cdom} = \%domdefs; |
|
} |
|
if ($domdefs{'canclone'}) { |
|
unless ($domdefs{'canclone'} eq 'none') { |
|
if ($domdefs{'canclone'} eq 'domain') { |
|
if ($clonerudom eq $cdom) { |
|
$canclone = 1; |
|
} |
|
} elsif (($instcode) && ($crscode) && |
|
($cdom eq $crsdom)) { |
|
my (%codedefaults,@code_order); |
|
if (ref($gotcodedefaults{$cdom}) eq 'HASH') { |
|
if (ref($gotcodedefaults{$cdom}{'defaults'}) eq 'HASH') { |
|
%codedefaults = %{$gotcodedefaults{$cdom}{'defaults'}}; |
|
} |
|
if (ref($gotcodedefaults{$cdom}{'order'}) eq 'ARRAY') { |
|
@code_order = @{$gotcodedefaults{$cdom}{'order'}}; |
|
} |
|
} else { |
|
&Apache::lonnet::auto_instcode_defaults($cdom, |
|
\%codedefaults, |
|
\@code_order); |
|
$gotcodedefaults{$cdom}{'defaults'} = \%codedefaults; |
|
$gotcodedefaults{$cdom}{'order'} = \@code_order; |
|
} |
|
if (@code_order > 0) { |
|
if (&Apache::lonnet::default_instcode_cloning($cdom,$domdefs{'canclone'}, |
|
$instcode,$crscode,\%codedefaults, |
|
\@code_order)) { |
|
$canclone = 1; |
|
} |
|
} |
|
} |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
Line 627 sub course_chooser {
|
Line 727 sub course_chooser {
|
$output = '<label><input type="checkbox" name="course_id" value="'.$cdom.'_'.$cnum.'" />'."\n"; |
$output = '<label><input type="checkbox" name="course_id" value="'.$cdom.'_'.$cnum.'" />'."\n"; |
} elsif ((($env{'form.form'} eq 'ccrs') || ($env{'form.form'} eq 'requestcrs')) && (!$canclone)) { |
} elsif ((($env{'form.form'} eq 'ccrs') || ($env{'form.form'} eq 'requestcrs')) && (!$canclone)) { |
if ($env{'form.form'} eq 'ccrs') { |
if ($env{'form.form'} eq 'ccrs') { |
$output = &mt('No cloning for ').$env{'form.cloner'}."\n"; |
$output = &mt('No cloning for [_1]',$env{'form.cloner'})."\n"; |
} else { |
} else { |
$output = &mt('No rights to clone')."\n"; |
$output = &mt('No rights to clone')."\n"; |
} |
} |
Line 836 javascript code for reporting selected s
|
Line 936 javascript code for reporting selected s
|
|
|
=item * |
=item * |
X<display_matched_courses()> |
X<display_matched_courses()> |
B<display_matched_courses($r,$type,$multiple,$action,$showroles,$cloneruname,$clonerudom,%courses)>: |
B<display_matched_courses($r,$type,$multiple,$action,$showroles,$cloneruname,$clonerudom,$crsdom,$crscode,%courses)>: |
|
|
Input: 7 - request object, course type, multiple (0 or 1), form action, whether to show roles (for course personnel filter), username of new course owner, domain of new course owner, hash of courses. |
Input: 8 - request object, course type, multiple (0 or 1), form action, whether to show roles (for course personnel filter), username of new course owner, domain of new course owner, domain of new course, institutional code of new course, hash of courses. |
|
|
Output: 0 |
Output: 0 |
|
|