summaryrefslogtreecommitdiffstats
path: root/templates/packages/signoffs.html
blob: 26fd88dd748c7c613a02d6e9d1506794dc55e266 (plain)
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
89
90
91
92
93
94
95
{% extends "base.html" %}
{% load package_extras %}

{% block title %}Arch Linux - Package Signoffs{% endblock %}
{% block navbarclass %}anb-packages{% endblock %}

{% block content %}
<div id="dev-signoffs" class="box">

    <h2>Package Signoffs</h2>

    <p>{{ signoff_groups|length }} total signoff group{{ signoff_groups|pluralize }} found.
    A "signoff group" consists of packages grouped by pkgbase, architecture, and repository.</p>

    <div class="box filter-criteria">
        <h3>Filter Displayed Signoffs</h3>
        <form id="signoffs_filter" method="post" action=".">
        <fieldset>
            <legend>Select filter criteria</legend>
            {% for arch in arches %}
            <div><label for="id_arch_{{ arch.name }}" title="Architecture {{ arch.name }}">Arch {{ arch.name }}</label>
                <input type="checkbox" name="arch_{{ arch.name }}" id="id_arch_{{ arch.name }}" class="arch_filter" value="{{ arch.name }}" checked="checked"/></div>
            {% endfor %}
            {% for repo_name in repo_names %}
            <div><label for="id_repo_{{ repo_name|lower }}" title="Target Repository {{ repo_name }}">[{{ repo_name|lower }}]</label>
                <input type="checkbox" name="repo_{{ repo_name|lower }}" id="id_repo_{{ repo_name|lower }}" class="repo_filter" value="{{ repo_name|lower }}" checked="checked"/></div>
            {% endfor %}
            <div><label for="id_pending" title="Packages with not enough signoffs">Only Pending Approval</label>
                <input type="checkbox" name="pending" id="id_pending" value="pending"/></div>
            <div><label>&nbsp;</label><input title="Reset search criteria" type="button" id="criteria_reset" value="Reset"/></div>
            <div class="clear"></div>
            <div id="filter-info"><span id="filter-count">{{ signoff_groups|length }}</span> signoff groups displayed.</div>
        </fieldset>
        </form>
    </div>

    <table id="signoffs" class="results">
        <thead>
            <tr>
                <th>Package Base/Version</th>
                <th>Arch</th>
                <th>Target Repo</th>
                <th>Packager</th>
                <th># of Packages</th>
                <th>Last Updated</th>
                <th>Approved</th>
                <th>Signoffs</th>
                <th>Notes</th>
            </tr>
        </thead>
        <tbody id="tbody_signoffs">
            {% for group in signoff_groups %}
            <tr class="{% cycle 'odd' 'even' %} {{ group.arch.name }} {{ group.target_repo|lower }}">
                <td>{% pkg_details_link group.package %} {{ group.version }}</td>
                <td>{{ group.arch.name }}</td>
                <td>{{ group.target_repo }}</td>
                <td>{{ group.packager|default:"Unknown" }}</td>
                <td>{{ group.packages|length }}</td>
                <td class="epoch-{{ group.last_update|date:'U' }}">{{ group.last_update|date }}</td>
                {% if group.specification.known_bad %}
                <td class="approval signoff-bad">Bad</td>
                {% else %}
                {% if not group.specification.enabled %}
                <td class="approval signoff-disabled">Disabled</td>
                {% else %}
                <td class="approval signoff-{{ group.approved|yesno }}">{{ group.approved|yesno|capfirst }}</td>
                {% endif %}
                {% endif %}
                <td>{% include "packages/signoff_cell.html" %}</td>
                <td class="wrap">{% if not group.default_spec %}{% with group.specification as spec %}
                    {% if spec.required != 2 %}Required signoffs: {{ spec.required }}<br/>{% endif %}
                    {% if not spec.enabled %}Signoffs are not currently enabled<br/>{% endif %}
                    {% if spec.known_bad %}Package is known to be bad<br/>{% endif %}
                    {{ spec.comments|default:""|linebreaksbr }}
                {% endwith %}{% endif %}</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>
</div>
{% load cdn %}{% jquery %}
<script type="text/javascript" src="{{ STATIC_URL }}jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}archweb.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $('a.signoff-link').click(signoff_package);
    $(".results").tablesorter({widgets: ['zebra'], sortList: [[0,0]],
        headers: { 5: { sorter: 'epochdate' }, 7: { sorter: false }, 8: {sorter: false } } });
    $('#signoffs_filter input').change(filter_signoffs);
    $('#criteria_reset').click(filter_signoffs_reset);
    // fire function on page load to ensure the current form selections take effect
    filter_signoffs();
});
</script>
{% endblock %}