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