From cdba3085975ffc453d213ceb282c25f065d8de33 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 17 Jan 2024 12:46:26 -0500 Subject: [PATCH] Restore dark mode togle functionality --- netbox/project-static/dist/netbox.js | Bin 456754 -> 456524 bytes netbox/project-static/dist/netbox.js.map | Bin 370801 -> 370613 bytes netbox/project-static/src/colorMode.ts | 31 +++++------------------ netbox/templates/base/base.html | 9 +++++++ netbox/templates/base/layout.html | 8 +++--- 5 files changed, 20 insertions(+), 28 deletions(-) diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index b7b1bbf88319344649a84bac224bed6fa992bc04..cf76959988604b933bd4cc293e93f0c213125f8d 100644 GIT binary patch delta 11439 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 delta 11773 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 DEfr;z diff --git a/netbox/project-static/src/colorMode.ts b/netbox/project-static/src/colorMode.ts index dfd05df4f..7883a9630 100644 --- a/netbox/project-static/src/colorMode.ts +++ b/netbox/project-static/src/colorMode.ts @@ -1,10 +1,6 @@ import { getElements, isTruthy } from './util'; const COLOR_MODE_KEY = 'netbox-color-mode'; -const TEXT_WHEN_DARK = 'Light Mode'; -const TEXT_WHEN_LIGHT = 'Dark Mode'; -const ICON_WHEN_DARK = 'mdi-lightbulb-on'; -const ICON_WHEN_LIGHT = 'mdi-lightbulb'; /** * Determine if a value is a supported color mode string value. @@ -24,23 +20,11 @@ function storeColorMode(mode: ColorMode): void { } function updateElements(targetMode: ColorMode): void { - document.documentElement.setAttribute(`data-${COLOR_MODE_KEY}`, targetMode); - - for (const text of getElements('span.color-mode-text')) { - if (targetMode === 'light') { - text.innerText = TEXT_WHEN_LIGHT; - } else if (targetMode === 'dark') { - text.innerText = TEXT_WHEN_DARK; - } - } - for (const icon of getElements('i.color-mode-icon', 'span.color-mode-icon')) { - if (targetMode === 'light') { - icon.classList.remove(ICON_WHEN_DARK); - icon.classList.add(ICON_WHEN_LIGHT); - } else if (targetMode === 'dark') { - icon.classList.remove(ICON_WHEN_LIGHT); - icon.classList.add(ICON_WHEN_DARK); - } + const body = document.querySelector('body'); + if (body && targetMode == 'dark') { + body.setAttribute('data-bs-theme', 'dark'); + } else if (body) { + body.setAttribute('data-bs-theme', 'light'); } for (const elevation of getElements('.rack_elevation')) { @@ -57,9 +41,8 @@ function updateElements(targetMode: ColorMode): void { * @param mode Target color mode. */ export function setColorMode(mode: ColorMode): void { - for (const func of [storeColorMode, updateElements]) { - func(mode); - } + storeColorMode(mode); + updateElements(mode); } /** diff --git a/netbox/templates/base/base.html b/netbox/templates/base/base.html index 2a8495626..1958fa556 100644 --- a/netbox/templates/base/base.html +++ b/netbox/templates/base/base.html @@ -7,6 +7,15 @@ lang="en" data-netbox-url-name="{{ request.resolver_match.url_name }}" data-netbox-base-path="{{ settings.BASE_PATH }}" + {% with preferences|get_key:'ui.colormode' as color_mode %} + {% if color_mode == 'dark'%} + data-netbox-color-mode="dark" + {% elif color_mode == 'light' %} + data-netbox-color-mode="light" + {% else %} + data-netbox-color-mode="unset" + {% endif %} + {% endwith %} > diff --git a/netbox/templates/base/layout.html b/netbox/templates/base/layout.html index 01ab5b4db..fff12c1e8 100644 --- a/netbox/templates/base/layout.html +++ b/netbox/templates/base/layout.html @@ -51,12 +51,12 @@ Blocks: