From 18dac38fb2220b6151b44ca959c043165d9bde64 Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 23 Jul 2024 09:14:14 +0200 Subject: [PATCH] Merge branch '7014-RefactorQDrawer' of https://gitea.verdnatura.es/verdnatura/salix-front into 7014-RefactorQDrawer --- .eslintrc.js => .eslintrc.cjs | 0 .vscode/settings.json | 2 +- CHANGELOG.md | 166 ++++ package.json | 2 +- public/no-image-dark.png | Bin 0 -> 7038 bytes public/no-image.png | Bin 0 -> 2181 bytes public/no-user.png | Bin 0 -> 10119 bytes src/boot/axios.js | 4 +- src/components/CreateManualInvoiceForm.vue | 25 +- src/components/CrudModel.vue | 21 +- src/components/FormModel.vue | 126 ++- src/components/FormModelPopup.vue | 7 +- src/components/LeftMenu.vue | 4 +- src/components/LeftMenuItem.vue | 2 +- src/components/NavBar.vue | 15 +- src/components/TransferInvoiceForm.vue | 167 ++-- src/components/UserPanel.vue | 5 + src/components/VnTable/VnColumn.vue | 42 +- src/components/VnTable/VnFilter.vue | 50 +- src/components/VnTable/VnOrder.vue | 95 +++ src/components/VnTable/VnTable.vue | 266 +++++-- src/components/VnTable/VnVisibleColumn.vue | 189 +++++ src/components/common/TableVisibleColumns.vue | 10 +- src/components/common/VnBreadcrumbs.vue | 2 +- src/components/common/VnCard.vue | 13 +- src/components/common/VnComponent.vue | 3 +- src/components/common/VnDmsList.vue | 11 +- src/components/common/VnInput.vue | 7 +- src/components/common/VnInputDate.vue | 193 +++-- src/components/common/VnInputTime.vue | 204 ++--- src/components/common/VnLog.vue | 7 +- src/components/common/VnSelect.vue | 63 +- src/components/common/VnSelectCache.vue | 39 + src/components/ui/CardDescriptor.vue | 63 +- src/components/ui/CardSummary.vue | 5 - .../ui/CatalogItem.vue} | 24 +- src/components/ui/QCalendarMonthWrapper.vue | 33 +- src/components/ui/SkeletonForm.vue | 30 +- src/components/ui/VnFilterPanel.vue | 105 +-- src/components/ui/VnImg.vue | 28 +- src/components/ui/VnLv.vue | 96 ++- src/components/ui/VnNotes.vue | 3 +- src/components/ui/VnPaginate.vue | 12 +- src/components/ui/VnSearchbar.vue | 2 +- src/components/ui/VnSubToolbar.vue | 8 +- src/composables/useArrayData.js | 102 ++- src/composables/useRole.js | 4 + src/composables/useSession.js | 42 +- src/css/app.scss | 48 +- src/i18n/locale/en.yml | 483 +++++------- src/i18n/locale/es.yml | 511 ++++++------ src/pages/Account/Card/AccountDescriptor.vue | 14 - .../Account/Role/Card/RoleDescriptor.vue | 8 +- .../Account/Role/Card/RoleDescriptorProxy.vue | 17 + src/pages/Account/Role/Card/RoleSummary.vue | 1 + src/pages/Agency/AgencyList.vue | 72 -- src/pages/Claim/Card/ClaimAction.vue | 8 +- src/pages/Claim/Card/ClaimBasicData.vue | 17 +- src/pages/Claim/Card/ClaimDescriptor.vue | 32 +- src/pages/Claim/Card/ClaimNotes.vue | 2 +- src/pages/Claim/Card/ClaimPhoto.vue | 8 +- src/pages/Claim/Card/ClaimSummary.vue | 211 ++--- src/pages/Claim/Card/ClaimSummaryAction.vue | 97 +++ src/pages/Claim/ClaimFilter.vue | 279 +++---- src/pages/Claim/ClaimList.vue | 214 ++--- src/pages/Claim/locale/en.yml | 46 ++ src/pages/Claim/locale/es.yml | 46 ++ src/pages/Customer/Card/CustomerBasicData.vue | 2 +- .../Customer/Card/CustomerDescriptor.vue | 16 +- .../Customer/Card/CustomerFiscalData.vue | 2 + src/pages/Customer/Card/CustomerGreuges.vue | 25 +- src/pages/Customer/Card/CustomerSummary.vue | 2 +- src/pages/Customer/CustomerList.vue | 20 +- .../Customer/Defaulter/CustomerDefaulter.vue | 1 - .../Defaulter/CustomerDefaulterFilter.vue | 2 +- .../Department/Card/DepartmentDescriptor.vue | 6 +- src/pages/Entry/Card/EntryDescriptor.vue | 13 +- src/pages/Entry/Card/EntryDescriptorProxy.vue | 3 +- src/pages/Entry/Card/EntrySummary.vue | 16 +- src/pages/Entry/EntryBuysTableDialog.vue | 120 +++ src/pages/Entry/EntryCreate.vue | 2 +- src/pages/Entry/EntryLatestBuys.vue | 744 +++--------------- src/pages/Entry/EntryList.vue | 269 ++++--- src/pages/Entry/MyEntries.vue | 123 +++ src/pages/Entry/locale/en.yml | 1 + src/pages/Entry/locale/es.yml | 2 + .../Card/InvoiceInDescriptorProxy.vue | 9 +- src/pages/InvoiceIn/Card/InvoiceInSummary.vue | 8 +- .../InvoiceOut/Card/InvoiceOutDescriptor.vue | 6 +- .../Card/InvoiceOutDescriptorMenu.vue | 32 +- .../InvoiceOut/Card/InvoiceOutSummary.vue | 10 +- src/pages/InvoiceOut/InvoiceOutFilter.vue | 3 +- src/pages/InvoiceOut/InvoiceOutGlobal.vue | 9 +- src/pages/InvoiceOut/InvoiceOutGlobalForm.vue | 2 +- src/pages/InvoiceOut/InvoiceOutList.vue | 389 +++++---- .../InvoiceOut/InvoiceOutNegativeBases.vue | 240 +++--- .../InvoiceOutNegativeBasesFilter.vue | 1 + src/pages/InvoiceOut/locale/en.yml | 25 + src/pages/InvoiceOut/locale/es.yml | 29 + src/pages/Item/Card/ItemDiary.vue | 70 +- src/pages/Item/Card/ItemLastEntries.vue | 8 +- src/pages/Item/Card/ItemSummary.vue | 4 - src/pages/Item/ItemRequestFilter.vue | 6 +- src/pages/Item/locale/en.yml | 4 +- src/pages/Item/locale/es.yml | 4 +- .../ItemType/Card/ItemTypeDescriptor.vue | 14 - src/pages/Monitor/MonitorList.vue | 12 +- src/pages/Monitor/SalesClientsTable.vue | 128 +-- src/pages/Monitor/SalesOrdersTable.vue | 131 +-- src/pages/Monitor/SalesTicketsTable.vue | 516 ++++++------ src/pages/Order/Card/OrderCatalogFilter.vue | 36 +- src/pages/Order/Card/OrderDescriptor.vue | 4 +- src/pages/Order/Card/OrderDescriptorProxy.vue | 17 + src/pages/Order/Card/OrderForm.vue | 47 +- src/pages/Order/Card/OrderSummary.vue | 26 +- src/pages/Order/OrderCatalog.vue | 10 +- src/pages/Order/OrderLines.vue | 381 ++++----- src/pages/Order/OrderList.vue | 288 ++++--- src/pages/Order/locale/en.yml | 22 + src/pages/Order/locale/es.yml | 22 + src/pages/Parking/Card/ParkingDescriptor.vue | 16 +- src/pages/Parking/Card/ParkingSummary.vue | 26 +- src/pages/Route/Agency/AgencyList.vue | 94 +++ .../Agency/Card/AgencyBasicData.vue | 0 .../{ => Route}/Agency/Card/AgencyCard.vue | 2 +- .../Agency/Card/AgencyDescriptor.vue | 0 .../{ => Route}/Agency/Card/AgencyLog.vue | 0 .../{ => Route}/Agency/Card/AgencyModes.vue | 0 .../{ => Route}/Agency/Card/AgencySummary.vue | 10 +- .../Agency/Card/AgencyWorkcenter.vue | 0 src/pages/{ => Route}/Agency/locale/en.yml | 0 src/pages/{ => Route}/Agency/locale/es.yml | 0 src/pages/Route/Card/RouteDescriptor.vue | 2 +- src/pages/Route/Card/RouteDescriptorProxy.vue | 3 +- src/pages/Route/Card/RouteSearchbar.vue | 1 - src/pages/Route/Cmr/CmrFilter.vue | 162 ---- src/pages/Route/Cmr/CmrList.vue | 228 ++---- .../Route/Roadmap/RoadmapAddStopDialog.vue | 88 --- src/pages/Route/Roadmap/RoadmapCreate.vue | 45 -- src/pages/Route/Roadmap/RoadmapSummary.vue | 46 +- src/pages/Route/RouteAutonomous.vue | 310 +++----- src/pages/Route/RouteList.vue | 533 +++++-------- src/pages/Route/RouteRoadmap.vue | 260 +++--- .../Shelving/Card/ShelvingDescriptorProxy.vue | 5 +- src/pages/Shelving/Card/ShelvingSummary.vue | 2 +- .../Supplier/Card/SupplierConsumption.vue | 10 +- .../Card/SupplierConsumptionFilter.vue | 2 +- .../Supplier/Card/SupplierDescriptor.vue | 16 - src/pages/Supplier/Card/SupplierSummary.vue | 4 +- src/pages/Supplier/SupplierList.vue | 157 ++-- src/pages/Ticket/Card/ExpeditionNewTicket.vue | 78 ++ src/pages/Ticket/Card/TicketCard.vue | 8 +- src/pages/Ticket/Card/TicketComponents.vue | 354 +++++++++ .../Ticket/Card/TicketCreateServiceType.vue | 49 ++ .../Ticket/Card/TicketCreateTracking.vue | 86 ++ src/pages/Ticket/Card/TicketDescriptor.vue | 27 +- .../Ticket/Card/TicketDescriptorProxy.vue | 3 +- src/pages/Ticket/Card/TicketDms.vue | 47 ++ src/pages/Ticket/Card/TicketDmsImportForm.vue | 76 ++ src/pages/Ticket/Card/TicketExpedition.vue | 474 +++++++++++ src/pages/Ticket/Card/TicketNotes.vue | 106 +++ src/pages/Ticket/Card/TicketPackage.vue | 132 ++++ src/pages/Ticket/Card/TicketPicture.vue | 60 ++ src/pages/Ticket/Card/TicketSale.vue | 57 +- src/pages/Ticket/Card/TicketSaleTracking.vue | 549 +++++++++++++ src/pages/Ticket/Card/TicketService.vue | 189 +++++ src/pages/Ticket/Card/TicketTracking.vue | 121 +++ src/pages/Ticket/Card/TicketVolume.vue | 153 ++++ src/pages/Ticket/TicketAdvance.vue | 23 +- src/pages/Ticket/TicketAdvanceFilter.vue | 173 ++++ src/pages/Ticket/TicketFilter.vue | 27 +- src/pages/Ticket/TicketFuture.vue | 4 +- src/pages/Ticket/TicketList.vue | 381 ++++++--- src/pages/Ticket/TicketWeekly.vue | 385 ++++----- src/pages/Ticket/locale/en.yml | 106 ++- src/pages/Ticket/locale/es.yml | 105 ++- src/pages/Travel/Card/TravelCard.vue | 6 +- src/pages/Travel/Card/TravelDescriptor.vue | 28 +- .../Travel/Card/TravelDescriptorProxy.vue | 3 +- src/pages/Travel/Card/TravelSummary.vue | 12 +- src/pages/Travel/ExtraCommunity.vue | 2 +- src/pages/Travel/ExtraCommunityFilter.vue | 48 +- src/pages/Travel/TravelFilter.vue | 225 ------ src/pages/Travel/TravelList.vue | 310 ++++---- src/pages/Travel/locale/en.yml | 6 - src/pages/Travel/locale/es.yml | 6 - src/pages/Worker/Card/WorkerBalance.vue | 90 +++ src/pages/Worker/Card/WorkerCard.vue | 2 +- src/pages/Worker/Card/WorkerDescriptor.vue | 40 +- src/pages/Worker/Card/WorkerFormation.vue | 5 +- .../Card/WorkerNotificationsManager.vue | 1 - src/pages/Worker/Card/WorkerSummary.vue | 10 +- src/pages/Worker/Card/WorkerTimeControl.vue | 6 +- .../Worker/Card/WorkerTimeControlCalendar.vue | 3 +- src/pages/Worker/Card/WorkerTimeForm.vue | 9 +- src/pages/Worker/WorkerList.vue | 339 ++++++-- src/pages/Worker/locale/en.yml | 5 + src/pages/Worker/locale/es.yml | 5 + src/pages/Zone/Card/ZoneBasicData.vue | 2 +- src/pages/Zone/Card/ZoneDescriptor.vue | 22 +- src/pages/Zone/Card/ZoneDescriptorProxy.vue | 3 +- src/router/index.js | 7 +- src/router/modules/agency.js | 16 +- src/router/modules/customer.js | 2 +- src/router/modules/entry.js | 11 +- src/router/modules/invoiceOut.js | 2 +- src/router/modules/item.js | 9 - src/router/modules/order.js | 2 +- src/router/modules/route.js | 12 +- src/router/modules/ticket.js | 122 ++- src/router/modules/worker.js | 48 +- src/stores/invoiceOutGlobal.js | 2 +- src/stores/useArrayDataStore.js | 50 +- src/stores/useNavigationStore.js | 6 +- .../integration/entry/entryDms.spec.js | 2 +- .../cypress/integration/entry/myEntry.spec.js | 20 + .../invoiceIn/invoiceInCorrective.spec.js | 6 +- .../invoiceIn/invoiceInDescriptor.spec.js | 15 +- .../invoiceIn/invoiceInList.spec.js | 3 +- test/cypress/integration/logout.spec.js | 39 + .../integration/parking/parkingList.spec.js | 2 +- .../agency/agencyWorkCenter.spec.js | 10 +- .../integration/route/routeList.spec.js | 15 + .../{ => vnComponent}/vnBreadcrumbs.spec.js | 0 .../vnLocation.spec.js} | 0 .../{ => vnComponent}/vnLog.spec.js | 0 .../{ => vnComponent}/vnSearchBar.spec.js | 16 +- .../integration/worker/workerCreate.spec.js | 19 +- .../integration/worker/workerList.spec.js | 18 +- test/cypress/support/commands.js | 19 +- .../__tests__/components/Leftmenu.spec.js | 4 +- .../composables/useArrayData.spec.js | 2 +- .../__tests__/composables/useSession.spec.js | 1 + 233 files changed, 9628 insertions(+), 6128 deletions(-) rename .eslintrc.js => .eslintrc.cjs (100%) create mode 100644 public/no-image-dark.png create mode 100644 public/no-image.png create mode 100644 public/no-user.png create mode 100644 src/components/VnTable/VnOrder.vue create mode 100644 src/components/VnTable/VnVisibleColumn.vue create mode 100644 src/components/common/VnSelectCache.vue rename src/{pages/Order/Card/OrderCatalogItem.vue => components/ui/CatalogItem.vue} (84%) create mode 100644 src/pages/Account/Role/Card/RoleDescriptorProxy.vue delete mode 100644 src/pages/Agency/AgencyList.vue create mode 100644 src/pages/Claim/Card/ClaimSummaryAction.vue create mode 100644 src/pages/Claim/locale/en.yml create mode 100644 src/pages/Entry/EntryBuysTableDialog.vue create mode 100644 src/pages/Entry/MyEntries.vue create mode 100644 src/pages/InvoiceOut/locale/en.yml create mode 100644 src/pages/Order/Card/OrderDescriptorProxy.vue create mode 100644 src/pages/Order/locale/en.yml create mode 100644 src/pages/Order/locale/es.yml create mode 100644 src/pages/Route/Agency/AgencyList.vue rename src/pages/{ => Route}/Agency/Card/AgencyBasicData.vue (100%) rename src/pages/{ => Route}/Agency/Card/AgencyCard.vue (82%) rename src/pages/{ => Route}/Agency/Card/AgencyDescriptor.vue (100%) rename src/pages/{ => Route}/Agency/Card/AgencyLog.vue (100%) rename src/pages/{ => Route}/Agency/Card/AgencyModes.vue (100%) rename src/pages/{ => Route}/Agency/Card/AgencySummary.vue (81%) rename src/pages/{ => Route}/Agency/Card/AgencyWorkcenter.vue (100%) rename src/pages/{ => Route}/Agency/locale/en.yml (100%) rename src/pages/{ => Route}/Agency/locale/es.yml (100%) delete mode 100644 src/pages/Route/Cmr/CmrFilter.vue delete mode 100644 src/pages/Route/Roadmap/RoadmapAddStopDialog.vue delete mode 100644 src/pages/Route/Roadmap/RoadmapCreate.vue create mode 100644 src/pages/Ticket/Card/ExpeditionNewTicket.vue create mode 100644 src/pages/Ticket/Card/TicketComponents.vue create mode 100644 src/pages/Ticket/Card/TicketCreateServiceType.vue create mode 100644 src/pages/Ticket/Card/TicketCreateTracking.vue create mode 100644 src/pages/Ticket/Card/TicketDms.vue create mode 100644 src/pages/Ticket/Card/TicketDmsImportForm.vue create mode 100644 src/pages/Ticket/Card/TicketExpedition.vue create mode 100644 src/pages/Ticket/Card/TicketNotes.vue create mode 100644 src/pages/Ticket/Card/TicketPackage.vue create mode 100644 src/pages/Ticket/Card/TicketPicture.vue create mode 100644 src/pages/Ticket/Card/TicketSaleTracking.vue create mode 100644 src/pages/Ticket/Card/TicketService.vue create mode 100644 src/pages/Ticket/Card/TicketTracking.vue create mode 100644 src/pages/Ticket/Card/TicketVolume.vue create mode 100644 src/pages/Ticket/TicketAdvanceFilter.vue delete mode 100644 src/pages/Travel/TravelFilter.vue delete mode 100644 src/pages/Travel/locale/en.yml delete mode 100644 src/pages/Travel/locale/es.yml create mode 100644 src/pages/Worker/Card/WorkerBalance.vue create mode 100644 test/cypress/integration/entry/myEntry.spec.js create mode 100644 test/cypress/integration/logout.spec.js rename test/cypress/integration/{ => route}/agency/agencyWorkCenter.spec.js (72%) create mode 100644 test/cypress/integration/route/routeList.spec.js rename test/cypress/integration/{ => vnComponent}/vnBreadcrumbs.spec.js (100%) rename test/cypress/integration/{VnLocation.spec.js => vnComponent/vnLocation.spec.js} (100%) rename test/cypress/integration/{ => vnComponent}/vnLog.spec.js (100%) rename test/cypress/integration/{ => vnComponent}/vnSearchBar.spec.js (65%) diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.cjs diff --git a/.vscode/settings.json b/.vscode/settings.json index 5026b7d3b..8f601aa77 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,5 +14,5 @@ "[vue]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, - "cSpell.words": ["axios"] + "cSpell.words": ["axios", "composables"] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 119f702f7..47f2f49d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,169 @@ +# Version 24.28 - 2024-07-09 + +### Added 🆕 + +- Change header titles style by:wbuezas +- chore: refs #7436 fix e2e (origin/7436-showQCheckbox) by:jorgep +- feat: #7196 eslint (origin/7196-cjsToEsm) by:jgallego +- feat: adapt tu VnTable → CrudModel by:alexm +- feat(CustomerFIlter): use correct table by:alexm +- feat(customerList): add searchbar by:alexm +- feat: customerList is customerExtendedList by:alexm +- feat: fixes #7196 by:jgallego +- feat: refs #6739 transferInvoice new checkbox and functionality by:Jon +- feat: refs #6825 create vnTable and add in CustomerExtendedList by:alexm +- feat: refs #6825 create vnTableColumn, cardActions by:alexm +- feat: refs #6825 fix modes by:alexm +- feat: refs #6825 qchip color by:alexm +- feat: refs #6825 right filter panel (6825-vnTable) by:alexm +- feat: refs #6825 scroll for table mode by:alexm +- feat: refs #6825 share filters, create popup by:alexm +- feat: refs #6825 VnComponent mix component and attrs Form to create new row by:alexm +- feat: refs #6825 VnTableFilter and VnPanelFilter init by:alexm +- feat: refs #6826 added rol summary link by:Jon +- feat: refs #6896 created VnImg and added to order module by:Jon +- feat: refs #6896 new filters by:Jon +- feat: refs #7129 fix some code and add order by:pablone +- feat: refs #7436 show checkbox by:jorgep +- feat: refs #7545 Deleted hasIncoterms client column (origin/7545-hasIncoterms) by:guillermo +- feat(TicketService): use correct format by:alexm +- feat(url): sepate filters by:alexm +- feat(VnFilter): merge objects by:alexm +- feat(VnTable): is-editable and use-model. fix: checkbox by:alexm +- feat(VnTable): refs #6825 actions sticky by:alexm +- feat(VnTable): refs #6825 addInWhere by:alexm +- feat(VnTable): refs #6825 dinamic columns by:alexm +- feat(VnTable): refs #6825 execute function when create by:alexm +- feat(VnTable): refs #6825 fix ellipsis and add titles by:alexm +- feat(VnTable): refs #6825 merge where's by:alexm +- feat(VnTable): refs #6825 move to folder. fix checkboxs by:alexm +- feat(VnTable): refs #6825 remove field prop. Add actions in table by:alexm +- feat(VnTable): refs #6825 use checkbox if startsWith 'is' or 'has' by:alexm +- feat(VnTable): refs #6825 VnTableChip component by:alexm +- feat(vnTable): reload data when change url by:alexm +- feat(WorkerFormation): add columnFilter by:alexm +- feat(WorkerFormation): is-editable and use-model by:alexm +- fix: notify icon style by:Javier Segarra +- refactor: refs #6896 fixed styles by:Jon +- Revert "feat: fixes #7196" by:alexm +- style: refs #6464 changed checkbox and qbtn styles by:Jon + +### Changed 📦 + +- perf: Remove div.col by:Javier Segarra +- perf: remove ItemPicture by:Javier Segarra +- perf: replace ItemPicture in favour of VnImg by:Javier Segarra +- refactor by:wbuezas +- refactor: refs #5447 changed warehouse filter by:Jon +- refactor: refs #5447 changed warehouse out filter behavior by:Jon +- refactor: refs #5447 fixed filter if continent not selected by:Jon +- refactor: refs #5447 fix request by:Jon +- refactor: refs #5447 refactor filters by:Jon +- refactor: refs #6739 changed invoice functions' name by:Jon +- refactor: refs #6739 changed router.push by:Jon +- refactor: refs #6739 deleted useless const by:Jon +- refactor: refs #6739 fix redirect transferInvoice by:Jon +- refactor: refs #6739 new confirmation window by:Jon +- refactor: refs #6739 requested changes by:Jon +- refactor: refs #6739 updated transferInvoice function by:Jon +- refactor: refs #6896 changes requested in PR by:Jon +- refactor: refs #6896 end migration orders by:Jon +- refactor: refs #6896 fixed styles by:Jon +- refactor: refs #6896 fix qdrawer by:Jon +- refactor: refs #6896 refactor VnImg by:Jon +- refactor: refs #6896 requested changes by:Jon +- refactor: refs #6977 fix VnImg props (origin/6977-ClonedURL) by:Jon +- refactor: refs #6977 refactor VnImg by:Jon +- refactor: refs #6977 use VnImg by:Jon +- refactors by:alexm + +### Fixed 🛠️ + +- chore: refs #7436 fix e2e (origin/7436-showQCheckbox) by:jorgep +- feat: fixes #7196 by:jgallego +- feat: refs #6825 fix modes by:alexm +- feat: refs #7129 fix some code and add order by:pablone +- feat(VnTable): is-editable and use-model. fix: checkbox by:alexm +- feat(VnTable): refs #6825 fix ellipsis and add titles by:alexm +- feat(VnTable): refs #6825 move to folder. fix checkboxs by:alexm +- fix(ArrayData): refs #6825 router.replace and use filter.where by:alexm +- fix: bug replace by:alexm +- fix: column hidden v-if by:Javier Segarra +- fix: comment 4 by:Javier Segarra +- fix: comments by:Javier Segarra +- fix: cypress.config to mjs by:alexm +- fix(EntryBuys): fix VnSubtoolbar by:alexm +- fixes: fix vnFilter params and redirect by:alexm +- fix: fix warnings by:alexm +- fix: invoiceDueDay test by:alexm +- fix log view not refreshing when changing id param by:wbuezas +- fix: map selected by:Javier Segarra +- fix: merge dev by:Javier Segarra +- fix: notify icon style by:Javier Segarra +- fix: point 1 by:Javier Segarra +- fix: point 3 by:Javier Segarra +- fix: refs #5447 deleted console.log by:Jon +- fix: refs 6464 deleted useless class in checkbox by:Jon +- fix: refs #6464 fix error isLoading by:Jon +- fix: refs #6739 changed checkbox field by:Jon +- fix: refs #6825 css by:carlossa +- fix: refs #6826 fix redirect by:Jon +- fix: refs #6826 fix roleDescriptor by:Jon +- fix: refs #7129 fix e2e by:pablone +- fix: refs #7129 fix module routes by:pablone +- fix: refs #7129 fix some issues on load and tools by:pablone +- fix: refs #7129 remove consoleLog by:pablone +- fix: refs #7129 remove fix from claim lines by:pablone +- fix: refs #7274 fix duplicate rows by:jorgep +- fix: refs #7433 skeleton by:jorgep +- fix: refs #7623 bugs & tests by:jorgep +- fix: refs #7623 disable router update by:jorgep +- fix: refs #7623 redirect by:jorgep +- fix: refs #7623 test by:jorgep +- fix: refs #7623 update add updateRoute prop in VnPaginate by:jorgep +- fix: refs #7623 updating skip param by:jorgep +- fix: revert cypress mjs by:alexm +- fix: SkeletonTable by:alexm +- fix: state translations by:Javier Segarra +- fix: ticket order by:Javier Segarra +- fix(ticket router): typo by:alexm +- fix(TicketService): pay use selected by:alexm +- fix: TravelLog by:Javier Segarra +- fix(url): filter by:alexm +- fix(url): redirect by:alexm +- fix(VnFilter): filter with params by:alexm +- fix(VnFilterPanel): remove key by:alexm +- fix(VnTable): create scss by:alexm +- fix(VnTable): duplicate fetch by:alexm +- fix(VnTable): Qtable v-bind by:alexm +- fix(VnTable): refs #6825 checkbox align and color by:alexm +- fix(VnTable): refs #6825 fix click sticky column by:alexm +- fix(VnTable): refs #6825 fix events and css by:alexm +- fix(VnTable): refs #6825 VnInputDate by:alexm +- fix(VnTable): showLabel by:alexm +- fix(VnTable): warns by:alexm +- fix: WorkerNotificationsManager test by:alexm +- fix: WorkerSelect option format by:Javier Segarra +- refactor: refs #5447 fixed filter if continent not selected by:Jon +- refactor: refs #5447 fix request by:Jon +- refactor: refs #6739 fix redirect transferInvoice by:Jon +- refactor: refs #6896 fixed styles by:Jon +- refactor: refs #6896 fix qdrawer by:Jon +- refactor: refs #6977 fix VnImg props (origin/6977-ClonedURL) by:Jon +- refs #6504 fix formModel claimFilter claimCard (origin/6504-fixCardClaim) by:carlossa +- refs #7406 fix components by:carlossa +- refs #7406 fix pr by:carlossa +- refs #7406 fix props by:carlossa +- refs #7406 fix Tb components create by:carlossa +- refs #7406 fix trad by:carlossa +- refs #7406 fix url by:carlossa +- refs #7406 fix VnTable columns by:carlossa +- refs #7409 fix balance and formation by:carlossa +- refs #7409 fix trad by:carlossa +- Revert "feat: fixes #7196" by:alexm +- test: fix intermitent e2e by:alexm +- test: fix vnSearchbar adapt to vnTable (origin/7648_dev_customerEntries) by:alexm + # Version 24.24 - 2024-06-11 ### Added 🆕 diff --git a/package.json b/package.json index 4668d2d56..0a66ddb4f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-front", - "version": "24.28.1", + "version": "24.32.0", "description": "Salix frontend", "productName": "Salix", "author": "Verdnatura", diff --git a/public/no-image-dark.png b/public/no-image-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..2a20d7eb4970509bc5f8e9a2bb2b5d33fee3c260 GIT binary patch literal 7038 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 literal 0 HcmV?d00001 diff --git a/public/no-image.png b/public/no-image.png new file mode 100644 index 0000000000000000000000000000000000000000..11d5317a90bbc35e52789e30afe20af7f6247a9e GIT binary patch literal 2181 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 { } if (session.isLoggedIn() && response?.status === 401) { - session.destroy(); + session.destroy(false); const hash = window.location.hash; const url = hash.slice(1); - Router.push({ path: url }); + Router.push(`/login?redirect=${url}`); } else if (!session.isLoggedIn()) { return Promise.reject(error); } diff --git a/src/components/CreateManualInvoiceForm.vue b/src/components/CreateManualInvoiceForm.vue index 92399c20c..1aa95011f 100644 --- a/src/components/CreateManualInvoiceForm.vue +++ b/src/components/CreateManualInvoiceForm.vue @@ -46,22 +46,6 @@ const onDataSaved = async (formData, requestResponse) => { @on-fetch="(data) => (taxAreasOptions = data)" auto-load /> - - { option-value="id" v-model="data.ticketFk" @update:model-value="data.clientFk = null" + url="Tickets" + :where="{ refFk: null }" + :fields="['id', 'nickname']" + :filter-options="{ order: 'shipped DESC' }" > - - + + diff --git a/src/components/UserPanel.vue b/src/components/UserPanel.vue index 9c3b456b1..589524258 100644 --- a/src/components/UserPanel.vue +++ b/src/components/UserPanel.vue @@ -12,12 +12,14 @@ import VnRow from 'components/ui/VnRow.vue'; import FetchData from 'components/FetchData.vue'; import { useClipboard } from 'src/composables/useClipboard'; import VnImg from 'src/components/ui/VnImg.vue'; +import { useRole } from 'src/composables/useRole'; const state = useState(); const session = useSession(); const router = useRouter(); const { t, locale } = useI18n(); const { copyText } = useClipboard(); + const userLocale = computed({ get() { return locale.value; @@ -99,6 +101,7 @@ function saveUserData(param, value) { axios.post('UserConfigs/setUserConfig', { [param]: value }); localUserData(); } +const isEmployee = computed(() => useRole().isEmployee());