start of package class web UI (add/edit package classes, package class selection...
[freeside.git] / httemplate / browse / inventory_class.html
diff --git a/httemplate/browse/inventory_class.html b/httemplate/browse/inventory_class.html
new file mode 100644 (file)
index 0000000..6da3c9e
--- /dev/null
@@ -0,0 +1,89 @@
+<%
+
+tie my %labels, 'Tie::IxHash',
+  'num_avail' => 'Available', #  <FONT SIZE="-1"><A HREF="eventually">(upload batch)</A></FONT>',
+  'num_used'  => 'In use', #'Used', #'Allocated',
+  'num_total' => 'Total',
+;
+
+my %link = (
+  'num_avail' => ';avail=1',
+  'num_used'  => ';avail=1',
+  'num_total' => '',
+);
+
+my %inv_action_link = (
+  'num_avail' => [ 'upload batch',
+                   $p.'misc/inventory_item-import.html?classnum=',
+                   'classnum'
+                 ],
+);
+
+my $link = [ "${p}edit/inventory_class.html?", 'classnum' ];
+
+%><%= include( 'elements/browse.html',
+                 'title'       => 'Inventory Classes',
+                 'name'        => 'inventory classes',
+                 'menubar'     => [ 'Add a new inventory class' =>
+                                      $p.'edit/inventory_class.html',
+                                  ],
+                 'query'       => { 'table' => 'inventory_class', },
+                 'count_query' => 'SELECT COUNT(*) FROM inventory_class',
+                 'header'      => [ '#', 'Inventory class', 'Inventory' ],
+                 'fields'      => [ 'classnum',
+                                    'classname',
+                                    sub {
+                                          #my $inventory_class = shift;
+                                          my $i_c = shift;
+
+                                          my $link =
+                                            $p. 'search/inventory_item.html?'.
+                                            'classnum='. $i_c->classnum;
+
+                                          my %actioncol = ();
+                                          foreach ( keys %inv_action_link ) {
+                                            my($label, $baseurl, $method) =
+                                              @{ $inv_action_link{$_} };
+                                            my $url = $baseurl. $i_c->$method();
+                                            $actioncol{$_} =
+                                              '<FONT SIZE="-1">'.
+                                              '('.
+                                              '<A HREF="'.$url.'">'.
+                                              $label.
+                                              '</A>'.
+                                              ')'.
+                                              '</FONT>';
+                                          }
+
+                                          my %num = map { 
+                                            $_ => $i_c->$_();
+                                          } keys %labels;
+
+                                          [ map {
+                                                  [
+                                                    {
+                                                      'data'  => '<B>'. $num{$_}. '</B>',
+                                                      'align' => 'right',
+                                                    },
+                                                    {
+                                                      'data'  => $labels{$_},
+                                                      'align' => 'left',
+                                                      'link'  => ( $num{$_}
+                                                                     ? $link.$link{$_}
+                                                                     : ''
+                                                                 ),
+                                                    },
+                                                    { 'data'  => $actioncol{$_},
+                                                      'align'  => 'left',
+                                                    },
+                                                  ]
+                                                } keys %labels
+                                          ];
+                                        },
+                                  ],
+                 'links'       => [ $link,
+                                    $link,
+                                    '',
+                                  ],
+             )
+%>