зеркало из https://github.com/mozilla/gecko-dev.git
Bug 244265: Abstract out the typical admin page table to a separate template. r=vladd, a=justdave
This commit is contained in:
Родитель
7aa52bd11a
Коммит
5929396c2a
|
@ -18,13 +18,12 @@
|
|||
#
|
||||
# Contributor(s): Terry Weissman <terry@mozilla.org>
|
||||
# Vlad Dascalu <jocuri@softhome.net>
|
||||
# Jouni Heikniemi <jouni@heikniemi.net>
|
||||
#%]
|
||||
|
||||
[%# INTERFACE:
|
||||
# max_table_size: number. Determines the maximum number of
|
||||
# rows in each keywords table.
|
||||
# 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.
|
||||
# - description: string. The description of the keyword.
|
||||
# - bug_count: number. The number of bugs with the keyword.
|
||||
|
@ -36,62 +35,35 @@
|
|||
title = "Select keyword"
|
||||
%]
|
||||
|
||||
[% max_table_size = 50 %]
|
||||
[% columns = [
|
||||
{
|
||||
name => "name"
|
||||
heading => "Edit keyword..."
|
||||
contentlink => "editkeywords.cgi?action=edit&id=%id%"
|
||||
},
|
||||
{
|
||||
name => "description"
|
||||
heading => "Description"
|
||||
},
|
||||
{
|
||||
name => "bug_count"
|
||||
heading => "Bugs"
|
||||
align => "right"
|
||||
},
|
||||
{
|
||||
heading => "Action"
|
||||
content => "Delete"
|
||||
contentlink => "editkeywords.cgi?action=delete&id=%id%"
|
||||
}
|
||||
]
|
||||
%]
|
||||
|
||||
[% BLOCK table_header %]
|
||||
<table border="1" cellpadding="4" cellspacing="0">
|
||||
<tr bgcolor="#6666FF">
|
||||
<th align="left">Edit keyword ...</th>
|
||||
<th align="left">Description</th>
|
||||
<th align="left">[% terms.Bugs %]</th>
|
||||
<th align="left">Action</th>
|
||||
</tr>
|
||||
[% END %]
|
||||
[% PROCESS admin/table.html.tmpl
|
||||
columns = columns
|
||||
data = keywords
|
||||
footer = footer_row
|
||||
%]
|
||||
|
||||
[% BLOCK table_footer %]
|
||||
</table>
|
||||
[% END %]
|
||||
|
||||
[% PROCESS table_header %]
|
||||
|
||||
[% FOREACH keyword = keywords %]
|
||||
[% IF !loop.first() && loop.count() % max_table_size == 1 %]
|
||||
[% PROCESS table_header %]
|
||||
[% END %]
|
||||
|
||||
<tr>
|
||||
<th valign="top">
|
||||
<a href="editkeywords.cgi?action=edit&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&id=[% keyword.id %]">Delete</a>
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
[% IF !loop.last() && loop.count() % max_table_size == 0 %]
|
||||
[% PROCESS table_footer %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
||||
<tr>
|
||||
<td valign="top" colspan="3">Add a new keyword</td>
|
||||
<td><a href="editkeywords.cgi?action=add">Add</a></td>
|
||||
</tr>
|
||||
|
||||
[% PROCESS table_footer %]
|
||||
<p><a href="editkeywords.cgi?action=add">Add a new keyword</a></p>
|
||||
|
||||
[% PROCESS global/footer.html.tmpl %]
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
[%# 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 @@
|
|||
'section_num'
|
||||
],
|
||||
|
||||
'admin/table.html.tmpl' => [
|
||||
'link_uri',
|
||||
'c.content'
|
||||
],
|
||||
|
||||
'admin/products/groupcontrol/confirm-edit.html.tmpl' => [
|
||||
'group.count',
|
||||
],
|
||||
|
@ -493,11 +498,6 @@
|
|||
'const.CONTROLMAPMANDATORY',
|
||||
],
|
||||
|
||||
'admin/keywords/list.html.tmpl' => [
|
||||
'keyword.id',
|
||||
'keyword.bug_count',
|
||||
],
|
||||
|
||||
'admin/keywords/edit.html.tmpl' => [
|
||||
'keyword_id',
|
||||
'bug_count',
|
||||
|
|
Загрузка…
Ссылка в новой задаче