diff --git a/CHANGELOG.md b/CHANGELOG.md index dbf6bdcc3..51dd2010c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- (Tickets) => Se añade la opción de clonar ticket. #6951 + ### Changed ### Fixed diff --git a/quasar.config.js b/quasar.config.js index c8bae3105..5ce46667c 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -117,6 +117,7 @@ module.exports = configure(function (/* ctx */) { secure: false, }, }, + open: false, }, // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#framework diff --git a/src/boot/qformMixin.js b/src/boot/qformMixin.js new file mode 100644 index 000000000..8c89c9202 --- /dev/null +++ b/src/boot/qformMixin.js @@ -0,0 +1,21 @@ +import { getCurrentInstance } from 'vue'; + +const filterAvailableInput = element => element.classList.contains('q-field__native') && !element.disabled +const filterAvailableText = element => element.__vueParentComponent.type.name === 'QInput' && element.__vueParentComponent?.attrs?.class !== 'vn-input-date'; + + +export default { + mounted: function () { + const vm = getCurrentInstance(); + if (vm.type.name === 'QForm') + if (!['searchbarForm','filterPanelForm'].includes(this.$el?.id)) { + // AUTOFOCUS + const elementsArray = Array.from(this.$el.elements); + const firstInputElement = elementsArray.filter(filterAvailableInput).find(filterAvailableText); + + if (firstInputElement) { + firstInputElement.focus(); + } + } + }, +}; diff --git a/src/boot/quasar.js b/src/boot/quasar.js new file mode 100644 index 000000000..a8d9b7ad9 --- /dev/null +++ b/src/boot/quasar.js @@ -0,0 +1,6 @@ +import { boot } from 'quasar/wrappers'; +import qFormMixin from './qformMixin'; + +export default boot(({ app }) => { + app.mixin(qFormMixin); +}); diff --git a/src/components/CreateManualInvoiceForm.vue b/src/components/CreateManualInvoiceForm.vue new file mode 100644 index 000000000..f03afbf35 --- /dev/null +++ b/src/components/CreateManualInvoiceForm.vue @@ -0,0 +1,174 @@ + + + + + + + +es: + Create manual invoice: Crear factura manual + Ticket: Ticket + Client: Cliente + Max date: Fecha límite + Serial: Serie + Area: Area + Reference: Referencia + Or: O + Invoicing in progress...: Facturación en progreso... + diff --git a/src/components/FetchData.vue b/src/components/FetchData.vue index 5b3dcbea7..6d4e79f24 100644 --- a/src/components/FetchData.vue +++ b/src/components/FetchData.vue @@ -60,3 +60,6 @@ async function fetch(fetchFilter = {}) { } } + diff --git a/src/components/FormModel.vue b/src/components/FormModel.vue index 1ee37a36a..6fa17dfc9 100644 --- a/src/components/FormModel.vue +++ b/src/components/FormModel.vue @@ -78,10 +78,6 @@ const $props = defineProps({ const emit = defineEmits(['onFetch', 'onDataSaved']); -defineExpose({ - save, -}); - const componentIsRendered = ref(false); onMounted(async () => { @@ -227,6 +223,11 @@ watch(formUrl, async () => { reset(); fetch(); }); + +defineExpose({ + save, + isLoading, +});