</tr>
</script>
+<script type="text/template" id="xos-backend-status-icon-template">
+ <% if (! ("enacted" in arguments) ) { %>
+ <!-- enacted is undefined; this must be a new object -->
+ <% } else if ((enacted) && (enacted >= updated)) { %>
+ <span style="min-width:16px;"><img src="/static/admin/img/icon_success.gif"></span>
+ <% } else { %>
+ <% if ((backend_status == "Provisioning in progress") || (!backend_status)) { %>
+ <span style="min-width:16px;" title="<%= _.escape(backend_status) %>"><img src="/static/admin/img/icon_clock.gif"></span>
+ <% } else { %>
+ <span style="min-width:16px;" title="<%= _.escape(backend_status) %>"><img src="/static/admin/img/icon_error.gif"></span>
+ <% } %>
+ <% } %>
+</script>
+
+<script type="text/template" id="xos-backend-status-text-template">
+ <%= xosBackendStatusIconTemplate.apply(this,arguments) %>
+ <% if (model.enacted === undefined) { %>
+ <!-- enacted is undefined; this must be a new object -->
+ <% } else if ((enacted) && (enacted >= updated)) { %>
+ Successfully enacted
+ <% } else { %>
+ <%= _.escape(backend_status) %>
+ <% } %>
+</script>
+
<script type="text/template" id="xos-list-header-template">
<button class="btn js-submit btn-xos-list btn-xos-add">Add</button>
<button class="btn js-submit btn-xos-list btn-xos-refresh">Refresh</button>
<h3 class="xos-detail-title">Add Object: <%= modelName %></h3>
<form>
<table>\r
+ <% args = arguments; %>\r
<% _.each(addFields, function(fieldName) { %>\r
<tr><td><%= fieldNameToHumanReadable(fieldName) %>:</td>\r
<% readOnly = $.inArray(fieldName, model.readOnlyFields)>=0 ? " readonly" : ""; %>\r
<td><%= idToSelect(fieldName, model.attributes[fieldName], foreignFields[fieldName], "humanReadableName", readOnly) %></td>\r
<% } else if (inputType[fieldName] == "checkbox") { %>\r
<td><input type="checkbox" name="<%= fieldName %>" <% if (model.attributes[fieldName]) print("checked"); %><%= readOnly %>></td>\r
+ <% } else if (fieldName=="backend_status") { %>\r
+ <td><%= xosBackendStatusTextTemplate.apply(this, args) %></td>\r
<% } else { %>\r
<td><input type="text" name="<%= fieldName %>" value="<%= model.attributes[fieldName] %>"<%= readOnly %>></td>\r
<% } %>\r
<script type="text/template" id="xos-detail-template">
<h3 class="xos-detail-title">Edit Object: <%= modelName %></h3>
<form>
- <table>\r
- <% console.log(model); _.each(detailFields, function(fieldName) { %>\r
- <tr><td><%= fieldNameToHumanReadable(fieldName) %>:</td>\r
- <% readOnly = $.inArray(fieldName, model.readOnlyFields)>=0 ? " readonly" : ""; console.log(fieldName + " " + readOnly); console.log(model.readOnlyFields); %>\r
- <% if (fieldName in foreignFields) { %>\r
+ <table class="xos-detail-table">\r
+ <% args = arguments; %>\r
+ <% _.each(detailFields, function(fieldName) { %>\r
+ <tr><td class="xos-label-cell"><%= fieldName in fieldDisplayNames ? fieldDisplayNames[fieldName] : fieldNameToHumanReadable(fieldName) %>:</td>\r
+ <% readOnly = $.inArray(fieldName, model.readOnlyFields)>=0 ? " readonly" : ""; %>\r
+ <% if (fieldName in choices) { %>\r
+ <td><%= choicesToSelect(fieldName, model.attributes[fieldName], choices[fieldName]) %></td>\r
+ <% } else if (fieldName in foreignFields) { %>\r
<td><%= idToSelect(fieldName, model.attributes[fieldName], foreignFields[fieldName], "humanReadableName", readOnly) %></td>\r
+ <% } else if (inputType[fieldName] == "spinner") { %>\r
+ <!-- note: I never finished working on this spinner stuff! -->\r
+ <td><%= xosSpinnerTemplate({id: "spinner_" + fieldName, fieldName: fieldName, value: model.attributes[fieldName]}) %></td>\r
<% } else if (inputType[fieldName] == "checkbox") { %>\r
<td><input type="checkbox" name="<%= fieldName %>" <% if (model.attributes[fieldName]) print("checked"); %><%= readOnly %>></td>\r
+ <% } else if (inputType[fieldName] == "picker") { %>\r
+ <% lookupFunc = makeIdToName(model.m2mFields[fieldName], "humanReadableName"); %>\r
+ <td><%= xosPickerTemplate({pickedItems: model.attributes[fieldName], unpickedItems: model.getChoices(fieldName,true), id: "picker_" + fieldName, fieldName: fieldName, detailView: detailView, lookupFunc: lookupFunc}) %></td>\r
+ <% } else if (fieldName=="backend_status") { %>\r
+ <td><%= xosBackendStatusTextTemplate.apply(this, args) %></td>\r
<% } else { %>\r
<td><input type="text" name="<%= fieldName %>" value="<%= model.attributes[fieldName] %>"<%= readOnly %>></td>\r
<% } %>\r
+ <td class="xos-help-cell"><%= helpText[fieldName] %></td>\r
</tr>\r
<% }); %>\r
<%= xosInlineDetailButtonsTemplate() %>\r
<td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td>
</script>
+<script type="text/template" id="xos-savebuttons-template">
+ <div class="box save-box">
+ <button class="btn btn-high btn-info btn-xos-contentButtonPanel btn-xos-save-leave">Save</button>
+ <button class="btn btn-high btn-xos-contentButtonPanel btn-xos-save-continue">Save and continue editing</button>
+ <button class="btn btn-high btn-xos-contentButtonPanel btn-xos-save-another">Save and add another</button>
+ <button class="btn btn-danger btn-xos-contentButtonPanel btn-xos-delete">Delete</button>
+ </div>
+</script>
+
+<script type="text/template" id="xos-listbuttons-template">
+ <div class="box save-box">
+ <button class="btn btn-high btn-primary btn-xos-contentButtonPanel btn-xos-refresh">Refresh</button>
+ <button class="btn btn-high btn-success btn-xos-contentButtonPanel btn-xos-add">Add</button>
+ </div>
+</script>
+
+<script type="text/template" id="xos-datatable-spinner-template">
+ <!-- arguments: value, id, collectionName, fieldName -->
+ <%= value %> <img style="cursor: pointer;" src="/static/img/plus_circle.png" onclick='<%= app.varName %>.adjustCollectionField("<%= collectionName %>", <%= id %>, "<%= fieldName %>", 1)'>
+ <img style="cursor: pointer;" src="/static/img/minus_circle.png" onclick='<%= app.varName %>.adjustCollectionField("<%= collectionName %>", <%= id %>, "<%= fieldName %>", -1)'>
+</script>
+
+<script type="text/template" id="xos-datatable-spinner-template-old">
+ <!-- arguments: value, id, collectionName, fieldName -->
+ <%= value %> <a href="javascript:undefined" onclick='<%= app.varName %>.adjustCollectionField("<%= collectionName %>", <%= id %>, "<%= fieldName %>", 1)'> more </a>
+ <a href="javascript:undefined" onclick='<%= app.varName %>.adjustCollectionField("<%= collectionName %>", <%= id %>, "<%= fieldName %>", -1)'> less </a>
+</script>
+
+<script type="text/template" id="xos-spinner-template">
+ <!-- arguments: fieldName, id, value -->
+ <input name="<%= fieldName %>" class="xos-spinner" id="<%= id %>">
+ <% detailView.viewInitializers.push( function() { init_spinner("#" + id, value); } ); %>
+</script>
+
+<script type="text/template" id="xos-picker-template">
+ <!-- arguments: unpickedItems, pickedItems, fieldName, id -->
+ <div id="<%= id %>">
+ <div class="picker_row">
+ <div class="picker_column">\r
+ <div>Available</div>\r
+ <select name="pickerfrom" class="select-picker-from" multiple size="5">\r
+ <% _.each(unpickedItems, function(item) { %>\r
+ <option value="<%= item %>"><%= lookupFunc? lookupFunc(item) : item %></option>
+ <% });%>\r
+ </select>\r
+ </div>\r
+ <div class="picker_column">\r
+ <br>\r
+ <div class="btn btn-success btn-picker-add">Add »</div><br><br>\r
+ <div class="btn btn-success btn-picker-remove">« Remove</div>\r
+ </div>\r
+ <div class="picker_column">\r
+ <div>Selected</div>\r
+ <select name=<%= fieldName %> class="select-picker-to syphonall" multiple size="5">\r
+ <% _.each(pickedItems, function(item) { %>\r
+ <option value="<%= item %>"><%= lookupFunc ? lookupFunc(item) : item %></option>
+ <% }); %>\r
+ </select>\r
+ </div>\r
+ <div class="picker_column">\r
+ <br>\r
+ <div class="btn btn-success btn-picker-up">Up</div><br><br>\r
+ <div class="btn btn-success btn-picker-down">Down</div>\r
+ </div>\r
+ </div>
+ </div>
+ <% detailView.viewInitializers.push( function() { init_picker("#" + id); } ); %>
+</script>
+
+<script type="text/template" id="xos-sliceselector-option">
+ <%= name %>
+</script>
+
+<script type="text/template" id="xos-sliceselector-select">
+ <% if (caption) { %>
+ <table class="xos-detail-table"><tr><td class="xos-label-cell"><%= caption %>: </td><td><select></select></td></tr></table>
+ <% } else { %>
+ <select></select>
+ <% } %>
+</script>
+
<script>
xosInlineDetailButtonsTemplate = _.template($("#xos-inline-detail-buttons-template").html());
xosListHeaderTemplate = _.template($("#xos-list-header-template").html());
xosListFooterTemplate = _.template($("#xos-list-footer-template").html());
xosDeleteButtonTemplate = _.template($("#xos-delete-button-template").html());
xosDetailLinkTemplate = _.template($("#xos-detail-link-template").html());
+xosBackendStatusIconTemplate = _.template($("#xos-backend-status-icon-template").html());
+xosBackendStatusTextTemplate = _.template($("#xos-backend-status-text-template").html());
+xosPickerTemplate = _.template($("#xos-picker-template").html());
+xosSpinnerTemplate = _.template($("#xos-spinner-template").html());
+xosDataTableSpinnerTemplate = _.template($("#xos-datatable-spinner-template").html());
</script>