1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
{% extends "base.html" %}
{% from "macros.html" import link, page_header, section %}
{% block head %}
<script defer src="/static/vendor/showdown-2.1.0.min.js"></script>
{% endblock %}
{% block content %}
{% call page_header(project, "Project") %}
<a class="btn btn-primary" href="{{ project_url_enc }}/search">Search</a>
{% endcall %}
{% if descr %}
<p class="text-secondary">{{ descr }}</p>
{% endif %}
{% macro overview_card(title, wide=false) %}
<div class="{{ 'col-12' if wide else 'col-md-6 col-xl-4' }}">
<div class="card">
<div class="card-header"><h3 class="card-title mb-0">{{ title }}</h3></div>
<div class="card-body">{{ caller() }}</div>
</div>
</div>
{% endmacro %}
<div class="row row-deck row-cards">
{% call overview_card("Owner") %}{{ owner }}{% endcall %}
{% call overview_card("Ref") %}
<div class="d-flex flex-wrap align-items-center gap-2">
<label class="visually-hidden" for="summary-ref-select">Ref</label>
<select id="summary-ref-select" class="form-select form-select-sm" style="width: auto; min-width: 10rem;">
<option value="HEAD" selected>HEAD</option>
</select>
<div class="btn-list">
<a class="btn btn-sm btn-outline-secondary" id="summary-ref-commit-link" href="{{ ref.commit_href }}">{{ ref.display }}</a>
<a class="btn btn-sm btn-outline-secondary" id="summary-ref-browse-link" href="{{ ref.browse_href }}">browse</a>
<a class="btn btn-sm btn-outline-secondary" id="summary-ref-log-link" href="{{ ref.log_href }}">log</a>
<a class="btn btn-sm btn-outline-secondary" id="summary-ref-shortlog-link" href="{{ ref.shortlog_href }}">shortlog</a>
</div>
</div>
{% endcall %}
{% call overview_card("Branches") %}{{ link(project_url ~ "?a=heads", "view branches") }}{% endcall %}
{% call overview_card("Merge requests", wide=true) %}
{% if open_merge_requests %}
<div class="list-group list-group-flush mb-3">
{% for mr in open_merge_requests %}
<a class="list-group-item" href="{{ mr.href }}">
<div class="d-flex flex-wrap align-items-center justify-content-between gap-2">
<span>{{ mr.title }}</span>
<span class="badge bg-{{ mr.badge }}-lt">{{ mr.status_label }}</span>
</div>
{% if mr.theirs or mr.ours %}
<div class="text-secondary small">{{ mr.theirs or "head" }} → {{ mr.ours }}</div>
{% endif %}
</a>
{% endfor %}
</div>
{% elif merge_request %}
<p class="text-secondary">No open merge requests.</p>
{% endif %}
{% if merge_request %}
{% with project=merge_request.project, branches=merge_request.branches, theirs_default_ref=merge_request.theirs_default_ref, ours_default_ref=merge_request.ours_default_ref %}
{% include "merge_request_summary_cell.html" %}
{% endwith %}
{% elif not open_merge_requests %}
<span class="badge bg-secondary-lt">No branches</span>
{% endif %}
{% endcall %}
{% call overview_card("Tags") %}{{ link(project_url ~ "?a=tags", "view tags") }}{% endcall %}
{% call overview_card("Remotes") %}{{ link(project_url ~ "?a=remotes", "view remotes") }}{% endcall %}
{% call overview_card("Board") %}{{ link(board.href, board.text, style=board.style) }}{% endcall %}
{% call overview_card("Blog") %}{{ link(blog.href, blog.text, style=blog.style) }}{% endcall %}
{% call overview_card("Search") %}{{ link(project_url_enc ~ "/search", "search files") }}{% endcall %}
{% call overview_card("Hooks") %}
{% with mode=hooks.mode, project_enc=hooks.project_enc, installed=hooks.installed, available=hooks.available %}
{% include "hooks_summary_cell.html" %}
{% endwith %}
{% endcall %}
{% for row in extra_rows %}
{% call overview_card(row[0]) %}{% for cell in row[1:] %}{{ cell }}{% endfor %}{% endcall %}
{% endfor %}
</div>
{% call section("Files") %}
<div id="summary-tree-container" class="summary-tree-table">{{ ref.tree_html }}</div>
<p class="px-3 pb-3 mb-0">{{ link(ref.browse_href, "Browse full tree", id="summary-tree-browse-link") }}</p>
{% endcall %}
<div id="summary-readme-container" data-project="{{ project }}">{{ ref.readme_html }}</div>
{% endblock %}
{% block scripts %}
<script type="module" src="/static/summary-ref-switcher.js"></script>
<script src="/static/hook-install.js"></script>
{% endblock %}