Scott Baker | c1e681e | 2014-11-03 09:43:23 -0800 | [diff] [blame] | 1 | <!-- Error and Success templates --> |
| 2 | |
Scott Baker | 8560fd1 | 2014-11-24 23:26:12 -0800 | [diff] [blame] | 3 | <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 Baker | f864173 | 2014-12-01 17:06:31 -0800 | [diff] [blame] | 19 | <script type="text/template" id="xos-error-rawresponse"> |
| 20 | <h5>Error</h5> |
| 21 | <pre>The server returned: |
| 22 | "<%= responseText %>"</pre> |
| 23 | </script> |
| 24 | |
Scott Baker | 28a6544 | 2014-11-03 23:54:59 -0800 | [diff] [blame] | 25 | <script type="text/template" id="xos-error-template"> |
Scott Baker | c1e681e | 2014-11-03 09:43:23 -0800 | [diff] [blame] | 26 | <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 Baker | 28a6544 | 2014-11-03 23:54:59 -0800 | [diff] [blame] | 34 | <script type="text/template" id="xos-success-template"> |
Scott Baker | c1e681e | 2014-11-03 09:43:23 -0800 | [diff] [blame] | 35 | <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 Baker | 100b0a3 | 2014-11-04 09:34:17 -0800 | [diff] [blame] | 43 | <script type="text/template" id="xos-navbutton-old"> |
Scott Baker | 28a6544 | 2014-11-03 23:54:59 -0800 | [diff] [blame] | 44 | <button class="btn btn-default btn-xosnav" onclick="<%= router %>.navigate('<%= routeUrl %>', {trigger: true})"><%= name %></button><br> |
| 45 | </script> |
| 46 | |
Scott Baker | 17390d2 | 2014-11-05 21:11:50 -0800 | [diff] [blame] | 47 | <script type="text/template" id="xos-status-template"> |
Scott Baker | 1c5d4ee | 2014-11-14 16:13:43 -0800 | [diff] [blame] | 48 | <div class="xos-status xos-<%= statusclass %>"><%= what %>: <%= statusText %> (<%= status %>)</div> |
Scott Baker | 17390d2 | 2014-11-05 21:11:50 -0800 | [diff] [blame] | 49 | </script> |
| 50 | |
Scott Baker | 76d7b62 | 2014-11-04 23:20:48 -0800 | [diff] [blame] | 51 | <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 Baker | 95a57b8 | 2014-11-18 17:02:07 -0800 | [diff] [blame] | 60 | <h3><img src="/static/img/brokencircle.gif" height=16 width=16 id="xos-list-title-spinner"> <%= title %></h3> |
Scott Baker | 76d7b62 | 2014-11-04 23:20:48 -0800 | [diff] [blame] | 61 | </script> |
| 62 | |
| 63 | <script type="text/template" id="xos-title-detail"> |
| 64 | <h3><%= title %></h3> |
| 65 | </script> |
| 66 | |
Scott Baker | 100b0a3 | 2014-11-04 09:34:17 -0800 | [diff] [blame] | 67 | <script type="text/template" id="xos-navbutton"> |
| 68 | <li> |
| 69 | <a href="<%= routeUrl %>"> |
| 70 | <i class="<%= iconClass %>"></i> |
| 71 | <%= name %> |
| 72 | </a> |
Scott Baker | 5028237 | 2014-11-04 15:41:47 -0800 | [diff] [blame] | 73 | </li> |
Scott Baker | 100b0a3 | 2014-11-04 09:34:17 -0800 | [diff] [blame] | 74 | </script> |
| 75 | |
Scott Baker | 09ed3e0 | 2014-11-07 13:01:43 -0800 | [diff] [blame] | 76 | <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 Baker | 95a57b8 | 2014-11-18 17:02:07 -0800 | [diff] [blame] | 81 | <button class="btn js-submit btn-xos-detail btn-xos-delete">Delete</button> |
Scott Baker | 09ed3e0 | 2014-11-07 13:01:43 -0800 | [diff] [blame] | 82 | </td> |
| 83 | </tr> |
| 84 | </script> |
| 85 | |
Scott Baker | a515007 | 2014-12-12 14:26:21 -0800 | [diff] [blame] | 86 | <script type="text/template" id="xos-backend-status-icon-template"> |
Scott Baker | f14089d | 2014-12-23 17:17:27 -0800 | [diff] [blame] | 87 | <% if (model.enacted === undefined) { %> |
| 88 | <!-- enacted is undefined; this must be a new object --> |
| 89 | <% } else if ((enacted) && (enacted >= updated)) { %> |
Scott Baker | a515007 | 2014-12-12 14:26:21 -0800 | [diff] [blame] | 90 | <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 Baker | eb253d5 | 2014-12-12 14:46:24 -0800 | [diff] [blame] | 100 | <script type="text/template" id="xos-backend-status-text-template"> |
| 101 | <%= xosBackendStatusIconTemplate.apply(this,arguments) %> |
Scott Baker | f14089d | 2014-12-23 17:17:27 -0800 | [diff] [blame] | 102 | <% if (model.enacted === undefined) { %> |
| 103 | <!-- enacted is undefined; this must be a new object --> |
| 104 | <% } else if ((enacted) && (enacted >= updated)) { %> |
Scott Baker | eb253d5 | 2014-12-12 14:46:24 -0800 | [diff] [blame] | 105 | Successfully enacted |
| 106 | <% } else { %> |
| 107 | <%= _.escape(backend_status) %> |
| 108 | <% } %> |
| 109 | </script> |
| 110 | |
Scott Baker | 2c97485 | 2014-12-04 17:23:27 -0800 | [diff] [blame] | 111 | <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 Baker | a322dba | 2014-12-08 23:54:18 -0800 | [diff] [blame] | 117 | <% if (addChildHash) { %> |
| 118 | <a href="<%= addChildHash %>">Add...</a> |
| 119 | <% } %> |
Scott Baker | c9d0dcb | 2014-11-07 16:40:30 -0800 | [diff] [blame] | 120 | </script> |
| 121 | |
Scott Baker | b1e6333 | 2014-12-02 10:49:04 -0800 | [diff] [blame] | 122 | <script type="text/template" id="xos-delete-button-template"> |
Scott Baker | 6694f8f | 2014-12-02 17:59:02 -0800 | [diff] [blame] | 123 | <a href="#delete<%= firstCharUpper(modelName) %>/<%= id %>">delete</a> |
Scott Baker | b1e6333 | 2014-12-02 10:49:04 -0800 | [diff] [blame] | 124 | </script> |
| 125 | |
| 126 | <script type="text/template" id="xos-detail-link-template"> |
| 127 | <a href="#<%= collectionName %>/<%= id %>"><%= text %></a> |
| 128 | </script> |
| 129 | |
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 130 | <script type="text/template" id="xos-add-template"> |
| 131 | <h3 class="xos-detail-title">Add Object: <%= modelName %></h3> |
| 132 | <form> |
| 133 | <table>
|
Scott Baker | eb253d5 | 2014-12-12 14:46:24 -0800 | [diff] [blame] | 134 | <% args = arguments; %>
|
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 135 | <% _.each(addFields, function(fieldName) { %>
|
Scott Baker | c06c0c8 | 2014-12-07 22:31:18 -0800 | [diff] [blame] | 136 | <tr><td><%= fieldNameToHumanReadable(fieldName) %>:</td>
|
Scott Baker | 3162122 | 2014-12-09 16:59:08 -0800 | [diff] [blame] | 137 | <% readOnly = $.inArray(fieldName, model.readOnlyFields)>=0 ? " readonly" : ""; %>
|
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 138 | <% if (fieldName in foreignFields) { %>
|
Scott Baker | a322dba | 2014-12-08 23:54:18 -0800 | [diff] [blame] | 139 | <td><%= idToSelect(fieldName, model.attributes[fieldName], foreignFields[fieldName], "humanReadableName", readOnly) %></td>
|
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 140 | <% } else if (inputType[fieldName] == "checkbox") { %>
|
Scott Baker | a322dba | 2014-12-08 23:54:18 -0800 | [diff] [blame] | 141 | <td><input type="checkbox" name="<%= fieldName %>" <% if (model.attributes[fieldName]) print("checked"); %><%= readOnly %>></td>
|
Scott Baker | eb253d5 | 2014-12-12 14:46:24 -0800 | [diff] [blame] | 142 | <% } else if (fieldName=="backend_status") { %>
|
| 143 | <td><%= xosBackendStatusTextTemplate.apply(this, args) %></td>
|
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 144 | <% } else { %>
|
Scott Baker | a322dba | 2014-12-08 23:54:18 -0800 | [diff] [blame] | 145 | <td><input type="text" name="<%= fieldName %>" value="<%= model.attributes[fieldName] %>"<%= readOnly %>></td>
|
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 146 | <% } %>
|
| 147 | </tr>
|
| 148 | <% }); %>
|
| 149 | <%= xosInlineDetailButtonsTemplate() %>
|
| 150 | </table>
|
| 151 | </form>
|
| 152 | </script> |
| 153 | |
| 154 | <script type="text/template" id="xos-detail-template"> |
Scott Baker | a322dba | 2014-12-08 23:54:18 -0800 | [diff] [blame] | 155 | <h3 class="xos-detail-title">Edit Object: <%= modelName %></h3> |
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 156 | <form> |
| 157 | <table>
|
Scott Baker | eb253d5 | 2014-12-12 14:46:24 -0800 | [diff] [blame] | 158 | <% args = arguments; %>
|
| 159 | <% _.each(detailFields, function(fieldName) { %>
|
Scott Baker | c06c0c8 | 2014-12-07 22:31:18 -0800 | [diff] [blame] | 160 | <tr><td><%= fieldNameToHumanReadable(fieldName) %>:</td>
|
Scott Baker | 3162122 | 2014-12-09 16:59:08 -0800 | [diff] [blame] | 161 | <% readOnly = $.inArray(fieldName, model.readOnlyFields)>=0 ? " readonly" : ""; console.log(fieldName + " " + readOnly); console.log(model.readOnlyFields); %>
|
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 162 | <% if (fieldName in foreignFields) { %>
|
Scott Baker | 3162122 | 2014-12-09 16:59:08 -0800 | [diff] [blame] | 163 | <td><%= idToSelect(fieldName, model.attributes[fieldName], foreignFields[fieldName], "humanReadableName", readOnly) %></td>
|
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 164 | <% } else if (inputType[fieldName] == "checkbox") { %>
|
Scott Baker | 3162122 | 2014-12-09 16:59:08 -0800 | [diff] [blame] | 165 | <td><input type="checkbox" name="<%= fieldName %>" <% if (model.attributes[fieldName]) print("checked"); %><%= readOnly %>></td>
|
Scott Baker | cde19e6 | 2014-12-16 22:49:42 -0800 | [diff] [blame] | 166 | <% } else if (inputType[fieldName] == "picker") { %>
|
| 167 | <% lookupFunc = makeIdToName(model.m2mFields[fieldName], "humanReadableName"); %>
|
Scott Baker | 6a7a17c | 2014-12-17 16:29:59 -0800 | [diff] [blame] | 168 | <td><%= xosPickerTemplate({pickedItems: model.attributes[fieldName], unpickedItems: model.getChoices(fieldName,true), id: "picker_" + fieldName, fieldName: fieldName, detailView: detailView, lookupFunc: lookupFunc}) %></td>
|
Scott Baker | eb253d5 | 2014-12-12 14:46:24 -0800 | [diff] [blame] | 169 | <% } else if (fieldName=="backend_status") { %>
|
| 170 | <td><%= xosBackendStatusTextTemplate.apply(this, args) %></td>
|
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 171 | <% } else { %>
|
Scott Baker | 3162122 | 2014-12-09 16:59:08 -0800 | [diff] [blame] | 172 | <td><input type="text" name="<%= fieldName %>" value="<%= model.attributes[fieldName] %>"<%= readOnly %>></td>
|
Scott Baker | fa2c4b5 | 2014-12-07 22:27:09 -0800 | [diff] [blame] | 173 | <% } %>
|
| 174 | </tr>
|
| 175 | <% }); %>
|
| 176 | <%= xosInlineDetailButtonsTemplate() %>
|
| 177 | </table>
|
| 178 | </form>
|
| 179 | </script> |
| 180 | |
Scott Baker | 3162122 | 2014-12-09 16:59:08 -0800 | [diff] [blame] | 181 | <script type="text/template" id="xos-list-template"> |
Scott Baker | 76d7b62 | 2014-11-04 23:20:48 -0800 | [diff] [blame] | 182 | <h3 class="xos-list-title"><%= title %></h3> |
Scott Baker | 2c97485 | 2014-12-04 17:23:27 -0800 | [diff] [blame] | 183 | <%= xosListHeaderTemplate() %> |
Scott Baker | 7e0e6b9 | 2014-10-30 16:10:16 -0700 | [diff] [blame] | 184 | <table class="test-table"> |
Scott Baker | 3162122 | 2014-12-09 16:59:08 -0800 | [diff] [blame] | 185 | <thead> |
| 186 | <tr> |
| 187 | <% _.each(listFields, function(fieldName) { %> |
| 188 | <th><%= fieldNameToHumanReadable(fieldName) %></th> |
| 189 | <% }); %> |
| 190 | <th>delete</th> |
Scott Baker | 7e0e6b9 | 2014-10-30 16:10:16 -0700 | [diff] [blame] | 191 | </tr></thead> |
| 192 | <tbody></tbody> |
| 193 | </table> |
Scott Baker | 1d651ce | 2014-12-08 11:13:43 -0800 | [diff] [blame] | 194 | <%= xosListFooterTemplate({addChildHash: addChildHash}) %> |
Scott Baker | 7e0e6b9 | 2014-10-30 16:10:16 -0700 | [diff] [blame] | 195 | </script> |
| 196 | |
Scott Baker | 3162122 | 2014-12-09 16:59:08 -0800 | [diff] [blame] | 197 | <script type="text/template" id="xos-listitem-template"> |
| 198 | <% _.each(listFields, function(fieldName) { %> |
| 199 | <% if ($.inArray(fieldName, model.detailLinkFields)>=0) { %> |
| 200 | <td><%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: model.attributes[fieldName]}) %></td> |
| 201 | <% } else if (fieldName in foreignFields) { %> |
| 202 | <td><%= idToName(model.attributes[fieldName], foreignFields[fieldName], "humanReadableName") %></td> |
| 203 | <% } else { %> |
| 204 | <td><%= model.attributes[fieldName] %></td> |
| 205 | <% } %> |
| 206 | <% }); %> |
Scott Baker | 3f9fa00 | 2014-12-02 18:04:50 -0800 | [diff] [blame] | 207 | <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
Scott Baker | 84e01fe | 2014-10-31 00:18:24 -0700 | [diff] [blame] | 208 | </script> |
| 209 | |
Scott Baker | 3009204 | 2014-12-09 18:38:13 -0800 | [diff] [blame] | 210 | <script type="text/template" id="xos-savebuttons-template"> |
| 211 | <div class="box save-box"> |
| 212 | <button class="btn btn-high btn-info btn-xos-contentButtonPanel btn-xos-save-leave">Save</button> |
| 213 | <button class="btn btn-high btn-xos-contentButtonPanel btn-xos-save-continue">Save and continue editing</button> |
| 214 | <button class="btn btn-high btn-xos-contentButtonPanel btn-xos-save-another">Save and add another</button> |
| 215 | <button class="btn btn-danger btn-xos-contentButtonPanel btn-xos-delete">Delete</button> |
| 216 | </div> |
| 217 | </script> |
| 218 | |
| 219 | <script type="text/template" id="xos-listbuttons-template"> |
| 220 | <div class="box save-box"> |
| 221 | <button class="btn btn-high btn-primary btn-xos-contentButtonPanel btn-xos-refresh">Refresh</button> |
| 222 | <button class="btn btn-high btn-success btn-xos-contentButtonPanel btn-xos-add">Add</button> |
| 223 | </div> |
| 224 | </script> |
| 225 | |
Scott Baker | cde19e6 | 2014-12-16 22:49:42 -0800 | [diff] [blame] | 226 | |
| 227 | <script type="text/template" id="xos-picker-template"> |
| 228 | <!-- arguments: unpickedItems, pickedItems --> |
| 229 | <div id="<%= id %>"> |
| 230 | <div class="picker_row"> |
| 231 | <div class="picker_column">
|
| 232 | <div>Available</div>
|
| 233 | <select name="pickerfrom" class="select-picker-from" multiple size="5">
|
| 234 | <% _.each(unpickedItems, function(item) { %>
|
| 235 | <option value="<%= item %>"><%= lookupFunc? lookupFunc(item) : item %></option> |
| 236 | <% });%>
|
| 237 | </select>
|
| 238 | </div>
|
| 239 | <div class="picker_column">
|
| 240 | <br>
|
| 241 | <div class="btn btn-success btn-picker-add">Add »</div><br><br>
|
| 242 | <div class="btn btn-success btn-picker-remove">« Remove</div>
|
| 243 | </div>
|
| 244 | <div class="picker_column">
|
| 245 | <div>Selected</div>
|
Scott Baker | 6a7a17c | 2014-12-17 16:29:59 -0800 | [diff] [blame] | 246 | <select name=<%= fieldName %> class="select-picker-to syphonall" multiple size="5">
|
Scott Baker | cde19e6 | 2014-12-16 22:49:42 -0800 | [diff] [blame] | 247 | <% _.each(pickedItems, function(item) { %>
|
| 248 | <option value="<%= item %>"><%= lookupFunc ? lookupFunc(item) : item %></option> |
| 249 | <% }); %>
|
| 250 | </select>
|
| 251 | </div>
|
| 252 | <div class="picker_column">
|
| 253 | <br>
|
| 254 | <div class="btn btn-success btn-picker-up">Up</div><br><br>
|
| 255 | <div class="btn btn-success btn-picker-down">Down</div>
|
| 256 | </div>
|
| 257 | </div> |
| 258 | </div> |
| 259 | <% detailView.viewInitializers.push( function() { init_picker("#" + id); } ); %> |
| 260 | </script> |
| 261 | |
Scott Baker | 09ed3e0 | 2014-11-07 13:01:43 -0800 | [diff] [blame] | 262 | <script> |
| 263 | xosInlineDetailButtonsTemplate = _.template($("#xos-inline-detail-buttons-template").html()); |
Scott Baker | 2c97485 | 2014-12-04 17:23:27 -0800 | [diff] [blame] | 264 | xosListHeaderTemplate = _.template($("#xos-list-header-template").html()); |
| 265 | xosListFooterTemplate = _.template($("#xos-list-footer-template").html()); |
Scott Baker | b1e6333 | 2014-12-02 10:49:04 -0800 | [diff] [blame] | 266 | xosDeleteButtonTemplate = _.template($("#xos-delete-button-template").html()); |
| 267 | xosDetailLinkTemplate = _.template($("#xos-detail-link-template").html()); |
Scott Baker | a515007 | 2014-12-12 14:26:21 -0800 | [diff] [blame] | 268 | xosBackendStatusIconTemplate = _.template($("#xos-backend-status-icon-template").html()); |
Scott Baker | eb253d5 | 2014-12-12 14:46:24 -0800 | [diff] [blame] | 269 | xosBackendStatusTextTemplate = _.template($("#xos-backend-status-text-template").html()); |
Scott Baker | cde19e6 | 2014-12-16 22:49:42 -0800 | [diff] [blame] | 270 | xosPickerTemplate = _.template($("#xos-picker-template").html()); |
Scott Baker | 09ed3e0 | 2014-11-07 13:01:43 -0800 | [diff] [blame] | 271 | </script> |
Scott Baker | a322dba | 2014-12-08 23:54:18 -0800 | [diff] [blame] | 272 | |