Some udpates that I made here locally a while ago. Still won't be useful, but
[koha.git] / shelves.pl
1 #!/usr/bin/perl
2 #script to provide bookshelf management
3 #
4 # $Header$
5 #
6
7 use strict;
8 use C4::Search;
9 use CGI;
10 use C4::Output;
11 use C4::BookShelves;
12 use C4::Circulation::Circ2;
13
14 my $env;
15 my $query = new CGI;
16 print $query->header;
17 my $headerbackgroundcolor='#663266';
18 my $circbackgroundcolor='#555555';
19 my $circbackgroundcolor='#550000';
20 my $linecolor1='#bbbbbb';
21 my $linecolor2='#dddddd';
22
23 print startpage();
24 print startmenu('catalogue');
25
26
27
28
29 my ($shelflist) = GetShelfList();
30
31 if ($query->param('modifyshelfcontents')) {
32     my $shelfnumber=$query->param('shelfnumber');
33     my $barcode=$query->param('addbarcode');
34     my ($item) = getiteminformation($env, 0, $barcode);
35     AddToShelf($env, $item->{'itemnumber'}, $shelfnumber);
36     foreach ($query->param) {
37         if (/REM-(\d*)/) {
38             my $itemnumber=$1;
39             RemoveFromShelf($env, $itemnumber, $shelfnumber);
40         }
41     }
42 }
43
44 SWITCH: {
45     if ($query->param('viewshelf')) {  viewshelf($query->param('viewshelf')); last SWITCH;}
46     if ($query->param('shelves')) {  shelves(); last SWITCH;}
47     print << "EOF";
48     <center>
49     <table border=0 cellpadding=4 cellspacing=0>
50     <tr><td bgcolor=$headerbackgroundcolor>
51     <table border=0 cellpadding=5 cellspacing=0 width=100%>
52     <tr><th bgcolor=$headerbackgroundcolor>
53     <font color=white>Shelf List</font>
54     </th></tr>
55     </table>
56     </td></tr>
57 EOF
58     my $color='';
59     foreach (sort keys %$shelflist) {
60         ($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
61         print "<tr><td bgcolor=$color><a href=shelves.pl?viewshelf=$_>$shelflist->{$_}->{'shelfname'} ($shelflist->{$_}->{'count'} books)</a></td></tr>\n";
62     }
63     print "</table>\n";
64     print "<P><a href=shelves.pl?shelves=1>Add or Remove Book Shelves</a>\n";
65 }
66
67
68
69 sub shelves {
70     if (my $newshelf=$query->param('addshelf')) {
71         my ($status, $string) = AddShelf($env,$newshelf);
72         if ($status) {
73             print "<font color=red>$string</font><p>\n";
74         }
75     }
76     foreach ($query->param()) {
77         if (/DEL-(\d+)/) {
78             my $delshelf=$1;
79             my ($status, $string) = RemoveShelf($env,$delshelf);
80             if ($status) {
81                 print "<font color=red>$string</font><p>\n";
82             }
83         }
84     }
85     my ($shelflist) = GetShelfList();
86     print << "EOF";
87 <center>
88 <a href=shelves.pl>Modify Shelf Contents</a><p>
89 <h1>Bookshelves</h1>
90 <table border=0 cellpadding=7>
91 <tr><td align=center>
92 <form method=post>
93 <input type=hidden name=shelves value=1>
94 <table border=0 cellpadding=0 cellspacing=0>
95 <tr><th bgcolor=$headerbackgroundcolor>
96 <font color=white>Select Shelves to Delete</font>
97 </th></tr>
98 EOF
99     my $color='';
100     my $color='';
101     foreach (sort keys %$shelflist) {
102         ($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
103         print "<tr><td bgcolor=$color><input type=checkbox name=DEL-$_> $shelflist->{$_}->{'shelfname'} ($shelflist->{$_}->{'count'} books)</td></tr>\n";
104     }
105     print "</table>\n";
106     print '<p><input type=submit value="Delete Shelves"><p>';
107     print "</td><td align=center valign=top>\n";
108     print "<form method=post>\n";
109     print "<input type=hidden name=shelves value=1>\n";
110     print "<p>Add Shelf: <input name=addshelf size=25><p>\n";
111     print '<p><input type=submit value="Add New Shelf"><p>';
112     print "</form>\n";
113     print "</td></tr></table>\n";
114 }
115
116
117
118 sub viewshelf {
119     my $shelfnumber=shift;
120     my ($itemlist) = GetShelfContents($env, $shelfnumber);
121     my $item='';
122     print << "EOF";
123     <center>
124     <form>
125     <a href=shelves.pl>Shelf List</a><p>
126     <table border=0 cellpadding=0 cellspacing=0>
127     <tr><td colspan=7>
128     <table>
129     <tr><td>Add a book by barcode:</td><td><input name=addbarcode></td></tr>
130     </table>
131     <br>
132     <table border=0 cellpadding=5 cellspacing=0 width=100%>
133     <tr><th bgcolor=$headerbackgroundcolor>
134     <font color=white>Contents of $shelflist->{$shelfnumber}->{'shelfname'} shelf</font>
135     </th></tr>
136     </table>
137     </td></tr>
138 EOF
139     my $color='';
140     foreach $item (sort {$a->{'barcode'} cmp $b->{'barcode'}} @$itemlist) {
141         ($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
142         print << "EOF";
143         <tr>
144         <td bgcolor=$color><input type=checkbox name=REM-$item->{'itemnumber'}></td>
145         <td bgcolor=$color width=10 align=center><img src=/images/blankdot.gif></td>
146         <td bgcolor=$color>$item->{'barcode'}</td>
147         <td bgcolor=$color width=10 align=center><img src=/images/blankdot.gif></td>
148         <td bgcolor=$color>$item->{'title'}</td>
149         <td bgcolor=$color width=10 align=center><img src=/images/blankdot.gif></td>
150         <td bgcolor=$color>$item->{'author'}</td>
151         </tr>
152 EOF
153     }
154     print << "EOF";
155     </table>
156     <br>
157     <input type=hidden name=shelfnumber value=$shelfnumber>
158     <input type=hidden name=modifyshelfcontents value=1>
159     <input type=hidden name=viewshelf value=$shelfnumber>
160     <input type=submit value="Modify Shelf List">
161     </form>
162 EOF
163 }
164
165
166
167 #
168 # $Log$
169 # Revision 1.2.2.1  2002/06/26 20:28:15  tonnesen
170 # Some udpates that I made here locally a while ago.  Still won't be useful, but
171 # should be functional
172 #
173 #
174 #
175
176
177
178 print endpage();
179 print endmenu('catalogue');