Diff for /loncom/interface/slotrequest.pm between versions 1.5 and 1.6

version 1.5, 2005/08/09 07:34:51 version 1.6, 2005/08/09 15:04:50
Line 232  sub make_reservation { Line 232  sub make_reservation {
 }  }
   
 sub release_slot {  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      # 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      # 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      # 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("<p>Released Reservation: $description</p>");
       if ($inhibit_return_link) {
    $r->print('<p><a href="/adm/flip?postdata=return:">'.
     &mt('Return to last resource').'</a></p>');
       }
       return 1;
 }  }
   
 sub get_slot {  sub get_slot {
Line 246  sub get_slot { Line 281  sub get_slot {
     my $slot_name=&check_for_conflict($symb,$env{'form.slotname'});      my $slot_name=&check_for_conflict($symb,$env{'form.slotname'});
     if ($slot_name) {      if ($slot_name) {
  my %slot=&Apache::lonnet::get_slot($slot_name);   my %slot=&Apache::lonnet::get_slot($slot_name);
  my $description=&get_description($env{'form.slotname'},\%slot);   my $description1=&get_description($slot_name,\%slot);
  $r->print("<p>Already have a reservation: $description</p>");   %slot=&Apache::lonnet::get_slot($env{'form.slotname'});
  $r->print('<p><a href="/adm/flip?postdata=return:">'.   my $description2=&get_description($env{'form.slotname'},\%slot);
    $r->print("<p>Already have a reservation: $description1</p>");
    $r->print(<<STUFF);
   <form method="POST" action="/adm/slotrequest">
      <input type="hidden" name="symb" value="$env{'form.symb'}" />
      <input type="hidden" name="slotname" value="$env{'form.slotname'}" />
      <input type="hidden" name="releaseslot" value="$slot_name" />
      <input type="hidden" name="command" value="change" />
   STUFF
    $r->print("<p>You can either ");
    $r->print(<<STUFF);
      <input type="submit" name="change" value="Change" />
   STUFF
    $r->print(' your reservation from <b>'.$description1.'</b> to <b>'.
     $description2.
     '</b> <br />or <a href="/adm/flip?postdata=return:">'.
   &mt('Return to last resource').'</a></p>');    &mt('Return to last resource').'</a></p>');
  # FIXME add button to free current reservation adn get new one   $r->print(<<STUFF);
   </form>
   STUFF
    # FIXME add button to free current reservation and get new one
  return;   return;
     }      }
     my %slot=&Apache::lonnet::get_slot($env{'form.slotname'});      my %slot=&Apache::lonnet::get_slot($env{'form.slotname'});
Line 447  sub handler { Line 500  sub handler {
  &release_slot($r,$symb);   &release_slot($r,$symb);
     } 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') {
           &release_slot($r,$symb,$env{'form.releaseslot'},1);
    &get_slot($r,$symb);
     }      }
     &end_page($r);      &end_page($r);
     return OK;      return OK;

Removed from v.1.5  
changed lines
  Added in v.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>