--- loncom/interface/lonrequestcourse.pm 2014/05/09 15:02:31 1.81
+++ loncom/interface/lonrequestcourse.pm 2014/05/19 15:59:55 1.84
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Request a course
#
-# $Id: lonrequestcourse.pm,v 1.81 2014/05/09 15:02:31 raeburn Exp $
+# $Id: lonrequestcourse.pm,v 1.84 2014/05/19 15:59:55 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -174,6 +174,22 @@ sub handler {
} else {
&textbook_request_disabled($r,$dom,\%can_request);
}
+ } elsif ($action eq 'display') {
+ my ($uname,$udom,$result,$warning) = &domcoord_display($dom);
+ if ($warning ne '') {
+ my $args = { only_body => 1 };
+ $r->print(&header('Course/Community Requests','','' ,'',$args).
+ '
'.&mt('Course/Community Request Details').'
'.
+ ''.$warning.'
'.
+ &close_popup_form());
+ } else {
+ $states{'display'} = ['details'];
+ my $loaditems = &onload_action($action,$state);
+ my $page = 0;
+ &request_administration($r,$action,$state,$page,\%states,$dom,$jscript,
+ $loaditems,'','','','','',$showcredits,'','',
+ $uname,$udom);
+ }
} else {
if ($can_request{'textbook'}) {
&print_textbook_form($r,$dom,\@incdoms,\%domdefs,$domconfig{'requestcourses'},\%can_request);
@@ -232,46 +248,7 @@ sub handler {
my ($page,$crumb,$newinstcode,$codechk,$checkedcode,$description) =
&get_breadcrumbs($dom,$action,\$state,\%states,\%trail);
if ($action eq 'display') {
- if (($dom eq $env{'request.role.domain'}) && (&Apache::lonnet::allowed('ccc',$dom))) {
- if ($env{'form.cnum'} ne '') {
- my $cnum = $env{'form.cnum'};
- my $queue = $env{'form.queue'};
- my $reqkey = $cnum.'_'.$queue;
- my $namespace = 'courserequestqueue';
- my $domconfig = &Apache::lonnet::get_domainconfiguser($dom);
- my %queued =
- &Apache::lonnet::get($namespace,[$reqkey],$dom,$domconfig);
- if (ref($queued{$reqkey}) eq 'HASH') {
- $uname = $queued{$reqkey}{'ownername'};
- $udom = $queued{$reqkey}{'ownerdom'};
- if (($udom =~ /^$match_domain$/) && ($uname =~ /^$match_username$/)) {
- $result = &retrieve_settings($dom,$cnum,$udom,$uname);
- } else {
- if ($env{'form.crstype'} eq 'community') {
- $warning = &mt('Invalid username or domain for community requestor');
- } else {
- $warning = &mt('Invalid username or domain for course requestor');
- }
- }
- } else {
- if ($env{'form.crstype'} eq 'community') {
- $warning = &mt('No information was found for this community request.');
- } else {
- $warning = &mt('No information was found for this course request.');
- }
- }
- } else {
- $warning = &mt('No course request ID provided.');
- }
- } else {
- if ($env{'form.crstype'} eq 'any') {
- $warning = &mt('You do not have rights to view course or community request information.');
- } elsif ($env{'form.crstype'} eq 'community') {
- $warning = &mt('You do not have rights to view community request information.');
- } else {
- $warning = &mt('You do not have rights to view course request information.');
- }
- }
+ ($uname,$udom,$result,$warning) = &domcoord_display($dom);
} elsif ((defined($state)) && (defined($action))) {
if (($action eq 'view') && ($state eq 'details')) {
if ((defined($env{'form.showdom'})) && (defined($env{'form.cnum'}))) {
@@ -334,6 +311,8 @@ sub handler {
$jscript = &Apache::lonhtmlcommon::set_form_elements($elementsref,\%stored);
if ($state eq 'courseinfo') {
$jscript .= &cloning_javascript();
+ } elsif ($state eq 'process') {
+ $jscript .= &processing_javascript();
}
}
}
@@ -436,7 +415,7 @@ function setCloneDisplay(courseForm) {
for (var i=0; idir_config('lonHostID');
- my ($storeresult,$result) = &print_request_outcome($lonhost,$dom,\@codetitles,
+ my ($storeresult,$result) = &print_request_outcome($r,$lonhost,$dom,\@codetitles,
\@code_order,$instcredits);
$r->print($result);
if (($storeresult eq 'ok') || ($storeresult eq 'created')) {
@@ -3336,7 +3375,7 @@ sub display_navbuttons {
}
sub print_request_outcome {
- my ($lonhost,$dom,$codetitles,$code_order,$instcredits) = @_;
+ my ($r,$lonhost,$dom,$codetitles,$code_order,$instcredits) = @_;
my ($output,$cnum,$now,$req_notifylist,$crstype,$enrollstart,$enrollend,
%sections,%crosslistings,%personnel,@baduname,@missingdom,%domconfig,
$uniquecode);
@@ -3581,13 +3620,13 @@ sub print_request_outcome {
accessend => $accessend,
personnel => \%personnel,
};
- my ($result,$output) = &process_request($lonhost,$dom,$cnum,$crstype,$now,$details,$instcode,
+ my ($result,$output) = &process_request($r,$lonhost,$dom,$cnum,$crstype,$now,$details,$instcode,
$req_notifylist,\@instsections,\%domconfig);
return ($result,$output);
}
sub process_request {
- my ($lonhost,$dom,$cnum,$crstype,$now,$details,$instcode,$req_notifylist,$instsections,
+ my ($r,$lonhost,$dom,$cnum,$crstype,$now,$details,$instcode,$req_notifylist,$instsections,
$domconfig) = @_;
my (@inststatuses,$storeresult,$creationresult,$output);
my $val =
@@ -3717,6 +3756,10 @@ sub process_request {
foreach my $role (@roles) {
$longroles{$role}=&Apache::lonnet::plaintext($role,$type);
}
+ $r->print(''."\n".
+ &mt('Your request is being processed; this page will update when processing is complete.').
+ '
');
+ $r->rflush();
my ($result,$postprocess) = &Apache::loncoursequeueadmin::course_creation($dom,$cnum,
'autocreate',$details,\$logmsg,\$newusermsg,\$addresult,
\$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles,
@@ -4507,7 +4550,7 @@ sub print_textbook_form {
if (ref($ordered{'templates'}) eq 'HASH') {
$r->print(''.(' 'x2).' ');
+ &mt('Load pre-existing template').''.(' 'x2).' ');
}
}
if (keys(%cloneable)) {
@@ -4543,7 +4586,8 @@ sub print_textbook_form {
}
$r->print(''.&mt('Subject').' | ');
if ($type eq 'textbooks') {
- $r->print(''.&mt('Book').' | ');
+ $r->print(''.&mt('Publisher').' | '.
+ ''.&mt('Book').' | ');
}
$r->print(&Apache::loncommon::end_data_table_header_row());
my @items = sort { $a <=> $b } keys(%{$ordered{$type}});
@@ -4560,7 +4604,8 @@ sub print_textbook_form {
}
$r->print(''.$prefab{$type}{$item}{'subject'}.' | ');
if ($type eq 'textbooks') {
- $r->print(' | ');
}
$r->print(&Apache::loncommon::end_data_table_row());
@@ -4757,7 +4802,11 @@ sub process_textbook_request {
undef($clonedom);
}
}
- $r->print(&header('Course Creation'));
+ my $js = &processing_javascript();
+ my $loaditems = {
+ onload => 'javascript:hideProcessing();',
+ };
+ $r->print(&header('Course Creation',$js,$loaditems));
if (ref($can_request) eq 'HASH') {
unless ((scalar(keys(%{$can_request})) == 1) && ($can_request->{'textbook'})) {
@@ -4796,7 +4845,8 @@ sub process_textbook_request {
$details->{dateshift} = $env{'form.dateshift'};
}
my $lonhost = $r->dir_config('lonHostID');
- my ($result,$output) = &process_request($lonhost,$dom,$cnum,$crstype,$now,$details,'',
+ $r->rflush();
+ my ($result,$output) = &process_request($r,$lonhost,$dom,$cnum,$crstype,$now,$details,'',
$req_notifylist,[],$domconfig);
$r->print($output);
if (&Apache::loncoursequeueadmin::author_prompt()) {