diff --git a/backend/i18n/frontend_en.json b/backend/i18n/frontend_en.json index f4243976a..10039530c 100644 --- a/backend/i18n/frontend_en.json +++ b/backend/i18n/frontend_en.json @@ -1065,19 +1065,43 @@ "templates.reloaded": "Templates reloaded.", "tour.joinForum": "Join our Forum", "tour.joinGithub": "Join us on Github", + "tour.projectBackend": "Backend Data Management", + "tour.projectCommerce": "E-Commerce Solution", + "tour.projectLearning": "None, I am just here for learning", + "tour.projectMobileApp": "Mobile App", + "tour.projectNewsMagazine": "", + "tour.projectPersonalBlog": "News Magazine", + "tour.projectSmallBusiness": "Website for Small Business", + "tour.roleBusinessAnalyst": "Business Analyst", + "tour.roleBusinessOwner": "Business Owner", + "tour.roleContentCreator": "Content Creator", + "tour.roleEmployee": "Work at a company", + "tour.roleProductManager": "Product Manager", + "tour.roleSoftwareDeveloper": "Business Owner", + "tour.sizeLarge": "101-1000", + "tour.sizeMedium": "51-100", + "tour.sizeSingle": "1", + "tour.sizeSmall": "2-10", + "tour.sizeVeryLarge": "1000+", "tour.skip": "Skip Tour", - "tour.step0Next": "Let's take a look around", - "tour.step0Text": "You can start managing and distributing your content right away, but we we'd like to walk you through some basics first...\n\nHow'that", - "tour.step1Next": "Continue", - "tour.step1Text": "An App is the repository for your project, e.g. (blog, web shop or mobile app). You can assign contributors to your app to work together.\n\nYou can create an unlimited number of Apps in Squidex to manage multiple projects at the same time.", - "tour.step2Next": "Keep going!", - "tour.step2Text": "Schemas define the structure of your content, the fields and the data types of a content item.\n\nBefore you can add content to your schema, make sure to hit the 'Publish' button at the top to make the schema available to your content appSettings.editors.", - "tour.step3Next": "Almost there!", - "tour.step3Text": "Content is the actual data in your app which is grouped by the schema.\n\nSelect a published schema first, then add content for this schema.", - "tour.step4Next": "Got It!", - "tour.step4Text": "The assets contains all files that can also be linked to your content. For example images, videos or documents.\n\nYou can upload the assets here and use them later or also upload them directly when you create a new content item with an asset field.", - "tour.step5Text": "But that's not all of the support we can provide.\n\nYou can go to https://docs.squidex.io to read more.\n\nDo you want to join our community?", - "tour.step5Title": "Awesome, now you know the basics!", + "tour.stepAppNext": "Continue", + "tour.stepAppText": "An app is the repository for your project (for example a blog, web shop or mobile app). You can assign contributors to your app to work together.\n\nCreate an unlimited number of apps in Squidex to manage multiple projects at the same time.", + "tour.stepAssetsNext": "Got It!", + "tour.stepAssetsText": "The assets contains all files that can also be linked to your content. For example images, videos or documents.\n\nYou can upload the assets here and use them later or also upload them directly when you create a new content item with an asset field.", + "tour.stepContentNext": "Almost there!", + "tour.stepContentText": "Content is the actual data in your app which is grouped by the schema.\n\nSelect a published schema first, then add content for this schema.", + "tour.stepDataCompanySize": "How many people work in a company?", + "tour.stepDataNext": "Continue", + "tour.stepDataProject": "What kind of project do you realize?", + "tour.stepDataRole": "What is your role?", + "tour.stepDataText": "Before we continue we would like to learn a little bit about you to improve to user experience.", + "tour.stepDataTitle": "About You", + "tour.stepIntroNext": "Let's take a look around", + "tour.stepIntroText": "You can start managing and distributing your content right away, but we we'd like to walk you through some basics first...\n\n", + "tour.stepOutroText": "But that's not all of the support we can provide.\n\nYou can go to https://docs.squidex.io to read more.\n\nDo you want to join our community?", + "tour.stepOutroTitle": "Awesome, now you know the basics!", + "tour.stepSchemasNext": "Keep going!", + "tour.stepSchemasText": "Schemas define the structure of your content, the fields and the data types of a content item.\n\nBefore you can add content to your schema, make sure to hit the publish button at the top to make the schema available to your content editors.", "tour.tooltipConfirm": "Got It", "tour.tooltipStop": "Stop Tour", "tour.welcome": "Welcome to", diff --git a/backend/i18n/frontend_fr.json b/backend/i18n/frontend_fr.json index 4f0dfd112..f504ba193 100644 --- a/backend/i18n/frontend_fr.json +++ b/backend/i18n/frontend_fr.json @@ -1065,19 +1065,43 @@ "templates.reloaded": "Modèles rechargés.", "tour.joinForum": "Rejoignez notre forum", "tour.joinGithub": "Rejoignez-nous sur Github", + "tour.projectBackend": "Backend Data Management", + "tour.projectCommerce": "E-Commerce Solution", + "tour.projectLearning": "None, I am just here for learning", + "tour.projectMobileApp": "Mobile App", + "tour.projectNewsMagazine": "", + "tour.projectPersonalBlog": "News Magazine", + "tour.projectSmallBusiness": "Website for Small Business", + "tour.roleBusinessAnalyst": "Business Analyst", + "tour.roleBusinessOwner": "Business Owner", + "tour.roleContentCreator": "Content Creator", + "tour.roleEmployee": "Work at a company", + "tour.roleProductManager": "Product Manager", + "tour.roleSoftwareDeveloper": "Business Owner", + "tour.sizeLarge": "101-1000", + "tour.sizeMedium": "51-100", + "tour.sizeSingle": "1", + "tour.sizeSmall": "2-10", + "tour.sizeVeryLarge": "1000+", "tour.skip": "Passer le tour", - "tour.step0Next": "Jetons un coup d'œil autour", - "tour.step0Text": "Vous pouvez commencer à gérer et à distribuer votre contenu tout de suite, mais nous aimerions d'abord vous expliquer quelques notions de base...", - "tour.step1Next": "Continuer", - "tour.step1Text": "Une application est le référentiel de votre projet, par exemple (blog, boutique en ligne ou application mobile). Vous pouvez affecter des contributeurs à votre application pour travailler ensemble. Vous pouvez créer un nombre illimité d'applications dans Squidex pour gérer plusieurs projets en même temps.", - "tour.step2Next": "Continuer!", - "tour.step2Text": "Les schémas définissent la structure de votre contenu, les champs et les types de données d'un élément de contenu. Avant de pouvoir ajouter du contenu à votre schéma, assurez-vous d'appuyer sur le bouton \"Publier\" en haut pour rendre le schéma disponible pour vos appSettings.editors de contenu.", - "tour.step3Next": "Presque là!", - "tour.step3Text": "Le contenu est les données réelles de votre application qui sont regroupées par le schéma. Sélectionnez d'abord un schéma publié, puis ajoutez du contenu pour ce schéma.", - "tour.step4Next": "J'ai compris!", - "tour.step4Text": "Les actifs contiennent tous les fichiers qui peuvent également être liés à votre contenu. Par exemple des images, des vidéos ou des documents. Vous pouvez télécharger les actifs ici et les utiliser plus tard ou également les télécharger directement lorsque vous créez un nouvel élément de contenu avec un champ d'actif.", - "tour.step5Text": "Mais ce n'est pas tout le soutien que nous pouvons fournir. Vous pouvez aller sur https://docs.squidex.io pour en savoir plus. Vous souhaitez rejoindre notre communauté ?", - "tour.step5Title": "Génial, maintenant vous connaissez les bases !", + "tour.stepAppNext": "Continuer", + "tour.stepAppText": "Une application est le référentiel de votre projet, par exemple (blog, boutique en ligne ou application mobile). Vous pouvez affecter des contributeurs à votre application pour travailler ensemble. Vous pouvez créer un nombre illimité d'applications dans Squidex pour gérer plusieurs projets en même temps.", + "tour.stepAssetsNext": "J'ai compris!", + "tour.stepAssetsText": "Les actifs contiennent tous les fichiers qui peuvent également être liés à votre contenu. Par exemple des images, des vidéos ou des documents. Vous pouvez télécharger les actifs ici et les utiliser plus tard ou également les télécharger directement lorsque vous créez un nouvel élément de contenu avec un champ d'actif.", + "tour.stepContentNext": "Presque là!", + "tour.stepContentText": "Le contenu est les données réelles de votre application qui sont regroupées par le schéma. Sélectionnez d'abord un schéma publié, puis ajoutez du contenu pour ce schéma.", + "tour.stepDataCompanySize": "How many people work in a company?", + "tour.stepDataNext": "Continue", + "tour.stepDataProject": "What kind of project do you realize?", + "tour.stepDataRole": "What is your role?", + "tour.stepDataText": "Before we continue we would like to learn a little bit about you to improve to user experience.", + "tour.stepDataTitle": "About You", + "tour.stepIntroNext": "Jetons un coup d'œil autour", + "tour.stepIntroText": "Vous pouvez commencer à gérer et à distribuer votre contenu tout de suite, mais nous aimerions d'abord vous expliquer quelques notions de base...", + "tour.stepOutroText": "Mais ce n'est pas tout le soutien que nous pouvons fournir. Vous pouvez aller sur https://docs.squidex.io pour en savoir plus. Vous souhaitez rejoindre notre communauté ?", + "tour.stepOutroTitle": "Génial, maintenant vous connaissez les bases !", + "tour.stepSchemasNext": "Continuer!", + "tour.stepSchemasText": "Les schémas définissent la structure de votre contenu, les champs et les types de données d'un élément de contenu. Avant de pouvoir ajouter du contenu à votre schéma, assurez-vous d'appuyer sur le bouton \"Publier\" en haut pour rendre le schéma disponible pour vos appSettings.editors de contenu.", "tour.tooltipConfirm": "J'ai compris", "tour.tooltipStop": "Visite d'arrêt", "tour.welcome": "Bienvenue à", diff --git a/backend/i18n/frontend_it.json b/backend/i18n/frontend_it.json index c7df4de6f..a086072a8 100644 --- a/backend/i18n/frontend_it.json +++ b/backend/i18n/frontend_it.json @@ -1065,19 +1065,43 @@ "templates.reloaded": "Templates reloaded.", "tour.joinForum": "Unisciti al nostro Forum", "tour.joinGithub": "Unisciti a Github", + "tour.projectBackend": "Backend Data Management", + "tour.projectCommerce": "E-Commerce Solution", + "tour.projectLearning": "None, I am just here for learning", + "tour.projectMobileApp": "Mobile App", + "tour.projectNewsMagazine": "", + "tour.projectPersonalBlog": "News Magazine", + "tour.projectSmallBusiness": "Website for Small Business", + "tour.roleBusinessAnalyst": "Business Analyst", + "tour.roleBusinessOwner": "Business Owner", + "tour.roleContentCreator": "Content Creator", + "tour.roleEmployee": "Work at a company", + "tour.roleProductManager": "Product Manager", + "tour.roleSoftwareDeveloper": "Business Owner", + "tour.sizeLarge": "101-1000", + "tour.sizeMedium": "51-100", + "tour.sizeSingle": "1", + "tour.sizeSmall": "2-10", + "tour.sizeVeryLarge": "1000+", "tour.skip": "Salta il Tour", - "tour.step0Next": "Guardiamoci intorno", - "tour.step0Text": "Puoi iniziare subito a gestire e distribuire i tuoi contenuti, ma prima vorremmo illustrarti alcune nozioni di base...\n\nIn questo modo", - "tour.step1Next": "Continua", - "tour.step1Text": "Un'App è il repository per il tuo progetto, ad es. (un blog, un negozio sul web o una app per dispositivi mobili). Puoi assegnare collaboratori alla tua App per lavorare insieme.\n\nPuoi creare un numero illimitato di app in Squidex per gestire più progetti contemporaneamente.", - "tour.step2Next": "Vai avanti!", - "tour.step2Text": "Gli Schemi definiscono la struttura per i tuoi contenuti, i campi e i tipi di dato per ogni tipo di contenuto.\n\nPrima di creare un contenuto riferito al tuo schema, assicurati di aver pubblicato lo schema premendo il pulsante 'Pubblica' visualizzato nell'editor dei contenuti.", - "tour.step3Next": "Ci siamo quasi!", - "tour.step3Text": "I contenuti della tua app sono raggruppati tramite gli schemi.\n\nSeleziona uno schema pubblicato e poi crea il relativo contenuto.", - "tour.step4Next": "Fatto!", - "tour.step4Text": "Le risorse contengono tutti i file che tu puoi collegare ai tuoi contenuti. Per esempio immagini, video o documenti.\n\nPuoi caricare qui le risorse e usarle successivamente oppure caricarle direttamente quando stai creando un contenuto utilizzando un campo risorse.", - "tour.step5Text": "Ma non è tutto il supporto che possiamo fornire.\n\nPer maggiori informazioni visita il sito https://docs.squidex.io.\n\nVuoi far parte della nostra community?", - "tour.step5Title": "Fantastico, ora conosci le basi!", + "tour.stepAppNext": "Continua", + "tour.stepAppText": "Un'App è il repository per il tuo progetto, ad es. (un blog, un negozio sul web o una app per dispositivi mobili). Puoi assegnare collaboratori alla tua App per lavorare insieme.\n\nPuoi creare un numero illimitato di app in Squidex per gestire più progetti contemporaneamente.", + "tour.stepAssetsNext": "Fatto!", + "tour.stepAssetsText": "Le risorse contengono tutti i file che tu puoi collegare ai tuoi contenuti. Per esempio immagini, video o documenti.\n\nPuoi caricare qui le risorse e usarle successivamente oppure caricarle direttamente quando stai creando un contenuto utilizzando un campo risorse.", + "tour.stepContentNext": "Ci siamo quasi!", + "tour.stepContentText": "I contenuti della tua app sono raggruppati tramite gli schemi.\n\nSeleziona uno schema pubblicato e poi crea il relativo contenuto.", + "tour.stepDataCompanySize": "How many people work in a company?", + "tour.stepDataNext": "Continue", + "tour.stepDataProject": "What kind of project do you realize?", + "tour.stepDataRole": "What is your role?", + "tour.stepDataText": "Before we continue we would like to learn a little bit about you to improve to user experience.", + "tour.stepDataTitle": "About You", + "tour.stepIntroNext": "Guardiamoci intorno", + "tour.stepIntroText": "Puoi iniziare subito a gestire e distribuire i tuoi contenuti, ma prima vorremmo illustrarti alcune nozioni di base...\n\nIn questo modo", + "tour.stepOutroText": "Ma non è tutto il supporto che possiamo fornire.\n\nPer maggiori informazioni visita il sito https://docs.squidex.io.\n\nVuoi far parte della nostra community?", + "tour.stepOutroTitle": "Fantastico, ora conosci le basi!", + "tour.stepSchemasNext": "Vai avanti!", + "tour.stepSchemasText": "Gli Schemi definiscono la struttura per i tuoi contenuti, i campi e i tipi di dato per ogni tipo di contenuto.\n\nPrima di creare un contenuto riferito al tuo schema, assicurati di aver pubblicato lo schema premendo il pulsante 'Pubblica' visualizzato nell'editor dei contenuti.", "tour.tooltipConfirm": "Capito", "tour.tooltipStop": "Ferma il Tour", "tour.welcome": "Benvenuto su", diff --git a/backend/i18n/frontend_nl.json b/backend/i18n/frontend_nl.json index 1878c26cc..2001cd096 100644 --- a/backend/i18n/frontend_nl.json +++ b/backend/i18n/frontend_nl.json @@ -1065,19 +1065,43 @@ "templates.reloaded": "Templates reloaded.", "tour.joinForum": "Word lid van ons forum", "tour.joinGithub": "Bezoek ons ​​op Github", + "tour.projectBackend": "Backend Data Management", + "tour.projectCommerce": "E-Commerce Solution", + "tour.projectLearning": "None, I am just here for learning", + "tour.projectMobileApp": "Mobile App", + "tour.projectNewsMagazine": "", + "tour.projectPersonalBlog": "News Magazine", + "tour.projectSmallBusiness": "Website for Small Business", + "tour.roleBusinessAnalyst": "Business Analyst", + "tour.roleBusinessOwner": "Business Owner", + "tour.roleContentCreator": "Content Creator", + "tour.roleEmployee": "Work at a company", + "tour.roleProductManager": "Product Manager", + "tour.roleSoftwareDeveloper": "Business Owner", + "tour.sizeLarge": "101-1000", + "tour.sizeMedium": "51-100", + "tour.sizeSingle": "1", + "tour.sizeSmall": "2-10", + "tour.sizeVeryLarge": "1000+", "tour.skip": "Tour overslaan", - "tour.step0Next": "Laten we eens rondkijken", - "tour.step0Text": "Je kunt direct beginnen met het beheren en distribueren van uw inhoud, maar we willen je graag eerst wat basisbeginselen laten zien ... \n \n Hoe dat", - "tour.step1Next": "Doorgaan", - "tour.step1Text": "Een app is de opslagplaats voor uw project, bijvoorbeeld (blog, webshop of mobiele app). Je kunt bijdragers aan uw app toewijzen om samen te werken. \n \n Je kunt een onbeperkt aantal apps maken in Squidex om meerdere projecten tegelijkertijd te beheren. ", - "tour.step2Next": "Ga door!", - "tour.step2Text": "Schema's bepalen de structuur van uw inhoud, de velden en de gegevenstypen van een inhoudsitem. \n \n Voordat je inhoud aan uw schema kunt toevoegen, moet je op de knop 'Publiceren' bovenaan klikken om het schema beschikbaar te maken voor uw inhoudappSettings.editors. ", - "tour.step3Next": "Bijna klaar!", - "tour.step3Text": "Inhoud zijn de feitelijke gegevens in uw app die zijn gegroepeerd op basis van het schema. \n \n Selecteer eerst een gepubliceerd schema en voeg vervolgens inhoud toe voor dit schema.", - "tour.step4Next": "Begrepen!", - "tour.step4Text": "De mappen bevatten alle bestanden die ook aan uw inhoud kunnen worden gekoppeld. Bijvoorbeeld afbeeldingen, video's of documenten. \n \n Je kunt de bestanden hier uploaden en later gebruiken of ze direct uploaden wanneer je een nieuw contentitem met een bestandveld maakt. ", - "tour.step5Text": "Maar dat is niet alle ondersteuning die we kunnen bieden. \n \n Je kunt naar https://docs.squidex.io gaan om meer te lezen. \n \n Wil je lid worden van onze community ? ", - "tour.step5Title": "Geweldig, nu ken je de basis!", + "tour.stepAppNext": "Doorgaan", + "tour.stepAppText": "Een app is de opslagplaats voor uw project, bijvoorbeeld (blog, webshop of mobiele app). Je kunt bijdragers aan uw app toewijzen om samen te werken. \n \n Je kunt een onbeperkt aantal apps maken in Squidex om meerdere projecten tegelijkertijd te beheren. ", + "tour.stepAssetsNext": "Begrepen!", + "tour.stepAssetsText": "De mappen bevatten alle bestanden die ook aan uw inhoud kunnen worden gekoppeld. Bijvoorbeeld afbeeldingen, video's of documenten. \n \n Je kunt de bestanden hier uploaden en later gebruiken of ze direct uploaden wanneer je een nieuw contentitem met een bestandveld maakt. ", + "tour.stepContentNext": "Bijna klaar!", + "tour.stepContentText": "Inhoud zijn de feitelijke gegevens in uw app die zijn gegroepeerd op basis van het schema. \n \n Selecteer eerst een gepubliceerd schema en voeg vervolgens inhoud toe voor dit schema.", + "tour.stepDataCompanySize": "How many people work in a company?", + "tour.stepDataNext": "Continue", + "tour.stepDataProject": "What kind of project do you realize?", + "tour.stepDataRole": "What is your role?", + "tour.stepDataText": "Before we continue we would like to learn a little bit about you to improve to user experience.", + "tour.stepDataTitle": "About You", + "tour.stepIntroNext": "Laten we eens rondkijken", + "tour.stepIntroText": "Je kunt direct beginnen met het beheren en distribueren van uw inhoud, maar we willen je graag eerst wat basisbeginselen laten zien ... \n \n Hoe dat", + "tour.stepOutroText": "Maar dat is niet alle ondersteuning die we kunnen bieden. \n \n Je kunt naar https://docs.squidex.io gaan om meer te lezen. \n \n Wil je lid worden van onze community ? ", + "tour.stepOutroTitle": "Geweldig, nu ken je de basis!", + "tour.stepSchemasNext": "Ga door!", + "tour.stepSchemasText": "Schema's bepalen de structuur van uw inhoud, de velden en de gegevenstypen van een inhoudsitem. \n \n Voordat je inhoud aan uw schema kunt toevoegen, moet je op de knop 'Publiceren' bovenaan klikken om het schema beschikbaar te maken voor uw inhoudappSettings.editors. ", "tour.tooltipConfirm": "Begrepen", "tour.tooltipStop": "Tour stoppen", "tour.welcome": "Welkom bij", diff --git a/backend/i18n/frontend_pt.json b/backend/i18n/frontend_pt.json index 2ba7970b9..ca4412aa3 100644 --- a/backend/i18n/frontend_pt.json +++ b/backend/i18n/frontend_pt.json @@ -1065,19 +1065,43 @@ "templates.reloaded": "Modelos recarregados.", "tour.joinForum": "Junte-se ao nosso Fórum", "tour.joinGithub": "Junte-se a nós em Github", + "tour.projectBackend": "Backend Data Management", + "tour.projectCommerce": "E-Commerce Solution", + "tour.projectLearning": "None, I am just here for learning", + "tour.projectMobileApp": "Mobile App", + "tour.projectNewsMagazine": "", + "tour.projectPersonalBlog": "News Magazine", + "tour.projectSmallBusiness": "Website for Small Business", + "tour.roleBusinessAnalyst": "Business Analyst", + "tour.roleBusinessOwner": "Business Owner", + "tour.roleContentCreator": "Content Creator", + "tour.roleEmployee": "Work at a company", + "tour.roleProductManager": "Product Manager", + "tour.roleSoftwareDeveloper": "Business Owner", + "tour.sizeLarge": "101-1000", + "tour.sizeMedium": "51-100", + "tour.sizeSingle": "1", + "tour.sizeSmall": "2-10", + "tour.sizeVeryLarge": "1000+", "tour.skip": "Tour de salto", - "tour.step0Next": "Vamos dar uma vista de olhos.", - "tour.step0Text": "Pode começar a gerir e distribuir o seu conteúdo imediatamente, mas gostaríamos de o acompanhar primeiro...\n\nComo é que", - "tour.step1Next": "Continuar", - "tour.step1Text": "Uma App é o repositório do seu projeto, por exemplo (blog, web shop ou aplicativo móvel). Pode atribuir colaboradores à sua aplicação para trabalharem em conjunto.\n\nPode criar um número ilimitado de Apps em Squidex para gerir vários projetos ao mesmo tempo.", - "tour.step2Next": "Continua!", - "tour.step2Text": "Os esquemas definem a estrutura do seu conteúdo, os campos e os tipos de dados de um item de conteúdo.\n\nAntes de poder adicionar conteúdo ao seu esquema, certifique-se de carregar no botão 'Publicar' no topo para disponibilizar o esquema para as suas aplicações de conteúdoSettings.editores.", - "tour.step3Next": "Está quase!", - "tour.step3Text": "O conteúdo é o dado real da sua app que é agrupado pelo esquema.\n\nSelecione primeiro um esquema publicado e, em seguida, adicione conteúdo para este esquema.", - "tour.step4Next": "Apanhei!", - "tour.step4Text": "Os ativos contêm todos os ficheiros que também podem estar ligados ao seu conteúdo. Por exemplo, imagens, vídeos ou documentos.\n\nPode fazer o upload dos ativos aqui e usá-los mais tarde ou também carregá-los diretamente quando criar um novo item de conteúdo com um campo de ativos.", - "tour.step5Text": "Mas não é todo o apoio que podemos dar.\n\nPode ir a https://docs.squidex.io ler mais.\n\nQuer se juntar à nossa comunidade?", - "tour.step5Title": "Incrível, agora já sabes o básico!", + "tour.stepAppNext": "Continuar", + "tour.stepAppText": "Uma App é o repositório do seu projeto, por exemplo (blog, web shop ou aplicativo móvel). Pode atribuir colaboradores à sua aplicação para trabalharem em conjunto.\n\nPode criar um número ilimitado de Apps em Squidex para gerir vários projetos ao mesmo tempo.", + "tour.stepAssetsNext": "Apanhei!", + "tour.stepAssetsText": "Os ativos contêm todos os ficheiros que também podem estar ligados ao seu conteúdo. Por exemplo, imagens, vídeos ou documentos.\n\nPode fazer o upload dos ativos aqui e usá-los mais tarde ou também carregá-los diretamente quando criar um novo item de conteúdo com um campo de ativos.", + "tour.stepContentNext": "Está quase!", + "tour.stepContentText": "O conteúdo é o dado real da sua app que é agrupado pelo esquema.\n\nSelecione primeiro um esquema publicado e, em seguida, adicione conteúdo para este esquema.", + "tour.stepDataCompanySize": "How many people work in a company?", + "tour.stepDataNext": "Continue", + "tour.stepDataProject": "What kind of project do you realize?", + "tour.stepDataRole": "What is your role?", + "tour.stepDataText": "Before we continue we would like to learn a little bit about you to improve to user experience.", + "tour.stepDataTitle": "About You", + "tour.stepIntroNext": "Vamos dar uma vista de olhos.", + "tour.stepIntroText": "Pode começar a gerir e distribuir o seu conteúdo imediatamente, mas gostaríamos de o acompanhar primeiro...\n\nComo é que", + "tour.stepOutroText": "Mas não é todo o apoio que podemos dar.\n\nPode ir a https://docs.squidex.io ler mais.\n\nQuer se juntar à nossa comunidade?", + "tour.stepOutroTitle": "Incrível, agora já sabes o básico!", + "tour.stepSchemasNext": "Continua!", + "tour.stepSchemasText": "Os esquemas definem a estrutura do seu conteúdo, os campos e os tipos de dados de um item de conteúdo.\n\nAntes de poder adicionar conteúdo ao seu esquema, certifique-se de carregar no botão 'Publicar' no topo para disponibilizar o esquema para as suas aplicações de conteúdoSettings.editores.", "tour.tooltipConfirm": "Entendi", "tour.tooltipStop": "Terminar Tour", "tour.welcome": "Bem vindo a", diff --git a/backend/i18n/frontend_zh.json b/backend/i18n/frontend_zh.json index bacd27ee6..090fa83d0 100644 --- a/backend/i18n/frontend_zh.json +++ b/backend/i18n/frontend_zh.json @@ -1065,19 +1065,43 @@ "templates.reloaded": "Templates reloaded.", "tour.joinForum": "加入我们的论坛", "tour.joinGithub": "加入我们的 Github", + "tour.projectBackend": "Backend Data Management", + "tour.projectCommerce": "E-Commerce Solution", + "tour.projectLearning": "None, I am just here for learning", + "tour.projectMobileApp": "Mobile App", + "tour.projectNewsMagazine": "", + "tour.projectPersonalBlog": "News Magazine", + "tour.projectSmallBusiness": "Website for Small Business", + "tour.roleBusinessAnalyst": "Business Analyst", + "tour.roleBusinessOwner": "Business Owner", + "tour.roleContentCreator": "Content Creator", + "tour.roleEmployee": "Work at a company", + "tour.roleProductManager": "Product Manager", + "tour.roleSoftwareDeveloper": "Business Owner", + "tour.sizeLarge": "101-1000", + "tour.sizeMedium": "51-100", + "tour.sizeSingle": "1", + "tour.sizeSmall": "2-10", + "tour.sizeVeryLarge": "1000+", "tour.skip": "跳过游览", - "tour.step0Next": "我们看看周围", - "tour.step0Text": "您可以立即开始管理和分发您的内容,但我们想先向您介绍一些基础知识...\n\n如何", - "tour.step1Next": "继续", - "tour.step1Text": "应用程序是您项目的存储库,例如(博客、网上商店或移动应用程序)。您可以为您的应用程序分配贡献者以协同工作。\n\n您可以在其中创建无限数量的应用程序Squidex 同时管理多个项目。", - "tour.step2Next": "继续!", - "tour.step2Text": "Schemas定义内容的结构、内容项的字段和数据类型。\n\n在向Schemas添加内容之前,请确保点击顶部的“发布”按钮使Schemas可用于您的内容 appSettings.editors。", - "tour.step3Next": "快到了!", - "tour.step3Text": "内容是您的应用程序中按Schemas分组的实际数据。\n\n首先选择一个已发布的Schemas,然后为此Schemas添加内容。", - "tour.step4Next": "知道了!", - "tour.step4Text": "资源包含所有也可以链接到您的内容的文件。例如图像、视频或文档。\n\n您可以在此处上传资源供以后使用,也可以在创建时直接上传带有资源字段的新内容项。", - "tour.step5Text": "但这还不是我们可以提供的全部支持。\n\n您可以访问 https://docs.squidex.io 阅读更多信息。\n\n您想加入我们的社区吗? ?", - "tour.step5Title": "太棒了,现在你知道基础了!", + "tour.stepAppNext": "继续", + "tour.stepAppText": "应用程序是您项目的存储库,例如(博客、网上商店或移动应用程序)。您可以为您的应用程序分配贡献者以协同工作。\n\n您可以在其中创建无限数量的应用程序Squidex 同时管理多个项目。", + "tour.stepAssetsNext": "知道了!", + "tour.stepAssetsText": "资源包含所有也可以链接到您的内容的文件。例如图像、视频或文档。\n\n您可以在此处上传资源供以后使用,也可以在创建时直接上传带有资源字段的新内容项。", + "tour.stepContentNext": "快到了!", + "tour.stepContentText": "内容是您的应用程序中按Schemas分组的实际数据。\n\n首先选择一个已发布的Schemas,然后为此Schemas添加内容。", + "tour.stepDataCompanySize": "How many people work in a company?", + "tour.stepDataNext": "Continue", + "tour.stepDataProject": "What kind of project do you realize?", + "tour.stepDataRole": "What is your role?", + "tour.stepDataText": "Before we continue we would like to learn a little bit about you to improve to user experience.", + "tour.stepDataTitle": "About You", + "tour.stepIntroNext": "我们看看周围", + "tour.stepIntroText": "您可以立即开始管理和分发您的内容,但我们想先向您介绍一些基础知识...\n\n如何", + "tour.stepOutroText": "但这还不是我们可以提供的全部支持。\n\n您可以访问 https://docs.squidex.io 阅读更多信息。\n\n您想加入我们的社区吗? ?", + "tour.stepOutroTitle": "太棒了,现在你知道基础了!", + "tour.stepSchemasNext": "继续!", + "tour.stepSchemasText": "Schemas定义内容的结构、内容项的字段和数据类型。\n\n在向Schemas添加内容之前,请确保点击顶部的“发布”按钮使Schemas可用于您的内容 appSettings.editors。", "tour.tooltipConfirm": "知道了", "tour.tooltipStop": "停止游览", "tour.welcome": "欢迎来到", diff --git a/backend/i18n/source/frontend_en.json b/backend/i18n/source/frontend_en.json index f4243976a..10039530c 100644 --- a/backend/i18n/source/frontend_en.json +++ b/backend/i18n/source/frontend_en.json @@ -1065,19 +1065,43 @@ "templates.reloaded": "Templates reloaded.", "tour.joinForum": "Join our Forum", "tour.joinGithub": "Join us on Github", + "tour.projectBackend": "Backend Data Management", + "tour.projectCommerce": "E-Commerce Solution", + "tour.projectLearning": "None, I am just here for learning", + "tour.projectMobileApp": "Mobile App", + "tour.projectNewsMagazine": "", + "tour.projectPersonalBlog": "News Magazine", + "tour.projectSmallBusiness": "Website for Small Business", + "tour.roleBusinessAnalyst": "Business Analyst", + "tour.roleBusinessOwner": "Business Owner", + "tour.roleContentCreator": "Content Creator", + "tour.roleEmployee": "Work at a company", + "tour.roleProductManager": "Product Manager", + "tour.roleSoftwareDeveloper": "Business Owner", + "tour.sizeLarge": "101-1000", + "tour.sizeMedium": "51-100", + "tour.sizeSingle": "1", + "tour.sizeSmall": "2-10", + "tour.sizeVeryLarge": "1000+", "tour.skip": "Skip Tour", - "tour.step0Next": "Let's take a look around", - "tour.step0Text": "You can start managing and distributing your content right away, but we we'd like to walk you through some basics first...\n\nHow'that", - "tour.step1Next": "Continue", - "tour.step1Text": "An App is the repository for your project, e.g. (blog, web shop or mobile app). You can assign contributors to your app to work together.\n\nYou can create an unlimited number of Apps in Squidex to manage multiple projects at the same time.", - "tour.step2Next": "Keep going!", - "tour.step2Text": "Schemas define the structure of your content, the fields and the data types of a content item.\n\nBefore you can add content to your schema, make sure to hit the 'Publish' button at the top to make the schema available to your content appSettings.editors.", - "tour.step3Next": "Almost there!", - "tour.step3Text": "Content is the actual data in your app which is grouped by the schema.\n\nSelect a published schema first, then add content for this schema.", - "tour.step4Next": "Got It!", - "tour.step4Text": "The assets contains all files that can also be linked to your content. For example images, videos or documents.\n\nYou can upload the assets here and use them later or also upload them directly when you create a new content item with an asset field.", - "tour.step5Text": "But that's not all of the support we can provide.\n\nYou can go to https://docs.squidex.io to read more.\n\nDo you want to join our community?", - "tour.step5Title": "Awesome, now you know the basics!", + "tour.stepAppNext": "Continue", + "tour.stepAppText": "An app is the repository for your project (for example a blog, web shop or mobile app). You can assign contributors to your app to work together.\n\nCreate an unlimited number of apps in Squidex to manage multiple projects at the same time.", + "tour.stepAssetsNext": "Got It!", + "tour.stepAssetsText": "The assets contains all files that can also be linked to your content. For example images, videos or documents.\n\nYou can upload the assets here and use them later or also upload them directly when you create a new content item with an asset field.", + "tour.stepContentNext": "Almost there!", + "tour.stepContentText": "Content is the actual data in your app which is grouped by the schema.\n\nSelect a published schema first, then add content for this schema.", + "tour.stepDataCompanySize": "How many people work in a company?", + "tour.stepDataNext": "Continue", + "tour.stepDataProject": "What kind of project do you realize?", + "tour.stepDataRole": "What is your role?", + "tour.stepDataText": "Before we continue we would like to learn a little bit about you to improve to user experience.", + "tour.stepDataTitle": "About You", + "tour.stepIntroNext": "Let's take a look around", + "tour.stepIntroText": "You can start managing and distributing your content right away, but we we'd like to walk you through some basics first...\n\n", + "tour.stepOutroText": "But that's not all of the support we can provide.\n\nYou can go to https://docs.squidex.io to read more.\n\nDo you want to join our community?", + "tour.stepOutroTitle": "Awesome, now you know the basics!", + "tour.stepSchemasNext": "Keep going!", + "tour.stepSchemasText": "Schemas define the structure of your content, the fields and the data types of a content item.\n\nBefore you can add content to your schema, make sure to hit the publish button at the top to make the schema available to your content editors.", "tour.tooltipConfirm": "Got It", "tour.tooltipStop": "Stop Tour", "tour.welcome": "Welcome to", diff --git a/backend/i18n/source/frontend_fr.json b/backend/i18n/source/frontend_fr.json index e33264244..f7dd48fe7 100644 --- a/backend/i18n/source/frontend_fr.json +++ b/backend/i18n/source/frontend_fr.json @@ -1042,18 +1042,18 @@ "tour.joinForum": "Rejoignez notre forum", "tour.joinGithub": "Rejoignez-nous sur Github", "tour.skip": "Passer le tour", - "tour.step0Next": "Jetons un coup d'œil autour", - "tour.step0Text": "Vous pouvez commencer à gérer et à distribuer votre contenu tout de suite, mais nous aimerions d'abord vous expliquer quelques notions de base...", - "tour.step1Next": "Continuer", - "tour.step1Text": "Une application est le référentiel de votre projet, par exemple (blog, boutique en ligne ou application mobile). Vous pouvez affecter des contributeurs à votre application pour travailler ensemble. Vous pouvez créer un nombre illimité d'applications dans Squidex pour gérer plusieurs projets en même temps.", - "tour.step2Next": "Continuer!", - "tour.step2Text": "Les schémas définissent la structure de votre contenu, les champs et les types de données d'un élément de contenu. Avant de pouvoir ajouter du contenu à votre schéma, assurez-vous d'appuyer sur le bouton \"Publier\" en haut pour rendre le schéma disponible pour vos appSettings.editors de contenu.", - "tour.step3Next": "Presque là!", - "tour.step3Text": "Le contenu est les données réelles de votre application qui sont regroupées par le schéma. Sélectionnez d'abord un schéma publié, puis ajoutez du contenu pour ce schéma.", - "tour.step4Next": "J'ai compris!", - "tour.step4Text": "Les actifs contiennent tous les fichiers qui peuvent également être liés à votre contenu. Par exemple des images, des vidéos ou des documents. Vous pouvez télécharger les actifs ici et les utiliser plus tard ou également les télécharger directement lorsque vous créez un nouvel élément de contenu avec un champ d'actif.", - "tour.step5Text": "Mais ce n'est pas tout le soutien que nous pouvons fournir. Vous pouvez aller sur https://docs.squidex.io pour en savoir plus. Vous souhaitez rejoindre notre communauté ?", - "tour.step5Title": "Génial, maintenant vous connaissez les bases !", + "tour.stepAppNext": "Continuer", + "tour.stepAppText": "Une application est le référentiel de votre projet, par exemple (blog, boutique en ligne ou application mobile). Vous pouvez affecter des contributeurs à votre application pour travailler ensemble. Vous pouvez créer un nombre illimité d'applications dans Squidex pour gérer plusieurs projets en même temps.", + "tour.stepAssetsNext": "J'ai compris!", + "tour.stepAssetsText": "Les actifs contiennent tous les fichiers qui peuvent également être liés à votre contenu. Par exemple des images, des vidéos ou des documents. Vous pouvez télécharger les actifs ici et les utiliser plus tard ou également les télécharger directement lorsque vous créez un nouvel élément de contenu avec un champ d'actif.", + "tour.stepContentNext": "Presque là!", + "tour.stepContentText": "Le contenu est les données réelles de votre application qui sont regroupées par le schéma. Sélectionnez d'abord un schéma publié, puis ajoutez du contenu pour ce schéma.", + "tour.stepIntroNext": "Jetons un coup d'œil autour", + "tour.stepIntroText": "Vous pouvez commencer à gérer et à distribuer votre contenu tout de suite, mais nous aimerions d'abord vous expliquer quelques notions de base...", + "tour.stepOutroText": "Mais ce n'est pas tout le soutien que nous pouvons fournir. Vous pouvez aller sur https://docs.squidex.io pour en savoir plus. Vous souhaitez rejoindre notre communauté ?", + "tour.stepOutroTitle": "Génial, maintenant vous connaissez les bases !", + "tour.stepSchemasNext": "Continuer!", + "tour.stepSchemasText": "Les schémas définissent la structure de votre contenu, les champs et les types de données d'un élément de contenu. Avant de pouvoir ajouter du contenu à votre schéma, assurez-vous d'appuyer sur le bouton \"Publier\" en haut pour rendre le schéma disponible pour vos appSettings.editors de contenu.", "tour.tooltipConfirm": "J'ai compris", "tour.tooltipStop": "Visite d'arrêt", "tour.welcome": "Bienvenue à", diff --git a/backend/i18n/source/frontend_it.json b/backend/i18n/source/frontend_it.json index db23907a4..606d5b8d5 100644 --- a/backend/i18n/source/frontend_it.json +++ b/backend/i18n/source/frontend_it.json @@ -815,18 +815,18 @@ "tour.joinForum": "Unisciti al nostro Forum", "tour.joinGithub": "Unisciti a Github", "tour.skip": "Salta il Tour", - "tour.step0Next": "Guardiamoci intorno", - "tour.step0Text": "Puoi iniziare subito a gestire e distribuire i tuoi contenuti, ma prima vorremmo illustrarti alcune nozioni di base...\n\nIn questo modo", - "tour.step1Next": "Continua", - "tour.step1Text": "Un'App è il repository per il tuo progetto, ad es. (un blog, un negozio sul web o una app per dispositivi mobili). Puoi assegnare collaboratori alla tua App per lavorare insieme.\n\nPuoi creare un numero illimitato di app in Squidex per gestire più progetti contemporaneamente.", - "tour.step2Next": "Vai avanti!", - "tour.step2Text": "Gli Schemi definiscono la struttura per i tuoi contenuti, i campi e i tipi di dato per ogni tipo di contenuto.\n\nPrima di creare un contenuto riferito al tuo schema, assicurati di aver pubblicato lo schema premendo il pulsante 'Pubblica' visualizzato nell'editor dei contenuti.", - "tour.step3Next": "Ci siamo quasi!", - "tour.step3Text": "I contenuti della tua app sono raggruppati tramite gli schemi.\n\nSeleziona uno schema pubblicato e poi crea il relativo contenuto.", - "tour.step4Next": "Fatto!", - "tour.step4Text": "Le risorse contengono tutti i file che tu puoi collegare ai tuoi contenuti. Per esempio immagini, video o documenti.\n\nPuoi caricare qui le risorse e usarle successivamente oppure caricarle direttamente quando stai creando un contenuto utilizzando un campo risorse.", - "tour.step5Text": "Ma non è tutto il supporto che possiamo fornire.\n\nPer maggiori informazioni visita il sito https://docs.squidex.io.\n\nVuoi far parte della nostra community?", - "tour.step5Title": "Fantastico, ora conosci le basi!", + "tour.stepAppNext": "Continua", + "tour.stepAppText": "Un'App è il repository per il tuo progetto, ad es. (un blog, un negozio sul web o una app per dispositivi mobili). Puoi assegnare collaboratori alla tua App per lavorare insieme.\n\nPuoi creare un numero illimitato di app in Squidex per gestire più progetti contemporaneamente.", + "tour.stepAssetsNext": "Fatto!", + "tour.stepAssetsText": "Le risorse contengono tutti i file che tu puoi collegare ai tuoi contenuti. Per esempio immagini, video o documenti.\n\nPuoi caricare qui le risorse e usarle successivamente oppure caricarle direttamente quando stai creando un contenuto utilizzando un campo risorse.", + "tour.stepContentNext": "Ci siamo quasi!", + "tour.stepContentText": "I contenuti della tua app sono raggruppati tramite gli schemi.\n\nSeleziona uno schema pubblicato e poi crea il relativo contenuto.", + "tour.stepIntroNext": "Guardiamoci intorno", + "tour.stepIntroText": "Puoi iniziare subito a gestire e distribuire i tuoi contenuti, ma prima vorremmo illustrarti alcune nozioni di base...\n\nIn questo modo", + "tour.stepOutroText": "Ma non è tutto il supporto che possiamo fornire.\n\nPer maggiori informazioni visita il sito https://docs.squidex.io.\n\nVuoi far parte della nostra community?", + "tour.stepOutroTitle": "Fantastico, ora conosci le basi!", + "tour.stepSchemasNext": "Vai avanti!", + "tour.stepSchemasText": "Gli Schemi definiscono la struttura per i tuoi contenuti, i campi e i tipi di dato per ogni tipo di contenuto.\n\nPrima di creare un contenuto riferito al tuo schema, assicurati di aver pubblicato lo schema premendo il pulsante 'Pubblica' visualizzato nell'editor dei contenuti.", "tour.tooltipConfirm": "Capito", "tour.tooltipStop": "Ferma il Tour", "tour.welcome": "Benvenuto su", diff --git a/backend/i18n/source/frontend_nl.json b/backend/i18n/source/frontend_nl.json index 8ac3cb7d1..fce5111f0 100644 --- a/backend/i18n/source/frontend_nl.json +++ b/backend/i18n/source/frontend_nl.json @@ -937,18 +937,18 @@ "tour.joinForum": "Word lid van ons forum", "tour.joinGithub": "Bezoek ons ​​op Github", "tour.skip": "Tour overslaan", - "tour.step0Next": "Laten we eens rondkijken", - "tour.step0Text": "Je kunt direct beginnen met het beheren en distribueren van uw inhoud, maar we willen je graag eerst wat basisbeginselen laten zien ... \n \n Hoe dat", - "tour.step1Next": "Doorgaan", - "tour.step1Text": "Een app is de opslagplaats voor uw project, bijvoorbeeld (blog, webshop of mobiele app). Je kunt bijdragers aan uw app toewijzen om samen te werken. \n \n Je kunt een onbeperkt aantal apps maken in Squidex om meerdere projecten tegelijkertijd te beheren. ", - "tour.step2Next": "Ga door!", - "tour.step2Text": "Schema's bepalen de structuur van uw inhoud, de velden en de gegevenstypen van een inhoudsitem. \n \n Voordat je inhoud aan uw schema kunt toevoegen, moet je op de knop 'Publiceren' bovenaan klikken om het schema beschikbaar te maken voor uw inhoudappSettings.editors. ", - "tour.step3Next": "Bijna klaar!", - "tour.step3Text": "Inhoud zijn de feitelijke gegevens in uw app die zijn gegroepeerd op basis van het schema. \n \n Selecteer eerst een gepubliceerd schema en voeg vervolgens inhoud toe voor dit schema.", - "tour.step4Next": "Begrepen!", - "tour.step4Text": "De mappen bevatten alle bestanden die ook aan uw inhoud kunnen worden gekoppeld. Bijvoorbeeld afbeeldingen, video's of documenten. \n \n Je kunt de bestanden hier uploaden en later gebruiken of ze direct uploaden wanneer je een nieuw contentitem met een bestandveld maakt. ", - "tour.step5Text": "Maar dat is niet alle ondersteuning die we kunnen bieden. \n \n Je kunt naar https://docs.squidex.io gaan om meer te lezen. \n \n Wil je lid worden van onze community ? ", - "tour.step5Title": "Geweldig, nu ken je de basis!", + "tour.stepAppNext": "Doorgaan", + "tour.stepAppText": "Een app is de opslagplaats voor uw project, bijvoorbeeld (blog, webshop of mobiele app). Je kunt bijdragers aan uw app toewijzen om samen te werken. \n \n Je kunt een onbeperkt aantal apps maken in Squidex om meerdere projecten tegelijkertijd te beheren. ", + "tour.stepAssetsNext": "Begrepen!", + "tour.stepAssetsText": "De mappen bevatten alle bestanden die ook aan uw inhoud kunnen worden gekoppeld. Bijvoorbeeld afbeeldingen, video's of documenten. \n \n Je kunt de bestanden hier uploaden en later gebruiken of ze direct uploaden wanneer je een nieuw contentitem met een bestandveld maakt. ", + "tour.stepContentNext": "Bijna klaar!", + "tour.stepContentText": "Inhoud zijn de feitelijke gegevens in uw app die zijn gegroepeerd op basis van het schema. \n \n Selecteer eerst een gepubliceerd schema en voeg vervolgens inhoud toe voor dit schema.", + "tour.stepIntroNext": "Laten we eens rondkijken", + "tour.stepIntroText": "Je kunt direct beginnen met het beheren en distribueren van uw inhoud, maar we willen je graag eerst wat basisbeginselen laten zien ... \n \n Hoe dat", + "tour.stepOutroText": "Maar dat is niet alle ondersteuning die we kunnen bieden. \n \n Je kunt naar https://docs.squidex.io gaan om meer te lezen. \n \n Wil je lid worden van onze community ? ", + "tour.stepOutroTitle": "Geweldig, nu ken je de basis!", + "tour.stepSchemasNext": "Ga door!", + "tour.stepSchemasText": "Schema's bepalen de structuur van uw inhoud, de velden en de gegevenstypen van een inhoudsitem. \n \n Voordat je inhoud aan uw schema kunt toevoegen, moet je op de knop 'Publiceren' bovenaan klikken om het schema beschikbaar te maken voor uw inhoudappSettings.editors. ", "tour.tooltipConfirm": "Begrepen", "tour.tooltipStop": "Tour stoppen", "tour.welcome": "Welkom bij", diff --git a/backend/i18n/source/frontend_pt.json b/backend/i18n/source/frontend_pt.json index ca7e976b5..9944e8ced 100644 --- a/backend/i18n/source/frontend_pt.json +++ b/backend/i18n/source/frontend_pt.json @@ -1013,18 +1013,18 @@ "tour.joinForum": "Junte-se ao nosso Fórum", "tour.joinGithub": "Junte-se a nós em Github", "tour.skip": "Tour de salto", - "tour.step0Next": "Vamos dar uma vista de olhos.", - "tour.step0Text": "Pode começar a gerir e distribuir o seu conteúdo imediatamente, mas gostaríamos de o acompanhar primeiro...\n\nComo é que", - "tour.step1Next": "Continuar", - "tour.step1Text": "Uma App é o repositório do seu projeto, por exemplo (blog, web shop ou aplicativo móvel). Pode atribuir colaboradores à sua aplicação para trabalharem em conjunto.\n\nPode criar um número ilimitado de Apps em Squidex para gerir vários projetos ao mesmo tempo.", - "tour.step2Next": "Continua!", - "tour.step2Text": "Os esquemas definem a estrutura do seu conteúdo, os campos e os tipos de dados de um item de conteúdo.\n\nAntes de poder adicionar conteúdo ao seu esquema, certifique-se de carregar no botão 'Publicar' no topo para disponibilizar o esquema para as suas aplicações de conteúdoSettings.editores.", - "tour.step3Next": "Está quase!", - "tour.step3Text": "O conteúdo é o dado real da sua app que é agrupado pelo esquema.\n\nSelecione primeiro um esquema publicado e, em seguida, adicione conteúdo para este esquema.", - "tour.step4Next": "Apanhei!", - "tour.step4Text": "Os ativos contêm todos os ficheiros que também podem estar ligados ao seu conteúdo. Por exemplo, imagens, vídeos ou documentos.\n\nPode fazer o upload dos ativos aqui e usá-los mais tarde ou também carregá-los diretamente quando criar um novo item de conteúdo com um campo de ativos.", - "tour.step5Text": "Mas não é todo o apoio que podemos dar.\n\nPode ir a https://docs.squidex.io ler mais.\n\nQuer se juntar à nossa comunidade?", - "tour.step5Title": "Incrível, agora já sabes o básico!", + "tour.stepAppNext": "Continuar", + "tour.stepAppText": "Uma App é o repositório do seu projeto, por exemplo (blog, web shop ou aplicativo móvel). Pode atribuir colaboradores à sua aplicação para trabalharem em conjunto.\n\nPode criar um número ilimitado de Apps em Squidex para gerir vários projetos ao mesmo tempo.", + "tour.stepAssetsNext": "Apanhei!", + "tour.stepAssetsText": "Os ativos contêm todos os ficheiros que também podem estar ligados ao seu conteúdo. Por exemplo, imagens, vídeos ou documentos.\n\nPode fazer o upload dos ativos aqui e usá-los mais tarde ou também carregá-los diretamente quando criar um novo item de conteúdo com um campo de ativos.", + "tour.stepContentNext": "Está quase!", + "tour.stepContentText": "O conteúdo é o dado real da sua app que é agrupado pelo esquema.\n\nSelecione primeiro um esquema publicado e, em seguida, adicione conteúdo para este esquema.", + "tour.stepIntroNext": "Vamos dar uma vista de olhos.", + "tour.stepIntroText": "Pode começar a gerir e distribuir o seu conteúdo imediatamente, mas gostaríamos de o acompanhar primeiro...\n\nComo é que", + "tour.stepOutroText": "Mas não é todo o apoio que podemos dar.\n\nPode ir a https://docs.squidex.io ler mais.\n\nQuer se juntar à nossa comunidade?", + "tour.stepOutroTitle": "Incrível, agora já sabes o básico!", + "tour.stepSchemasNext": "Continua!", + "tour.stepSchemasText": "Os esquemas definem a estrutura do seu conteúdo, os campos e os tipos de dados de um item de conteúdo.\n\nAntes de poder adicionar conteúdo ao seu esquema, certifique-se de carregar no botão 'Publicar' no topo para disponibilizar o esquema para as suas aplicações de conteúdoSettings.editores.", "tour.tooltipConfirm": "Entendi", "tour.tooltipStop": "Terminar Tour", "tour.welcome": "Bem vindo a", diff --git a/backend/i18n/source/frontend_zh.json b/backend/i18n/source/frontend_zh.json index 64fac28ba..35aac206a 100644 --- a/backend/i18n/source/frontend_zh.json +++ b/backend/i18n/source/frontend_zh.json @@ -826,18 +826,18 @@ "tour.joinForum": "加入我们的论坛", "tour.joinGithub": "加入我们的 Github", "tour.skip": "跳过游览", - "tour.step0Next": "我们看看周围", - "tour.step0Text": "您可以立即开始管理和分发您的内容,但我们想先向您介绍一些基础知识...\n\n如何", - "tour.step1Next": "继续", - "tour.step1Text": "应用程序是您项目的存储库,例如(博客、网上商店或移动应用程序)。您可以为您的应用程序分配贡献者以协同工作。\n\n您可以在其中创建无限数量的应用程序Squidex 同时管理多个项目。", - "tour.step2Next": "继续!", - "tour.step2Text": "Schemas定义内容的结构、内容项的字段和数据类型。\n\n在向Schemas添加内容之前,请确保点击顶部的“发布”按钮使Schemas可用于您的内容 appSettings.editors。", - "tour.step3Next": "快到了!", - "tour.step3Text": "内容是您的应用程序中按Schemas分组的实际数据。\n\n首先选择一个已发布的Schemas,然后为此Schemas添加内容。", - "tour.step4Next": "知道了!", - "tour.step4Text": "资源包含所有也可以链接到您的内容的文件。例如图像、视频或文档。\n\n您可以在此处上传资源供以后使用,也可以在创建时直接上传带有资源字段的新内容项。", - "tour.step5Text": "但这还不是我们可以提供的全部支持。\n\n您可以访问 https://docs.squidex.io 阅读更多信息。\n\n您想加入我们的社区吗? ?", - "tour.step5Title": "太棒了,现在你知道基础了!", + "tour.stepAppNext": "继续", + "tour.stepAppText": "应用程序是您项目的存储库,例如(博客、网上商店或移动应用程序)。您可以为您的应用程序分配贡献者以协同工作。\n\n您可以在其中创建无限数量的应用程序Squidex 同时管理多个项目。", + "tour.stepAssetsNext": "知道了!", + "tour.stepAssetsText": "资源包含所有也可以链接到您的内容的文件。例如图像、视频或文档。\n\n您可以在此处上传资源供以后使用,也可以在创建时直接上传带有资源字段的新内容项。", + "tour.stepContentNext": "快到了!", + "tour.stepContentText": "内容是您的应用程序中按Schemas分组的实际数据。\n\n首先选择一个已发布的Schemas,然后为此Schemas添加内容。", + "tour.stepIntroNext": "我们看看周围", + "tour.stepIntroText": "您可以立即开始管理和分发您的内容,但我们想先向您介绍一些基础知识...\n\n如何", + "tour.stepOutroText": "但这还不是我们可以提供的全部支持。\n\n您可以访问 https://docs.squidex.io 阅读更多信息。\n\n您想加入我们的社区吗? ?", + "tour.stepOutroTitle": "太棒了,现在你知道基础了!", + "tour.stepSchemasNext": "继续!", + "tour.stepSchemasText": "Schemas定义内容的结构、内容项的字段和数据类型。\n\n在向Schemas添加内容之前,请确保点击顶部的“发布”按钮使Schemas可用于您的内容 appSettings.editors。", "tour.tooltipConfirm": "知道了", "tour.tooltipStop": "停止游览", "tour.welcome": "欢迎来到", diff --git a/backend/src/Squidex.Domain.Users/UserManagerExtensions.cs b/backend/src/Squidex.Domain.Users/UserManagerExtensions.cs index 152af9e3e..a0447a9f6 100644 --- a/backend/src/Squidex.Domain.Users/UserManagerExtensions.cs +++ b/backend/src/Squidex.Domain.Users/UserManagerExtensions.cs @@ -125,6 +125,14 @@ internal static class UserManagerExtensions } } + if (values.Answers != null) + { + foreach (var (name, value) in values.Answers.Where(x => !string.IsNullOrWhiteSpace(x.Value))) + { + AddClaim(SquidexClaimTypes.Answer, $"{name}={value}"); + } + } + if (values.CustomClaims != null) { foreach (var group in values.CustomClaims.GroupBy(x => x.Type)) diff --git a/backend/src/Squidex.Domain.Users/UserValues.cs b/backend/src/Squidex.Domain.Users/UserValues.cs index 93677e1b7..0c08e1401 100644 --- a/backend/src/Squidex.Domain.Users/UserValues.cs +++ b/backend/src/Squidex.Domain.Users/UserValues.cs @@ -35,4 +35,6 @@ public sealed class UserValues public List? CustomClaims { get; set; } public List<(string Name, string Value)>? Properties { get; set; } + + public Dictionary? Answers { get; set; } } diff --git a/backend/src/Squidex.Shared/Identity/SquidexClaimTypes.cs b/backend/src/Squidex.Shared/Identity/SquidexClaimTypes.cs index 878a23768..335668e41 100644 --- a/backend/src/Squidex.Shared/Identity/SquidexClaimTypes.cs +++ b/backend/src/Squidex.Shared/Identity/SquidexClaimTypes.cs @@ -31,6 +31,8 @@ namespace Squidex.Shared.Identity public const string PictureUrlStore = "store"; + public const string Answer = "urn:squidex:answer"; + public const string TotalApps = "urn:squidex:internal:totalApps"; public const string UIProperty = "urn:squidex:ui"; diff --git a/backend/src/Squidex/Areas/Api/Controllers/Users/Models/UpdateProfileDto.cs b/backend/src/Squidex/Areas/Api/Controllers/Users/Models/UpdateProfileDto.cs new file mode 100644 index 000000000..b950d9bd4 --- /dev/null +++ b/backend/src/Squidex/Areas/Api/Controllers/Users/Models/UpdateProfileDto.cs @@ -0,0 +1,28 @@ +// ========================================================================== +// Squidex Headless CMS +// ========================================================================== +// Copyright (c) Squidex UG (haftungsbeschraenkt) +// All rights reserved. Licensed under the MIT license. +// ========================================================================== + +using Squidex.Domain.Users; +using Squidex.Web; + +namespace Squidex.Areas.Api.Controllers.Users.Models; + +[OpenApiRequest] +public sealed class UpdateProfileDto +{ + /// + /// The answers from a questionaire. + /// + public Dictionary? Answers { get; set; } + + public UserValues ToValues() + { + return new UserValues + { + Answers = Answers + }; + } +} diff --git a/backend/src/Squidex/Areas/Api/Controllers/Users/UsersController.cs b/backend/src/Squidex/Areas/Api/Controllers/Users/UsersController.cs index 54216f626..1d5b27a08 100644 --- a/backend/src/Squidex/Areas/Api/Controllers/Users/UsersController.cs +++ b/backend/src/Squidex/Areas/Api/Controllers/Users/UsersController.cs @@ -25,6 +25,7 @@ public sealed class UsersController : ApiController private static readonly byte[] AvatarBytes; private readonly IHttpClientFactory httpClientFactory; private readonly IUserPictureStore userPictureStore; + private readonly IUserService userService; private readonly IUserResolver userResolver; private readonly ILogger log; @@ -45,13 +46,14 @@ public sealed class UsersController : ApiController IHttpClientFactory httpClientFactory, IUserPictureStore userPictureStore, IUserResolver userResolver, + IUserService userService, ILogger log) : base(commandBus) { this.httpClientFactory = httpClientFactory; this.userPictureStore = userPictureStore; + this.userService = userService; this.userResolver = userResolver; - this.log = log; } @@ -70,6 +72,22 @@ public sealed class UsersController : ApiController return Ok(response); } + /// + /// Update the user profile. + /// + /// The values to update. + /// User updated.. + [HttpPost] + [Route("user")] + [ProducesResponseType(StatusCodes.Status204NoContent)] + [ApiPermission] + public async Task PostUser([FromBody] UpdateProfileDto request) + { + await userService.UpdateAsync(UserId, request.ToValues(), true, HttpContext.RequestAborted); + + return NoContent(); + } + /// /// Get users by query. /// diff --git a/backend/src/Squidex/wwwroot/images/client.png b/backend/src/Squidex/wwwroot/images/client.png deleted file mode 100644 index d3ed9984e..000000000 Binary files a/backend/src/Squidex/wwwroot/images/client.png and /dev/null differ diff --git a/backend/src/Squidex/wwwroot/images/client.svg b/backend/src/Squidex/wwwroot/images/client.svg deleted file mode 100644 index 9e2e0327b..000000000 --- a/backend/src/Squidex/wwwroot/images/client.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/backend/src/Squidex/wwwroot/images/onboarding-step1.png b/backend/src/Squidex/wwwroot/images/onboarding-step1.png deleted file mode 100644 index 9e733de40..000000000 Binary files a/backend/src/Squidex/wwwroot/images/onboarding-step1.png and /dev/null differ diff --git a/backend/src/Squidex/wwwroot/images/onboarding-step2.png b/backend/src/Squidex/wwwroot/images/onboarding-step2.png deleted file mode 100644 index f2c2545b1..000000000 Binary files a/backend/src/Squidex/wwwroot/images/onboarding-step2.png and /dev/null differ diff --git a/backend/src/Squidex/wwwroot/images/onboarding-step3.png b/backend/src/Squidex/wwwroot/images/onboarding-step3.png deleted file mode 100644 index 7d904fa6f..000000000 Binary files a/backend/src/Squidex/wwwroot/images/onboarding-step3.png and /dev/null differ diff --git a/backend/src/Squidex/wwwroot/images/onboarding-step4.png b/backend/src/Squidex/wwwroot/images/onboarding-step4.png deleted file mode 100644 index 9bc391ff1..000000000 Binary files a/backend/src/Squidex/wwwroot/images/onboarding-step4.png and /dev/null differ diff --git a/backend/src/Squidex/wwwroot/images/squid.svg b/backend/src/Squidex/wwwroot/images/squid.svg new file mode 100644 index 000000000..9aaa13b85 --- /dev/null +++ b/backend/src/Squidex/wwwroot/images/squid.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/backend/src/Squidex/wwwroot/images/tour-apps.png b/backend/src/Squidex/wwwroot/images/tour-apps.png new file mode 100644 index 000000000..3109005f1 Binary files /dev/null and b/backend/src/Squidex/wwwroot/images/tour-apps.png differ diff --git a/backend/src/Squidex/wwwroot/images/tour-assets.png b/backend/src/Squidex/wwwroot/images/tour-assets.png new file mode 100644 index 000000000..1b9ba6a6c Binary files /dev/null and b/backend/src/Squidex/wwwroot/images/tour-assets.png differ diff --git a/backend/src/Squidex/wwwroot/images/tour-content.png b/backend/src/Squidex/wwwroot/images/tour-content.png new file mode 100644 index 000000000..524323628 Binary files /dev/null and b/backend/src/Squidex/wwwroot/images/tour-content.png differ diff --git a/backend/src/Squidex/wwwroot/images/tour-graphql.png b/backend/src/Squidex/wwwroot/images/tour-graphql.png new file mode 100644 index 000000000..a55666276 Binary files /dev/null and b/backend/src/Squidex/wwwroot/images/tour-graphql.png differ diff --git a/backend/src/Squidex/wwwroot/images/tour-languages.png b/backend/src/Squidex/wwwroot/images/tour-languages.png new file mode 100644 index 000000000..b33307ab4 Binary files /dev/null and b/backend/src/Squidex/wwwroot/images/tour-languages.png differ diff --git a/backend/src/Squidex/wwwroot/images/tour-rules.png b/backend/src/Squidex/wwwroot/images/tour-rules.png new file mode 100644 index 000000000..ffc64c698 Binary files /dev/null and b/backend/src/Squidex/wwwroot/images/tour-rules.png differ diff --git a/backend/src/Squidex/wwwroot/images/tour-schema.png b/backend/src/Squidex/wwwroot/images/tour-schema.png new file mode 100644 index 000000000..b59a689b6 Binary files /dev/null and b/backend/src/Squidex/wwwroot/images/tour-schema.png differ diff --git a/backend/src/Squidex/wwwroot/images/tour-workflow.png b/backend/src/Squidex/wwwroot/images/tour-workflow.png new file mode 100644 index 000000000..daca72e26 Binary files /dev/null and b/backend/src/Squidex/wwwroot/images/tour-workflow.png differ diff --git a/frontend/src/app/assets/onboarding-background.png b/frontend/src/app/assets/onboarding-background.png index a3911adde..aea2e0050 100644 Binary files a/frontend/src/app/assets/onboarding-background.png and b/frontend/src/app/assets/onboarding-background.png differ diff --git a/frontend/src/app/assets/squid.svg b/frontend/src/app/assets/squid.svg new file mode 100644 index 000000000..ec5cd7d1f --- /dev/null +++ b/frontend/src/app/assets/squid.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + diff --git a/frontend/src/app/features/apps/pages/apps-page.component.html b/frontend/src/app/features/apps/pages/apps-page.component.html index d31e4c94b..258ad80f1 100644 --- a/frontend/src/app/features/apps/pages/apps-page.component.html +++ b/frontend/src/app/features/apps/pages/apps-page.component.html @@ -2,10 +2,19 @@
-

