[%# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # This Source Code Form is "Incompatible With Secondary Licenses", as # defined by the Mozilla Public License, v. 2.0. #%] [% PROCESS bug/time.html.tmpl %] [% DEFAULT mode = "show" %] [% user_cache = template_cache.users %] [% markdown_enabled = feature_enabled('jsonrpc') AND user.settings.use_markdown.value == "on" %] [% can_edit_comments = bug.check_can_change_field('longdesc', 0, 1) %] [% can_tag_comments = feature_enabled('jsonrpc') AND user.can_tag_comments %] [% markdown_enabled = feature_enabled('jsonrpc') AND user.settings.use_markdown.value == "on" %] [% IF markdown_enabled %] [% END %]
[% PROCESS display_comments %] [% IF mode == "edit" && user.id && user.settings.comment_box_position.value == "before_comments" %] [% 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") %] [% IF mode == "edit" %] [% END %]
[%############################################################################%] [%# Block for individual comments #%] [%############################################################################%] [% BLOCK display_comments %] [% FOREACH comment = comments %] [% NEXT IF comment.is_private AND NOT (user.is_insider || user.id == comment.author.id) %] [% comment_text = comment.body_full %] [% NEXT IF comment_text == '' AND (comment.work_time - 0) != 0 AND !user.is_timetracker %]
[% IF comment.count == 0 %] [% class_name = "bz_first_comment_head" %] [% comment_label = "Description" %] [% ELSE %] [% class_name = "bz_comment_head" %] [% comment_label = "Comment " _ comment.count %] [% END %]
[% IF mode == "edit" %] [% IF comment.collapsed %] [% END %] [% IF can_edit_comments %] [% IF can_tag_comments %] [tag] [% END %] [% replyto_author = comment.author.name || comment.author.nick FILTER html %] [% replyto_header = "(In reply to $replyto_author from comment #$comment.count)" %] [reply] [% END %] [% IF comment.collapsed %] [% END %] [% ELSIF comment.collapsed %] [% END %] [% IF mode == "edit" && can_edit_comments && user.is_insider %]
[% END %] [%- comment_label FILTER html %] [% Hook.process('user-start', 'bug/comments.html.tmpl') %] [%# No need to recreate the exact same template if we already have it. %] [% commenter_id = comment.author.id %] [% UNLESS user_cache.$commenter_id %] [% user_cache.$commenter_id = BLOCK %] [% INCLUDE global/user.html.tmpl who = comment.author %] [% END %] [% END %] [% user_cache.$commenter_id FILTER none %] [% FOREACH group = comment.author.groups_with_icon %] [% group.name FILTER html %] [% END %] [%+ comment.creation_ts FILTER time %] [% IF comment.collapsed %] Comment hidden ([% comment.tags.join(', ') FILTER html %]) [% END %]
[% IF user.is_timetracker && (comment.work_time > 0 || comment.work_time < 0) %]
Additional hours worked: [% PROCESS formattimeunit time_unit=comment.work_time %] [% END %] [% IF user.id && Param('comment_taggers_group') %]
[% IF comment.tags.size %] [% END %]
[% END %] [%# Don't indent the
 block, since then the spaces are displayed in the
  # generated HTML
  #%]
<[% user.use_markdown(comment) ? "div" : "pre" %] class="bz_comment_text[% " collapsed" IF comment.collapsed %]"
  [% IF mode == "edit" || comment.collapsed %]
    id="comment_text_[% comment.count FILTER none %]"
  [% END %]>
  [%- comment_text FILTER markdown(bug, comment) -%]

    [% Hook.process('a_comment-end', 'bug/comments.html.tmpl') %]
    
[% END %] [% END %]