{{ t(`params.${tag.label}`) }}:
@@ -49,9 +53,99 @@ const props = defineProps({
-
+ {
+ if (value.includes(','))
+ params.amount = params.amount.replace(',', '.');
+ }
+ "
+ :rules="[
+ (val) =>
+ isValidNumber(val) || !val || 'Please type a number',
+ ]"
+ >
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -67,12 +161,19 @@ en:
orderFk: Order
clientFk: Customer
amount: Amount
+ from: From
+ to: To
es:
params:
orderFk: Pedido
clientFk: Cliente
amount: Importe
+ from: Desde
+ to: Hasta
Order ID: ID pedido
Customer ID: ID cliente
Amount: Importe
+ Please type a number: Por favor, escriba un número
+ From: Desde
+ To: Hasta
diff --git a/src/pages/Login/LoginMain.vue b/src/pages/Login/LoginMain.vue
index 7c0bbbd44..2e4fd91ca 100644
--- a/src/pages/Login/LoginMain.vue
+++ b/src/pages/Login/LoginMain.vue
@@ -8,6 +8,8 @@ import axios from 'axios';
import { useSession } from 'src/composables/useSession';
import { useLogin } from 'src/composables/useLogin';
+import VnLogo from 'components/ui/VnLogo.vue';
+
const quasar = useQuasar();
const session = useSession();
const loginCache = useLogin();
@@ -64,14 +66,8 @@ async function onSubmit() {
-
-
+
+
-
+
diff --git a/src/pages/Login/TwoFactor.vue b/src/pages/Login/TwoFactor.vue
index f14e85418..1c99e8dec 100644
--- a/src/pages/Login/TwoFactor.vue
+++ b/src/pages/Login/TwoFactor.vue
@@ -48,7 +48,7 @@ async function onSubmit() {
}
-
+
{{ t('twoFactor.insert') }}
@@ -77,4 +77,15 @@ async function onSubmit() {
-
+
diff --git a/src/pages/Login/VerifyEmail.vue b/src/pages/Login/VerifyEmail.vue
new file mode 100644
index 000000000..dae20e8b6
--- /dev/null
+++ b/src/pages/Login/VerifyEmail.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+ {
+ "en": {
+ "verifyEmail": "Your email has been successfully verified. You can now log in to enjoy all the features of our platform.",
+ "goToShop": "Go to the shop",
+ "logIn": "Log In"
+ },
+ "es": {
+ "verifyEmail": "Su correo electrónico ha sido verificado con éxito. Ahora puede iniciar sesión para disfrutar de todas las funcionalidades de nuestra plataforma.",
+ "goToShop": "Ir a la tienda",
+ "logIn": "Iniciar sesión"
+ },
+ "fr": {
+ "verifyEmail": "Votre courrier électronique a été vérifié avec succès. Vous pouvez maintenant vous connecter pour profiter de toutes les fonctionnalités de notre plateforme.",
+ "goToShop": "Aller à la boutique",
+ "logIn": "Se connecter"
+ },
+ "pt": {
+ "verifyEmail": "Seu e-mail foi verificado com sucesso. Agora você pode fazer o login para aproveitar todas as funcionalidades da nossa plataforma.",
+ "goToShop": "Ir para a loja",
+ "logIn": "Fazer login"
+ },
+ "it": {
+ "verifyEmail": "La tua email è stata verificata con successo. Ora puoi accedere per godere di tutte le funzionalità della nostra piattaforma.",
+ "goToShop": "Vai al negozio",
+ "logIn": "Accedi"
+ }
+ }
+
+
+
diff --git a/src/router/index.js b/src/router/index.js
index cccf9af6d..ca560e9c9 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -45,7 +45,7 @@ export { Router };
export default route(function (/* { store, ssrContext } */) {
Router.beforeEach(async (to, from, next) => {
const { isLoggedIn } = session;
- const outLayout = ['Login', 'TwoFactor'];
+ const outLayout = ['Login', 'TwoFactor', 'VerifyEmail'];
if (!isLoggedIn() && !outLayout.includes(to.name)) {
return next({ name: 'Login', query: { redirect: to.fullPath } });
}
diff --git a/src/router/routes.js b/src/router/routes.js
index 4425996b0..e3aa22a06 100644
--- a/src/router/routes.js
+++ b/src/router/routes.js
@@ -23,6 +23,12 @@ const routes = [
meta: { title: 'twoFactor' },
component: () => import('../pages/Login/TwoFactor.vue'),
},
+ {
+ path: '/verifyEmail',
+ name: 'VerifyEmail',
+ meta: { title: 'verifyEmail' },
+ component: () => import('../pages/Login/VerifyEmail.vue'),
+ },
],
},
{
diff --git a/test/cypress/integration/workerList.spec.js b/test/cypress/integration/workerList.spec.js
index d76958367..219633263 100644
--- a/test/cypress/integration/workerList.spec.js
+++ b/test/cypress/integration/workerList.spec.js
@@ -8,18 +8,18 @@ describe('WorkerList', () => {
it('should load workers', () => {
cy.get('.card-list-body > .list-items > :nth-child(2) > .value > span')
.eq(0)
- .should('have.text', 'victorvd');
- cy.get('.card-list-body > .list-items > :nth-child(2) > .value > span')
- .eq(1)
.should('have.text', 'JessicaJones');
cy.get('.card-list-body > .list-items > :nth-child(2) > .value > span')
- .eq(2)
+ .eq(1)
.should('have.text', 'BruceBanner');
+ cy.get('.card-list-body > .list-items > :nth-child(2) > .value > span')
+ .eq(2)
+ .should('have.text', 'CharlesXavier');
});
it('should open the worker summary', () => {
cy.get('.card-list-body .actions .q-btn:nth-child(2)').eq(1).click();
- cy.get('.summaryHeader div').should('have.text', '1110 - Jessica Jones');
+ cy.get('.summaryHeader div').should('have.text', '1109 - Bruce Banner');
cy.get('.summary .header').eq(0).invoke('text').should('include', 'Basic data');
cy.get('.summary .header').eq(1).should('have.text', 'User data');
});
diff --git a/test/vitest/helper.js b/test/vitest/helper.js
index 8f4dc3221..7cc2bdfa5 100644
--- a/test/vitest/helper.js
+++ b/test/vitest/helper.js
@@ -63,6 +63,7 @@ class FormDataMock {
}
}
global.FormData = FormDataMock;
+global.URL = class URL {};
export function createWrapper(component, options) {
const defaultOptions = {