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