<script src="{{ STATIC_URL }}/js/vendor/underscore-min.js"></script>
<script src="{{ STATIC_URL }}/js/vendor/backbone.js"></script>
<script src="{{ STATIC_URL }}/js/vendor/backbone.syphon.js"></script>
<script src="{{ STATIC_URL }}/js/vendor/backbone.wreqr.js"></script>
<script src="{{ STATIC_URL }}/js/vendor/backbone.babysitter.js"></script>
<script src="{{ STATIC_URL }}/js/vendor/backbone.marionette.js"></script>

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="{% static 'css/xosAdminDashboard.css' %}" media="all" >
<link rel="stylesheet" type="text/css" href="{% static 'css/xosAdminSite.css' %}" media="all" >

<script src="{{ STATIC_URL }}/js/xoslib/xos-util.js"></script>
<script src="{{ STATIC_URL }}/js/xoslib/xos-defaults.js"></script>
<script src="{{ STATIC_URL }}/js/xoslib/xos-validators.js"></script>
<script src="{{ STATIC_URL }}/js/xoslib/xos-backbone.js"></script>
<script src="{{ STATIC_URL }}/js/xoslib/xosHelper.js"></script>
<script src="{{ STATIC_URL }}/js/picker.js"></script>
<script src="{{ STATIC_URL }}/js/xosTenant.js"></script>

<script type="text/template" id="xos-tenant-buttons-template">
  <div class="box save-box">
    <button class="btn btn-high btn-tenant-create">Create New Slice</button>
    <button class="btn btn-high btn-tenant-delete">Delete Slice</button>
    <button class="btn btn-high btn-tenant-add-user">Edit Users</button>
    <button class="btn btn-high btn-tenant-save">Save</button>
  </div>
</script>

<script type="text/template" id="xos-log-template">
  <tr id="<%= logMessageId %>" class="xos-log xos-<%= statusclass %>">
     <td><%= what %><br>
         <%= status %> <%= statusText %>
     </td>
  </tr>
</script>

<script type="text/template" id="tenant-edit-users">
    <%= xosPickerTemplate({pickedItems: model.attributes.users,
                          unpickedItems: array_diff(xos.tenant().current_user_site_users, model.attributes.users),
                          id: "users",
                          fieldName: "users",
                          detailView: detailView,
                          lookupFunc: function(x) { return array_pair_lookup(x, xos.tenant().current_user_site_user_names, xos.tenant().current_user_site_users); },
                          } ) %>
</script>

<div id="xos-confirm-dialog" title="Confirmation Required">
  Are you sure about this?
</div>

<div id="tenant-addslice-dialog" title="Add Child">
<div id="tenant-addslice-interior"></div>
</div>

<div id="tenant-edit-users-dialog" title="Add Child">
<div id="tenant-edit-users-interior"></div>
</div>

<div id="xos-error-dialog" title="Error Message">
</div>

<div id="contentPanel">
<div id="contentTitle">
</div>
<div id="contentButtonPanel">

<div id="rightButtonPanel"></div>

<div class="box" id="logPanel">
<table id="logTable">
<tbody>
</tbody>
</table> <!-- end logTable -->
</div> <!-- end logPanel -->
</div> <!-- end contentButtonPanel -->

<div id="contentInner">

<div id="tenantSliceSelector">
</div>
<div id="tenantSummary">
</div>
<div id="tenantSiteList">
</div>
<div id="tenantButtons">
</div>

</div> <!-- end contentInner -->
</div> <!-- end contentPanel -->

{% include 'xosAdmin.html' %}
