--- /dev/null
+%
+%$cgi->param('class') =~ /^(\w)$/ or die "illegal class";
+%my $class = $1;
+%
+%my %classmap = ( 'C' => 'cancel',
+% 'S' => 'suspend',
+% );
+%
+%my $classname = $classmap{$class};
+%
+%my $html_init = ucfirst($classname) .
+% " reasons explain why we $classname a package.<BR><BR>".
+% qq!<A HREF="${p}edit/reason.html?class=$class">!.
+% "<I>Add a $classname reason</I></A><BR><BR>";
+%
+%my $where_clause = "WHERE class='$class'";
+%$where_clause .= " AND (disabled = '' OR disabled IS NULL)"
+% unless $cgi->param('showdisabled');
+
+%my $disabledurl = $cgi->param('showdisabled')
+% ? do { $cgi->param('showdisabled', 0);
+% '( <a href="'. $cgi->self_url. '">hide disabled reasons</a> )'; }
+% : do { $cgi->param('showdisabled', 1);
+% '( <a href="'. $cgi->self_url. '">show disabled reasons</a> )'; }
+% ;
+%
+%$html_init .= $disabledurl;
+%
+%my $count_query = 'SELECT COUNT(*) FROM reason LEFT JOIN reason_type on ' .
+% 'reason_type.typenum = reason.reason_type ' . $where_clause;
+%
+%my $link = [ $p."edit/reason.html?class=$class&reasonnum=", 'reasonnum' ];
+%
+%
+<% include( 'elements/browse.html',
+ 'title' => ucfirst($classname) . ' Reasons',
+ 'menubar' => [ # 'Main menu' => $p,
+ ucfirst($classname) . ' Reason Types' =>
+ $p.'browse/reason_type.html?class='.
+ $class,
+ ],
+ 'html_init' => $html_init,
+ 'name' => $classname . ' reasons',
+ 'query' => { 'table' => 'reason',
+ 'hashref' => {},
+ 'extra_sql' => $where_clause .
+ 'ORDER BY reason_type',
+ 'addl_from' => 'LEFT JOIN reason_type ON reason_type.typenum = reason.reason_type',
+ },
+ 'count_query' => $count_query,
+ 'header' => [ '#',
+ ucfirst($classname) . ' Reason Type',
+ ucfirst($classname) . ' Reason',
+ ],
+ 'fields' => [ 'reasonnum',
+ sub { shift->reasontype->type },
+ 'reason',
+ ],
+ 'links' => [ $link,
+ $link,
+ '',
+ ],
+ )
+%>