version 1.2, 2009/08/04 20:15:50
|
version 1.4, 2009/08/05 23:44:52
|
Line 55 use Apache::Constants qw(:common :http);
|
Line 55 use Apache::Constants qw(:common :http);
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use LONCAPA; |
use LONCAPA qw(:DEFAULT :match); |
|
|
sub handler { |
sub handler { |
my ($r) = @_; |
my ($r) = @_; |
Line 112 sub handler {
|
Line 112 sub handler {
|
} |
} |
} |
} |
|
|
|
my %trail = ( |
|
crstype => 'Course Request Action', |
|
codepick => 'Category', |
|
courseinfo => 'Information', |
|
enrollment => 'Enrollment', |
|
personnel => 'Personnel', |
|
review => 'Review', |
|
process => 'Result', |
|
); |
|
|
my $page = 0; |
my $page = 0; |
|
my $crumb; |
if (defined($action)) { |
if (defined($action)) { |
my $done = 0; |
my $done = 0; |
my $i=0; |
my $i=0; |
Line 125 sub handler {
|
Line 136 sub handler {
|
$i++; |
$i++; |
} |
} |
} |
} |
|
for (my $i=0; $i<@{$states{$action}}; $i++) { |
|
if ($state eq $states{$action}[$i]) { |
|
&Apache::lonhtmlcommon::add_breadcrumb( |
|
{text=>"$trail{$state}"}); |
|
$crumb = &Apache::lonhtmlcommon::breadcrumbs('Course Requests','Course_Requests'); |
|
last; |
|
} else { |
|
if (($state eq 'process') && ($i > 0)) { |
|
&Apache::lonhtmlcommon::add_breadcrumb( |
|
{href=>"javascript:backPage(document.requestcrs,'$states{$action}[0]')", |
|
text=>"$trail{$states{$action}[$i]}"}); |
|
} else { |
|
&Apache::lonhtmlcommon::add_breadcrumb( |
|
{href=>"javascript:backPage(document.requestcrs,'$states{$action}[$i]')", |
|
text=>"$trail{$states{$action}[$i]}"}); |
|
} |
|
} |
|
} |
|
} else { |
|
&Apache::lonhtmlcommon::add_breadcrumb( |
|
{text=>'Pick Action'}); |
|
$crumb = &Apache::lonhtmlcommon::breadcrumbs('Course Requests','Course_Requests'); |
} |
} |
|
|
my %can_request; |
my %can_request; |
Line 132 sub handler {
|
Line 165 sub handler {
|
if ($action eq 'new') { |
if ($action eq 'new') { |
if ($canreq) { |
if ($canreq) { |
if ($state eq 'crstype') { |
if ($state eq 'crstype') { |
&print_main_menu($r,\%can_request,\%states,$dom,$jscript,$loaditems); |
&print_main_menu($r,\%can_request,\%states,$dom,$jscript,$loaditems, |
|
$crumb); |
} else { |
} else { |
&request_administration($r,$action,$state,$page,\%states,$dom,$jscript, |
&request_administration($r,$action,$state,$page,\%states,$dom,$jscript, |
$loaditems); |
$loaditems,$crumb); |
} |
} |
} else { |
} else { |
$r->print(&header('Course Requests'). |
$r->print(&header('Course Requests').$crumb. |
'<div class="LC_warning">'. |
'<div class="LC_warning">'. |
&mt('You do not have privileges to request creation of courses.'). |
&mt('You do not have privileges to request creation of courses.'). |
'</div>'.&Apache::loncommon::end_page()); |
'</div>'.&Apache::loncommon::end_page()); |
} |
} |
} elsif ($action eq 'view') { |
} elsif ($action eq 'view') { |
&print_request_status($jscript,$loaditems); |
&print_request_status($jscript,$loaditems,$crumb); |
} elsif ($action eq 'log') { |
} elsif ($action eq 'log') { |
&print_request_logs($jscript,$loaditems); |
&print_request_logs($jscript,$loaditems,$crumb); |
} else { |
} else { |
&print_main_menu($r,\%can_request,\%states,$dom,$jscript); |
&print_main_menu($r,\%can_request,\%states,$dom,$jscript,'',$crumb); |
} |
} |
return OK; |
return OK; |
} |
} |
Line 160 sub header {
|
Line 194 sub header {
|
$jscript.'</script>'."\n"; |
$jscript.'</script>'."\n"; |
} |
} |
if ($loaditems) { |
if ($loaditems) { |
$loaditems = {'add_entries' => $loaditems,}; |
$loaditems = {'add_entries' => $loaditems,}; |
} |
return &Apache::loncommon::start_page($bodytitle,$jscript.$jsextra,$loaditems); |
return &Apache::loncommon::start_page($bodytitle,$jscript.$jsextra,$loaditems); |
} else { |
|
return &Apache::loncommon::start_page($bodytitle,$jscript.$jsextra); |
|
} |
} |
} |
|
|
sub form_elements { |
sub form_elements { |
Line 304 sub onload_action {
|
Line 340 sub onload_action {
|
sub check_can_request { |
sub check_can_request { |
my ($dom,$can_request) = @_; |
my ($dom,$can_request) = @_; |
my $canreq = 0; |
my $canreq = 0; |
if (ref($can_request) eq 'HASH') { |
my ($types,$typename) = &course_types(); |
foreach my $type ('official','unofficial','community') { |
if ((ref($can_request) eq 'HASH') && (ref($types) eq 'ARRAY')) { |
|
foreach my $type (@{$types}) { |
if (&Apache::lonnet::usertools_access($env{'user.name'}, |
if (&Apache::lonnet::usertools_access($env{'user.name'}, |
$env{'user.domain'}, |
$env{'user.domain'}, |
$type,undef,'requestcourses')) { |
$type,undef,'requestcourses')) { |
Line 330 sub check_can_request {
|
Line 367 sub check_can_request {
|
return $canreq; |
return $canreq; |
} |
} |
|
|
|
sub course_types { |
|
my @types = ('official','unofficial','community'); |
|
my %typename = ( |
|
official => 'Official course', |
|
unofficial => 'Unofficial course', |
|
community => 'Community', |
|
); |
|
return (\@types,\%typename); |
|
} |
|
|
|
|
sub print_main_menu { |
sub print_main_menu { |
my ($r,$can_request,$states,$dom,$jscript,$loaditems) = @_; |
my ($r,$can_request,$states,$dom,$jscript,$loaditems,$crumb) = @_; |
|
my ($types,$typename) = &course_types(); |
my $onchange; |
my $onchange; |
unless ($env{'form.interface'} eq 'textual') { |
unless ($env{'form.interface'} eq 'textual') { |
$onchange = 1; |
$onchange = 1; |
Line 415 END
|
Line 464 END
|
|
|
END |
END |
|
|
$r->print(&header('Course Requests',$js.$jscript,$loaditems). |
$r->print(&header('Course Requests',$js.$jscript,$loaditems).$crumb. |
'<p><div>'. |
'<div>'. |
'<form name="domforcourse" method="post" action="/adm/requestcourse">'. |
'<form name="domforcourse" method="post" action="/adm/requestcourse">'. |
&Apache::lonhtmlcommon::start_pick_box(). |
&Apache::lonhtmlcommon::start_pick_box(). |
&Apache::lonhtmlcommon::row_title('Domain'). |
&Apache::lonhtmlcommon::row_title('Domain'). |
Line 442 END
|
Line 491 END
|
&Apache::lonhtmlcommon::row_closure(). |
&Apache::lonhtmlcommon::row_closure(). |
&Apache::lonhtmlcommon::row_title('Course Type').' |
&Apache::lonhtmlcommon::row_title('Course Type').' |
<select size="1" name="crstype"> |
<select size="1" name="crstype"> |
<option value="any">'.&mt('All types').'</option> |
<option value="any">'.&mt('All types').'</option>'); |
<option value="official" selected="selected">'.&mt('Official course').'</option> |
if ((ref($types) eq 'ARRAY') && (ref($typename) eq 'HASH')) { |
<option value="unofficial">'.&mt('Unofficial course').'</option> |
foreach my $type (@{$types}) { |
<option value="community">'.&mt('Community').'</option> |
my $selected = ''; |
</select> |
if ($type eq 'official') { |
|
$selected = ' selected="selected"'; |
|
} |
|
$r->print('<option value="'.$type.'"'.$selected.'>'.$typename->{$type}. |
|
'</option>'."\n"); |
|
} |
|
} |
|
$r->print('</select> |
<input type="hidden" name="state" value="crstype" />'. |
<input type="hidden" name="state" value="crstype" />'. |
&Apache::lonhtmlcommon::row_closure(1). |
&Apache::lonhtmlcommon::row_closure(1). |
&Apache::lonhtmlcommon::end_pick_box().'<br /> |
&Apache::lonhtmlcommon::end_pick_box().'<br /> |
Line 457 END
|
Line 513 END
|
} |
} |
|
|
sub request_administration { |
sub request_administration { |
my ($r,$action,$state,$page,$states,$dom,$jscript,$loaditems) = @_; |
my ($r,$action,$state,$page,$states,$dom,$jscript,$loaditems,$crumb) = @_; |
my $js; |
my $js; |
if (($action eq 'new') || ($action eq 'view')) { |
if (($action eq 'new') || ($action eq 'view')) { |
$js = <<END; |
$js = <<END; |
Line 478 END
|
Line 534 END
|
unless (($state eq 'review') || ($state eq 'process')) { |
unless (($state eq 'review') || ($state eq 'process')) { |
$jsextra = "\n".&Apache::loncommon::coursebrowser_javascript($dom); |
$jsextra = "\n".&Apache::loncommon::coursebrowser_javascript($dom); |
} |
} |
$r->print(&header('Request a course',$js.$jscript,$loaditems,$jsextra)); |
$r->print(&header('Request a course',$js.$jscript,$loaditems,$jsextra).$crumb); |
if ($state eq 'review') { |
if ($state eq 'process') { |
&print_review($r,$state,$dom); |
|
} elsif ($state eq 'process') { |
|
&print_request_outcome($r,$state,$dom); |
&print_request_outcome($r,$state,$dom); |
} else { |
} else { |
&print_request_form($r,$action,$state,$page,$states,$dom); |
&print_request_form($r,$action,$state,$page,$states,$dom); |
} |
} |
} elsif ($action eq 'view') { |
} elsif ($action eq 'view') { |
$r->print(&header('Manage course requests',$js.$jscript,$loaditems)); |
$r->print(&header('Manage course requests',$js.$jscript,$loaditems).$crumb); |
} elsif ($action eq 'log') { |
} elsif ($action eq 'log') { |
$r->print(&coursereq_log('View request log',$jscript,$loaditems)); |
$r->print(&coursereq_log('View request log',$jscript,$loaditems).$crumb); |
} |
} |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return; |
return; |
Line 501 sub print_request_form {
|
Line 555 sub print_request_form {
|
my ($next,$prev,$message,$output,$codepicker,$crstype); |
my ($next,$prev,$message,$output,$codepicker,$crstype); |
$prev = $states->{$action}[$page-1]; |
$prev = $states->{$action}[$page-1]; |
$next = $states->{$action}[$page+1]; |
$next = $states->{$action}[$page+1]; |
|
my %navtxt = &Apache::lonlocal::texthash ( |
|
prev => 'Previous', |
|
next => 'Next', |
|
); |
$crstype = $env{'form.crstype'}; |
$crstype = $env{'form.crstype'}; |
$r->print('<form name="'.$formname.'" method="post" action="/adm/requestcourse">'); |
$r->print('<form name="'.$formname.'" method="post" action="/adm/requestcourse">'); |
my (@codetitles,%cat_titles,%cat_order,@code_order,$instcode,$code_chk); |
my (@codetitles,%cat_titles,%cat_order,@code_order,$instcode,$code_chk); |
if ($crstype eq 'official') { |
if ($crstype eq 'official') { |
&Apache::lonnet::auto_possible_instcodes($dom,\@codetitles,\%cat_titles, |
|
\%cat_order,\@code_order); |
|
if ($env{'form.instcode'} ne '') { |
if ($env{'form.instcode'} ne '') { |
$instcode = $env{'form.instcode'}; |
$instcode = $env{'form.instcode'}; |
} |
} |
} |
} |
if ($prev eq 'codepick') { |
if ($prev eq 'codepick') { |
|
if ($crstype eq 'official') { |
|
&Apache::lonnet::auto_possible_instcodes($dom,\@codetitles,\%cat_titles, |
|
\%cat_order,\@code_order); |
|
} |
if (@code_order > 0) { |
if (@code_order > 0) { |
my $message; |
my $message; |
if ($instcode eq '') { |
if ($instcode eq '') { |
Line 545 sub print_request_form {
|
Line 605 sub print_request_form {
|
} |
} |
} |
} |
if ($prev eq 'crstype') { |
if ($prev eq 'crstype') { |
|
if ($crstype eq 'official') { |
|
&Apache::lonnet::auto_possible_instcodes($dom,\@codetitles,\%cat_titles, |
|
\%cat_order,\@code_order); |
|
} |
if (@code_order > 0) { |
if (@code_order > 0) { |
$codepicker = &coursecode_form($dom,'instcode',\@codetitles, |
$codepicker = &coursecode_form($dom,'instcode',\@codetitles, |
\%cat_titles,\%cat_order); |
\%cat_titles,\%cat_order); |
Line 560 sub print_request_form {
|
Line 624 sub print_request_form {
|
} elsif ($prev eq 'codepick') { |
} elsif ($prev eq 'codepick') { |
$r->print(&courseinfo_form($dom,$formname,$crstype)); |
$r->print(&courseinfo_form($dom,$formname,$crstype)); |
} elsif ($state eq 'enrollment') { |
} elsif ($state eq 'enrollment') { |
|
if ($crstype eq 'official') { |
|
&Apache::lonnet::auto_possible_instcodes($dom,\@codetitles,\%cat_titles, |
|
\%cat_order,\@code_order); |
|
} |
$r->print(&print_enrollment_menu($formname,$instcode,$dom,\@codetitles, |
$r->print(&print_enrollment_menu($formname,$instcode,$dom,\@codetitles, |
\%cat_titles,\%cat_order,\@code_order)); |
\%cat_titles,\%cat_order,\@code_order)); |
} elsif ($state eq 'personnel') { |
} elsif ($state eq 'personnel') { |
$r->print(&print_personnel_menu($dom,$formname)); |
$r->print(&print_personnel_menu($dom,$formname)); |
|
} elsif ($state eq 'review') { |
|
&Apache::lonnet::auto_possible_instcodes($dom,\@codetitles,\%cat_titles, |
|
\%cat_order,\@code_order); |
|
$r->print(&print_review($formname,$dom,\@codetitles,\%cat_titles,\%cat_order, |
|
\@code_order)); |
|
$navtxt{'next'} = &mt('Submit course request'); |
} |
} |
my @excluded = ('counter'); |
my @excluded = ('counter'); |
my %elements = &form_elements($dom); |
my %elements = &form_elements($dom); |
Line 589 sub print_request_form {
|
Line 663 sub print_request_form {
|
push(@excluded,'instcode'); |
push(@excluded,'instcode'); |
} |
} |
$r->print(&Apache::lonhtmlcommon::echo_form_input(\@excluded).'</form>'); |
$r->print(&Apache::lonhtmlcommon::echo_form_input(\@excluded).'</form>'); |
&display_navbuttons($r,$formname,$prev,'Previous',$next,'Next'); |
&display_navbuttons($r,$formname,$prev,$navtxt{'prev'},$next,$navtxt{'next'}); |
return; |
return; |
} |
} |
|
|
Line 841 sub print_request_logs {
|
Line 915 sub print_request_logs {
|
} |
} |
|
|
sub print_review { |
sub print_review { |
my ($r,$state,$dom) = @_; |
my ($formname,$dom,$codetitles,$cat_titles,$cat_order,$code_order) = @_; |
return; |
my ($types,$typename) = &course_types(); |
|
my ($owner,$ownername,$owneremail); |
|
$owner = $env{'user.name'}.':'.$env{'user.domain'}; |
|
$ownername = &Apache::loncommon::plainname($env{'user.name'}, |
|
$env{'user.domain'},'first'); |
|
my %emails = &Apache::loncommon::getemails(); |
|
foreach my $email ('permanentemail','critnotification','notification') { |
|
$owneremail = $emails{$email}; |
|
last if ($owneremail ne ''); |
|
} |
|
my ($inst_headers,$inst_values,$crstypename,$enroll_headers,$enroll_values, |
|
$section_headers,$section_values,$personnel_headers,$personnel_values); |
|
|
|
$crstypename = $env{'form.crstype'}; |
|
if (ref($typename) eq 'HASH') { |
|
unless ($typename->{$env{'form.crstype'}} eq '') { |
|
$crstypename = $typename->{$env{'form.crstype'}}; |
|
} |
|
} |
|
|
|
$inst_headers = '<th>'.&mt('Description').'</th><th>'.&mt('Type').'</th>'; |
|
$inst_values = '<td>'.$env{'form.cdescr'}.'</td><td>'.$crstypename.'</td>'; |
|
|
|
if ($env{'form.crstype'} eq 'official') { |
|
if ((ref($codetitles) eq 'ARRAY') && (ref($cat_titles) eq 'HASH')) { |
|
foreach my $title (@{$codetitles}) { |
|
if ($env{'form.instcode_'.$title} ne '') { |
|
$inst_headers .= '<th>'.$title.'</th>'; |
|
my $longitem = $env{'form.instcode_'.$title}; |
|
if (ref($cat_titles->{$title}) eq 'HASH') { |
|
if ($cat_titles->{$title}{$env{'form.instcode_'.$title}} ne '') { |
|
$longitem = $cat_titles->{$title}{$env{'form.instcode_'.$title}}; |
|
} |
|
} |
|
$inst_values .= '<td>'.$longitem.'</td>'; |
|
} |
|
} |
|
} |
|
if (&Apache::lonnet::auto_run('',$dom)) { |
|
$enroll_headers = '<th>'.&mt('Automatic Adds').'</th>'. |
|
'<th>'.&mt('Automatic Drops').'</th>'. |
|
'<th>'.&mt('Enrollment Starts').'</th>'. |
|
'<th>'.&mt('Enrollment Ends').'</th>'; |
|
$section_headers = '<th>'.&mt('Sections').'</th>'. |
|
'<th>'.&mt('Crosslistings').'</th>'; |
|
|
|
my ($startenroll,$endenroll) = &dates_from_form('startenroll','endenroll'); |
|
my @autoroster = (&mt('No'),&mt('Yes')); |
|
$enroll_values = '<td>'.$autoroster[$env{'form.autoadds'}].'</td>'. |
|
'<td>'.$autoroster[$env{'form.autodrops'}].'</td>'. |
|
'<td>'.&Apache::lonlocal::locallocaltime($startenroll).'</td>'. |
|
'<td>'.&Apache::lonlocal::locallocaltime($endenroll).'</td>'; |
|
$section_values = '<td>'; |
|
if ($env{'form.sectotal'} > 0) { |
|
for (my $i=0; $i<$env{'form.sectotal'}; $i++) { |
|
if ($env{'form.sec_'.$i}) { |
|
$section_values .= $env{'form.secnum_'.$i}; |
|
if ($env{'form.loncapasec_'.$i} ne '') { |
|
$section_values .= ' => '.$env{'form.loncapasec_'.$i}; |
|
} |
|
$section_values .= '<br />'; |
|
} |
|
} |
|
} |
|
$section_values .= '</td><td>'; |
|
if ($env{'form.crosslisttotal'}) { |
|
for (my $i=0; $i<$env{'form.crosslisttotal'}; $i++) { |
|
if ($env{'form.crosslist_'.$i}) { |
|
if (ref($codetitles) eq 'ARRAY') { |
|
if (@{$codetitles} > 0) { |
|
foreach my $item (@{$codetitles}) { |
|
$section_values .= $env{'form.crosslist_'.$i.'_'.$item}; |
|
} |
|
} else { |
|
$section_values .= $env{'form.crosslist_'.$i.'_instsec'}; |
|
} |
|
} else { |
|
$section_values .= $env{'form.crosslist_'.$i.'_instsec'}; |
|
} |
|
if ($env{'form.crosslist_'.$i.'_lcsec'}) { |
|
$section_values .= ' => '.$env{'form.crosslist_'.$i.'_lcsec'}; |
|
} |
|
$section_values .= '<br />'; |
|
} |
|
} |
|
} |
|
$section_values .= '</td>'; |
|
} |
|
} |
|
|
|
my %ctxt = &clone_text(); |
|
$inst_headers .= '<th>'.&mt('Clone From').'</th>'; |
|
if (($env{'form.clonecourse'} =~ /^$match_name$/) && |
|
($env{'form.clonedomain'} =~ /^$match_domain$/)) { |
|
my %coursehash = |
|
&Apache::lonnet::courseiddump($env{'form.clonedomain'},'.',1,'.','.', |
|
$env{'form.clonecourse'},undef,undef,'.'); |
|
my $cloneid = $env{'form.clonedomain'}.'_'.$env{'form.clonecourse'}; |
|
if (ref($coursehash{$cloneid}) eq 'HASH') { |
|
$inst_headers .= '<th>'.$ctxt{'dsh'}.'</th>'; |
|
my $clonedesc = $coursehash{$cloneid}{'description'}; |
|
my $cloneinst = $coursehash{$cloneid}{'inst_code'}; |
|
|
|
$inst_values .= '<td>'.$clonedesc.' '; |
|
if ($cloneinst ne '') { |
|
$inst_values .= &mt('([_1] in [_2])',$cloneinst,$env{'form.clonedomain'}); |
|
} else { |
|
$inst_values .= &mt('(from [_1])',$env{'form.clonedomain'}); |
|
} |
|
$inst_values .= '</td><td>'; |
|
if ($env{'form.datemode'} eq 'preserve') { |
|
$inst_values .= $ctxt{'pcd'}; |
|
} elsif ($env{'form.datemode'} eq 'shift') { |
|
$inst_values .= &mt('Shift dates by [_1] days',$env{'form.dateshift'}); |
|
} else { |
|
$inst_values .= $ctxt{'ncd'}; |
|
} |
|
$inst_values .= '</td>'; |
|
} else { |
|
$inst_values .= '<td>'.&mt('Unknown').'</td>'; |
|
} |
|
} else { |
|
$inst_values .= '<td>'.&mt('None').'</td>'; |
|
} |
|
$enroll_headers .= '<th>'.&mt('Access Starts').'</th>'. |
|
'<th>'.&mt('Access Ends').'</th>'; |
|
my ($startaccess,$endaccess) = &dates_from_form('startaccess','endaccess'); |
|
$enroll_values .= '<td>'.&Apache::lonlocal::locallocaltime($startaccess).'</td>'; |
|
if ($endaccess == 0) { |
|
$enroll_values .= '<td>'.&mt('No end date').'</td>'; |
|
} else { |
|
$enroll_values .= '<td>'.&Apache::lonlocal::locallocaltime($endaccess).'</td>'; |
|
} |
|
|
|
my $container = 'Course'; |
|
if ($env{'form.crstype'} eq 'community') { |
|
$container = 'Community'; |
|
} |
|
|
|
$personnel_headers = '<th>'.&mt('Name').'</th><th>'.&mt('Username:Domain'). |
|
'</th><th>'.&mt('Role').'</th><th>'.&mt('LON-CAPA Sections'). |
|
'</th>'; |
|
$personnel_values .= '<tr><td>'.$ownername.'</td><td>'.$owner.'</td>'. |
|
'<td>'.&Apache::lonnet::plaintext('cc',$container).'</td>'. |
|
'<td>'.&mt('None').'</td></tr>'; |
|
for (my $i=0; $i<$env{'form.persontotal'}; $i++) { |
|
if ($env{'form.person_'.$i.'_uname'} ne '') { |
|
$personnel_values .= |
|
'<tr><td>'.$env{'form.person_'.$i.'_first'}.' '. |
|
$env{'form.person_'.$i.'_last'}.'</td>'. |
|
'<td>'.$env{'form.person_'.$i.'_uname'}.':'. |
|
$env{'form.person_'.$i.'_dom'}.'</td>'. |
|
'<td>'.&Apache::lonnet::plaintext($env{'form.person_'.$i.'_role'}, |
|
$container).'</td>'. |
|
'<td>'.$env{'form.person_'.$i.'_sections'}.'</td></tr>'; |
|
} |
|
} |
|
my $output = '<p>'.&mt('Review the details of the course request before submission.').'</p>'. |
|
'<div>'.&Apache::lonhtmlcommon::start_pick_box(). |
|
&Apache::lonhtmlcommon::row_title(&mt('Owner')). |
|
'<table class="LC_innerpickbox">'. |
|
'<th>'.&mt('Name').'</th>'. |
|
'<th>'.&mt('Username:Domain').'</th>'. |
|
'<th>'.&mt('E-mail address').'</th>'. |
|
'</tr><tr>'."\n". |
|
'<td>'.$ownername.'</td><td>'.$owner.'</td>'. |
|
'<td>'.$owneremail.'</td>'. |
|
'</tr></table>'."\n". |
|
&Apache::lonhtmlcommon::row_closure(). |
|
&Apache::lonhtmlcommon::row_title(&mt('Information')). |
|
'<table class="LC_innerpickbox"><tr>'.$inst_headers.'</tr>'."\n". |
|
'<tr>'.$inst_values.'</tr></table>'."\n". |
|
&Apache::lonhtmlcommon::row_closure(). |
|
&Apache::lonhtmlcommon::row_title(&mt('Enrollment')). |
|
'<table class="LC_innerpickbox"><tr>'.$enroll_headers.'</tr>'."\n". |
|
'<tr>'.$enroll_values.'</tr></table>'."\n". |
|
&Apache::lonhtmlcommon::row_closure(); |
|
if ($section_headers ne '') { |
|
$output .= &Apache::lonhtmlcommon::row_title(&mt('Sections')). |
|
'<table class="LC_innerpickbox"><tr>'.$section_headers.'</tr>'."\n". |
|
'<tr>'.$section_values.'</tr></table>'."\n". |
|
&Apache::lonhtmlcommon::row_closure(); |
|
} |
|
$output .= &Apache::lonhtmlcommon::row_title(&mt('Personnel')). |
|
'<table class="LC_innerpickbox"><tr>'.$personnel_headers.'</tr>'."\n". |
|
$personnel_values.'</table>'."\n". |
|
&Apache::lonhtmlcommon::row_closure(1). |
|
&Apache::lonhtmlcommon::end_pick_box(); |
|
return $output; |
|
} |
|
|
|
sub dates_from_form { |
|
my ($startname,$endname) = @_; |
|
my $startdate = &Apache::lonhtmlcommon::get_date_from_form($startname); |
|
my $enddate = &Apache::lonhtmlcommon::get_date_from_form($endname); |
|
if ($endname eq 'endaccess') { |
|
if (exists($env{'form.no_end_date'}) ) { |
|
$enddate = 0; |
|
} |
|
} |
|
return ($startdate,$enddate); |
} |
} |
|
|
sub courseinfo_form { |
sub courseinfo_form { |
Line 864 sub clone_form {
|
Line 1138 sub clone_form {
|
} |
} |
my $cloneform = &Apache::loncommon::select_dom_form($dom,'clonedomain'). |
my $cloneform = &Apache::loncommon::select_dom_form($dom,'clonedomain'). |
&Apache::loncommon::selectcourse_link($formname,'clonecourse','clonedomain','','','',$type); |
&Apache::loncommon::selectcourse_link($formname,'clonecourse','clonedomain','','','',$type); |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &clone_text(); |
'cid' => 'Course ID', |
|
'dmn' => 'Domain', |
|
'dsh' => 'Date Shift', |
|
'ncd' => 'Do not clone date parameters', |
|
'prd' => 'Clone date parameters as-is', |
|
'shd' => 'Shift date parameters by number of days', |
|
); |
|
my $output .= |
my $output .= |
&Apache::lonhtmlcommon::start_pick_box(). |
&Apache::lonhtmlcommon::start_pick_box(). |
&Apache::lonhtmlcommon::row_title($lt{'cid'}).'<label>'. |
&Apache::lonhtmlcommon::row_title($lt{'cid'}).'<label>'. |
Line 893 sub clone_form {
|
Line 1160 sub clone_form {
|
return $output; |
return $output; |
} |
} |
|
|
|
sub clone_text { |
|
return &Apache::lonlocal::texthash( |
|
'cid' => 'Course ID', |
|
'dmn' => 'Domain', |
|
'dsh' => 'Date Shift', |
|
'ncd' => 'Do not clone date parameters', |
|
'prd' => 'Clone date parameters as-is', |
|
'shd' => 'Shift date parameters by number of days', |
|
); |
|
} |
|
|
sub coursecode_form { |
sub coursecode_form { |
my ($dom,$context,$codetitles,$cat_titles,$cat_order,$num) = @_; |
my ($dom,$context,$codetitles,$cat_titles,$cat_order,$num) = @_; |
my $output; |
my $output; |