--- loncom/interface/lonrequestcourse.pm 2021/03/06 13:44:51 1.110 +++ loncom/interface/lonrequestcourse.pm 2022/06/08 01:00:57 1.115 @@ -1,7 +1,7 @@ # The LearningOnline Network # Request a course # -# $Id: lonrequestcourse.pm,v 1.110 2021/03/06 13:44:51 raeburn Exp $ +# $Id: lonrequestcourse.pm,v 1.115 2022/06/08 01:00:57 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -450,17 +450,6 @@ function setCloneDisplay(courseForm) { END } -sub processing_javascript { - return <<"END"; -function hideProcessing() { - if (document.getElementById('processing')) { - document.getElementById('processing').style.display="none"; - } -} - -END -} - sub get_breadcrumbs { my ($dom,$action,$state,$states,$trail) = @_; my ($crumb,$newinstcode,$codechk,$checkedcode,$numtitles,$description); @@ -739,9 +728,6 @@ sub onload_action { if ($state eq 'courseinfo') { $loaditems{'onload'} .= 'javascript:setCloneDisplay(document.requestcrs);'; } - if ($state eq 'process') { - $loaditems{'onload'} .= 'javascript:hideProcessing();'; - } } return \%loaditems; } @@ -3242,7 +3228,7 @@ sub clone_form { '</label><br /><label>'. '<input type="radio" name="datemode" value="shift" checked="checked" /> '. $lt{'shd'}.'</label>'. - '<input type="text" size="5" name="dateshift" value="365" />'. + '<input type="text" size="5" name="dateshift" value="364" />'. &Apache::lonhtmlcommon::row_closure(1). &Apache::lonhtmlcommon::row_title($lt{'dpl'}).'<label>'. '<input type="radio" name="tinyurls" value="delete" /> '.$lt{'nsl'}. @@ -3865,9 +3851,20 @@ sub process_request { foreach my $role (@roles) { $longroles{$role}=&Apache::lonnet::plaintext($role,$type); } - $r->print('<div id="processing" style="display:block;">'."\n". - &mt('Your request is being processed; this page will update when processing is complete.'). - '</div>'); + my $preamble = '<div id="LC_update" class="LC_info">'. + '<br />'. + &mt("Please be patient while your request is processed"). + '<br /></div>'. + '<div style="padding:0;clear:both;margin:0;border:0"></div>'; + my $closure = <<ENDCLOSE; +<script type="text/javascript"> +// <![CDATA[ +\$("#LC_update").hide('slow'); +// ]]> +</script> +ENDCLOSE + my %prog_state = &Apache::lonhtmlcommon::Create_PrgWin($r,undef,$preamble); + &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,&mt('Processing ...')); $r->rflush(); if (ref($details) eq 'HASH') { if ($details->{'clonecrs'}) { @@ -3892,6 +3889,9 @@ sub process_request { 'autocreate',$details,\$logmsg,$clonemsg,\$newusermsg, \$addresult,\$enrollcount,\$response,\$keysmsg,\%domdefs, \%longroles,\$code,\%customitems); + &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,&mt('Finished!')); + &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); + $r->print($closure); if (ref($postprocess) eq 'HASH') { $customized = $postprocess->{'createdcustomized'}; } @@ -4066,7 +4066,7 @@ sub process_request { } elsif ($disposition eq 'pending') { my $pendingform; if ($crstype ne 'official') { - $pendingform = &pending_validation_form($dom,$cnum,$crstype,$now,$token, + $pendingform = &pending_validation_form($r,$dom,$cnum,$crstype,$now,$token, $lonhost,$env{'form.cdescr'}); } if ($pendingform) { @@ -4384,7 +4384,7 @@ sub notification_information { } sub pending_validation_form { - my ($cdom,$cnum,$crstype,$now,$token,$lonhost,$cdesc) = @_; + my ($r,$cdom,$cnum,$crstype,$now,$token,$lonhost,$cdesc) = @_; my $output; my %postvalues = ( 'owner' => $env{'user.name'}.':'.$env{'user.domain'}, @@ -4420,6 +4420,8 @@ sub pending_validation_form { my $hostname = &Apache::lonnet::hostname($lonhost); my $protocol = $Apache::lonnet::protocol{$lonhost}; $protocol = 'http' if ($protocol ne 'https'); + my $alias = &Apache::lonnet::use_proxy_alias($r,$lonhost); + $hostname = $alias if ($alias ne ''); my $crscreator = $protocol.'://'.$hostname.'/cgi-bin/createpending.pl'; $output .= '<input type="hidden" name="crscreator" value="'.$crscreator.'" />'."\n". '<input type="hidden" name="token" value="'.$token.'" />'."\n". @@ -4918,7 +4920,7 @@ sub print_textbook_form { '</label><br /><label>'. '<input type="radio" name="owndatemode" value="shift" checked="checked" /> '. $lt{'shd'}.'</label>'. - '<input type="text" size="5" name="owndateshift" value="365" />'. + '<input type="text" size="5" name="owndateshift" value="364" />'. '</fieldset><fieldset style="display:inline-block">'. '<legend>'.$lt{'dpl'}.'</legend><label>'. '<input type="radio" name="owntinyurls" value="delete" />'.$lt{'nsl'}. @@ -4942,7 +4944,7 @@ sub print_textbook_form { '</label><br /><label>'. '<input type="radio" name="colldatemode" value="shift" checked="checked" /> '. $lt{'shd'}.'</label>'. - '<input type="text" size="5" name="colldateshift" value="365" />'. + '<input type="text" size="5" name="colldateshift" value="364" />'. '</fieldset><fieldset style="display:inline-block">'. '<legend>'.$lt{'dpl'}.'</legend><label>'. '<input type="radio" name="colltinyurls" value="delete" />'.$lt{'nsl'}. @@ -5144,15 +5146,11 @@ sub process_textbook_request { undef($clonedom); } } - my $js = &processing_javascript(); - my ($loaditems,$args); - $loaditems = { - onload => 'javascript:hideProcessing();', - }; + my $args; if ($crstype eq 'lti') { $args = { 'only_body' => 1}; } - $r->print(&header('Course Creation',$js,$loaditems,undef,$args)); + $r->print(&header('Course Creation','','',undef,$args)); unless ($crstype eq 'lti') { if (ref($can_request) eq 'HASH') { @@ -5224,9 +5222,18 @@ sub process_textbook_request { '',$req_notifylist,[],$domconfig); $r->print($output); if ($crstype eq 'lti') { - my %consumers = &Apache::lonnet::get_dom('lticonsumers',[$env{'form.sourcecrs'}],$dom); - if (($env{'form.lti.sourcecrs'} ne '') && ($consumers{$env{'form.lti.sourcecrs'}} eq '') && ($cnum ne '')) { - &Apache::lonnet::put_dom('lticonsumers',{ $env{'form.lti.sourcecrs'} => $cnum },$dom); + my $storecrs; + if ($env{'request.lti.login'}) { + my %lti = &Apache::lonnet::get_domain_lti($dom,'provider'); + if (ref($lti{$env{'request.lti.login'}}) eq 'HASH') { + $storecrs = $lti{$env{'request.lti.login'}}{'storecrs'}; + } + if ($storecrs) { + my %consumers = &Apache::lonnet::get_dom('lticonsumers',[$env{'form.sourcecrs'}],$dom); + if (($env{'form.lti.sourcecrs'} ne '') && ($consumers{$env{'form.lti.sourcecrs'}} eq '') && ($cnum ne '')) { + &Apache::lonnet::put_dom('lticonsumers',{ $env{'form.lti.sourcecrs'} => $env{'request.lti.login'}.':'.$cnum },$dom); + } + } } } elsif (&Apache::loncoursequeueadmin::author_prompt()) { unless ($customized) {