Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: appengine/monorail/templates/tracker/field-detail-page.ezt

Issue 1868553004: Open Source Monorail (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 [define title]Field [field_def.field_name][end]
2 [define category_css]css/ph_detail.css[end]
3 [include "../framework/master-header.ezt" "showtabs"]
4
5 <a href="/p/[projectname]/adminLabels">&lsaquo; Back to field list</a><br><br>
6
7
8 <h4>Custom field</h4>
9
10 <form action="detail.do" method="POST">
11 <input type="hidden" name="token" value="[form_token]">
12 <input type="hidden" name="field" value="[field_def.field_name]">
13
14 <table cellspacing="8" class="rowmajor vt">
15 <tr>
16 <th width="1%">Name:</th>
17 <td>
18 [if-any uneditable_name]
19 <input type="hidden" name="name" value="[field_def.field_name]">
20 [field_def.field_name]
21 [else][if-any allow_edit]
22 <input name="name" value="[field_def.field_name]" size="30" class="acob" >
23 [else]
24 [field_def.field_name]
25 [end][end]
26 </td>
27 </tr>
28
29 <tr>
30 <th>Description:</th>
31 <td>
32 [if-any allow_edit]
33 <textarea name="docstring" rows="4" cols="75">[field_def.docstring]</tex tarea>
34 [else]
35 [field_def.docstring]
36 [end]
37 </td>
38 </tr>
39
40 <tr>
41 <th>Type:</th>
42 [# TODO(jrobbins): make field types editable someday.]
43 <td>[field_def.type_name]</td>
44 </tr>
45
46 [is field_def.field_name "Type"][else]
47 <tr>
48 <th>Applicable:</th>
49 <td>When issue type is:
50 [if-any allow_edit]
51 <select id="applicable_type" name="applicable_type">
52 <option value="" [is initial_applicable_type ""]selected="selected"[en d]>Anything</option>
53 <option disabled="disabled">----</option>
54 [for well_known_issue_types]
55 <option value="[well_known_issue_types]" [is initial_applicable_type well_known_issue_types]selected="selected"[end]>[well_known_issue_types]</optio n>
56 [end]
57 </select>
58 [else]
59 [initial_applicable_type]
60 [end]
61 [# TODO(jrobbins): editable applicable_predicate.]
62 </td>
63 </tr>
64 [end]
65
66 <tr>
67 <th>Required:</th>
68 <td>
69 [if-any allow_edit]
70 <input type="checkbox" id="is_required" name="is_required" class="acob"
71 [if-any field_def.is_required_bool]checked="checked"[end]>
72 <label for="is_required">Required when applicable</label>
73 [else]
74 [if-any field_def.is_required_bool]Yes[else]No[end]
75 [end]
76 </td>
77 </tr>
78
79 <tr>
80 <th>Multivalued:</th>
81 <td>
82 [if-any allow_edit]
83 <input type="checkbox" name="is_multivalued" class="acob"
84 [if-any field_def.is_multivalued_bool]checked="checked"[end]>
85 [else]
86 [if-any field_def.is_multivalued_bool]Yes[else]No[end]
87 [end]
88 </td>
89 </tr>
90
91 [# TODO(jrobbins): dynamically display validation info as field type is edited .]
92 [is field_def.type_name "ENUM_TYPE"]
93 <tr>
94 <th>Choices:</th>
95 <td>
96 [if-any allow_edit]
97 <textarea name="choices" rows="10" cols="75" style="tab-size:18">
98 [for field_def.choices][field_def.choices.name_padded][if-any field_def.choices. docstring]&#09;= [end][field_def.choices.docstring]
99 [end]
100 </textarea>
101 [else]
102 <table cellspacing="4" cellpadding="0" style="padding: 2px; border:2px solid #eee">
103 [for field_def.choices]
104 <tr>
105 <td>[field_def.choices.name]</td>
106 <td>[if-any field_def.choices.docstring]= [end][field_def.choice s.docstring]</td>
107 </tr>
108 [end]
109 </table>
110 [end]
111 </td>
112 </tr>
113 [end]
114
115 [is field_def.type_name "INT_TYPE"]
116 <tr id="int_row">
117 <th>Validation:</th>
118 <td>
119 Min value:
120 <input type="number" name="min_value" style="text-align:right; width: 4e m"
121 value="[field_def.min_value]" class="acob"
122 [if-any allow_edit][else]disabled="disabled"[end]>
123 Max value:
124 <input type="number" name="max_value" style="text-align:right; width: 4e m"
125 value="[field_def.max_value]" class="acob"
126 [if-any allow_edit][else]disabled="disabled"[end]><br>
127 </td>
128 </tr>
129 [end]
130
131 [is field_def.type_name "STR_TYPE"]
132 <tr id="str_row">
133 <th>Validation:</th>
134 <td>
135 Regex: <input type="text" name="regex" size="30" value="[field_def.regex ]" class="acob"><br>
136 </td>
137 </tr>
138 [end]
139
140 [is field_def.type_name "USER_TYPE"]
141 <tr id="user_row">
142 <th>Validation:</th>
143 <td>
144 <input type="checkbox" name="needs_member" id="needs_member" class="acob "
145 [if-any allow_edit][else]disabled="disabled"[end]
146 [if-any field_def.needs_member_bool]checked="checked"[end]>
147 <label for="needs_member">User must be a project member</label><br>
148 <span id="needs_perm_span" style="margin-left:1em">Required permission:
149 <input type="text" name="needs_perm" id="needs_perm" size="20"
150 value="[field_def.needs_perm]" autocomplete="off" class="acob"
151 [if-any allow_edit][else]disabled="disabled"[end]></span><br>
152 </td>
153 </tr>
154 <tr id="user_row2">
155 <th>Permissions:</th>
156 <td>
157 The users named in this field is granted this permission on this issue:< br>
158 [# TODO(jrobbins): one-click way to specify View vs. EditIssue vs. any c ustom perm.]
159 <input type="text" name="grants_perm" id="grants_perm" class="acob"
160 size="20" value="[field_def.grants_perm]" autocomplete="off"
161 [if-any allow_edit][else]disabled[end]>
162 </td>
163 </tr>
164 <tr id="user_row3">
165 <th>Notification:</th>
166 <td>
167 The users named in this field will be notified via email whenever:<br>
168 <select name="notify_on" [if-any allow_edit][else]disabled[end]
169 class="acrob">
170 <option value="never" [is field_def.notify_on "0"]selected="selected"[ end]
171 >No notifications</option>
172 <option value="any_comment" [is field_def.notify_on "1"]selected="sele cted"[end]
173 >Any change or comment is added</option>
174 </select>
175 </td>
176 </tr>
177 [end]
178
179 <th>Admins:</th>
180 <td>
181 [if-any allow_edit]
182 <input id="member_admins" name="admin_names" size="75" value="[initial_a dmins]"
183 autocomplete="off" class="acob">
184 <span class="fielderror" style="margin-left:1em">
185 [if-any errors.field_admins][errors.field_admins][end]
186 </span>
187 [else]
188 [for field_def.admins]
189 <div>[include "../framework/user-link.ezt" field_def.admins]</div>
190 [end]
191 [end]
192 </td>
193 </tr>
194
195
196 <tr>
197 <td></td>
198 <td>
199 [if-any allow_edit]
200 <input type="submit" name="submit" value="Submit changes">
201 <input type="submit" name="deletefield" value="Delete Field"
202 style="margin-left:2em" id="deletefield">
203 [end]
204 </td>
205 </tr>
206
207 </table>
208 </form>
209
210
211 [include "../framework/footer-script.ezt"]
212
213 <script type="text/javascript" nonce="[nonce]">
214 runOnLoad(function() {
215 _fetchOptions('[projectname]', 'issueOptions',
216 CS_env.token, [project.cached_content_timestamp]);
217
218 _onload();
219
220 var needs_perm_span = document.getElementById('needs_perm_span');
221 var needs_perm = document.getElementById('needs_perm');
222 var needs_member = document.getElementById('needs_member');
223 function enableNeedsPerm(enable) {
224 needs_perm_span.style.color = enable ? 'inherit' : '#999';
225 needs_perm.disabled = enable ? '' : 'disabled';
226 if (!enable) needs_perm.value = '';
227 }
228 [if-any allow_edit]
229 if (needs_perm)
230 enableNeedsPerm(needs_member.checked);
231 [end]
232
233 if ($("deletefield")) {
234 $("deletefield").addEventListener("click", function(event) {
235 var msg = ("Are you sure you want to delete [field_def.field_name]?\n" +
236 "This operation cannot be undone. " +
237 "[is field_def.type_name "ENUM_TYPE"]\nEnum values will be re tained on issues as labels.[end]");
238 if (!confirm(msg))
239 event.preventDefault();
240 });
241 }
242
243 var acobElements = document.getElementsByClassName("acob");
244 for (var i = 0; i < acobElements.length; ++i) {
245 var el = acobElements[[]i];
246 el.addEventListener("focus", function(event) {
247 _acrob(null);
248 _acof(event);
249 });
250 }
251
252 if ($("needs_member")) {
253 $("needs_member").addEventListener("change", function(event) {
254 enableNeedsPerm($("needs_member").checked);
255 });
256 }
257 });
258 </script>
259
260 [include "../framework/master-footer.ezt"]
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698