diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index 10c0b5e7d..67fe58205 100644 Binary files a/netbox/project-static/dist/netbox.js and b/netbox/project-static/dist/netbox.js differ diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map index 1eb6368c9..c1aa91da0 100644 Binary files a/netbox/project-static/dist/netbox.js.map and b/netbox/project-static/dist/netbox.js.map differ diff --git a/netbox/project-static/src/select/classes/dynamicTomSelect.ts b/netbox/project-static/src/select/classes/dynamicTomSelect.ts index 72c9fe518..294383705 100644 --- a/netbox/project-static/src/select/classes/dynamicTomSelect.ts +++ b/netbox/project-static/src/select/classes/dynamicTomSelect.ts @@ -7,7 +7,7 @@ import { DynamicParamsMap } from './dynamicParamsMap'; // Transitional import { QueryFilter, PathFilter } from '../types' -import { getElement, replaceAll } from '../../util'; +import { findFirstAdjacent, getElement, replaceAll } from '../../util'; // Extends TomSelect to provide enhanced fetching of options via the REST API @@ -68,6 +68,9 @@ export class DynamicTomSelect extends TomSelect { this.updatePathValues(filter); } + // Initialize controlling elements. + this.initResetButton(); + // Add dependency event listeners. this.addEventListeners(); } @@ -311,6 +314,20 @@ export class DynamicTomSelect extends TomSelect { } } + /** + * Initialize any adjacent reset buttons so that when clicked, the page is reloaded without + * query parameters. + */ + private initResetButton(): void { + const resetButton = document.querySelector('button[data-reset-select]'); + + if (resetButton !== null) { + resetButton.addEventListener('click', () => { + window.location.assign(window.location.origin + window.location.pathname); + }); + } + } + /** * Events */