From 223a1ea4490ea6ad2a00c60297fd3c74cd713338 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Mon, 24 Feb 2025 15:52:21 +0000 Subject: [PATCH] revert 1015acefb7e400be2d8b5958dba69b4d98276b34 revert Merge branch 'test' into master --- cypress.config.js | 4 +- package.json | 144 +- quasar.config.js | 1 + src/boot/defaults/constants.js | 2 - src/boot/keyShortcut.js | 17 +- src/boot/qformMixin.js | 23 +- src/boot/quasar.js | 1 - src/components/CreateBankEntityForm.vue | 2 +- src/components/CrudModel.vue | 16 +- src/components/FilterTravelForm.vue | 4 +- src/components/FormModel.vue | 46 +- src/components/FormModelPopup.vue | 52 +- src/components/ItemsFilterPanel.vue | 4 +- src/components/LeftMenu.vue | 69 +- src/components/LeftMenuItem.vue | 1 - src/components/RefundInvoiceForm.vue | 15 +- src/components/TicketProblems.vue | 84 +- src/components/TransferInvoiceForm.vue | 15 +- src/components/VnTable/VnColumn.vue | 51 +- src/components/VnTable/VnFilter.vue | 58 +- src/components/VnTable/VnOrder.vue | 101 +- src/components/VnTable/VnTable.vue | 573 ++------ src/components/VnTable/VnTableFilter.vue | 57 +- src/components/VnTable/VnVisibleColumn.vue | 19 +- src/components/__tests__/FormModel.spec.js | 12 +- src/components/__tests__/Leftmenu.spec.js | 372 +---- src/components/__tests__/UserPanel.spec.js | 100 +- src/components/common/VnCard.vue | 39 +- src/components/common/VnCardBeta.vue | 61 +- src/components/common/VnCheckbox.vue | 43 - src/components/common/VnColor.vue | 32 - src/components/common/VnComponent.vue | 6 +- src/components/common/VnDmsList.vue | 12 +- src/components/common/VnInput.vue | 22 +- src/components/common/VnInputDate.vue | 8 +- src/components/common/VnInputNumber.vue | 2 - src/components/common/VnPopupProxy.vue | 38 - src/components/common/VnSection.vue | 9 +- src/components/common/VnSelect.vue | 22 +- src/components/common/VnSelectCache.vue | 4 +- src/components/common/VnSelectDialog.vue | 2 + src/components/common/VnSelectSupplier.vue | 6 +- .../common/VnSelectTravelExtended.vue | 50 - .../common/__tests__/VnNotes.spec.js | 151 +-- src/components/ui/CardDescriptor.vue | 52 +- src/components/ui/CardSummary.vue | 14 +- src/components/ui/SkeletonDescriptor.vue | 65 +- src/components/ui/VnConfirm.vue | 3 +- src/components/ui/VnFilterPanel.vue | 16 +- src/components/ui/VnMoreOptions.vue | 2 +- src/components/ui/VnNotes.vue | 94 +- src/components/ui/VnStockValueDisplay.vue | 41 - src/components/ui/VnSubToolbar.vue | 11 +- .../ui/__tests__/CardSummary.spec.js | 14 +- .../__tests__/useArrayData.spec.js | 29 +- src/composables/checkEntryLock.js | 65 - src/composables/getColAlign.js | 22 - src/composables/useArrayData.js | 13 +- src/composables/useRole.js | 10 - src/css/app.scss | 28 +- src/css/quasar.variables.scss | 6 +- src/filters/toDate.js | 11 +- src/i18n/locale/en.yml | 117 -- src/i18n/locale/es.yml | 225 +--- src/layouts/MainLayout.vue | 2 +- src/layouts/OutLayout.vue | 5 +- src/pages/Account/AccountAliasList.vue | 10 +- src/pages/Account/AccountExprBuilder.js | 18 - src/pages/Account/AccountList.vue | 26 +- src/pages/Account/Alias/AliasExprBuilder.js | 8 - src/pages/Account/Alias/Card/AliasCard.vue | 10 +- .../Account/Alias/Card/AliasDescriptor.vue | 11 +- src/pages/Account/Alias/Card/AliasSummary.vue | 19 +- src/pages/Account/Card/AccountBasicData.vue | 38 +- src/pages/Account/Card/AccountCard.vue | 10 +- src/pages/Account/Card/AccountDescriptor.vue | 43 +- .../Account/Card/AccountDescriptorMenu.vue | 27 +- src/pages/Account/Card/AccountFilter.js | 3 - src/pages/Account/Card/AccountMailAlias.vue | 7 +- src/pages/Account/Card/AccountSummary.vue | 41 +- src/pages/Account/Role/AccountRoles.vue | 18 +- src/pages/Account/Role/Card/RoleBasicData.vue | 14 +- src/pages/Account/Role/Card/RoleCard.vue | 7 +- .../Account/Role/Card/RoleDescriptor.vue | 16 +- src/pages/Account/Role/Card/RoleSummary.vue | 23 +- src/pages/Account/Role/Card/SubRoles.vue | 6 +- src/pages/Account/Role/RoleExprBuilder.js | 16 - src/pages/Claim/Card/ClaimBasicData.vue | 1 + src/pages/Claim/Card/ClaimCard.vue | 9 +- src/pages/Claim/Card/ClaimDescriptor.vue | 17 +- src/pages/Claim/Card/ClaimLines.vue | 8 +- src/pages/Claim/Card/ClaimNotes.vue | 3 +- src/pages/Claim/Card/ClaimPhoto.vue | 4 +- src/pages/Claim/ClaimList.vue | 2 +- src/pages/Customer/Card/CustomerAddress.vue | 8 +- src/pages/Customer/Card/CustomerBalance.vue | 4 +- src/pages/Customer/Card/CustomerBasicData.vue | 4 +- .../Customer/Card/CustomerBillingData.vue | 2 +- src/pages/Customer/Card/CustomerCard.vue | 4 +- .../Customer/Card/CustomerConsumption.vue | 95 +- src/pages/Customer/Card/CustomerContacts.vue | 2 +- .../Customer/Card/CustomerCreditContracts.vue | 2 +- .../Customer/Card/CustomerDescriptor.vue | 42 +- .../Customer/Card/CustomerDescriptorMenu.vue | 17 - .../Customer/Card/CustomerFileManagement.vue | 2 +- .../Customer/Card/CustomerFiscalData.vue | 32 +- src/pages/Customer/Card/CustomerNotes.vue | 1 - src/pages/Customer/Card/CustomerSamples.vue | 2 +- src/pages/Customer/Card/CustomerWebAccess.vue | 2 +- src/pages/Customer/CustomerFilter.vue | 6 +- src/pages/Customer/CustomerList.vue | 4 +- .../Customer/Defaulter/CustomerDefaulter.vue | 2 +- .../components/CustomerAddressEdit.vue | 4 +- .../components/CustomerNewPayment.vue | 6 +- .../components/CustomerSamplesCreate.vue | 9 +- src/pages/Customer/locale/en.yml | 3 - src/pages/Customer/locale/es.yml | 3 - .../Department/Card/DepartmentBasicData.vue | 35 +- .../Department/Card/DepartmentCard.vue | 4 +- .../Department/Card/DepartmentDescriptor.vue | 23 +- .../Card/DepartmentDescriptorProxy.vue | 0 .../Department/Card/DepartmentSummary.vue | 2 +- .../Card/DepartmentSummaryDialog.vue | 0 src/pages/Entry/Card/EntryBasicData.vue | 63 +- src/pages/Entry/Card/EntryBuys.vue | 1196 ++++++----------- src/pages/Entry/Card/EntryCard.vue | 6 +- src/pages/Entry/Card/EntryDescriptor.vue | 158 +-- src/pages/Entry/Card/EntryFilter.js | 17 +- src/pages/Entry/Card/EntryNotes.vue | 4 +- src/pages/Entry/Card/EntrySummary.vue | 392 ++++-- src/pages/Entry/EntryFilter.vue | 277 ++-- src/pages/Entry/EntryList.vue | 372 ++--- src/pages/Entry/EntryStockBought.vue | 18 +- src/pages/Entry/EntryStockBoughtDetail.vue | 22 +- src/pages/Entry/locale/en.yml | 82 +- src/pages/Entry/locale/es.yml | 105 +- .../InvoiceIn/Card/InvoiceInBasicData.vue | 6 +- src/pages/InvoiceIn/Card/InvoiceInCard.vue | 41 +- .../InvoiceIn/Card/InvoiceInDescriptor.vue | 33 +- .../Card/InvoiceInDescriptorMenu.vue | 4 +- src/pages/InvoiceIn/Card/InvoiceInDueDay.vue | 26 +- src/pages/InvoiceIn/Card/InvoiceInFilter.js | 33 - .../InvoiceIn/Card/InvoiceInIntrastat.vue | 2 +- src/pages/InvoiceIn/Card/InvoiceInSummary.vue | 13 +- src/pages/InvoiceIn/Card/InvoiceInVat.vue | 78 +- src/pages/InvoiceIn/InvoiceInList.vue | 5 +- src/pages/InvoiceIn/InvoiceInToBook.vue | 56 +- src/pages/InvoiceIn/locale/en.yml | 5 +- src/pages/InvoiceIn/locale/es.yml | 9 +- src/pages/InvoiceOut/Card/InvoiceOutCard.vue | 4 +- .../InvoiceOut/Card/InvoiceOutDescriptor.vue | 28 +- src/pages/InvoiceOut/Card/InvoiceOutFilter.js | 16 - .../{components => Card}/CreateGenusForm.vue | 0 .../{components => Card}/CreateSpecieForm.vue | 0 src/pages/Item/Card/ItemBarcode.vue | 2 +- src/pages/Item/Card/ItemBasicData.vue | 42 +- src/pages/Item/Card/ItemBotanical.vue | 4 +- src/pages/Item/Card/ItemCard.vue | 2 +- src/pages/Item/Card/ItemDescriptor.vue | 26 +- src/pages/Item/Card/ItemDescriptorProxy.vue | 6 +- src/pages/Item/Card/ItemShelving.vue | 10 +- src/pages/Item/Card/ItemTags.vue | 2 +- src/pages/Item/ItemFixedPrice.vue | 16 +- .../Item/ItemType/Card/ItemTypeBasicData.vue | 7 +- src/pages/Item/ItemType/Card/ItemTypeCard.vue | 6 +- .../Item/ItemType/Card/ItemTypeDescriptor.vue | 40 +- .../Item/ItemType/Card/ItemTypeFilter.js | 8 - .../Item/ItemType/Card/ItemTypeSummary.vue | 15 +- src/pages/Item/components/ItemProposal.vue | 332 ----- .../Item/components/ItemProposalProxy.vue | 56 - src/pages/Item/locale/en.yml | 24 +- src/pages/Item/locale/es.yml | 31 +- src/pages/Monitor/MonitorOrders.vue | 2 +- src/pages/Monitor/locale/en.yml | 1 - src/pages/Monitor/locale/es.yml | 1 - .../Order/Card/CatalogFilterValueDialog.vue | 2 +- src/pages/Order/Card/OrderBasicData.vue | 6 +- src/pages/Order/Card/OrderCard.vue | 4 +- src/pages/Order/Card/OrderCatalogFilter.vue | 4 +- .../Order/Card/OrderCatalogItemDialog.vue | 8 +- src/pages/Order/Card/OrderDescriptor.vue | 38 +- src/pages/Order/Card/OrderFilter.js | 26 - src/pages/Order/Card/OrderLines.vue | 4 +- src/pages/Order/Card/OrderSummary.vue | 2 +- src/pages/Order/OrderList.vue | 7 +- .../Parking/Card/ParkingBasicData.vue | 18 +- .../Parking/Card/ParkingCard.vue | 6 +- .../Parking/Card/ParkingDescriptor.vue | 16 +- .../Parking/Card/ParkingLog.vue | 0 .../Parking/Card/ParkingSummary.vue | 0 .../{Shelving => }/Parking/ParkingFilter.vue | 0 .../{Shelving => }/Parking/ParkingList.vue | 13 +- .../{Shelving => }/Parking/locale/en.yml | 0 .../{Shelving => }/Parking/locale/es.yml | 0 src/pages/Route/Agency/AgencyList.vue | 4 +- .../Route/Agency/Card/AgencyBasicData.vue | 2 +- src/pages/Route/Agency/Card/AgencyCard.vue | 2 +- .../Route/Agency/Card/AgencyDescriptor.vue | 1 + .../Route/Agency/Card/AgencyWorkcenter.vue | 2 +- src/pages/Route/Card/RouteCard.vue | 5 +- src/pages/Route/Card/RouteDescriptor.vue | 70 +- src/pages/Route/Card/RouteFilter.js | 39 - src/pages/Route/Card/RouteFilter.vue | 2 +- src/pages/Route/Card/RouteForm.vue | 54 +- src/pages/Route/Roadmap/RoadmapBasicData.vue | 5 +- src/pages/Route/Roadmap/RoadmapCard.vue | 2 +- src/pages/Route/Roadmap/RoadmapDescriptor.vue | 18 +- src/pages/Route/Roadmap/RoadmapFilter.js | 3 - src/pages/Route/Roadmap/RoadmapStops.vue | 2 +- src/pages/Route/Roadmap/RoadmapSummary.vue | 3 +- src/pages/Route/RouteExtendedList.vue | 152 +-- src/pages/Route/RouteList.vue | 31 - src/pages/Route/RouteTickets.vue | 18 +- .../Route/Vehicle/Card/VehicleBasicData.vue | 162 --- src/pages/Route/Vehicle/Card/VehicleCard.vue | 13 - .../Route/Vehicle/Card/VehicleDescriptor.vue | 49 - .../Route/Vehicle/Card/VehicleSummary.vue | 127 -- src/pages/Route/Vehicle/VehicleFilter.js | 76 -- src/pages/Route/Vehicle/VehicleList.vue | 224 --- src/pages/Route/Vehicle/locale/en.yml | 20 - src/pages/Route/Vehicle/locale/es.yml | 20 - src/pages/Shelving/Card/ShelvingCard.vue | 4 +- .../Shelving/Card/ShelvingDescriptor.vue | 30 +- src/pages/Shelving/Card/ShelvingFilter.js | 15 - src/pages/Shelving/Card/ShelvingForm.vue | 32 +- src/pages/Shelving/Card/ShelvingSearchbar.vue | 8 +- src/pages/Shelving/Card/ShelvingSummary.vue | 37 +- .../Shelving/Parking/Card/ParkingFilter.js | 4 - .../Shelving/Parking/ParkingExprBuilder.js | 10 - src/pages/Shelving/ShelvingExprBuilder.js | 10 - src/pages/Shelving/ShelvingList.vue | 26 +- src/pages/Supplier/Card/SupplierAccounts.vue | 6 +- src/pages/Supplier/Card/SupplierAddresses.vue | 2 +- .../Supplier/Card/SupplierAgencyTerm.vue | 2 +- src/pages/Supplier/Card/SupplierBasicData.vue | 3 +- src/pages/Supplier/Card/SupplierCard.vue | 16 +- .../Supplier/Card/SupplierConsumption.vue | 103 +- src/pages/Supplier/Card/SupplierContacts.vue | 2 +- .../Supplier/Card/SupplierDescriptor.vue | 49 +- src/pages/Supplier/Card/SupplierFilter.js | 35 - .../Supplier/Card/SupplierFiscalData.vue | 22 +- src/pages/Supplier/SupplierList.vue | 91 +- src/pages/Supplier/SupplierListFilter.vue | 122 ++ .../Ticket/Card/BasicData/TicketBasicData.vue | 16 +- .../Card/BasicData/TicketBasicDataForm.vue | 4 +- .../Card/BasicData/TicketBasicDataView.vue | 116 +- src/pages/Ticket/Card/TicketCard.vue | 8 +- src/pages/Ticket/Card/TicketComponents.vue | 2 +- src/pages/Ticket/Card/TicketDescriptor.vue | 139 +- src/pages/Ticket/Card/TicketExpedition.vue | 2 +- src/pages/Ticket/Card/TicketFilter.js | 72 - src/pages/Ticket/Card/TicketNotes.vue | 4 +- src/pages/Ticket/Card/TicketPackage.vue | 4 +- src/pages/Ticket/Card/TicketSale.vue | 60 +- src/pages/Ticket/Card/TicketService.vue | 6 +- src/pages/Ticket/Card/TicketSplit.vue | 37 - src/pages/Ticket/Card/TicketSummary.vue | 81 +- src/pages/Ticket/Card/TicketTracking.vue | 4 +- src/pages/Ticket/Card/TicketTransfer.vue | 131 +- src/pages/Ticket/Card/TicketTransferProxy.vue | 54 - src/pages/Ticket/Card/components/split.js | 22 - .../Ticket/Negative/TicketLackDetail.vue | 198 --- .../Ticket/Negative/TicketLackFilter.vue | 175 --- src/pages/Ticket/Negative/TicketLackList.vue | 227 ---- src/pages/Ticket/Negative/TicketLackTable.vue | 356 ----- .../Negative/components/ChangeItemDialog.vue | 90 -- .../components/ChangeQuantityDialog.vue | 84 -- .../Negative/components/ChangeStateDialog.vue | 91 -- src/pages/Ticket/TicketFuture.vue | 561 +++++--- src/pages/Ticket/TicketFutureFilter.vue | 4 +- src/pages/Ticket/locale/en.yml | 87 +- src/pages/Ticket/locale/es.yml | 83 -- src/pages/Travel/Card/TravelBasicData.vue | 19 +- src/pages/Travel/Card/TravelCard.vue | 36 +- src/pages/Travel/Card/TravelDescriptor.vue | 1 + src/pages/Travel/Card/TravelFilter.js | 1 - src/pages/Travel/Card/TravelSummary.vue | 8 - src/pages/Travel/Card/TravelThermographs.vue | 2 +- src/pages/Travel/ExtraCommunityFilter.vue | 2 +- src/pages/Travel/TravelList.vue | 24 - src/pages/Wagon/Card/WagonCard.vue | 2 +- src/pages/Wagon/Type/WagonTypeList.vue | 8 +- src/pages/Worker/Card/WorkerBasicData.vue | 17 +- src/pages/Worker/Card/WorkerCalendar.vue | 32 +- .../Worker/Card/WorkerCalendarFilter.vue | 2 + src/pages/Worker/Card/WorkerCard.vue | 7 +- src/pages/Worker/Card/WorkerDescriptor.vue | 9 +- .../Worker/Card/WorkerDescriptorProxy.vue | 7 +- src/pages/Worker/Card/WorkerFormation.vue | 3 +- src/pages/Worker/Card/WorkerMedical.vue | 16 - src/pages/Worker/Card/WorkerOperator.vue | 19 +- src/pages/Worker/Card/WorkerPda.vue | 10 +- src/pages/Worker/Card/WorkerPit.vue | 2 +- src/pages/Worker/Card/WorkerSummary.vue | 2 +- src/pages/Worker/Card/WorkerTimeControl.vue | 16 +- src/pages/Worker/WorkerDepartmentTree.vue | 4 +- src/pages/Zone/Card/ZoneBasicData.vue | 33 +- src/pages/Zone/Card/ZoneCard.vue | 12 +- src/pages/Zone/Card/ZoneDescriptor.vue | 44 +- src/pages/Zone/Card/ZoneEvents.vue | 4 +- src/pages/Zone/Card/ZoneFilter.js | 10 - src/pages/Zone/Card/ZoneSearchbar.vue | 41 +- src/pages/Zone/Card/ZoneSummary.vue | 18 +- src/pages/Zone/Card/ZoneWarehouses.vue | 2 +- src/pages/Zone/Delivery/ZoneDeliveryList.vue | 2 +- src/pages/Zone/Upcoming/ZoneUpcomingList.vue | 2 +- src/pages/Zone/ZoneList.vue | 29 +- src/router/modules/account/aliasCard.js | 2 +- src/router/modules/account/roleCard.js | 1 - src/router/modules/entry.js | 17 +- src/router/modules/route.js | 52 - src/router/modules/shelving.js | 11 +- src/router/modules/supplier.js | 315 ++--- src/router/modules/ticket.js | 34 +- src/router/modules/worker.js | 9 +- .../__tests__/useNavigationStore.spec.js | 153 --- src/stores/useArrayDataStore.js | 1 - src/utils/notifyResults.js | 19 - .../integration/Order/orderCatalog.spec.js | 1 + .../integration/entry/entryList.spec.js | 224 --- .../integration/entry/stockBought.spec.js | 37 +- .../invoiceIn/invoiceInBasicData.spec.js | 27 +- .../invoiceIn/invoiceInVat.spec.js | 2 +- .../invoiceOutNegativeBases.spec.js | 4 +- .../integration/item/ItemProposal.spec.js | 11 - test/cypress/integration/item/itemTag.spec.js | 5 +- .../parking/parkingBasicData.spec.js | 4 +- .../route/agency/agencyWorkCenter.spec.js | 1 - .../integration/route/routeList.spec.js | 19 +- .../route/vehicle/vehicleDescriptor.spec.js | 13 - .../ticket/negative/TicketLackDetail.spec.js | 147 -- .../ticket/negative/TicketLackList.spec.js | 36 - .../integration/ticket/ticketList.spec.js | 25 - .../vnComponent/VnShortcut.spec.js | 11 - .../wagon/wagonType/wagonTypeCreate.spec.js | 2 +- .../integration/zone/zoneBasicData.spec.js | 16 +- test/cypress/support/commands.js | 71 +- test/cypress/support/waitUntil.js | 2 +- 338 files changed, 4377 insertions(+), 9582 deletions(-) delete mode 100644 src/boot/defaults/constants.js delete mode 100644 src/components/common/VnCheckbox.vue delete mode 100644 src/components/common/VnColor.vue delete mode 100644 src/components/common/VnPopupProxy.vue delete mode 100644 src/components/common/VnSelectTravelExtended.vue delete mode 100644 src/components/ui/VnStockValueDisplay.vue delete mode 100644 src/composables/checkEntryLock.js delete mode 100644 src/composables/getColAlign.js delete mode 100644 src/pages/Account/AccountExprBuilder.js delete mode 100644 src/pages/Account/Alias/AliasExprBuilder.js delete mode 100644 src/pages/Account/Card/AccountFilter.js delete mode 100644 src/pages/Account/Role/RoleExprBuilder.js rename src/pages/{Worker => }/Department/Card/DepartmentBasicData.vue (73%) rename src/pages/{Worker => }/Department/Card/DepartmentCard.vue (70%) rename src/pages/{Worker => }/Department/Card/DepartmentDescriptor.vue (84%) rename src/pages/{Worker => }/Department/Card/DepartmentDescriptorProxy.vue (100%) rename src/pages/{Worker => }/Department/Card/DepartmentSummary.vue (99%) rename src/pages/{Worker => }/Department/Card/DepartmentSummaryDialog.vue (100%) delete mode 100644 src/pages/InvoiceIn/Card/InvoiceInFilter.js delete mode 100644 src/pages/InvoiceOut/Card/InvoiceOutFilter.js rename src/pages/Item/{components => Card}/CreateGenusForm.vue (100%) rename src/pages/Item/{components => Card}/CreateSpecieForm.vue (100%) delete mode 100644 src/pages/Item/ItemType/Card/ItemTypeFilter.js delete mode 100644 src/pages/Item/components/ItemProposal.vue delete mode 100644 src/pages/Item/components/ItemProposalProxy.vue delete mode 100644 src/pages/Order/Card/OrderFilter.js rename src/pages/{Shelving => }/Parking/Card/ParkingBasicData.vue (68%) rename src/pages/{Shelving => }/Parking/Card/ParkingCard.vue (53%) rename src/pages/{Shelving => }/Parking/Card/ParkingDescriptor.vue (58%) rename src/pages/{Shelving => }/Parking/Card/ParkingLog.vue (100%) rename src/pages/{Shelving => }/Parking/Card/ParkingSummary.vue (100%) rename src/pages/{Shelving => }/Parking/ParkingFilter.vue (100%) rename src/pages/{Shelving => }/Parking/ParkingList.vue (90%) rename src/pages/{Shelving => }/Parking/locale/en.yml (100%) rename src/pages/{Shelving => }/Parking/locale/es.yml (100%) delete mode 100644 src/pages/Route/Card/RouteFilter.js delete mode 100644 src/pages/Route/Roadmap/RoadmapFilter.js delete mode 100644 src/pages/Route/Vehicle/Card/VehicleBasicData.vue delete mode 100644 src/pages/Route/Vehicle/Card/VehicleCard.vue delete mode 100644 src/pages/Route/Vehicle/Card/VehicleDescriptor.vue delete mode 100644 src/pages/Route/Vehicle/Card/VehicleSummary.vue delete mode 100644 src/pages/Route/Vehicle/VehicleFilter.js delete mode 100644 src/pages/Route/Vehicle/VehicleList.vue delete mode 100644 src/pages/Route/Vehicle/locale/en.yml delete mode 100644 src/pages/Route/Vehicle/locale/es.yml delete mode 100644 src/pages/Shelving/Card/ShelvingFilter.js delete mode 100644 src/pages/Shelving/Parking/Card/ParkingFilter.js delete mode 100644 src/pages/Shelving/Parking/ParkingExprBuilder.js delete mode 100644 src/pages/Shelving/ShelvingExprBuilder.js delete mode 100644 src/pages/Supplier/Card/SupplierFilter.js create mode 100644 src/pages/Supplier/SupplierListFilter.vue delete mode 100644 src/pages/Ticket/Card/TicketFilter.js delete mode 100644 src/pages/Ticket/Card/TicketSplit.vue delete mode 100644 src/pages/Ticket/Card/TicketTransferProxy.vue delete mode 100644 src/pages/Ticket/Card/components/split.js delete mode 100644 src/pages/Ticket/Negative/TicketLackDetail.vue delete mode 100644 src/pages/Ticket/Negative/TicketLackFilter.vue delete mode 100644 src/pages/Ticket/Negative/TicketLackList.vue delete mode 100644 src/pages/Ticket/Negative/TicketLackTable.vue delete mode 100644 src/pages/Ticket/Negative/components/ChangeItemDialog.vue delete mode 100644 src/pages/Ticket/Negative/components/ChangeQuantityDialog.vue delete mode 100644 src/pages/Ticket/Negative/components/ChangeStateDialog.vue delete mode 100644 src/pages/Zone/Card/ZoneFilter.js delete mode 100644 src/stores/__tests__/useNavigationStore.spec.js delete mode 100644 src/utils/notifyResults.js delete mode 100644 test/cypress/integration/entry/entryList.spec.js delete mode 100644 test/cypress/integration/item/ItemProposal.spec.js delete mode 100644 test/cypress/integration/route/vehicle/vehicleDescriptor.spec.js delete mode 100644 test/cypress/integration/ticket/negative/TicketLackDetail.spec.js delete mode 100644 test/cypress/integration/ticket/negative/TicketLackList.spec.js diff --git a/cypress.config.js b/cypress.config.js index a9e27fcfd..1924144f6 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -14,8 +14,8 @@ export default defineConfig({ downloadsFolder: 'test/cypress/downloads', video: false, specPattern: 'test/cypress/integration/**/*.spec.js', - experimentalRunAllSpecs: false, - watchForFileChanges: false, + experimentalRunAllSpecs: true, + watchForFileChanges: true, reporter: 'cypress-mochawesome-reporter', reporterOptions: { charts: true, diff --git a/package.json b/package.json index d23ed0ced..17f39cad7 100644 --- a/package.json +++ b/package.json @@ -1,74 +1,74 @@ { - "name": "salix-front", - "version": "25.08.0", - "description": "Salix frontend", - "productName": "Salix", - "author": "Verdnatura", - "private": true, - "packageManager": "pnpm@8.15.1", - "type": "module", - "scripts": { - "resetDatabase": "cd ../salix && gulp docker", - "lint": "eslint --ext .js,.vue ./", - "format": "prettier --write \"**/*.{js,vue,scss,html,md,json}\" --ignore-path .gitignore", - "test:e2e": "cypress open", - "test:e2e:ci": "npm run resetDatabase && cd ../salix-front && cypress run", - "test": "echo \"See package.json => scripts for available tests.\" && exit 0", - "test:unit": "vitest", - "test:unit:ci": "vitest run", - "commitlint": "commitlint --edit", - "prepare": "npx husky install", - "addReferenceTag": "node .husky/addReferenceTag.js", - "docs:dev": "vitepress dev docs", - "docs:build": "vitepress build docs", - "docs:preview": "vitepress preview docs" - }, - "dependencies": { - "@quasar/cli": "^2.4.1", - "@quasar/extras": "^1.16.16", - "axios": "^1.4.0", - "chromium": "^3.0.3", - "croppie": "^2.6.5", - "moment": "^2.30.1", - "pinia": "^2.1.3", - "quasar": "^2.17.7", - "validator": "^13.9.0", - "vue": "^3.5.13", - "vue-i18n": "^9.3.0", - "vue-router": "^4.2.5" - }, - "devDependencies": { - "@commitlint/cli": "^19.2.1", - "@commitlint/config-conventional": "^19.1.0", - "@intlify/unplugin-vue-i18n": "^0.8.2", - "@pinia/testing": "^0.1.2", - "@quasar/app-vite": "^2.0.8", - "@quasar/quasar-app-extension-qcalendar": "^4.0.2", - "@quasar/quasar-app-extension-testing-unit-vitest": "^0.4.0", - "@vue/test-utils": "^2.4.4", - "autoprefixer": "^10.4.14", - "cypress": "^13.6.6", - "cypress-mochawesome-reporter": "^3.8.2", - "eslint": "^9.18.0", - "eslint-config-prettier": "^10.0.1", - "eslint-plugin-cypress": "^4.1.0", - "eslint-plugin-vue": "^9.32.0", - "husky": "^8.0.0", - "postcss": "^8.4.23", - "prettier": "^3.4.2", - "sass": "^1.83.4", - "vitepress": "^1.6.3", - "vitest": "^0.34.0" - }, - "engines": { - "node": "^20 || ^18 || ^16", - "npm": ">= 8.1.2", - "yarn": ">= 1.21.1", - "bun": ">= 1.0.25" - }, - "overrides": { - "@vitejs/plugin-vue": "^5.2.1", - "vite": "^6.0.11", - "vitest": "^0.31.1" - } + "name": "salix-front", + "version": "25.06.0", + "description": "Salix frontend", + "productName": "Salix", + "author": "Verdnatura", + "private": true, + "packageManager": "pnpm@8.15.1", + "type": "module", + "scripts": { + "resetDatabase": "cd ../salix && gulp docker", + "lint": "eslint --ext .js,.vue ./", + "format": "prettier --write \"**/*.{js,vue,scss,html,md,json}\" --ignore-path .gitignore", + "test:e2e": "cypress open", + "test:e2e:ci": "npm run resetDatabase && cd ../salix-front && cypress run", + "test": "echo \"See package.json => scripts for available tests.\" && exit 0", + "test:unit": "vitest", + "test:unit:ci": "vitest run", + "commitlint": "commitlint --edit", + "prepare": "npx husky install", + "addReferenceTag": "node .husky/addReferenceTag.js", + "docs:dev": "vitepress dev docs", + "docs:build": "vitepress build docs", + "docs:preview": "vitepress preview docs" + }, + "dependencies": { + "@quasar/cli": "^2.4.1", + "@quasar/extras": "^1.16.16", + "axios": "^1.4.0", + "chromium": "^3.0.3", + "croppie": "^2.6.5", + "moment": "^2.30.1", + "pinia": "^2.1.3", + "quasar": "^2.17.7", + "validator": "^13.9.0", + "vue": "^3.5.13", + "vue-i18n": "^9.3.0", + "vue-router": "^4.2.5" + }, + "devDependencies": { + "@commitlint/cli": "^19.2.1", + "@commitlint/config-conventional": "^19.1.0", + "@intlify/unplugin-vue-i18n": "^0.8.2", + "@pinia/testing": "^0.1.2", + "@quasar/app-vite": "^2.0.8", + "@quasar/quasar-app-extension-qcalendar": "^4.0.2", + "@quasar/quasar-app-extension-testing-unit-vitest": "^0.4.0", + "@vue/test-utils": "^2.4.4", + "autoprefixer": "^10.4.14", + "cypress": "^13.6.6", + "cypress-mochawesome-reporter": "^3.8.2", + "eslint": "^9.18.0", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-cypress": "^4.1.0", + "eslint-plugin-vue": "^9.32.0", + "husky": "^8.0.0", + "postcss": "^8.4.23", + "prettier": "^3.4.2", + "sass": "^1.83.4", + "vitepress": "^1.6.3", + "vitest": "^0.34.0" + }, + "engines": { + "node": "^20 || ^18 || ^16", + "npm": ">= 8.1.2", + "yarn": ">= 1.21.1", + "bun": ">= 1.0.25" + }, + "overrides": { + "@vitejs/plugin-vue": "^5.2.1", + "vite": "^6.0.11", + "vitest": "^0.31.1" + } } \ No newline at end of file diff --git a/quasar.config.js b/quasar.config.js index 9467c92af..6d545c026 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -30,6 +30,7 @@ export default configure(function (/* ctx */) { // --> boot files are part of "main.js" // https://v2.quasar.dev/quasar-cli/boot-files boot: ['i18n', 'axios', 'vnDate', 'validations', 'quasar', 'quasar.defaults'], + // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css css: ['app.scss'], diff --git a/src/boot/defaults/constants.js b/src/boot/defaults/constants.js deleted file mode 100644 index c96ceb2d1..000000000 --- a/src/boot/defaults/constants.js +++ /dev/null @@ -1,2 +0,0 @@ -export const langs = ['en', 'es']; -export const decimalPlaces = 2; diff --git a/src/boot/keyShortcut.js b/src/boot/keyShortcut.js index 6da06c8bf..5afb5b74a 100644 --- a/src/boot/keyShortcut.js +++ b/src/boot/keyShortcut.js @@ -1,6 +1,6 @@ export default { - mounted(el, binding) { - const shortcut = binding.value || '+'; + mounted: function (el, binding) { + const shortcut = binding.value ?? '+'; const { key, ctrl, alt, callback } = typeof shortcut === 'string' @@ -8,24 +8,25 @@ export default { key: shortcut, ctrl: true, alt: true, - callback: () => el?.click(), + callback: () => + document + .querySelector(`button[shortcut="${shortcut}"]`) + ?.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(el) { + unmounted: function (el) { if (el._handleKeydown) { window.removeEventListener('keydown', el._handleKeydown); } diff --git a/src/boot/qformMixin.js b/src/boot/qformMixin.js index 182c51e47..97d80c670 100644 --- a/src/boot/qformMixin.js +++ b/src/boot/qformMixin.js @@ -9,19 +9,19 @@ export default { if (!form) return; try { const inputsFormCard = form.querySelectorAll( - `input:not([disabled]):not([type="checkbox"])`, + `input:not([disabled]):not([type="checkbox"])` ); if (inputsFormCard.length) { focusFirstInput(inputsFormCard[0]); } const textareas = document.querySelectorAll( - 'textarea:not([disabled]), [contenteditable]:not([disabled])', + 'textarea:not([disabled]), [contenteditable]:not([disabled])' ); if (textareas.length) { focusFirstInput(textareas[textareas.length - 1]); } const inputs = document.querySelectorAll( - 'form#formModel input:not([disabled]):not([type="checkbox"])', + 'form#formModel input:not([disabled]):not([type="checkbox"])' ); const input = inputs[0]; if (!input) return; @@ -30,5 +30,22 @@ export default { } catch (error) { console.error(error); } + form.addEventListener('keyup', function (evt) { + if (evt.key === 'Enter' && !that.$attrs['prevent-submit']) { + const input = evt.target; + if (input.type == 'textarea' && evt.shiftKey) { + evt.preventDefault(); + let { selectionStart, selectionEnd } = input; + input.value = + input.value.substring(0, selectionStart) + + '\n' + + input.value.substring(selectionEnd); + selectionStart = selectionEnd = selectionStart + 1; + return; + } + evt.preventDefault(); + that.onSubmit(); + } + }); }, }; diff --git a/src/boot/quasar.js b/src/boot/quasar.js index a8c397b83..547517682 100644 --- a/src/boot/quasar.js +++ b/src/boot/quasar.js @@ -51,5 +51,4 @@ export default boot(({ app }) => { await useCau(response, message); }; - app.provide('app', app); }); diff --git a/src/components/CreateBankEntityForm.vue b/src/components/CreateBankEntityForm.vue index 7c4b94a6a..2da3aa994 100644 --- a/src/components/CreateBankEntityForm.vue +++ b/src/components/CreateBankEntityForm.vue @@ -14,7 +14,7 @@ const { t } = useI18n(); const bicInputRef = ref(null); const state = useState(); -const customer = computed(() => state.get('Customer')); +const customer = computed(() => state.get('customer')); const countriesFilter = { fields: ['id', 'name', 'code'], diff --git a/src/components/CrudModel.vue b/src/components/CrudModel.vue index 93a2ac96a..d569dfda1 100644 --- a/src/components/CrudModel.vue +++ b/src/components/CrudModel.vue @@ -64,10 +64,6 @@ const $props = defineProps({ type: Function, default: null, }, - beforeSaveFn: { - type: Function, - default: null, - }, goTo: { type: String, default: '', @@ -180,11 +176,7 @@ async function saveChanges(data) { hasChanges.value = false; return; } - let changes = data || getChanges(); - if ($props.beforeSaveFn) { - changes = await $props.beforeSaveFn(changes, getChanges); - } - + const changes = data || getChanges(); try { await axios.post($props.saveUrl || $props.url + '/crud', changes); } finally { @@ -237,12 +229,12 @@ async function remove(data) { componentProps: { title: t('globals.confirmDeletion'), message: t('globals.confirmDeletionMessage'), - data: { deletes: ids }, + newData, ids, - promise: saveChanges, }, }) .onOk(async () => { + await saveChanges({ deletes: ids }); newData = newData.filter((form) => !ids.some((id) => id == form[pk])); fetch(newData); }); @@ -382,8 +374,6 @@ watch(formUrl, async () => { @click="onSubmit" :disable="!hasChanges" :title="t('globals.save')" - v-shortcut="'s'" - shortcut="s" data-cy="crudModelDefaultSaveBtn" /> diff --git a/src/components/FilterTravelForm.vue b/src/components/FilterTravelForm.vue index 765d97763..4d43c3810 100644 --- a/src/components/FilterTravelForm.vue +++ b/src/components/FilterTravelForm.vue @@ -181,7 +181,6 @@ const selectTravel = ({ id }) => { color="primary" :disabled="isLoading" :loading="isLoading" - data-cy="save-filter-travel-form" /> { :no-data-label="t('Enter a new search')" class="q-mt-lg" @row-click="(_, row) => selectTravel(row)" - data-cy="table-filter-travel-form" > diff --git a/src/components/ItemsFilterPanel.vue b/src/components/ItemsFilterPanel.vue index f73753a6b..36123b834 100644 --- a/src/components/ItemsFilterPanel.vue +++ b/src/components/ItemsFilterPanel.vue @@ -281,7 +281,7 @@ const setCategoryList = (data) => { { return locale.includes(normalizedSearch); }); }); + const filteredPinnedModules = computed(() => { if (!search.value) return pinnedModules.value; const normalizedSearch = search.value @@ -71,7 +72,7 @@ watch( items.value = []; getRoutes(); }, - { deep: true }, + { deep: true } ); function findMatches(search, item) { @@ -103,40 +104,33 @@ function addChildren(module, route, parent) { } function getRoutes() { - const handleRoutes = { - main: getMainRoutes, - card: getCardRoutes, - }; - try { - handleRoutes[props.source](); - } catch (error) { - throw new Error(`Method is not defined`); - } -} -function getMainRoutes() { - const modules = Object.assign([], navigation.getModules().value); + if (props.source === 'main') { + const modules = Object.assign([], navigation.getModules().value); - for (const item of modules) { - const moduleDef = routes.find( - (route) => toLowerCamel(route.name) === item.module, + for (const item of modules) { + const moduleDef = routes.find( + (route) => toLowerCamel(route.name) === item.module + ); + if (!moduleDef) continue; + item.children = []; + + addChildren(item.module, moduleDef, item.children); + } + + items.value = modules; + } + + if (props.source === 'card') { + const currentRoute = route.matched[1]; + const currentModule = toLowerCamel(currentRoute.name); + let moduleDef = routes.find( + (route) => toLowerCamel(route.name) === currentModule ); - if (!moduleDef) continue; - item.children = []; - addChildren(item.module, moduleDef, item.children); + if (!moduleDef) return; + if (!moduleDef?.menus) moduleDef = betaGetRoutes(); + addChildren(currentModule, moduleDef, items.value); } - - items.value = modules; -} - -function getCardRoutes() { - const currentRoute = route.matched[1]; - const currentModule = toLowerCamel(currentRoute.name); - let moduleDef = routes.find((route) => toLowerCamel(route.name) === currentModule); - - if (!moduleDef) return; - if (!moduleDef?.menus) moduleDef = betaGetRoutes(); - addChildren(currentModule, moduleDef, items.value); } function betaGetRoutes() { @@ -229,16 +223,9 @@ const searchModule = () => {