From fd831572f11c547505fcbb52e4bd9dd4d79fc073 Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Fri, 9 Dec 2022 14:28:50 -0800 Subject: [PATCH] Initial migration UI --- locales/en-US.yml | 8 ++ .../src/server/api/endpoints/i/move.ts | 3 +- packages/client/src/pages/admin/migration.vue | 91 +++++++++++++++++++ packages/client/src/pages/settings/index.vue | 5 + .../client/src/pages/settings/security.vue | 8 +- packages/client/src/router.ts | 4 + 6 files changed, 113 insertions(+), 6 deletions(-) create mode 100644 packages/client/src/pages/admin/migration.vue diff --git a/locales/en-US.yml b/locales/en-US.yml index aaef40b34..57e18837e 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -921,6 +921,14 @@ swipeOnDesktop: "Allow mobile-style swiping on desktop" logoImageUrl: "Logo image URL" showAdminUpdates: "Indicate a new Calckey version is avaliable (admin only)" replayTutorial: "Replay tutorial" +migration: "Migration" +moveTo: "Move current account to new account" +moveToLabel: "Account you're moving to" +moveAccount: "Move account!" +moveAccountDescription: "This process is irriversable. Make sure you've set up an alias for this account on your new account before moving. Please enter the tag of the account formatted like @person@instance.com" +moveFrom: "Move to this account from an older account" +moveFromLabel: "Old account" +moveFromDescription: "This will set an alias of your old account so that you can move from that account to this current one. Please enter the tag of the account formatted like @person@instance.com" _sensitiveMediaDetection: description: "Reduces the effort of server moderation through automatically recognizing NSFW media via Machine Learning. This will slightly increase the load on the server." diff --git a/packages/backend/src/server/api/endpoints/i/move.ts b/packages/backend/src/server/api/endpoints/i/move.ts index a1ee31d51..c67a7bdf5 100644 --- a/packages/backend/src/server/api/endpoints/i/move.ts +++ b/packages/backend/src/server/api/endpoints/i/move.ts @@ -40,7 +40,6 @@ export const paramDef = { // eslint-disable-next-line import/no-default-export export default define(meta, paramDef, async (ps, user) => { - - + // TODO return; }); diff --git a/packages/client/src/pages/admin/migration.vue b/packages/client/src/pages/admin/migration.vue new file mode 100644 index 000000000..5fca8b837 --- /dev/null +++ b/packages/client/src/pages/admin/migration.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/packages/client/src/pages/settings/index.vue b/packages/client/src/pages/settings/index.vue index 9a03c8f28..f6ca654ef 100644 --- a/packages/client/src/pages/settings/index.vue +++ b/packages/client/src/pages/settings/index.vue @@ -134,6 +134,11 @@ const menuDef = computed(() => [{ }, { title: i18n.ts.otherSettings, items: [{ + icon: 'ph-airplane-takeoff-bold ph-lg', + text: i18n.ts.migration, + to: '/settings/migration', + active: currentPage?.route.name === 'migration', + }, { icon: 'ph-package-bold ph-lg', text: i18n.ts.importAndExport, to: '/settings/import-export', diff --git a/packages/client/src/pages/settings/security.vue b/packages/client/src/pages/settings/security.vue index db59f9b8a..a5fbc774e 100644 --- a/packages/client/src/pages/settings/security.vue +++ b/packages/client/src/pages/settings/security.vue @@ -9,7 +9,7 @@ - + @@ -52,7 +52,7 @@ const pagination = { limit: 5, }; -async function change() { +async function change(): Promise { const { canceled: canceled1, result: currentPassword } = await os.inputText({ title: i18n.ts.currentPassword, type: 'password', @@ -78,14 +78,14 @@ async function change() { }); return; } - + os.apiWithDialog('i/change-password', { currentPassword, newPassword, }); } -function regenerateToken() { +function regenerateToken(): void { os.inputText({ title: i18n.ts.password, type: 'password', diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts index 6f6034eed..625d65211 100644 --- a/packages/client/src/router.ts +++ b/packages/client/src/router.ts @@ -180,6 +180,10 @@ export const routes = [{ path: '/preferences-backups', name: 'preferences-backups', component: page(() => import('./pages/settings/preferences-backups.vue')), + }, { + path: '/migration', + name: 'migration', + component: page(() => import('./pages/settings/migration.vue')), }, { path: '/custom-css', name: 'general',