aboutsummaryrefslogtreecommitdiffstats
path: root/lib/toaster/toastergui/templates/mrb_section.html
blob: 4b4e3e691bd4dde1ba47ce87949f0094577f0de1 (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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
{% load static %}
{% load projecttags %}
{% load project_url_tag %}
{% load humanize %}
<script src="{% static 'js/mrbsection.js' %}"></script>
<script>
  $(document).ready(function () {
    var ctx = {
      mrbType : "{{mrb_type}}",
    }

    try {
      mrbSectionInit(ctx);
    } catch (e) {
      document.write("Sorry, An error has occurred loading this page");
      console.warn(e);
    }
  });
</script>

{%if mru %}

  {%if mrb_type == 'project' %}
  <h2>
    Latest project builds

    {% if project.is_default %}
    <span class="glyphicon glyphicon-question-sign get-help heading-help" title="" data-original-title="Builds in this project cannot be started from Toaster: they are started from the command line"></span>
    {% endif %}
  </h2>
  {% else %}
    <div class="page-header">
      <h1>
      Latest builds
      </h1>
    </div>
  {% endif %}
  <div id="latest-builds">
  {% for build in mru %}
  <div data-latest-build-result="{{ build.id }}" class="alert build-result {%if build.outcome == build.SUCCEEDED%}alert-success{%elif build.outcome == build.FAILED%}alert-danger{%else%}alert-info{%endif%}">
        {% if mrb_type != 'project' %}
        <div class="row project-name">
          <div class="col-md-12">
            <small>
              <a class="alert-link text-uppercase" href={% project_url build.project %}>{{build.project.name}}</a>
            </small>
          </div>
        </div>
        {% endif %}
        <div class="row">
          <div class="col-md-3">
    {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
              <a href="{%url 'builddashboard' build.pk%}" class="alert-link">
    {% endif %}
            {% if build.target_set.all.count > 0 %}
                <span data-toggle="tooltip"
                  {% if build.target_set.all.count > 1 %}
                    {{build.get_sorted_target_list.0.target}}
                    title="Recipes:
                    {% for target in build.get_sorted_target_list %}
                        {% if target.task %}
                            {{target.target}}:{{target.task}}
                        {% else %}
                            {{target.target}}
                        {% endif %}
                    {% endfor %}"
                  {% endif %}
                >
                {% if build.target_set.all.0.task %}
                    {{build.get_sorted_target_list.0.target}}:{{build.target_set.all.0.task}}
                {% else %}
                    {{build.get_sorted_target_list.0.target}}
                {% endif %}
                {% if build.target_set.all.count > 1 %}
                    (+{{build.target_set.all.count|add:"-1"}})
                {% endif %}
                </span>
             {% endif %}
    {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
                </a>
    {% endif %}
            </div>
    {% if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
            <div class="col-md-2">
                {% if build.completed_on|format_build_date  %}
                    {{ build.completed_on|date:'d/m/y H:i' }}
                {% else %}
                    {{ build.completed_on|date:'H:i' }}
                {% endif %}
            </div>
    {% endif %}
    {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
            <div class="col-md-2">
      {% if  build.errors.count %}
                <span class="glyphicon glyphicon-minus-sign"></span>
                <a href="{%url 'builddashboard' build.pk%}#errors" class="alert-link">{{build.errors.count}} error{{build.errors.count|pluralize}}</a>
      {% endif %}
            </div>
            <div class="col-md-2">
      {% if  build.warnings.count %}
                <span class="glyphicon glyphicon-warning-sign build-warnings"></span>
                <a href="{%url 'builddashboard' build.pk%}#warnings" class="alert-link build-warnings">{{build.warnings.count}} warning{{build.warnings.count|pluralize}}</a>
      {% endif %}
            </div>
            <div class="col-md-3">
              Build time: <a class="alert-link" href="{% url 'buildtime' build.pk %}">{{ build.timespent_seconds|sectohms }}
              </a>
              {% if build.project.is_default %}
                  <span class="pull-right glyphicon glyphicon-question-sign get-help
                  {% if build.outcome == build.SUCCEEDED %}
                      get-help-green
                  {% elif build.outcome == build.FAILED %}
                      get-help-red
                  {% else %}
                      get-help-blue
                  {% endif %}
                  " title="Builds in this project cannot be started from Toaster: they are started from the command line">
                  </span>
              {% else %}
                  <a href="#" class="run-again-btn alert-link
                      {% if build.outcome == build.SUCCEEDED %}
                          success
                      {% elif build.outcome == build.FAILED %}
                          danger
                      {% else %}
                          info
                      {%endif%}
                      pull-right"
                      data-request-url="{% url 'xhr_buildrequest' build.project.pk %}"
                      data-target='{{build.target_set.all|get_tasks|json}}'>
                      <span class="glyphicon glyphicon-repeat"></span>
                      Rebuild
                  </a>
              {% endif %}
            </div>
    {%endif%}

    {%if build.outcome == build.IN_PROGRESS %}
    <div class="col-md-4" style="display:none" id="cancelling-msg-{{build.buildrequest.pk}}">
      Cancelling the build ...
    </div>
    <div class="col-md-4 col-md-offset-1 progress-info">
      <div class="progress" id="build-pc-done-title-{{build.pk}}">
        <div id="build-pc-done-bar-{{build.pk}}" style="width: {{build.completeper}}%;" class="progress-bar"></div>
      </div>
    </div>
    <div class="col-md-4 progress-info"><span id="build-pc-done-{{build.pk}}">{{build.completeper}}</span>% of tasks complete
    {# No build cancel for command line builds project #}
    {% if build.project.is_default %}
    <span class="glyphicon glyphicon-question-sign get-help get-help-blue pull-right" title="Builds in this project cannot be cancelled from Toaster: they can only be cancelled from the command line"></span>
    {% else %}
      <a href="#" class="cancel-build-btn pull-right alert-link"
          data-buildrequest-id={{build.buildrequest.pk}}
          data-request-url="{% url 'xhr_buildrequest' build.project.pk %}" >
        <span class="glyphicon glyphicon-remove-circle"></span>
        Cancel
      </a>
    </div>
    {% endif %}

    {%endif%} {# end if in progress #}

    {% if build.outcome == build.CANCELLED %}
    <div class="col-md-6">
      Build cancelled
    </div>
    <div class="col-md-3">
      <a href="#" class="info pull-right run-again-btn alert-link"
        data-request-url="{% url 'xhr_buildrequest' build.project.pk %}"
        data-target='{{build.target_set.all|get_tasks|json}}'>
        <span class="glyphicon glyphicon-repeat"></span>
        Rebuild
      </a>
    </div>
    {% endif %}
  </div>
</div>
  {% endfor %}
  </div>

{%endif%}