<!-- Error and Success templates -->

<script type="text/template" id="xos-error-response">
  <h5>Error</h5>
  <table>
  <tr><td>error:</td><td><%= error %></td></tr>
  <tr><td>check:</td><td><%= specific_error %></td></tr>
  </table>
  <h5>Details:</h5>
      <table>
      <tbody>
      <% _.each(reasons, function(element, index) { %>
          <tr><td><%= index %></td><td><%= element %></td></tr>
      <% }); %>
      </tbody>
      </table>
</script>

<script type="text/template" id="xos-error-rawresponse">
  <h5>Error</h5>
  <pre>The server returned:
"<%= responseText %>"</pre>
</script>

<script type="text/template" id="xos-error-template">
  <button id="close-error-box">Close Error Message</button>
  <h3>An error has occurred.</h3>
  <table class="test-error-table">
  <tr><td>Code:</td><td><%= status %></td></tr>
  <tr><td>Message:</td><td><%= statusText %></td></tr>
  </table>
</script>

<script type="text/template" id="xos-success-template">
  <button id="close-success-box">Close Success Message</button>
  <h3>Success!</h3>
  <table class="test-success-table">
  <tr><td>Code:</td><td><%= status %></td></tr>
  <tr><td>Message:</td><td><%= statusText %></td></tr>
  </table>
</script>

<script type="text/template" id="xos-navbutton-old">
  <button class="btn btn-default btn-xosnav" onclick="<%= router %>.navigate('<%= routeUrl %>', {trigger: true})"><%= name %></button><br>
</script>

<script type="text/template" id="xos-status-template">
  <div class="xos-status xos-<%= statusclass %>"><%= what %>: <%= statusText %> (<%= status %>)</div>
</script>

<script type="text/template" id="xos-tabs-template">
  <ul class="xos-nav-list">
  <% _.each(tabs, function(tab) { %>
      <li class="xos-nav-item" id="xos-nav-<%= tab["region"] %>"><%= tab["name"] %></li>
  <% }); %>
  </ul>
</script>

<script type="text/template" id="xos-title-list">
  <h3><img src="/static/img/brokencircle.gif" height=16 width=16 id="xos-list-title-spinner"> <%= title %></h3>
</script>

<script type="text/template" id="xos-title-detail">
  <h3><%= title %></h3>
</script>

<script type="text/template" id="xos-navbutton">
  <li>
      <a href="<%= routeUrl %>">
          <i class="<%= iconClass %>"></i>
          <%= name %>
      </a>
  </li>
</script>

<script type="text/template" id="xos-inline-detail-buttons-template">
    <tr>
       <td colspan=2><button class="btn js-submit btn-xos-detail btn-xos-save-leave">Save</button>
           <button class="btn js-submit btn-xos-detail btn-xos-save-continue">Save and Continue Editing</button>
           <button class="btn js-submit btn-xos-detail btn-xos-save-another">Save and Add Another</button>
           <button class="btn js-submit btn-xos-detail btn-xos-delete">Delete</button>
       </td>
    </tr>
</script>

<script type="text/template" id="xos-inline-list-buttons-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>
       </td>
    </tr>
</script>

<script type="text/template" id="xos-delete-button-template">
    <a href="#delete?model=<%= modelName %>&id=<%= id %>">delete</a>
</script>

<script type="text/template" id="xos-delete-button-template">
    <a href="#delete?model=<%= modelName %>&id=<%= id %>">delete</a>
</script>

<script type="text/template" id="xos-detail-link-template">
    <a href="#<%= collectionName %>/<%= id %>"><%= text %></a>
</script>

<!-- Deployment -->

<script type="text/template" id="xosAdmin-deployment-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>name</th>
     <th>backend</th>
     <th>admin_tenant</th>
     <th># sites</th>
     <th>delete</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>


<script type="text/template" id="xosAdmin-deployment-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td>
  <td><%= backend_type %></td>
  <td><%= admin_tenant %></td>
  <td><%= typeof sites != 'undefined' && sites.length || 0 %></td>
  <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td>
</script>

