--- loncom/interface/slotrequest.pm 2006/10/29 16:23:58 1.68.2.1 +++ loncom/interface/slotrequest.pm 2007/04/11 16:07:51 1.78 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler for requesting to have slots added to a students record # -# $Id: slotrequest.pm,v 1.68.2.1 2006/10/29 16:23:58 albertel Exp $ +# $Id: slotrequest.pm,v 1.78 2007/04/11 16:07:51 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -77,7 +77,7 @@ sub end_page { =cut sub get_course { - (undef,my $courseid)=&Apache::lonxml::whichuser(); + (undef,my $courseid)=&Apache::lonnet::whichuser(); my $cdom=$env{'course.'.$courseid.'.domain'}; my $cnum=$env{'course.'.$courseid.'.num'}; return ($cnum,$cdom); @@ -334,7 +334,7 @@ sub remove_registration { my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum, "^$slot_name\0"); if (&Apache::lonnet::error(%consumed)) { - $r->print("
".&mt('A network error has occured.').'
'); + $r->print("".&mt('A network error has occured.').'
'); return; } if (!%consumed) { @@ -433,7 +433,7 @@ sub release_slot { if ($mgr eq 'F' && defined($env{'form.symb'})) { - $symb = $env{'form.symb'}; + $symb = &unescape($env{'form.symb'}); } my ($result,$msg) = @@ -527,7 +527,7 @@ sub delete_slot { if ($ret eq 'ok') { $r->print("Slot $slot_name marked as deleted.
"); } else { - $r->print("An error ($ret) occurse when attempting to delete Slot $slot_name.
"); + $r->print("An error ($ret) occurse when attempting to delete Slot $slot_name.
"); } } else { if (%consumed) { @@ -548,17 +548,17 @@ sub return_link { } 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_name=&check_for_conflict($symb,$env{'form.slotname'},\%slot); if ($slot_name =~ /^error: (.*)/) { - $r->print("An error occured while attempting to make a reservation. ($1)
"); + $r->print("An error occured while attempting to make a reservation. ($1)
"); &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 $description1=&get_description($slot_name,\%slot); %slot=&Apache::lonnet::get_slot($env{'form.slotname'}); @@ -586,36 +586,44 @@ STUFF } else { &return_link($r); } - return; + return 0; } my $reserved=&make_reservation($env{'form.slotname'}, \%slot,$symb); my $description=&get_description($env{'form.slotname'},\%slot); if (defined($reserved)) { + my $retvalue = 0; if ($slot_name =~ /^error: (.*)/) { - $r->print("An error occured while attempting to make a reservation. ($1)
"); + $r->print("An error occured while attempting to make a reservation. ($1)
"); } elsif ($reserved > -1) { $r->print("Success: $description
"); + $retvalue = 1; } elsif ($reserved < 0) { $r->print("Already reserved: $description
"); } - &return_link($r); - return; + if (!$inhibit_return_link) { &return_link($r); } + return 1; } my %lt=('request'=>"Availibility list", 'try' =>'Try again'); %lt=&Apache::lonlocal::texthash(%lt); + my $extra_input; + if ($conflictable_slot) { + $extra_input=''; + } + $r->print(<Failed to reserve a spot for $description.
? @@ -629,8 +637,8 @@ or or STUFF - &return_link($r); - return; + if (!$inhibit_return_link) { &return_link($r); } + return 0; } sub allowed_slot { @@ -638,8 +646,7 @@ sub allowed_slot { #already started if ($slot->{'starttime'} < time) { - # all open slot to be schedulable - #return 0; + return 0; } &Apache::lonxml::debug("$slot_name starttime good"); @@ -892,14 +899,19 @@ sub show_table { } my $available; if ($mgr eq 'F') { + # FIXME: This line should be deleted once Slots uses breadcrumbs + $r->print(&Apache::loncommon::help_open_topic('Slot About', 'Help on slots')); + $r->print('
Created $countdone slots\n
"); foreach my $error (@errors) { - $r->print("$error\n
"); + $r->print("$error
\n"); } &show_table($r,$mgr); return ''; @@ -1598,8 +1631,8 @@ sub handler { } elsif ($env{'form.command'} eq 'get') { &get_slot($r,$symb); } elsif ($env{'form.command'} eq 'change') { - if (&release_slot($r,$symb,$env{'form.releaseslot'},1)) { - &get_slot($r,$symb); + if (&get_slot($r,$symb,$env{'form.releaseslot'},1)) { + &release_slot($r,$symb,$env{'form.releaseslot'}); } } else { $r->print("Unknown command: ".$env{'form.command'}."
");