--- loncom/interface/lonrequestcourse.pm 2014/05/09 17:43:13 1.82 +++ 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.82 2014/05/09 17:43:13 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)) { @@ -4759,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'})) { @@ -4798,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()) {