summaryrefslogtreecommitdiffstats
path: root/template/en/default/admin/table.html.tmpl
blob: ff554429a009ba54b5691ba251fe3340d1e68a60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
[%# 1.0@bugzilla.org %]
[%# The contents of this file are subject to the Mozilla Public
  # License Version 1.1 (the "License"); you may not use this file
  # except in compliance with the License. You may obtain a copy of
  # the License at http://www.mozilla.org/MPL/
  #
  # Software distributed under the License is distributed on an "AS
  # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  # implied. See the License for the specific language governing
  # rights and limitations under the License.
  #
  # The Original Code is the Bugzilla Bug Tracking System.
  #
  # The Initial Developer of the Original Code is Netscape Communications
  # Corporation. Portions created by Netscape are
  # Copyright (C) 1998 Netscape Communications Corporation. All
  # Rights Reserved.
  #
  # Contributor(s): Jouni Heikniemi <jouni@heikniemi.net>
  #
  #%]

[%# INTERFACE:
  #
  # columns: 
  #   array of hashes representing the columns in the table. 
  #   Each hash contains data for a single column. Hash keys:
  #     name: Name of the field in the data param
  #     heading: The text to print at the header cell
  #     contentlink: URI to which the content of a data cell shall be linked to.
  #                  Expressions of format %%xxx%% are replaced with value
  #                  with the key xxx in data hash of the current row.
  #     content: If specified, the content of this variable is used
  #              instead of the data pulled from the current row. 
  #              NOTE: This value is not HTML filtered at output!
  #     content_use_field: If defined and true, then each value in the 
  #                        column corresponds with a key in the
  #                        field_descs field, and that value from the 
  #                        field_descs hash will be used instead of "content."
  #                        See fieldvalues/select-field for an example of use.
  #                        This content WILL be HTML-filtered in this case.
  #     align: left/center/right. Controls the horizontal alignment of the
  #            text in the column.
  #     allow_html_content: if defined, then this column allows html content
  #                         so it will not be filtered 
  #     yesno_field: Turn the data from 0/!0 into Yes/No
  #
  # data:
  #   array of hashes representing the data for the table.
  #   Each hash contains data for a single row of data. The
  #   keys are column names from columns subhashes name field.
  #
  #%]

[% PROCESS "global/field-descs.none.tmpl" %]

[%###################  TABLE HEADER   ######################%]

<table border="1" cellpadding="4" cellspacing="0">
  <tr bgcolor="#6666FF">
    [% FOREACH c = columns %]
      [%# Default to align left for headers %]
      <th align="[% (c.align || 'left') FILTER html %]">
        [% c.heading FILTER html %]
      </th>
    [% END %]
  </tr>


[%###################  TABLE CONTENT  ######################%]

[% FOREACH row = data %]
  <tr>
    [% FOREACH c = columns %]
      <td [% IF c.align %] align="[% c.align FILTER html %]" [% END %]>
      
        [% IF c.contentlink %]
          [% link_uri = c.contentlink %]
          [% WHILE link_uri.search('%%(.+?)%%')%]
            [% FOREACH m = link_uri.match('%%(.+?)%%') %]
              [% IF row.$m %]
                [% replacement_value = FILTER url_quote; row.$m; END %]
              [% ELSE %]
                [% replacement_value = "" %]
              [% END %]
              [% link_uri = link_uri.replace("%%$m%%", replacement_value) %]
            [% END %]
          [% END %]
          <a href="[% link_uri %]">
        [% END %]
        
        [% IF c.content_use_field %]
           [% colname = row.${c.name} %]
           [% field_descs.${colname} FILTER html %]
        [% ELSIF c.content %]
            [% c.content %]
        [% ELSE %]
          [% IF c.yesno_field %]
            [% IF row.${c.name} %]
              Yes
            [% ELSE %]
              No
            [% END %]
          [% ELSE %]
            [% IF c.allow_html_content %]
              [% row.${c.name} FILTER none %]
            [% ELSE %]
              [% row.${c.name} FILTER html %]
            [% END %]
          [% END %]
        [% END %]
        
        [% IF c.contentlink %]
          </a>
        [% END %]
         
      </td>
    [% END %]
  </tr>
[% END %]

[% IF data.size == 0 %]
  <tr><td colspan="[% columns.size %]" align="center"><i>&lt;none&gt;</i></td></tr>
[% END %]


[%###################  TABLE FOOTER   ######################%]

</table>