<script type="text/template" id="xosAdmin-deployment-detail-template">
  <h3 class="xos-detail-title">Detail View: Deployment</h3>
  <form>
  <table>
  <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>
  <tr><td>Backend:</td><td><input type="text" name="backend_type" value="<%= backend_type %>"></td></tr>
  <tr><td>Admin Tenant:</td><td><input type="text" name="admin_tenant" value="<%= admin_tenant %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- Image -->

<script type="text/template" id="xosAdmin-image-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>name</th>
     <th>disk_format</th>
     <th>container_format</th>
     <th>path</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>

<script type="text/template" id="xosAdmin-image-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td>
  <td><%= disk_format %></td>
  <td><%= container_format %></td>
  <td><%= path %></td>
</script>

<script type="text/template" id="xosAdmin-image-detail-template">
  <h3 class="xos-detail-title">Detail View: Image</h3>
  <form>
  <table>
  <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>
  <tr><td>Disk Format:</td><td><input type="text" name="backend_type" value="<%= disk_format %>"></td></tr>
  <tr><td>Container Format:</td><td><input type="text" name="admin_tenant" value="<%= container_format %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- NetworkTemplate -->

<script type="text/template" id="xosAdmin-networkTemplate-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>name</th>
     <th>description</th>
     <th>visibility</th>
     <th>translation</th>
     <th>sharedNetworkName</th>
     <th>sharedNetworkId</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>


<script type="text/template" id="xosAdmin-networkTemplate-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td>
  <td><%= description %></td>
  <td><%= visibility %></td>
  <td><%= translation %></td>
  <td><%= sharedNetworkName %></td>
  <td><%= sharedNetworkId %></td>
</script>

<script type="text/template" id="xosAdmin-networkTemplate-detail-template">
  <h3 class="xos-detail-title">Detail View: NetworkTemplate</h3>
  <form>
  <table>
  <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>
  <tr><td>description:</td><td><input type="text" name="description" value="<%= description %>"></td></tr>
  <tr><td>Visibility:</td><td><input type="text" name="visibility" value="<%= visibility %>"></td></tr>
  <tr><td>Translation:</td><td><input type="text" name="translation" value="<%= translation %>"></td></tr>
  <tr><td>Shared Network Name:</td><td><input type="text" name="sharedNetworkName" value="<%= sharedNetworkName %>"></td></tr>
  <tr><td>Shared Network Id:</td><td><input type="text" name="sharedNetworkId" value="<%= sharedNetworkId %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- Network -->

<script type="text/template" id="xosAdmin-network-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>name</th>
     <th>template</th>
     <th>ports</th>
     <th>labels</th>
     <th>owner</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>

<script type="text/template" id="xosAdmin-network-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td>
  <td><%= idToName(template,"networkTemplates","name") %></td>
  <td><%= ports %></td>
  <td><%= labels %></td>
  <td><%= idToName(owner,"slices","name") %></td>
</script>

<script type="text/template" id="xosAdmin-network-detail-template">
  <h3 class="xos-detail-title">Detail View: Network</h3>
  <form>
  <table>
  <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>
  <tr><td>Template:</td><td><%= idToSelect("template",template,"networkTemplates","name") %></td></tr>
  <tr><td>Ports:</td><td><input type="text" name="ports" value="<%= ports %>"></td></tr>
  <tr><td>Labels:</td><td><input type="text" name="labels" value="<%= labels %>"></td></tr>
  <tr><td>Owner:</td><td><%= idToSelect("owner",owner,"slices","name") %></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- NetworkSliver -->

<script type="text/template" id="xosAdmin-networkSliver-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>network</th>
     <th>sliver</th>
     <th>ip</th>
     <th>port_id</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>

<script type="text/template" id="xosAdmin-networkSliver-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td><%= idToName(network,"networks","name") %></td>
  <td><%= idToName(sliver,"slivers","name") %></td>
  <td><%= ip %></td>
  <td><%= port_id %></td>
</script>

