comments.html.tmpl 5.52 KB
Newer Older
1
[%# 1.0@bugzilla.org %]
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
[%# 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>
20
  #                 Max Kanat-Alexander <mkanat@bugzilla.org>
21
  #                 Shane H. W. Travis <travis@sedsystems.ca>
22 23
  #%]

24 25
[% PROCESS bug/time.html.tmpl %]

26 27 28
  <script type="text/javascript">
  <!--
  function updateCommentPrivacy(checkbox, id) {
29
    var comment_elem = document.getElementById('comment_text_'+id).parentNode;
30
    if (checkbox.checked) {
31 32 33 34 35 36 37
      if (!comment_elem.className.match('bz_private')) {
        comment_elem.className = comment_elem.className.concat(' bz_private');
      }
    }
    else {
      comment_elem.className =
        comment_elem.className.replace(/(\s*|^)bz_private(\s*|$)/, '$2');
38 39 40 41 42 43
    }
  }
  //-->
  </script>


44
[% DEFAULT start_at = 0 mode = "show" %]
45
[% isinsider = Param("insidergroup") && user.in_group(Param("insidergroup")) %]
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
[% 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 %]


73 74 75 76 77
[% FOREACH comment = comments %]
  [% IF count >= start_at %]
    [% PROCESS a_comment %]
  [% END %]
  
78
  [% count = count + increment %]
79 80
[% END %]

81 82 83 84 85
[%# Note: this template is used in multiple places; if you use this hook,
  # make sure you are aware of this fact.
  #%]  
[% Hook.process("aftercomments") %]

86 87 88 89 90
[%############################################################################%]
[%# Block for individual comments                                            #%]
[%############################################################################%]

[% BLOCK a_comment %]
91
  [% IF NOT comment.isprivate || isinsider %]
92 93
    <div class="bz_comment[% " bz_private" IF comment.isprivate %]
                [% " bz_comment_hilite" IF marks.$count %]">
94 95 96
      [% IF count == description %]
        <table>
          <tr>
97
            <th align="left">
98
              <b><a name="c0" href="show_bug.cgi?id=[% bug.bug_id %]#c0">
99 100 101 102 103 104
                Description</a>:</b>&nbsp;&nbsp;
                [% IF mode == "edit" %]
                  [%%]<script type="text/javascript"><!-- 
                    addReplyLink(0);
                  //--></script>
                [% END %]
105
            </th>
106
            <td align="left" width="30%">
107
              <b>Opened:</b> [% bug.creation_ts FILTER time %]
108 109 110 111
            </td>
          </tr>
        </table>
      [% ELSE %]
112 113
        <span class="bz_comment_head">
          <span class="comment_rule">-------</span> <i>Comment
114 115
          <a name="c[% count %]" href="show_bug.cgi?id=[% bug.bug_id %]#c[% count %]">
            #[% count %]</a> From 
116 117 118 119 120
          <a href="mailto:[% comment.email FILTER html %]">
            [% comment.name FILTER html %]</a>
          [%+ comment.time FILTER time %] 
          </i>
          [% IF mode == "edit" %]
121
          <script type="text/javascript"><!-- 
122 123
            addReplyLink([% count %]); //--></script>
          [% END %]
124
          <span class="comment_rule">-------</span>
125
        </span>
126
      [% END %]
127
        
128 129
      [% IF mode == "edit" && isinsider %]
        <i>
130
          <input type="hidden" name="oisprivate-[% count %]" 
131
                 value="[% comment.isprivate %]">
132
          <input type="hidden" name="when-[% count %]" value="[% comment.time %]">
133
          <input type="checkbox" name="isprivate-[% count %]" value="1"
134
                 onClick="updateCommentPrivacy(this, [% count %])"
135
                 id="isprivate-[% count %]"
136 137
                 [% " checked=\"checked\"" IF comment.isprivate %]>
          <label for="isprivate-[% count %]">Private</label>
138 139
        </i>
      [% END %]
140
      [% IF user.in_group(Param('timetrackinggroup')) &&
141 142 143 144 145
            (comment.work_time > 0 || comment.work_time < 0) %]
         <br>
         Additional hours worked: 
         [% PROCESS formattimeunit time_unit=comment.work_time %]
      [% END %]
146

147 148 149
[%# Don't indent the <pre> block, since then the spaces are displayed in the
  # generated HTML
  #%]
150 151 152 153 154
[% IF comment.already_wrapped %]
    [% wrapped_comment = comment.body %]
[% ELSE %]
    [% wrapped_comment = comment.body FILTER wrap_comment %]
[% END %]
155
<pre[% ' id="comment_text_' _ count _ '"' IF mode == "edit" %]>
156
  [%- wrapped_comment FILTER quoteUrls(bug.bug_id) -%]
157
</pre>
158 159
    </div>
  [% END %]
160
[% END %]