Commit e06f5266 authored by jouni%heikniemi.net's avatar jouni%heikniemi.net

Bug 244265: Abstract out the typical admin page table to a separate template. r=vladd, a=justdave

parent abdd4eba
...@@ -18,13 +18,12 @@ ...@@ -18,13 +18,12 @@
# #
# Contributor(s): Terry Weissman <terry@mozilla.org> # Contributor(s): Terry Weissman <terry@mozilla.org>
# Vlad Dascalu <jocuri@softhome.net> # Vlad Dascalu <jocuri@softhome.net>
# Jouni Heikniemi <jouni@heikniemi.net>
#%] #%]
[%# INTERFACE: [%# INTERFACE:
# max_table_size: number. Determines the maximum number of
# rows in each keywords table.
# keywords: array with keyword objects having the properties: # keywords: array with keyword objects having the properties:
# - keyword_id: number. The ID of the keyword. # - id: number. The ID of the keyword.
# - name: string. The name of the keyword. # - name: string. The name of the keyword.
# - description: string. The description of the keyword. # - description: string. The description of the keyword.
# - bug_count: number. The number of bugs with the keyword. # - bug_count: number. The number of bugs with the keyword.
...@@ -36,62 +35,35 @@ ...@@ -36,62 +35,35 @@
title = "Select keyword" title = "Select keyword"
%] %]
[% max_table_size = 50 %] [% columns = [
{
[% BLOCK table_header %] name => "name"
<table border="1" cellpadding="4" cellspacing="0"> heading => "Edit keyword..."
<tr bgcolor="#6666FF"> contentlink => "editkeywords.cgi?action=edit&amp;id=%id%"
<th align="left">Edit keyword ...</th> },
<th align="left">Description</th> {
<th align="left">[% terms.Bugs %]</th> name => "description"
<th align="left">Action</th> heading => "Description"
</tr> },
[% END %] {
name => "bug_count"
[% BLOCK table_footer %] heading => "Bugs"
</table> align => "right"
[% END %] },
{
[% PROCESS table_header %] heading => "Action"
content => "Delete"
[% FOREACH keyword = keywords %] contentlink => "editkeywords.cgi?action=delete&amp;id=%id%"
[% IF !loop.first() && loop.count() % max_table_size == 1 %] }
[% PROCESS table_header %] ]
[% END %] %]
<tr>
<th valign="top">
<a href="editkeywords.cgi?action=edit&amp;id=[% keyword.id %]">[% keyword.name FILTER html %]</a>
</th>
<td valign="top">
[% IF keyword.description %]
[% keyword.description FILTER html %]
[% ELSE %]
<font color="red">missing</font>
[% END %]
</td>
<td valign="top" align="right">
[% IF keyword.bug_count %]
[% keyword.bug_count %]
[% ELSE %]
none
[% END %]
</td>
<th valign="top">
<a href="editkeywords.cgi?action=delete&amp;id=[% keyword.id %]">Delete</a>
</th>
</tr>
[% IF !loop.last() && loop.count() % max_table_size == 0 %]
[% PROCESS table_footer %]
[% END %]
[% END %]
<tr> [% PROCESS admin/table.html.tmpl
<td valign="top" colspan="3">Add a new keyword</td> columns = columns
<td><a href="editkeywords.cgi?action=add">Add</a></td> data = keywords
</tr> footer = footer_row
%]
[% PROCESS table_footer %] <p><a href="editkeywords.cgi?action=add">Add a new keyword</a></p>
[% PROCESS global/footer.html.tmpl %] [% PROCESS global/footer.html.tmpl %]
[%# 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!
# align: left/center/right. Controls the horizontal alignment of the
# text in the column.
#
# 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.
#
#%]
[%################### 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 %]
[% FOREACH m = link_uri.match('%(.+?)%'); %]
[% replacement_value = FILTER url_quote; row.$m; END %]
[% link_uri = link_uri.replace("%$m%", replacement_value) %]
[% END %]
<a href="[% link_uri %]">
[% END %]
[% IF c.content %]
[% c.content %]
[% ELSE %]
[% row.${c.name} FILTER html %]
[% END %]
[% IF c.contentlink %]
</a>
[% END %]
</td>
[% END %]
</tr>
[% END %]
[%################### TABLE FOOTER ######################%]
</table>
...@@ -479,6 +479,11 @@ ...@@ -479,6 +479,11 @@
'section_num' 'section_num'
], ],
'admin/table.html.tmpl' => [
'link_uri',
'c.content'
],
'admin/products/groupcontrol/confirm-edit.html.tmpl' => [ 'admin/products/groupcontrol/confirm-edit.html.tmpl' => [
'group.count', 'group.count',
], ],
...@@ -493,11 +498,6 @@ ...@@ -493,11 +498,6 @@
'const.CONTROLMAPMANDATORY', 'const.CONTROLMAPMANDATORY',
], ],
'admin/keywords/list.html.tmpl' => [
'keyword.id',
'keyword.bug_count',
],
'admin/keywords/edit.html.tmpl' => [ 'admin/keywords/edit.html.tmpl' => [
'keyword_id', 'keyword_id',
'bug_count', 'bug_count',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment