Commit Graph
158 Commits
Author SHA1 Message Date
Jeppe B c2ce6a859b Merge pull request #150 from copenhagentruckwash/codex/customer-product-fixed-price-overrides
Add customer product fixed price UI
2026-07-06 18:15:31 +02:00
Jeppe BandJeppe Bundgaard aa5e0a5507 Add EAN to customer registration flows (#147)
* Add EAN to economic customer registration

* Focus EAN PR Playwright mapping

---------

Co-authored-by: Jeppe Bundgaard <jb@truckwash.dk>
2026-07-06 18:12:05 +02:00
Jeppe Bundgaard 1a232183a8 Merge master into fixed price override branch 2026-07-06 17:28:58 +02:00
Jeppe B 7e5e6ce680 Enforce only tankcleaning POS product rules (#151) 2026-07-06 17:07:03 +02:00
Jeppe Bundgaard 1032f8b4f1 Show limited backoffice employees in backoffice 2026-07-06 16:59:46 +02:00
Jeppe BandJeppe Bundgaard a4b9d2f04d Add superuser vehicle creation flow (#152)
Co-authored-by: Jeppe Bundgaard <jb@truckwash.dk>
2026-07-06 13:59:40 +02:00
Jeppe Bundgaard 2fd0893773 Add customer product fixed price UI 2026-07-06 12:52:31 +02:00
Jeppe BandJeppe Bundgaard cf1509e34f Fix POS step metadata persistence (#138)
* Fix POS step metadata persistence

* Preserve registration save payload formatting

---------

Co-authored-by: Jeppe Bundgaard <jb@truckwash.dk>
2026-07-06 10:20:13 +02:00
Jeppe Bundgaard 90cdc55574 Add limited backoffice functionality with employee management and department pricing 2026-07-01 16:37:25 +02:00
Jeppe Bundgaard 2f562e82a0 Fix subuser auth E2E regressions 2026-07-01 16:20:27 +02:00
Jeppe Bundgaard 475a7504a5 Refactor subuser permissions and enhance artifact management 2026-07-01 13:18:21 +02:00
Jeppe Bundgaard a9bc3ab0fc Fix POS booking match recursion 2026-06-08 17:29:06 +02:00
Jeppe Bundgaard e126dfccf9 Enhance accessibility and linting configuration
- Add tabindex attributes to input fields for better keyboard navigation
- Introduce ESLint configuration for improved code quality and consistency
- Update package.json to include linting scripts and dependencies
- Add tests for desktop tab navigation in POS flow
2026-06-08 16:35:56 +02:00
Jeppe B 222237ab34 Merge pull request #96 from copenhagentruckwash/fix-edge-gateway-localstorage-vulnerability
Harden edge gateway workspace cache
2026-06-02 00:16:07 +02:00
Jeppe B e88a424a7d Fix stale POS customer suggestion auto-selection 2026-06-02 00:13:46 +02:00
Jeppe B 9450c7902d Harden edge gateway workspace cache 2026-06-02 00:08:20 +02:00
Jeppe B 683fce32da Fix POS step 1 customer lookup loop 2026-06-01 12:41:08 +02:00
Jeppe Bundgaard c5a536fbea Add subuser support and require notes for specific products 2026-05-28 16:12:41 +02:00
Jeppe Bundgaard 3a7fef11ef Implement subuser password policy validation and update related components 2026-05-27 19:16:26 +02:00
Jeppe Bundgaard 184ef5670c Enhance session management by normalizing session payload and resetting session state on logout. Update login redirect logic and improve runtime API URL handling for selected release channels. 2026-05-26 17:28:21 +02:00
Jeppe Bundgaard d69c474655 Add multilingual glossary and phrases for i18n, including terms, attributes, and compatibility across da, de, en, no, and sv locales. 2026-05-19 08:03:39 +02:00
Jeppe Bundgaard a261f2f3bd Add unit tests and components for invoicing period flag handling and self-wash view rendering 2026-05-11 21:40:51 +02:00
Jeppe Bundgaard da65876a64 Add responsive tests for "/qr/new-customer" layout, extend API with split_by_month logic, and update E2E/admin tests with session mocking and department sync fixes. Normalize POS department handling, improve invoicing period split logic, and enhance receipt export safety. 2026-05-06 14:14:34 +02:00
Jeppe Bundgaard 4febb998c3 Add mass-import feature for customer data including UI, parsing enhancements, and E2E testing 2026-04-23 19:28:13 +02:00
Jeppe Bundgaard 3a4cdbaeb9 Expand edge gateway workspace and streamline app loading 2026-04-23 13:33:12 +02:00
Jeppe Bundgaard 50190da52f Revise QR code generation library, enhance POS flow, and update Edge Gateway management views and tests 2026-04-23 10:48:08 +02:00
Jeppe Bundgaard fc26e12013 Remove configuration cache problems report 2026-04-23 10:32:08 +02:00
Jeppe Bundgaard 817c174e0e Add unit tests for Orders navigation count refresh and fallback customer caching, update POS mobile accessibility labels:
- Introduced `orders-draft-count-refresh.spec.js` for testing `Orders` navigation hooks on customer changes and order deletions.
- Enhanced `use-draft-transaction-customer.spec.js` with tests for clearing cached fallback customers.
- Updated POS mobile components with accessibility labels and localization for image viewer and customer suggestion buttons.
- Added support for `vehicleCustomerSuggestionsGet` handling in e2e mocks and tests.
2026-04-21 15:20:50 +02:00
Jeppe Bundgaard 46bf518a0e Add E2E tests and harness for customer assignment modal:
- Implemented end-to-end test cases for validating `AssignDraftOrderCustomerModal` workflows, including error handling and behavior consistency.
- Introduced test harness in `change-customer-modal.html` and `change-customer-modal.ts` to facilitate testing of modal interactions.
- Added supporting unit tests for modal behavior and integration with session data.
2026-04-21 14:52:22 +02:00
Jeppe Bundgaard 1bd1b992a2 Add assign draft order customer modal and related e2e tests:
- Introduced `AssignDraftOrderCustomerModal` component with supporting localization for managing customer assignments.
- Added e2e harness for modal testing in `assign-draft-order-customer-modal.html` and `assign-draft-order-customer-modal.ts`.
- Implemented e2e test cases for customer assignment workflows in `assign-draft-order-modal-create.spec.ts` and `assign-draft-order-modal-layout.spec.ts`.
2026-04-21 13:16:22 +02:00
Jeppe Bundgaard 72fdc4c490 Remove EdgeGatewayManager and related assets:
- Deleted `EdgeGatewayManager.vue` alongside its components, templates, styles, and functionality.
- Added tests for `fetchDepartmentOrderBookingCount`.
- Introduced `adminBookingCount.js` for department booking count logic.
2026-04-21 12:46:58 +02:00
Jeppe Bundgaard d7ff64bf4e Add encoding repair utilities and tests:
- Introduced `repairText` and `containsSuspiciousEncoding` utilities for handling corrupted text encodings.
- Added unit tests (`encoding-repair.spec.js`) to validate encoding repair and encoding marker detection.
- Integrated encoding check into unit test workflows (`text:check-encoding` and `text:fix-encoding` scripts).
- Replaced corrupted strings across multiple components and locales with proper UTF-8 encodings.
2026-04-21 10:24:35 +02:00
Jeppe Bundgaard 1a784bbbfd Remove edge gateway components and templates associated with outdated workflows. 2026-04-20 14:51:53 +02:00
Jeppe Bundgaard f3f6237c16 Add step validation for desktop POS workflow and update e2e tests:
- Added `isDesktopStep1Active` computed property to validate step context in `SelectVehicleFormPOS.vue`.
- Updated booking state resolution methods and watchers to respect step validation.
- Extended e2e tests in `pos-desktop-card-payments.spec.js` to validate order reference visibility.
2026-04-20 10:01:45 +02:00
Jeppe Bundgaard 6b91097f98 Add unit and e2e tests for auto-selecting non-barred customer suggestions and update POS vehicle forms:
- Implemented unit tests for `VehicleCustomerSuggestionsPos` to validate auto-selection and manual override behaviors.
- Added e2e scenarios to verify auto-application of non-barred customer suggestions in desktop POS.
- Refactored customer suggestion handling logic to support new `selectionSource`.
- Updated POS and booking components to improve multi-department booking handling and prevent cross-department conflicts.
- Enhanced booking match validation and streamlined customer suggestion methods.
2026-04-15 09:16:43 +02:00
Jeppe Bundgaard 00151ec237 Add unit tests and e2e coverage for POS mobile add-customer autofill functionality:
- Added unit tests for `applyPosAddCustomerSearchResult` to handle autofill field updates, manual overrides, and stale response rejection.
- Implemented a new e2e scenario for preserving manual edits during autofill updates and ignoring stale delayed responses.
- Refactored `mobilePos.js` fixture setup to include CVR search and customer registration mock logic.
- Added and integrated `PosDesktopCustomerConflictModal.vue` for UI handling of customer conflicts.
2026-04-15 08:56:30 +02:00
Jeppe Bundgaard bbbad2c634 Remove dependency on the ws module.
Deleted the entire `ws` library and its associated files. This likely reflects a move away from the WebSocket library, possibly signaling an alternate implementation or unused/legacy code cleanup.
2026-04-14 13:45:15 +02:00
Jeppe Bundgaard c14f0cc1c4 Add utilities and tests for mobile order management and Subuser navigation:
- Introduced `mobileOrderCompletion.js` for mobile order metadata handling with safety seal syncing, metadata persistence, and booking linking utilities.
- Added tests for Subuser navigation menu (`navigation-menu-items-user-subusers.spec.js`) to validate links and permission gating.
- Created unit and end-to-end tests for Subuser grant permissions and management, including permission nodes and invites (`subuser-grant-permission-nodes.spec.js`, `subuser-management.spec.ts`).
- Implemented `SubuserCompleteRegistrationPage.vue` with validation, token handling, and registration flow for Subuser setup.
- Enhanced Playwright e2e tests for Subuser features (`subuserCompleteRegistration.spec.ts`).
2026-04-14 10:09:10 +02:00
Jeppe Bundgaard a93b0dc954 Add tests and utilities for dynamic booking preload handling in POS flow:
- Introduced logic and utilities to fetch exact plate bookings beyond initial preload (`ensureVehiclePlateBookingsLoaded`, `mergePendingBookings`).
- Enhanced booking dropdown and chooser to handle dynamically loaded data for desktop POS.
- Updated e2e tests (`pos-flow.spec.js`) with scenarios for exact and partial plate matches in booking preload handling.
- Refactored `network.js` to support paginated and filtered responses for bookings based on registration fields.
- Improved UX and display logic in booking selectors (`LicensePlateReg1Input.vue`, `PosDepartmentProcess.vue`).
2026-04-13 21:53:16 +02:00
Jeppe Bundgaard 6549eb5015 Refactor POS booking flow and dropdown logic:
- Enhanced order booking sorting with improved date handling and validation (`getOrderBookingSortDateValue`, `hasOrderBookingSortDateValue`).
- Updated dropdown interaction in `LicensePlateReg1Input.vue` for better selection behavior and UX.
- Revamped test data and assertions in e2e tests with added coverage for new booking scenarios.
- Improved dropdown styling and responsiveness in `LicensePlateReg1Input.vue`.
2026-04-13 21:42:18 +02:00
Jeppe Bundgaard 0f37b0632a Add POS order booking modal and utilities with tests:
- Introduced `PosDesktopOrderBookingSelectorModal.vue` to streamline booking selection for desktop POS.
- Added `orderBookingDisplay.js` utility for handling booking display and reference value normalization.
- Created unit test `select-vehicle-form-pos.spec.js` to validate booking selection flow and registration matching.
- Implemented `run-playwright-ci-parallel.mjs` script to optimize Playwright CI with parallel testing.
- Updated styles and responsiveness for enhanced booking modal UX.
2026-04-13 21:12:34 +02:00
Jeppe Bundgaard 7d9d928a2d Normalize license plate input value handling in LicensePlateInput.vue:
- Ensured input field values are updated consistently with `props.actualValue`.
- Replaced raw `newValue` usage with normalized string values for better data integrity.
- Improved checks for synchronization and validation logic (`checkLicensePlateValid`, `searchCustomerRegistrationNumbers`).
2026-04-13 18:02:06 +02:00
Jeppe Bundgaard ce049d9196 Enhance POS booking flow logic and tests:
- Added support for trailers (`reg_2`) in booking selection and vehicle matching logic.
- Implemented logic to prioritize bookings from registered vehicles and trailers.
- Enhanced booking dropdown with date labels and validation for booked vehicles.
- Improved e2e tests to cover booking date, trailer registration, and vehicle-search scenarios.
- Refactored Vue components for consistency in booking handling and dropdown interaction.
2026-04-13 17:56:19 +02:00
Jeppe Bundgaard 8f3ec2cf09 Add booking selection popup and refactor POS booking flow logic:
- Introduced `PosDepartmentStepMobilePopupSelectOrderBooking.vue` for mobile booking selection.
- Refactored vehicle and booking handling in `SelectVehicleFormPOS.vue` with better plate matching, booking persistence, and customer association logic.
- Updated `PosVehicle` object type to include booking matches.
- Enhanced POS transaction history and booking views with improved readability, functionality, and `data-testid` attributes.
- Adjusted `PosPopup.vue` components to support the new booking popup.
2026-04-13 17:27:37 +02:00
Jeppe Bundgaard 157c3dbf60 Add enhanced POS desktop workspace with customer rail and order summary:
- Introduced `PosDesktopOrderWorkspace.vue` for improved order and customer management.
- Added `PosOrderItemsDefaultTable.vue` with detailed row actions, price tooltips, and order item grouping.
- Enhanced `LicensePlateReg1Input.vue` to preserve customer selection when switching license plates.
- Improved `PosDepartmentStep3.vue` with updated desktop layout using the new POS workspace.
- Added e2e test for customer rules tab to verify dynamic attribute reloading.
2026-04-09 14:03:46 +02:00
Jeppe Bundgaard 78648a0b7f Add customer complaints, edge gateway terminal, and mobile POS functionalities with e2e and unit test coverage:
- Implemented `departmentDailyReportComplaintCustomers.js` module for handling customer complaint data, including search, normalization, and API integration.
- Added `EdgeGatewayTerminal.vue` for root shell access with session approval, dynamic status handling, and user feedback.
- Developed `mobilePos.js` for simulating mobile POS fixtures and workflows in e2e tests.
- Introduced relevant e2e and unit tests to ensure functionality and error handling across modules.
2026-04-09 11:35:18 +02:00
Jeppe Bundgaard 2b6129db29 Add economic queue functionality with Vue component, unit tests, and e2e tests:
- Introduced `CollectedOrderInvoicesQueueHistory.vue` for displaying and managing job queue history.
- Added queue management features: polling with active status detection, error handling, retry logic, and pagination controls.
- Implemented e2e tests for economic queue workflows, including export polling, retries, validation errors, and component unmount behavior.
- Added unit tests for queue logic, payload normalization, and retry scenarios.
- Created `EconomicQueuePlaywrightHarness.vue` to support e2e testing with mock workflows.
2026-04-08 11:19:16 +02:00
Jeppe Bundgaard 5b411de9e6 Refactor SelectProductsFormPOS.vue to use optional chaining for route parameter access and improve department ID fallback logic. 2026-03-19 12:12:20 +01:00
Jeppe Bundgaard 79e6ec61c2 Remove debug console.log and console.warn statements across multiple components to clean up logging and improve production readiness. 2026-03-19 12:09:52 +01:00
Jeppe Bundgaard efed5ac557 Introduce origin migration handling with outdated route guards, redirect logic, and migration-related error views.
- Add `originMigration.js` for handling allowed origins, standalone contexts, and redirect routes.
- Create `OutdatedGateway.vue` and `OutdatedInstallation.vue` error views with timer-based redirection and user instructions.
- Update router to include `/outdated-installation` and `/outdated-gateway` paths.
- Implement unit tests for migration utility methods and route guards.
- Remove debug `console.log` statements across multiple components.
2026-03-19 10:44:10 +01:00