version 1.74, 2007/04/10 23:26:49
|
version 1.79, 2007/04/11 21:49:02
|
Line 334 sub remove_registration {
|
Line 334 sub remove_registration {
|
my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum, |
my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum, |
"^$slot_name\0"); |
"^$slot_name\0"); |
if (&Apache::lonnet::error(%consumed)) { |
if (&Apache::lonnet::error(%consumed)) { |
$r->print("<p>".&mt('A network error has occured.').'</p>'); |
$r->print("<p><span class=\"LC_error\">".&mt('A network error has occured.').'</span></p>'); |
return; |
return; |
} |
} |
if (!%consumed) { |
if (!%consumed) { |
Line 527 sub delete_slot {
|
Line 527 sub delete_slot {
|
if ($ret eq 'ok') { |
if ($ret eq 'ok') { |
$r->print("<p>Slot <tt>$slot_name</tt> marked as deleted.</p>"); |
$r->print("<p>Slot <tt>$slot_name</tt> marked as deleted.</p>"); |
} else { |
} else { |
$r->print("<p> An error ($ret) occurse when attempting to delete Slot <tt>$slot_name</tt>.</p>"); |
$r->print("<p><span class=\"LC_error\"> An error ($ret) occurse when attempting to delete Slot <tt>$slot_name</tt>.</span></p>"); |
} |
} |
} else { |
} else { |
if (%consumed) { |
if (%consumed) { |
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); |
|
|
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><span class=\"LC_error\">An error occured while attempting to make a reservation. ($1)</span></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><span class=\"LC_error\">An error occured while attempting to make a reservation. ($1)</span></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> <span class="LC_warning">Failed</span> to reserve a spot for $description. </p> |
<p> |
<p> |
<form method="post" action="/adm/slotrequest"> |
<form method="post" action="/adm/slotrequest"> |
<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 638 sub allowed_slot {
|
Line 646 sub allowed_slot {
|
|
|
#already started |
#already started |
if ($slot->{'starttime'} < time) { |
if ($slot->{'starttime'} < time) { |
# 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 1101 sub show_table {
|
Line 1108 sub show_table {
|
my ($id_count,$ids); |
my ($id_count,$ids); |
|
|
if (exists($show{'scheduled'}) || exists($show{'space'}) ) { |
if (exists($show{'scheduled'}) || exists($show{'space'}) ) { |
my @this_slot = grep(/^$slot\0/,keys(%consumed)); |
my $re_str = "$slot\0"; |
|
my @this_slot = grep(/^\Q$re_str\E/,keys(%consumed)); |
$id_count = scalar(@this_slot); |
$id_count = scalar(@this_slot); |
if (exists($show{'scheduled'})) { |
if (exists($show{'scheduled'})) { |
foreach my $entry (sort { $consumed{$a}{name} cmp |
foreach my $entry (sort { $consumed{$a}{name} cmp |
$consumed{$b}{name} } |
$consumed{$b}{name} } |
(keys(%consumed))) { |
(@this_slot)) { |
my (undef,$id)=split("\0",$entry); |
my (undef,$id)=split("\0",$entry); |
my ($uname,$udom) = split(':',$consumed{$entry}{'name'}); |
my ($uname,$udom) = split(':',$consumed{$entry}{'name'}); |
$ids.= '<nobr>'; |
$ids.= '<nobr>'; |
Line 1540 sub csv_upload_assign {
|
Line 1548 sub csv_upload_assign {
|
} |
} |
$r->print("<p>Created $countdone slots\n</p>"); |
$r->print("<p>Created $countdone slots\n</p>"); |
foreach my $error (@errors) { |
foreach my $error (@errors) { |
$r->print("<p>$error\n</p>"); |
$r->print("<p><span class=\"LC_warning\">$error</span></p>\n"); |
} |
} |
&show_table($r,$mgr); |
&show_table($r,$mgr); |
return ''; |
return ''; |
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>"); |