summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/templates/builds.html
blob: 459fcb074473ab01f99ceff83e1f3944f5c59eb7 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
{% extends "base.html" %}

{% load static %}
{% load projecttags %}
{% load project_url_tag %}
{% load humanize %}

{% block extraheadcontent %}
<link rel="stylesheet" href="/static/css/jquery-ui.min.css" type='text/css'>
<link rel="stylesheet" href="/static/css/jquery-ui.structure.min.css" type='text/css'>
<link rel="stylesheet" href="/static/css/jquery-ui.theme.min.css" type='text/css'>
<script src="/static/js/jquery-ui.min.js"></script>
<script src="/static/js/filtersnippet.js"></script>
{% endblock %}

{% block pagecontent %}

{% if last_date_from and last_date_to %}
<script>
    // initialize the date range controls
    $(document).ready(function () {
        date_init('started_on','{{last_date_from}}','{{last_date_to}}','{{dateMin_started_on}}','{{dateMax_started_on}}','{{daterange_selected}}');
        date_init('completed_on','{{last_date_from}}','{{last_date_to}}','{{dateMin_completed_on}}','{{dateMax_completed_on}}','{{daterange_selected}}');
    });
</script>
{%endif%} {# last_date_from and last_date_to #}

<div class="row-fluid">

  {% include "mrb_section.html" %}

  <div class="page-header top-air">
     <h1>
      {% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
          {{objects.paginator.count}} build{{objects.paginator.count|pluralize}} found
      {%elif request.GET.filter and objects.paginator.count == 0 or request.GET.search and objects.paginator.count == 0 %}
          No builds found
      {%else%}
          All builds
      {%endif%}
     </h1>
  </div>

  {% if objects.paginator.count == 0 %}
    <div class="row-fluid">
      <div class="alert">
        <form class="no-results input-append" id="searchform">
            <input id="search" name="search" class="input-xxlarge" type="text" value="
            {% if request.GET.search %}
                {{request.GET.search}}
        {% endif %}"/>
            {% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
            <button class="btn" type="submit" value="Search">Search</button>
            <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all builds</button>
        </form>
      </div>
    </div>
  {% else %}
  {% include "basetable_top.html" %}
        <!-- Table data rows; the order needs to match the order of "tablecols" definitions; and the <td class value needs to match the tablecols clclass value for show/hide buttons to work -->
        {% for build in objects %}
        <tr class="data" data-table-build-result="{{ build.id }}">
            <td class="outcome">
                <a href="{% url "builddashboard" build.id %}">{%if build.outcome == build.SUCCEEDED%}<i class="icon-ok-sign success"></i>{%elif build.outcome == build.FAILED%}<i class="icon-minus-sign error"></i>{%else%}{%endif%}</a> &nbsp;
            </td>
            <td class="target">
                {% for t in build.target_set.all %}
                    <a href="{% url "builddashboard" build.id %}">
                        {% if t.task %}
                            {{t.target}}:{{t.task}}
                        {% else %}
                            {{t.target}}
                        {% endif %}
                    </a> <br />
                {% endfor %}
            </td>
            <td class="machine"><a href="{% url "builddashboard" build.id %}">{{build.machine}}</a></td>
            <td class="started_on"><a href="{% url "builddashboard" build.id %}">{{build.started_on|date:"d/m/y H:i"}}</a></td>
            <td class="completed_on"><a href="{% url "builddashboard" build.id %}">{{build.completed_on|date:"d/m/y H:i"}}</a></td>
            <td class="failed_tasks error">
                {% query build.task_build outcome=4 order__gt=0 as exectask%}
                    {% if exectask.count == 1 %}
                        <a href="{% url "task" build.id exectask.0.id %}">{{exectask.0.recipe.name}}.{{exectask.0.task_name}}</a>
                        <a href="{% url 'build_artifact' build.id "tasklogfile" exectask.0.id %}">
                            <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
                        </a>
                    {% elif exectask.count > 1%}
                        <a href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}} task{{exectask.count|pluralize}}</a>
                    {%endif%}
            </td>
            <td class="errors.count errors_no">
                {% if  build.errors.count %}
                    <a class="errors.count error" href="{% url "builddashboard" build.id %}#errors">{{build.errors.count}} error{{build.errors.count|pluralize}}</a>
                {%endif%}
            </td>
            <td class="warnings.count warnings_no">{% if  build.warnings.count %}<a class="warnings.count warning" href="{% url "builddashboard" build.id %}#warnings">{{build.warnings.count}} warning{{build.warnings.count|pluralize}}</a>{%endif%}</td>
            <td class="time"><a href="{% url "buildtime" build.id %}">{{build.timespent_seconds|sectohms}}</a></td>
            <td class="output">
              {% if build.outcome == build.SUCCEEDED %}
              <a href="{%url "builddashboard" build.id%}#images">{{fstypes|get_dict_value:build.id}}</a>
              {% endif %}
            </td>
            <td class="project-name">
                <a href="{% project_url build.project %}">{{build.project.name}}</a>
                {% if build.project.is_default %}
                    <i class="icon-question-sign get-help hover-help" title="" data-original-title="This project shows information about the builds you start from the command line while Toaster is running" style="visibility: hidden;"></i>
                {% endif %}
            </td>
        </tr>

        {% endfor %}


  {% include "basetable_bottom.html" %}
  {% endif %} {# objects.paginator.count #}
</div><!-- end row-fluid-->

{% endblock %}