blob: 0652fb560310ddeb0334711f82bc533677901942 [file] [log] [blame]
# Copyright 2000-2004 The Apache Software Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
use strict;
use Apache::Cookie ();
use Apache::Request ();
use vars qw(@ANIMALS);
unless (@ANIMALS) {
@ANIMALS = sort qw{
lion tiger bear pig porcupine ferret zebra gnu ostrich
emu moa goat weasel yak chicken sheep hyena dodo lounge-lizard
squirrel rat mouse hedgehog racoon baboon kangaroo hippopotamus
};
}
my $r = shift;
my $apr = Apache::Request->new($r);
my $cookies = Apache::Cookie->new($r)->parse;
my $c = $cookies->{'animals'};
my %zoo = ();
%zoo = $c->value if $c;
# Recover the new animal(s) from the parameter 'new_animal'
my @new = $apr->param('new_animals');
# If the action is 'add', then add new animals to the zoo. Otherwise
# delete them.
foreach (@new) {
if ($apr->param('action') eq 'Add') {
$zoo{$_}++;
}
elsif ($apr->param('action') eq 'Delete') {
$zoo{$_}-- if $zoo{$_};
delete $zoo{$_} unless $zoo{$_};
}
}
# Add new animals to old, and put them in a cookie
my $cookie = Apache::Cookie->new($r,
-name => 'animals',
-value => \%zoo,
-expires => '+1h');
$cookie->bake;
$apr->send_http_header('text/html');
my $title = 'Animal crackers';
print <<EOF;
<HTML>
<HEAD><TITLE>$title</TITLE></HEAD>
<BODY>
<h1>$title</h1>
Choose the animals you want to add to the zoo, and click "add".
<p>
<center>
<table border>
<tr><th>Add/Delete<th>Current Contents
<tr><td>
<FORM METHOD="POST">
<SELECT NAME="new_animals" SIZE=10 MULTIPLE>
EOF
for (@ANIMALS) {
print qq{<OPTION VALUE="$_">$_\n}
}
print <<EOF;
</SELECT>
<br>
<INPUT TYPE="submit" NAME="action" VALUE="Delete">
<INPUT TYPE="submit" NAME="action" VALUE="Add">
</FORM>
<td>
EOF
if (%zoo) {
print "<ul>\n";
foreach (sort keys %zoo) {
print "<li>$zoo{$_} $_\n";
}
print "</ul>\n";
}
else {
print "<strong>The zoo is empty.</strong>\n";
}
print <<EOF;
</table></center>
</BODY></HTML>
EOF