<table class="cpac_table">
<tr>
[% FOR col IN cpac.tc.cols %]
[% NEXT IF cpac.tc.hidden_cols.exists(col)
OR (cpac.tm.f.$col.extra('is_reverse') AND cpac.tm.f.$col.extra('rel_type').match('_many')) %]
<th class="cpac_table_header">
[% USE url('', cpac.g.filter_params) %]
[% SET qp = "&sort=" _ col %]
[% SET qp = qp _ "&page=" _ cpac_skinny_pager.current_page IF cpac_skinny_pager %]
[% SET qp = qp _ "&dir=DESC" IF col == cpac_skinny_sortby AND cpac_skinny_dir != "DESC" %]
[% SET qp = qp _ "&limit=" _ cpac_skinny_limit IF cpac_skinny_limit %]
<a class="cpac_link" href="?[% url %][% qp %]">
[% cpac.tc.headings.$col %]
</a>
[% IF cpac_skinny_sortby %]
[% IF cpac_skinny_sortby == col %]
[% IF cpac_skinny_dir != "DESC" %]
↓
[% ELSE %]
↑
[% END %]
[% END %]
[% ELSIF col == cpac.g.default_sort %]
↓
[% END %]
</th>
[% END %]
</tr>
[% SET stripe = 0 %]
[% FOR item IN json_data.rows %]
[% PROCESS skinny/row.tt %]
[% END %]
</table>