version 1.72, 2013/12/27 14:34:52
|
version 1.73, 2014/01/03 18:39:51
|
Line 128 sub handler {
|
Line 128 sub handler {
|
} |
} |
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['action','showdom','cnum','state','crstype','queue']); |
['action','showdom','cnum','state','crstype','queue','tabs']); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
my $dom = &get_course_dom(); |
my $dom = &get_course_dom(); |
my $action = $env{'form.action'}; |
my $action = $env{'form.action'}; |
Line 155 sub handler {
|
Line 155 sub handler {
|
} |
} |
|
|
if ($canreq) { |
if ($canreq) { |
if ((scalar(keys(%can_request)) == 1) && ($can_request{'textbook'})) { |
if (($env{'form.crstype'} eq 'textbook') || |
|
(scalar(keys(%can_request)) == 1) && ($can_request{'textbook'})) { |
my %domconfig = &Apache::lonnet::get_dom('configuration',['requestcourses'],$dom); |
my %domconfig = &Apache::lonnet::get_dom('configuration',['requestcourses'],$dom); |
if ($action eq 'log') { |
if ($action eq 'log') { |
|
my $usetabs; |
|
if ((scalar(keys(%can_request)) == 1) && ($can_request{'textbook'})) { |
|
$usetabs = 1; |
|
} elsif ($env{'form.tabs'} eq 'on') { |
|
$usetabs = 1; |
|
} |
&Apache::lonhtmlcommon::add_breadcrumb({text=>'Course Request'}); |
&Apache::lonhtmlcommon::add_breadcrumb({text=>'Course Request'}); |
my $crumb = &Apache::lonhtmlcommon::breadcrumbs('Course Requests','Course_Requests'); |
my $crumb = &Apache::lonhtmlcommon::breadcrumbs('Course Requests','Course_Requests'); |
&print_request_logs($r,$dom,undef,undef,$crumb); |
&print_request_logs($r,$dom,undef,undef,$crumb,$usetabs); |
} elsif ($action eq 'process') { |
} elsif ($action eq 'process') { |
&process_textbook_request($r,$dom,$action,\%domdefs,\%domconfig); |
if ($can_request{'textbook'}) { |
|
&process_textbook_request($r,$dom,$action,\%domdefs,\%domconfig,\%can_request); |
|
} else { |
|
&textbook_request_disabled($r,$dom,\%can_request); |
|
} |
} else { |
} else { |
&print_textbook_form($r,$dom,\@incdoms,\%domdefs,$domconfig{'requestcourses'}); |
if ($can_request{'textbook'}) { |
|
&print_textbook_form($r,$dom,\@incdoms,\%domdefs,$domconfig{'requestcourses'},\%can_request); |
|
} else { |
|
&textbook_request_disabled($r,$dom,\%can_request); |
|
} |
} |
} |
return OK; |
return OK; |
} |
} |
Line 195 sub handler {
|
Line 210 sub handler {
|
|
|
my @invalidcrosslist; |
my @invalidcrosslist; |
my %trail = ( |
my %trail = ( |
crstype => 'Request Action', |
crstype => 'Pick Action', |
codepick => 'Category', |
codepick => 'Category', |
courseinfo => 'Description', |
courseinfo => 'Description', |
enrollment => 'Access Dates', |
enrollment => 'Access Dates', |
Line 382 function setPage(formname) {
|
Line 397 function setPage(formname) {
|
} |
} |
|
|
ENDJS |
ENDJS |
&print_request_logs($r,$dom,$jscript,$loaditems,$crumb); |
&print_request_logs($r,$dom,$jscript,$loaditems,$crumb,\%can_request); |
} |
} |
} else { |
} else { |
&print_main_menu($r,\%can_request,\%states,$dom,$jscript,'',$crumb,\@incdoms); |
&print_main_menu($r,\%can_request,\%states,$dom,$jscript,'',$crumb,\@incdoms); |
Line 1483 sub print_request_form {
|
Line 1498 sub print_request_form {
|
} |
} |
$r->print(&print_review($dom,\@codetitles,\%cat_titles,\%cat_order,\@code_order,'','',\@disallowed,\%disallowmsg,$instcredits). |
$r->print(&print_review($dom,\@codetitles,\%cat_titles,\%cat_order,\@code_order,'','',\@disallowed,\%disallowmsg,$instcredits). |
'<input type="hidden" name="cnum" value="'.$cnum.'" />'); |
'<input type="hidden" name="cnum" value="'.$cnum.'" />'); |
|
my $fullname = &Apache::loncommon::plainname($env{'user.name'}, |
|
$env{'user.domain'}); |
|
my $postprocess = &Apache::lonnet::auto_crsreq_update($dom,$cnum,$crstype,'review',$env{'user.name'}, |
|
$env{'user.domain'},$fullname,$env{'form.cdescr'}); |
|
if (ref($postprocess) eq 'HASH') { |
|
if ($postprocess->{'reviewweb'}) { |
|
$r->print($postprocess->{'reviewweb'}); |
|
} |
|
} |
if ($crstype eq 'community') { |
if ($crstype eq 'community') { |
$navtxt{'next'} = &mt('Submit community request'); |
$navtxt{'next'} = &mt('Submit community request'); |
} else { |
} else { |
Line 2126 sub sorted_request_history {
|
Line 2150 sub sorted_request_history {
|
my $crstype = $history{'crstype'}; |
my $crstype = $history{'crstype'}; |
my $disposition = $history{'disposition'}; |
my $disposition = $history{'disposition'}; |
my $status = $history{'status'}; |
my $status = $history{'status'}; |
|
my $uniquecode = $history{'code'}; |
if ($action eq 'view') { |
if ($action eq 'view') { |
next if ((exists($history{'status'})) && ($history{'status'} eq 'created')); |
next if ((exists($history{'status'})) && ($history{'status'} eq 'created')); |
} else { |
} else { |
Line 2141 sub sorted_request_history {
|
Line 2166 sub sorted_request_history {
|
$entry = $requestkey.':'.$crstype.':'. |
$entry = $requestkey.':'.$crstype.':'. |
&escape($history{'details'}{'cdescr'}); |
&escape($history{'details'}{'cdescr'}); |
if ($action eq 'log') { |
if ($action eq 'log') { |
$entry .= ':'.$lastupdate.':'; |
$entry .= ':'.$uniquecode.':'.$lastupdate.':'; |
if ($statusinfo{$key} ne '') { |
if ($statusinfo{$key} ne '') { |
$entry .= $statusinfo{$key}; |
$entry .= $statusinfo{$key}; |
} elsif ($status ne '') { |
} elsif ($status ne '') { |
Line 2354 ENDJS
|
Line 2379 ENDJS
|
} |
} |
|
|
sub print_request_logs { |
sub print_request_logs { |
my ($r,$dom,$jscript,$loaditems,$crumb) = @_; |
my ($r,$dom,$jscript,$loaditems,$crumb,$usetabs) = @_; |
my $title; |
my $title; |
if ($env{'form.crstype'} eq 'community') { |
if ($env{'form.crstype'} eq 'community') { |
$title = 'Community Request Logs'; |
$title = 'Community Request Logs'; |
Line 2364 sub print_request_logs {
|
Line 2389 sub print_request_logs {
|
$title = 'Course Request Logs'; |
$title = 'Course Request Logs'; |
} |
} |
$r->print(&header($title,$jscript,$loaditems).$crumb); |
$r->print(&header($title,$jscript,$loaditems).$crumb); |
|
if ($usetabs) { |
|
&startContentScreen($r,'textbooklogs'); |
|
} |
my $formname = 'requestcrs'; |
my $formname = 'requestcrs'; |
$r->print('<form action="/adm/requestcourse" method="post" name="'.$formname.'" onsubmit="javascript:setPage(this);">'."\n". |
$r->print('<form action="/adm/requestcourse" method="post" name="'.$formname.'" onsubmit="javascript:setPage(this);">'."\n". |
'<input type="hidden" name="action" value="log" />'."\n". |
'<input type="hidden" name="action" value="log" />'."\n". |
Line 2408 sub print_request_logs {
|
Line 2436 sub print_request_logs {
|
if (($curr{'crstype'} eq 'official') || ($curr{'crstype'} eq 'any')) { |
if (($curr{'crstype'} eq 'official') || ($curr{'crstype'} eq 'any')) { |
$tablehdr .= '<th>'.&mt('Institutional Code').'</th>'; |
$tablehdr .= '<th>'.&mt('Institutional Code').'</th>'; |
} |
} |
|
my $showuniquecode; |
|
my %domconfig = &Apache::lonnet::get_dom('configuration',['requestcourses'],$dom); |
|
if (($curr{'status'} eq 'any') || ($curr{'status'} eq 'created')) { |
|
if (ref($domconfig{'requestcourses'}) eq 'HASH') { |
|
if (ref($domconfig{'requestcourses'}{'uniquecode'}) eq 'HASH') { |
|
if ($curr{'crstype'} eq 'any') { |
|
my @types = qw(official unofficial community textbook); |
|
foreach my $type (@types) { |
|
if ($domconfig{'requestcourses'}{'uniquecode'}{$type}) { |
|
$showuniquecode = 1; |
|
last; |
|
} |
|
} |
|
} elsif ($domconfig{'requestcourses'}{'uniquecode'}{$curr{'crstype'}}) { |
|
$showuniquecode = 1; |
|
} |
|
} |
|
} |
|
} |
|
if ($showuniquecode) { |
|
$tablehdr .= '<th>'.&mt('Unique Code').'</th>'; |
|
} |
if ($curr{'status'} eq 'any') { |
if ($curr{'status'} eq 'any') { |
$tablehdr .= '<th>'.&mt('Status').'</th>'; |
$tablehdr .= '<th>'.&mt('Status').'</th>'; |
} elsif ($curr{'status'} eq 'created') { |
} elsif ($curr{'status'} eq 'created') { |
Line 2445 sub print_request_logs {
|
Line 2495 sub print_request_logs {
|
my $showtime = &Apache::lonlocal::locallocaltime($item); |
my $showtime = &Apache::lonlocal::locallocaltime($item); |
if (ref($queue_by_date{$item}) eq 'ARRAY') { |
if (ref($queue_by_date{$item}) eq 'ARRAY') { |
foreach my $request (sort(@{$queue_by_date{$item}})) { |
foreach my $request (sort(@{$queue_by_date{$item}})) { |
my ($key,$crstype,$desc,$timestamp,$status,$instcode) = split(':',$request); |
my ($key,$crstype,$desc,$uniquecode,$timestamp,$status,$instcode) = split(':',$request); |
my ($cdom,$cnum) = split('_',$key); |
my ($cdom,$cnum) = split('_',$key); |
my $output = &Apache::loncommon::start_data_table_row(). |
my $output = &Apache::loncommon::start_data_table_row(). |
'<td>'.$count.'</td>'. |
'<td>'.$count.'</td>'. |
Line 2471 sub print_request_logs {
|
Line 2521 sub print_request_logs {
|
} |
} |
$output .= '<td>'.$showinstcode.'</td>'; |
$output .= '<td>'.$showinstcode.'</td>'; |
} |
} |
|
if ($showuniquecode) { |
|
if ($status eq 'created') { |
|
$output .= '<td>'.$uniquecode.'</td>'; |
|
} else { |
|
$output .= '<td>'.&mt('Not applicable').'</td>'; |
|
} |
|
} |
if ($curr{'status'} eq 'any') { |
if ($curr{'status'} eq 'any') { |
my $statusname = &mt('Unknown status'); |
my $statusname = &mt('Unknown status'); |
if (ref($statusnames) eq 'HASH') { |
if (ref($statusnames) eq 'HASH') { |
Line 2531 ENDSCRIPT
|
Line 2588 ENDSCRIPT
|
&mt('There are no records to display'). |
&mt('There are no records to display'). |
'</p>'); |
'</p>'); |
} |
} |
$r->print('</form>'. |
if ($usetabs) { |
&Apache::loncommon::end_page()); |
$r->print('<input type="hidden" name="tabs" value="on" />'); |
|
} |
|
$r->print('</form>'); |
|
if ($usetabs) { |
|
&endContentScreen($r); |
|
} |
|
$r->print(&Apache::loncommon::end_page()); |
return; |
return; |
} |
} |
|
|
Line 3274 sub print_request_outcome {
|
Line 3337 sub print_request_outcome {
|
$output = &mt('Invalid LON-CAPA course number for the new course')."\n"; |
$output = &mt('Invalid LON-CAPA course number for the new course')."\n"; |
return $output; |
return $output; |
} |
} |
|
$crstype = $env{'form.crstype'}; |
%domconfig = &Apache::lonnet::get_dom('configuration',['requestcourses'],$dom); |
my %domconfig = &Apache::lonnet::get_dom('configuration',['requestcourses'],$dom); |
if (ref($domconfig{'requestcourses'}) eq 'HASH') { |
if (ref($domconfig{'requestcourses'}) eq 'HASH') { |
if (ref($domconfig{'requestcourses'}{'notify'}) eq 'HASH') { |
if (ref($domconfig{'requestcourses'}{'notify'}) eq 'HASH') { |
$req_notifylist = $domconfig{'requestcourses'}{'notify'}{'approval'}; |
$req_notifylist = $domconfig{'requestcourses'}{'notify'}{'approval'}; |
} |
} |
$uniquecode = $domconfig{'requestcourses'}{'uniquecode'}; |
if (ref($domconfig{'requestcourses'}{'uniquecode'}) eq 'HASH') { |
|
$uniquecode = $domconfig{'requestcourses'}{'uniquecode'}{$crstype}; |
|
} |
} |
} |
$now = time; |
$now = time; |
$crstype = $env{'form.crstype'}; |
|
my $ccrole = 'cc'; |
my $ccrole = 'cc'; |
if ($crstype eq 'community') { |
if ($crstype eq 'community') { |
$ccrole = 'co'; |
$ccrole = 'co'; |
Line 3578 sub process_request {
|
Line 3642 sub process_request {
|
} |
} |
$reqhash{'disposition'} = $disposition; |
$reqhash{'disposition'} = $disposition; |
$reqstatus = $disposition; |
$reqstatus = $disposition; |
my ($modified,$queued); |
my ($modified,$queued,$coursedesc,%customitems); |
|
unless ($disposition eq 'rejected') { |
|
if (ref($details) eq 'HASH') { |
|
$coursedesc = $details->{'cdescr'}; |
|
} |
|
my $fullname = &Apache::loncommon::plainname($env{'user.name'}, |
|
$env{'user.domain'}); |
|
my $inprocess = &Apache::lonnet::auto_crsreq_update($dom,$cnum,$crstype,'process',$env{'user.name'}, |
|
$env{'user.domain'},$fullname,$coursedesc); |
|
if (ref($inprocess) eq 'HASH') { |
|
if (ref($inprocess->{'formitems'}) eq 'HASH') { |
|
foreach my $key (keys(%{$inprocess->{'formitems'}})) { |
|
if ($inprocess->{'formitems'}->{$key} eq 'multiple') { |
|
if (exists($env{'form.'.$key})) { |
|
@{$customitems{$key}} = &Apache::loncommon::get_env_multiple($env{'form.'.$key}); |
|
} |
|
} else { |
|
if (exists($env{'form.'.$key})) { |
|
$customitems{$key} = $env{'form.'.$key}; |
|
$reqhash{'custom'}{$key} = $customitems{$key}; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
if ($disposition eq 'rejected') { |
if ($disposition eq 'rejected') { |
if ($crstype eq 'community') { |
if ($crstype eq 'community') { |
$output = &mt('Your community request was rejected.'); |
$output = &mt('Your community request was rejected.'); |
Line 3600 sub process_request {
|
Line 3689 sub process_request {
|
foreach my $role (@roles) { |
foreach my $role (@roles) { |
$longroles{$role}=&Apache::lonnet::plaintext($role,$type); |
$longroles{$role}=&Apache::lonnet::plaintext($role,$type); |
} |
} |
my $result = &Apache::loncoursequeueadmin::course_creation($dom,$cnum, |
my ($result,$postprocess) = &Apache::loncoursequeueadmin::course_creation($dom,$cnum, |
'autocreate',$details,\$logmsg,\$newusermsg,\$addresult, |
'autocreate',$details,\$logmsg,\$newusermsg,\$addresult, |
\$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles,\$code); |
\$enrollcount,\$response,\$keysmsg,\%domdefs,\%longroles, |
|
\$code,\%customitems); |
if ($result eq 'created') { |
if ($result eq 'created') { |
$disposition = 'created'; |
$disposition = 'created'; |
$reqstatus = 'created'; |
$reqstatus = 'created'; |
Line 3613 sub process_request {
|
Line 3703 sub process_request {
|
} else { |
} else { |
$output = '<p>'.&mt('Your course request has been processed and the course has been created.'); |
$output = '<p>'.&mt('Your course request has been processed and the course has been created.'); |
} |
} |
if ($code) { |
if (($code) || ((ref($postprocess) eq 'HASH') && |
|
(($postprocess->{'createdweb'}) || ($postprocess->{'createdmsg'})))) { |
$output .= ¬ification_information($disposition,$env{'user.name'}.':'.$env{'user.domain'}, |
$output .= ¬ification_information($disposition,$env{'user.name'}.':'.$env{'user.domain'}, |
$cnum,$now,$code); |
$cnum,$now,$code,$postprocess); |
|
} |
|
if ($code) { |
|
$reqhash{'code'} = $code; |
} |
} |
$output .= '<br />'.$role_result.'</p>'; |
$output .= '<br />'.$role_result.'</p>'; |
$creationresult = 'created'; |
$creationresult = 'created'; |
Line 3633 sub process_request {
|
Line 3727 sub process_request {
|
} |
} |
} else { |
} else { |
my $requestid = $cnum.'_'.$disposition; |
my $requestid = $cnum.'_'.$disposition; |
my $request = { |
my $request = { |
$requestid => { |
$requestid => { |
timestamp => $now, |
timestamp => $now, |
crstype => $crstype, |
crstype => $crstype, |
Line 3689 sub process_request {
|
Line 3783 sub process_request {
|
$output .= '<p>'.&mt('Your course request has been updated').'</p>'; |
$output .= '<p>'.&mt('Your course request has been updated').'</p>'; |
} |
} |
$output .= ¬ification_information($disposition,$req_notifylist,$cnum,$now); |
$output .= ¬ification_information($disposition,$req_notifylist,$cnum,$now); |
|
if ($disposition eq 'approval') { |
|
my $fullname = &Apache::loncommon::plainname($env{'user.name'}, |
|
$env{'user.domain'}); |
|
my $postprocess = |
|
&Apache::lonnet::auto_crsreq_update($dom,$cnum,$crstype,'queued',$env{'user.name'}, |
|
$env{'user.domain'},$fullname,$env{'form.cdescr'}); |
|
if ((ref($postprocess) eq 'HASH') && |
|
((ref($postprocess->{'queuedmsg'}) eq 'HASH') || ($postprocess->{'queuedweb'}))) { |
|
my $recipient = $env{'user.name'}.':'.$env{'user.domain'}; |
|
$output .= ¬ification_information($disposition,$recipient,$cnum,$now,undef,$postprocess); |
|
} |
|
} |
} |
} |
if ($validationerror ne '') { |
if ($validationerror ne '') { |
$output .= '<p class="LC_warning">'.&mt('An error occurred validating your request with institutional data sources: [_1].',$validationerror).'</p>'; |
$output .= '<p class="LC_warning">'.&mt('An error occurred validating your request with institutional data sources: [_1].',$validationerror).'</p>'; |
Line 3840 sub update_requestors_roles {
|
Line 3946 sub update_requestors_roles {
|
} |
} |
|
|
sub notification_information { |
sub notification_information { |
my ($disposition,$req_notifylist,$cnum,$now,$code) = @_; |
my ($disposition,$req_notifylist,$cnum,$now,$code,$postprocess) = @_; |
my %emails = &Apache::loncommon::getemails(); |
my %emails = &Apache::loncommon::getemails(); |
my $address; |
my $address; |
if (($emails{'permanentemail'} ne '') || ($emails{'notification'} ne '')) { |
if (($emails{'permanentemail'} ne '') || ($emails{'notification'} ne '')) { |
Line 3858 sub notification_information {
|
Line 3964 sub notification_information {
|
} |
} |
if ($req_notifylist) { |
if ($req_notifylist) { |
my $fullname = &Apache::loncommon::plainname($env{'user.name'}, |
my $fullname = &Apache::loncommon::plainname($env{'user.name'}, |
$env{'user.domain'}); |
$env{'user.domain'}); |
my $sender = $env{'user.name'}.':'.$env{'user.domain'}; |
my $sender = $env{'user.name'}.':'.$env{'user.domain'}; |
&Apache::loncoursequeueadmin::send_selfserve_notification($req_notifylist,"$fullname ($env{'user.name'}:$env{'user.domain'})",$cnum,$env{'form.cdescr'},$now,'coursereq',$sender); |
&Apache::loncoursequeueadmin::send_selfserve_notification($req_notifylist,"$fullname ($env{'user.name'}:$env{'user.domain'})",$cnum,$env{'form.cdescr'},$now,'coursereq',$sender); |
} |
} |
|
if (ref($postprocess) eq 'HASH') { |
|
if (ref($postprocess->{'queuedmsg'}) eq 'ARRAY') { |
|
if (scalar(@{$postprocess->{'queuedmsg'}}) > 0) { |
|
my $recipient = $env{'user.name'}.':'.$env{'user.domain'}; |
|
my $sender = $recipient; |
|
my $addmsg = []; |
|
foreach my $item (@{$postprocess->{'queuedmsg'}}) { |
|
if (ref($item) eq 'HASH') { |
|
if ($item->{'mt'} ne '') { |
|
push(@{$addmsg},$item); |
|
} |
|
} |
|
} |
|
if (scalar(@{$addmsg}) > 0) { |
|
&Apache::loncoursequeueadmin::send_selfserve_notification($recipient,$addmsg,$cnum, |
|
$env{'form.cdescr'},$now, |
|
'queuedreq',$sender); |
|
} |
|
} |
|
} |
|
if ($postprocess->{'queuedweb'}) { |
|
$output .= $postprocess->{'queuedweb'}; |
|
} |
|
} |
} elsif ($disposition eq 'pending') { |
} elsif ($disposition eq 'pending') { |
$output .= '<div class="LC_info">'. |
$output .= '<div class="LC_info">'. |
&mt('Your request has been placed in a queue pending administrative action.').'<br />'. |
&mt('Your request has been placed in a queue pending administrative action.').'<br />'. |
&mt("Usually this means that your institution's information systems do not list you among the instructional personnel for this course.").'<br />'. |
&mt("Usually this means that your institution's information systems do not list you among the instructional personnel for this course.").'<br />'. |
&mt('The list of instructional personnel for the course will be automatically checked daily, and once you are listed the request will be processed.'). |
&mt('The list of instructional personnel for the course will be automatically checked daily, and once you are listed the request will be processed.'). |
'</div>'; |
'</div>'; |
} elsif (($disposition eq 'created') && ($code)) { |
} elsif ($disposition eq 'created') { |
my $codemsg = [{ |
if (($code) || ((ref($postprocess) eq 'HASH') && |
mt => 'Students can automatically select your course by entering this code: [_1]', |
((ref($postprocess->{'createdmsg'}) eq 'ARRAY') || ($postprocess->{'createdweb'})))) { |
args => [$code], |
my $addmsg = []; |
}]; |
my $recipient = $env{'user.name'}.':'.$env{'user.domain'}; |
$output .= '<p>'. |
my $sender = $recipient; |
&mt('Students can automatically select your course by entering this code: [_1].','<b>'.$code.'</b>'). |
if ($code) { |
'<br />'. |
push(@{$addmsg},{ |
&mt('A message has been sent to your LON-CAPA account with this information.'); |
mt => 'Students can automatically select your course by entering this code: [_1]', |
if ($address ne '') { |
args => [$code], |
$output.= '<br />'.&mt('And an e-mail has also been sent to: [_1] with this code.',$address); |
}); |
} |
$output .= '<p>'. |
$output .= '</p>'; |
&mt('Students can automatically select your course by entering this code: [_1].','<b>'.$code.'</b>'). |
my $sender = $env{'user.name'}.':'.$env{'user.domain'}; |
'<br />'. |
if ($code) { |
&mt('A message has been sent to your LON-CAPA account with this information.'); |
&Apache::loncoursequeueadmin::send_selfserve_notification($req_notifylist,$codemsg,$cnum,$env{'form.cdescr'}, |
if ($address ne '') { |
$now,'uniquecode',$sender); |
$output.= '<br />'.&mt('An e-mail has also been sent to: [_1] with this code.',$address); |
|
} |
|
$output .= '</p>'; |
|
} |
|
if (ref($postprocess) eq 'HASH') { |
|
if (ref($postprocess->{'createdmsg'}) eq 'ARRAY') { |
|
foreach my $item (@{$postprocess->{'createdmsg'}}) { |
|
if (ref($item) eq 'HASH') { |
|
if ($item->{'mt'} ne '') { |
|
push(@{$addmsg},$item); |
|
} |
|
} |
|
} |
|
} |
|
if ($postprocess->{'createdweb'}) { |
|
$output .= $postprocess->{'createdweb'} |
|
} |
|
} |
|
if (scalar(@{$addmsg}) > 0) { |
|
my $type = 'createdreq'; |
|
if ($code) { |
|
$type = 'uniquecode'; |
|
} |
|
&Apache::loncoursequeueadmin::send_selfserve_notification($recipient,$addmsg,$cnum,$env{'form.cdescr'}, |
|
$now,$type,$sender); |
|
} |
} |
} |
} else { |
} else { |
$output .= '<div class="LC_warning">'. |
$output .= '<div class="LC_warning">'. |
Line 4110 sub generate_date_items {
|
Line 4265 sub generate_date_items {
|
} |
} |
|
|
sub print_textbook_form { |
sub print_textbook_form { |
my ($r,$dom,$incdoms,$domdefs,$settings) = @_; |
my ($r,$dom,$incdoms,$domdefs,$settings,$can_request) = @_; |
my ($bookshash,%ordered); |
my ($bookshash,%ordered); |
my $crstype = 'textbook'; |
my $crstype = 'textbook'; |
# |
# |
Line 4170 sub print_textbook_form {
|
Line 4325 sub print_textbook_form {
|
$loaditems{'onload'} = 'javascript:uncheckAllRadio();'; |
$loaditems{'onload'} = 'javascript:uncheckAllRadio();'; |
$r->print(&header('Course Request',$jscript,\%loaditems)); |
$r->print(&header('Course Request',$jscript,\%loaditems)); |
|
|
|
if (ref($can_request) eq 'HASH') { |
|
unless ((scalar(keys(%{$can_request})) == 1) && ($can_request->{'textbook'})) { |
|
&Apache::lonhtmlcommon::add_breadcrumb( |
|
{ href => '/adm/requestcourse', |
|
text => 'Pick action', |
|
}); |
|
} |
|
} |
&Apache::lonhtmlcommon::add_breadcrumb({text=>'Course Request'}); |
&Apache::lonhtmlcommon::add_breadcrumb({text=>'Course Request'}); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Requests','Course_Requests')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Requests','Course_Requests')); |
|
|
|
&startContentScreen($r,'textbookrequests'); |
# |
# |
# Show domain selector form, if required. |
# Show domain selector form, if required. |
# |
# |
Line 4369 sub print_textbook_form {
|
Line 4533 sub print_textbook_form {
|
' '.&mt($accesstitles{'end'}).$endform.'<br /></div>'); |
' '.&mt($accesstitles{'end'}).$endform.'<br /></div>'); |
|
|
# |
# |
|
# Display any custom fields for this course type |
|
# |
|
my $fullname = &Apache::loncommon::plainname($env{'user.name'}, |
|
$env{'user.domain'}); |
|
my $postprocess = &Apache::lonnet::auto_crsreq_update($dom,undef,$crstype,'review', |
|
$env{'user.name'}, |
|
$env{'user.domain'},$fullname); |
|
if (ref($postprocess) eq 'HASH') { |
|
if ($postprocess->{'reviewweb'}) { |
|
$r->print($postprocess->{'reviewweb'}); |
|
} |
|
} |
|
|
|
# |
# Submit button |
# Submit button |
# |
# |
$r->print('<input type="hidden" name="action" value="process" />'. |
$r->print('<input type="hidden" name="crstype" value="textbook" />'. |
|
'<input type="hidden" name="action" value="process" />'. |
'<input type="submit" value="'.&mt('Create course').'" />'); |
'<input type="submit" value="'.&mt('Create course').'" />'); |
|
|
# |
# |
# End request form |
# End request form |
# |
# |
$r->print('</form>'. |
$r->print('</form>'); |
&Apache::loncommon::end_page()); |
&endContentScreen($r). |
|
$r->print(&Apache::loncommon::end_page()); |
return; |
return; |
} |
} |
|
|
sub process_textbook_request { |
sub process_textbook_request { |
my ($r,$dom,$action,$domdefs,$domconfig) = @_; |
my ($r,$dom,$action,$domdefs,$domconfig,$can_request) = @_; |
my ($uniquecode,$req_notifylist); |
my ($uniquecode,$req_notifylist); |
my $crstype = 'textbook'; |
my $crstype = 'textbook'; |
if (ref($domconfig) eq 'HASH') { |
if (ref($domconfig) eq 'HASH') { |
Line 4425 sub process_textbook_request {
|
Line 4605 sub process_textbook_request {
|
} |
} |
$r->print(&header('Course Creation')); |
$r->print(&header('Course Creation')); |
|
|
|
if (ref($can_request) eq 'HASH') { |
|
unless ((scalar(keys(%{$can_request})) == 1) && ($can_request->{'textbook'})) { |
|
&Apache::lonhtmlcommon::add_breadcrumb( |
|
{ href => '/adm/requestcourse', |
|
text => 'Pick action', |
|
}); |
|
} |
|
} |
&Apache::lonhtmlcommon::add_breadcrumb( |
&Apache::lonhtmlcommon::add_breadcrumb( |
{ href => '/adm/requestcourse', |
{ href => '/adm/requestcourse', |
text => "Create Course", |
text => "Create Course", |
Line 4432 sub process_textbook_request {
|
Line 4620 sub process_textbook_request {
|
); |
); |
&Apache::lonhtmlcommon::add_breadcrumb({text=>'Request Processed'}); |
&Apache::lonhtmlcommon::add_breadcrumb({text=>'Request Processed'}); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Requests','Course_Requests')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Course Requests','Course_Requests')); |
|
&startContentScreen($r,'textbookrequests'); |
|
|
my $details = { |
my $details = { |
owner => $env{'user.name'}, |
owner => $env{'user.name'}, |
Line 4459 sub process_textbook_request {
|
Line 4648 sub process_textbook_request {
|
} elsif ($result eq 'created') { |
} elsif ($result eq 'created') { |
$r->print('<p><a href="/adm/requestcourse">'.&mt('Create another course').'</a></p>'); |
$r->print('<p><a href="/adm/requestcourse">'.&mt('Create another course').'</a></p>'); |
} |
} |
|
&endContentScreen($r); |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
} |
} |
|
|
Line 4600 function validTextbookReq() {
|
Line 4790 function validTextbookReq() {
|
ENDSCRIPT |
ENDSCRIPT |
|
|
} |
} |
|
|
|
sub startContentScreen { |
|
my ($r,$mode)=@_; |
|
$r->print("\n".'<ul class="LC_TabContentBigger" id="textbookreq">'."\n"); |
|
$r->print('<li'.(($mode eq 'textbookrequests')?' class="active"':'').'><a href="/adm/requestcourse"><b> '.&mt('Request a Course').' </b></a></li>'."\n"); |
|
$r->print('<li'.(($mode eq 'textbooklogs')?' class="active"':'').'><a href="/adm/requestcourse?action=log&crstype=textbook&tabs=on"><b> '.&mt('Course Request History').' </b></a></li>'."\n"); |
|
$r->print("\n".'</ul>'."\n"); |
|
$r->print('<div class="LC_Box" style="clear:both;margin:0;"><div id="mainbox" style="margin:0 0;padding:0 0;"><div class="LC_ContentBox" id="maincontentbox" style="display: block;">'); |
|
} |
|
|
|
sub endContentScreen { |
|
my ($r)=@_; |
|
$r->print('</div></div></div>'); |
|
} |
|
|
1; |
1; |
|
|