mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 12:18:45 -05:00
auto space creation and redirect to welcome page
This commit is contained in:
@@ -1,8 +1,14 @@
|
|||||||
|
from django.contrib.auth.models import Group
|
||||||
|
from django.http import HttpResponseRedirect
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django_scopes import scope, scopes_disabled
|
from django_scopes import scope, scopes_disabled
|
||||||
from oauth2_provider.contrib.rest_framework import OAuth2Authentication
|
from oauth2_provider.contrib.rest_framework import OAuth2Authentication
|
||||||
|
from psycopg2.errors import UniqueViolation
|
||||||
from rest_framework.exceptions import AuthenticationFailed
|
from rest_framework.exceptions import AuthenticationFailed
|
||||||
|
|
||||||
|
import random
|
||||||
|
|
||||||
|
from cookbook.models import Space, UserSpace
|
||||||
from cookbook.views import views
|
from cookbook.views import views
|
||||||
from recipes import settings
|
from recipes import settings
|
||||||
|
|
||||||
@@ -34,16 +40,20 @@ class ScopeMiddleware:
|
|||||||
if request.path.startswith(prefix + '/switch-space/'):
|
if request.path.startswith(prefix + '/switch-space/'):
|
||||||
return self.get_response(request)
|
return self.get_response(request)
|
||||||
|
|
||||||
with scopes_disabled():
|
|
||||||
if request.user.userspace_set.count() == 0 and not reverse('account_logout') in request.path:
|
|
||||||
return views.space_overview(request)
|
|
||||||
|
|
||||||
# get active user space, if for some reason more than one space is active select first (group permission checks will fail, this is not intended at this point)
|
# get active user space, if for some reason more than one space is active select first (group permission checks will fail, this is not intended at this point)
|
||||||
user_space = request.user.userspace_set.filter(active=True).first()
|
user_space = request.user.userspace_set.filter(active=True).first()
|
||||||
|
|
||||||
if not user_space:
|
if not user_space:
|
||||||
return views.space_overview(request)
|
if request.user.userspace_set.count() > 0:
|
||||||
|
# if the users has a userspace but nothing is active, activate the first one
|
||||||
|
user_space = request.user.userspace_set.filter(active=True).first()
|
||||||
|
user_space.active = True
|
||||||
|
user_space.save()
|
||||||
|
else:
|
||||||
|
# if user does not yet have a space create one for him
|
||||||
|
user_space = create_space_for_user(request.user)
|
||||||
|
|
||||||
|
# TODO remove the need for this view
|
||||||
if user_space.groups.count() == 0 and not reverse('account_logout') in request.path:
|
if user_space.groups.count() == 0 and not reverse('account_logout') in request.path:
|
||||||
return views.no_groups(request)
|
return views.no_groups(request)
|
||||||
|
|
||||||
@@ -65,3 +75,28 @@ class ScopeMiddleware:
|
|||||||
with scopes_disabled():
|
with scopes_disabled():
|
||||||
request.space = None
|
request.space = None
|
||||||
return self.get_response(request)
|
return self.get_response(request)
|
||||||
|
|
||||||
|
|
||||||
|
def create_space_for_user(user, name=None):
|
||||||
|
with scopes_disabled():
|
||||||
|
if not name:
|
||||||
|
name = f"{user.username}'s Space"
|
||||||
|
created_space = Space(name=name,
|
||||||
|
created_by=user,
|
||||||
|
max_file_storage_mb=settings.SPACE_DEFAULT_MAX_FILES,
|
||||||
|
max_recipes=settings.SPACE_DEFAULT_MAX_RECIPES,
|
||||||
|
max_users=settings.SPACE_DEFAULT_MAX_USERS,
|
||||||
|
allow_sharing=settings.SPACE_DEFAULT_ALLOW_SHARING,
|
||||||
|
ai_enabled=settings.SPACE_AI_ENABLED,
|
||||||
|
ai_credits_monthly=settings.SPACE_AI_CREDITS_MONTHLY,
|
||||||
|
space_setup_completed=False, )
|
||||||
|
try:
|
||||||
|
created_space.save()
|
||||||
|
except UniqueViolation:
|
||||||
|
created_space.name = f'{name} #{random.randrange(1, 10 ** 5)}'
|
||||||
|
created_space.save()
|
||||||
|
|
||||||
|
user_space = UserSpace.objects.create(space=created_space, user=user, active=True)
|
||||||
|
user_space.groups.add(Group.objects.filter(name='admin').get())
|
||||||
|
|
||||||
|
return user_space
|
||||||
|
|||||||
18
cookbook/migrations/0228_space_space_setup_completed.py
Normal file
18
cookbook/migrations/0228_space_space_setup_completed.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 5.2.6 on 2025-09-10 20:11
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('cookbook', '0001_squashed_0227_space_ai_default_provider_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='space',
|
||||||
|
name='space_setup_completed',
|
||||||
|
field=models.BooleanField(default=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -329,6 +329,8 @@ class Space(ExportModelOperationsMixin('space'), models.Model):
|
|||||||
demo = models.BooleanField(default=False)
|
demo = models.BooleanField(default=False)
|
||||||
food_inherit = models.ManyToManyField(FoodInheritField, blank=True)
|
food_inherit = models.ManyToManyField(FoodInheritField, blank=True)
|
||||||
|
|
||||||
|
space_setup_completed = models.BooleanField(default=True)
|
||||||
|
|
||||||
ai_enabled = models.BooleanField(default=True)
|
ai_enabled = models.BooleanField(default=True)
|
||||||
ai_credits_monthly = models.IntegerField(default=100)
|
ai_credits_monthly = models.IntegerField(default=100)
|
||||||
ai_credits_balance = models.DecimalField(default=0, max_digits=16, decimal_places=4)
|
ai_credits_balance = models.DecimalField(default=0, max_digits=16, decimal_places=4)
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ class SpaceSerializer(WritableNestedModelSerializer):
|
|||||||
'allow_sharing', 'demo', 'food_inherit', 'user_count', 'recipe_count', 'file_size_mb',
|
'allow_sharing', 'demo', 'food_inherit', 'user_count', 'recipe_count', 'file_size_mb',
|
||||||
'image', 'nav_logo', 'space_theme', 'custom_space_theme', 'nav_bg_color', 'nav_text_color',
|
'image', 'nav_logo', 'space_theme', 'custom_space_theme', 'nav_bg_color', 'nav_text_color',
|
||||||
'logo_color_32', 'logo_color_128', 'logo_color_144', 'logo_color_180', 'logo_color_192', 'logo_color_512', 'logo_color_svg', 'ai_credits_monthly',
|
'logo_color_32', 'logo_color_128', 'logo_color_144', 'logo_color_180', 'logo_color_192', 'logo_color_512', 'logo_color_svg', 'ai_credits_monthly',
|
||||||
'ai_credits_balance', 'ai_monthly_credits_used', 'ai_enabled', 'ai_default_provider')
|
'ai_credits_balance', 'ai_monthly_credits_used', 'ai_enabled', 'ai_default_provider', 'space_setup_completed')
|
||||||
read_only_fields = (
|
read_only_fields = (
|
||||||
'id', 'created_by', 'created_at', 'max_recipes', 'max_file_storage_mb', 'max_users', 'allow_sharing',
|
'id', 'created_by', 'created_at', 'max_recipes', 'max_file_storage_mb', 'max_users', 'allow_sharing',
|
||||||
'demo', 'ai_monthly_credits_used')
|
'demo', 'ai_monthly_credits_used')
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ let routes = [
|
|||||||
{path: '/', component: () => import("@/pages/StartPage.vue"), name: 'StartPage' },
|
{path: '/', component: () => import("@/pages/StartPage.vue"), name: 'StartPage' },
|
||||||
{path: '/search', redirect: {name: 'StartPage'}},
|
{path: '/search', redirect: {name: 'StartPage'}},
|
||||||
{path: '/test', component: () => import("@/pages/TestPage.vue"), name: 'view_test'},
|
{path: '/test', component: () => import("@/pages/TestPage.vue"), name: 'view_test'},
|
||||||
|
{path: '/welcome', component: () => import("@/pages/WelcomePage.vue"), name: 'WelcomePage', meta: {title: 'Welcome'}},
|
||||||
{path: '/help', component: () => import("@/pages/HelpPage.vue"), name: 'HelpPage', meta: {title: 'Help'}},
|
{path: '/help', component: () => import("@/pages/HelpPage.vue"), name: 'HelpPage', meta: {title: 'Help'}},
|
||||||
{
|
{
|
||||||
path: '/settings', component: () => import("@/pages/SettingsPage.vue"), name: 'SettingsPage', redirect: '/settings/account',
|
path: '/settings', component: () => import("@/pages/SettingsPage.vue"), name: 'SettingsPage', redirect: '/settings/account',
|
||||||
|
|||||||
@@ -74,6 +74,8 @@
|
|||||||
<p class="text-h6 mt-2">{{ $t('Settings') }}</p>
|
<p class="text-h6 mt-2">{{ $t('Settings') }}</p>
|
||||||
<v-divider class="mb-2"></v-divider>
|
<v-divider class="mb-2"></v-divider>
|
||||||
|
|
||||||
|
<v-text-field v-model="space.name" :label="$t('Name')"></v-text-field>
|
||||||
|
|
||||||
<user-file-field v-model="space.image" :label="$t('Image')" :hint="$t('CustomImageHelp')" persistent-hint></user-file-field>
|
<user-file-field v-model="space.image" :label="$t('Image')" :hint="$t('CustomImageHelp')" persistent-hint></user-file-field>
|
||||||
|
|
||||||
|
|
||||||
@@ -96,8 +98,10 @@
|
|||||||
<template v-if="space.aiEnabled">
|
<template v-if="space.aiEnabled">
|
||||||
<model-select model="AiProvider" :label="$t('Default')" v-model="space.aiDefaultProvider"></model-select>
|
<model-select model="AiProvider" :label="$t('Default')" v-model="space.aiDefaultProvider"></model-select>
|
||||||
|
|
||||||
<v-number-input v-model="space.aiCreditsMonthly" :precision="2" :label="$t('MonthlyCredits')" :disabled="!useUserPreferenceStore().userSettings.user.isSuperuser"></v-number-input>
|
<v-number-input v-model="space.aiCreditsMonthly" :precision="2" :label="$t('MonthlyCredits')"
|
||||||
<v-number-input v-model="space.aiCreditsBalance" :precision="4" :label="$t('AiCreditsBalance')" :disabled="!useUserPreferenceStore().userSettings.user.isSuperuser"></v-number-input>
|
:disabled="!useUserPreferenceStore().userSettings.user.isSuperuser"></v-number-input>
|
||||||
|
<v-number-input v-model="space.aiCreditsBalance" :precision="4" :label="$t('AiCreditsBalance')"
|
||||||
|
:disabled="!useUserPreferenceStore().userSettings.user.isSuperuser"></v-number-input>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<v-btn color="success" @click="updateSpace()" prepend-icon="$save">{{ $t('Save') }}</v-btn>
|
<v-btn color="success" @click="updateSpace()" prepend-icon="$save">{{ $t('Save') }}</v-btn>
|
||||||
@@ -141,13 +145,18 @@ import {isSpaceAboveRecipeLimit, isSpaceAboveStorageLimit, isSpaceAboveUserLimit
|
|||||||
const space = ref({} as Space)
|
const space = ref({} as Space)
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
loadSpace()
|
||||||
|
})
|
||||||
|
|
||||||
|
function loadSpace() {
|
||||||
let api = new ApiApi()
|
let api = new ApiApi()
|
||||||
|
|
||||||
api.apiSpaceCurrentRetrieve().then(r => {
|
api.apiSpaceCurrentRetrieve().then(r => {
|
||||||
space.value = r
|
space.value = r
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
useMessageStore().addError(ErrorMessageType.FETCH_ERROR, err)
|
useMessageStore().addError(ErrorMessageType.FETCH_ERROR, err)
|
||||||
})
|
})
|
||||||
})
|
}
|
||||||
|
|
||||||
function updateSpace() {
|
function updateSpace() {
|
||||||
let api = new ApiApi()
|
let api = new ApiApi()
|
||||||
|
|||||||
@@ -286,6 +286,7 @@
|
|||||||
"Size": "",
|
"Size": "",
|
||||||
"Sort_by_new": "",
|
"Sort_by_new": "",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Starting_Day": "",
|
"Starting_Day": "",
|
||||||
"StartsWith": "",
|
"StartsWith": "",
|
||||||
"StartsWithHelp": "",
|
"StartsWithHelp": "",
|
||||||
|
|||||||
@@ -279,6 +279,7 @@
|
|||||||
"Size": "Размер",
|
"Size": "Размер",
|
||||||
"Sort_by_new": "Сортиране по ново",
|
"Sort_by_new": "Сортиране по ново",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Starting_Day": "Начален ден от седмицата",
|
"Starting_Day": "Начален ден от седмицата",
|
||||||
"StartsWith": "",
|
"StartsWith": "",
|
||||||
"StartsWithHelp": "",
|
"StartsWithHelp": "",
|
||||||
|
|||||||
@@ -364,6 +364,7 @@
|
|||||||
"Social_Authentication": "Identificació amb Xarxes Socials",
|
"Social_Authentication": "Identificació amb Xarxes Socials",
|
||||||
"Sort_by_new": "Ordenar a partir del més nou",
|
"Sort_by_new": "Ordenar a partir del més nou",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "Un administrador de l'espai podria canviar algunes configuracions estètiques i tindrien prioritat sobre la configuració dels usuaris per a aquest espai.",
|
"Space_Cosmetic_Settings": "Un administrador de l'espai podria canviar algunes configuracions estètiques i tindrien prioritat sobre la configuració dels usuaris per a aquest espai.",
|
||||||
"Split_All_Steps": "Dividir totes les files en passos separats.",
|
"Split_All_Steps": "Dividir totes les files en passos separats.",
|
||||||
"StartDate": "Data d'inici",
|
"StartDate": "Data d'inici",
|
||||||
|
|||||||
@@ -359,6 +359,7 @@
|
|||||||
"Social_Authentication": "Přihlašování pomocí účtů sociálních sítí",
|
"Social_Authentication": "Přihlašování pomocí účtů sociálních sítí",
|
||||||
"Sort_by_new": "Seřadit od nejnovějšího",
|
"Sort_by_new": "Seřadit od nejnovějšího",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "Některá kosmetická nastavení mohou měnit správci prostoru a budou mít přednost před nastavením klienta pro daný prostor.",
|
"Space_Cosmetic_Settings": "Některá kosmetická nastavení mohou měnit správci prostoru a budou mít přednost před nastavením klienta pro daný prostor.",
|
||||||
"Split_All_Steps": "Rozdělit každý řádek do samostatného kroku.",
|
"Split_All_Steps": "Rozdělit každý řádek do samostatného kroku.",
|
||||||
"StartDate": "Počáteční datum",
|
"StartDate": "Počáteční datum",
|
||||||
|
|||||||
@@ -364,6 +364,7 @@
|
|||||||
"Social_Authentication": "Social authenticering",
|
"Social_Authentication": "Social authenticering",
|
||||||
"Sort_by_new": "Sorter efter nylige",
|
"Sort_by_new": "Sorter efter nylige",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "Visse kosmetiske indstillinger kan ændres af område-administratorer og vil overskrive klient-indstillinger for pågældende område.",
|
"Space_Cosmetic_Settings": "Visse kosmetiske indstillinger kan ændres af område-administratorer og vil overskrive klient-indstillinger for pågældende område.",
|
||||||
"Split_All_Steps": "Opdel rækker i separate trin.",
|
"Split_All_Steps": "Opdel rækker i separate trin.",
|
||||||
"StartDate": "Startdato",
|
"StartDate": "Startdato",
|
||||||
|
|||||||
@@ -510,6 +510,7 @@
|
|||||||
"SpaceMemberHelp": "Füge Benutzer hinzu indem du Einladungen erstellst und Sie an die gewünschte Person sendest.",
|
"SpaceMemberHelp": "Füge Benutzer hinzu indem du Einladungen erstellst und Sie an die gewünschte Person sendest.",
|
||||||
"SpaceMembers": "Space Mitglieder",
|
"SpaceMembers": "Space Mitglieder",
|
||||||
"SpaceMembersHelp": "Benutzer und Ihre Rechte in einem Space. ",
|
"SpaceMembersHelp": "Benutzer und Ihre Rechte in einem Space. ",
|
||||||
|
"SpaceName": "Space Name",
|
||||||
"SpaceSettings": "Space Einstellungen",
|
"SpaceSettings": "Space Einstellungen",
|
||||||
"Space_Cosmetic_Settings": "Kosmetische Einstellungen auf Space Ebene überschreiben die Einstellungen der einzelnen Nutzer.",
|
"Space_Cosmetic_Settings": "Kosmetische Einstellungen auf Space Ebene überschreiben die Einstellungen der einzelnen Nutzer.",
|
||||||
"Split": "Aufteilen",
|
"Split": "Aufteilen",
|
||||||
|
|||||||
@@ -364,6 +364,7 @@
|
|||||||
"Social_Authentication": "Ταυτοποίηση μέσω κοινωνικών δικτύων",
|
"Social_Authentication": "Ταυτοποίηση μέσω κοινωνικών δικτύων",
|
||||||
"Sort_by_new": "Ταξινόμηση κατά νέο",
|
"Sort_by_new": "Ταξινόμηση κατά νέο",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "Ορισμένες ρυθμίσεις εμφάνισης μπορούν να αλλάξουν από τους διαχειριστές του χώρου και θα παρακάμψουν τις ρυθμίσεις πελάτη για αυτόν τον χώρο.",
|
"Space_Cosmetic_Settings": "Ορισμένες ρυθμίσεις εμφάνισης μπορούν να αλλάξουν από τους διαχειριστές του χώρου και θα παρακάμψουν τις ρυθμίσεις πελάτη για αυτόν τον χώρο.",
|
||||||
"Split_All_Steps": "Διαχωρισμός όλων των γραμμών σε χωριστά βήματα.",
|
"Split_All_Steps": "Διαχωρισμός όλων των γραμμών σε χωριστά βήματα.",
|
||||||
"StartDate": "Ημερομηνία Έναρξης",
|
"StartDate": "Ημερομηνία Έναρξης",
|
||||||
|
|||||||
@@ -508,6 +508,7 @@
|
|||||||
"SpaceMemberHelp": "Add users to your space by creating an Invite Link and sending it to the person you want to add.",
|
"SpaceMemberHelp": "Add users to your space by creating an Invite Link and sending it to the person you want to add.",
|
||||||
"SpaceMembers": "Space Members",
|
"SpaceMembers": "Space Members",
|
||||||
"SpaceMembersHelp": "Users and their permissions in a space. ",
|
"SpaceMembersHelp": "Users and their permissions in a space. ",
|
||||||
|
"SpaceName": "Space Name",
|
||||||
"SpaceSettings": "Space Settings",
|
"SpaceSettings": "Space Settings",
|
||||||
"Space_Cosmetic_Settings": "Some cosmetic settings can be changed by space administrators and will override client settings for that space.",
|
"Space_Cosmetic_Settings": "Some cosmetic settings can be changed by space administrators and will override client settings for that space.",
|
||||||
"Split": "Split",
|
"Split": "Split",
|
||||||
|
|||||||
@@ -490,6 +490,7 @@
|
|||||||
"SpaceMemberHelp": "Agrega usuarios a tu espacio creando un enlace de invitación y enviándolo a la persona que quieras agregar.",
|
"SpaceMemberHelp": "Agrega usuarios a tu espacio creando un enlace de invitación y enviándolo a la persona que quieras agregar.",
|
||||||
"SpaceMembers": "Miembros del espacio",
|
"SpaceMembers": "Miembros del espacio",
|
||||||
"SpaceMembersHelp": "Usuarios y sus permisos en un espacio. ",
|
"SpaceMembersHelp": "Usuarios y sus permisos en un espacio. ",
|
||||||
|
"SpaceName": "",
|
||||||
"SpaceSettings": "Ajustes del espacio",
|
"SpaceSettings": "Ajustes del espacio",
|
||||||
"Space_Cosmetic_Settings": "Algunos ajustes de apariencia pueden ser cambiados por los administradores del espacio y anularán los ajustes del cliente para ese espacio.",
|
"Space_Cosmetic_Settings": "Algunos ajustes de apariencia pueden ser cambiados por los administradores del espacio y anularán los ajustes del cliente para ese espacio.",
|
||||||
"Split": "Dividir",
|
"Split": "Dividir",
|
||||||
|
|||||||
@@ -352,6 +352,7 @@
|
|||||||
"Social_Authentication": "Sosiaalinen Todennus",
|
"Social_Authentication": "Sosiaalinen Todennus",
|
||||||
"Sort_by_new": "Lajittele uusien mukaan",
|
"Sort_by_new": "Lajittele uusien mukaan",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Split_All_Steps": "Jaa kaikki rivit erillisiin vaiheisiin.",
|
"Split_All_Steps": "Jaa kaikki rivit erillisiin vaiheisiin.",
|
||||||
"StartDate": "Aloituspäivä",
|
"StartDate": "Aloituspäivä",
|
||||||
"Starting_Day": "Viikon aloituspäivä",
|
"Starting_Day": "Viikon aloituspäivä",
|
||||||
|
|||||||
@@ -505,6 +505,7 @@
|
|||||||
"SpaceMemberHelp": "Ajoutez des utilisateurs à votre espace en créant un lien d'invitation et en l'envoyant à la personne que vous souhaitez ajouter.",
|
"SpaceMemberHelp": "Ajoutez des utilisateurs à votre espace en créant un lien d'invitation et en l'envoyant à la personne que vous souhaitez ajouter.",
|
||||||
"SpaceMembers": "Membres du groupe",
|
"SpaceMembers": "Membres du groupe",
|
||||||
"SpaceMembersHelp": "Utilisateurs et permissions dans un groupe. ",
|
"SpaceMembersHelp": "Utilisateurs et permissions dans un groupe. ",
|
||||||
|
"SpaceName": "",
|
||||||
"SpaceSettings": "Paramètres du groupe",
|
"SpaceSettings": "Paramètres du groupe",
|
||||||
"Space_Cosmetic_Settings": "Certains paramètres cosmétiques peuvent être modifiés par un administrateur de l'espace et seront prioritaires sur les paramètres des utilisateurs pour cet espace.",
|
"Space_Cosmetic_Settings": "Certains paramètres cosmétiques peuvent être modifiés par un administrateur de l'espace et seront prioritaires sur les paramètres des utilisateurs pour cet espace.",
|
||||||
"Split": "Diviser",
|
"Split": "Diviser",
|
||||||
|
|||||||
@@ -364,6 +364,7 @@
|
|||||||
"Social_Authentication": "אימות חברתי",
|
"Social_Authentication": "אימות חברתי",
|
||||||
"Sort_by_new": "סדר ע\"י חדש",
|
"Sort_by_new": "סדר ע\"י חדש",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "חלק מהגדרות הקוסמטיות יכולות להיות מעודכנות על ידי מנהל המרחב וידרסו את הגדרות הקליינט עבור מרחב זה.",
|
"Space_Cosmetic_Settings": "חלק מהגדרות הקוסמטיות יכולות להיות מעודכנות על ידי מנהל המרחב וידרסו את הגדרות הקליינט עבור מרחב זה.",
|
||||||
"Split_All_Steps": "פצל את כל השורות לצעדים נפרדים.",
|
"Split_All_Steps": "פצל את כל השורות לצעדים נפרדים.",
|
||||||
"StartDate": "תאריך התחלה",
|
"StartDate": "תאריך התחלה",
|
||||||
|
|||||||
@@ -364,6 +364,7 @@
|
|||||||
"Social_Authentication": "Autentifikacija putem društvenih mreža",
|
"Social_Authentication": "Autentifikacija putem društvenih mreža",
|
||||||
"Sort_by_new": "Poredaj po novom",
|
"Sort_by_new": "Poredaj po novom",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "Neke kozmetičke postavke mogu promijeniti administratori prostora i one će poništiti postavke klijenta za taj prostor.",
|
"Space_Cosmetic_Settings": "Neke kozmetičke postavke mogu promijeniti administratori prostora i one će poništiti postavke klijenta za taj prostor.",
|
||||||
"Split_All_Steps": "Podijeli sve retke u zasebne korake.",
|
"Split_All_Steps": "Podijeli sve retke u zasebne korake.",
|
||||||
"StartDate": "Početni datum",
|
"StartDate": "Početni datum",
|
||||||
|
|||||||
@@ -331,6 +331,7 @@
|
|||||||
"Size": "Méret",
|
"Size": "Méret",
|
||||||
"Sort_by_new": "Rendezés legújabbak szerint",
|
"Sort_by_new": "Rendezés legújabbak szerint",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Split_All_Steps": "Ossza fel az összes sort különálló lépésekbe.",
|
"Split_All_Steps": "Ossza fel az összes sort különálló lépésekbe.",
|
||||||
"StartDate": "Kezdés dátuma",
|
"StartDate": "Kezdés dátuma",
|
||||||
"Starting_Day": "A hét kezdőnapja",
|
"Starting_Day": "A hét kezdőnapja",
|
||||||
|
|||||||
@@ -148,6 +148,7 @@
|
|||||||
"Size": "",
|
"Size": "",
|
||||||
"Sort_by_new": "Տեսակավորել ըստ նորերի",
|
"Sort_by_new": "Տեսակավորել ըստ նորերի",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"StartsWith": "",
|
"StartsWith": "",
|
||||||
"StartsWithHelp": "",
|
"StartsWithHelp": "",
|
||||||
"Step": "",
|
"Step": "",
|
||||||
|
|||||||
@@ -308,6 +308,7 @@
|
|||||||
"Social_Authentication": "",
|
"Social_Authentication": "",
|
||||||
"Sort_by_new": "Urutkan berdasarkan baru",
|
"Sort_by_new": "Urutkan berdasarkan baru",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Starting_Day": "",
|
"Starting_Day": "",
|
||||||
"StartsWith": "",
|
"StartsWith": "",
|
||||||
"StartsWithHelp": "",
|
"StartsWithHelp": "",
|
||||||
|
|||||||
@@ -362,6 +362,7 @@
|
|||||||
"Social_Authentication": "",
|
"Social_Authentication": "",
|
||||||
"Sort_by_new": "",
|
"Sort_by_new": "",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "",
|
"Space_Cosmetic_Settings": "",
|
||||||
"Split_All_Steps": "",
|
"Split_All_Steps": "",
|
||||||
"StartDate": "",
|
"StartDate": "",
|
||||||
|
|||||||
@@ -507,6 +507,7 @@
|
|||||||
"SpaceMemberHelp": "Aggiungi utenti al tuo spazio creando un collegamento di invito e inviandolo alla persona che desideri aggiungere.",
|
"SpaceMemberHelp": "Aggiungi utenti al tuo spazio creando un collegamento di invito e inviandolo alla persona che desideri aggiungere.",
|
||||||
"SpaceMembers": "Membri dello spazio",
|
"SpaceMembers": "Membri dello spazio",
|
||||||
"SpaceMembersHelp": "Utenti e relativi permessi in uno spazio. ",
|
"SpaceMembersHelp": "Utenti e relativi permessi in uno spazio. ",
|
||||||
|
"SpaceName": "",
|
||||||
"SpaceSettings": "Impostazioni spazio",
|
"SpaceSettings": "Impostazioni spazio",
|
||||||
"Space_Cosmetic_Settings": "Alcune impostazioni cosmetiche possono essere modificate dagli amministratori dell'istanza e sovrascriveranno le impostazioni client per quell'istanza.",
|
"Space_Cosmetic_Settings": "Alcune impostazioni cosmetiche possono essere modificate dagli amministratori dell'istanza e sovrascriveranno le impostazioni client per quell'istanza.",
|
||||||
"Split": "Dividi",
|
"Split": "Dividi",
|
||||||
|
|||||||
@@ -336,6 +336,7 @@
|
|||||||
"Social_Authentication": "",
|
"Social_Authentication": "",
|
||||||
"Sort_by_new": "Rūšiuoti pagal naujumą",
|
"Sort_by_new": "Rūšiuoti pagal naujumą",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Split_All_Steps": "",
|
"Split_All_Steps": "",
|
||||||
"StartDate": "",
|
"StartDate": "",
|
||||||
"Starting_Day": "",
|
"Starting_Day": "",
|
||||||
|
|||||||
@@ -364,6 +364,7 @@
|
|||||||
"Social_Authentication": "",
|
"Social_Authentication": "",
|
||||||
"Sort_by_new": "",
|
"Sort_by_new": "",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "",
|
"Space_Cosmetic_Settings": "",
|
||||||
"Split_All_Steps": "",
|
"Split_All_Steps": "",
|
||||||
"StartDate": "",
|
"StartDate": "",
|
||||||
|
|||||||
@@ -346,6 +346,7 @@
|
|||||||
"Social_Authentication": "",
|
"Social_Authentication": "",
|
||||||
"Sort_by_new": "Sorter etter nyest",
|
"Sort_by_new": "Sorter etter nyest",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Split_All_Steps": "",
|
"Split_All_Steps": "",
|
||||||
"StartDate": "Startdato",
|
"StartDate": "Startdato",
|
||||||
"Starting_Day": "Dag uken skal state på",
|
"Starting_Day": "Dag uken skal state på",
|
||||||
|
|||||||
@@ -508,6 +508,7 @@
|
|||||||
"SpaceMemberHelp": "Voeg gebruikers toe aan je ruimte door een uitnodigingslink aan te maken en naar de persoon te sturen die je wilt toevoegen.",
|
"SpaceMemberHelp": "Voeg gebruikers toe aan je ruimte door een uitnodigingslink aan te maken en naar de persoon te sturen die je wilt toevoegen.",
|
||||||
"SpaceMembers": "Gebruikers van de ruimte",
|
"SpaceMembers": "Gebruikers van de ruimte",
|
||||||
"SpaceMembersHelp": "Gebruikers en hun rechten in een ruimte. ",
|
"SpaceMembersHelp": "Gebruikers en hun rechten in een ruimte. ",
|
||||||
|
"SpaceName": "",
|
||||||
"SpaceSettings": "Ruimte-instellingen",
|
"SpaceSettings": "Ruimte-instellingen",
|
||||||
"Space_Cosmetic_Settings": "Sommige weergave instellingen kunnen worden geforceerd door de administrator van de 'Ruimte' en zullen de persoonlijke instellingen voor die 'Ruimte' overschrijven.",
|
"Space_Cosmetic_Settings": "Sommige weergave instellingen kunnen worden geforceerd door de administrator van de 'Ruimte' en zullen de persoonlijke instellingen voor die 'Ruimte' overschrijven.",
|
||||||
"Split": "Splitsen",
|
"Split": "Splitsen",
|
||||||
|
|||||||
@@ -390,6 +390,7 @@
|
|||||||
"Social_Authentication": "Uwierzytelnianie społecznościowe",
|
"Social_Authentication": "Uwierzytelnianie społecznościowe",
|
||||||
"Sort_by_new": "Sortuj według nowych",
|
"Sort_by_new": "Sortuj według nowych",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "Administratorzy przestrzeni mogą zmienić niektóre ustawienia kosmetyczne, które zastąpią ustawienia klienta dla tej przestrzeni.",
|
"Space_Cosmetic_Settings": "Administratorzy przestrzeni mogą zmienić niektóre ustawienia kosmetyczne, które zastąpią ustawienia klienta dla tej przestrzeni.",
|
||||||
"Split_All_Steps": "Traktuj każdy wiersz jako osobne kroki.",
|
"Split_All_Steps": "Traktuj każdy wiersz jako osobne kroki.",
|
||||||
"StartDate": "Data początkowa",
|
"StartDate": "Data początkowa",
|
||||||
|
|||||||
@@ -297,6 +297,7 @@
|
|||||||
"Size": "Tamanho",
|
"Size": "Tamanho",
|
||||||
"Sort_by_new": "Ordenar por mais recente",
|
"Sort_by_new": "Ordenar por mais recente",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"StartDate": "Data de início",
|
"StartDate": "Data de início",
|
||||||
"Starting_Day": "Dia de início da semana",
|
"Starting_Day": "Dia de início da semana",
|
||||||
"StartsWith": "",
|
"StartsWith": "",
|
||||||
|
|||||||
@@ -438,6 +438,7 @@
|
|||||||
"Social_Authentication": "Autenticação social",
|
"Social_Authentication": "Autenticação social",
|
||||||
"Sort_by_new": "Ordenar por novos",
|
"Sort_by_new": "Ordenar por novos",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "Algumas configurações cosméticas podem ser alteradas pelos administradores do espaço e substituirão as configurações do cliente para esse espaço.",
|
"Space_Cosmetic_Settings": "Algumas configurações cosméticas podem ser alteradas pelos administradores do espaço e substituirão as configurações do cliente para esse espaço.",
|
||||||
"Split_All_Steps": "Divida todas as linhas em etapas separadas.",
|
"Split_All_Steps": "Divida todas as linhas em etapas separadas.",
|
||||||
"StartDate": "Data Início",
|
"StartDate": "Data Início",
|
||||||
|
|||||||
@@ -320,6 +320,7 @@
|
|||||||
"Social_Authentication": "Autentificare socială",
|
"Social_Authentication": "Autentificare socială",
|
||||||
"Sort_by_new": "Sortare după nou",
|
"Sort_by_new": "Sortare după nou",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Split_All_Steps": "Împărțiți toate rândurile în pași separați.",
|
"Split_All_Steps": "Împărțiți toate rândurile în pași separați.",
|
||||||
"Starting_Day": "Ziua de început a săptămânii",
|
"Starting_Day": "Ziua de început a săptămânii",
|
||||||
"StartsWith": "",
|
"StartsWith": "",
|
||||||
|
|||||||
@@ -505,6 +505,7 @@
|
|||||||
"SpaceMemberHelp": "Для добавления пользователей создайте пригласительную ссылку и передайте её человеку, которого хотите пригласить.",
|
"SpaceMemberHelp": "Для добавления пользователей создайте пригласительную ссылку и передайте её человеку, которого хотите пригласить.",
|
||||||
"SpaceMembers": "Участники пространства",
|
"SpaceMembers": "Участники пространства",
|
||||||
"SpaceMembersHelp": "Пользователи и их права доступа в пространстве. ",
|
"SpaceMembersHelp": "Пользователи и их права доступа в пространстве. ",
|
||||||
|
"SpaceName": "",
|
||||||
"SpaceSettings": "Настройки пространства",
|
"SpaceSettings": "Настройки пространства",
|
||||||
"Space_Cosmetic_Settings": "Администраторы пространства могут менять некоторые визуальные настройки, которые будут переопределять настройки клиента для данного пространства.",
|
"Space_Cosmetic_Settings": "Администраторы пространства могут менять некоторые визуальные настройки, которые будут переопределять настройки клиента для данного пространства.",
|
||||||
"Split": "Разделить",
|
"Split": "Разделить",
|
||||||
|
|||||||
@@ -507,6 +507,7 @@
|
|||||||
"SpaceMemberHelp": "Dodajte uporabnike v svoj prostor tako, da ustvarite povezavo za povabilo in jo pošljete osebi, ki jo želite dodati.",
|
"SpaceMemberHelp": "Dodajte uporabnike v svoj prostor tako, da ustvarite povezavo za povabilo in jo pošljete osebi, ki jo želite dodati.",
|
||||||
"SpaceMembers": "Člani prostora",
|
"SpaceMembers": "Člani prostora",
|
||||||
"SpaceMembersHelp": "Uporabniki in njihova dovoljenja v prostoru. ",
|
"SpaceMembersHelp": "Uporabniki in njihova dovoljenja v prostoru. ",
|
||||||
|
"SpaceName": "",
|
||||||
"SpaceSettings": "Nastavitve prostora",
|
"SpaceSettings": "Nastavitve prostora",
|
||||||
"Space_Cosmetic_Settings": "Nekatere kozmetične nastavitve lahko spremenijo skrbniki prostora in bodo preglasile nastavitve odjemalca za ta prostor.",
|
"Space_Cosmetic_Settings": "Nekatere kozmetične nastavitve lahko spremenijo skrbniki prostora in bodo preglasile nastavitve odjemalca za ta prostor.",
|
||||||
"Split": "Razdelitev",
|
"Split": "Razdelitev",
|
||||||
|
|||||||
@@ -401,6 +401,7 @@
|
|||||||
"Social_Authentication": "Social autentisering",
|
"Social_Authentication": "Social autentisering",
|
||||||
"Sort_by_new": "Sortera efter ny",
|
"Sort_by_new": "Sortera efter ny",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "Vissa kosmetiska inställningar kan ändras av hushålls-administratörer och skriver över klientinställningar för det hushållet.",
|
"Space_Cosmetic_Settings": "Vissa kosmetiska inställningar kan ändras av hushålls-administratörer och skriver över klientinställningar för det hushållet.",
|
||||||
"Split_All_Steps": "Dela upp alla rader i separata steg.",
|
"Split_All_Steps": "Dela upp alla rader i separata steg.",
|
||||||
"StartDate": "Startdatum",
|
"StartDate": "Startdatum",
|
||||||
|
|||||||
@@ -364,6 +364,7 @@
|
|||||||
"Social_Authentication": "Sosyal Kimlik Doğrulama",
|
"Social_Authentication": "Sosyal Kimlik Doğrulama",
|
||||||
"Sort_by_new": "Yeniye göre sırala",
|
"Sort_by_new": "Yeniye göre sırala",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "Bazı kozmetik ayarlar alan yöneticileri tarafından değiştirilebilir ve o alanın istemci ayarlarını geçersiz kılar.",
|
"Space_Cosmetic_Settings": "Bazı kozmetik ayarlar alan yöneticileri tarafından değiştirilebilir ve o alanın istemci ayarlarını geçersiz kılar.",
|
||||||
"Split_All_Steps": "Tüm satırları ayrı adımlara bölün.",
|
"Split_All_Steps": "Tüm satırları ayrı adımlara bölün.",
|
||||||
"StartDate": "Başlangıç Tarihi",
|
"StartDate": "Başlangıç Tarihi",
|
||||||
|
|||||||
@@ -321,6 +321,7 @@
|
|||||||
"Size": "Розмір",
|
"Size": "Розмір",
|
||||||
"Sort_by_new": "Сортувати за новими",
|
"Sort_by_new": "Сортувати за новими",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"StartDate": "Початкова дата",
|
"StartDate": "Початкова дата",
|
||||||
"Starting_Day": "Початковий день тижня",
|
"Starting_Day": "Початковий день тижня",
|
||||||
"StartsWith": "",
|
"StartsWith": "",
|
||||||
|
|||||||
@@ -364,6 +364,7 @@
|
|||||||
"Social_Authentication": "社交认证",
|
"Social_Authentication": "社交认证",
|
||||||
"Sort_by_new": "按新旧排序",
|
"Sort_by_new": "按新旧排序",
|
||||||
"Space": "",
|
"Space": "",
|
||||||
|
"SpaceName": "",
|
||||||
"Space_Cosmetic_Settings": "空间管理员可以更改某些装饰设置,并将覆盖该空间的客户端设置。",
|
"Space_Cosmetic_Settings": "空间管理员可以更改某些装饰设置,并将覆盖该空间的客户端设置。",
|
||||||
"Split_All_Steps": "将所有行拆分为单独的步骤。",
|
"Split_All_Steps": "将所有行拆分为单独的步骤。",
|
||||||
"StartDate": "开始日期",
|
"StartDate": "开始日期",
|
||||||
|
|||||||
@@ -506,6 +506,7 @@
|
|||||||
"SpaceMemberHelp": "透過建立邀請連結並發送給您要新增的人來將使用者新增到您的空間。",
|
"SpaceMemberHelp": "透過建立邀請連結並發送給您要新增的人來將使用者新增到您的空間。",
|
||||||
"SpaceMembers": "空間成員",
|
"SpaceMembers": "空間成員",
|
||||||
"SpaceMembersHelp": "空間中的使用者及其權限。 ",
|
"SpaceMembersHelp": "空間中的使用者及其權限。 ",
|
||||||
|
"SpaceName": "",
|
||||||
"SpaceSettings": "空間設定",
|
"SpaceSettings": "空間設定",
|
||||||
"Space_Cosmetic_Settings": "空間管理員可以更改某些裝飾設置,並將覆蓋該空間的客戶端設置。",
|
"Space_Cosmetic_Settings": "空間管理員可以更改某些裝飾設置,並將覆蓋該空間的客戶端設置。",
|
||||||
"Split": "分割",
|
"Split": "分割",
|
||||||
|
|||||||
@@ -248,6 +248,12 @@ export interface PatchedSpace {
|
|||||||
* @memberof PatchedSpace
|
* @memberof PatchedSpace
|
||||||
*/
|
*/
|
||||||
aiDefaultProvider?: AiProvider;
|
aiDefaultProvider?: AiProvider;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {boolean}
|
||||||
|
* @memberof PatchedSpace
|
||||||
|
*/
|
||||||
|
spaceSetupCompleted?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -299,6 +305,7 @@ export function PatchedSpaceFromJSONTyped(json: any, ignoreDiscriminator: boolea
|
|||||||
'aiMonthlyCreditsUsed': json['ai_monthly_credits_used'] == null ? undefined : json['ai_monthly_credits_used'],
|
'aiMonthlyCreditsUsed': json['ai_monthly_credits_used'] == null ? undefined : json['ai_monthly_credits_used'],
|
||||||
'aiEnabled': json['ai_enabled'] == null ? undefined : json['ai_enabled'],
|
'aiEnabled': json['ai_enabled'] == null ? undefined : json['ai_enabled'],
|
||||||
'aiDefaultProvider': json['ai_default_provider'] == null ? undefined : AiProviderFromJSON(json['ai_default_provider']),
|
'aiDefaultProvider': json['ai_default_provider'] == null ? undefined : AiProviderFromJSON(json['ai_default_provider']),
|
||||||
|
'spaceSetupCompleted': json['space_setup_completed'] == null ? undefined : json['space_setup_completed'],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -329,6 +336,7 @@ export function PatchedSpaceToJSON(value?: Omit<PatchedSpace, 'createdBy'|'creat
|
|||||||
'ai_credits_balance': value['aiCreditsBalance'],
|
'ai_credits_balance': value['aiCreditsBalance'],
|
||||||
'ai_enabled': value['aiEnabled'],
|
'ai_enabled': value['aiEnabled'],
|
||||||
'ai_default_provider': AiProviderToJSON(value['aiDefaultProvider']),
|
'ai_default_provider': AiProviderToJSON(value['aiDefaultProvider']),
|
||||||
|
'space_setup_completed': value['spaceSetupCompleted'],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -248,6 +248,12 @@ export interface Space {
|
|||||||
* @memberof Space
|
* @memberof Space
|
||||||
*/
|
*/
|
||||||
aiDefaultProvider?: AiProvider;
|
aiDefaultProvider?: AiProvider;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {boolean}
|
||||||
|
* @memberof Space
|
||||||
|
*/
|
||||||
|
spaceSetupCompleted?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -311,6 +317,7 @@ export function SpaceFromJSONTyped(json: any, ignoreDiscriminator: boolean): Spa
|
|||||||
'aiMonthlyCreditsUsed': json['ai_monthly_credits_used'],
|
'aiMonthlyCreditsUsed': json['ai_monthly_credits_used'],
|
||||||
'aiEnabled': json['ai_enabled'] == null ? undefined : json['ai_enabled'],
|
'aiEnabled': json['ai_enabled'] == null ? undefined : json['ai_enabled'],
|
||||||
'aiDefaultProvider': json['ai_default_provider'] == null ? undefined : AiProviderFromJSON(json['ai_default_provider']),
|
'aiDefaultProvider': json['ai_default_provider'] == null ? undefined : AiProviderFromJSON(json['ai_default_provider']),
|
||||||
|
'spaceSetupCompleted': json['space_setup_completed'] == null ? undefined : json['space_setup_completed'],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -341,6 +348,7 @@ export function SpaceToJSON(value?: Omit<Space, 'createdBy'|'createdAt'|'maxReci
|
|||||||
'ai_credits_balance': value['aiCreditsBalance'],
|
'ai_credits_balance': value['aiCreditsBalance'],
|
||||||
'ai_enabled': value['aiEnabled'],
|
'ai_enabled': value['aiEnabled'],
|
||||||
'ai_default_provider': AiProviderToJSON(value['aiDefaultProvider']),
|
'ai_default_provider': AiProviderToJSON(value['aiDefaultProvider']),
|
||||||
|
'space_setup_completed': value['spaceSetupCompleted'],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,9 @@ import HorizontalRecipeScroller from "@/components/display/HorizontalRecipeWindo
|
|||||||
import HorizontalMealPlanWindow from "@/components/display/HorizontalMealPlanWindow.vue"
|
import HorizontalMealPlanWindow from "@/components/display/HorizontalMealPlanWindow.vue"
|
||||||
import SearchPage from "@/pages/SearchPage.vue";
|
import SearchPage from "@/pages/SearchPage.vue";
|
||||||
import {useUserPreferenceStore} from "@/stores/UserPreferenceStore";
|
import {useUserPreferenceStore} from "@/stores/UserPreferenceStore";
|
||||||
|
import {useRouter} from "vue-router";
|
||||||
|
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
const totalRecipes = ref(-1)
|
const totalRecipes = ref(-1)
|
||||||
|
|
||||||
@@ -47,6 +50,10 @@ onMounted(() => {
|
|||||||
api.apiRecipeList({pageSize: 1}).then((r) => {
|
api.apiRecipeList({pageSize: 1}).then((r) => {
|
||||||
totalRecipes.value = r.count
|
totalRecipes.value = r.count
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (!useUserPreferenceStore().activeSpace.spaceSetupCompleted) {
|
||||||
|
router.push({name: 'WelcomePage'})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
54
vue3/src/pages/WelcomePage.vue
Normal file
54
vue3/src/pages/WelcomePage.vue
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
<template>
|
||||||
|
<v-container>
|
||||||
|
<v-card>
|
||||||
|
<v-card-title>Welcome</v-card-title>
|
||||||
|
<v-card-text v-if="space">
|
||||||
|
Welcome to Tandoor
|
||||||
|
|
||||||
|
<v-text-field v-model="space.name" :label="$t('Name')"></v-text-field>
|
||||||
|
</v-card-text>
|
||||||
|
</v-card>
|
||||||
|
</v-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
|
||||||
|
|
||||||
|
import {ApiApi, Space} from "@/openapi";
|
||||||
|
import {onMounted, ref} from "vue";
|
||||||
|
import {ErrorMessageType, PreparedMessage, useMessageStore} from "@/stores/MessageStore.ts";
|
||||||
|
import {useUserPreferenceStore} from "@/stores/UserPreferenceStore.ts";
|
||||||
|
|
||||||
|
const space = ref<undefined | Space>(undefined)
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
loadSpace()
|
||||||
|
})
|
||||||
|
|
||||||
|
function loadSpace() {
|
||||||
|
let api = new ApiApi()
|
||||||
|
|
||||||
|
api.apiSpaceCurrentRetrieve().then(r => {
|
||||||
|
space.value = r
|
||||||
|
}).catch(err => {
|
||||||
|
useMessageStore().addError(ErrorMessageType.FETCH_ERROR, err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSpace() {
|
||||||
|
let api = new ApiApi()
|
||||||
|
api.apiSpacePartialUpdate({id: space.value.id, patchedSpace: space.value}).then(r => {
|
||||||
|
space.value = r
|
||||||
|
useUserPreferenceStore().activeSpace = Object.assign({}, space.value)
|
||||||
|
useMessageStore().addPreparedMessage(PreparedMessage.UPDATE_SUCCESS, space.value)
|
||||||
|
}).catch(err => {
|
||||||
|
useMessageStore().addError(ErrorMessageType.UPDATE_ERROR, err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user