From 6c80e90df124360ae5b3987e8ff638fb9b7fbaeb Mon Sep 17 00:00:00 2001 From: "marcel.kocisek" Date: Fri, 20 Sep 2024 08:53:06 +0200 Subject: [PATCH 1/5] Added: - app settings and app-settings-item component to handle advanced settings with action - Added settings page to admin - reset style for florating labels --- .../src/modules/layout/components/Sidebar.vue | 6 + web-app/packages/admin-app/src/router.ts | 22 +-- .../admin/components/AdminProjectsTable.vue | 3 + .../admin-lib/src/modules/admin/routes.ts | 3 +- .../modules/admin/views/AccountDetailView.vue | 136 +++++++----------- .../src/modules/admin/views/ProjectView.vue | 71 ++++----- .../src/modules/admin/views/SettingsView.vue | 54 +++++-- .../admin/views/SettingsViewTemplate.vue | 51 +++++-- .../themes/mm-theme-light/_extensions.scss | 5 + .../components/app-settings/AppSettings.vue | 28 ++++ .../app-settings/AppSettingsItem.vue | 23 +++ .../common/components/app-settings/index.ts | 7 + .../common/components/app-settings/types.ts | 5 + .../lib/src/common/components/index.ts | 1 + .../layout/components/SideBarTemplate.vue | 2 +- 15 files changed, 257 insertions(+), 160 deletions(-) create mode 100644 web-app/packages/lib/src/common/components/app-settings/AppSettings.vue create mode 100644 web-app/packages/lib/src/common/components/app-settings/AppSettingsItem.vue create mode 100644 web-app/packages/lib/src/common/components/app-settings/index.ts create mode 100644 web-app/packages/lib/src/common/components/app-settings/types.ts diff --git a/web-app/packages/admin-app/src/modules/layout/components/Sidebar.vue b/web-app/packages/admin-app/src/modules/layout/components/Sidebar.vue index c01bf6e4..d151c0fd 100644 --- a/web-app/packages/admin-app/src/modules/layout/components/Sidebar.vue +++ b/web-app/packages/admin-app/src/modules/layout/components/Sidebar.vue @@ -24,6 +24,12 @@ const sidebarItems = computed(() => [ to: '/projects', icon: 'ti ti-article', active: route.matched.some((item) => item.name === AdminRoutes.PROJECTS) + }, + { + title: 'Settings', + to: '/settings', + icon: 'ti ti-settings', + active: route.matched.some((item) => item.name === AdminRoutes.SETTINGS) } ]) diff --git a/web-app/packages/admin-app/src/router.ts b/web-app/packages/admin-app/src/router.ts index 38049626..32035f5f 100644 --- a/web-app/packages/admin-app/src/router.ts +++ b/web-app/packages/admin-app/src/router.ts @@ -5,11 +5,9 @@ import { AccountsView, AccountDetailView, - // SettingsView, - // ProjectSettingsView, + SettingsView, ProjectsView, ProjectView, - // LoginView, // useAdminStore AdminRoutes } from '@mergin/admin-lib' @@ -95,7 +93,7 @@ export const createRouter = (pinia: Pinia) => { header: AppHeader }, props: true - } + }, // redirect: { name: 'project-tree' }, // children: [ @@ -178,12 +176,16 @@ export const createRouter = (pinia: Pinia) => { // } // ] // }, - // { - // path: '/settings', - // name: 'settings', - // component: SettingsView, - // props: true - // } + { + path: '/settings', + name: AdminRoutes.SETTINGS, + components: { + default: SettingsView, + sidebar: Sidebar, + header: AppHeader + }, + props: true + } ] }) diff --git a/web-app/packages/admin-lib/src/modules/admin/components/AdminProjectsTable.vue b/web-app/packages/admin-lib/src/modules/admin/components/AdminProjectsTable.vue index 3992fb06..82bd31ea 100644 --- a/web-app/packages/admin-lib/src/modules/admin/components/AdminProjectsTable.vue +++ b/web-app/packages/admin-lib/src/modules/admin/components/AdminProjectsTable.vue @@ -45,6 +45,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-MerginMaps-Commercial @sort="onSort" @row-click="rowClick" data-cy="projects-table" + :row-class="(data) => (data.removed_at ? 'opacity-80' : '')" >