version 1.74, 2007/04/10 23:26:49
|
version 1.76, 2007/04/10 23:30:41
|
Line 548 sub return_link {
|
Line 548 sub return_link {
|
} |
} |
|
|
sub get_slot { |
sub get_slot { |
my ($r,$symb)=@_; |
my ($r,$symb,$conflictable_slot,$inhibit_return_link)=@_; |
|
|
my %slot=&Apache::lonnet::get_slot($env{'form.slotname'}); |
my %slot=&Apache::lonnet::get_slot($env{'form.slotname'}); |
my $slot_name=&check_for_conflict($symb,$env{'form.slotname'},\%slot); |
my $slot_name=&check_for_conflict($symb,$env{'form.slotname'},\%slot); |
Line 556 sub get_slot {
|
Line 556 sub get_slot {
|
if ($slot_name =~ /^error: (.*)/) { |
if ($slot_name =~ /^error: (.*)/) { |
$r->print("<p>An error occured while attempting to make a reservation. ($1)</p>"); |
$r->print("<p>An error occured while attempting to make a reservation. ($1)</p>"); |
&return_link($r); |
&return_link($r); |
return; |
return 0; |
} |
} |
if ($slot_name) { |
if ($slot_name && $slot_name ne $conflictable_slot) { |
my %slot=&Apache::lonnet::get_slot($slot_name); |
my %slot=&Apache::lonnet::get_slot($slot_name); |
my $description1=&get_description($slot_name,\%slot); |
my $description1=&get_description($slot_name,\%slot); |
%slot=&Apache::lonnet::get_slot($env{'form.slotname'}); |
%slot=&Apache::lonnet::get_slot($env{'form.slotname'}); |
Line 586 STUFF
|
Line 586 STUFF
|
} else { |
} else { |
&return_link($r); |
&return_link($r); |
} |
} |
return; |
return 0; |
} |
} |
|
|
my $reserved=&make_reservation($env{'form.slotname'}, |
my $reserved=&make_reservation($env{'form.slotname'}, |
\%slot,$symb); |
\%slot,$symb); |
my $description=&get_description($env{'form.slotname'},\%slot); |
my $description=&get_description($env{'form.slotname'},\%slot); |
if (defined($reserved)) { |
if (defined($reserved)) { |
|
my $retvalue = 0; |
if ($slot_name =~ /^error: (.*)/) { |
if ($slot_name =~ /^error: (.*)/) { |
$r->print("<p>An error occured while attempting to make a reservation. ($1)</p>"); |
$r->print("<p>An error occured while attempting to make a reservation. ($1)</p>"); |
} elsif ($reserved > -1) { |
} elsif ($reserved > -1) { |
$r->print("<p>Success: $description</p>"); |
$r->print("<p>Success: $description</p>"); |
|
$retvalue = 1; |
} elsif ($reserved < 0) { |
} elsif ($reserved < 0) { |
$r->print("<p>Already reserved: $description</p>"); |
$r->print("<p>Already reserved: $description</p>"); |
} |
} |
&return_link($r); |
if (!$inhibit_return_link) { &return_link($r); } |
return; |
return 1; |
} |
} |
|
|
my %lt=('request'=>"Availibility list", |
my %lt=('request'=>"Availibility list", |
'try' =>'Try again'); |
'try' =>'Try again'); |
%lt=&Apache::lonlocal::texthash(%lt); |
%lt=&Apache::lonlocal::texthash(%lt); |
|
|
|
my $extra_input; |
|
if ($conflictable_slot) { |
|
$extra_input='<input type="hidden" name="releaseslot" value="'.$env{'form.slotname'}.'" />'; |
|
} |
|
|
$r->print(<<STUFF); |
$r->print(<<STUFF); |
<p> <font color="red">Failed</font> to reserve a spot for $description. </p> |
<p> <font color="red">Failed</font> to reserve a spot for $description. </p> |
<p> |
<p> |
Line 615 STUFF
|
Line 622 STUFF
|
<input type="submit" name="Try Again" value="$lt{'try'}" /> |
<input type="submit" name="Try Again" value="$lt{'try'}" /> |
<input type="hidden" name="symb" value="$env{'form.symb'}" /> |
<input type="hidden" name="symb" value="$env{'form.symb'}" /> |
<input type="hidden" name="slotname" value="$env{'form.slotname'}" /> |
<input type="hidden" name="slotname" value="$env{'form.slotname'}" /> |
<input type="hidden" name="command" value="get" /> |
<input type="hidden" name="command" value="$env{'form.command'}" /> |
|
$extra_input |
</form> |
</form> |
? |
? |
</p> |
</p> |
Line 629 or
|
Line 637 or
|
or |
or |
STUFF |
STUFF |
|
|
&return_link($r); |
if (!$inhibit_return_link) { &return_link($r); } |
return; |
return 0; |
} |
} |
|
|
sub allowed_slot { |
sub allowed_slot { |
Line 639 sub allowed_slot {
|
Line 647 sub allowed_slot {
|
#already started |
#already started |
if ($slot->{'starttime'} < time) { |
if ($slot->{'starttime'} < time) { |
# all open slot to be schedulable |
# all open slot to be schedulable |
#return 0; |
return 0; |
} |
} |
&Apache::lonxml::debug("$slot_name starttime good"); |
&Apache::lonxml::debug("$slot_name starttime good"); |
|
|
Line 1624 sub handler {
|
Line 1632 sub handler {
|
} elsif ($env{'form.command'} eq 'get') { |
} elsif ($env{'form.command'} eq 'get') { |
&get_slot($r,$symb); |
&get_slot($r,$symb); |
} elsif ($env{'form.command'} eq 'change') { |
} elsif ($env{'form.command'} eq 'change') { |
if (&release_slot($r,$symb,$env{'form.releaseslot'},1)) { |
if (&get_slot($r,$symb,$env{'form.releaseslot'},1)) { |
&get_slot($r,$symb); |
&release_slot($r,$symb,$env{'form.releaseslot'}); |
} |
} |
} else { |
} else { |
$r->print("<p>Unknown command: ".$env{'form.command'}."</p>"); |
$r->print("<p>Unknown command: ".$env{'form.command'}."</p>"); |