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 @@
+
+
+
+
+
+ {{ $t('demo.title') }}
+ {{ $t('demo.everythingWillBeDeleted') }}
+
+
hide = true" class="hide-button">
+
+
+
+
+
+
\ 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