e6661423ac6fca7c3745ed0839ca60c61d5cf1a6
[freeside.git] / httemplate / browse / reason.html
1 %
2 %$cgi->param('class') =~ /^(\w)$/ or die "illegal class";
3 %my $class = $1;
4 %
5 %my %classmap = ( 'C' => 'cancel',
6 %                 'S' => 'suspend',
7 %               );
8 %
9 %my $classname = $classmap{$class};
10 %
11 %my $html_init = ucfirst($classname) .
12 %  " reasons explain why we $classname a package.<BR><BR>".
13 %  qq!<A HREF="${p}edit/reason.html?class=$class">!.
14 %  "<I>Add a $classname reason</I></A><BR><BR>";
15 %
16 %my $where_clause = "WHERE class='$class'";
17 %$where_clause .= " AND (disabled = '' OR disabled IS NULL)"
18 %  unless $cgi->param('showdisabled');
19
20 %my $disabledurl = $cgi->param('showdisabled')
21 %     ? do { $cgi->param('showdisabled', 0);
22 %           '( <a href="'. $cgi->self_url. '">hide disabled reasons</a> )'; }
23 %     : do { $cgi->param('showdisabled', 1);
24 %           '( <a href="'. $cgi->self_url. '">show disabled reasons</a> )'; }
25 %     ;
26 %
27 %$html_init .= $disabledurl;
28 %
29 %my $count_query = 'SELECT COUNT(*) FROM reason LEFT JOIN reason_type on ' .
30 %                  'reason_type.typenum = reason.reason_type ' . $where_clause;
31 %
32 %my $link = [ $p."edit/reason.html?class=$class&reasonnum=", 'reasonnum' ];
33 %
34 %
35 <% include( 'elements/browse.html',
36                  'title'       => ucfirst($classname) . ' Reasons',
37                  'menubar'     => [ # 'Main menu' => $p,
38                                     ucfirst($classname) . ' Reason Types' =>
39                                        $p.'browse/reason_type.html?class='.
40                                        $class,
41                                   ],
42                  'html_init'   => $html_init,
43                  'name'        => $classname . ' reasons',
44                  'query'       => { 'table'     => 'reason',
45                                     'hashref'   => {},
46                                     'extra_sql' => $where_clause . 
47                                                    'ORDER BY reason_type', 
48                                     'addl_from' => 'LEFT JOIN reason_type ON reason_type.typenum = reason.reason_type', 
49                                   },
50                  'count_query' => $count_query,
51                  'header'      => [ '#',
52                                     ucfirst($classname) . ' Reason Type',
53                                     ucfirst($classname) . ' Reason',
54                                   ],
55                  'fields'      => [ 'reasonnum',
56                                     sub { shift->reasontype->type },
57                                     'reason',
58                                   ],
59                  'links'       => [ $link,
60                                     $link,
61                                     '',
62                                   ],
63              )
64 %>