<script type="text/template" id="xosAdmin-networkSliver-detail-template">
  <h3 class="xos-detail-title">Detail View: Network</h3>
  <form>
  <table>
  <tr><td>Network:</td><td><input type="text" name="network" value="<%= network %>"></td></tr>
  <tr><td>Sliver:</td><td><input type="text" name="sliver" value="<%= sliver %>"></td></tr>
  <tr><td>Ip:</td><td><input type="text" name="ip" value="<%= ip %>"></td></tr>
  <tr><td>Port_id:</td><td><input type="text" name="port_id" value="<%= port_id %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- NetworkDeployment -->

<script type="text/template" id="xosAdmin-networkDeployment-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>network</th>
     <th>deployment</th>
     <th>net_id</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>

<script type="text/template" id="xosAdmin-networkDeployment-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td><%= idToName(network,"networks","name") %></td>
  <td><%= idToName(deployment,"deployments","name") %></td>
  <td><%= net_id %></td>
</script>

<script type="text/template" id="xosAdmin-networkDeployment-detail-template">
  <h3 class="xos-detail-title">Detail View: Network</h3>
  <form>
  <table>
  <tr><td>Network:</td><td><input type="text" name="network" value="<%= network %>"></td></tr>
  <tr><td>Sliver:</td><td><input type="text" name="deployment" value="<%= deployment %>"></td></tr>
  <tr><td>Ip:</td><td><input type="text" name="net_id" value="<%= net_id %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- Node -->

<script type="text/template" id="xosAdmin-node-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>name</th>
     <th>site</th>
     <th>deployment</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>


<script type="text/template" id="xosAdmin-node-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td>
  <td><%= idToName(site,"sites","name") %></td>
  <td><%= idToName(deployment,"deployments","name") %></td>
</script>

<script type="text/template" id="xosAdmin-node-detail-template">
  <h3 class="xos-detail-title">Detail View: Node</h3>
  <form>
  <table>
  <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>
  <tr><td>Site:</td><td><%= idToSelect("site",site,"sites","name") %></td></tr>
  <tr><td>Deployment:</td><td><%= idToSelect("deployment",deployment,"deployments","name") %></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- SliceRole -->

<script type="text/template" id="xosAdmin-sliceRole-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>role</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>


<script type="text/template" id="xosAdmin-sliceRole-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td><%= role %></td>
</script>

<script type="text/template" id="xosAdmin-sliceRole-detail-template">
  <h3 class="xos-detail-title">Detail View: Service</h3>
  <form>
  <table>
  <tr><td>Role:</td><td><input type="text" name="role" value="<%= role %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- Service -->

<script type="text/template" id="xosAdmin-service-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>name</th>
     <th>description</th>
     <th>enabled</th>
     <th>versionNumber</th>
     <th>published</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>


<script type="text/template" id="xosAdmin-service-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td>
  <td><%= description %></td>
  <td><%= enabled %></td>
  <td><%= versionNumber %></td>
  <td><%= published %></td>
</script>

<script type="text/template" id="xosAdmin-service-detail-template">
  <h3 class="xos-detail-title">Detail View: Service</h3>
  <form>
  <table>
  <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>
  <tr><td>description:</td><td><input type="text" name="description" value="<%= description %>"></td></tr>
  <tr><td>Version Number:</td><td><input type="text" name="versionNumber" value="<%= versionNumber %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- Site -->

<script type="text/template" id="xosAdmin-site-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>name</th>
     <th>url</th>
     <th>enabled</th>
     <th>login_base</th>
     <th>is_public</th>
     <th>abbreviated_name</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>

<script type="text/template" id="xosAdmin-site-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td>
  <td><%= site_url %></td>
  <td><%= enabled %></td>
  <td><%= login_base %></td>
  <td><%= is_public %></td>
  <td><%= abbreviated_name %></td>
</script>

<script type="text/template" id="xosAdmin-site-detail-template">
  <h3 class="xos-detail-title">Detail View: Site</h3>
  <form>
  <table>
  <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>
  <tr><td>abbreviated_name:</td><td><input type="text" name="abbreviated_name" value="<%= abbreviated_name %>"></td></tr>
  <tr><td>url:</td><td><input type="text" name="site_url" value="<%= site_url %>"></td></tr>
  <tr><td>Enabled:</td><td><input type="checkbox" name="enabled" <% if (enabled) print("checked"); %>></td></tr>
  <tr><td>Is Public:</td><td><input type="checkbox" name="is_public" <% if (is_public) print("checked"); %>></td></tr>
  <tr><td>login_base:</td><td><input type="text" name="login_base" value="<%= login_base %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- Slice -->

