Edgewall Software

source: trunk/bitten/templates/bitten_admin_configs.html

Last change on this file was 681, checked in by osimons, 15 years ago

0.6dev: Reworked UI for adding Target Platform. Like elsewhere in Trac web admin, 'New Target Platform' is now a fieldset to the right of the listing. This fixes the issue discussed on #333.

  • Property svn:executable set to *
File size: 9.1 KB
Line 
1<!DOCTYPE html
2    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml"
5      xmlns:xi="http://www.w3.org/2001/XInclude"
6      xmlns:py="http://genshi.edgewall.org/">
7  <xi:include href="admin.html" />
8  <head>
9    <title>Manage Build Configurations</title>
10    <script type="text/javascript">
11      jQuery(document).ready(function($) {
12        $("input[name='path']").suggest("${href.diff()}");
13      });
14    </script>
15  </head>
16  <body>
17    <h2>Manage Build Configurations</h2>
18    <py:choose><form py:when="config" class="mod"
19         id="modconfig" method="post" action="">
20      <table class="form" summary=""><tr>
21        <td class="name"><label>Name:<br />
22          <input type="text" name="name"
23                 value="$config.name" />
24        </label></td>
25        <td class="label"><label>Label (for display):<br />
26          <input type="text" name="label" size="32"
27                 value="$config.label" />
28        </label></td>
29      </tr><tr>
30        <td colspan="2"><fieldset class="iefix">
31          <label for="description">
32            Description (you may use
33            <a tabindex="42"
34               href="${href.wiki('WikiFormatting')}">
35              WikiFormatting</a> here):
36          </label>
37          <p>
38            <textarea id="description" name="description"
39                      class="wikitext" rows="3" cols="65">$config.description</textarea>
40          </p>
41          <script type="text/javascript" src="${chrome.htdocs_location}js/wikitoolbar.js"></script>
42        </fieldset></td>
43      </tr><tr>
44        <td colspan="2"><fieldset class="iefix">
45          <label for="recipe">Recipe:</label>
46          <p>
47            <textarea id="recipe" name="recipe" rows="8" cols="78">$config.recipe</textarea>
48          </p>
49        </fieldset></td>
50      </tr></table>
51      <fieldset id="repos">
52        <legend>Repository Mapping</legend>
53        <table class="form" summary=""><tr>
54          <th><label for="path">Path:</label></th>
55          <td colspan="3"><input id="path" type="text" name="path"
56              size="48" value="$config.path" /></td>
57        </tr><tr>
58          <th><label for="min_rev">
59            First revision:
60          </label></th>
61          <td><input id="min_rev" type="text" name="min_rev" size="8"
62                     value="$config.min_rev" /></td>
63          <th><label for="max_rev">
64            Last revision:
65          </label></th>
66          <td><input id="max_rev" type="text" name="max_rev" size="8"
67                     value="$config.max_rev" /></td>
68        </tr></table>
69      </fieldset>
70      <div class="buttons">
71        <input type="submit" name="cancel"
72               value="Cancel" />
73        <input type="submit" name="save" value="Save" />
74      </div>
75      <div class="platforms">
76        <h3>Target Platforms</h3>
77        <fieldset id="newplatform">
78          <legend>New Target Platform</legend>
79          <div class="field"><label>Name:
80            <input type="text" name="platform_name" value="" />
81            </label></div>
82          <div class="buttons">
83            <input type="submit" name="new" value="Add platform" />
84          </div>
85        </fieldset>
86        <table class="listing" id="platformlist">
87          <thead>
88            <tr><th class="sel">&nbsp;</th>
89            <th>Name</th><th>Rules</th></tr>
90          </thead>
91          <tbody>
92            <tr py:if="not config.platforms">
93              <td colspan="3"><em>(No Platforms)</em></td>
94            </tr>
95            <tr py:for="platform in config.platforms">
96              <td class="sel">
97                <input type="checkbox" name="sel"
98                       value="$platform.id" />
99              </td>
100              <td class="name"><a href="$platform.href">
101                $platform.name
102              </a></td>
103              <td class="rules">
104                <ul py:if="len(platform.rules)">
105                  <li py:for="rule in platform.rules">
106                    <code>
107                      <strong>$rule.property</strong> ~=
108                      $rule.pattern
109                    </code>
110                  </li>
111                </ul>
112              </td>
113            </tr>
114          </tbody>
115        </table>
116        <div class="buttons">
117          <input type="submit" name="remove"
118                 value="Delete selected platforms" />
119        </div>
120      </div>
121    </form>
122
123    <form py:when="platform" class="mod" id="modplatform"
124          method="post" action="">
125      <div class="field"><label>Target Platform:
126        <input type="text" name="name"
127               value="$platform.name" />
128      </label></div>
129      <fieldset>
130        <legend>Rules</legend>
131        <table><thead><tr>
132          <th>Property name</th><th>Match pattern</th>
133        </tr></thead><tbody>
134          <tr py:for="idx, rule in enumerate(platform.rules)">
135            <td><input type="text" name="property_${idx}"
136                       value="$rule.property" /></td>
137            <td><input type="text" name="pattern_${idx}" 
138                       value="$rule.pattern" /></td>
139            <td><input type="submit"
140                       name="add_rule_${idx}" value="+" />
141                <input type="submit" name="rm_rule_${idx}"
142                       value="-" />
143            </td>
144          </tr>
145        </tbody></table>
146      </fieldset>
147      <p class="help">
148        The property name can be any of a set of standard
149        default properties, or custom properties defined
150        in slave configuration files. The default
151        properties are:
152      </p>
153      <dl class="help">
154        <dt><code>os</code>:</dt>
155        <dd>The name of the operating system (for example
156            "Darwin")</dd>
157        <dt><code>family</code>:</dt>
158        <dd>The type of operating system (for example
159            "posix" or "nt")</dd>
160        <dt><code>version</code>:</dt>
161        <dd>The operating system version (for example
162            "8.10.1)</dd>
163        <dt><code>machine</code>:</dt>
164        <dd>The hardware architecture (for example "i386"</dd>
165        <dt><code>processor</code>:</dt>
166        <dd>The CPU model (for example "i386", this may be
167            empty or the same as for <code>machine</code>
168        </dd>
169        <dt><code>name</code>:</dt>
170        <dd>The name of the slave</dd>
171        <dt><code>ipnr</code>:</dt>
172        <dd>The IP address of the slave</dd>
173      </dl>
174      <p class="help">
175        The match pattern is a regular expression.
176      </p>
177      <div class="buttons">
178        <form method="get" action=""><div>
179          <input type="hidden"
180                 name="${platform.exists and 'edit'
181                         or 'new'}" value="" />
182          <input type="hidden" name="platform"
183                 value="$platform.id" />
184          <input type="submit" name="cancel"
185                 value="Cancel" /><py:choose>
186          <input py:when="platform.exists" type="submit"
187                 name="save" value="Save" />
188          <input py:otherwise="" type="submit"
189                 name="add" value="Add" /></py:choose>
190        </div></form>
191      </div>
192    </form>
193
194    <py:otherwise><form class="addnew" id="addcomp"
195                        method="post" action=""><fieldset>
196      <legend>Add Configuration:</legend>
197      <table summary=""><tr>
198        <td class="name"><div 
199            class="field"><label>Name:<br />
200          <input type="text" name="name" size="12" />
201        </label></div></td>
202        <td class="label"><div
203            class="field"><label>Label:<br />
204          <input type="text" name="label" size="22" />
205        </label></div></td>
206      </tr><tr>
207        <td class="path" colspan="2"><div class="field">
208          <label>Path:<br />
209            <input type="text" name="path" size="32" />
210          </label>
211        </div></td>
212      </tr></table>
213      <div class="buttons">
214        <input type="submit" name="add" value="Add" />
215      </div>
216    </fieldset></form>
217
218    <form method="post" action="">
219      <table class="listing" id="configlist">
220        <thead>
221          <tr><th class="sel">&nbsp;</th><th>Name</th>
222          <th>Path</th><th>Active</th></tr>
223        </thead><tbody>
224        <tr py:if="not configs">
225          <td colspan="4"><em>(No Build Configurations)</em></td>
226        </tr>
227        <tr py:for="config in configs">
228          <td class="sel">
229            <input type="checkbox" name="sel"
230                   value="$config.name" />
231          </td>
232          <td class="name">
233            <a href="$config.href">$config.label</a>
234          </td>
235          <td class="path"><code>$config.path</code></td>
236          <td class="active">
237            <input py:if="config.recipe"
238                   type="checkbox" name="active"
239                   value="$config.name"
240                   checked="${config.active and 'checked'
241                              or None}" />
242            ${config.recipe == False and 'No recipe' or ''}
243          </td>
244        </tr>
245      </tbody></table>
246      <div class="buttons">
247        <input type="submit" name="remove"
248               value="Remove selected items" />
249        <input type="submit" name="apply"
250               value="Apply changes" />
251      </div>
252    </form></py:otherwise></py:choose>
253  </body>
254</html>
Note: See TracBrowser for help on using the repository browser.