Variety of fixes all over the place
[blender-buildbot.git] / templates / forms.html
1
2 {% macro cancel_pending_build(cancel_url, authz, short=False, id='all') %}
3   <form method="post" name="cancel" action="{{ cancel_url }}" class='form-horizontal cancelbuild'
4              {{ 'style="display:inline"' if short else '' }}>
5     {% if not short %}
6       {% if id == 'all' %}
7         <p>To cancel all builds, push the 'Cancel' button</p>
8         <p>To cancel individual builds, click the 'Cancel' buttons above.</p>
9       {% else %}
10         <p>To cancel this build, push the 'Cancel' button</p>
11       {% endif %}
12     {% endif %}
13     <input type="hidden" name="id" value="{{ id }}" />
14     <input class="btn btn-default btn-success btn-squishy" type="submit" value="Cancel" />
15   </form>
16 {% endmacro %}
17
18 {% macro stop_change_builds(stopchange_url, changenum, authz) %}
19   {% if not changenum  %}
20     <form method="post" action="{{ stopchange_url }}" class='form-horizontal stopchange'>
21       {% if changenum %}
22         <p>To cancel all builds for this change, push the 'Cancel' button</p>
23       {% else %}
24         <p>To cancel builds for this builder for a given change, fill out the
25           following field and push the 'Cancel' button</p>
26       {% endif %}
27
28       {% if changenum %}
29         <input type="hidden" name="change" value="{{ changenum }}" />
30       {% else %}
31         <div class="row">
32           <span class="label">Change #:</span>
33           <input type="text" name="change"/>
34         </div>
35       {% endif %}
36       <input class="btn btn-default btn-success btn-squishy" type="submit" value="Cancel" />
37     </form>
38   {% endif %}
39 {% endmacro %}
40
41 {% macro stop_build(stop_url, authz, on_all=False, on_selected=False, builders=[], short=False, label="Build") %}
42   {% if not short %}
43     <form method="post" name="stop_build" action="{{ stop_url }}" class='form-horizontal stopbuild'
44                {{ 'style="display:inline"' if short else '' }}>
45       {% if not short %}
46         {% if on_all %}
47           <p>To stop all builds, fill out the following field and
48           push the <i>Stop {{ label }}</i> button</p>
49         {% elif on_selected %}
50           <p>To stop selected builds, select the builders, fill out the
51           following field and push the <i>Stop {{ label }}</i> button</p>
52           <table>
53           {% for b in builders %}
54             <tr>
55               <td align="center"><input type="checkbox" name="selected" value="{{ b.name }}"></td>
56               <td class="box"><a href="{{ b.link }}">{{ b.name|e }}</a></td>
57             </tr>
58           {% endfor %}
59           </table>
60
61         {% else %}
62           <p>To stop this build, fill out the following field and
63           push the <i>Stop {{ label }}</i> button</p>
64         {% endif %}
65       {% endif %}
66
67       {% if not short %}
68         <div class="row">
69           <span class="label">Reason:</span>
70           <input type="text" name="comments"/>
71         </div>
72       {% endif %}
73
74       <input class="btn btn-default btn-success btn-squishy" type="submit" value="Stop {{ label }}" />
75     </form>
76   {% endif %}
77 {% endmacro %}
78
79 {% macro cancel_build(cancel_url, authz, on_all=False, on_selected=False, builders=[], short=False, label="Build") %}
80   {% if not short %}
81     <form method="post" name="cancel_build" action="{{ cancel_url }}" class='form-horizontal cancelbuild'
82                {{ 'style="display:inline"' if short else '' }}>
83       {% if not short %}
84         {% if on_all %}
85           <p>To cancel all pending builds, fill out the following field and
86           push the <i>Cancel {{ label }}</i> button</p>
87         {% elif on_selected %}
88           <p>To cancel selected pending builds, select the builders, fill out the
89           following field and push the <i>Cancel {{ label }}</i> button</p>
90           <table>
91           {% for b in builders %}
92             <tr>
93               <td align="center"><input type="checkbox" name="selected" value="{{ b.name }}"></td>
94               <td class="box"><a href="{{ b.link }}">{{ b.name|e }}</a></td>
95             </tr>
96           {% endfor %}
97           </table>
98
99         {% else %}
100           <p>To cancel this pending build, fill out the following field and
101           push the <i>Cancel {{ label }}</i> button</p>
102         {% endif %}
103       {% endif %}
104
105       {% if not short %}
106         <div class="row">
107           <span class="label">Reason:</span>
108           <input type="text" name="comments"/>
109         </div>
110       {% endif %}
111
112       <input class="btn btn-default btn-success btn-squishy" type="submit" value="Cancel {{ label }}" />
113     </form>
114   {% endif %}
115 {% endmacro %}
116
117 {# TODO(sergey): Move hardcoded span with inline-block into a CSS class. #}
118
119 {% macro force_build_scheduler_parameter(f, authz, request, sch, default_props) %}
120     {% if f and not f.hide and (f.fullName != "username" or not authz.authenticated(request)) %}
121     <div class="{% for subtype in f.type %} force-{{subtype}}{%endfor%}"{% if f.name %} id="force-{{sch.name}}-{{f.fullName}}"{% endif %}><p>
122     {% if 'text' in f.type or 'int' in f.type %}
123        <span style="display: inline-block; width: 20%;">{{f.label}}</span>
124        <input type='text' size='{{f.size}}' name='{{f.fullName}}' value='{{default_props[sch.name+"."+f.fullName]}}' />
125     {% elif 'bool' in f.type%}
126        <input type='checkbox' name='checkbox' value='{{f.fullName}}' {{default_props[sch.name+"."+f.fullName]}} />
127        <span class="label">{{f.label}}</span>
128     {% elif 'textarea' in f.type %}
129        <span class="label">{{f.label}}</span>
130        <textarea name='{{f.fullName}}' rows={{f.rows}} cols={{f.cols}}>{{default_props[sch.name+"."+f.fullName]}}</textarea>
131     {% elif 'list' in f.type %}
132        <span style="display: inline-block; width: 20%;">{{f.label}}</span>
133        <span class="select">
134        <select name='{{f.fullName}}' {{ f.multiple and "multiple" or ""}}>
135          {% for c in default_props[sch.name+"."+f.fullName+".choices"] %}
136            <option {{(c in default_props[sch.name+"."+f.fullName]) and "selected" or ""}}>{{c}}</option>
137          {% endfor %}
138        </select>
139        </span>
140     {% elif 'nested' in f.type %}
141       {% if f.label %}<span>{{f.label}}</span>{% endif %}
142       {% for subfield in f.fields %}
143         {{ force_build_scheduler_parameter(subfield, authz, request, sch, default_props) }}
144       {% endfor %}
145     {% endif %}
146     </p></div>
147   {% endif %}
148 {% endmacro %}
149
150 {% macro force_build_one_scheduler(force_url, authz, request, on_all, on_selected, builders, sch, default_props) %}
151  <form method="post" name="force_build" action="{{ force_url }}" class="command_forcebuild">
152
153   <h3>{{ sch.name|e }}</h3>
154   {% if on_all %}
155      <p>To force a build on <strong>all Builders</strong>, fill out the following fields
156           and push the 'Force Build' button</p>
157   {% elif on_selected %}
158      <p>To force a build on <strong>certain Builders</strong>, select the
159         builders, fill out the following fields and push the
160         'Force Build' button</p>
161
162      <table>
163      {% for b in builders %}
164      {% if b.name in sch.builderNames %}
165        <tr>
166          <td align="center"><input type="checkbox" name="selected" value="{{ b.name }}"></td>
167          <td class="box"><a href="{{ b.link }}">{{ b.name|e }}</a></td>
168        </tr>
169        {% endif %}
170      {% endfor %}
171      </table>
172
173   {% else %}
174      <p>To force a build, fill out the following fields and
175         push the 'Force Build' button</p>
176   {% endif %}
177   <input type='hidden' name='forcescheduler' value='{{sch.name}}' />
178   {% for f in sch.all_fields %}
179     {{ force_build_scheduler_parameter(f, authz, request, sch, default_props) }}
180   {% endfor %}
181   <hr>
182   <p><input class="btn btn-default btn-success btn-squishy btn-block" type="submit" value="{{ sch.buttonName }}" /></p>
183  </form>
184 {% endmacro %}
185 {% macro force_build(force_url, authz, request, on_all=False, on_selected=False, builders=[], force_schedulers={},default_props={}) %}
186   <div class="box">
187   {% for name, sch in force_schedulers.items() | sort %}
188     {{ force_build_one_scheduler(force_url, authz, request, on_all, on_selected, builders, sch, default_props=default_props) }}
189   {% endfor %}
190   </div>
191 {% endmacro %}
192
193 {% macro graceful_shutdown(shutdown_url, authz) %}
194   <form method="post" action="{{ shutdown_url }}" class='form-horizontal graceful_shutdown'>
195
196   <p>To cause this slave to shut down gracefully when it is idle,
197     push the 'Graceful Shutdown' button</p>
198   <input class="btn btn-default btn-success btn-squishy" type="submit" value="Graceful Shutdown" />
199  </form>
200 {% endmacro %}
201
202 {% macro pause_slave(pause_url, authz, paused) %}
203   <form method="post" action="{{ pause_url }}" class='form-horizontal pause_slave'>
204
205   {% if paused %}
206     <p>To cause this slave to start running new builds again,
207       push the 'Unpause Slave' button</p>
208   {% else %}
209     <p>To cause this slave to stop running new builds,
210       push the 'Pause Slave' button</p>
211   {% endif %}
212
213   {% if paused %}
214       <input class="btn btn-default btn-success btn-squishy" type="submit" value="Unpause Slave" />
215   {% else %}
216       <input class="btn btn-default btn-success btn-squishy" type="submit" value="Pause Slave" />
217   {% endif %}
218  </form>
219 {% endmacro %}
220
221 {% macro clean_shutdown(shutdown_url, authz) %}
222   <form method="post" action="{{ shutdown_url }}" class='form-horizontal clean_shutdown'>
223   <p>To cause this master to shut down cleanly, push the 'Clean Shutdown' button.</p>
224   <p>No other builds will be started on this master, and the master will
225   stop once all current builds are finished.</p>
226
227   <input class="btn btn-default btn-success btn-squishy" type="submit" value="Clean Shutdown" />
228  </form>
229 {% endmacro %}
230
231 {% macro cancel_clean_shutdown(cancel_shutdown_url, authz) %}
232   <form method="post" action="{{ cancel_shutdown_url }}" class='form-horizontal cancel_clean_shutdown'>
233   <p>To cancel a previously initiated shutdown, push the 'Cancel Shutdown' button.</p>
234
235   <input class="btn btn-default btn-success btn-squishy" type="submit" value="Cancel Shutdown" />
236  </form>
237 {% endmacro %}
238
239 {% macro ping_builder(ping_url, authz) %}
240   <form method="post" action="{{ ping_url }}" class='form-horizontal ping_builder'>
241     <p>To ping the buildslave(s), push the 'Ping' button</p>
242     <input class="btn btn-default btn-success btn-squishy" type="submit" value="Ping Builder" />
243   </form>
244 {% endmacro %}
245
246 {% macro rebuild_build(rebuild_url, authz, ss) %}
247  <form method="post" action="{{ rebuild_url }}" class="form-horizontal rebuild">
248 <div class="box">
249   {% if on_all %}
250      <p>To force a build on <strong>all Builders</strong>, fill out the following fields
251           and push the 'Force Build' button</p>
252   {% else %}
253      <p>To force a build, fill out the following fields and
254         push the 'Rebuild' button</p>
255   {% endif %}
256    <p>
257      <span style="display: inline-block; width: 20%;">Reason for re-running build:</span>
258      <input type='text' name='comments' />
259    </p>
260    <p>
261      <span style="display: inline-block; width: 20%;">Rebuild using:</span>
262      <select name="useSourcestamp">
263         <option value='exact' selected>Exact same revisions</option>
264         <option value='updated'>Same sourcestamps (ignoring 'got revision')</option>
265      </select>
266    </p>
267    <hr>
268    <p><input class="btn btn-default btn-success btn-squishy btn-block" type="submit" value="Rebuild" /></p>
269 </div>
270  </form>
271 {% endmacro %}
272
273 {% macro show_users(users_url, authz) %}
274   <form method="post" action="{{ users_url }}" class='form-horizontal show_users'>
275     <p>To show users, press the 'Show Users' button</p>
276
277     <input class="btn btn-default btn-success btn-squishy" type="submit" value="Show Users" />
278   </form>
279 {% endmacro %}