| [%# 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): Gervase Markham <gerv@gerv.net> |
| # Max Kanat-Alexander <mkanat@bugzilla.org> |
| # Shane H. W. Travis <travis@sedsystems.ca> |
| #%] |
| |
| [% PROCESS bug/time.html.tmpl %] |
| |
| [% DEFAULT start_at = 0 mode = "show" %] |
| [% isinsider = Param("insidergroup") && UserInGroup(Param("insidergroup")) %] |
| [% sort_order = user.settings.comment_sort_order.value %] |
| |
| [%# NOTE: (start_at > 0) means we came here from a midair collision, |
| # in which case we don't care what the user's preference is. |
| %] |
| [% IF (start_at > 0) %] |
| [% sort_order = "oldest_to_newest" %] |
| [% END %] |
| |
| |
| [%# Set up the variables as needed, depending on the sort order %] |
| [% IF sort_order == "oldest_to_newest" %] |
| [% count = 0 %] |
| [% description = 0 %] |
| [% increment = 1 %] |
| [% ELSE %] |
| [% increment = -1 %] |
| [% IF sort_order == "newest_to_oldest" %] |
| [% count = comments.size - 1 %] |
| [% description = 0 %] |
| [% ELSIF sort_order == "newest_to_oldest_desc_first" %] |
| [% count = comments.size %] |
| [% description = comments.size %] |
| [% END %] |
| [% END %] |
| |
| |
| [% FOREACH comment = comments %] |
| [% IF count >= start_at %] |
| [% PROCESS a_comment %] |
| [% END %] |
| |
| [% count = count + increment %] |
| [% END %] |
| |
| [%# Note: this template is used in multiple places; if you use this hook, |
| # make sure you are aware of this fact. |
| #%] |
| [% Hook.process("aftercomments") %] |
| |
| [%############################################################################%] |
| [%# Block for individual comments #%] |
| [%############################################################################%] |
| |
| [% BLOCK a_comment %] |
| [% IF NOT comment.isprivate || isinsider %] |
| <div [% "class=\"bz_private\" " IF comment.isprivate %] |
| [% "class=\"bz_comment_hilite\" " IF marks.$count %]> |
| [% IF count == description %] |
| <table> |
| <tr> |
| <td align="left"> |
| <b><a name="c0" href="#c0">Description</a>:</b> <script |
| type="text/javascript"><!-- |
| addReplyLink(0); |
| //--></script> |
| </td> |
| <td align="left" width="30%"> |
| <b>Opened:</b> [% bug.creation_ts FILTER time %] |
| </td> |
| </tr> |
| </table> |
| [% ELSE %] |
| <br> |
| <span class="bz_comment"> |
| <i>Comment |
| <a name="c[% count %]" href="#c[% count %]">#[% count %]</a> From |
| <a href="mailto:[% comment.email FILTER html %]"> |
| [% comment.name FILTER html %]</a> |
| [%+ comment.time FILTER time %] |
| </i> |
| [% IF mode == "edit" %] |
| <script type="text/javascript"><!-- |
| addReplyLink([% count %]); //--></script> |
| [% END %] |
| |
| </span> |
| [% END %] |
| |
| [% IF mode == "edit" && isinsider %] |
| <i> |
| <input type="hidden" name="oisprivate-[% count %]" |
| value="[% comment.isprivate %]"> |
| <input type="hidden" name="when-[% count %]" value="[% comment.when %]"> |
| <input type="checkbox" name="isprivate-[% count %]" value="1" |
| id="isprivate-[% count %]" |
| [% " checked=\"checked\"" IF comment.isprivate %]> Private |
| </i> |
| [% END %] |
| [% IF UserInGroup(Param('timetrackinggroup')) && |
| (comment.work_time > 0 || comment.work_time < 0) %] |
| <br> |
| Additional hours worked: |
| [% PROCESS formattimeunit time_unit=comment.work_time %] |
| [% END %] |
| |
| [%# Don't indent the <pre> block, since then the spaces are displayed in the |
| # generated HTML |
| #%] |
| [% IF comment.already_wrapped %] |
| [% wrapped_comment = comment.body %] |
| [% ELSE %] |
| [% wrapped_comment = comment.body FILTER wrap_comment %] |
| [% END %] |
| <pre[% ' id="comment_text_' _ count _ '"' IF mode == "edit" %]> |
| [%- wrapped_comment FILTER quoteUrls -%] |
| </pre> |
| </div> |
| [% END %] |
| [% END %] |