<script type="text/template" id="xosAdmin-slice-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>name</th>
     <th>enabled</th>
     <th>omf_friendly</th>
     <th>description</th>
     <th>slice_url</th>
     <th>site</th>
     <th>max_slivers</th>
     <th>service</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>

<script type="text/template" id="xosAdmin-slice-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td>
  <td><%= enabled %></td>
  <td><%= omf_friendly %></td>
  <td><%= description %></td>
  <td><%= slice_url %></td>
  <td><%= idToName(site,"sites","name") %></td>
  <td><%= max_slivers %></td>
  <td><%= idToName(service,"services","name") %></td>
</script>

<script type="text/template" id="xosAdmin-slice-detail-template">
  <h3 class="xos-detail-title">Detail View: Slice</h3>
  <form>
  <table>
  <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>
  <tr><td>Site:</td><td><%= idToSelect("site",site,"sites","name") %></td></tr>
  <tr><td>Enabled:</td><td><input type="checkbox" name="enabled" <% if (enabled) print("checked"); %>></td></tr>
  <tr><td>Description:</td><td><input type="text" name="description" value="<%= description %>"></td></tr>
  <tr><td>Url:</td><td><input type="text" name="slice_url" value="<%= slice_url %>"></td></tr>
  <tr><td>Max Slivers:</td><td><input type="text" name="max_slivers" value="<%= max_slivers %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- SliceDeployment -->

<script type="text/template" id="xosAdmin-sliceDeployment-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>slice</th>
     <th>deployment</th>
     <th>tenant_id</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>

<script type="text/template" id="xosAdmin-sliceDeployment-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td><%= idToName(slice,"slices","name") %></td>
  <td><%= idToName(deployment,"deployments","name") %></td>
  <td><%= tenant_id %></td>
</script>

<script type="text/template" id="xosAdmin-sliceDeployment-detail-template">
  <h3 class="xos-detail-title">Detail View: Slice Deployment</h3>
  <form>
  <table>
  <tr><td>Slice:</td><td><input type="text" name="slice" value="<%= slice %>"></td></tr>
  <tr><td>Deployment:</td><td><input type="text" name="deployment" value="<%= deployment %>"></td></tr>
  <tr><td>Tenant Id:</td><td><input type="text" name="tenant_id" value="<%= tenant_id %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- SlicePrivilege -->

<script type="text/template" id="xosAdmin-slicePrivilege-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>user</th>
     <th>slice</th>
     <th>role</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>

<script type="text/template" id="xosAdmin-slicePrivilege-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td><%= idToName(user,"users","username") %></td>
  <td><%= idToName(slice,"slices","name") %></td>
  <td><%= idToName(role,"sliceRoles","role") %></td>
</script>

<script type="text/template" id="xosAdmin-slicePrivilege-detail-template">
  <h3 class="xos-detail-title">Detail View: Slice Privilege</h3>
  <form>
  <table>
  <tr><td>User:</td><td><input type="text" name="user" value="<%= user %>"></td></tr>
  <tr><td>Slice:</td><td><input type="text" name="slice" value="<%= slice %>"></td></tr>
  <tr><td>Role:</td><td><input type="text" name="role" value="<%= role %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- Sliver -->

<script type="text/template" id="xosAdmin-sliver-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>name</th>
     <th>instance_id</th>
     <th>instance_name</th>
     <th>image</th>
     <th>creator</th>
     <th>slice</th>
     <th>node</th>
     <th>deploymentNetwork</th>
     <th>flavor</th>
     <th>userData</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>


