{% extends "base.html" %} {% import "repo_tabs.html" as m %} {% block title %}Issue #{{ i.number }} {{ i.title }} · {{ repo.owner }}/{{ repo.name }}{% endblock %} {% block bodyattrs %} data-repo="{{ repo.url }}"{% endblock %} {% block tabs %}{% call m::tabs(repo, "issues") %}{% endblock %} {% block content %}

{{ i.title }} issue #{{ i.number }} {{ i.state }}{% if !i.reason.is_empty() %}: {{ i.reason.replace("_", " ") }}{% endif %} {{ i.author }} opened this · {{ comments.len()|plural("comment", "comments") }}{% if i.locked %} · locked{% endif %}

{% if !closed_by.is_empty() %}

issue #{{ i.number }} {{ i.state }} ← closed by {% for c in closed_by %}proposal #{{ c.number }} {{ c.title }} {{ c.state }}{% if !loop.last %} · {% endif %}{% endfor %}

{% endif %} {% if let Some(n) = notice %}

{{ n }}

{% endif %} {% if let Some(e) = error %}

{{ e }}

{% endif %}
{{ i.author }} {% if can_edit %}
edit
{% endif %}
{% if i.body.is_empty() %}

No description.

{% else %}{{ body_html|safe }}{% endif %}
{% for item in timeline %} {% match item %} {% when crate::web::issues::Item::Comment with (c, html) %}
{{ c.author }} {% if c.edited_ms.is_some() %} edited{% endif %} {% if let Some(u) = shell.user %}{% if *u == c.author || can_triage %}
{% endif %}{% endif %}
{{ html|safe }}
{% when crate::web::issues::Item::Event with (e) %}

{{ e.actor }} {{ e.event }}{% if e.event.ends_with("by change") && !e.detail.is_empty() %}{% let hash = e.detail.split(' ').next().unwrap_or("") %} {{ hash }}{{ e.detail[hash.len()..] }}{% else if !e.detail.is_empty() %} {{ e.detail }}{% endif %} ·

{% endmatch %} {% endfor %} {% if shell.user.is_some() && (!i.locked || can_triage) %}
{% if i.state == "open" %}{% else %}{% endif %}
{% else if i.locked %}

This issue is locked.

{% endif %}
{% endblock %}