From ed8fb71ff0b05860f320e2a1fe6c3cb29ed2889a Mon Sep 17 00:00:00 2001 From: kolaente Date: Fri, 1 Sep 2023 18:09:19 +0200 Subject: [PATCH] feat: add demo mode warning message Resolves https://kolaente.dev/vikunja/frontend/issues/2453 --- src/App.vue | 2 ++ src/components/home/DemoMode.vue | 49 ++++++++++++++++++++++++++++++++ src/i18n/lang/en.json | 5 ++++ src/stores/config.ts | 2 ++ src/views/user/Register.vue | 13 +++++++++ 5 files changed, 71 insertions(+) create mode 100644 src/components/home/DemoMode.vue diff --git a/src/App.vue b/src/App.vue index a5edca6be..95087120a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -15,6 +15,7 @@ + @@ -45,6 +46,7 @@ import {useBaseStore} from '@/stores/base' import {useColorScheme} from '@/composables/useColorScheme' import {useBodyClass} from '@/composables/useBodyClass' import AddToHomeScreen from '@/components/home/AddToHomeScreen.vue' +import DemoMode from '@/components/home/DemoMode.vue' const baseStore = useBaseStore() const authStore = useAuthStore() diff --git a/src/components/home/DemoMode.vue b/src/components/home/DemoMode.vue new file mode 100644 index 000000000..bd993525d --- /dev/null +++ b/src/components/home/DemoMode.vue @@ -0,0 +1,49 @@ + + + + + \ No newline at end of file diff --git a/src/i18n/lang/en.json b/src/i18n/lang/en.json index ca93154db..e4d12b0bb 100644 --- a/src/i18n/lang/en.json +++ b/src/i18n/lang/en.json @@ -11,6 +11,11 @@ "import": "Import your data into Vikunja" } }, + "demo": { + "title": "This instance is in demo mode. Do not use this for real data!", + "everythingWillBeDeleted": "Everything will be deleted in regular intervals!", + "accountWillBeDeleted": "Your account will be deleted, including all projects, tasks and attachments you might create." + }, "404": { "title": "Not found", "text": "The page you requested does not exist." diff --git a/src/stores/config.ts b/src/stores/config.ts index 711bf4fd2..c5dbe6973 100644 --- a/src/stores/config.ts +++ b/src/stores/config.ts @@ -26,6 +26,7 @@ export interface ConfigState { caldavEnabled: boolean, userDeletionEnabled: boolean, taskCommentsEnabled: boolean, + demoModeEnabled: boolean, auth: { local: { enabled: boolean, @@ -58,6 +59,7 @@ export const useConfigStore = defineStore('config', () => { caldavEnabled: false, userDeletionEnabled: true, taskCommentsEnabled: true, + demoModeEnabled: false, auth: { local: { enabled: true, diff --git a/src/views/user/Register.vue b/src/views/user/Register.vue index 26d89f28e..5faab1181 100644 --- a/src/views/user/Register.vue +++ b/src/views/user/Register.vue @@ -58,6 +58,17 @@ > {{ $t('user.auth.createAccount') }} + + + {{ $t('demo.title') }} + {{ $t('demo.accountWillBeDeleted') }}
+ {{ $t('demo.everythingWillBeDeleted') }} +
+

{{ $t('user.auth.alreadyHaveAnAccount') }} @@ -78,8 +89,10 @@ import {isEmail} from '@/helpers/isEmail' import Password from '@/components/input/password.vue' import {useAuthStore} from '@/stores/auth' +import {useConfigStore} from '@/stores/config' const authStore = useAuthStore() +const configStore = useConfigStore() // FIXME: use the `beforeEnter` hook of vue-router // Check if the user is already logged in, if so, redirect them to the homepage