<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-tenant-buttons-noslice-template">
  <div class="box save-box">
    <button class="btn btn-high btn-tenant-create">Create New Slice</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.usersBuffer,
                          unpickedItems: array_subtract(xos.tenant().current_user_site_users, model.usersBuffer),
                          id: "users",
                          fieldName: "users",
                          detailView: detailView,
                          lookupFunc: function(x) { return array_pair_lookup(x,
                                                     $.merge($.merge([], xos.tenant().current_user_site_user_names), model.user_namesOrig),
                                                     $.merge($.merge([], xos.tenant().current_user_site_users), model.usersOrig)); },
                          } ) %>
</script>

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

<div id="tenant-addslice-dialog" title="Create New Slice">
<div id="tenant-addslice-interior"></div>
</div>

<div id="tenant-edit-users-dialog" title="Edit Users">
<div id="tenant-edit-users-interior"></div>
</div>

<div id="xos-error-dialog" title="Error Message">
</div>

<div id="xos-tenant-view-panel"> <!-- 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' %}
