<& elements/browse.html, 'title' => ucwords($classname) . " Reasons", 'html_init' => $html_init, 'name' => $classname . " reason types", 'query' => { 'table' => 'reason_type', 'hashref' => {}, 'extra_sql' => $where_clause . 'ORDER BY typenum', }, 'count_query' => $count_query, 'header' => [ '#', ucwords($classname) . ' Reason Type', ucwords($classname) . ' Reasons', ], 'fields' => [ 'typenum', 'type', $reasons_sub, ], 'links' => [ $link, $link, '', ], 'disable_total' => 1, 'html_form' => qq!
!, 'html_foot' => $html_foot, &> <%init> sub ucwords { join(' ', map ucfirst($_), split(/ /, shift)); } die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); $cgi->param('class') =~ /^(\w)$/ or die "illegal class"; my $class=$1; my $classname = ucfirst($FS::reason_type::class_name{$class}); my $html_init = 'Reasons: ' . include('/elements/menubar.html', map { ucfirst($FS::reason_type::class_name{$_}), $p.'browse/reason_type.html?class=' . $_ } keys (%FS::reason_type::class_name) ); $html_init .= include('/elements/init_overlib.html'). '

' . $classname . ' reasons ' . $FS::reason_type::class_purpose{$class} . '. Reason types allow reasons to be grouped for reporting purposes.' . qq!

! . ($classname =~ /^[aeiou]/i ? 'Add an ' : 'Add a ') . lc($classname) . ' reason type'. '

'; my $reasons_sub = sub { my $reason_type = shift; [ ( map { [ { 'data' => $_->reason, 'align' => 'left', 'link' => $p. "edit/reason.html?class=$class&reasonnum=". $_->reasonnum, }, { 'data' => q!!, 'align' => 'right', }, ]; } $reason_type->enabled_reasons ), [ { 'data' => '(add)', 'align' => 'left', 'link' => $p. "edit/reason.html?class=$class", 'data_style' => 'i', }, { 'data' => '' }, ] ]; }; my $where_clause = "WHERE class='$class'"; my $count_query = 'SELECT COUNT(*) FROM reason_type '; $count_query .= $where_clause; my $link = [ $p.'edit/reason_type.html?class='.$class.'&typenum=', 'typenum' ]; my $html_foot = include('/search/elements/checkbox-foot.html', onclick => include( '/elements/popup_link_onclick.html', js_action => q!'! . "${p}misc/reason-merge.html?" . q!' + toCGIString()!, actionlabel => 'Merge reasons', ), label => 'merge selected reasons', minboxes => 2, ) . '
';