Fixed some layout issues on builders page
authorSybren A. Stüvel <sybren@stuvel.eu>
Thu, 20 Apr 2017 09:17:08 +0000 (11:17 +0200)
committerSybren A. Stüvel <sybren@stuvel.eu>
Thu, 20 Apr 2017 09:17:08 +0000 (11:17 +0200)
The text in the rightmost column had duplications (next build ETA was
mentioned twice), and too many newlines to be nicely readable. Hacked
around that to fix both.

I also made the builders table wider and tweaked some padding & spacing,
so that it's nicer to read and click on.

public_html/assets/sass/main.sass
templates/builders.html [new file with mode: 0644]

index c8c6926..5845f75 100644 (file)
@@ -5,3 +5,16 @@
 
 .table td.success
     background-color: #dff0d8 !important
+
+table.builders
+    width: 100%
+
+table.builders td.LastBuild
+    padding: 0.5ex 2ex
+
+table.builders td.Activity
+    padding-left: 2ex
+
+table.builders td a
+    display: block
+    padding: 0.5ex 2ex
diff --git a/templates/builders.html b/templates/builders.html
new file mode 100644 (file)
index 0000000..a3892ee
--- /dev/null
@@ -0,0 +1,52 @@
+{% extends 'layout.html' %}
+{% import 'forms.html' as forms %}
+{% from "box_macros.html" import box %}
+
+{% block content %}
+<h1>Builders: {{ branches|join(', ')|e }}</h1>
+
+<table class='builders'>
+{% for b in builders %}
+  <tr>
+  <td class="box"><a href="{{ b.link }}">{{ b.name|e }}</a></td>
+  {% if b.build_url %}
+    <td class="LastBuild box {{ b.build_css_class }}">
+        <a href="{{ b.build_url }}">{{ b.build_label }}</a>
+        <br/>{{ b.build_text }}
+    </td>
+  {% else %}
+    <td class="LastBuild box">no build</td>
+  {% endif %}
+  {# Sybren: The following removes the last 'next in', because it's always duplicated,
+   # and removes some newlines (box() adds a <br> after every list item). #}
+  {{ box(text='<br>next in '.join(' '.join(b.current_box['text']).split('next in')[:-1]), class_=b.current_box['class']) }}
+  </tr>
+{% endfor %}
+</table>
+
+{% if num_building > 0 %}
+  {% if authz.advertiseAction('stopAllBuilds', request) or authz.advertiseAction('stopBuild', request) %}
+    <h2>Stop Selected Builds</h2>
+    {{ forms.stop_build(path_to_root+"builders/_selected/stopselected", authz, on_selected=True, builders=builders, label='Selected Builds') }}
+    <h2>Stop All Builds</h2>
+    {{ forms.stop_build(path_to_root+"builders/_all/stopall", authz, on_all=True, label='All Builds') }}
+  {% endif %}
+{% endif %}
+
+{% if authz.advertiseAction('cancelAllPendingBuilds', request) %}
+  <h2>Cancel Selected Pending Builds</h2>
+  {{ forms.cancel_build(path_to_root+"builders/_selected/cancelpendingselected", authz, on_selected=True, builders=builders, label='Selected Pending Builds') }}
+  <h2>Cancel All Pending Builds</h2>
+  {{ forms.cancel_build(path_to_root+"builders/_all/cancelpendingall", authz, on_all=True, label='All Pending Builds') }}
+{% endif %}
+
+{% if num_online > 0 %}
+  {% if authz.advertiseAction('forceAllBuilds', request) or authz.advertiseAction('forceBuild', request) %}
+    <h2>Force Selected Builds</h2>
+    {{ forms.force_build(path_to_root+"builders/_selected/forceselected", authz, request, on_selected=True, builders=builders, force_schedulers=force_schedulers, default_props=default_props) }}
+    <h2>Force All Builds</h2>
+    {{ forms.force_build(path_to_root+"builders/_all/forceall", authz,request, on_all=True, force_schedulers=force_schedulers, default_props=default_props) }}
+  {% endif %}
+{% endif %}
+
+{% endblock %}