'."\n");
+
+ if ($env{'form.command'} eq 'manageresv') {
+ $allavailable = $available;
+ undef($available);
+ undef($got_slots);
+ my $crstype = &Apache::loncommon::course_type();
+ &manage_reservations($r,$crstype,\%slots,$consumed_uniqueperiods,$allavailable);
+ } elsif ($env{'form.command'} eq 'showresv') {
+ &show_reservations($r,$env{'form.uname'},$env{'form.udom'});
+ } elsif ($env{'form.command'} eq 'showslots' && $vgr eq 'F') {
&show_table($r,$mgr);
} elsif ($env{'form.command'} eq 'remove_registration' && $mgr eq 'F') {
&remove_registration($r);
@@ -1558,15 +3694,22 @@ sub handler {
}
&csv_upload_map($r);
}
+ } elsif (($env{'form.command'} eq 'slotlog') && ($vgr eq 'F')) {
+ &show_reservations_log($r);
} else {
- my $symb=&unescape($env{'form.symb'});
+ $symb = &unescape($env{'form.symb'});
+ if ($symb =~ m{^/enc/}) {
+ $symb = &Apache::lonenc::unencrypted($symb);
+ }
if (!defined($symb)) {
&fail($r,'not_valid');
return OK;
}
my (undef,undef,$res)=&Apache::lonnet::decode_symb($symb);
my $useslots = &Apache::lonnet::EXT("resource.0.useslots",$symb);
- if ($useslots ne 'resource' && $useslots ne 'map') {
+ if ($useslots ne 'resource'
+ && $useslots ne 'map'
+ && $useslots ne 'map_map') {
&fail($r,'not_available');
return OK;
}
@@ -1576,22 +3719,44 @@ sub handler {
my ($status) = &Apache::lonhomework::check_slot_access('0',$type);
if ($status eq 'CAN_ANSWER' ||
$status eq 'NEEDS_CHECKIN' ||
- $status eq 'WAITING_FOR_GRADE') {
+ $status eq 'WAITING_FOR_GRADE' ||
+ $status eq 'NEED_DIFFERENT_IP') {
&fail($r,'not_allowed');
return OK;
}
if ($env{'form.requestattempt'}) {
- &show_choices($r,$symb);
+ $r->print('
'.
+ &show_choices($symb,undef,0,undef,\%slots,$consumed_uniqueperiods,$available,$got_slots).
+ '
');
} elsif ($env{'form.command'} eq 'release') {
&release_slot($r,$symb);
} 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 ($env{'form.nochange'}) {
+ my $slot_name = $env{'form.releaseslot'};
+ my @slots = &check_for_reservation($symb,'allslots');
+ my $msg;
+ if (($slot_name ne '') && (grep(/^\Q$slot_name\E/,@slots))) {
+ my %slot=&Apache::lonnet::get_slot($env{'form.releaseslot'});
+ my $description=&get_description($slot_name,\%slot);
+ $msg = '
'.
+ &mt('Unchanged reservation: [_1]',$description).'';
+ my $person =
+ &Apache::loncommon::plainname($env{'user.name'},$env{'user.domain'});
+ my $subject = &mt('Reservation unchanged: [_1]',$description);
+ my $msgbody = &mt('No change to existing registration by [_1] for [_2].',$person,$description);
+ $msg .= &slot_change_messaging($slot{'reservationmsg'},$subject,$msgbody,'nochange');
+ } else {
+ $msg = '
'.&mt('Reservation no longer reported as available.').'';
+ }
+ $r->print($msg);
+ &return_link($r);
+ } elsif (&get_slot($r,$symb,$env{'form.releaseslot'},1)) {
+ &release_slot($r,$symb,$env{'form.releaseslot'});
}
} else {
- $r->print("
Unknown command: ".$env{'form.command'}."
");
+ $r->print('
'.&mt('Unknown command: [_1]',$env{'form.command'}).'
');
}
}
&end_page($r);