diff --git a/.husky/addReferenceTag.js b/.husky/addReferenceTag.js index 857d15739..a88baf2e1 100644 --- a/.husky/addReferenceTag.js +++ b/.husky/addReferenceTag.js @@ -26,7 +26,7 @@ if (branchName) { const splitedMsg = msg.split(':'); if (splitedMsg.length > 1) { - const finalMsg = splitedMsg[0] + ': ' + referenceTag + splitedMsg.slice(1).join(':'); + const finalMsg = `${splitedMsg[0]}: ${referenceTag}${splitedMsg.slice(1).join(':')}`; writeFileSync(msgPath, finalMsg); } } diff --git a/cypress.config.js b/cypress.config.js index d9cdbe728..90d950450 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -1,6 +1,9 @@ import { defineConfig } from 'cypress'; -let urlHost, reporter, reporterOptions, timeouts; +let urlHost; +let reporter; +let reporterOptions; +let timeouts; if (process.env.CI) { urlHost = 'front'; @@ -44,6 +47,7 @@ export default defineConfig({ supportFile: 'test/cypress/support/index.js', videosFolder: 'test/cypress/videos', downloadsFolder: 'test/cypress/downloads', + tmpUploadFolder: 'test/cypress/storage/tmp/dms', video: false, specPattern: 'test/cypress/integration/**/*.spec.js', experimentalRunAllSpecs: true, @@ -60,5 +64,6 @@ export default defineConfig({ ...timeouts, includeShadowDom: true, waitForAnimations: true, + testIsolation: false, }, }); diff --git a/index.html b/index.html index c1bd4681b..63b2f2f51 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ - + <%= productName %> @@ -12,7 +12,12 @@ content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>" /> - + diff --git a/package.json b/package.json index 19b4c7a6f..f903a5ab6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-front", - "version": "25.16.0", + "version": "25.18.0", "description": "Salix frontend", "productName": "Salix", "author": "Verdnatura", diff --git a/postcss.config.js b/postcss.config.js index 9ec43d0cb..164f207d4 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,4 +1,3 @@ -/* eslint-disable */ // https://github.com/michael-ciniawsky/postcss-load-config import autoprefixer from 'autoprefixer'; diff --git a/quasar.config.js b/quasar.config.js index 2bc0be37f..227f5840c 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -13,7 +13,7 @@ import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'; import path from 'path'; const target = `http://${process.env.CI ? 'back' : 'localhost'}:3000`; -export default configure(function (/* ctx */) { +export default configure((/* ctx */) => { return { eslint: { // fix: true, diff --git a/quasar.extensions.json b/quasar.extensions.json index 050f605cc..867769090 100644 --- a/quasar.extensions.json +++ b/quasar.extensions.json @@ -1,8 +1,6 @@ { "@quasar/testing-unit-vitest": { - "options": [ - "scripts" - ] + "options": ["scripts"] }, "@quasar/qcalendar": {} } diff --git a/quasar.testing.json b/quasar.testing.json index a59d9af89..6957efe67 100644 --- a/quasar.testing.json +++ b/quasar.testing.json @@ -1,5 +1,5 @@ { - "unit-vitest": { - "runnerCommand": "vitest run" - } -} \ No newline at end of file + "unit-vitest": { + "runnerCommand": "vitest run" + } +} diff --git a/src/App.vue b/src/App.vue index 27cc34c38..bec50ae9d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,6 +2,7 @@ import { onMounted } from 'vue'; import { useQuasar, Dark } from 'quasar'; import { useI18n } from 'vue-i18n'; +import VnScroll from './components/common/VnScroll.vue'; const quasar = useQuasar(); const { availableLocales, locale, fallbackLocale } = useI18n(); @@ -38,6 +39,7 @@ quasar.iconMapFn = (iconName) => { diff --git a/src/components/EntityCalendarGrid.vue b/src/components/EntityCalendarGrid.vue new file mode 100644 index 000000000..19fb5a061 --- /dev/null +++ b/src/components/EntityCalendarGrid.vue @@ -0,0 +1,126 @@ + + + diff --git a/src/components/FilterTravelForm.vue b/src/components/FilterTravelForm.vue index 4aad327b2..f2a7a09eb 100644 --- a/src/components/FilterTravelForm.vue +++ b/src/components/FilterTravelForm.vue @@ -156,6 +156,9 @@ const selectTravel = ({ id }) => { option-label="name" option-value="id" v-model="travelFilterParams.warehouseOutFk" + :where="{ + isOrigin: true, + }" /> { option-label="name" option-value="id" v-model="travelFilterParams.warehouseInFk" + :where="{ + isDestiny: true, + }" /> {}, }, + preventSubmit: { + type: Boolean, + default: false, + }, }); -const emit = defineEmits(['onFetch', 'onDataSaved']); +const emit = defineEmits(['onFetch', 'onDataSaved', 'submit']); const modelValue = computed( () => $props.model ?? `formModel_${route?.meta?.title ?? route.name}`, ).value; @@ -301,7 +304,7 @@ function onBeforeSave(formData, originalData) { ); } async function onKeyup(evt) { - if (evt.key === 'Enter' && !('prevent-submit' in attrs)) { + if (evt.key === 'Enter' && !$props.preventSubmit) { const input = evt.target; if (input.type == 'textarea' && evt.shiftKey) { let { selectionStart, selectionEnd } = input; @@ -330,6 +333,7 @@ defineExpose({