diff --git a/src/boot/axios.js b/src/boot/axios.js index b5758897..1f384ff3 100644 --- a/src/boot/axios.js +++ b/src/boot/axios.js @@ -38,6 +38,7 @@ export default boot(({ app }) => { app.config.globalProperties.$jApi = jApi; app.provide('jApi', jApi); + app.provide('api', api); }); export { api, jApi }; diff --git a/src/boot/i18n.js b/src/boot/i18n.js index 4072b024..ebf58b3c 100644 --- a/src/boot/i18n.js +++ b/src/boot/i18n.js @@ -4,7 +4,7 @@ import messages from 'src/i18n'; const i18n = createI18n({ locale: navigator.language || navigator.userLanguage, - fallbackLocale: 'en', + fallbackLocale: 'en-US', globalInjection: true, missingWarn: false, fallbackWarn: false, @@ -17,7 +17,6 @@ const i18n = createI18n({ export default boot(({ app }) => { // Set i18n instance on app app.use(i18n); - window.i18n = i18n.global; }); export { i18n }; diff --git a/src/components/common/VnForm.vue b/src/components/common/VnForm.vue new file mode 100644 index 00000000..e4ff648c --- /dev/null +++ b/src/components/common/VnForm.vue @@ -0,0 +1,198 @@ + + + + + + + + + + {{ title }} + + + + + + + + diff --git a/src/components/common/VnInput.vue b/src/components/common/VnInput.vue new file mode 100644 index 00000000..62984159 --- /dev/null +++ b/src/components/common/VnInput.vue @@ -0,0 +1,124 @@ + + + + + + + + + + + { + value = null; + emit('remove'); + } + " + /> + + + {{ info }} + + + + + + + + +en-US: + inputMin: Must be more than {value} +es-ES: + inputMin: Must be more than {value} +ca-ES: + inputMin: Ha de ser més gran que {value} +fr-FR: + inputMin: Doit être supérieur à {value} +pt-PT: + inputMin: Deve ser maior que {value} + diff --git a/src/components/common/VnSelect.vue b/src/components/common/VnSelect.vue new file mode 100644 index 00000000..24b82017 --- /dev/null +++ b/src/components/common/VnSelect.vue @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + diff --git a/src/i18n/en-US/index.js b/src/i18n/en-US/index.js index 723cfc3b..ebd6fc58 100644 --- a/src/i18n/en-US/index.js +++ b/src/i18n/en-US/index.js @@ -74,5 +74,6 @@ export default { user: 'User', addresses: 'Addresses', addressEdit: 'Edit address', - dataSaved: 'Data saved' + dataSaved: 'Data saved', + save: 'Save' }; diff --git a/src/i18n/es-ES/index.js b/src/i18n/es-ES/index.js index 0ecd8706..a3e09121 100644 --- a/src/i18n/es-ES/index.js +++ b/src/i18n/es-ES/index.js @@ -72,7 +72,17 @@ export default { items: 'Artículos', config: 'Configuración', user: 'Usuario', + password: 'Contraseña', + remindMe: 'Recuérdame', + logInAsGuest: 'Entrar como invitado', + logIn: 'Iniciar sesión', + loginMail: 'info@verdnatura.es', + loginPhone: '+34 963 242 100', + haveForgottenPassword: '¿Has olvidado tu contraseña?', + notACustomerYet: '¿Todavía no eres cliente?', + signUp: 'Registrarme', addresses: 'Direcciones', addressEdit: 'Editar dirección', - dataSaved: 'Datos guardados' + dataSaved: 'Datos guardados', + save: 'Guardar' }; diff --git a/src/js/db/sqlService.js b/src/js/db/sqlService.js new file mode 100644 index 00000000..375e2f74 --- /dev/null +++ b/src/js/db/sqlService.js @@ -0,0 +1,42 @@ +export const generateUpdateSqlQuery = ( + schema, + table, + pks, + columnsUpdated, + formData +) => { + const setClauses = columnsUpdated + .map(colName => `${colName} = '${formData[colName]}'`) + .join(', '); + const whereClause = Object.keys(pks) + .map(pk => `${pk} = ${pks[pk]}`) + .join(' AND '); + + return ` + START TRANSACTION; + UPDATE ${schema}.${table} SET ${setClauses} WHERE (${whereClause}); + SELECT ${columnsUpdated.join(', ')} FROM ${schema}.${table} WHERE (${whereClause}); + COMMIT; + `; +}; + +export const generateInsertSqlQuery = ( + schema, + table, + formData, + columnsUpdated, + createModelDefault +) => { + const columns = [createModelDefault.field, ...columnsUpdated].join(', '); + const values = [ + createModelDefault.value, + ...columnsUpdated.map(colName => `'${formData[colName]}'`) + ].join(', '); + + return ` + START TRANSACTION; + INSERT INTO ${schema}.${table} (${columns}) VALUES (${values}); + SELECT id, ${columnsUpdated.join(', ')} FROM ${schema}.${table} WHERE (id = LAST_INSERT_ID()); + COMMIT; + `; +}; diff --git a/src/pages/Account/AddressDetails.vue b/src/pages/Account/AddressDetails.vue index 6a68eb78..c41b47e9 100644 --- a/src/pages/Account/AddressDetails.vue +++ b/src/pages/Account/AddressDetails.vue @@ -1,33 +1,169 @@ - - - - - //TODO: VISTA A DESARROLLAR! + + + + + + + + + + + + + + + - + en-US: back: Back accept: Accept + addEditAddress: Add or edit address + name: Consignee + address: Address + city: City + postalCode: Zip code + country: Country + province: Province + addressChangedSuccessfully: Address changed successfully es-ES: back: Volver accept: Aceptar + addEditAddress: Añadir o modificar dirección + name: Consignatario + address: Morada + city: Ciudad + postalCode: Código postal + country: País + province: Distrito + addressChangedSuccessfully: Dirección modificada correctamente ca-ES: back: Tornar accept: Acceptar + addEditAddress: Afegir o modificar adreça + name: Consignatari + address: Direcció + city: Ciutat + postalCode: Codi postal + country: País + province: Província + addressChangedSuccessfully: Adreça modificada correctament fr-FR: back: Retour accept: Accepter + addEditAddress: Ajouter ou modifier l'adresse + name: Destinataire + address: Numéro Rue + city: Ville + postalCode: Code postal + country: Pays + province: Province + addressChangedSuccessfully: Adresse modifié avec succès pt-PT: back: Voltar accept: Aceitar + addEditAddress: Adicionar ou modificar morada + name: Consignatario + address: Morada + city: Concelho + postalCode: Código postal + country: País + province: Distrito + addressChangedSuccessfully: Morada modificada corretamente diff --git a/src/pages/Account/AddressList.vue b/src/pages/Account/AddressList.vue index 5d39dcda..3c56b2aa 100644 --- a/src/pages/Account/AddressList.vue +++ b/src/pages/Account/AddressList.vue @@ -128,7 +128,7 @@ onMounted(async () => { - + { diff --git a/src/pages/Login/Login.vue b/src/pages/Login/LoginView.vue similarity index 77% rename from src/pages/Login/Login.vue rename to src/pages/Login/LoginView.vue index 0582489b..13fd981e 100644 --- a/src/pages/Login/Login.vue +++ b/src/pages/Login/LoginView.vue @@ -1,3 +1,38 @@ + + @@ -10,9 +45,8 @@ - {{ $t('loginPhone') }} · {{ $t('loginMail') }} + + {{ $t('loginPhone') }} + + · + {{ $t('loginMail') }} @@ -121,44 +159,6 @@ a { } - - en-US: user: User diff --git a/src/router/routes.js b/src/router/routes.js index 1ab82dcc..809027d6 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -6,7 +6,7 @@ const routes = [ { name: 'login', path: '/login/:email?', - component: () => import('pages/Login/Login.vue') + component: () => import('pages/Login/LoginView.vue') }, { name: 'rememberPassword', @@ -60,7 +60,7 @@ const routes = [ component: () => import('pages/Account/AccountConf.vue') }, { - name: 'Addresses', + name: 'AddressesList', path: '/account/address-list', component: () => import('pages/Account/AddressList.vue') },
- {{ $t('loginPhone') }} · {{ $t('loginMail') }} + + {{ $t('loginPhone') }} + + · + {{ $t('loginMail') }}