--- loncom/interface/slotrequest.pm 2005/08/09 07:34:51 1.5 +++ loncom/interface/slotrequest.pm 2005/08/09 15:04:50 1.6 @@ -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.5 2005/08/09 07:34:51 albertel Exp $ +# $Id: slotrequest.pm,v 1.6 2005/08/09 15:04:50 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -232,12 +232,47 @@ sub make_reservation { } sub release_slot { - my ($r,$symb)=@_; + my ($r,$symb,$slot_name,$inhibit_return_link)=@_; + + if ($slot_name eq '') { $slot_name=$env{'form.slotname'}; } + my ($cnum,$cdom)=&get_course(); + # get parameter string, check for existance, rebuild string with the slot + + my @slots = split(/:/,&Apache::lonnet::EXT("resource.0.availablestudent", + $symb,$env{'user.domain'}, + $env{'user.name'})); + my @new_slots; + foreach my $exist_slot (@slots) { + if ($exist_slot eq $slot_name) { next; } + push(@new_slots,$exist_slot); + } + my $new_param = join(':',@new_slots); # get slot reservations, check if user has one, if so remove reservation - + my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum, + "^$slot_name\0"); + foreach my $entry (keys(%consumed)) { + if ( $consumed{$entry}->{'name'} eq + ($env{'user.name'}.'@'.$env{'user.domain'}) ) { + &Apache::lonnet::del('slot_reservations',[$entry], + $cdom,$cnum); + } + } # store new parameter string + my $result=&Apache::lonparmset::storeparm_by_symb($symb, + '0_availablestudent', + 1, $new_param, 'string', + $env{'user.name'}, + $env{'user.domain'}); + my %slot=&Apache::lonnet::get_slot($slot_name); + my $description=&get_description($env{'form.slotname'},\%slot); + $r->print("
Released Reservation: $description
"); + if ($inhibit_return_link) { + $r->print(''. + &mt('Return to last resource').'
'); + } + return 1; } sub get_slot { @@ -246,11 +281,29 @@ sub get_slot { my $slot_name=&check_for_conflict($symb,$env{'form.slotname'}); if ($slot_name) { my %slot=&Apache::lonnet::get_slot($slot_name); - my $description=&get_description($env{'form.slotname'},\%slot); - $r->print("Already have a reservation: $description
"); - $r->print(''.
+ my $description1=&get_description($slot_name,\%slot);
+ %slot=&Apache::lonnet::get_slot($env{'form.slotname'});
+ my $description2=&get_description($env{'form.slotname'},\%slot);
+ $r->print(" Already have a reservation: $description1 You can either ");
+ $r->print(<
or '.
&mt('Return to last resource').'