diff --git a/src/boot/keyShortcut.js b/src/boot/keyShortcut.js index 5afb5b74a..6da06c8bf 100644 --- a/src/boot/keyShortcut.js +++ b/src/boot/keyShortcut.js @@ -1,6 +1,6 @@ export default { - mounted: function (el, binding) { - const shortcut = binding.value ?? '+'; + mounted(el, binding) { + const shortcut = binding.value || '+'; const { key, ctrl, alt, callback } = typeof shortcut === 'string' @@ -8,25 +8,24 @@ export default { key: shortcut, ctrl: true, alt: true, - callback: () => - document - .querySelector(`button[shortcut="${shortcut}"]`) - ?.click(), + callback: () => el?.click(), } : binding.value; + if (!el.hasAttribute('shortcut')) { + el.setAttribute('shortcut', key); + } + const handleKeydown = (event) => { if (event.key === key && (!ctrl || event.ctrlKey) && (!alt || event.altKey)) { callback(); } }; - // Attach the event listener to the window window.addEventListener('keydown', handleKeydown); - el._handleKeydown = handleKeydown; }, - unmounted: function (el) { + unmounted(el) { if (el._handleKeydown) { window.removeEventListener('keydown', el._handleKeydown); } diff --git a/src/components/ItemsFilterPanel.vue b/src/components/ItemsFilterPanel.vue index dc2a34435..48f607a30 100644 --- a/src/components/ItemsFilterPanel.vue +++ b/src/components/ItemsFilterPanel.vue @@ -282,7 +282,7 @@ const setCategoryList = (data) => { <QItem class="q-mt-lg"> <QBtn icon="add_circle" - shortcut="+" + v-shortcut="'+'" flat class="fill-icon-on-hover q-px-xs" color="primary" diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue index 185d41ebb..04b7c0a46 100644 --- a/src/components/VnTable/VnTable.vue +++ b/src/components/VnTable/VnTable.vue @@ -629,7 +629,7 @@ function handleSelection({ evt, added, rows: selectedRows }, rows) { size="md" round flat - shortcut="+" + v-shortcut="'+'" :disabled="!disabledAttr" /> <QTooltip> @@ -647,7 +647,7 @@ function handleSelection({ evt, added, rows: selectedRows }, rows) { color="primary" fab icon="add" - shortcut="+" + v-shortcut="'+'" data-cy="vnTableCreateBtn" /> <QTooltip self="top right"> diff --git a/src/components/common/VnDmsList.vue b/src/components/common/VnDmsList.vue index 59a4f9f90..424781a26 100644 --- a/src/components/common/VnDmsList.vue +++ b/src/components/common/VnDmsList.vue @@ -413,7 +413,7 @@ defineExpose({ fab color="primary" icon="add" - shortcut="+" + v-shortcut @click="showFormDialog()" class="fill-icon" > diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index 2a84e5aa1..3ad1c79bc 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -2,7 +2,7 @@ import Navbar from 'src/components/NavBar.vue'; </script> <template> - <QLayout view="hHh LpR fFf" v-shortcut> + <QLayout view="hHh LpR fFf"> <Navbar /> <RouterView></RouterView> <QFooter v-if="$q.platform.is.mobile"></QFooter> diff --git a/src/pages/Account/Card/AccountMailAlias.vue b/src/pages/Account/Card/AccountMailAlias.vue index efd2b481b..54798d6ab 100644 --- a/src/pages/Account/Card/AccountMailAlias.vue +++ b/src/pages/Account/Card/AccountMailAlias.vue @@ -86,7 +86,7 @@ watch( () => route.params.id, () => { getAccountData(); - } + }, ); onMounted(async () => await getAccountData(false)); @@ -130,7 +130,8 @@ onMounted(async () => await getAccountData(false)); openConfirmationModal( t('User will be removed from alias'), t('¿Seguro que quieres continuar?'), - () => deleteMailAlias(row, rows, rowIndex) + () => + deleteMailAlias(row, rows, rowIndex), ) " > @@ -157,7 +158,7 @@ onMounted(async () => await getAccountData(false)); icon="add" color="primary" @click="openCreateMailAliasForm()" - shortcut="+" + v-shortcut="'+'" > <QTooltip>{{ t('warehouses.add') }}</QTooltip> </QBtn> diff --git a/src/pages/Account/Role/Card/SubRoles.vue b/src/pages/Account/Role/Card/SubRoles.vue index 6cac94667..d1a146375 100644 --- a/src/pages/Account/Role/Card/SubRoles.vue +++ b/src/pages/Account/Role/Card/SubRoles.vue @@ -63,7 +63,7 @@ watch( store.url = urlPath.value; store.filter = filter.value; fetchSubRoles(); - } + }, ); const fetchSubRoles = () => paginateRef.value.fetch(); @@ -109,7 +109,7 @@ const redirectToRoleSummary = (id) => openConfirmationModal( t('El rol va a ser eliminado'), t('¿Seguro que quieres continuar?'), - () => deleteSubRole(row, rows, rowIndex) + () => deleteSubRole(row, rows, rowIndex), ) " > @@ -131,7 +131,7 @@ const redirectToRoleSummary = (id) => <QBtn fab icon="add" - shortcut="+" + v-shortcut="'+'" color="primary" @click="openCreateSubRoleForm()" > diff --git a/src/pages/Claim/Card/ClaimLines.vue b/src/pages/Claim/Card/ClaimLines.vue index 7c545b15b..27d614049 100644 --- a/src/pages/Claim/Card/ClaimLines.vue +++ b/src/pages/Claim/Card/ClaimLines.vue @@ -57,7 +57,6 @@ function onFetch(rows, newRows) { const price = row.quantity * sale.price; const discount = (sale.discount * price) / 100; amountClaimed.value = amountClaimed.value + (price - discount); - } } @@ -208,7 +207,6 @@ async function saveWhenHasChanges() { selection="multiple" v-model:selected="selected" :grid="$q.screen.lt.md" - > <template #body-cell-claimed="{ row }"> <QTd auto-width align="right" class="text-primary shrink"> @@ -319,7 +317,13 @@ async function saveWhenHasChanges() { </div> <QPageSticky position="bottom-right" :offset="[25, 25]"> - <QBtn fab color="primary" shortcut="+" icon="add" @click="showImportDialog()" /> + <QBtn + fab + color="primary" + v-shortcut="'+'" + icon="add" + @click="showImportDialog()" + /> </QPageSticky> </template> @@ -330,9 +334,10 @@ async function saveWhenHasChanges() { width: 100%; } .grid-style-transition { - transition: transform 0.28s, background-color 0.28s; + transition: + transform 0.28s, + background-color 0.28s; } - </style> <i18n> diff --git a/src/pages/Claim/Card/ClaimPhoto.vue b/src/pages/Claim/Card/ClaimPhoto.vue index ec619cc7d..fb2f818c1 100644 --- a/src/pages/Claim/Card/ClaimPhoto.vue +++ b/src/pages/Claim/Card/ClaimPhoto.vue @@ -61,7 +61,7 @@ watch( () => { claimDmsFilter.value.where.id = router.currentRoute.value.params.id; claimDmsRef.value.fetch(); - } + }, ); function openDialog(dmsId) { @@ -249,7 +249,7 @@ function onDrag() { <QBtn fab @click="inputFile.nativeEl.click()" - shortcut="+" + v-shortcut="'+'" icon="add" color="primary" > diff --git a/src/pages/Customer/Card/CustomerAddress.vue b/src/pages/Customer/Card/CustomerAddress.vue index 657cc7ae7..b94c41454 100644 --- a/src/pages/Customer/Card/CustomerAddress.vue +++ b/src/pages/Customer/Card/CustomerAddress.vue @@ -61,7 +61,7 @@ watch( (newValue) => { if (!newValue) return; getClientData(newValue); - } + }, ); const getClientData = async (id) => { @@ -137,7 +137,7 @@ const toCustomerAddressEdit = (addressId) => { <QIcon :style="{ 'font-variation-settings': `'FILL' ${isDefaultAddress( - item + item, )}`, }" color="primary" @@ -150,7 +150,7 @@ const toCustomerAddressEdit = (addressId) => { t( isDefaultAddress(item) ? 'Default address' - : 'Set as default' + : 'Set as default', ) }} </QTooltip> @@ -216,7 +216,7 @@ const toCustomerAddressEdit = (addressId) => { color="primary" fab icon="add" - shortcut="+" + v-shortcut="'+'" /> <QTooltip> {{ t('New consignee') }} diff --git a/src/pages/Customer/Card/CustomerBalance.vue b/src/pages/Customer/Card/CustomerBalance.vue index 04ef5f882..11db92eab 100644 --- a/src/pages/Customer/Card/CustomerBalance.vue +++ b/src/pages/Customer/Card/CustomerBalance.vue @@ -158,7 +158,7 @@ const columns = computed(() => [ openConfirmationModal( t('Send compensation'), t('Do you want to report compensation to the client by mail?'), - () => sendEmail(`Receipts/${id}/balance-compensation-email`) + () => sendEmail(`Receipts/${id}/balance-compensation-email`), ), }, ], @@ -291,7 +291,7 @@ const showBalancePdf = ({ id }) => { color="primary" fab icon="add" - shortcut="+" + v-shortcut="'+'" /> <QTooltip> {{ t('New payment') }} diff --git a/src/pages/Customer/Card/CustomerContacts.vue b/src/pages/Customer/Card/CustomerContacts.vue index c420f650e..d03f71244 100644 --- a/src/pages/Customer/Card/CustomerContacts.vue +++ b/src/pages/Customer/Card/CustomerContacts.vue @@ -62,7 +62,7 @@ const customerContactsRef = ref(null); color="primary" flat icon="add" - shortcut="+" + v-shortcut="'+'" > <QTooltip> {{ t('Add contact') }} diff --git a/src/pages/Customer/Card/CustomerCreditContracts.vue b/src/pages/Customer/Card/CustomerCreditContracts.vue index 0ff074793..09f7d2ee3 100644 --- a/src/pages/Customer/Card/CustomerCreditContracts.vue +++ b/src/pages/Customer/Card/CustomerCreditContracts.vue @@ -195,7 +195,7 @@ const updateData = () => { color="primary" fab icon="add" - shortcut="+" + v-shortcut="'+'" /> <QTooltip> {{ t('New contract') }} diff --git a/src/pages/Customer/Card/CustomerFileManagement.vue b/src/pages/Customer/Card/CustomerFileManagement.vue index 134d8dbd6..b565db6e7 100644 --- a/src/pages/Customer/Card/CustomerFileManagement.vue +++ b/src/pages/Customer/Card/CustomerFileManagement.vue @@ -236,7 +236,7 @@ const toCustomerFileManagementCreate = () => { @click.stop="toCustomerFileManagementCreate()" color="primary" fab - shortcut="+" + v-shortcut="'+'" icon="add" /> <QTooltip> diff --git a/src/pages/Customer/Card/CustomerSamples.vue b/src/pages/Customer/Card/CustomerSamples.vue index f12691112..19a7f8759 100644 --- a/src/pages/Customer/Card/CustomerSamples.vue +++ b/src/pages/Customer/Card/CustomerSamples.vue @@ -104,7 +104,7 @@ const tableRef = ref(); color="primary" fab icon="add" - shortcut="+" + v-shortcut="'+'" /> <QTooltip> {{ t('Send sample') }} diff --git a/src/pages/Customer/components/CustomerAddressEdit.vue b/src/pages/Customer/components/CustomerAddressEdit.vue index 10d5107e2..5b36650f7 100644 --- a/src/pages/Customer/components/CustomerAddressEdit.vue +++ b/src/pages/Customer/components/CustomerAddressEdit.vue @@ -49,7 +49,7 @@ const getData = async (observations) => { notes.value = originalNotes .map((observation) => { const type = observationTypes.value.find( - (type) => type.id === observation.observationTypeFk + (type) => type.id === observation.observationTypeFk, ); return type ? { @@ -112,8 +112,8 @@ function getPayload() { (oNote) => oNote.id === note.id && (note.description !== oNote.description || - note.observationTypeFk !== oNote.observationTypeFk) - ) + note.observationTypeFk !== oNote.observationTypeFk), + ), ) .map((note) => ({ data: note, @@ -130,9 +130,7 @@ async function handleDialog(data) { .dialog({ component: VnConfirm, componentProps: { - title: t( - 'confirmTicket' - ), + title: t('confirmTicket'), message: t('confirmDeletionMessage'), }, }) @@ -341,7 +339,7 @@ function handleLocation(data, location) { class="cursor-pointer add-icon q-mt-md" flat icon="add" - shortcut="+" + v-shortcut="'+'" > <QTooltip> {{ t('Add note') }} diff --git a/src/pages/Entry/Card/EntryNotes.vue b/src/pages/Entry/Card/EntryNotes.vue index 55cac0437..459c3b069 100644 --- a/src/pages/Entry/Card/EntryNotes.vue +++ b/src/pages/Entry/Card/EntryNotes.vue @@ -17,7 +17,7 @@ const selected = ref([]); const sortEntryObservationOptions = (data) => { entryObservationsOptions.value = [...data].sort((a, b) => - a.description.localeCompare(b.description) + a.description.localeCompare(b.description), ); }; @@ -142,7 +142,7 @@ const columns = computed(() => [ fab color="primary" icon="add" - shortcut="+" + v-shortcut="'+'" @click="entryObservationsRef.insert()" /> </QPageSticky> diff --git a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue index c01ec4ab4..a3beabdb6 100644 --- a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue +++ b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue @@ -215,7 +215,7 @@ function deleteFile(dmsFk) { v-else icon="add_circle" round - shortcut="+" + v-shortcut="'+'" padding="xs" @click=" () => { diff --git a/src/pages/InvoiceIn/Card/InvoiceInDueDay.vue b/src/pages/InvoiceIn/Card/InvoiceInDueDay.vue index d2c6d0a2d..cb3271dc1 100644 --- a/src/pages/InvoiceIn/Card/InvoiceInDueDay.vue +++ b/src/pages/InvoiceIn/Card/InvoiceInDueDay.vue @@ -232,7 +232,7 @@ async function insert() { <QBtn color="primary" icon="add" - shortcut="+" + v-shortcut="'+'" size="lg" round @click="!areRows ? insert() : invoiceInFormRef.insert()" diff --git a/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue b/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue index e529ea6cd..6f8642313 100644 --- a/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue +++ b/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue @@ -218,7 +218,7 @@ const columns = computed(() => [ <QBtn color="primary" icon="add" - shortcut="+" + v-shortcut="'+'" size="lg" round @click="invoiceInFormRef.insert()" diff --git a/src/pages/InvoiceIn/Card/InvoiceInVat.vue b/src/pages/InvoiceIn/Card/InvoiceInVat.vue index f99e060b8..edb43375f 100644 --- a/src/pages/InvoiceIn/Card/InvoiceInVat.vue +++ b/src/pages/InvoiceIn/Card/InvoiceInVat.vue @@ -117,7 +117,7 @@ const isNotEuro = (code) => code != 'EUR'; function taxRate(invoiceInTax) { const sageTaxTypeId = invoiceInTax.taxTypeSageFk; const taxRateSelection = sageTaxTypes.value.find( - (transaction) => transaction.id == sageTaxTypeId + (transaction) => transaction.id == sageTaxTypeId, ); const taxTypeSage = taxRateSelection?.rate ?? 0; const taxableBase = invoiceInTax?.taxableBase ?? 0; @@ -131,14 +131,14 @@ function autocompleteExpense(evt, row, col) { const param = isNaN(val) ? row[col.model] : val; const lookup = expenses.value.find( - ({ id }) => id == useAccountShortToStandard(param) + ({ id }) => id == useAccountShortToStandard(param), ); expenseRef.value.vnSelectDialogRef.vnSelectRef.toggleOption(lookup); } -const taxableBaseTotal = computed(() => { - return getTotal(invoiceInFormRef.value.formData, 'taxableBase', ); +const taxableBaseTotal = computed(() => { + return getTotal(invoiceInFormRef.value.formData, 'taxableBase'); }); const taxRateTotal = computed(() => { @@ -147,13 +147,9 @@ const taxRateTotal = computed(() => { }); }); - const combinedTotal = computed(() => { return +taxableBaseTotal.value + +taxRateTotal.value; }); - - - </script> <template> <FetchData @@ -283,7 +279,7 @@ const combinedTotal = computed(() => { row.taxableBase = await getExchange( val, row.currencyFk, - invoiceIn.issued + invoiceIn.issued, ); } " @@ -426,7 +422,7 @@ const combinedTotal = computed(() => { color="primary" icon="add" size="lg" - shortcut="+" + v-shortcut="'+'" round @click="invoiceInFormRef.insert()" > diff --git a/src/pages/Item/Card/ItemBarcode.vue b/src/pages/Item/Card/ItemBarcode.vue index 6db5943c7..590b524cd 100644 --- a/src/pages/Item/Card/ItemBarcode.vue +++ b/src/pages/Item/Card/ItemBarcode.vue @@ -92,7 +92,7 @@ const submit = async (rows) => { class="cursor-pointer fill-icon-on-hover" color="primary" icon="add_circle" - shortcut="+" + v-shortcut="'+'" flat > <QTooltip> diff --git a/src/pages/Item/Card/ItemTags.vue b/src/pages/Item/Card/ItemTags.vue index 5876cf8dc..ed23ab5a6 100644 --- a/src/pages/Item/Card/ItemTags.vue +++ b/src/pages/Item/Card/ItemTags.vue @@ -175,7 +175,7 @@ const insertTag = (rows) => { @click="insertTag(rows)" color="primary" icon="add" - shortcut="+" + v-shortcut="'+'" fab > <QTooltip> diff --git a/src/pages/Order/Card/CatalogFilterValueDialog.vue b/src/pages/Order/Card/CatalogFilterValueDialog.vue index b91e7d229..d1bd48c9e 100644 --- a/src/pages/Order/Card/CatalogFilterValueDialog.vue +++ b/src/pages/Order/Card/CatalogFilterValueDialog.vue @@ -110,7 +110,7 @@ const getSelectedTagValues = async (tag) => { </div> <QBtn icon="add_circle" - shortcut="+" + v-shortcut="'+'" flat class="filter-icon q-mb-md" size="md" diff --git a/src/pages/Order/Card/OrderCatalogFilter.vue b/src/pages/Order/Card/OrderCatalogFilter.vue index 262f503fd..76e608983 100644 --- a/src/pages/Order/Card/OrderCatalogFilter.vue +++ b/src/pages/Order/Card/OrderCatalogFilter.vue @@ -184,7 +184,7 @@ function addOrder(value, field, params) { {{ t( categoryList.find((c) => c.id == customTag.value)?.name || - '' + '', ) }} </strong> @@ -296,7 +296,7 @@ function addOrder(value, field, params) { <template #append> <QBtn icon="add_circle" - shortcut="+" + v-shortcut="'+'" flat color="primary" size="md" diff --git a/src/pages/Route/Agency/Card/AgencyWorkcenter.vue b/src/pages/Route/Agency/Card/AgencyWorkcenter.vue index 7103ea9ce..576933883 100644 --- a/src/pages/Route/Agency/Card/AgencyWorkcenter.vue +++ b/src/pages/Route/Agency/Card/AgencyWorkcenter.vue @@ -88,7 +88,7 @@ async function deleteWorCenter(id) { </VnPaginate> </div> <QPageSticky :offset="[18, 18]"> - <QBtn @click.stop="dialog.show()" color="primary" fab shortcut="+" icon="add"> + <QBtn @click.stop="dialog.show()" color="primary" fab v-shortcut="'+'" icon="add"> <QDialog ref="dialog"> <FormModelPopup :title="t('Add work center')" diff --git a/src/pages/Route/Roadmap/RoadmapStops.vue b/src/pages/Route/Roadmap/RoadmapStops.vue index d8215ea49..e4085d572 100644 --- a/src/pages/Route/Roadmap/RoadmapStops.vue +++ b/src/pages/Route/Roadmap/RoadmapStops.vue @@ -68,7 +68,7 @@ const updateDefaultStop = (data) => { <QBtn flat icon="add" - shortcut="+" + v-shortcut="'+'" class="cursor-pointer" color="primary" @click="roadmapStopsCrudRef.insert()" diff --git a/src/pages/Route/RouteTickets.vue b/src/pages/Route/RouteTickets.vue index 56e3143b4..4278e0c71 100644 --- a/src/pages/Route/RouteTickets.vue +++ b/src/pages/Route/RouteTickets.vue @@ -120,8 +120,8 @@ const deletePriorities = async () => { try { await Promise.all( selectedRows.value.map((ticket) => - axios.patch(`Tickets/${ticket?.id}/`, { priority: null }) - ) + axios.patch(`Tickets/${ticket?.id}/`, { priority: null }), + ), ); } finally { refreshKey.value++; @@ -132,8 +132,8 @@ const setOrderedPriority = async () => { try { await Promise.all( ticketList.value.map((ticket, index) => - axios.patch(`Tickets/${ticket?.id}/`, { priority: index + 1 }) - ) + axios.patch(`Tickets/${ticket?.id}/`, { priority: index + 1 }), + ), ); } finally { refreshKey.value++; @@ -162,7 +162,7 @@ const setHighestPriority = async (ticket, ticketList) => { const goToBuscaman = async (ticket = null) => { await openBuscaman( routeEntity.value?.vehicleFk, - ticket ? [ticket] : selectedRows.value + ticket ? [ticket] : selectedRows.value, ); }; @@ -393,7 +393,13 @@ const openSmsDialog = async () => { </VnPaginate> </div> <QPageSticky :offset="[20, 20]"> - <QBtn fab icon="add" shortcut="+" color="primary" @click="openTicketsDialog"> + <QBtn + fab + icon="add" + v-shortcut="'+'" + color="primary" + @click="openTicketsDialog" + > <QTooltip> {{ t('Add ticket') }} </QTooltip> diff --git a/src/pages/Shelving/ShelvingList.vue b/src/pages/Shelving/ShelvingList.vue index cf158e76b..557173496 100644 --- a/src/pages/Shelving/ShelvingList.vue +++ b/src/pages/Shelving/ShelvingList.vue @@ -84,7 +84,7 @@ function exprBuilder(param, value) { </div> <QPageSticky :offset="[20, 20]"> <RouterLink :to="{ name: 'ShelvingCreate' }"> - <QBtn fab icon="add" color="primary" shortcut="+" /> + <QBtn fab icon="add" color="primary" v-shortcut="'+'" /> <QTooltip> {{ t('shelving.list.newShelving') }} </QTooltip> diff --git a/src/pages/Supplier/Card/SupplierAccounts.vue b/src/pages/Supplier/Card/SupplierAccounts.vue index 4a6901d1d..365eb67a1 100644 --- a/src/pages/Supplier/Card/SupplierAccounts.vue +++ b/src/pages/Supplier/Card/SupplierAccounts.vue @@ -71,7 +71,7 @@ function bankEntityFilter(val, update) { filteredBankEntitiesOptions.value = bankEntitiesOptions.value.filter( (bank) => bank.bic.toLowerCase().startsWith(needle) || - bank.name.toLowerCase().includes(needle) + bank.name.toLowerCase().includes(needle), ); }); } @@ -170,7 +170,7 @@ function bankEntityFilter(val, update) { <QIcon name="info" class="cursor-pointer"> <QTooltip>{{ t( - 'Name of the bank account holder if different from the provider' + 'Name of the bank account holder if different from the provider', ) }}</QTooltip> </QIcon> @@ -194,7 +194,7 @@ function bankEntityFilter(val, update) { <QBtn flat icon="add" - shortcut="+" + v-shortcut class="cursor-pointer" color="primary" @click="supplierAccountRef.insert()" diff --git a/src/pages/Supplier/Card/SupplierAddresses.vue b/src/pages/Supplier/Card/SupplierAddresses.vue index f1e95b8de..1b074b82f 100644 --- a/src/pages/Supplier/Card/SupplierAddresses.vue +++ b/src/pages/Supplier/Card/SupplierAddresses.vue @@ -89,7 +89,7 @@ const redirectToUpdateView = (addressData) => { icon="add" color="primary" @click="redirectToCreateView()" - shortcut="+" + v-shortcut="'+'" /> <QTooltip> {{ t('New address') }} diff --git a/src/pages/Supplier/Card/SupplierAgencyTerm.vue b/src/pages/Supplier/Card/SupplierAgencyTerm.vue index 99b672cc4..ab21f1f76 100644 --- a/src/pages/Supplier/Card/SupplierAgencyTerm.vue +++ b/src/pages/Supplier/Card/SupplierAgencyTerm.vue @@ -114,7 +114,7 @@ const redirectToCreateView = () => { icon="add" color="primary" @click="redirectToCreateView()" - shortcut="+" + v-shortcut="'+'" /> <QTooltip> {{ t('supplier.agencyTerms.addRow') }} diff --git a/src/pages/Supplier/Card/SupplierContacts.vue b/src/pages/Supplier/Card/SupplierContacts.vue index 6781c8d34..f96d92ab1 100644 --- a/src/pages/Supplier/Card/SupplierContacts.vue +++ b/src/pages/Supplier/Card/SupplierContacts.vue @@ -78,7 +78,7 @@ const insertRow = () => { <QBtn flat icon="add" - shortcut="+" + v-shortcut="'+'" class="cursor-pointer" color="primary" @click="insertRow()" diff --git a/src/pages/Ticket/Card/TicketNotes.vue b/src/pages/Ticket/Card/TicketNotes.vue index f558b71cc..feb88bf84 100644 --- a/src/pages/Ticket/Card/TicketNotes.vue +++ b/src/pages/Ticket/Card/TicketNotes.vue @@ -32,7 +32,7 @@ watch( crudModelFilter.where.ticketFk = route.params.id; store.filter = crudModelFilter; await ticketNotesCrudRef.value.reload(); - } + }, ); function handleDelete(row) { ticketNotesCrudRef.value.remove([row]); @@ -105,7 +105,7 @@ async function handleSave() { <VnRow v-if="observationTypes.length > rows.length"> <QBtn icon="add_circle" - shortcut="+" + v-shortcut="'+'" flat class="fill-icon-on-hover q-ml-md" color="primary" diff --git a/src/pages/Ticket/Card/TicketPackage.vue b/src/pages/Ticket/Card/TicketPackage.vue index 04d6020f3..8bfb73682 100644 --- a/src/pages/Ticket/Card/TicketPackage.vue +++ b/src/pages/Ticket/Card/TicketPackage.vue @@ -41,7 +41,7 @@ watch( crudModelFilter.where.ticketFk = route.params.id; store.filter = crudModelFilter; await ticketPackagingsCrudRef.value.reload(); - } + }, ); </script> @@ -118,7 +118,7 @@ watch( <VnRow> <QBtn icon="add_circle" - shortcut="+" + v-shortcut="'+'" flat class="fill-icon-on-hover q-ml-md" color="primary" diff --git a/src/pages/Ticket/Card/TicketSale.vue b/src/pages/Ticket/Card/TicketSale.vue index adbd4ee00..25591dd99 100644 --- a/src/pages/Ticket/Card/TicketSale.vue +++ b/src/pages/Ticket/Card/TicketSale.vue @@ -811,7 +811,7 @@ watch( color="primary" fab icon="add" - shortcut="+" + v-shortcut="'+'" data-cy="ticketSaleAddToBasketBtn" /> <QTooltip class="text-no-wrap"> diff --git a/src/pages/Ticket/Card/TicketService.vue b/src/pages/Ticket/Card/TicketService.vue index d045eadee..6ce69a6aa 100644 --- a/src/pages/Ticket/Card/TicketService.vue +++ b/src/pages/Ticket/Card/TicketService.vue @@ -40,7 +40,7 @@ watch( async () => { store.filter = crudModelFilter.value; await ticketServiceCrudRef.value.reload(); - } + }, ); onMounted(async () => await getDefaultTaxClass()); @@ -59,7 +59,7 @@ const createRefund = async () => { t('service.createRefundSuccess', { ticketId: refundTicket.id, }), - 'positive' + 'positive', ); router.push({ name: 'TicketSale', params: { id: refundTicket.id } }); }; @@ -225,7 +225,7 @@ async function handleSave() { color="primary" icon="add" @click="ticketServiceCrudRef.insert()" - shortcut="+" + v-shortcut="'+'" /> </QPageSticky> </template> diff --git a/src/pages/Ticket/Card/TicketTracking.vue b/src/pages/Ticket/Card/TicketTracking.vue index f5ed03b0d..8bf7fe6b8 100644 --- a/src/pages/Ticket/Card/TicketTracking.vue +++ b/src/pages/Ticket/Card/TicketTracking.vue @@ -19,7 +19,7 @@ watch( async (val) => { paginateFilter.where.ticketFk = val; paginateRef.value.fetch(); - } + }, ); const paginateFilter = reactive({ @@ -119,7 +119,7 @@ const openCreateModal = () => createTrackingDialogRef.value.show(); color="primary" fab icon="add" - shortcut="+" + v-shortcut="'+'" /> <QTooltip class="text-no-wrap"> {{ t('tracking.addState') }} diff --git a/src/pages/Travel/Card/TravelThermographs.vue b/src/pages/Travel/Card/TravelThermographs.vue index b520166d3..4463378fd 100644 --- a/src/pages/Travel/Card/TravelThermographs.vue +++ b/src/pages/Travel/Card/TravelThermographs.vue @@ -217,7 +217,7 @@ const removeThermograph = async (id) => { icon="add" color="primary" @click="redirectToThermographForm('create')" - shortcut="+" + v-shortcut="'+'" /> <QTooltip class="text-no-wrap"> {{ t('Add thermograph') }} diff --git a/src/pages/Travel/ExtraCommunityFilter.vue b/src/pages/Travel/ExtraCommunityFilter.vue index b903aeabf..b22574632 100644 --- a/src/pages/Travel/ExtraCommunityFilter.vue +++ b/src/pages/Travel/ExtraCommunityFilter.vue @@ -113,7 +113,7 @@ warehouses(); <template #append> <QBtn icon="add" - shortcut="+" + v-shortcut="'+'" flat dense size="12px" diff --git a/src/pages/Wagon/Type/WagonTypeList.vue b/src/pages/Wagon/Type/WagonTypeList.vue index c0943c58e..4c0b078a7 100644 --- a/src/pages/Wagon/Type/WagonTypeList.vue +++ b/src/pages/Wagon/Type/WagonTypeList.vue @@ -96,7 +96,13 @@ async function remove(row) { > </VnTable> <QPageSticky :offset="[18, 18]"> - <QBtn @click.stop="dialog.show()" color="primary" fab icon="add" shortcut="+"> + <QBtn + @click.stop="dialog.show()" + color="primary" + fab + icon="add" + v-shortcut="'+'" + > <QDialog ref="dialog"> <FormModelPopup :title="t('Create new Wagon type')" diff --git a/src/pages/Worker/Card/WorkerPda.vue b/src/pages/Worker/Card/WorkerPda.vue index c1beef40d..2c2f494a4 100644 --- a/src/pages/Worker/Card/WorkerPda.vue +++ b/src/pages/Worker/Card/WorkerPda.vue @@ -101,7 +101,7 @@ function reloadData() { openConfirmationModal( t(`Remove PDA`), t('Do you want to remove this PDA?'), - () => deallocatePDA(row.deviceProductionFk) + () => deallocatePDA(row.deviceProductionFk), ) " > @@ -114,7 +114,13 @@ function reloadData() { </template> </VnPaginate> <QPageSticky :offset="[18, 18]"> - <QBtn @click.stop="dialog.show()" color="primary" fab icon="add" shortcut="+"> + <QBtn + @click.stop="dialog.show()" + color="primary" + fab + icon="add" + v-shortcut="'+'" + > <QDialog ref="dialog"> <FormModelPopup :title="t('Add new device')" diff --git a/src/pages/Worker/Card/WorkerPit.vue b/src/pages/Worker/Card/WorkerPit.vue index 79cf1a04f..40e814452 100644 --- a/src/pages/Worker/Card/WorkerPit.vue +++ b/src/pages/Worker/Card/WorkerPit.vue @@ -221,7 +221,7 @@ const deleteRelative = async (id) => { color="primary" flat icon="add" - shortcut="+" + v-shortcut="'+'" style="flex: 0" data-cy="addRelative" /> diff --git a/src/pages/Worker/Card/WorkerTimeControl.vue b/src/pages/Worker/Card/WorkerTimeControl.vue index c580e5202..ad6aa31cb 100644 --- a/src/pages/Worker/Card/WorkerTimeControl.vue +++ b/src/pages/Worker/Card/WorkerTimeControl.vue @@ -69,12 +69,12 @@ const acl = useAcl(); const selectedDateYear = computed(() => moment(selectedDate.value).isoWeekYear()); const worker = computed(() => arrayData.store?.data); const canSend = computed(() => - acl.hasAny([{ model: 'WorkerTimeControl', props: 'sendMail', accessType: 'WRITE' }]) + acl.hasAny([{ model: 'WorkerTimeControl', props: 'sendMail', accessType: 'WRITE' }]), ); const canUpdate = computed(() => acl.hasAny([ { model: 'WorkerTimeControl', props: 'updateMailState', accessType: 'WRITE' }, - ]) + ]), ); const isHimself = computed(() => user.value.id === Number(route.params.id)); @@ -100,7 +100,7 @@ const getHeaderFormattedDate = (date) => { }; const formattedWeekTotalHours = computed(() => - secondsToHoursMinutes(weekTotalHours.value) + secondsToHoursMinutes(weekTotalHours.value), ); const onInputChange = async (date) => { @@ -320,7 +320,7 @@ const getFinishTime = () => { today.setHours(0, 0, 0, 0); let todayInWeek = weekDays.value.find( - (day) => day.dated.getTime() === today.getTime() + (day) => day.dated.getTime() === today.getTime(), ); if (todayInWeek && todayInWeek.hours && todayInWeek.hours.length) { @@ -472,7 +472,7 @@ onMounted(async () => { openConfirmationModal( t('Send time control email'), t('Are you sure you want to send it?'), - resendEmail + resendEmail, ) " > @@ -561,7 +561,7 @@ onMounted(async () => { @show-worker-time-form=" showWorkerTimeForm( { id: hour.id, entryCode: hour.direction }, - 'edit' + 'edit', ) " class="hour-chip" @@ -577,7 +577,7 @@ onMounted(async () => { </span> <QBtn icon="add_circle" - shortcut="+" + v-shortcut="'+'" flat color="primary" class="fill-icon cursor-pointer" diff --git a/src/pages/Worker/WorkerDepartmentTree.vue b/src/pages/Worker/WorkerDepartmentTree.vue index 9abf4e312..14009134b 100644 --- a/src/pages/Worker/WorkerDepartmentTree.vue +++ b/src/pages/Worker/WorkerDepartmentTree.vue @@ -173,7 +173,7 @@ function handleEvent(type, event, node) { color="primary" flat icon="add" - shortcut="+" + v-shortcut="'+'" class="cursor-pointer" @click.stop="showCreateNodeForm(node.id)" > diff --git a/src/pages/Zone/Card/ZoneEvents.vue b/src/pages/Zone/Card/ZoneEvents.vue index a5806bab9..1e6debd25 100644 --- a/src/pages/Zone/Card/ZoneEvents.vue +++ b/src/pages/Zone/Card/ZoneEvents.vue @@ -78,13 +78,13 @@ const onZoneEventFormClose = () => { { isNewMode: true, }, - true + true, ) " color="primary" fab icon="add" - shortcut="+" + v-shortcut="'+'" /> <QTooltip class="text-no-wrap"> {{ t('eventsInclusionForm.addEvent') }} diff --git a/src/pages/Zone/Card/ZoneWarehouses.vue b/src/pages/Zone/Card/ZoneWarehouses.vue index d3b1d7a1c..f14658dd0 100644 --- a/src/pages/Zone/Card/ZoneWarehouses.vue +++ b/src/pages/Zone/Card/ZoneWarehouses.vue @@ -49,7 +49,7 @@ watch( store.url = urlPath.value; store.filter.include = 'warehouse'; fetchWarehouses(); - } + }, ); const fetchWarehouses = () => paginateRef.value.fetch(); @@ -84,7 +84,8 @@ const openCreateWarehouseForm = () => createWarehouseDialogRef.value.show(); openConfirmationModal( t('zone.deleteTitle'), t('zone.deleteSubtitle'), - () => deleteWarehouse(row, rows, rowIndex) + () => + deleteWarehouse(row, rows, rowIndex), ) " > @@ -108,7 +109,7 @@ const openCreateWarehouseForm = () => createWarehouseDialogRef.value.show(); icon="add" color="primary" @click="openCreateWarehouseForm()" - shortcut="+" + v-shortcut="'+'" > <QTooltip>{{ t('warehouses.add') }}</QTooltip> </QBtn> diff --git a/src/pages/Zone/Delivery/ZoneDeliveryList.vue b/src/pages/Zone/Delivery/ZoneDeliveryList.vue index 975cbdb67..e3ec8cb2d 100644 --- a/src/pages/Zone/Delivery/ZoneDeliveryList.vue +++ b/src/pages/Zone/Delivery/ZoneDeliveryList.vue @@ -74,7 +74,7 @@ async function remove(row) { </VnPaginate> </div> <QPageSticky position="bottom-right" :offset="[18, 18]"> - <QBtn @click="create" fab icon="add" shortcut="+" color="primary" /> + <QBtn @click="create" fab icon="add" v-shortcut="'+'" color="primary" /> </QPageSticky> </QPage> </template> diff --git a/src/pages/Zone/Upcoming/ZoneUpcomingList.vue b/src/pages/Zone/Upcoming/ZoneUpcomingList.vue index 5a7f0bb4c..7b5c2ddbc 100644 --- a/src/pages/Zone/Upcoming/ZoneUpcomingList.vue +++ b/src/pages/Zone/Upcoming/ZoneUpcomingList.vue @@ -74,7 +74,7 @@ async function remove(row) { </VnPaginate> </div> <QPageSticky position="bottom-right" :offset="[18, 18]"> - <QBtn @click="create" fab icon="add" shortcut="+" color="primary" /> + <QBtn @click="create" fab icon="add" v-shortcut="'+'" color="primary" /> </QPageSticky> </QPage> </template> diff --git a/test/cypress/integration/vnComponent/VnShortcut.spec.js b/test/cypress/integration/vnComponent/VnShortcut.spec.js index b49b4e964..e08c44635 100644 --- a/test/cypress/integration/vnComponent/VnShortcut.spec.js +++ b/test/cypress/integration/vnComponent/VnShortcut.spec.js @@ -28,6 +28,17 @@ describe('VnShortcuts', () => { }); cy.url().should('include', module); + if (['monitor', 'claim'].includes(module)) { + return; + } + cy.waitForElement('.q-page').should('exist'); + cy.dataCy('vnTableCreateBtn').should('exist'); + cy.get('.q-page').trigger('keydown', { + ctrlKey: true, + altKey: true, + key: '+', + }); + cy.get('#formModel').should('exist'); }); } });