diff --git a/assets/images/logo/inventree.png b/assets/images/logo/inventree.png
index e4626e0abe..b11dfcac84 100644
Binary files a/assets/images/logo/inventree.png and b/assets/images/logo/inventree.png differ
diff --git a/assets/images/logo/inventree.svg b/assets/images/logo/inventree.svg
index f2bb05ffae..bfa0393089 100644
--- a/assets/images/logo/inventree.svg
+++ b/assets/images/logo/inventree.svg
@@ -2,49 +2,52 @@
diff --git a/assets/images/logo/inventree_logo_large.png b/assets/images/logo/inventree_logo_large.png
deleted file mode 100644
index 845e718536..0000000000
Binary files a/assets/images/logo/inventree_logo_large.png and /dev/null differ
diff --git a/assets/images/logo/inventree_logo_old.svg b/assets/images/logo/inventree_logo_old.svg
deleted file mode 100644
index a65006db56..0000000000
--- a/assets/images/logo/inventree_logo_old.svg
+++ /dev/null
@@ -1,213 +0,0 @@
-
-
-
-
diff --git a/src/backend/InvenTree/InvenTree/api.py b/src/backend/InvenTree/InvenTree/api.py
index 1dfc53fa5c..ae4123d76c 100644
--- a/src/backend/InvenTree/InvenTree/api.py
+++ b/src/backend/InvenTree/InvenTree/api.py
@@ -307,7 +307,7 @@ class InfoView(APIView):
'docker_mode': settings.DOCKER,
'default_locale': settings.LANGUAGE_CODE,
'customize': {
- 'logo': helpers.getLogoImage(),
+ 'logo': helpers.getLogoImage(backup=False),
'splash': helpers.getSplashScreen(),
'login_message': helpers.getCustomOption('login_message'),
'navbar_message': helpers.getCustomOption('navbar_message'),
diff --git a/src/backend/InvenTree/InvenTree/helpers.py b/src/backend/InvenTree/InvenTree/helpers.py
index 7b7cef24d5..e9efdb14a3 100644
--- a/src/backend/InvenTree/InvenTree/helpers.py
+++ b/src/backend/InvenTree/InvenTree/helpers.py
@@ -5,7 +5,6 @@ import hashlib
import inspect
import io
import json
-import os.path
import re
from decimal import Decimal, InvalidOperation
from pathlib import Path
@@ -262,8 +261,14 @@ def checkStaticFile(*args) -> bool:
return static_storage.exists(str(fn))
-def getLogoImage(as_file=False, custom=True):
- """Return the InvenTree logo image, or a custom logo if available."""
+def getLogoImage(as_file: bool = False, custom: bool = True, backup: bool = True):
+ """Return the InvenTree logo image, or a custom logo if available.
+
+ Arguments:
+ as_file: Return a file path instead of a URL (default = False)
+ custom: Use a custom logo if available (default = True)
+ backup: Use a backup logo if available (default = True)
+ """
if custom and settings.CUSTOM_LOGO:
static_storage = StaticFilesStorage()
@@ -279,14 +284,17 @@ def getLogoImage(as_file=False, custom=True):
return f'file://{storage.path(settings.CUSTOM_LOGO)}'
return storage.url(settings.CUSTOM_LOGO)
- # If we have got to this point, return the default logo
- if as_file:
- path = settings.STATIC_ROOT.joinpath('img/inventree.png')
- return f'file://{path}'
- return getStaticUrl('img/inventree.png')
+ # If we have got to this point, return the default logo (if requested)
+ if backup:
+ if as_file:
+ path = settings.STATIC_ROOT.joinpath('img/inventree.png')
+ return f'file://{path}'
+ return getStaticUrl('img/inventree.png')
+
+ return None
-def getSplashScreen(custom=True):
+def getSplashScreen(custom: bool = True):
"""Return the InvenTree splash screen, or a custom splash if available."""
static_storage = StaticFilesStorage()
@@ -307,24 +315,6 @@ def getCustomOption(reference: str):
return settings.CUSTOMIZE.get(reference, None)
-def TestIfImageURL(url):
- """Test if an image URL (or filename) looks like a valid image format.
-
- Simply tests the extension against a set of allowed values
- """
- return os.path.splitext(os.path.basename(url))[-1].lower() in [
- '.jpg',
- '.jpeg',
- '.j2k',
- '.png',
- '.bmp',
- '.tif',
- '.tiff',
- '.webp',
- '.gif',
- ]
-
-
def str2bool(text, test=True) -> bool:
"""Test if a string 'looks' like a boolean value.
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-144x144.png b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-144x144.png
index f810274aec..29d80bd30c 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-144x144.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-144x144.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-192x192.png b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-192x192.png
index a4d1885ed6..c40686c889 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-192x192.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-192x192.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-36x36.png b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-36x36.png
index 69d8a76a39..ff693dc738 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-36x36.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-36x36.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-48x48.png b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-48x48.png
index e71145b370..e3bbd5ffc9 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-48x48.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-48x48.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-72x72.png b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-72x72.png
index 31e3fdc063..1cd3333778 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-72x72.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-72x72.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-96x96.png b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-96x96.png
index aa1e58b5af..567e530717 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-96x96.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/android-icon-96x96.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-114x114.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-114x114.png
index 6f06cfb989..c8e85c4f35 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-114x114.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-114x114.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-120x120.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-120x120.png
index 77f26c1d55..84f55315e2 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-120x120.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-120x120.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-144x144.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-144x144.png
index f810274aec..29d80bd30c 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-144x144.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-144x144.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-152x152.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-152x152.png
index e9932969ad..4e0265c0be 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-152x152.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-152x152.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-180x180.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-180x180.png
index 63a3bf1467..ab2c200c24 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-180x180.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-180x180.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-57x57.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-57x57.png
index 9b821a63d4..f2821b7a54 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-57x57.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-57x57.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-60x60.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-60x60.png
index 171adbdc97..fc1a6a8c20 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-60x60.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-60x60.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-72x72.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-72x72.png
index 31e3fdc063..1cd3333778 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-72x72.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-72x72.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-76x76.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-76x76.png
index 8ba68d7421..96b3e59ec9 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-76x76.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-76x76.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-precomposed.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-precomposed.png
index b971323c6c..ab2c200c24 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-precomposed.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon-precomposed.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon.png b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon.png
index b971323c6c..ab2c200c24 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/apple-icon.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-16x16.png b/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-16x16.png
index e0da7c028e..034f4bd920 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-16x16.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-16x16.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-32x32.png b/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-32x32.png
index 9594ce7474..ad76bf77cf 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-32x32.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-32x32.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-96x96.png b/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-96x96.png
index aa1e58b5af..567e530717 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-96x96.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/favicon-96x96.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/favicon.ico b/src/backend/InvenTree/InvenTree/static/img/favicon/favicon.ico
index c9b535a0c1..b78151d019 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/favicon.ico and b/src/backend/InvenTree/InvenTree/static/img/favicon/favicon.ico differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-144x144.png b/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-144x144.png
index f810274aec..29d80bd30c 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-144x144.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-144x144.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-150x150.png b/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-150x150.png
index 3a3d76897e..62bfcef7bd 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-150x150.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-150x150.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-310x310.png b/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-310x310.png
index fc66cd4af0..48aade2e76 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-310x310.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-310x310.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-70x70.png b/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-70x70.png
index d5e5bcbb98..d79cb8bbf3 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-70x70.png and b/src/backend/InvenTree/InvenTree/static/img/favicon/ms-icon-70x70.png differ
diff --git a/src/backend/InvenTree/InvenTree/static/img/inventree.png b/src/backend/InvenTree/InvenTree/static/img/inventree.png
index e4626e0abe..b11dfcac84 100644
Binary files a/src/backend/InvenTree/InvenTree/static/img/inventree.png and b/src/backend/InvenTree/InvenTree/static/img/inventree.png differ
diff --git a/src/backend/InvenTree/InvenTree/tests.py b/src/backend/InvenTree/InvenTree/tests.py
index 7934f91324..3448d16178 100644
--- a/src/backend/InvenTree/InvenTree/tests.py
+++ b/src/backend/InvenTree/InvenTree/tests.py
@@ -643,14 +643,6 @@ class TestHelpers(TestCase):
InvenTree.helpers_model.construct_absolute_url(url), expected
)
- def test_image_url(self):
- """Test if a filename looks like an image."""
- for name in ['ape.png', 'bat.GiF', 'apple.WeBP', 'BiTMap.Bmp']:
- self.assertTrue(helpers.TestIfImageURL(name))
-
- for name in ['no.doc', 'nah.pdf', 'whatpng']:
- self.assertFalse(helpers.TestIfImageURL(name))
-
def test_str2bool(self):
"""Test string to boolean conversion."""
for s in ['yes', 'Y', 'ok', '1', 'OK', 'Ok', 'tRuE', 'oN']:
diff --git a/src/frontend/src/assets/inventree.svg b/src/frontend/src/assets/inventree.svg
index 1404d2cdaa..bfa0393089 100644
--- a/src/frontend/src/assets/inventree.svg
+++ b/src/frontend/src/assets/inventree.svg
@@ -1 +1,139 @@
-
+
+
+
+
diff --git a/src/frontend/src/components/items/InvenTreeLogo.tsx b/src/frontend/src/components/items/InvenTreeLogo.tsx
index b03f321980..067b830fa5 100644
--- a/src/frontend/src/components/items/InvenTreeLogo.tsx
+++ b/src/frontend/src/components/items/InvenTreeLogo.tsx
@@ -4,8 +4,8 @@ import { type ReactNode, forwardRef } from 'react';
import { NavLink } from 'react-router-dom';
import { useShallow } from 'zustand/react/shallow';
+import InvenTreeIcon from '../../assets/inventree.svg';
import { useServerApiState } from '../../states/ServerApiState';
-import InvenTreeIcon from './inventree.svg';
export const InvenTreeLogoHomeButton = forwardRef(
(props, ref) => {
@@ -26,16 +26,32 @@ export const InvenTreeLogoHomeButton = forwardRef(
* - Uses the custom logo if one is defined on the server
* - Otherwise, uses the default logo
*/
-export function InvenTreeLogo(): ReactNode {
+export function InvenTreeLogo({
+ size = 36
+}: {
+ size?: number;
+}): ReactNode {
const [server] = useServerApiState(
useShallow((state) => [state.server, state.fetchServerApiState])
);
if (server.server && server.customize?.logo) {
return (
-
+
);
}
- return
;
+ return (
+
+ );
}
diff --git a/src/frontend/src/components/items/inventree.svg b/src/frontend/src/components/items/inventree.svg
deleted file mode 100644
index 1404d2cdaa..0000000000
--- a/src/frontend/src/components/items/inventree.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/frontend/src/components/nav/NavHoverMenu.tsx b/src/frontend/src/components/nav/NavHoverMenu.tsx
index 21e8555e03..b5f4087cf1 100644
--- a/src/frontend/src/components/nav/NavHoverMenu.tsx
+++ b/src/frontend/src/components/nav/NavHoverMenu.tsx
@@ -8,7 +8,11 @@ export function NavHoverMenu({
openDrawer: () => void;
}>) {
return (
- openDrawer()} aria-label='navigation-menu'>
+ openDrawer()}
+ aria-label='navigation-menu'
+ style={{ display: 'flex', alignItems: 'center', height: 38 }}
+ >
);