{{ 'apps.welcomeTitle' | sqxTranslate: { user: user.displayName } }}

+
+
+
+ +
+
+
+

{{ 'apps.welcomeTitle' | sqxTranslate: { user: user.displayName } }}

-
- {{ 'apps.welcomeSubtitle' | sqxTranslate }} +
+ {{ 'apps.welcomeSubtitle' | sqxTranslate }} +
+
diff --git a/frontend/src/app/features/apps/pages/apps-page.component.scss b/frontend/src/app/features/apps/pages/apps-page.component.scss index df44c9071..59154a41b 100644 --- a/frontend/src/app/features/apps/pages/apps-page.component.scss +++ b/frontend/src/app/features/apps/pages/apps-page.component.scss @@ -11,6 +11,19 @@ overflow-y: auto; } +.squid { + @include circle(60px); + background: $color-white; + + &.bordered { + border: 1px solid $color-border; + } + + img { + max-height: 80%; + } +} + :host ::ng-deep { .card { @include hover-visible('.deeplinks', inline); diff --git a/frontend/src/app/features/apps/pages/onboarding-dialog.component.html b/frontend/src/app/features/apps/pages/onboarding-dialog.component.html index 4a669bc6b..7202f56a6 100644 --- a/frontend/src/app/features/apps/pages/onboarding-dialog.component.html +++ b/frontend/src/app/features/apps/pages/onboarding-dialog.component.html @@ -1,102 +1,156 @@ + +
+ +
+
+ - {{ 'tour.skip' | sqxTranslate }} + {{ 'tour.skip' | sqxTranslate }} -
+
-
+

{{ 'tour.welcome' | sqxTranslate }} {{ 'tour.welcomeProduct' | sqxTranslate }}

-
+
- +
+ +
-
-

{{ 'common.apps' | sqxTranslate }}

-
-
-
-
+
+ + +
+
+

{{ 'tour.stepDataTitle' | sqxTranslate }}

+ +
+ +
+ + +
-
- + +
+ + +
-
- - + +
+ + + +
+ + +
+
-

{{ 'common.schemas' | sqxTranslate }}

+
+
+

{{ 'common.apps' | sqxTranslate }}

-
-
-
-
-
-
- +
+ +
- -
+
-

{{ 'common.contents' | sqxTranslate }}

+
+
+

{{ 'common.schemas' | sqxTranslate }}

-
-
-
-
-
-
- +
+ +
- -
-

{{ 'common.assets' | sqxTranslate }}

+
+
+

{{ 'common.contents' | sqxTranslate }}

-
-
-
-
-
-
- +
+ +
+
+ +
t +
+
+
+
+
+

{{ 'common.assets' | sqxTranslate }}

- +
+
-
+
-
-

{{ 'tour.step5Title' | sqxTranslate }}

+
+

{{ 'tour.stepOutroTitle' | sqxTranslate }}

-
+
-
- +
+ {{ 'tour.joinForum' | sqxTranslate }} -   + {{ 'tour.joinGithub' | sqxTranslate }} diff --git a/frontend/src/app/features/apps/pages/onboarding-dialog.component.scss b/frontend/src/app/features/apps/pages/onboarding-dialog.component.scss index 6af53cbd4..1a67eb335 100644 --- a/frontend/src/app/features/apps/pages/onboarding-dialog.component.scss +++ b/frontend/src/app/features/apps/pages/onboarding-dialog.component.scss @@ -4,6 +4,7 @@ $size-width: 825px; $size-height: 576px; $size-image: 476px; +$size-squid: 80px; h1 { font-size: 1.6rem; @@ -15,6 +16,10 @@ p { .col-image { @include force-width(489px); + + img { + width: 900px; + } } :host ::ng-deep { @@ -25,16 +30,16 @@ p { @include force-height($size-height); } + &-dialog { + top: 6rem; + } + &-content { - background-color: $color-dark-onboarding; background-image: url('../../../assets/onboarding-background.png'); - color: $color-white; - position: relative; } - &-body, &-content { - overflow: hidden; + position: relative; } &-footer { @@ -42,46 +47,76 @@ p { } &-close { - color: $color-white; - cursor: pointer; - text-decoration: underline !important; + text-decoration: none !important; } } } -.header-focus { +h2 { color: $color-theme-brand; } -.header-left { - @include absolute($t: -70px, $l: 2rem); +.header-focus { + color: $color-theme-brand; } .header-right { - @include absolute($t: 2rem, $r: 2rem); + @include absolute(2rem, 2rem); } -.footer { - @include absolute($t: 18rem, $l: 2rem); +.squid { + @include absolute(0, null, null, 50%); + @include circle($size-squid); + border: 1px solid $color-border; + background: $color-white; + margin-left: -$size-squid * .5; + margin-top: -$size-squid * .5; + + img { + max-height: 80%; + } } .onboarding { &-enter-leave { - @include force-width(28rem); - margin: 4rem auto 0; - text-align: center; - text-decoration: none; - - p { - margin: 2rem 0; - } - } - - &-text { - padding-left: 2rem; + width: 28rem; + margin-left: auto; + margin-right: auto; } &-step { @include absolute($size-height - $size-image, 0, 0, 0); + overflow: hidden; + + & > div { + height: 100%; + } + + .row { + height: 100%; + } + + .col:first-child { + padding-left: 2rem; + padding-right: 2rem; + + p { + line-height: 2rem; + } + } + + .col-image { + overflow: hidden 100%; + + img { + border-left: 1px solid $color-border; + border-top: 1px solid $color-border; + position: absolute; + } + } + + .footer { + @include absolute(null, null, 10rem); + } } } \ No newline at end of file diff --git a/frontend/src/app/features/apps/pages/onboarding-dialog.component.ts b/frontend/src/app/features/apps/pages/onboarding-dialog.component.ts index b11a4b96d..30d0e397b 100644 --- a/frontend/src/app/features/apps/pages/onboarding-dialog.component.ts +++ b/frontend/src/app/features/apps/pages/onboarding-dialog.component.ts @@ -6,7 +6,9 @@ */ import { Component, EventEmitter, Output } from '@angular/core'; +import { FormBuilder } from '@angular/forms'; import { fadeAnimation, slideAnimation } from '@app/framework'; +import { UsersService } from '@app/shared'; @Component({ selector: 'sqx-onboarding-dialog', @@ -17,11 +19,30 @@ import { fadeAnimation, slideAnimation } from '@app/framework'; ], }) export class OnboardingDialogComponent { - public step = 0; @Output() public close = new EventEmitter(); + public answersForm = + this.formBuilder.group({ + companySize: '', + companyRole: '', + project: '', + }); + + public step = 0; + + constructor( + private readonly formBuilder: FormBuilder, + private readonly usersService: UsersService, + ) { + } + + public submitAnswers() { + this.usersService.postUser({ answers: this.answersForm.value as any }).subscribe(); + this.next(); + } + public next() { this.step += 1; } diff --git a/frontend/src/app/features/dashboard/pages/dashboard-page.component.html b/frontend/src/app/features/dashboard/pages/dashboard-page.component.html index 1124074df..9f15671a1 100644 --- a/frontend/src/app/features/dashboard/pages/dashboard-page.component.html +++ b/frontend/src/app/features/dashboard/pages/dashboard-page.component.html @@ -3,9 +3,18 @@
-

{{ 'dashboard.welcomeTitle' | sqxTranslate: { user: user } }}

- -
+
+
+
+ +
+
+
+

{{ 'dashboard.welcomeTitle' | sqxTranslate: { user: user } }}

+ +
+
+
diff --git a/frontend/src/app/features/dashboard/pages/dashboard-page.component.scss b/frontend/src/app/features/dashboard/pages/dashboard-page.component.scss index 9972548f3..c1de03e6a 100644 --- a/frontend/src/app/features/dashboard/pages/dashboard-page.component.scss +++ b/frontend/src/app/features/dashboard/pages/dashboard-page.component.scss @@ -56,6 +56,19 @@ gridster-item { z-index: 1000; } +.squid { + @include circle(60px); + background: $color-white; + + &.bordered { + border: 1px solid $color-border; + } + + img { + max-height: 80%; + } +} + :host ::ng-deep { .subtext { margin-bottom: 2rem; diff --git a/frontend/src/app/features/teams/pages/dashboard/dashboard-page.component.html b/frontend/src/app/features/teams/pages/dashboard/dashboard-page.component.html index 07134dc71..f20744351 100644 --- a/frontend/src/app/features/teams/pages/dashboard/dashboard-page.component.html +++ b/frontend/src/app/features/teams/pages/dashboard/dashboard-page.component.html @@ -3,9 +3,18 @@
-

{{ 'dashboard.welcomeTitle' | sqxTranslate: { user: user } }}

- -
+
+
+
+ +
+
+
+

{{ 'dashboard.welcomeTitle' | sqxTranslate: { user: user } }}

+ +
+
+
diff --git a/frontend/src/app/features/teams/pages/dashboard/dashboard-page.component.scss b/frontend/src/app/features/teams/pages/dashboard/dashboard-page.component.scss index 9972548f3..c1de03e6a 100644 --- a/frontend/src/app/features/teams/pages/dashboard/dashboard-page.component.scss +++ b/frontend/src/app/features/teams/pages/dashboard/dashboard-page.component.scss @@ -56,6 +56,19 @@ gridster-item { z-index: 1000; } +.squid { + @include circle(60px); + background: $color-white; + + &.bordered { + border: 1px solid $color-border; + } + + img { + max-height: 80%; + } +} + :host ::ng-deep { .subtext { margin-bottom: 2rem; diff --git a/frontend/src/app/shared/components/pipes.ts b/frontend/src/app/shared/components/pipes.ts index 20ff12839..5c7d73de6 100644 --- a/frontend/src/app/shared/components/pipes.ts +++ b/frontend/src/app/shared/components/pipes.ts @@ -192,7 +192,7 @@ export class UserPictureRefPipe extends UserAsyncPipe implements OnDestroy, Pipe if (type === 'subject') { return users.getUser(id).pipe(map(u => this.apiUrl.buildUrl(`api/users/${u.id}/picture`))); } else { - return of('./images/client.png'); + return of('./images/squid.svg'); } }); } diff --git a/frontend/src/app/shared/services/users.service.spec.ts b/frontend/src/app/shared/services/users.service.spec.ts index 821172efd..b9ce4330d 100644 --- a/frontend/src/app/shared/services/users.service.spec.ts +++ b/frontend/src/app/shared/services/users.service.spec.ts @@ -26,6 +26,16 @@ describe('UsersService', () => { httpMock.verify(); })); + it('should make post request to update profile', + inject([UsersService, HttpTestingController], (usersService: UsersService, httpMock: HttpTestingController) => { + usersService.postUser({ answers: {} }).subscribe(); + + const req = httpMock.expectOne('http://service/p/api/user'); + + expect(req.request.method).toEqual('POST'); + expect(req.request.headers.get('If-Match')).toBeNull(); + })); + it('should make get request to get many users', inject([UsersService, HttpTestingController], (usersService: UsersService, httpMock: HttpTestingController) => { let users: ReadonlyArray; diff --git a/frontend/src/app/shared/services/users.service.ts b/frontend/src/app/shared/services/users.service.ts index e6927e764..298d3f6a9 100644 --- a/frontend/src/app/shared/services/users.service.ts +++ b/frontend/src/app/shared/services/users.service.ts @@ -19,6 +19,11 @@ export class UserDto { } } +export type UpdateProfileDto = Readonly<{ + // The given answers. + answers: { [question: string]: string }; + }>; + @Injectable() export class UsersService { constructor( @@ -27,6 +32,12 @@ export class UsersService { ) { } + public postUser(dto: UpdateProfileDto): Observable { + const url = this.apiUrl.buildUrl('api/user'); + + return this.http.post(url, dto); + } + public getUsers(query?: string): Observable> { const url = this.apiUrl.buildUrl(`api/users?query=${query || ''}`);