<!-- Error and Success templates -->

<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-log-template">
  <tr id="<%= logMessageId %>">
     <td><%= success %></td>
     <td><%= what %></td>
     <td><%= status %></td>
     <td><%= statusText %></td>
  </tr>
</script>

<script type="text/template" id="xos-status-template">
  <%= what %>: [<%= success %>] <%= statusText %> (<%= status %>)
</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><%= 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>
       </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>
       </td>
    </tr>
</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>
  </tr></thead>
  <tbody></tbody>
  </table>
</script>


<script type="text/template" id="xosAdmin-deployment-listitem-template">
  <td class="objectLink"><%= id %></td>
  <td class="objectLink"><%= name %></td>
  <td><%= backend_type %></td>
  <td><%= admin_tenant %></td>
  <td><%= sites.length %></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>
  <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 class="objectLink"><%= id %></td>
  <td class="objectLink"><%= 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>
  <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 class="objectLink"><%= id %></td>
  <td class="objectLink"><%= 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>
  <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 class="objectLink"><%= id %></td>
  <td class="objectLink"><%= 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>
  <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 class="objectLink"><%= 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>
  <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 class="objectLink"><%= 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>
  <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 class="objectLink"><%= id %></td>
  <td class="objectLink"><%= 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>
  <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 class="objectLink"><%= 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>
  <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 class="objectLink"><%= id %></td>
  <td class="objectLink"><%= 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>
  <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 class="objectLink"><%= id %></td>
  <td class="objectLink"><%= 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>
  <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 class="objectLink"><%= id %></td>
  <td class="objectLink"><%= 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>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>
  <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 class="objectLink"><%= 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>
  <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 class="objectLink"><%= 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>
  <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 class="objectLink"><%= id %></td>
  <td class="objectLink"><%= 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>
  <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 class="objectLink"><%= id %></td>
  <td class="objectLink"><%= 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>
  <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 class="objectLink"><%= 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());
</script>
