better error message for tenant sanity check
diff --git a/planetstack/core/xoslib/dashboards/xosTenant.html b/planetstack/core/xoslib/dashboards/xosTenant.html
index 141e3ee..f988305 100644
--- a/planetstack/core/xoslib/dashboards/xosTenant.html
+++ b/planetstack/core/xoslib/dashboards/xosTenant.html
@@ -41,6 +41,25 @@
</tr>
</script>
+<script type="text/template" id="tenant-sanity-check">
+ Tenant view sanity check failed:
+ <ul>
+ <% for (index in errors) { %>
+ <li><%= errors[index] %></li>
+ <% } %>
+ </ul>
+ Steps to correct issues in the tenant view:
+ <ol>
+ <li>Make sure that the tenant view is linked to at least one deployment. You
+ may find the list of dashboard views at <a href="/admin/core/dashboardview/">here</a>.
+ Deployments currently attached to the tenant view are: <%= blessed_deployment_names.join(",") %>
+ </li>
+ <li>Make sure that at least one Image and one Flavor is attached to a tenant view deployment.</li>
+ <li>Make sure at least one Site is attached to a tenant view deployment.</li>
+ <li>Make sure at least one of the Sites has one or more nodes attached to it.</li>
+ </ol>
+</script>
+
<script type="text/template" id="tenant-edit-users">
<%= xosPickerTemplate({pickedItems: model.usersBuffer,
unpickedItems: array_subtract(xos.tenant().current_user_site_users, model.usersBuffer),
diff --git a/planetstack/core/xoslib/static/js/xosTenant.js b/planetstack/core/xoslib/static/js/xosTenant.js
index cd2b079..0c89a1e 100644
--- a/planetstack/core/xoslib/static/js/xosTenant.js
+++ b/planetstack/core/xoslib/static/js/xosTenant.js
@@ -415,10 +415,8 @@
}
if (errors.length > 0) {
- $("#tenantSummary").html("Tenant view sanity check failed: <blockquote>" + errors.join("<br>") + "</blockquote>" +
- "Usually errors in the Tenant view imply that nodes, sites, or " +
- "images need to be added to a Deployment. The Deployment(s) that " +
- "the tenant view is hardcoded to use are " + xos.tenant().blessed_deployment_names.join(",") + ".");
+ t = templateFromId("#tenant-sanity-check")
+ $("#tenantSummary").html( t({errors: errors, blessed_deployment_names: xos.tenant().blessed_deployment_names}) );
return false;
}