From e4e4d0c0ec4925c676d2bceb42717ce6fd8af1d5 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Sat, 25 Feb 2023 12:04:57 -0500 Subject: [PATCH] Fixes #11753: Avoid re-initializing SlimSelects --- netbox/project-static/dist/netbox.js | Bin 436660 -> 436731 bytes netbox/project-static/dist/netbox.js.map | Bin 400541 -> 400559 bytes netbox/project-static/src/dashboard.ts | 6 ++++++ netbox/project-static/src/htmx.ts | 1 - netbox/project-static/src/select/api/index.ts | 2 +- netbox/project-static/src/select/color.ts | 4 +++- netbox/project-static/src/select/static.ts | 2 +- netbox/templates/home.html | 2 +- 8 files changed, 12 insertions(+), 5 deletions(-) diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index fdd9dc9433599baac375e2dff44432d30bb93e5d..f34ab134c8cc93a69342810b4e8621185eb570ae 100644 GIT binary patch delta 277 zcmdmTS?c#?sfHHD7N!>F7M3lnoE?HzdHE$8(J6@~iMqwbnJKZF+c`T}Cop0WpV`TJ z35$4pb~o$x>~6MW!pxaz8q*ifXOWOsN=YovNXkzvN>S3ZwaqKd$w8_oK@NmXflw4 zVNzbEZAqqHabj7jhN7XSbwD;yl}=u!rd~-#YMw@MrmbCdUa>~;bb}@~vFSPs*d!T? Wr)M{_scg?$z}CRBoqH+UN)`ap$X`bQ delta 181 zcmV;m080P+(;BqX8i0fWgaU*Egaot&35d5Ehy{=Vx4Vf2(gBB_iv_oyiw4FM1#D$> zAZeGLp9UtEvYG`Pm*AfU5tmqo1uU1LUj-eP=YR$hGIC{fb#iVyY-MyHa%nwjX)beN zc4a6bF)2GxYba%DEOKcnE_7&RZYXYPJwAJGb0}_?exL>~0dBXhpa!G_A!BcDb8l>A jE^KdSC?aWYX>>$oaAjm=ZewX>b0{eyDLc1Pr3R@4XSYIq diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map index 6b7879775b8b442e016249fcb212dc9f4b3cd166..5286b72bb39b8369aa9942f10c15de17f4ff8dd4 100644 GIT binary patch delta 149 zcmbQcQ)2y2iG~)&7N!>F7M3lnr*)W0owuLWVRd5UbIx#5#F7M3lnr*)W$owlFVVRd2@aMX6vv2bz(QO=IeS#H~9^;m-$ z84afw>a!{^RXS~-tk3%WDYI*V^Y)FRY`lz2hECfLh_N*>^9MRQ2I_b^I(q69IypK= SO?Q-Ho6YF4{jL<-B}M=O9U_VV diff --git a/netbox/project-static/src/dashboard.ts b/netbox/project-static/src/dashboard.ts index 4efc3899c..6ce10bdab 100644 --- a/netbox/project-static/src/dashboard.ts +++ b/netbox/project-static/src/dashboard.ts @@ -13,6 +13,12 @@ async function saveDashboardLayout( } export function initDashboard(): void { + // Exit if this page does not contain a dashboard + const dashboard = document.getElementById('dashboard') as Nullable; + if (dashboard == null) { + return; + } + // Initialize the grid let grid = GridStack.init({ cellHeight: 100, diff --git a/netbox/project-static/src/htmx.ts b/netbox/project-static/src/htmx.ts index bd80a0c49..5b2c65d80 100644 --- a/netbox/project-static/src/htmx.ts +++ b/netbox/project-static/src/htmx.ts @@ -3,7 +3,6 @@ import { initButtons } from './buttons'; import { initSelect } from './select'; function initDepedencies(): void { - console.log('initDepedencies()'); for (const init of [initButtons, initSelect]) { init(); } diff --git a/netbox/project-static/src/select/api/index.ts b/netbox/project-static/src/select/api/index.ts index 59a9ee59b..3fef1ad6a 100644 --- a/netbox/project-static/src/select/api/index.ts +++ b/netbox/project-static/src/select/api/index.ts @@ -2,7 +2,7 @@ import { getElements } from '../../util'; import { APISelect } from './apiSelect'; export function initApiSelect(): void { - for (const select of getElements('.netbox-api-select')) { + for (const select of getElements('.netbox-api-select:not([data-ssid])')) { new APISelect(select); } } diff --git a/netbox/project-static/src/select/color.ts b/netbox/project-static/src/select/color.ts index e2c93c37c..4c8d6454a 100644 --- a/netbox/project-static/src/select/color.ts +++ b/netbox/project-static/src/select/color.ts @@ -40,7 +40,9 @@ function styleContainer( * the selected option. */ export function initColorSelect(): void { - for (const select of getElements('select.netbox-color-select')) { + for (const select of getElements( + 'select.netbox-color-select:not([data-ssid])', + )) { for (const option of select.options) { if (canChangeColor(option)) { // Get the background color from the option's value. diff --git a/netbox/project-static/src/select/static.ts b/netbox/project-static/src/select/static.ts index c649537ba..19031bb7d 100644 --- a/netbox/project-static/src/select/static.ts +++ b/netbox/project-static/src/select/static.ts @@ -2,7 +2,7 @@ import SlimSelect from 'slim-select'; import { getElements } from '../util'; export function initStaticSelect(): void { - for (const select of getElements('.netbox-static-select')) { + for (const select of getElements('.netbox-static-select:not([data-ssid])')) { if (select !== null) { const label = document.querySelector(`label[for="${select.id}"]`) as HTMLLabelElement; diff --git a/netbox/templates/home.html b/netbox/templates/home.html index 5bed19d9d..de8a26a7f 100644 --- a/netbox/templates/home.html +++ b/netbox/templates/home.html @@ -24,7 +24,7 @@ {% block content-wrapper %} {# Render the user's customized dashboard #} -
+
{% for widget in dashboard %} {% include 'extras/dashboard/widget.html' %} {% endfor %}