]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/cgi-bin/copy_statuses.cgi
stringify the copy location list before making it a param
[Evergreen.git] / Open-ILS / src / cgi-bin / copy_statuses.cgi
1 #!/usr/bin/perl
2 use strict;
3 # vim:noet:ts=4
4
5 use OpenILS::Application::Storage;
6 use OpenILS::Application::Storage::CDBI;
7
8 # I need to abstract the driver loading away...
9 use OpenILS::Application::Storage::Driver::Pg;
10
11 use CGI qw/:standard start_*/;
12 our %config;
13 do '##CONFIG##/live-db-setup.pl';
14
15 OpenILS::Application::Storage::CDBI->connection($config{dsn},$config{usr},$config{pw});
16 OpenILS::Application::Storage::CDBI->db_Main->{ AutoCommit } = 1;
17
18 my $cgi = new CGI;
19
20 #-------------------------------------------------------------------------------
21 # HTML part
22 #-------------------------------------------------------------------------------
23
24 print <<HEADER;
25 Content-type: text/html
26
27 <html>
28
29 <head>
30     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
31         <meta http-equiv="Pragma" content="no-cache" />
32         <meta http-equiv="Expires" content="Thu, 01 Dec 2000 16:00:00 GMT" />
33         <style>
34                 table.table_class {
35                         border: dashed lightgrey 1px;
36                         background-color: #EEE;
37                         border-collapse: collapse;
38                 }
39
40                 deactivated {
41                         color: lightgrey;
42                 }
43
44                 tr.row_class td {
45                         border: solid lightgrey 1px;
46                 }
47
48                 tr.new_row_class {
49                         background: grey;
50                 }
51                 
52                 tr.header_class th {
53                         background-color: lightblue;
54                         border: solid blue 1px;
55                         padding: 2px;
56                 }
57
58         </style>
59 <body style='padding: 25px;'>
60
61 <a href="$config{index}">Home</a>
62
63 <h1>Copy Status Setup</h1>
64 <hr/>
65
66 HEADER
67
68 #-------------------------------------------------------------------------------
69 # setup part
70 #-------------------------------------------------------------------------------
71
72 my %cs_cols = ( qw/id SysID name Name holdable Unholdable/ );
73
74 my @col_display_order = ( qw/id name holdable/ );
75
76 #-------------------------------------------------------------------------------
77 # Logic part
78 #-------------------------------------------------------------------------------
79
80 if (my $action = $cgi->param('action')) {
81         if ( $action eq 'Remove Selected' ) {
82                 for my $id ( ($cgi->param('id')) ) {
83                         next unless ($id > 99);
84                         config::copy_status->retrieve($id)->delete;
85                 }
86         } elsif ( $action eq 'Update Selected' ) {
87                 for my $id ( ($cgi->param('id')) ) {
88                         my $u = config::copy_status->retrieve($id);
89                         $u->name( $cgi->param("name_$id") );
90                         $u->holdable( $cgi->param("holdable_$id") );
91                         $u->update;
92                 }
93         } elsif ( $action eq 'Add New' ) {
94                 config::copy_status->create( { name => $cgi->param("name") } );
95         }
96 }
97
98
99 #-------------------------------------------------------------------------------
100 # Form part
101 #-------------------------------------------------------------------------------
102 {
103         #-----------------------------------------------------------------------
104         # User form
105         #-----------------------------------------------------------------------
106         print   "<form method='POST'>".
107                 "<table class='table_class'><tr class='header_class'>\n";
108         
109         for my $col ( @col_display_order ) {
110                 print th($cs_cols{$col});
111         }
112         
113         print '<th>Action</th></tr>';
114         
115         for my $row ( sort { $a->name cmp $b->name } (config::copy_status->retrieve_all) ) {
116                 print Tr(
117                         td( $row->id() ),
118                         td("<input type='text' name='name_$row' value='". $row->name() ."'>"),
119                         td("<input type='checkbox' name='holdable_$row' value='f'". do {'checked' unless $row->holdable()} .">"),
120                         td("<input type='checkbox' value='$row' name='id'>"),
121                 );
122         }
123
124         print "<tr class='new_row_class'>",
125                 td(),
126                 td("<input type='text' name='name'>"),
127                 td("<input type='checkbox' name='holdable' value='f'>"),
128                 td(),
129                 "</tr>";
130
131         print   "</table>";
132         print   "<input type='submit' name='action' value='Remove Selected'/> | ";
133         print   "<input type='submit' name='action' value='Update Selected'/> | ";
134         print   "<input type='submit' name='action' value='Add New'/></form><hr/>";
135 }
136
137 print "</body></html>";
138
139