Commit Graph
48 Commits
Author SHA1 Message Date
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 81c4ba0800 Refine safety seal normalization, enhance booking completion flow, and update E2E tests for improved validation and popup handling. 2026-05-11 04:37:34 +02:00
Jeppe Bundgaard fe6d9e8d16 Add E2E tests for department branding management and refine supporting API mocks. Implement branding creation, editing, assignment, and clearing workflows. Extend DepartmentProfile with branding UI and logic updates. 2026-05-07 10:42:45 +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 3a4cdbaeb9 Expand edge gateway workspace and streamline app loading 2026-04-23 13:33:12 +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 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 1afdda2650 Refactor POS workflows and improve booking flow:
- Updated `PayWithStripeButton` to handle setup requirements and improved error state handling.
- Enhanced POS mobile popup completion flow with added callback support and fallback actions.
- Introduced booking safety seal and improved step navigation logic.
- Added new e2e tests for booking confirmation, order completion, and error scenarios.
- Adjusted POS e2e and visual tests for updated workflows and UI changes.
- Refactored POS component logic for consistency and improved readability.
2026-04-14 16:19:11 +02:00
Jeppe Bundgaard e88c2d14d5 Refactor POS booking flow and error handling:
- Improved error state management with `normalizeErrorState` and `clearErrorState` utilities.
- Enhanced Stripe payment flow with clear status messaging and support for terminal setup requirements.
- Updated POS component templates (`PosDepartmentStep3.vue`, `PayWithStripeButton.vue`) for better error messages and UX.
- Added `pos-step-4` navigation and tests in e2e flows.
- Introduced utility `toPositiveInteger` for robust numeric validation in bookings.
2026-04-14 10:27:29 +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 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 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 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 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 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 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 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 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 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 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 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 ac9e329604 "Retrieve and handle pos_order_id from local storage across POS Mobile steps for enhanced order management" 2025-10-13 14:00:54 +02:00
Jeppe Bundgaard e02fb33b24 "Add isDark prop to PosDepartmentStepMobileButtonNextStep and blur effects to PosDepartmentStepMobileFixedBottomControl"
- Introduced `isDark` prop in `PosDepartmentStepMobileButtonNextStep` for dynamic dark mode styling.
- Added `blurAmount` and `smoothBlur` props to `PosDepartmentStepMobileFixedBottomControl` for customizable blur effects.
- Updated `PosDepartmentStepMobile2.vue` to utilize the new `isDark` prop for styling.
2025-10-07 10:53:18 +02:00
Jeppe Bundgaard 61c93f9e4f "Add cancellation logic for click events and long press behavior in PosDepartmentStepMobileButtonNextStep"
- Introduced `isClickCancelled` to prevent overlapping click and long press events.
- Added `cancelOnClick()` and `onLongPress()` methods for improved button interaction handling.
- Updated `LongPressListener` integration to trigger long press actions.
2025-10-07 10:38:15 +02:00
Jeppe Bundgaard 273463bad4 Add long press support to PosDepartmentStepMobileButtonNextStep and improve LongPressListener
- Wrapped `PosDepartmentStepMobileButtonNextStep` in `LongPressListener` for custom interactions.
- Enhanced `LongPressListener.vue` with pointer leave handling, dynamic styles, and property watching.
- Updated button layout in `PosDepartmentStepMobile1.vue` to enhance responsiveness.
2025-10-07 10:32:05 +02:00
Jeppe Bundgaard ba66c1eabe Enhance error handling, loading states, and transaction management in POS Mobile components
- Added error messaging for failed transactions and unknown errors in `SessionUser.ObjectsGlobal.vue`.
- Enhanced transaction handling with error validation and recovery logic in `PosDepartmentStep1MobileTransactionHistory.vue`.
- Introduced `awaitBookingCompletion` utility for booking wait states in `PosDepartmentStepMobileButtonNextStep.vue`.
- Updated transaction history visuals to display error states and warnings, including refined badge styling in `PosDepartmentStepMobileAttachments.vue`.
- Improved metadata management by adding `loadingState` and associated logic in `PosDepartmentStepMobileFlow.vue`.
- Adjusted popup visuals and actions with updated styles and button configurations.
2025-09-25 13:05:44 +02:00
Jeppe Bundgaard 9e4d238d4c Add handheld order handling and enhance transaction management with updated translations
- Introduced `handheld_pending_order` and `confirmation_needed` translations in `SessionUser.ObjectsGlobal.vue`.
- Added handheld status indicator and confirmation logic in `PosDepartmentStepMobileTransactionHistory.vue` and `PosDepartmentStepMobileButtonNextStep.vue`.
- Enhanced `nextStep` and `createOrder` functions across components to handle mobile-specific order creation.
- Updated order table visuals and logic in `ordersTable.vue` to display handheld status with warnings and confirmation prompts.
2025-09-25 10:14:39 +02:00
Jeppe Bundgaard 0622a74e02 Enhance transaction history functionality and update Danish translations
- Added `toWordsWithTime` utility for date formatting in `SessionUser.vue`.
- Improved transaction history view in `PosDepartmentStep1MobileTransactionHistory.vue` with customer data retrieval, periodic refresh, and localized messages.
- Updated header transparency logic using `isAnyActive` view state in `PosDepartmentStepMobileFlow.vue`.
- Refined Danish translations across multiple components.
- Adjusted `reference` handling in `PosDepartmentStepMobileButtonNextStep.vue` for vehicle-based defaults.
2025-09-24 13:30:48 +02:00
Jeppe Bundgaard ffe687ceaa Add transaction history handling and update Danish translations in POS Mobile components
- Implemented transaction history management, including storage, retrieval, clearing, and auto-cleanup mechanisms in `PosDepartmentStepMobileFlow.vue`.
- Added `PosDepartmentStep1MobileTransactionHistory.vue` for viewing past transactions.
- Updated `PosDepartmentStepMobileAttachments.vue` to display transaction count and provide quick access to history.
- Enhanced flow reset functionality to optionally clear transaction history with `resetPos` changes.
- Updated Danish translations for prompts, titles, and labels in `LoginQR.vue`, `ScannerInstructions`, and other UI elements.
2025-09-24 11:05:25 +02:00
Jeppe Bundgaard 61050d7ec2 Add product note handling and enhance additional item management in POS Mobile components
- Added `PosDepartmentStepMobilePopupAddProductNote.vue` for managing product notes via popups.
- Updated `PosProduct` to include optional `notes` field in product definition.
- Modified additional item logic in `PosDepartmentStepMobileFlow.vue` to handle product notes and quantities.
- Enhanced `PosDepartmentStepMobile2AdditionalItems.vue` with dynamic toggles, improved layout, and localized labels.
- Updated translations and button labels for additional item actions.
- Adjusted `WhiteBoxCard.vue` to support `forceState` prop for toggle control.
2025-09-23 13:23:15 +02:00
Jeppe Bundgaard 4ef4f927bc Add additional items handling and customizable product display in POS Mobile flow
- Introduced `PosDepartmentStepMobile2AdditionalItems.vue` for managing additional items in transactions.
- Added `additionalItemSelection` view to `PosDepartmentStepMobileFlow.vue` for enhanced item selection.
- Enhanced `PosDepartmentStepMobile2Products.vue` with support for displaying products as addons.
- Implemented reusable addon conversion logic for managing products as additional items.
- Updated `WhiteBoxCard.vue` to emit toggle events for improved interaction.
- Refactored button logic in `PosDepartmentStepMobileButtonNextStep.vue` to handle custom actions and disable states.
- Adjusted prop handling and event logic in multiple components for seamless addon integration.
2025-09-23 10:50:59 +02:00
Jeppe Bundgaard 1e4bcddfa1 Integrate attachment management and translate prompts in POS Mobile components
- Added `PosDepartmentStepMobileAttachments.vue` and `PosDepartmentStepMobileAttachmentsDisplay.vue` for attachment handling in the mobile flow.
- Implemented attachment management logic, including adding, removing, and uploading attachments in `PosDepartmentStepMobileFlow.vue`.
- Updated button and popup labels with localized translations.
- Enhanced camera integration to include attachment support and added visual indicators for attachments in the UI.
2025-09-22 17:29:28 +02:00
Jeppe Bundgaard 99d432f10d Add product recommendation functionality and update translations in POS Mobile components
- Introduced `PosDepartmentStepMobile2ProductRecommendations.vue` for displaying suggested products based on department and vehicle data.
- Updated button labels and prompts in `PosDepartmentStepMobileButtonNextStep.vue` with localized translations.
- Enhanced category handling in `PosDepartmentStepMobile2Categories.vue` to auto-select category `6` (if available).
- Removed debug values and unused imports across various components for cleaner implementation.
2025-09-22 13:26:41 +02:00
Jeppe Bundgaard 27381bed67 Remove unused imports and redundant code across POS Mobile components
- Eliminated unused imports such as `GenericButton`, `SuccessCheck`, and `Swal` from multiple files.
- Removed redundant variable `status` in `RegistrationNumberSearchResult.vue`.
- Simplified component scripts by cleaning up unnecessary code and imports.
2025-09-18 13:44:11 +02:00
Jeppe Bundgaard c8b0d591e6 Refactor reference validation in PosDepartmentStepMobileButtonNextStep.vue
- Simplified reference resolution logic with a new `resolveReferenceFromSources` helper.
- Replaced error popups with `Swal`-based prompts for better user interaction.
- Enhanced `validateReferenceRequirements` to handle missing references more gracefully.
- Improved step flow by integrating `finalizeStep1` for streamlined completion.
2025-09-18 13:04:03 +02:00
Jeppe Bundgaard 319e3ee9b3 Refactor POS Mobile error popup and action button logic
- Removed unused icon container in `PosDepartmentStepMobilePopupError.vue`.
- Added reusable `actionButtons` object in `PosDepartmentStepMobileFlow.vue` for consistency.
- Imported `Swal` for future popup enhancements.
2025-09-18 12:36:45 +02:00
Jeppe Bundgaard 4ca1090b8e Add error popup and action button handling to POS Mobile components
- Introduced `PosDepartmentStepMobilePopupError.vue` for displaying error messages in popups.
- Added `PosActionButton` type and integrated reusable action buttons with popups.
- Enhanced popup system to support footer action buttons and improved context-based popup customization.
- Implemented reference validation logic in `PosDepartmentStepMobileButtonNextStep.vue` to ensure mandatory fields are completed before proceeding.
2025-09-18 11:37:25 +02:00
Jeppe Bundgaard ff4e5f3a82 Add booking completion functionality in POS Mobile components
- Introduced `complete_booking` popup for handling booking completion, including form submission via `PosDepartmentStepMobilePopupCompleteBooking.vue`.
- Enhanced `PosPopup.vue` to support new `PopupComponentKey` for `complete_booking`.
- Updated `Orders.vue` with `booking_id` field and associated operations for enhanced booking management.
- Modified `PosDepartmentStepMobileButtonNextStep.vue` with logic to handle booking completion before order processing.
- Consolidated booking status checks using `isBookingCompleted` in `Bookings.vue`.
- Improved success alert behavior in `FormDisplay.vue` with a configurable visibility option.
2025-09-16 12:58:03 +02:00
Jeppe Bundgaard 8c6c077ccc Enhance reference and notes handling in POS Mobile components
- Added logic to dynamically update `reference` and `notes` fields in `PosDepartmentStepMobile2.vue` using metadata and order details.
- Introduced `updateReference` and `updateNotes` functions to streamline field updates.
- Enhanced button enablement handling in `PosDepartmentStepMobileButtonNextStep.vue` based on customer selection and registration number validation.
- Improved `ControlFieldInput` bindings for `reference` and `notes` fields to leverage metadata updates.
2025-09-16 10:04:48 +02:00
Jeppe Bundgaard eda43a8f7d Add order item creation and transaction flow enhancements:
- Implement `onBeforeComplete` for order item validation and creation during transaction processing in `PosDepartmentStepMobile2.vue`.
- Introduce addon item handling and related item associations within transaction workflows.
- Enhance `PosDepartmentStepMobileButtonNextStep.vue` with `onBeforeStep` hook for pre-step validations and dynamic state updates.
- Add customizable popup header visibility with `hideHeader` prop in `WhiteBoxCard.vue`.
- Refactor popup rendering logic with enhanced dynamic content handling for completed transactions.
- Introduce `reset_all_values` method in `POSDepartmentProcess.vue` for resetting the POS state after transaction completion.
- Add `SuccessCheck.vue` icon for completed transaction UI updates.
2025-08-20 15:46:49 +02:00
Jeppe Bundgaard 8887a1ac52 Add popup management for mobile POS workflow:
- Introduce centralized popup logic in `PosDepartmentStepMobileFlow.vue`, supporting selectable and reusable popups (`select_customer`, `completed_transaction`).
- Add `PosPopup` and `PopupComponentKey` types for improved popup component integration.
- Implement new components: `PosDepartmentStepMobilePopupRenderer`, `PosDepartmentStepMobilePopupSelectCustomer`, and `PosDepartmentStepMobilePopupCompletedTransaction`.
- Update customer interaction in `PosDepartmentStepMobileButtonNextStep.vue` with popup triggers for step validation.
- Enhance customer targeting with dynamic search management in `ControlFieldInputSearchResults.vue`.
- Refactor `RegistrationNumberSearchResult.vue` to ensure consistent search type definitions.
- Adjust vehicle and product workflows for seamless popup integration and improved user interaction.
2025-08-20 13:34:54 +02:00
Jeppe Bundgaard e20becbf68 Refactor mobile POS workflow and enhance vehicle/customer handling:
- Add metadata management (`notes`, `reference`, `customerId`, etc.) for improved state handling in `PosDepartmentStepMobileFlow.vue`.
- Update status handling with `VehicleStatusKey` across components for consistency.
- Replace static background icons with dynamic component resolution (`statusKeyToComponent`) for customer and registration status.
- Refactor and enhance `PosDepartmentStepMobileButtonNextStep.vue` with lifecycle functions for step and customer synchronization.
- Introduce persistence mechanism in `PosDepartmentStepMobileFlow.vue` for metadata and vehicle state via localStorage.
- Consolidate vehicle and customer state management logic for clarity and integration.
2025-08-19 19:28:29 +02:00
Jeppe Bundgaard ab9a435343 Enhance mobile POS vehicle and customer handling:
- Improve vehicle registration management with dynamic indexing and automatic selection in `PosDepartmentStepMobile1.vue`.
- Add computed properties and dynamic customer modification handling based on active vehicle index.
- Extend `RegistrationNumberSearchResult.vue` with conditional customer selection logic.
- Update `ScannerCamera.vue` for configurable image capture delays and lifecycle improvements.
- Refactor `PosDepartmentStepMobileFlow.vue` with additional utility methods for vehicle and camera handling.
- Integrate new logic in `PosDepartmentStepMobileButtonNextStep.vue` for improved step transitions.
2025-08-19 12:27:23 +02:00
Jeppe Bundgaard 644f284112 Add second mobile POS department step and enhance input fields:
- Introduce `PosDepartmentStepMobile2.vue` with conditional rendering for mobile POS workflows.
- Extend registration input fields with search results and improved handling in `PosDepartmentStepMobile1RegistrationNumberInputField.vue`.
- Update `PosDepartmentStep1MobileManualInput.vue` with the ability to manage registration numbers dynamically and handle null values.
- Add `RegistrationNumberSearchResult.vue` for displaying and selecting search results.
- Refactor icons, focus management, and UI styling for better responsiveness and user experience.
2025-08-13 10:56:57 +02:00