<script type="text/template" id="xosAdmin-sliver-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td>
  <td><%= instance_id %></td>
  <td><%= instance_name %></td>
  <td><%= idToName(image,"images","name") %></td>
  <td><%= idToName(creator,"users","name") %></td>
  <td><%= idToName(slice,"slices","name") %></td>
  <td><%= idToName(node,"nodes","name") %></td>
  <td><%= idToName(deploymentNetwork,"deployments","name") %></td>
  <td><%= flavor %></td>
  <td><%= userData %></td>
</script>

<script type="text/template" id="xosAdmin-sliver-detail-template">
  <h3 class="xos-detail-title">Detail View: Sliver</h3>
  <form>
  <table>
  <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>
  <tr><td>instance_id:</td><td><input type="text" name="instance_id" value="<%= instance_id %>"></td></tr>
  <tr><td>instance_name:</td><td><input type="text" name="instance_name" value="<%= instance_name %>"></td></tr>
  <tr><td>Image:</td><td><%= idToSelect("image",image,"images","name") %></td></tr>
  <tr><td>Creator:</td><td><%= idToSelect("creator",creator,"users","username") %></td></tr>
  <tr><td>Slice:</td><td><%= idToSelect("slice",slice,"slices","name") %></td></tr>
  <tr><td>Deployment:</td><td><%= idToSelect("deploymentNetwork",deploymentNetwork,"deployments","name") %></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- User -->

<script type="text/template" id="xosAdmin-user-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>username</th>
     <th>firstname</th>
     <th>lastname</th>
     <th>phone</th>
     <th>user_url</th>
     <th>site</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>


<script type="text/template" id="xosAdmin-user-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: username}) %></td>
  <td><%= firstname %></td>
  <td><%= lastname %></td>
  <td><%= phone %></td>
  <td><%= user_url %></td>
  <td><%= idToName(site,"sites","name") %></td>
</script>

<script type="text/template" id="xosAdmin-user-detail-template">
  <h3 class="xos-detail-title">Detail View: User</h3>
  <form>
  <table>
  <tr><td>User Name:</td><td><input type="text" name="username" value="<%= username %>"></td></tr>
  <tr><td>First Name:</td><td><input type="text" name="firstname" value="<%= firstname %>"></td></tr>
  <tr><td>Last Name:</td><td><input type="text" name="lastname" value="<%= lastname %>"></td></tr>
  <tr><td>Phone:</td><td><input type="text" name="phone" value="<%= phone %>"></td></tr>
  <tr><td>Url:</td><td><input type="text" name="user_url" value="<%= user_url %>"></td></tr>
  <tr><td>Site:</td><td><%= idToSelect("site",site,"sites","name") %></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<!-- UserDeployments -->

<script type="text/template" id="xosAdmin-userDeployment-list-template">
  <h3 class="xos-list-title"><%= title %></h3>
  <%= xosInlineListButtonsTemplate() %>
  <table class="test-table">
  <thead><tr>
     <th>id</th>
     <th>user</th>
     <th>deployment</th>
     <th>kuser_id</th>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>

<script type="text/template" id="xosAdmin-userDeployment-listitem-template">
  <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td>
  <td><%= idToName(user,"users","username") %></td>
  <td><%= idToName(deployment,"deployments","name") %></td>
  <td><%= kuser_id %></td>
</script>

<script type="text/template" id="xosAdmin-userDeployment-detail-template">
  <h3 class="xos-detail-title">Detail View: UserDeployment</h3>
  <form>
  <table>
  <tr><td>User:</td><td><input type="text" name="user" value="<%= user %>"></td></tr>
  <tr><td>Deployment:</td><td><input type="text" name="deployment" value="<%= deployment %>"></td></tr>
  <tr><td>kuser_id:</td><td><input type="text" name="kuser_id" value="<%= kuser_id %>"></td></tr>
  <%= xosInlineDetailButtonsTemplate() %>
  </table>
  </form>
</script>

<script>
xosInlineDetailButtonsTemplate = _.template($("#xos-inline-detail-buttons-template").html());
xosInlineListButtonsTemplate = _.template($("#xos-inline-list-buttons-template").html());
xosDeleteButtonTemplate = _.template($("#xos-delete-button-template").html());
xosDetailLinkTemplate = _.template($("#xos-detail-link-template").html());
</script>
