4 use OpenILS::Application::Storage;
5 use OpenILS::Application::Storage::CDBI;
7 # I need to abstract the driver loading away...
8 use OpenILS::Application::Storage::Driver::Pg;
10 use CGI qw/:standard start_*/;
13 do '##CONFIG##/live-db-setup.pl';
15 OpenILS::Application::Storage::CDBI->connection($config{dsn},$config{usr},$config{pw});
16 OpenILS::Application::Storage::CDBI->db_Main->{ AutoCommit } = 1;
20 #-------------------------------------------------------------------------------
22 #-------------------------------------------------------------------------------
25 Content-type: text/html
32 border: dashed lightgrey 1px;
33 background-color: #EEE;
34 border-collapse: collapse;
42 border: solid lightgrey 1px;
50 background-color: lightblue;
51 border: solid blue 1px;
56 <body style='padding: 25px;'>
58 <a href="$config{index}">Home</a>
60 <h1>Organizational Unit Type Setup</h1>
65 #-------------------------------------------------------------------------------
67 #-------------------------------------------------------------------------------
69 my %ou_cols = ( qw/id SysID name Name opac_label OpacLabel depth Depth parent ParentType can_have_vols CanHaveVolumes can_have_users CanHaveUsers/ );
71 my @col_display_order = ( qw/id name opac_label depth parent can_have_vols can_have_users/ );
73 #-------------------------------------------------------------------------------
75 #-------------------------------------------------------------------------------
77 if (my $action = $cgi->param('action')) {
78 if ( $action eq 'Remove Selected' ) {
79 for my $id ( ($cgi->param('id')) ) {
80 actor::org_unit_type->retrieve($id)->delete;
82 } elsif ( $action eq 'Update Selected' ) {
83 for my $id ( ($cgi->param('id')) ) {
84 my $u = actor::org_unit_type->retrieve($id);
85 for my $col (@col_display_order) {
86 next if ($cgi->param($col."_$id") =~ /Select One/o);
87 $u->$col( $cgi->param($col."_$id") );
91 } elsif ( $action eq 'Add New' ) {
92 actor::org_unit_type->create( { map {defined($cgi->param($_)) ? ($_ => $cgi->param($_)) : () } @col_display_order } );
97 #-------------------------------------------------------------------------------
99 #-------------------------------------------------------------------------------
101 #-----------------------------------------------------------------------
103 #-----------------------------------------------------------------------
104 print "<form method='POST'>".
105 "<table class='table_class'><tr class='header_class'>\n";
107 for my $col ( @col_display_order ) {
108 print th($ou_cols{$col});
111 print '<th>Action</th></tr>';
113 for my $row ( sort { $a->depth <=> $b->depth } (actor::org_unit_type->retrieve_all) ) {
116 td("<input type='text' name='name_$row' value='". $row->name() ."'>"),
117 td("<input type='text' name='opac_label_$row' value='". $row->opac_label() ."'>"),
118 td("<input type='text' size=3 name='depth_$row' value='". $row->depth() ."'>"),
119 td("<select name='parent_$row'><option>-- Select One --</option>".do{
121 for my $type ( sort {$a->depth <=> $b->depth} actor::org_unit_type->retrieve_all) {
122 $out .= "<option value='$type' ".do{
123 if ($row->parent == $type->id) {
126 }.">".$type->name.'</option>'
130 td("<input type='checkbox' name='can_have_vols_$row' value='t' ". do{if($row->can_have_vols){"checked"}} .">"),
131 td("<input type='checkbox' name='can_have_users_$row' value='t' ". do{if($row->can_have_users){"checked"}} .">"),
132 td("<input type='checkbox' value='$row' name='id'>"),
136 print "<tr class='new_row_class'>",
138 td("<input type='text' name='name'>"),
139 td("<input type='text' name='opac_label'>"),
140 td("<input type='text' size=3 name='depth'>"),
141 td("<select name='parent'><option>-- Select One --</option>".do{
143 for my $type ( sort {$a->depth <=> $b->depth} actor::org_unit_type->retrieve_all) {
144 $out .= "<option value='$type'>".$type->name.'</option>'
148 td("<input type='checkbox' name='can_have_vols' value='t'>"),
149 td("<input type='checkbox' name='can_have_users' value='t'>"),
153 print "<input type='submit' name='action' value='Remove Selected'/> | ";
154 print "<input type='submit' name='action' value='Update Selected'/> | ";
155 print "<input type='submit' name='action' value='Add New'/></form><hr/>";
158 print "</body></html>";