Server : Apache System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64 User : dh_edsupp ( 6597262) PHP Version : 8.2.26 Disable Function : NONE Directory : /lib/python3/dist-packages/trac/ticket/templates/ |
Upload File : |
{# Copyright (C) 2010-2021 Edgewall Software This software is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at https://trac.edgewall.org/wiki/TracLicense. This software consists of voluntary contributions made by many individuals. For the exact contribution history, see the revision history and logs, available at https://trac.edgewall.org/. #} ## Ticket Box (ticket fields along with description). # import 'macros.html' as jmacros with context {# Arguments: - ticket: the ticket to be shown - fields: ticket field metadata - description_change: metadata about changes in the description - can_append: True if the user is allowed to append to tickets - preview_mode: if True, show the "draft" background - hide=False: if True, hide the box - reporter_link=None: rendered link for the reporter field - owner_link=None: rendered link for the owner field #} <div id="ticket"> # if not ticket.exists and preview_mode: ${jmacros.warnings(chrome.warnings, 'trac-preview-warning')} # endif <div id="ticketbox"${ {'class': ['trac-content', 'ticketdraft' if preview_mode], 'style': 'display: none' if hide }|htmlattr}> <div class="date"> # if ticket.exists: <p>${tag_("Opened %(created)s", created=pretty_dateinfo(ticket.time))}</p> # endif # if closetime: <p>${tag_("Closed %(closed)s", closed=pretty_dateinfo(closetime))}</p> # endif # if ticket.changetime != ticket.time and ticket.changetime != closetime: <p>${ tag_("Last modified %(modified)s", modified=pretty_dateinfo(ticket.changetime)) }</p> # endif # if not ticket.exists: <p><span class="trac-loading"></span><i>${ _("(ticket not yet created)")}</i></p> # endif </div> ## use a placeholder if it's a new ticket <h2> <a href="${href.ticket(ticket.id)}" class="trac-id">#${ticket.id}</a> <span class="trac-status"> ${'status' in fields and fields.by_name('status').rendered or ticket.status} </span> # if ticket.type: <span class="trac-type"> ${'type' in fields and fields.by_name('type').rendered or ticket.type} </span> # endif # if ticket.resolution: <span class="trac-resolution"> (${'resolution' in fields and fields.by_name('resolution').rendered or ticket.resolution}) </span> # endif </h2> <h1 id="trac-ticket-title" class="searchable"> <span class="summary">${ticket.summary}</span> # if version is not none: # set version_link # if version == 0: <a href="#comment:description">${_("Initial Version")}</a> # else: <a href="#comment:${version}">${ _("Version %(version)s", version=version)}</a> # endif # endset # trans version_link — at ${version_link} # endtrans # endif </h1> <table class="properties"> ## fields = [f for f in fields if not f.skip and f.name not in ('type', 'owner')] # with # set fields = fields|rejectattr('skip') # set fields = fields|selectattr('name', 'not_in', ('type', 'owner')) # set v_reporter = (reporter_link if reporter_link else authorinfo(ticket.reporter)) # set v_owner = ((owner_link if owner_link else authorinfo(ticket.owner)) if ticket.owner) <tr> <th id="h_reporter"${{'class': {'missing': not v_reporter}}|htmlattr}>${ _("Reported by:")}</th> <td class="searchable" headers="h_reporter">${v_reporter}</td> <th id="h_owner"${{'class': {'missing': not v_owner}}|htmlattr}>${ _("Owned by:")}</th> <td headers="h_owner">${v_owner}</td> </tr> # for row in fields|groupattr(2, 'type', 'not_equalto', 'textarea'): <tr> # set fullrow = len(row) == 1 # for field in row: # if loop.first or not fullrow: <th${{'id': 'h_' + field.name if field, 'class': {'missing': not field or ('rendered' in field and not field.rendered) or not ticket[field.name]} }|htmlattr}> # if field: ${_("%(label)s:", label=field.label or field.name)} # endif </th> # endif # if loop.first or not fullrow: <td${{'headers': 'h_' + field.name if field, 'class': 'searchable' if field and field.name in ('cc', 'keywords'), 'colspan': 3 if fullrow }|htmlattr}> # if field: # set value = ticket[field.name] # if 'rendered' in field: ${field.rendered} # elif not value: # elif field.type == 'time': ${pretty_dateinfo(value, field.format, dateonly=field.format != 'relative')} # elif field.type == 'text' and field.format == 'wiki': ${wiki_to_oneliner(context, value)} # elif field.type == 'textarea' and field.format == 'wiki': ${wiki_to_html(context, value, escape_newlines=preserve_newlines)} # elif field.type == 'textarea': # for line in value.splitlines(): # if loop.index > 1: <br /> # endif ${line} # endfor # else: ${value} # endif # endif </td> # endif # endfor </tr> # endfor # endwith </table> <div class="description"> <h2 id="comment:description">${_("Description")} # if description_change: <a href="${href.ticket(ticket.id, action='diff', version=description_change.cnum)}" class="lastmod trac-diff" title="${description_change.date}"> # trans author = authorinfo(description_change.author) (last modified by ${author}) # endtrans </a> # endif </h2> ## Quote the description (only for existing tickets) # if ticket.exists and can_append: <form id="addreply" method="get" action="#comment"> <div${{'class': {'inlinebuttons': true, 'trac-noreplybutton': not ticket.description} }|htmlattr}> <input type="hidden" name="replyto" value="description" /> <input type="submit" name="reply" value="${captioned_button('↳', _('Reply'))}" title="${_('Reply, quoting this description')}" /> </div> </form> # endif <script> // float left elements like inlinebuttons will be presented in // right-to-left order, i.e. those added before #addreply will // be on the right, those added after will be on the left function insertNearReplyToDescription(content, side) { if (side === 'right') { $("#ticket .description #addreply").before(content); } else if (side === 'rightmost') { $("#ticket .description > h2").after(content); } else if (side === 'leftmost') { $("#ticket .description").children(".searchable, br") .before(content); } else { // 'left' $("#ticket .description #addreply").after(content); } } </script> # if ticket.description: <div class="searchable"> ${wiki_to_html(context, ticket.description, escape_newlines=preserve_newlines)} </div> # else: <br style="clear: both" /> # endif </div> # if chrome_info_script: ${chrome_info_script(req)} # endif </div> </div>