| 1 |
{% extends "base.html" %} |
| 2 |
{% import "repo_tabs.html" as m %} |
| 3 |
{% block title %}Changes on {{ h.target.label|short }} · {{ repo.owner }}/{{ repo.name }}{% endblock %} |
| 4 |
{% block bodyattrs %} data-repo="{{ repo.url }}" data-ref="{{ h.target.label }}"{% endblock %} |
| 5 |
{% block tabs %}{% call m::tabs(repo, "changes") %}{% endblock %} |
| 6 |
{% block content %} |
| 7 |
<div class="head"><h1>Changes <small>{% if h.target.kind == crate::repos::view::RefKind::Change %}up to # {{ h.target.label|short }}{% else %}on {{ h.target.label }}{% endif %}{% if let Some(p) = h.path %} touching {{ p }}{% endif %} · {{ h.total }}</small></h1></div> |
| 8 |
{% if h.target.heads.len() > 1 %}<div class="strip warn">{{ h.target.label }} has {{ h.target.heads.len() }} heads. The graph shows their union; heads are marked.</div>{% endif %} |
| 9 |
{% if h.entries.is_empty() %}<p class="empty">No changes.</p>{% else %} |
| 10 |
<div class="hist" style="--lanes: {{ lanes }}"> |
| 11 |
{% for c in h.entries %} |
| 12 |
{% let row = rows[loop.index0] %} |
| 13 |
<div class="hrow"> |
| 14 |
<svg class="lanes" width="{{ lanes * 18 + 4 }}" height="100%" viewBox="0 0 {{ lanes * 18 + 4 }} 60" preserveAspectRatio="none" aria-hidden="true"> |
| 15 |
{% for l in row.through %}<line x1="{{ l * 18 + 10 }}" y1="0" x2="{{ l * 18 + 10 }}" y2="60" class="lane"/>{% endfor %} |
| 16 |
{% for e in row.edges %}<path d="M{{ e.0 * 18 + 10 }} 30 L{{ e.0 * 18 + 10 }} 44 L{{ e.1 * 18 + 10 }} 60" class="lane"/>{% endfor %} |
| 17 |
{% if !c.deps.is_empty() && row.edges.is_empty() %}<line x1="{{ row.lane * 18 + 10 }}" y1="30" x2="{{ row.lane * 18 + 10 }}" y2="60" class="lane dashed"/>{% endif %} |
| 18 |
<line x1="{{ row.lane * 18 + 10 }}" y1="0" x2="{{ row.lane * 18 + 10 }}" y2="30" class="lane{% if c.head %} none{% endif %}"/> |
| 19 |
<circle cx="{{ row.lane * 18 + 10 }}" cy="30" r="4" class="node{% if c.head %} head{% endif %}{% if c.resolution %} res{% endif %}"/> |
| 20 |
</svg> |
| 21 |
{% call m::change_row(repo, c) %} |
| 22 |
</div> |
| 23 |
{% endfor %} |
| 24 |
</div> |
| 25 |
<div class="pager"> |
| 26 |
{% if h.offset > 0 %}<a class="go" href="?offset={{ h.offset.saturating_sub(50) }}{% if let Some(p) = h.path %}&path={{ p }}{% endif %}">newer</a>{% endif %} |
| 27 |
{% if h.has_more %}<a class="go" href="?offset={{ h.offset + 50 }}{% if let Some(p) = h.path %}&path={{ p }}{% endif %}">older</a>{% endif %} |
| 28 |
</div> |
| 29 |
{% endif %} |
| 30 |
{% endblock %} |