{% include 'netbox_spatial_lens/inc/levels.html' with site=object.effective_site floor=object %}
{% include 'netbox_spatial_lens/inc/help.html' with text='Drag a rack to move it. Click a rack to select it, then rotate or remove it. Pick a rack under Not yet placed, then click the floor to put it down. Ctrl + wheel zooms; drag the floor to move it when zoomed. Nothing is written until Save.' %}
{% include 'netbox_spatial_lens/inc/zoom.html' %}
{% include 'netbox_spatial_lens/inc/floor_svg.html' with floor=object zoomable=True %}
Not yet placed
{% for rack, width, depth, estimated in unplaced_racks %}
{{ rack.name }}{{ rack.u_height }}U
{% empty %}
Every rack at this site is placed.
{% endfor %}
{% comment %}
The editor is handed its ids and endpoints rather than deriving them, so the script stays free
of URL construction and works unchanged if the API is mounted elsewhere.
{% endcomment %}
{% comment %}
NetBox sets CSRF_COOKIE_HTTPONLY, so the editor cannot read the token from document.cookie and
every write would come back 403. This renders the readable copy it reads instead.
{% endcomment %}
{% endblock %}