blob: cca9ba7c296d40754949ef49b5d0fe2a550eb52b [file] [log] [blame]
Scott Bakerc1e681e2014-11-03 09:43:23 -08001<!-- Error and Success templates -->
2
Scott Baker8560fd12014-11-24 23:26:12 -08003<script type="text/template" id="xos-error-response">
4 <h5>Error</h5>
5 <table>
6 <tr><td>error:</td><td><%= error %></td></tr>
7 <tr><td>check:</td><td><%= specific_error %></td></tr>
8 </table>
9 <h5>Details:</h5>
10 <table>
11 <tbody>
12 <% _.each(reasons, function(element, index) { %>
13 <tr><td><%= index %></td><td><%= element %></td></tr>
14 <% }); %>
15 </tbody>
16 </table>
17</script>
18
Scott Bakerf8641732014-12-01 17:06:31 -080019<script type="text/template" id="xos-error-rawresponse">
20 <h5>Error</h5>
21 <pre>The server returned:
22"<%= responseText %>"</pre>
23</script>
24
Scott Baker28a65442014-11-03 23:54:59 -080025<script type="text/template" id="xos-error-template">
Scott Bakerc1e681e2014-11-03 09:43:23 -080026 <button id="close-error-box">Close Error Message</button>
27 <h3>An error has occurred.</h3>
28 <table class="test-error-table">
29 <tr><td>Code:</td><td><%= status %></td></tr>
30 <tr><td>Message:</td><td><%= statusText %></td></tr>
31 </table>
32</script>
33
Scott Baker28a65442014-11-03 23:54:59 -080034<script type="text/template" id="xos-success-template">
Scott Bakerc1e681e2014-11-03 09:43:23 -080035 <button id="close-success-box">Close Success Message</button>
36 <h3>Success!</h3>
37 <table class="test-success-table">
38 <tr><td>Code:</td><td><%= status %></td></tr>
39 <tr><td>Message:</td><td><%= statusText %></td></tr>
40 </table>
41</script>
42
Scott Baker100b0a32014-11-04 09:34:17 -080043<script type="text/template" id="xos-navbutton-old">
Scott Baker28a65442014-11-03 23:54:59 -080044 <button class="btn btn-default btn-xosnav" onclick="<%= router %>.navigate('<%= routeUrl %>', {trigger: true})"><%= name %></button><br>
45</script>
46
Scott Baker17390d22014-11-05 21:11:50 -080047<script type="text/template" id="xos-status-template">
Scott Baker1c5d4ee2014-11-14 16:13:43 -080048 <div class="xos-status xos-<%= statusclass %>"><%= what %>: <%= statusText %> (<%= status %>)</div>
Scott Baker17390d22014-11-05 21:11:50 -080049</script>
50
Scott Baker76d7b622014-11-04 23:20:48 -080051<script type="text/template" id="xos-tabs-template">
52 <ul class="xos-nav-list">
53 <% _.each(tabs, function(tab) { %>
54 <li class="xos-nav-item" id="xos-nav-<%= tab["region"] %>"><%= tab["name"] %></li>
55 <% }); %>
56 </ul>
57</script>
58
59<script type="text/template" id="xos-title-list">
Scott Baker95a57b82014-11-18 17:02:07 -080060 <h3><img src="/static/img/brokencircle.gif" height=16 width=16 id="xos-list-title-spinner"> <%= title %></h3>
Scott Baker76d7b622014-11-04 23:20:48 -080061</script>
62
63<script type="text/template" id="xos-title-detail">
64 <h3><%= title %></h3>
65</script>
66
Scott Baker100b0a32014-11-04 09:34:17 -080067<script type="text/template" id="xos-navbutton">
68 <li>
69 <a href="<%= routeUrl %>">
70 <i class="<%= iconClass %>"></i>
71 <%= name %>
72 </a>
Scott Baker50282372014-11-04 15:41:47 -080073 </li>
Scott Baker100b0a32014-11-04 09:34:17 -080074</script>
75
Scott Baker09ed3e02014-11-07 13:01:43 -080076<script type="text/template" id="xos-inline-detail-buttons-template">
77 <tr>
78 <td colspan=2><button class="btn js-submit btn-xos-detail btn-xos-save-leave">Save</button>
79 <button class="btn js-submit btn-xos-detail btn-xos-save-continue">Save and Continue Editing</button>
80 <button class="btn js-submit btn-xos-detail btn-xos-save-another">Save and Add Another</button>
Scott Baker95a57b82014-11-18 17:02:07 -080081 <button class="btn js-submit btn-xos-detail btn-xos-delete">Delete</button>
Scott Baker09ed3e02014-11-07 13:01:43 -080082 </td>
83 </tr>
84</script>
85
Scott Bakera5150072014-12-12 14:26:21 -080086<script type="text/template" id="xos-backend-status-icon-template">
Scott Bakera7e813a2015-01-06 15:06:12 -080087 <% if (! ("enacted" in arguments) ) { %>
Scott Bakerf14089d2014-12-23 17:17:27 -080088 <!-- enacted is undefined; this must be a new object -->
89 <% } else if ((enacted) && (enacted >= updated)) { %>
Scott Bakera5150072014-12-12 14:26:21 -080090 <span style="min-width:16px;"><img src="/static/admin/img/icon_success.gif"></span>
91 <% } else { %>
92 <% if ((backend_status == "Provisioning in progress") || (!backend_status)) { %>
93 <span style="min-width:16px;" title="<%= _.escape(backend_status) %>"><img src="/static/admin/img/icon_clock.gif"></span>
94 <% } else { %>
95 <span style="min-width:16px;" title="<%= _.escape(backend_status) %>"><img src="/static/admin/img/icon_error.gif"></span>
96 <% } %>
97 <% } %>
98</script>
99
Scott Bakereb253d52014-12-12 14:46:24 -0800100<script type="text/template" id="xos-backend-status-text-template">
101 <%= xosBackendStatusIconTemplate.apply(this,arguments) %>
Scott Bakerf14089d2014-12-23 17:17:27 -0800102 <% if (model.enacted === undefined) { %>
103 <!-- enacted is undefined; this must be a new object -->
104 <% } else if ((enacted) && (enacted >= updated)) { %>
Scott Bakereb253d52014-12-12 14:46:24 -0800105 Successfully enacted
106 <% } else { %>
107 <%= _.escape(backend_status) %>
108 <% } %>
109</script>
110
Scott Baker2c974852014-12-04 17:23:27 -0800111<script type="text/template" id="xos-list-header-template">
112 <button class="btn js-submit btn-xos-list btn-xos-add">Add</button>
113 <button class="btn js-submit btn-xos-list btn-xos-refresh">Refresh</button>
114</script>
115
116<script type="text/template" id="xos-list-footer-template">
Scott Bakera322dba2014-12-08 23:54:18 -0800117 <% if (addChildHash) { %>
118 <a href="<%= addChildHash %>">Add...</a>
119 <% } %>
Scott Bakerc9d0dcb2014-11-07 16:40:30 -0800120</script>
121
Scott Bakerb1e63332014-12-02 10:49:04 -0800122<script type="text/template" id="xos-delete-button-template">
Scott Baker6694f8f2014-12-02 17:59:02 -0800123 <a href="#delete<%= firstCharUpper(modelName) %>/<%= id %>">delete</a>
Scott Bakerb1e63332014-12-02 10:49:04 -0800124</script>
125
126<script type="text/template" id="xos-detail-link-template">
127 <a href="#<%= collectionName %>/<%= id %>"><%= text %></a>
128</script>
129
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800130<script type="text/template" id="xos-add-template">
131 <h3 class="xos-detail-title">Add Object: <%= modelName %></h3>
132 <form>
133 <table>
Scott Bakereb253d52014-12-12 14:46:24 -0800134 <% args = arguments; %>
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800135 <% _.each(addFields, function(fieldName) { %>
Scott Bakerc06c0c82014-12-07 22:31:18 -0800136 <tr><td><%= fieldNameToHumanReadable(fieldName) %>:</td>
Scott Baker31621222014-12-09 16:59:08 -0800137 <% readOnly = $.inArray(fieldName, model.readOnlyFields)>=0 ? " readonly" : ""; %>
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800138 <% if (fieldName in foreignFields) { %>
Scott Bakera322dba2014-12-08 23:54:18 -0800139 <td><%= idToSelect(fieldName, model.attributes[fieldName], foreignFields[fieldName], "humanReadableName", readOnly) %></td>
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800140 <% } else if (inputType[fieldName] == "checkbox") { %>
Scott Bakera322dba2014-12-08 23:54:18 -0800141 <td><input type="checkbox" name="<%= fieldName %>" <% if (model.attributes[fieldName]) print("checked"); %><%= readOnly %>></td>
Scott Bakereb253d52014-12-12 14:46:24 -0800142 <% } else if (fieldName=="backend_status") { %>
143 <td><%= xosBackendStatusTextTemplate.apply(this, args) %></td>
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800144 <% } else { %>
Scott Bakera322dba2014-12-08 23:54:18 -0800145 <td><input type="text" name="<%= fieldName %>" value="<%= model.attributes[fieldName] %>"<%= readOnly %>></td>
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800146 <% } %>
147 </tr>
148 <% }); %>
149 <%= xosInlineDetailButtonsTemplate() %>
150 </table>
151 </form>
152</script>
153
154<script type="text/template" id="xos-detail-template">
Scott Bakera322dba2014-12-08 23:54:18 -0800155 <h3 class="xos-detail-title">Edit Object: <%= modelName %></h3>
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800156 <form>
Scott Baker010ce3f2015-01-20 12:24:16 -0800157 <table class="xos-detail-table">
Scott Bakereb253d52014-12-12 14:46:24 -0800158 <% args = arguments; %>
159 <% _.each(detailFields, function(fieldName) { %>
Scott Baker840862d2015-01-14 17:07:30 -0800160 <tr><td class="xos-label-cell"><%= fieldName in fieldDisplayNames ? fieldDisplayNames[fieldName] : fieldNameToHumanReadable(fieldName) %>:</td>
Scott Bakerc8bd4042015-01-11 13:44:30 -0800161 <% readOnly = $.inArray(fieldName, model.readOnlyFields)>=0 ? " readonly" : ""; %>
162 <% if (fieldName in choices) { %>
163 <td><%= choicesToSelect(fieldName, model.attributes[fieldName], choices[fieldName]) %></td>
164 <% } else if (fieldName in foreignFields) { %>
Scott Baker31621222014-12-09 16:59:08 -0800165 <td><%= idToSelect(fieldName, model.attributes[fieldName], foreignFields[fieldName], "humanReadableName", readOnly) %></td>
Scott Bakerc8bd4042015-01-11 13:44:30 -0800166 <% } else if (inputType[fieldName] == "spinner") { %>
167 <!-- note: I never finished working on this spinner stuff! -->
Scott Bakerfcf655e2015-01-12 19:45:40 -0800168 <td><%= xosSpinnerTemplate({id: "spinner_" + fieldName, fieldName: fieldName, value: model.attributes[fieldName]}) %></td>
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800169 <% } else if (inputType[fieldName] == "checkbox") { %>
Scott Baker31621222014-12-09 16:59:08 -0800170 <td><input type="checkbox" name="<%= fieldName %>" <% if (model.attributes[fieldName]) print("checked"); %><%= readOnly %>></td>
Scott Bakercde19e62014-12-16 22:49:42 -0800171 <% } else if (inputType[fieldName] == "picker") { %>
172 <% lookupFunc = makeIdToName(model.m2mFields[fieldName], "humanReadableName"); %>
Scott Baker6a7a17c2014-12-17 16:29:59 -0800173 <td><%= xosPickerTemplate({pickedItems: model.attributes[fieldName], unpickedItems: model.getChoices(fieldName,true), id: "picker_" + fieldName, fieldName: fieldName, detailView: detailView, lookupFunc: lookupFunc}) %></td>
Scott Bakereb253d52014-12-12 14:46:24 -0800174 <% } else if (fieldName=="backend_status") { %>
175 <td><%= xosBackendStatusTextTemplate.apply(this, args) %></td>
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800176 <% } else { %>
Scott Baker31621222014-12-09 16:59:08 -0800177 <td><input type="text" name="<%= fieldName %>" value="<%= model.attributes[fieldName] %>"<%= readOnly %>></td>
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800178 <% } %>
Scott Baker010ce3f2015-01-20 12:24:16 -0800179 <td class="xos-help-cell"><%= helpText[fieldName] %></td>
Scott Bakerfa2c4b52014-12-07 22:27:09 -0800180 </tr>
181 <% }); %>
182 <%= xosInlineDetailButtonsTemplate() %>
183 </table>
184 </form>
185</script>
186
Scott Baker31621222014-12-09 16:59:08 -0800187<script type="text/template" id="xos-list-template">
Scott Baker76d7b622014-11-04 23:20:48 -0800188 <h3 class="xos-list-title"><%= title %></h3>
Scott Baker2c974852014-12-04 17:23:27 -0800189 <%= xosListHeaderTemplate() %>
Scott Baker7e0e6b92014-10-30 16:10:16 -0700190 <table class="test-table">
Scott Baker31621222014-12-09 16:59:08 -0800191 <thead>
192 <tr>
193 <% _.each(listFields, function(fieldName) { %>
194 <th><%= fieldNameToHumanReadable(fieldName) %></th>
195 <% }); %>
196 <th>delete</th>
Scott Baker7e0e6b92014-10-30 16:10:16 -0700197 </tr></thead>
198 <tbody></tbody>
199 </table>
Scott Baker1d651ce2014-12-08 11:13:43 -0800200 <%= xosListFooterTemplate({addChildHash: addChildHash}) %>
Scott Baker7e0e6b92014-10-30 16:10:16 -0700201</script>
202
Scott Baker31621222014-12-09 16:59:08 -0800203<script type="text/template" id="xos-listitem-template">
204 <% _.each(listFields, function(fieldName) { %>
205 <% if ($.inArray(fieldName, model.detailLinkFields)>=0) { %>
206 <td><%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: model.attributes[fieldName]}) %></td>
207 <% } else if (fieldName in foreignFields) { %>
208 <td><%= idToName(model.attributes[fieldName], foreignFields[fieldName], "humanReadableName") %></td>
209 <% } else { %>
210 <td><%= model.attributes[fieldName] %></td>
211 <% } %>
212 <% }); %>
Scott Baker3f9fa002014-12-02 18:04:50 -0800213 <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td>
Scott Baker84e01fe2014-10-31 00:18:24 -0700214</script>
215
Scott Baker30092042014-12-09 18:38:13 -0800216<script type="text/template" id="xos-savebuttons-template">
217 <div class="box save-box">
218 <button class="btn btn-high btn-info btn-xos-contentButtonPanel btn-xos-save-leave">Save</button>
219 <button class="btn btn-high btn-xos-contentButtonPanel btn-xos-save-continue">Save and continue editing</button>
220 <button class="btn btn-high btn-xos-contentButtonPanel btn-xos-save-another">Save and add another</button>
221 <button class="btn btn-danger btn-xos-contentButtonPanel btn-xos-delete">Delete</button>
222 </div>
223</script>
224
225<script type="text/template" id="xos-listbuttons-template">
226 <div class="box save-box">
227 <button class="btn btn-high btn-primary btn-xos-contentButtonPanel btn-xos-refresh">Refresh</button>
228 <button class="btn btn-high btn-success btn-xos-contentButtonPanel btn-xos-add">Add</button>
229 </div>
230</script>
231
Scott Baker77253a92015-01-14 15:44:47 -0800232<script type="text/template" id="xos-datatable-spinner-template">
Scott Bakerc8bd4042015-01-11 13:44:30 -0800233 <!-- arguments: value, id, collectionName, fieldName -->
Scott Baker77253a92015-01-14 15:44:47 -0800234 <%= value %> <img style="cursor: pointer;" src="/static/img/plus_circle.png" onclick='<%= app.varName %>.adjustCollectionField("<%= collectionName %>", <%= id %>, "<%= fieldName %>", 1)'>
235 <img style="cursor: pointer;" src="/static/img/minus_circle.png" onclick='<%= app.varName %>.adjustCollectionField("<%= collectionName %>", <%= id %>, "<%= fieldName %>", -1)'>
Scott Bakerc8bd4042015-01-11 13:44:30 -0800236</script>
237
Scott Baker77253a92015-01-14 15:44:47 -0800238<script type="text/template" id="xos-datatable-spinner-template-old">
Scott Bakered6aa702015-01-12 12:56:25 -0800239 <!-- arguments: value, id, collectionName, fieldName -->
240 <%= value %> <a href="javascript:undefined" onclick='<%= app.varName %>.adjustCollectionField("<%= collectionName %>", <%= id %>, "<%= fieldName %>", 1)'> more </a>
241 <a href="javascript:undefined" onclick='<%= app.varName %>.adjustCollectionField("<%= collectionName %>", <%= id %>, "<%= fieldName %>", -1)'> less </a>
242</script>
243
Scott Bakerc8bd4042015-01-11 13:44:30 -0800244<script type="text/template" id="xos-spinner-template">
245 <!-- arguments: fieldName, id, value -->
246 <input name="<%= fieldName %>" class="xos-spinner" id="<%= id %>">
247 <% detailView.viewInitializers.push( function() { init_spinner("#" + id, value); } ); %>
248</script>
Scott Bakercde19e62014-12-16 22:49:42 -0800249
250<script type="text/template" id="xos-picker-template">
Scott Bakerc8bd4042015-01-11 13:44:30 -0800251 <!-- arguments: unpickedItems, pickedItems, fieldName, id -->
Scott Bakercde19e62014-12-16 22:49:42 -0800252 <div id="<%= id %>">
253 <div class="picker_row">
254 <div class="picker_column">
255 <div>Available</div>
256 <select name="pickerfrom" class="select-picker-from" multiple size="5">
257 <% _.each(unpickedItems, function(item) { %>
258 <option value="<%= item %>"><%= lookupFunc? lookupFunc(item) : item %></option>
259 <% });%>
260 </select>
261 </div>
262 <div class="picker_column">
263 <br>
264 <div class="btn btn-success btn-picker-add">Add &raquo;</div><br><br>
265 <div class="btn btn-success btn-picker-remove">&laquo; Remove</div>
266 </div>
267 <div class="picker_column">
268 <div>Selected</div>
Scott Baker6a7a17c2014-12-17 16:29:59 -0800269 <select name=<%= fieldName %> class="select-picker-to syphonall" multiple size="5">
Scott Bakercde19e62014-12-16 22:49:42 -0800270 <% _.each(pickedItems, function(item) { %>
271 <option value="<%= item %>"><%= lookupFunc ? lookupFunc(item) : item %></option>
272 <% }); %>
273 </select>
274 </div>
275 <div class="picker_column">
276 <br>
277 <div class="btn btn-success btn-picker-up">Up</div><br><br>
278 <div class="btn btn-success btn-picker-down">Down</div>
279 </div>
280 </div>
281 </div>
282 <% detailView.viewInitializers.push( function() { init_picker("#" + id); } ); %>
283</script>
284
Scott Bakerc8bd4042015-01-11 13:44:30 -0800285<script type="text/template" id="xos-sliceselector-option">
286 <%= name %>
287</script>
288
289<script type="text/template" id="xos-sliceselector-select">
Scott Baker21ebb542015-01-13 16:24:05 -0800290 <% if (caption) { %>
Scott Baker010ce3f2015-01-20 12:24:16 -0800291 <table class="xos-detail-table"><tr><td class="xos-label-cell"><%= caption %>: </td><td><select></select></td></tr></table>
Scott Baker21ebb542015-01-13 16:24:05 -0800292 <% } else { %>
293 <select></select>
294 <% } %>
Scott Bakerc8bd4042015-01-11 13:44:30 -0800295</script>
296
Scott Baker09ed3e02014-11-07 13:01:43 -0800297<script>
298xosInlineDetailButtonsTemplate = _.template($("#xos-inline-detail-buttons-template").html());
Scott Baker2c974852014-12-04 17:23:27 -0800299xosListHeaderTemplate = _.template($("#xos-list-header-template").html());
300xosListFooterTemplate = _.template($("#xos-list-footer-template").html());
Scott Bakerb1e63332014-12-02 10:49:04 -0800301xosDeleteButtonTemplate = _.template($("#xos-delete-button-template").html());
302xosDetailLinkTemplate = _.template($("#xos-detail-link-template").html());
Scott Bakera5150072014-12-12 14:26:21 -0800303xosBackendStatusIconTemplate = _.template($("#xos-backend-status-icon-template").html());
Scott Bakereb253d52014-12-12 14:46:24 -0800304xosBackendStatusTextTemplate = _.template($("#xos-backend-status-text-template").html());
Scott Bakercde19e62014-12-16 22:49:42 -0800305xosPickerTemplate = _.template($("#xos-picker-template").html());
Scott Bakerc8bd4042015-01-11 13:44:30 -0800306xosSpinnerTemplate = _.template($("#xos-spinner-template").html());
307xosDataTableSpinnerTemplate = _.template($("#xos-datatable-spinner-template").html());
Scott Baker09ed3e02014-11-07 13:01:43 -0800308</script>
Scott Bakera322dba2014-12-08 23:54:18 -0800309