Commit Graph
170 Commits
Author SHA1 Message Date
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 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 295f69ee41 Implement POS registration field and autosave utility:
- Added `PosOrderRegistrationField.vue` for managing inline registration field inputs with autosave behavior.
- Introduced `useOrderMetadataAutosave.js` composable for seamless value normalization, dirty tracking, and delayed persistence.
- Refactored mobile and desktop POS components to integrate `useOrderMetadataAutosave` for improved field management (e.g., `POSOrderReference.vue`, `PosOrderLicensePlates.vue`).
- Updated e2e tests to cover registration field scenarios, including input normalization and persistence (`pos-mobile-order-flow.spec.js`, `admin-pos-orders.spec.ts`).
- Enhanced styling and responsiveness for registration fields in `pos.css`.
2026-04-13 14:20:36 +02:00
Jeppe Bundgaard f040614f46 Refactor module paths, layout responsiveness, and testing configurations:
- Replaced repetitive department module URL logic with `buildDepartmentModulePath` utility in `DepartmentModulesDisplay.vue`.
- Enhanced layouts and responsive behavior across components, including `PosDepartmentStep1MobileTransactionHistory.vue` and `DepartmentDailyReport.vue`.
- Removed unused `SuperuserInvoicingLocalStore.vue` and refactored to `SuperuserInvoicingLocalStore.ts`.
- Updated media query handling and card layout adjustments in `DepartmentDailyReport.vue`.
- Added new Playwright configurations (`playwright.prod.config.ts` and `playwright.live.config.ts`) for e2e release workflows.
- Extended e2e and unit test coverage for mobile POS and department modules.
2026-04-09 16:32:25 +02:00
Jeppe Bundgaard e8bd2f5478 Add employee fixtures, mobile POS customer note popup, and alignment updates:
- Introduced employee fixtures in `mobilePos.js` for testing workflows involving employee data.
- Enhanced `PosDepartmentStep1MobileCustomerNotes.vue` with translated labels and data-test attributes.
- Added e2e tests for customer notes popup and translated label validation.
- Improved alignment and responsiveness for `PaginationDisplayGeneralSearchReload.vue` and related e2e tests.
- Updated button logic and styles in `GenericButton.vue` and other mobile POS components for consistent UI behavior.
2026-04-09 14:47:43 +02:00
Jeppe Bundgaard 64aa94ebc3 Add alignment utilities and enhance mobile POS e2e tests:
- Introduced helper functions (`expectHorizontallyCentered`, `expectSameRow`, `expectAboveFixedActions`) for alignment checks in `pos-mobile-order-flow.spec.js`.
- Enhanced e2e tests with layout validations for titles, subtitles, and form inputs.
- Added `reserveSpace` prop and CSS variable handling to `PosDepartmentStepMobileFixedBottomControl.vue` for better spacing control.
- Improved layouts and responsiveness in mobile POS components like `PosDepartmentStepMobile2.vue` and `ScannerInstructions.vue`.
2026-04-09 14:14:56 +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 8eb315f439 Add comprehensive unit and e2e tests for invoice collection, queue logic, and modal interactions:
- Introduced e2e test for "Change Invoice Collection" in `change-invoice-collection.spec.ts`.
- Added unit tests for `CollectedOrderInvoiceOverview.vue` including edit flow for `closed_at`.
- Implemented tests for queue reliability, state handling, and customer actions:
  - `CollectedOrderInvoicesQueueHistory.vue`: polling, error handling, richer diagnostics, and retry logic.
  - `InvoicingBillingPeriod` views: refresh and queue state handling.
