version 1.33, 2005/11/21 18:55:41
|
version 1.35, 2005/11/21 21:20:06
|
Line 316 sub release_slot {
|
Line 316 sub release_slot {
|
return 1; |
return 1; |
} |
} |
|
|
|
sub delete_slot { |
|
my ($r)=@_; |
|
|
|
my $slot_name = $env{'form.slotname'}; |
|
my %slot=&Apache::lonnet::get_slot($slot_name); |
|
|
|
my ($cnum,$cdom)=&get_course(); |
|
my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum, |
|
"^$slot_name\0"); |
|
|
|
if (%slot && !%consumed) { |
|
$slot{'type'} = 'deleted'; |
|
my $ret = &Apache::lonnet::cput('slots', {$slot_name => \%slot}, |
|
$cdom, $cnum); |
|
if ($ret eq 'ok') { |
|
$r->print("<p>Slot <tt>$slot_name</tt> marked as deleted.</p>"); |
|
} else { |
|
$r->print("<p> An error ($ret) occurse when attempting to delete Slot <tt>$slot_name</tt>.</p>"); |
|
} |
|
} else { |
|
if (%consumed) { |
|
$r->print("<p>Slot <tt>$slot_name</tt> has active reservations.</p>"); |
|
} else { |
|
$r->print("<p>Slot <tt>$slot_name</tt> does not exist.</p>"); |
|
} |
|
} |
|
$r->print('<p><a href="/adm/slotrequest?command=showslots">'. |
|
&mt('Return to slot list').'</a></p>'); |
|
$r->print('<p><a href="/adm/flip?postdata=return:">'. |
|
&mt('Return to last resource').'</a></p>'); |
|
} |
|
|
sub get_slot { |
sub get_slot { |
my ($r,$symb)=@_; |
my ($r,$symb)=@_; |
|
|
Line 492 STUFF
|
Line 524 STUFF
|
} |
} |
|
|
sub to_show { |
sub to_show { |
my ($when,$slot) = @_; |
my ($slot,$when,$deleted) = @_; |
my $time=time; |
my $time=time; |
my $week=60*60*24*7; |
my $week=60*60*24*7; |
if ($when eq 'now') { |
if ($deleted eq 'hide' && $slot->{'type'} eq 'deleted') { |
|
return 0; |
|
} |
|
if ($when eq 'any') { |
|
return 1; |
|
} elsif ($when eq 'now') { |
if ($time > $slot->{'starttime'} && |
if ($time > $slot->{'starttime'} && |
$time < $slot->{'endtime'}) { |
$time < $slot->{'endtime'}) { |
return 1; |
return 1; |
Line 573 sub show_table {
|
Line 610 sub show_table {
|
$r->print('</div>'); |
$r->print('</div>'); |
} |
} |
|
|
my %Saveable_Parameters = ('show' => 'array', |
my %Saveable_Parameters = ('show' => 'array', |
'when' => 'scalar', |
'when' => 'scalar', |
'order' => 'scalar'); |
'order' => 'scalar', |
|
'deleted' => 'scalar', |
|
); |
&Apache::loncommon::store_course_settings('slotrequest',\%Saveable_Parameters); |
&Apache::loncommon::store_course_settings('slotrequest',\%Saveable_Parameters); |
&Apache::loncommon::restore_course_settings('slotrequest',\%Saveable_Parameters); |
&Apache::loncommon::restore_course_settings('slotrequest',\%Saveable_Parameters); |
|
|
Line 602 sub show_table {
|
Line 640 sub show_table {
|
my %show = map { $_ => 1 } (@show); |
my %show = map { $_ => 1 } (@show); |
|
|
my %when_fields=&Apache::lonlocal::texthash( |
my %when_fields=&Apache::lonlocal::texthash( |
'now' => 'Open now', |
'now' => 'Open now', |
'nextweek' => 'Open within the next week', |
'nextweek' => 'Open within the next week', |
'lastweek' => 'Were open last week', |
'lastweek' => 'Were open last week', |
'willopen' => 'Will open later', |
'willopen' => 'Will open later', |
'wereopen' => 'Were open'); |
'wereopen' => 'Were open', |
my @when_order=('now','nextweek','lastweek','willopen','wereopen'); |
'any' => 'Anytime', |
|
); |
|
my @when_order=('any','now','nextweek','lastweek','willopen','wereopen'); |
$when_fields{'select_form_order'} = \@when_order; |
$when_fields{'select_form_order'} = \@when_order; |
my $when = (exists($env{'form.when'})) ? $env{'form.when'} |
my $when = (exists($env{'form.when'})) ? $env{'form.when'} |
: 'now'; |
: 'now'; |
|
|
|
my $hide_radio = |
|
&Apache::lonhtmlcommon::radio('deleted',$env{'form.deleted'},'hide'); |
|
my $show_radio = |
|
&Apache::lonhtmlcommon::radio('deleted',$env{'form.deleted'},'show'); |
|
|
$r->print('<form method="POST" action="/adm/slotrequest"> |
$r->print('<form method="POST" action="/adm/slotrequest"> |
<input type="hidden" name="command" value="showslots" />'); |
<input type="hidden" name="command" value="showslots" />'); |
$r->print('<div>'); |
$r->print('<div>'); |
$r->print('<table class="inline"><tr><th>'.&mt('Show').'</th><th>'.&mt('Open').'</th></tr><tr><td>'.&Apache::loncommon::multiple_select_form('show',\@show,6,\%show_fields,\@show_order). |
$r->print('<table class="inline"> |
'</td><td>'.&Apache::loncommon::select_form($when,'when',%when_fields). |
<tr><th>'.&mt('Show').'</th> |
'</td></tr></table>'); |
<th>'.&mt('Open').'</th> |
|
<th>'.&mt('Options').'</th> |
|
</tr> |
|
<tr><td>'.&Apache::loncommon::multiple_select_form('show',\@show,6,\%show_fields,\@show_order). |
|
'</td> |
|
<td>'.&Apache::loncommon::select_form($when,'when',%when_fields). |
|
'</td> |
|
<td> |
|
<table> |
|
<tr> |
|
<td rowspan="2">Deleted slots:</td> |
|
<td><label>'.$show_radio.'Show</label></td> |
|
</tr> |
|
<tr> |
|
<td><label>'.$hide_radio.'Hide</label></td> |
|
</tr> |
|
</table> |
|
</td> |
|
</tr> |
|
</table>'); |
$r->print('</div>'); |
$r->print('</div>'); |
$r->print('<p><input type="submit" name="start" value="'.&mt('Update Display').'" /></p>'); |
$r->print('<p><input type="submit" name="start" value="'.&mt('Update Display').'" /></p>'); |
my $linkstart='<a href="/adm/slotrequest?command=showslots&order='; |
my $linkstart='<a href="/adm/slotrequest?command=showslots&order='; |
Line 659 sub show_table {
|
Line 723 sub show_table {
|
return $slots{$a}->{'starttime'} <=> $slots{$b}->{'starttime'}; |
return $slots{$a}->{'starttime'} <=> $slots{$b}->{'starttime'}; |
}; |
}; |
foreach my $slot (sort $slotsort (keys(%slots))) { |
foreach my $slot (sort $slotsort (keys(%slots))) { |
if (!&to_show($when,$slots{$slot})) { next; } |
if (!&to_show($slots{$slot},$when,$env{'form.deleted'})) { next; } |
if (defined($slots{$slot}->{'type'}) |
if (defined($slots{$slot}->{'type'}) |
&& $slots{$slot}->{'type'} ne 'schedulable_student') { |
&& $slots{$slot}->{'type'} ne 'schedulable_student') { |
#next; |
#next; |
Line 718 sub show_table {
|
Line 782 sub show_table {
|
} |
} |
my $proctors=join(', ',@proctors); |
my $proctors=join(', ',@proctors); |
|
|
my $edit=(<<EDITLINK); |
my $edit=(<<"EDITLINK"); |
<a href="/adm/helper/newslot.helper?name=$slot">Edit</a> |
<a href="/adm/helper/newslot.helper?name=$slot">Edit</a> |
EDITLINK |
EDITLINK |
|
|
$r->print("<tr>\n<td rowspan=\"$rowspan\">$edit</td>\n"); |
my $delete=(<<"DELETELINK"); |
|
<a href="/adm/slotrequest?command=delete&slotname=$slot">Delete</a> |
|
DELETELINK |
|
if ($ids ne '') { undef($delete); } |
|
|
|
$r->print("<tr>\n<td rowspan=\"$rowspan\">$edit $delete</td>\n"); |
if (exists($show{'name'})) { |
if (exists($show{'name'})) { |
$colspan++;$r->print("<td>$slot</td>"); |
$colspan++;$r->print("<td>$slot</td>"); |
} |
} |
Line 1040 sub handler {
|
Line 1109 sub handler {
|
&remove_registration($r); |
&remove_registration($r); |
} elsif ($env{'form.command'} eq 'release' && $mgr eq 'F') { |
} elsif ($env{'form.command'} eq 'release' && $mgr eq 'F') { |
&release_slot($r,undef,undef,undef,$mgr); |
&release_slot($r,undef,undef,undef,$mgr); |
|
} elsif ($env{'form.command'} eq 'delete' && $mgr eq 'F') { |
|
&delete_slot($r); |
} elsif ($env{'form.command'} eq 'uploadstart' && $mgr eq 'F') { |
} elsif ($env{'form.command'} eq 'uploadstart' && $mgr eq 'F') { |
&upload_start($r); |
&upload_start($r); |
} elsif ($env{'form.command'} eq 'csvuploadmap' && $mgr eq 'F') { |
} elsif ($env{'form.command'} eq 'csvuploadmap' && $mgr eq 'F') { |