{% extends it_requests_base|default:'base.html' %} {% load static %} {% comment %} Shared shell for every IT Requests page. Everything the section renders lives inside #itr-main, and navigation within the section is boosted onto that frame: links, filter pills, group switches and form posts are fetched with HTMX and swapped into #itr-main rather than reloading the whole document. Pages override `itr_content`, not `content`. `show:none` is load-bearing: hx-boost scrolls the target into view by default, which yanks the viewport down to the frame on every navigation. Any explicit `show:` value suppresses that, and only `top`/`bottom` mean anything to htmx. Two rules for templates rendered inside the frame: * a container that loads its own partial must set `hx-target="this"`, or it inherits the frame target and swaps the whole page into itself; * anything inside such a container that navigates must name the frame again (`hx-target="#itr-main" hx-swap="outerHTML show:none"`), since the nearest hx-target wins. {% endcomment %} {% block extra_head %} {% endblock %} {% block content %}
{# Boosted navigation never shows the browser's own loading indicator. #} {% block itr_content %}{% endblock %}
{% endblock %}