mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-13 07:12:16 -06:00
The htmx/table.html template was unconditionally including out-of-band (OOB) swaps for UI elements that only exist on list pages, causing htmx:oobErrorNoTarget errors when tables were embedded on detail pages. This change adds checks for table.embedded to conditionally exclude OOB swaps for .total-object-count, #table_save_link, and .bulk-action-buttons when rendering embedded tables via the htmx_table template tag.
36 lines
1.5 KiB
HTML
36 lines
1.5 KiB
HTML
{# Render an HTMX-enabled table with paginator #}
|
|
{% load helpers %}
|
|
{% load buttons %}
|
|
{% load render_table from django_tables2 %}
|
|
|
|
<div class="htmx-container table-responsive">
|
|
{% with preferences|get_key:"pagination.placement" as paginator_placement %}
|
|
{% if paginator_placement == 'top' or paginator_placement == 'both' %}
|
|
{% include 'inc/paginator.html' with htmx=True table=table paginator=table.paginator page=table.page placement='top' %}
|
|
{% endif %}
|
|
{% render_table table 'inc/table_htmx.html' %}
|
|
{% if paginator_placement != 'top' %}
|
|
{% include 'inc/paginator.html' with htmx=True table=table paginator=table.paginator page=table.page %}
|
|
{% endif %}
|
|
{% endwith %}
|
|
</div>
|
|
|
|
{% if request.htmx %}
|
|
{# Include the updated object count for display elsewhere on the page #}
|
|
{% if not table.embedded %}
|
|
<div hx-swap-oob="innerHTML:.total-object-count">{{ table.rows|length }}</div>
|
|
{% endif %}
|
|
|
|
{# Include the updated "save" link for the table configuration #}
|
|
{% if table.config_params and not table.embedded %}
|
|
<a class="dropdown-item" hx-swap-oob="outerHTML:#table_save_link" href="{% url 'extras:tableconfig_add' %}?{{ table.config_params }}&return_url={{ request.path }}" id="table_save_link">Save</a>
|
|
{% endif %}
|
|
|
|
{# Update the bulk action buttons with new query parameters #}
|
|
{% if actions and not table.embedded %}
|
|
<div class="bulk-action-buttons" hx-swap-oob="outerHTML:.bulk-action-buttons">
|
|
{% action_buttons actions model multi=True %}
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|