From 3da17173411bb52d344e362a0c37b1b738f9ae84 Mon Sep 17 00:00:00 2001 From: Rune Harlyk Date: Mon, 19 Aug 2024 20:13:57 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=AA=87=20Implements=20major=20structure?= =?UTF-8?q?=20and=20service=20refactors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{routes => lib/components}/login.svelte | 0 .../{routes => lib/components}/menu.svelte | 25 +++++----- .../lib/components/widget/ChartWidget.svelte | 2 +- app/src/lib/stores/featureFlags.ts | 17 +++++++ app/src/lib/stores/imu.ts | 49 ++++++++----------- app/src/lib/stores/index.ts | 1 + app/src/lib/stores/user.ts | 39 +++++---------- .../color-utilities.ts} | 4 +- app/src/lib/utilities/index.ts | 3 ++ app/src/lib/utilities/svelte-utilities.ts | 12 ++--- app/src/routes/+layout.svelte | 27 +++++----- app/src/routes/+layout.ts | 3 -- app/src/routes/connections/ntp/NTP.svelte | 7 ++- app/src/routes/peripherals/i2c/i2c.svelte | 7 +-- app/src/routes/peripherals/imu/imu.svelte | 14 +++--- app/src/routes/system/metrics/+page.svelte | 6 ++- .../system/metrics/SystemMetrics.svelte | 2 +- .../routes/system/status/SystemStatus.svelte | 8 ++- app/src/routes/system/update/+page.svelte | 8 +-- .../update/GithubFirmwareManager.svelte | 9 ++-- app/src/routes/wifi/ap/Accesspoint.svelte | 7 ++- app/src/routes/wifi/sta/Scan.svelte | 2 +- app/src/routes/wifi/sta/Wifi.svelte | 8 +-- 23 files changed, 139 insertions(+), 121 deletions(-) rename app/src/{routes => lib/components}/login.svelte (100%) rename app/src/{routes => lib/components}/menu.svelte (92%) create mode 100644 app/src/lib/stores/featureFlags.ts rename app/src/lib/{DaisyUiHelper.ts => utilities/color-utilities.ts} (63%) diff --git a/app/src/routes/login.svelte b/app/src/lib/components/login.svelte similarity index 100% rename from app/src/routes/login.svelte rename to app/src/lib/components/login.svelte diff --git a/app/src/routes/menu.svelte b/app/src/lib/components/menu.svelte similarity index 92% rename from app/src/routes/menu.svelte rename to app/src/lib/components/menu.svelte index 89e305c..16a6781 100644 --- a/app/src/routes/menu.svelte +++ b/app/src/lib/components/menu.svelte @@ -24,6 +24,9 @@ import { page } from '$app/stores'; import { user } from '$lib/stores/user'; import { createEventDispatcher } from 'svelte'; + import { useFeatureFlags } from '$lib/stores/featureFlags'; + + const features = useFeatureFlags(); const appName = $page.data.app_name; @@ -70,7 +73,7 @@ title: 'Camera', icon: Camera, href: '/peripherals/camera', - feature: $page.data.features.camera, + feature: $features.camera, }, { title: 'Servo', @@ -82,20 +85,20 @@ title: 'IMU', icon: Rotate3d, href: '/peripherals/imu', - feature: $page.data.features.imu || $page.data.features.mag || $page.data.features.bmp, + feature: $features.imu || $features.mag || $features.bmp, } ] }, { title: 'Connections', icon: Remote, - feature: $page.data.features.ntp, + feature: $features.ntp, submenu: [ { title: 'NTP', icon: NTP, href: '/connections/ntp', - feature: $page.data.features.ntp, + feature: $features.ntp, } ] @@ -125,7 +128,7 @@ title: 'Users', icon: Users, href: '/user', - feature: $page.data.features.security && $user.admin, + feature: $features.security && $user.admin, }, { @@ -151,7 +154,7 @@ title: 'System Metrics', icon: Metrics, href: '/system/metrics', - feature: $page.data.features.analytics, + feature: $features.analytics, }, { @@ -159,10 +162,10 @@ icon: Update, href: '/system/update', feature: - ($page.data.features.ota || - $page.data.features.upload_firmware || - $page.data.features.download_firmware) && - (!$page.data.features.security || $user.admin), + ($features.ota || + $features.upload_firmware || + $features.download_firmware) && + (!$features.security || $user.admin), } ] } @@ -245,7 +248,7 @@
- {#if $page.data.features.security} + {#if $features.security}
{$user.username} diff --git a/app/src/lib/components/widget/ChartWidget.svelte b/app/src/lib/components/widget/ChartWidget.svelte index f8bfcf6..8bf8914 100644 --- a/app/src/lib/components/widget/ChartWidget.svelte +++ b/app/src/lib/components/widget/ChartWidget.svelte @@ -1,5 +1,5 @@ diff --git a/app/src/routes/system/metrics/SystemMetrics.svelte b/app/src/routes/system/metrics/SystemMetrics.svelte index e62bc13..b81d98f 100644 --- a/app/src/routes/system/metrics/SystemMetrics.svelte +++ b/app/src/routes/system/metrics/SystemMetrics.svelte @@ -6,7 +6,7 @@ import { cubicOut } from 'svelte/easing'; import { Chart, registerables } from 'chart.js'; import Metrics from '~icons/tabler/report-analytics'; - import { daisyColor } from '$lib/DaisyUiHelper'; + import { daisyColor } from '$lib/utilities'; import { analytics } from '$lib/stores/analytics'; Chart.register(...registerables); diff --git a/app/src/routes/system/status/SystemStatus.svelte b/app/src/routes/system/status/SystemStatus.svelte index 596c9c6..0340849 100644 --- a/app/src/routes/system/status/SystemStatus.svelte +++ b/app/src/routes/system/status/SystemStatus.svelte @@ -29,6 +29,10 @@ import { api } from '$lib/api'; import { convertSeconds } from '$lib/utilities'; + import { useFeatureFlags } from '$lib/stores/featureFlags'; + + const features = useFeatureFlags() + let systemInformation: SystemInformation; async function getSystemStatus() { @@ -295,12 +299,12 @@
- {#if $page.data.features.sleep} + {#if $features.sleep} {/if} - {#if !$page.data.features.security || $user.admin} + {#if !$features.security || $user.admin} diff --git a/app/src/routes/system/update/+page.svelte b/app/src/routes/system/update/+page.svelte index 9611a4e..7c46007 100644 --- a/app/src/routes/system/update/+page.svelte +++ b/app/src/routes/system/update/+page.svelte @@ -2,15 +2,17 @@ import UploadFirmware from './UploadFirmware.svelte'; import GithubFirmwareManager from './GithubFirmwareManager.svelte'; import { user } from '$lib/stores/user'; - import { page } from '$app/stores'; + import { useFeatureFlags } from '$lib/stores'; + + const features = useFeatureFlags();
- {#if $page.data.features.download_firmware && (!$page.data.features.security || $user.admin)} + {#if $features.download_firmware && (!$features.security || $user.admin)} {/if} - {#if $page.data.features.upload_firmware && (!$page.data.features.security || $user.admin)} + {#if $features.upload_firmware && (!$features.security || $user.admin)} {/if}
diff --git a/app/src/routes/system/update/GithubFirmwareManager.svelte b/app/src/routes/system/update/GithubFirmwareManager.svelte index 59e5cf2..1fdd3f6 100644 --- a/app/src/routes/system/update/GithubFirmwareManager.svelte +++ b/app/src/routes/system/update/GithubFirmwareManager.svelte @@ -16,6 +16,9 @@ import InfoDialog from '$lib/components/InfoDialog.svelte'; import Check from '~icons/tabler/check'; import { api } from '$lib/api'; + import { useFeatureFlags } from '$lib/stores'; + + const features = useFeatureFlags(); async function getGithubAPI() { const headers = { @@ -45,7 +48,7 @@ // check if the asset is of type *.bin if ( assets[i].name.includes('.bin') && - assets[i].name.includes($page.data.features.firmware_built_target) + assets[i].name.includes($features.firmware_built_target) ) { url = assets[i].browser_download_url; } @@ -99,7 +102,7 @@ {#each githubReleases as release} @@ -124,7 +127,7 @@ {/if} - {#if compareVersions($page.data.features.firmware_version, release.tag_name) != 0} + {#if compareVersions($features.firmware_version, release.tag_name) != 0}
- {#if !$page.data.features.security || $user.admin} + {#if !$features.security || $user.admin}
- {#if !$page.data.features.security || $user.admin} + {#if !$features.security || $user.admin}
{dndNetworkList[index].ssid}
- {#if !$page.data.features.security || $user.admin} + {#if !$features.security || $user.admin}