From 1100e908b79ddecd1198c682ac3dcc41f2871122 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Thu, 22 Feb 2024 16:45:42 +0100 Subject: [PATCH] feat(settings): Split account management and app store views into chunks Signed-off-by: Ferdinand Thiessen --- apps/settings/src/app-types.ts | 70 ++++++ apps/settings/src/components/AppList.vue | 32 ++- apps/settings/src/store/apps.js | 1 - apps/settings/src/views/AppStore.vue | 73 ++++-- .../views/{Users.vue => UserManagement.vue} | 210 +++++++++--------- .../src/views/UserManagementNavigation.vue | 5 + 6 files changed, 258 insertions(+), 133 deletions(-) create mode 100644 apps/settings/src/app-types.ts rename apps/settings/src/views/{Users.vue => UserManagement.vue} (64%) create mode 100644 apps/settings/src/views/UserManagementNavigation.vue diff --git a/apps/settings/src/app-types.ts b/apps/settings/src/app-types.ts new file mode 100644 index 00000000000..99f0c1ef679 --- /dev/null +++ b/apps/settings/src/app-types.ts @@ -0,0 +1,70 @@ +/** + * @copyright Copyright (c) 2024 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +export interface IAppstoreCategory { + /** + * The category ID + */ + id: string + /** + * The display name (can be localized) + */ + displayName: string + /** + * Inline SVG path + */ + icon: string +} + +export interface IAppstoreAppRelease { + version: string + translations: { + [key: string]: { + changelog: string + } + } +} + +export interface IAppstoreApp { + id: string + name: string + summary: string + description: string + licence: string + author: string[] | Record + level: number + version: string + category: string|string[] + + preview?: string + screenshot?: string + + active: boolean + internal: boolean + removeable: boolean + installed: boolean + canInstall: boolean + canUninstall: boolean + isCompatible: boolean + + appstoreData: Record + releases: IAppstoreAppRelease[] +} diff --git a/apps/settings/src/components/AppList.vue b/apps/settings/src/components/AppList.vue index 324fa6b0537..320d6a60e95 100644 --- a/apps/settings/src/components/AppList.vue +++ b/apps/settings/src/components/AppList.vue @@ -139,6 +139,7 @@ + + diff --git a/apps/settings/src/views/Users.vue b/apps/settings/src/views/UserManagement.vue similarity index 64% rename from apps/settings/src/views/Users.vue rename to apps/settings/src/views/UserManagement.vue index d44fa7c8416..d25071e63ed 100644 --- a/apps/settings/src/views/Users.vue +++ b/apps/settings/src/views/UserManagement.vue @@ -22,119 +22,117 @@