- Enhanced test coverage for Stripe queue functionality and related actions.
2026-04-08 15:53:52 +02:00
Jeppe Bundgaard 70440e8855 Optimize attachment preview handling in POS:
- Add `createEmbeddablePreviewUrl` utility to generate blob URLs for attachment previews.
- Introduce `releaseObjectUrl` and `onBeforeUnmount` cleanup to manage and revoke blob URLs.
- Enhance error handling and URL parsing logic for preview link generation in `POSDepartmentProcess`.
2026-03-19 12:50:00 +01:00
Jeppe Bundgaard 60742bf947 Refactor and migrate Playwright E2E tests:
- Remove `playwright.config.js` to clean up configuration.
- Add new E2E test suites (`admin-pos-orders`, `admin-module-goals`, `admin-module-pos-mobile-order-flow`) to structure Admin module tests.
- Introduce reusable authentication and data seeding utilities in `fixtures` for streamlined test flows and maintainability.
2026-03-19 12:46:47 +01:00
Jeppe Bundgaard 87b8814bcf Remove redundant console.log and console.warn statements across components to improve production readiness and clean up logging. 2026-03-19 12:00:20 +01:00
Jeppe Bundgaard 2e6b420913 Remove debug console.log and console.warn statements across POS-related components to improve production readiness and streamline logging. 2026-03-19 11:51:20 +01:00
Jeppe Bundgaard 23a72b08cf Add restoreStoredPosOrderId functionality with validations, update dependent POS logic, and introduce unit tests for order restoration scenarios. 2026-03-19 11:43:17 +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
Jeppe Bundgaard 7e9489573a Add E2E tests for POS and Superuser modules; refactor POS step components for consistent data-test attributes. 2026-03-18 23:11:59 +01:00
Jeppe Bundgaard 8f7e8b565b Refactor and enhance order item functionality:
- Add unit tests for `createOrderItem` to validate behavior under various conditions (e.g., missing token, invalid order ID).
- Introduce `getAttachmentContent` utility in `PosDepartmentStepMobileAttachment.vue` for streamlined attachment property handling.
- Refactor vehicle wash configuration logic in `VehicleDisplay.vue` with null-safe checks.
- Improve invoice-related logic in `ordersSyncTable.vue` using utility functions for consistent property access.
- Enhance computed properties for customer and product handling in order displays (e.g., `MyOrder.vue`, `ProductBox.vue`).
- Consolidate department lookup logic in `departmentTabs.vue` with safer handling of missing data.
- Add utility functions in `orderItemsTable.vue` for consistent product property access and computation.
2026-03-18 22:25:28 +01:00
Jeppe Bundgaard 9a62417981 Refactor Self-Serve logic and POS order creation handling:
- Enhance `useSelfServeLogic.js` with `setSummaryVisibleQuestions` for streamlined question visibility and ordering updates.
- Update logic to retain preview questions when summary data is unavailable.
- Add unit test to validate fallback behavior and preview question handling.
- Prevent duplicate POS orders by introducing `isCreatingOrder` flag in `POSDepartmentProcess.vue`.
- Adjust `PosDepartmentStepMobileButtonNextStep.vue` to reflect button loading state during order creation.
2026-03-18 13:42:15 +01:00
Jeppe Bundgaard 88a2361ccc Increase mobile POS transaction history limit from 50 to 100 2026-03-04 11:08:42 +01:00
Jeppe Bundgaard bbedfbdf30 Refactor mobile POS steps: clear localStorage in tests, enhance vehicle type checks, improve safety seal handling logic, and adjust default wait timeout 2026-03-03 15:07:05 +01:00
Jeppe B 1889b4ceb7 Fix wash certificate syncing in mobile POS flow 2026-03-03 10:02:55 +01:00
Jeppe Bundgaard 2f9326874b Refactor booking and product logic in Step 2: replace applyPendingBookingFromSelection with initializeStepTwo, unify booking selection methods, and add fallback handling for wash products. 2026-03-02 17:05:29 +01:00
Jeppe B 2bfc8f7d3f Fix missing translations on POS order attachments 2026-02-27 05:51:50 +01:00
Jeppe Bundgaard b5c0875a6f Add image compression for LPR processing and update parsing logic 2026-02-27 00:00:48 +01:00
Jeppe Bundgaard d870eb9257 Update package versions to ensure compatibility
- Locked versions for `axios`, `sweetalert2`, and `vite` to specific releases.
- Updated multiple Babel helper and plugin packages to newer versions for enhanced functionality.
- Upgraded various esbuild packages and enforced Node.js version >=18 requirement.
- Added missing MIT licenses for dependencies in `package-lock.json` for clarity.
2026-02-24 15:17:09 +01:00
Jeppe Bundgaard a978675899 Filter restricted products and add-ons based on customer attributes in POS components
- Introduced logic to filter out restricted products and add-ons using new utility methods (`isProductRestricted`, `isAddonRestricted`, `canBuyAdditionalServices`) based on customer attributes.
- Updated relevant POS components to replace unfiltered lists with computed properties for restricted items.
- Enhanced maintainability by centralizing restriction checks in `POSDepartmentProcess.vue`.
2026-02-17 17:21:19 +01:00
Jeppe Bundgaard b0a2c0216f Expand i18n integration across component actions and admin settings
- Replaced hardcoded texts in `ActionSettingsWheelButton.vue` and related components with dynamic translations using `useI18n` for improved multilingual consistency.
- Updated `en.json` with new translation keys for buttons, modals, and action labels.
- Consolidated unused translation keys and improved maintainability by centralizing reusable strings.
2026-02-17 14:57:13 +01:00
Jeppe Bundgaard fe3318e6ac Extend i18n integration across components
- Replaced hardcoded text with dynamic translations using `useI18n` or global `i18n` in multiple components and dashboards.
- Localized buttons, placeholders, labels, table headers, error messages, and object metadata, enhancing multilingual support.
- Improved maintainability by introducing and centralizing new translation keys.
2026-02-17 13:39:43 +01:00
Jeppe Bundgaard e15e94545c Increase transaction history pagination limit to 1000 in PosDepartmentStep1MobileTransactionHistory.vue. 2026-02-02 10:30:34 +01:00
Jeppe Bundgaard 06d84872ff "Add 'Start Wash' feature with MyWash, MyWashStart components, dynamic route integration, and user location-based functionality in UserDashboard." 2025-12-09 14:14:47 +01:00
Jeppe Bundgaard 8110bff6db "Refactor OrdersTable and related components to enhance visibility handling based on user permissions, streamline PO display logic, and improve guest mode functionality across booking flows." 2025-11-27 10:24:12 +01:00
Jeppe Bundgaard 00b5a63477 "Remove wash certificate booking logic from PosDepartmentStepMobile2.vue to simplify transaction handling and reduce unnecessary promise chaining." 2025-11-25 15:13:33 +01:00
Jeppe Bundgaard b4b85d6a9b "Enable additional items component display in PosDepartmentStepMobile2.vue by removing conditional v-show directive." 2025-11-25 11:17:15 +01:00
Jeppe Bundgaard e7befaa981 "Refactor booking logic across multiple components: enhance booking completion flow, improve safety seal certificate handling, streamline booking ID validation, and update API filter syntax for consistency." 2025-11-24 15:47:59 +01:00
Jeppe Bundgaard db996f093e "Refactor vehicle and booking components: streamline booking application logic, update metadata fields (e.g., booking_id, lastOrderId), enhance vehicle selection with duplicate prevention, and improve consistency in pending bookings handling." 2025-11-24 13:02:15 +01:00
Jeppe Bundgaard 36325fb7b5 "Disable vehicle selection view in PosDepartmentStepMobile2.vue when primary product is set." 2025-11-20 16:12:49 +01:00
Jeppe Bundgaard b9e752444b "Add auto-apply logic for pending bookings in PosDepartmentStepMobile2.vue: implement booking selection, metadata updates, primary/addon mapping, and watchers for booking/vehicle changes." 2025-11-20 16:08:19 +01:00
Jeppe Bundgaard 6e3ea19366 "Refine PosDepartmentStepMobile2.vue and PosDepartmentStep2MobileVehicleSelection.vue: simplify button logic, update text display for the next button, and remove restrictive category filtering for improved flexibility." 2025-11-20 09:40:21 +01:00
Jeppe Bundgaard d3870b2d0d "Enhance Add Customer button logic in POS mobile popup: require specific fields to be filled and update conditions for rendering. Simplify input field classes by removing redundant validation styling." 2025-11-19 13:35:47 +01:00
Jeppe Bundgaard b139e606d1 "Normalize registration number inputs by converting to uppercase across components. Prevent duplicates in POS search results and simplify watchers in mobile manual input fields." 2025-11-18 15:49:42 +01:00
Jeppe Bundgaard 0b1b588d17 "Add watchers for reg_1, reg_2, and reg_3 in PosDepartmentStep1MobileManualInput to synchronize user input changes with setValueUserInput function." 2025-11-18 14:52:26 +01:00
Jeppe Bundgaard ff3cfebe3a "Remove unused Clear button in PosDepartmentStep1MobileTransactionHistory for streamlined UI." 2025-11-18 11:18:58 +01:00
Jeppe Bundgaard 84cbd432a8 "Enhance POS mobile steps: refactor button styles with buttonClasses prop, improve product/category display logic, add loading states, and prioritize category sorting by rules." 2025-11-18 11:09:07 +01:00
Jeppe Bundgaard 5bdd774849 "Hide customer and additional items sections in PosDepartmentStepMobile2 using v-show directive. Update app branding: rename app to 'Truck Wash' in vite.config.js. Add and update favicon assets for new branding." 2025-11-17 17:20:05 +01:00
Jeppe Bundgaard ac1765f1c0 "Refactor mobile POS components: integrate vehicle selection reset, add long press handling with scroll detection in PosDepartmentStepMobile2, introduce minimum close delay for vehicle selection, and enhance product sorting with priority-based ordering." 2025-11-17 16:32:31 +01:00
Jeppe Bundgaard 32bf34658d "Add 'Add Customer' functionality: integrate new popup component and action flow for customer creation in PosDepartmentStepMobile. Update popup handling logic, adjust button actions, and introduce dynamic form autofill for seamless user experience." 2025-11-17 13:31:54 +01:00
Jeppe Bundgaard 1550138a43 "Refactor multiple components for improved booking flow and usability: add validation checks to order updates in PosDepartmentStepMobileButtonNextStep.vue, optimize query parameter construction in Products.vue, adjust mobile column classes in SelectProductsFormPOS.vue, and enhance mobile booking UI in MyBookingsBook.vue with improved layout, accessibility, and date/time selection logic." 2025-11-13 15:01:03 +01:00
Jeppe Bundgaard 017437fecf "Enhance various components with improved sorting, formatting, and layout updates: add time formatting logic for midnight in NewBookingStep5.vue, introduce compact mode for vehicle suggestions layout in TimeBookingsElementVehicleSuggestions.vue, and implement priority-based addon sorting in PosDepartmentStepMobile2Addons.vue. Remove unused customer slot logic in MyBookingsBook.vue for cleanup." 2025-11-13 13:21:10 +01:00
Jeppe Bundgaard 7a3d1d1b91 "Add showPrices prop for conditional price display across components; implement handling in ProductBox.vue, NewBookingStep5.vue, and related views for improved flexibility." 2025-11-12 14:44:27 +01:00
Jeppe Bundgaard ac6b38b694 "Refactor onAddProduct method in PosDepartmentStepMobile2Addons.vue to replace verbose console warnings with inline comments, improving readability and maintaining functionality for click and double-click product interactions" 2025-11-06 09:13:51 +01:00