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