Commit 8d91efaa authored by justdave%bugzilla.org's avatar justdave%bugzilla.org

Bug 190224: templatize editmilestones.cgi

Patch by GavinS <bugzilla@chimpychompy.org> r=jouni, a=justdave
parent 38d13d32
...@@ -202,7 +202,7 @@ sub directive_ok { ...@@ -202,7 +202,7 @@ sub directive_ok {
return 1 if $directive =~ /^(time2str|GetBugLink|url)\(/; return 1 if $directive =~ /^(time2str|GetBugLink|url)\(/;
# Safe Template Toolkit virtual methods # Safe Template Toolkit virtual methods
return 1 if $directive =~ /\.((size)$|(push))/; return 1 if $directive =~ /\.(length$|size$|push\()/;
# Special Template Toolkit loop variable # Special Template Toolkit loop variable
return 1 if $directive =~ /^loop\.(index|count)$/; return 1 if $directive =~ /^loop\.(index|count)$/;
......
[%# 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): Gavin Shelley <bugzilla@chimpychompy.org>
#%]
[%# INTERFACE:
# name: string; The name of the milestone
#
# default_milestone: string; The default milestone for the product
#
# bug_count: number; The number of bugs targetted at the milestone
#
# product: string; The name of the product
#
#%]
[% title = BLOCK %]Delete Milestone of Product '[% product FILTER html %]'
[% END %]
[% PROCESS global/header.html.tmpl
title = title
%]
<table border="1" cellpadding="4" cellspacing="0">
<tr bgcolor="#6666FF">
<th valign="top" align="left">Field</th>
<th valign="top" align="left">Value</th>
</tr>
<tr>
<td valign="top">Milestone:</td>
<td valign="top">[% name FILTER html %]</td>
</tr>
<tr>
<td valign="top">Milestone of Product:</td>
<td valign="top">[% product FILTER html %]</td>
</tr>
<tr>
<td valign="top">[% terms.Bugs %]:</td>
<td valign="top">
[% IF bug_count %]
<a title="List of [% terms.bugs %] targetted at milestone '
[% name FILTER html %]'"
href="buglist.cgi?target_milestone=[% name FILTER url_quote %]&amp;product=
[%- product FILTER url_quote %]">[% bug_count %]</a>
[% ELSE %]
None
[% END %]
</td>
</tr>
</table>
<h2>Confirmation</h2>
[% IF bug_count %]
[% IF !Param("allowbugdeletion") %]
Sorry, there
[% IF bug_count > 1 %]
are [% bug_count %] [%+ terms.bugs %]
[% ELSE %]
is [% bug_count %] [%+ terms.bug %]
[% END %]
outstanding for this milestone. You must move
[% IF bug_count > 1 %]
those [% terms.bugs %]
[% ELSE %]
that [% terms.bug %]
[% END %]
to another milestone before you can delete this one.
[% ELSE %]
<table border="0" cellpadding="20" width="70%" bgcolor="red"><tr><td>
There [% IF bug_count > 1 %]
are [% bug_count %] [%+ terms.bugs %]
[% ELSE %]
is 1 [% terms.bug %]
[% END %]
entered for this milestone! When you delete this
milestone, <b><blink>ALL</blink></b> stored [% terms.bugs %] will be deleted,
too.
You could not even see the [% terms.bug %] history for this milestone anymore!
</td></tr></table>
[% END %]
[% END %]
[% IF default_milestone == name %]
<p>Sorry, but '[% name FILTER html %]' is the default milestone for product '
[%- product FILTER html %]', and so it can not be deleted.
[% ELSE %]
[% IF bug_count == 0 || Param('allowbugdeletion') %]
<p>Do you really want to delete this milestone?<p>
<form method="post" action="editmilestones.cgi">
<input type="submit" value="Yes, delete">
<input type="hidden" name="action" value="delete">
<input type="hidden" name="product" value="[% product FILTER html %]">
<input type="hidden" name="milestone" value="[% name FILTER html %]">
</form>
[% END %]
[% END %]
[% PROCESS admin/milestones/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): Gavin Shelley <bugzilla@chimpychompy.org>
#%]
[%# INTERFACE:
# product: string; name of the product the milestone is being created for
#%]
[% title = BLOCK %]Add Milestone to Product '[% product FILTER html %]'[% END %]
[% h2 = BLOCK %]This page allows you to add a new milestone to product
'[% product FILTER html %]'.[% END %]
[% PROCESS global/header.html.tmpl
title = title
h2 = h2
%]
<form method="post" action="editmilestones.cgi">
<table border="0" cellpadding="4" cellspacing="0">
<tr>
<th align="right"><label for="milestone">Milestone:</label></th>
<td><input id="milestone" size="20" maxlength="20" name="milestone"
value=""></td>
</tr>
<tr>
<th align="right"><label for="sortkey">Sortkey:</label></th>
<td><input id="sortkey" size="20" maxlength="20" name="sortkey"
value=""></td>
</tr>
</table>
<input type="submit" value="Add">
<input type="hidden" name="action" value="new">
<input type="hidden" name='product' value="[% product FILTER html %]">
</form>
<p>
[% PROCESS admin/milestones/footer.html.tmpl
no_add_milestone_link = 1
%]
[% 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): Gavin Shelley <bugzilla@chimpychompy.org>
#%]
[%# INTERFACE:
# name: string; the name of the newly created milestone
#
# product: string; the name of the product the milestone belongs to
#%]
[% title = BLOCK %]Adding new Milestone of Product
'[% product FILTER html %]'[% END %]
[% PROCESS global/header.html.tmpl
title = title
%]
<p>The milestone '<a title="Edit milestone '[% name FILTER html %]' of
product '[% product FILTER html %]'"
href="editmilestones.cgi?action=edit&amp;product=
[%- product FILTER url_quote %]&amp;milestone=[% name FILTER url_quote %]">
[%- name FILTER html %]</a>' has been created.</p>
<p>
[% PROCESS admin/milestones/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): Gavin Shelley <bugzilla@chimpychompy.org>
#%]
[%# INTERFACE:
# name: string; the name of the deleted milestone.
#
# product: string; the name of the product the milestone belonged to
#
# deleted_bug_count: number; the number of bugs which were deleted
# (if bug deletion is allowed)
#%]
[% title = BLOCK %]Deleted Milestone '[% name FILTER html %]' of Product
'[% product FILTER html %]'[% END %]
[% PROCESS global/header.html.tmpl
title = title
%]
<p>
[% IF deleted_bug_count %]
Attachments, [% terms.bug %] activity and dependencies deleted for
[%+ deleted_bug_count %]
[% IF deleted_bug_count > 1 %]
[%+ terms.bugs %]
[% ELSE %]
[%+ terms.bug %]
[% END %].
</p><p>
[% deleted_bug_count %]
[% IF deleted_bug_count > 1 %]
[%+ terms.bugs %]
[% ELSE %]
[%+ terms.bug %]
[% END %]
deleted.
[% ELSE %]
No [% terms.bugs %] were targetted at the milestone.
[% END %]
</p>
<p>Milestone '[% name FILTER html %]' deleted.</p>
<p>
[% PROCESS admin/milestones/footer.html.tmpl
no_edit_milestone_link = 1
%]
[% 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): Gavin Shelley <bugzilla@chimpychompy.org>
#%]
[%# INTERFACE:
# name: string; The name of the milestone
#
# sortkey: number; milestone sortkey
#
# product: string; The product the milestone belongs to
#%]
[% PROCESS global/variables.none.tmpl %]
[% title = BLOCK %]Edit Milestone '[% name FILTER html %]' of product '
[%- product FILTER html %]'[% END %]
[% PROCESS global/header.html.tmpl
title = title
%]
<form method="post" action="editmilestones.cgi">
<table border="0" cellpadding="4" cellspacing="0">
<tr>
<th valign="top"><label for="milestone">Milestone:</label></th>
<td><input id="milestone" size="20" maxlength="20" name="milestone" value="
[%- name FILTER html %]"></td>
</tr>
<tr>
<th align="right"><label for="sortkey">Sortkey:</label></th>
<td><input id="sortkey" size="20" maxlength="20" name="sortkey" value="
[%- sortkey FILTER html %]"></td>
</tr>
</table>
<input type="hidden" name="milestoneold" value="[% name FILTER html %]">
<input type="hidden" name="sortkeyold" value="[% sortkey FILTER html %]">
<input type="hidden" name="action" value="update">
<input type="hidden" name="product" value="[% product FILTER html %]">
<input type="submit" value="Update">
</form>
<p>
[% PROCESS admin/milestones/footer.html.tmpl
no_edit_milestone_link = 1 %]
[% 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): Gavin Shelley <bugzilla@chimpychompy.org>
#%]
[%# INTERFACE:
# name: string; the name of the milestone
#
# product: string; the name of the product which the milestone
# belongs/belonged to
#
# no_XXX_link: boolean; if defined, then don't show the corresponding
# link. Supported parameters are:
#
# no_edit_milestone_link
# no_edit_other_milestones_link
# no_add_milestone_link
#%]
<p>
<hr>
[% UNLESS no_add_milestone_link %]
<a title="Add a milestone to product '[% product FILTER html %]'"
href="editmilestones.cgi?action=add&amp;product=
[%- product FILTER url_quote %]">Add</a> a milestone.
[% END %]
[% IF name && !no_edit_milestone_link %]
Edit milestone <a
title="Edit Milestone '[% name FILTER html %]' of product '
[%- product FILTER html %]'"
href="editmilestones.cgi?action=edit&amp;product=
[%- product FILTER url_quote %]&amp;milestone=[% name FILTER url_quote %]">
'[% name FILTER html %]'</a>.
[% END %]
[% UNLESS no_edit_other_milestones_link %]
Edit other milestones of product <a
href="editmilestones.cgi?product=
[%- product FILTER url_quote %]">'[% product FILTER html %]'</a>.
[% END %]
Edit product <a
href="editproducts.cgi?action=edit&amp;product=
[%- product FILTER url_quote %]">'[% product FILTER html %]'</a>.
</p>
[%# 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): Gavin Shelley <bugzilla@chimpychompy.org>
#%]
[%# INTERFACE:
# milestones: array of hashes having the following properties:
# - name: string; The name of the milestone.
# - sortkey: number; The sortkey used to order the milestone.
#
# product: string; the name of the product we are editing milestones for
#%]
[% USE Bugzilla %]
[% cgi = Bugzilla.cgi %]
[% PROCESS global/variables.none.tmpl %]
[% title = BLOCK %]Select milestone of product
'[% product FILTER html %]'[% END %]
[% PROCESS global/header.html.tmpl
title = title
%]
[% edit_contentlink = BLOCK %]editmilestones.cgi?action=edit&amp;product=
[%- product FILTER url_quote %]&amp;milestone=%%name%%[% END %]
[% delete_contentlink = BLOCK %]editmilestones.cgi?action=del&amp;product=
[%- product FILTER url_quote %]&amp;milestone=%%name%%[% END %]
[% columns = [
{
name => "name"
heading => "Edit milestone..."
contentlink => edit_contentlink
},
{
name => "sortkey"
heading => "Sortkey"
},
]
%]
[% columns.push({
heading => "Action"
content => "Delete"
contentlink => delete_contentlink
}) %]
[% PROCESS admin/table.html.tmpl
columns = columns
data = milestones
%]
<p>
[% PROCESS admin/milestones/footer.html.tmpl
no_edit_other_milestones_link = 1
%]
[% 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): Gavin Shelley (bugzilla@chimpychompy.org)
#
#%]
[%# INTERFACE:
# products: array of hashes having the following properties:
# - name: string; The name of the product.
# - description: string; The description of the product.
#%]
[% USE Bugzilla %]
[% cgi = Bugzilla.cgi %]
[% PROCESS global/variables.none.tmpl %]
[% PROCESS global/header.html.tmpl
title = "Edit milestones for which product?"
%]
[% bug_count_contentlink = BLOCK %]buglist.cgi?target_milestone=%%name%%&amp;product=
[%- product FILTER url_quote %][% END %]
[% columns = [
{
name => "name"
heading => "Edit milestones of..."
contentlink => "editmilestones.cgi?product=%%name%%"
},
{
name => "description"
heading => "Description"
allow_html_content => 1
}
]
%]
[% PROCESS admin/table.html.tmpl
columns = columns
data = products
%]
[% 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): Gavin Shelley <bugzilla@chimpychompy.org>
#%]
[%# INTERFACE:
#
# 'updated_XXX' variables are booleans, and are defined if the
# 'XXX' field was updated during the edit just being handled.
# Variables called just 'XXX' are strings, and are the _new_ contents
# of the fields.
#
# name & updated_name: the name of the milestone
#
# sortkey & updated_sortkey: the milestone sortkey
#
# product: string; the name of the product the milestone belongs to
#%]
[% title = BLOCK %]Updating Milestone '[% name FILTER html %]' of Product
'[% product FILTER html %]'[% END %]
[% PROCESS global/header.html.tmpl
title = title
%]
[% IF updated_name %]
<p>Updated Milestone name to: '[% name FILTER html %]'.</p>
[% END %]
[% IF updated_sortkey %]
<p>Updated Milestone sortkey to: '[% sortkey FILTER html %]'.</p>
[% END %]
[% UNLESS updated_sortkey || updated_name %]
<p>Nothing changed for milestone '[% name FILTER html %]'.
[% END %]
<p>
[% PROCESS admin/milestones/footer.html.tmpl %]
[% PROCESS global/footer.html.tmpl %]
...@@ -30,7 +30,8 @@ ...@@ -30,7 +30,8 @@
# Values always used for numbers - [% (i|j|k|n|count) %] # Values always used for numbers - [% (i|j|k|n|count) %]
# Params - [% Param(... # Params - [% Param(...
# Safe functions - [% (time2str|GetBugLink)... # Safe functions - [% (time2str|GetBugLink)...
# Safe vmethods - [% foo.size %] # Safe vmethods - [% foo.size %] [% foo.length %]
# [% foo.push() %]
# TT loop variables - [% loop.count %] # TT loop variables - [% loop.count %]
# Already-filtered stuff - [% wibble FILTER html %] # Already-filtered stuff - [% wibble FILTER html %]
# where the filter is one of html|csv|js|url_quote|quoteUrls|time|uri|xml|none # where the filter is one of html|csv|js|url_quote|quoteUrls|time|uri|xml|none
...@@ -559,6 +560,14 @@ ...@@ -559,6 +560,14 @@
'cgi.query_string' 'cgi.query_string'
], ],
'admin/milestones/confirm-delete.html.tmpl' => [
'bug_count'
],
'admin/milestones/deleted.html.tmpl' => [
'deleted_bug_count'
],
'account/login.html.tmpl' => [ 'account/login.html.tmpl' => [
'target', 'target',
], ],
......
...@@ -181,6 +181,11 @@ ...@@ -181,6 +181,11 @@
Sorry, you aren't a member of the 'editcomponents' group, and so Sorry, you aren't a member of the 'editcomponents' group, and so
you aren't allowed to add, modify or delete components. you aren't allowed to add, modify or delete components.
[% ELSIF error == "auth_cant_edit_milestones" %]
[% title = "Access Denied" %]
Sorry, you aren't a member of the 'editcomponents' group, and so
you aren't allowed to add, modify or delete milestones.
[% ELSIF error == "component_already_exists" %] [% ELSIF error == "component_already_exists" %]
[% title = "Component Already Exists" %] [% title = "Component Already Exists" %]
A component with the name '[% name FILTER html %]' already exists. A component with the name '[% name FILTER html %]' already exists.
...@@ -553,6 +558,33 @@ ...@@ -553,6 +558,33 @@
[% title = "Login Name Required" %] [% title = "Login Name Required" %]
You must enter a login name when using your login as a pronoun. You must enter a login name when using your login as a pronoun.
[% ELSIF error == "milestone_already_exists" %]
[% title = "Milestone Already Exists" %]
The milestone '[% name FILTER html %]' already exists for product '
[%- product FILTER html %]'.
[% ELSIF error == "milestone_blank_name" %]
[% title = "Blank Milestone Name Not Allowed" %]
You must enter a name for this milestone.
[% ELSIF error == "milestone_name_too_long" %]
[% title = "Milestone Name Is Too Long" %]
The name of a milestone is limited to 20 characters.
'[% name FILTER html %]' is too long ([% name.length %] characters).
[% ELSIF error == "milestone_no_action" %]
[% title = "No valid action specified" %]
No valid action was specified when trying to edit milestones.
[% ELSIF error == "milestone_not_specified" %]
[% title = "No Milestone Specified" %]
No milestone specified when trying to edit milestones.
[% ELSIF error == "milestone_not_valid" %]
[% title = "Specified Milestone Does Not Exist" %]
The milestone '[% milestone FILTER html %]' for product
'[% product FILTER html %]' does not exist.
[% ELSIF error == "milestone_required" %] [% ELSIF error == "milestone_required" %]
[% title = "Milestone Required" %] [% title = "Milestone Required" %]
You must determine a target milestone for [% terms.bug %] You must determine a target milestone for [% terms.bug %]
...@@ -560,6 +592,11 @@ ...@@ -560,6 +592,11 @@
if you are going to accept it. Part of accepting if you are going to accept it. Part of accepting
[% terms.abug %] is giving an estimate of when it will be fixed. [% terms.abug %] is giving an estimate of when it will be fixed.
[% ELSIF error == "milestone_sortkey_invalid" %]
[% title = "Invalid Milestone Sortkey" %]
The sortkey '[% sortkey FILTER html %]' for milestone '
[% name FILTER html %]' is not a valid (positive) number.
[% ELSIF error == "misarranged_dates" %] [% ELSIF error == "misarranged_dates" %]
[% title = "Misarranged Dates" %] [% title = "Misarranged Dates" %]
Your start date ([% datefrom FILTER html %]) is after Your start date ([% datefrom FILTER html %]) is after
......
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