Commit Graph
100 Commits
Author SHA1 Message Date
Jeppe Bundgaard f2e82f8812 Extend Self-Serve API with new commands, schemas, and configuration support
- Added `SelfServeLaneStatus` and `SelfServeConfig` schemas to improve data handling and API responses.
- Enhanced `/modules/self-serve/lane/command` to support `RESERVE`, `RELEASE`, and `license_plate`.
- Updated `/modules/self-serve/config` endpoints to include request/response schemas for configuration management.
2026-01-19 10:54:41 +01:00
Jeppe Bundgaard 143ca80eb4 Add license plate and customer number watchers to fetch previous answers in MyWashStart.vue
- Introduced `fetchPreviousAnswers` function to retrieve and populate previous answers based on license plate and customer number.
- Added logic to clear answers state when license plate or customer number changes.
- Updated watchers to trigger data fetching and ensure answers reflect the latest state.
2026-01-15 12:46:01 +01:00
Jeppe Bundgaard 40884fc9e6 Refactor MyWashStart.vue and SelfServeTryModal.vue to optimize rule fetching logic
- Replaced pre-fetching of all condition rules with conditional fetching based on relevant condition IDs.
- Updated question rendering in `MyWashStart.vue` to use `WhiteBoxCard` for improved UI structure.
2026-01-15 12:40:48 +01:00
Jeppe Bundgaard 52529fec3e Add filtering support to get.all methods and enhance Self-Serve data fetching logic
- Updated `get.all` methods across multiple Self-Serve components (`Questions`, `Conditions`, `Tasks`, `ConditionRules`, `Vehicles`) to accept optional filters.
- Refactored `MyWashStart.vue` and `SelfServeTryModal.vue` to leverage filters for context-specific data fetching (e.g., department, product, lane).
2026-01-15 11:42:14 +01:00
Jeppe Bundgaard 2c7d69c458 Add vehicle condition confirmation step in MyWashStart.vue
- Introduced new "Vehicle Configuration" step with dynamic question and task visibility.
- Enhanced `onStartWash` to persist user answers before starting the wash.
- Added `answers` state and related handling for vehicle condition questions.
- Updated navigation logic and UI to incorporate vehicle confirmation.
2026-01-15 11:31:09 +01:00
Jeppe Bundgaard 4bac68f098 Refactor wash commands in MyWashStart.vue to consolidate logic and improve reusability
- Introduced `executeSelfServeCommand` for shared command execution logic across wash actions.
- Replaced custom command handling in `onStartWash`, `onStopWash`, `onReserveWashLane`, and `onReleaseWashLane` with `executeSelfServeCommand`.
- Added new vehicle confirmation step and related UI updates.
- Adjusted default `forceNearestDepartmentEvaluationId` to `6`.
- Updated default behavior and validation logic in `VehicleDataStructure.vue`.
2026-01-15 11:06:28 +01:00
Jeppe Bundgaard 3cf3dc4146 Update forceNearestDepartmentEvaluationId default to 0 in MyWashStart.vue 2026-01-14 21:30:13 +01:00
Jeppe Bundgaard c1873d76c9 Merge remote-tracking branch 'origin/master' 2026-01-14 21:20:10 +01:00
Jeppe Bundgaard 3618c570b5 Update DesktopNavigationBuefy and Viewport layout logic for better responsiveness
- Removed unnecessary visibility check for `DesktopNavigationBuefy`.
- Introduced `watch` in `Viewport` to dynamically update header height on state changes.
- Adjusted grid column spans to handle hidden states and ultra-wide screen devices.
2026-01-13 12:40:02 +01:00
Jeppe Bundgaard b637b9dc5f Add SelfServeVehicleConditions feature to Self-Serve module
- Introduced `SelfServeVehicleConditions` object and related CRUD operations for managing vehicle-specific conditions.
- Added pagination, table, and detail views for managing vehicle conditions within the Department dashboard.
- Updated routing and navigation to include `selfservevehicleconditions` path and entry points.
- Extended `openapi.yaml` to document new endpoints for vehicle condition management.
2026-01-13 12:35:51 +01:00
Jeppe Bundgaard 70029d72d9 Refactor ActionSettingsWheelButton to adjust lane link behavior based on device type 2026-01-12 10:53:58 +01:00
Jeppe Bundgaard a6867643fc Merge remote-tracking branch 'origin/master' 2026-01-09 15:41:18 +01:00
Jeppe Bundgaard 4ea93ff0c8 Extend SelfServeConditionRules with support for nested evaluation of IS_TRUE_OR_ANY_TRUE and IS_FALSE_OR_ANY_FALSE rule types 2026-01-09 15:26:38 +01:00
Jeppe Bundgaard 36b60038b9 Enhance SelfServeTryModal with tooltips and dynamic rule evaluation
- Added `BTooltip` from Buefy for displaying detailed information about conditions and rules.
- Implemented `getRuleTypeLabel` and `getConditionById` methods for improved condition and rule handling.
- Updated UI to include tooltips with rule descriptions, evaluation states, and fallback text for missing rules.
2026-01-09 15:08:33 +01:00
Jeppe Bundgaard b20953e51b Add IS_TRUE_OR_ANY_TRUE and IS_FALSE_OR_ANY_FALSE rule types to condition evaluation
- Extended `SelfServeConditionRules` and its UI to support new rule types.
- Updated `openapi.yaml` to document the newly added options.
- Refactored `evaluateCondition` logic to handle nested evaluation with added rule types.
2026-01-09 15:03:52 +01:00
Jeppe Bundgaard 0591d39a1d Add "Prøv" button and lane-specific filtering to SelfServeTryModal
- Updated `DepartmentWashLane` to include a "Prøv" button for opening `SelfServeTryModal`.
- Enhanced modal logic to support filtering by department, vehicle type, and lane.
- Improved UI with lane-specific context in the modal's title and dynamic data handling.
2026-01-09 14:33:01 +01:00
Jeppe Bundgaard 66307a9aad Add SelfServeTryModal to DepartmentSelfServeQuestions and enable vehicle-type-specific test flows
- Introduced `SelfServeTryModal` component for handling department and vehicle-type-specific test flows.
- Added a "Prøv" button in `DepartmentSelfServeQuestions` for opening the modal.
- Implemented logic for fetching and filtering questions, conditions, rules, and tasks based on department and vehicle type.
- Enhanced UI to support answering questions, evaluating conditions, and managing tasks within the modal.
2026-01-09 14:29:14 +01:00
Jeppe Bundgaard 32e557a9df Add IS_TRUE_OR_NOT_SET and IS_FALSE_OR_NOT_SET options to SelfServeConditionRules 2026-01-09 14:22:25 +01:00
Jeppe Bundgaard 585e56a87f Add IS_SET and IS_NOT_SET options to SelfServeConditionRules and update UI with new rule creation button
- Extended condition rules with `IS_SET` and `IS_NOT_SET` options.
- Added "Tilføj betingelsesregel" button in `SelfServeConditionRulesModal` for enhanced rule management.
2026-01-09 14:13:56 +01:00
Jeppe Bundgaard 1c13e2c80d Add condition_id support to SelfServeConditions, SelfServeConditionRules, and related components
- Renamed `question_condition` to `condition_id` for consistency across `SelfServeConditions`, `SelfServeTasks`, and `SelfServeQuestions`.
- Introduced CRUD operations for `SelfServeConditionRules` with logic for managing condition rules.
- Enhanced existing components to support `condition_id`, including dynamic filtering and table parsing.
- Updated UI elements to reflect changes, including new rule creation options and improved field handling for `condition_id`.
2026-01-09 14:08:53 +01:00
Jeppe Bundgaard aaa0298bae Rename question_condition to condition_id in SelfServeQuestions for consistency and update related methods, parsing, and table logic 2026-01-09 13:58:30 +01:00
Jeppe Bundgaard b1ffa45bc5 Rename question field to condition_id in SelfServeTasks for consistency and update related filtering, parsing, and table logic 2026-01-09 13:54:20 +01:00
Jeppe Bundgaard cecd7eb64a Add modal for managing condition rules in SelfServeConditionsTable
- Replaced navigation link with a modal for managing condition rules.
- Added `SelfServeConditionRulesModal` component with rule creation and pagination support.
- Improved user interaction with dynamic modal handling (`openModal`, `closeModal`).
2026-01-09 13:28:19 +01:00
Jeppe Bundgaard b2cac639ce Use loose equality (==) instead of strict equality (===) in getLockedValue comparison. 2026-01-09 13:24:07 +01:00
Jeppe Bundgaard 672e6407fd Add onchange support to SelfServeConditionRules for dynamic input handling
- Implemented asynchronous `onchange` events in `creation` config to dynamically update fields based on selected object type.
- Enhanced modal behavior in `ObjectsGlobal` to attach and trigger `onchange` events for configured inputs during initialization.
- Improved user experience with auto-filled `name` and `description` fields for questions and tasks.
2026-01-09 13:10:42 +01:00
Jeppe Bundgaard 67e00e2c99 Add condition_id support to SelfServeConditions with dynamic filtering and table integration
- Introduced `condition_id` field for managing conditional logic in `SelfServeConditions`.
- Enhanced dynamic filtering using `department_id` and `product_id` dependencies.
- Added default "Ingen" option for `condition_id`.
- Updated `SelfServeConditionsTable` with editable `condition_id` column.
- Improved pagination and object creation logic to support `condition_id`.
2026-01-09 13:02:20 +01:00
Jeppe Bundgaard f332ad1f4f Add task-specific rules and caching logic to improve SelfServeTasks and SelfServeConditionRules
- Introduced `getTaskText` function with local task caching for optimized task text retrieval.
- Enhanced `SelfServeConditionRules` options handling to support combined question and task selections.
- Updated `DepartmentSelfServeConditionRules` to include separate buttons for adding question and task rules.
- Improved table parsing logic in `SelfServeConditionRulesTable` to handle tasks alongside questions.
2026-01-09 12:51:45 +01:00
Jeppe Bundgaard 9da48a36c0 Add SelfServeConditions and SelfServeConditionRules modules with dynamic filtering and CRUD support
- Introduced `SelfServeConditions` and `SelfServeConditionRules` modules for managing conditions and rules.
- Added routing, components, and backend integration for CRUD operations.
- Implemented dynamic filtering based on `department_id`, `lane_id`, and `vehicle_type`.
- Enhanced self-serve workflows with condition and rule management for questions and tasks.
- Updated related navigation, tables, and pagination components for seamless integration.
2026-01-09 12:45:31 +01:00
Jeppe Bundgaard 2d7d3265c3 Add question_condition support to SelfServeQuestions with dynamic filtering and table integration
- Introduced `question_condition` field for conditional question handling.
- Enhanced question filtering logic using `department_id` and `product_id`.
- Added default "Ingen" option for `question_condition`.
- Updated `SelfServeQuestionsTable` to include editable `question_condition` column.
- Removed deprecated `image` and `vehicle_type` column handlers.
- Added `question_condition` handling in the backend update logic.
2026-01-09 11:38:21 +01:00
Jeppe Bundgaard e2c31b1db6 Add SelfServeTaskAttachmentsModal component to manage task attachments
- Implemented attachment management (list, upload, download, delete) within a modal interface.
- Integrated file-handling logic with `SessionUser` for authenticated requests.
- Added real-time updates for attachment actions with success/error feedback via `Swal`.
- Designed a responsive modal layout for efficient user interaction.
2026-01-09 11:13:20 +01:00
Jeppe Bundgaard 7962c805e0 Add attachment handling to SelfServeTasks with modal support in task table
- Introduced attachment management (list, upload, delete, download) via `authenticatedRequest`.
- Added `SelfServeTaskAttachmentsModal` for viewing and managing task attachments.
- Updated `SelfServeTasksTable` to include attachment actions with modal integration.
- Adjusted default nearest department evaluation ID in `MyWashStart.vue`.
2026-01-09 11:05:22 +01:00
Jeppe Bundgaard e2492b63b9 Update SelfServeTasks question label from "Spørgsmål" to "Hvis" 2026-01-08 14:43:00 +01:00
Jeppe Bundgaard 3a415a8fd5 Update SelfServeTasks question handling with enhanced filtering and default option
- Made `question` selection mandatory during task creation.
- Enhanced dynamic filtering by including `department_id` and `product_id`.
- Added a default "Altid" option for question selection.
- Improved `showEditObjectFieldForm` by supporting extra `options` parameters for contextual edits.
2026-01-08 14:14:23 +01:00
Jeppe Bundgaard 626c1d56bb Add SelfServeTasksPagination to DepartmentWashLane with dynamic filtering and task creation support 2026-01-08 14:10:13 +01:00
Jeppe Bundgaard 745a70621a Add support for SelfServeTasks with dynamic filtering, drag-and-drop, and enhanced CRUD operations
- Introduced `SelfServeTasks` module with backend integration for tasks CRUD operations.
- Added `SelfServeTasksPagination` and `SelfServeTasksTable` components to handle task listing, filtering, and reordering.
- Enabled dynamic filtering with `department`, `lane`, `product`, and `question`.
- Enhanced drag-and-drop functionality for reordering tasks with immediate visual feedback.
- Added routing and navigation updates for `SelfServeTasks` under department dashboard.
- Integrated `order_priority` handling for task creation and updates.
- Improved consistency with `SelfServeQuestions` by implementing shared logic and components where applicable.
2026-01-08 14:02:25 +01:00
Jeppe Bundgaard af21e028ea Add order_priority to SelfServeQuestions creation and enhance button slot with totalItems
- Enabled dynamic `order_priority` assignment during question creation based on `totalItems`.
- Updated button slot in SelfServeQuestionsPagination and related components to expose `totalItems`.
2026-01-08 13:36:08 +01:00
Jeppe Bundgaard 549b6208ce Update SelfServeQuestionsTable to replace id column with editable order_priority column
- Replaced the `id` column with the `order_priority` column for better ordering functionality.
- Removed redundant definitions of `order_priority` column for cleaner code structure.
2026-01-08 13:31:06 +01:00
Jeppe Bundgaard 8fe1ee2189 Add sorting by order_priority to SelfServeQuestionsTable and improve drag-and-drop behavior
- Introduced computed `sortedList` for dynamic sorting by `order_priority` in `SelfServeQuestionsPagination`.
- Enhanced drag-and-drop implementation with optimistic updates and immediate feedback by using `setList`.
2026-01-08 13:29:03 +01:00
Jeppe Bundgaard 0bf96e7f21 Enable drag-and-drop functionality in SelfServeQuestionsTable and add order management in SelfServeQuestionsPagination
- Added drag-and-drop handling for row reordering in `SelfServeQuestionsTable`.
- Introduced `setOrder` for managing question order in `SelfServeQuestionsPagination`.
2026-01-08 13:23:53 +01:00
Jeppe Bundgaard 178ad88661 Update SelfServeQuestionsTable to use getProductName for product parsing
- Replaced hardcoded `productId` parsing logic with dynamic `getProductName` function for consistency in product name handling.
2026-01-08 13:19:22 +01:00
Jeppe Bundgaard 17df279797 Improve error handling and expose loadList in pagination components
- Added error handling with `Swal.showValidationMessage` across `add`, `set`, and `delete` operations in `ObjectsGlobal.vue`.
- Exposed `loadList` function to `buttons` slot in `TableLabeledPagination.vue` and `PaginationDisplayGeneralSearchReload.vue`.
2026-01-08 13:17:31 +01:00
Jeppe Bundgaard e338b3ced1 Remove vehicle_type field from SelfServeQuestions and update related references
- Replaced `vehicle_type` with `product` in forms and logic.
- Removed `vehicle_type` column and handling across components.
- Adjusted `add` method and table definitions accordingly.
2026-01-08 13:14:02 +01:00
Jeppe Bundgaard 9e3d4cfccb Add config.js for centralizing configuration constants
- Introduced `IS_DEV` flag for environment-based logic.
- Added `POS_STEP_1_VERSION` and `API_URL` configuration exports.
2026-01-08 12:55:38 +01:00
Jeppe Bundgaard 9ff0bcec17 Refactor: Move configuration exports (API_URL, IS_DEV, POS_STEP_1_VERSION) to dedicated config file and update imports across components 2026-01-08 12:55:23 +01:00
Jeppe Bundgaard 79ce34af5f Update SelfServeQuestions component with dynamic filtering and enhanced CRUD operations
- Added `SessionUser` import to expand options data handling.
- Updated `SelfServeQuestions` fields (`product`, `vehicle_type`) to use dynamic `select` types with async options and filtering.
- Enhanced `add` and `set` methods with explicit parameter handling (`department`, `lane`, etc.).
- Refined options handling using locked values and async calls.
- Adjusted `ObjectsGlobal` methods for consistent request formatting and error handling.
2026-01-08 12:40:21 +01:00
Jeppe Bundgaard 67bcbf45f5 Refactor button slots and layouts across Self-Serve and Wash Lanes modules
- Standardized `buttons` slot structure in pagination templates.
- Removed redundant button definitions in `DepartmentWashLane.vue`.
- Updated button styles and layouts for consistency across components.
2026-01-08 12:00:47 +01:00
Jeppe Bundgaard 193915e5f1 Add initial data support to SelfServeQuestions forms and update pagination refs
- Updated `showCreateObjectForm` to accept `initialData` for pre-filling forms dynamically.
- Exposed `loadList` in `SelfServeQuestionsPagination.vue` for external access.
- Integrated `selfServeQuestionsPagination` ref and dynamic filtering into `DepartmentWashLane.vue`.
2026-01-08 11:53:57 +01:00
Jeppe Bundgaard 9ac322151b Add vehicle type filter to Self-Serve Questions module
- Introduced vehicle type filter support across Self-Serve Questions components, including `SelfServeQuestionsPagination`, `SelfServeQuestionsTable`, and `DepartmentSelfServeQuestions`.
- Added `selectedVehicleType` logic and `MyWashStartVehicleTypeSelection` for enhanced filter functionality.
- Updated filtering and pagination logic to handle dynamic vehicle type selection and modifications.
2026-01-08 11:50:11 +01:00
Jeppe Bundgaard 33ee8c1803 Add SelfServeQuestions module with pagination, routing, and admin navigation integration
- Added new `SelfServeQuestionsPagination.vue` and `SelfServeQuestionsTable.vue` components for managing self-service questions with pagination support.
- Introduced routing for self-service questions in the "Self-Serve" module under admin dashboard.
- Updated `NavigationMenuItemsAdmin.vue` to include "Self-Serve Questions" navigation item.
- Integrated filtering and auto-load functionality to support department and lane-specific views.
2026-01-08 11:44:21 +01:00
Jeppe Bundgaard 9c6ffd2297 Add detailed view and routing for individual wash lanes
- Introduced `DepartmentWashLane.vue` for viewing and managing individual wash lane details.
- Added new route for accessing specific wash lanes under the "Wash Lanes" module.
- Updated `ActionSettingsWheelButton.vue` and `departmentLanesTable.vue` to include navigation to detailed wash lane view.
- Refined permissions logic for displaying lane-related actions based on user roles.
2026-01-08 11:37:35 +01:00
Jeppe Bundgaard 1751d98cd3 Add SelfServeQuestions module to SessionUser components
- Introduced `SelfServeQuestions` object for managing self-service questions with metadata, columns, and CRUD operations.
- Integrated `SelfServeQuestions` module into `SessionUser.vue` and its global objects mapping.
2026-01-08 11:19:03 +01:00
Jeppe Bundgaard a27ab7c2a1 Dynamically generate navigation labels using firstToUpperCase and integrate "Wash Lanes" module into admin menu. 2026-01-08 10:43:34 +01:00
Jeppe Bundgaard a5b7fa7cd3 Add advanced view support to DepartmentLanes components
- Introduced `advancedView` prop to enable additional data display and configuration options across `DepartmentLanes` components.
- Updated `DepartmentLanesPagination.vue` and `departmentLanesTable.vue` templates to conditionally render advanced data based on `advancedView`.
- Propagated `advancedView` prop through relevant parent components for consistent functionality.
2026-01-08 10:38:39 +01:00
Jeppe Bundgaard f45c676a14 Refactor DepartmentLanesPagination component and add "Wash Lanes" module routing
- Refactored `DepartmentLanesPagination.vue` to simplify structure using `TableLabeledPagination`.
- Introduced the "Wash Lanes" module with new routing (`DepartmentWashLanes.vue`) and navigation integration.
2026-01-08 10:25:34 +01:00
Jeppe Bundgaard b9cd4bf1fd Add margin-bottom to table section in TableLabeledPagination component 2026-01-08 10:25:21 +01:00
Jeppe Bundgaard e64f936b3b Add "Vaskebaner" module to DepartmentModulesDisplay
- Introduced a new "Vaskebaner" module with navigation and routing functionality.
- Updated layout to display modules in a 4-column grid instead of 3.
- Simplified "Dagsopgørelse" module description.
2026-01-08 10:18:39 +01:00
Jeppe Bundgaard 6f4d7f8699 Add vehicle type selection component to MyWashStart workflow
- Introduced `MyWashStartVehicleTypeSelection.vue` for vehicle type selection with enhanced UI and dynamic fetching.
- Replaced deprecated "Type of vehicle" field with the new selection component.
- Updated logic to handle vehicle type fetching, selection, and state updates in `MyWashStart.vue`.
2026-01-08 10:14:17 +01:00
Jeppe Bundgaard ff98b84acb Enable system orders inclusion in UserOrders component 2026-01-06 15:55:01 +01:00
Jeppe Bundgaard 2dad26078e Add system orders inclusion toggle to InvoiceOrdersPagination
- Introduced `includeSystemOrders` prop in `InvoiceOrdersPagination.vue` to enable inclusion of system orders in pagination.
- Updated logic to add query parameter `show_wash_subscription` when `includeSystemOrders` is true.
- Adjusted `collectedOrderInvoice.vue` to utilize the new prop for enhanced filtering options.
2026-01-06 15:44:44 +01:00
Jeppe Bundgaard c0adca9558 Add exemption option for monthly administration and environmental fee
- Added `exemptFromAdministrationFee` property to customer settings in `PosSelectedCustomer.vue`.
- Enabled toggle to exclude customers from monthly fees with descriptive tooltip and icon.
2026-01-06 15:22:34 +01:00
Jeppe Bundgaard 010b0d8af7 Add environment fee configuration to E-conomic module
- Added `ConfigurationInputNumber` for setting `feeProductId` in `ConfigurationEconomic.vue`.
- Extended `Economic/Config` with getter and setter methods for `feeProductId`.
2026-01-06 13:45:33 +01:00
Jeppe Bundgaard ee0d486101 Fix conditional rendering in EditableTableColumn and add null-check in getProductOptions
- Updated `EditableTableColumn.vue` to improve handling of `virtualColumn` for hover text rendering.
- Added safeguard in `getProductOptions` to return an empty array when the `product` argument is null or undefined.
2026-01-06 13:17:31 +01:00
Jeppe Bundgaard 0b6d2e4045 Add administration and environment fee configuration to E-conomic module
- Introduced `ConfigurationInputNumber` component for setting `adminFeeMonthly` and `adminFeeOrder` in `ConfigurationEconomic.vue`.
- Extended `Economic/Config` module to include getter and setter methods for fee management.
2026-01-06 13:06:55 +01:00
Jeppe Bundgaard 10526cfe6e Add "Stop" localization key to ObjectsGlobal.vue 2026-01-06 12:02:53 +01:00
Jeppe Bundgaard 4a0edb59db Refactor pagination logic: implement usePaginatedList composable and update dependencies
- Added `usePaginatedList` composable to centralize pagination logic, enabling cleaner and reusable code.
- Replaced direct imports of pagination logic with composable injections across multiple components for consistency.
- Updated components to support the new pagination instance-based structure for better maintainability.
- Simplified `paginatedList.vue` and introduced dependency injection using `PaginatedListKey`.
2026-01-06 11:40:58 +01:00
Jeppe Bundgaard 2f16a91007 Fix conditional rendering in ModuleActionLogsTable and remove unused lifecycle hook
- Updated `ModuleActionLogsTable.vue` to handle null or undefined `created_at` and `data` fields gracefully.
- Improved "no logs found" message with localized text using `SessionUser.objects.global.language.no_data`.
- Removed unused `onMounted` lifecycle hook from `ModulesPagination.vue` for cleanup.
2026-01-06 11:34:19 +01:00
Jeppe Bundgaard d5c3f44da7 Introduce reusable ModulesPagination component and refactor DepartmentLane.vue
- Added `ModulesPagination.vue` for handling paginated action logs with dynamic filtering, sorting, and endpoint configuration.
- Replaced `ModuleActionLogsTable` in `DepartmentLane.vue` with `ModulesPagination` for better abstraction and reuse.
- Simplified `ModuleActionLogsTable.vue` to function as a pure presentation component with external data injection.
2026-01-06 11:32:15 +01:00
Jeppe Bundgaard de25e9c5f0 Refactor DepartmentLane.vue to use reusable ModuleActionLogsTable component
- Replaced inline logs table in `DepartmentLane.vue` with reusable `ModuleActionLogsTable` for better modularity.
- Enhanced `ModuleActionLogs` to support pagination and dynamic filtering.
- Introduced new `ModuleActionLogsTable.vue` component to centralize log display logic.
2026-01-06 11:29:30 +01:00
Jeppe Bundgaard e9d72918a7 Add ModuleActionLogs integration and display logs in DepartmentLane
- Introduced `ModuleActionLogs` component under `SessionUser.Objects` for handling action logs.
- Updated `DepartmentLane.vue` to fetch and display module action logs for "selfserve" under a new "Handlingslogs" section.
- Enhanced user experience by providing detailed log data with sortable columns (e.g., action, status code, creation time).
2026-01-06 11:22:37 +01:00
Jeppe Bundgaard 5276322dcc Add detailed view for Department Lanes and introduce washing actions
- Added `DepartmentLane.vue` for viewing lane details, including configuration and status indicators.
- Extended router with dynamic `/superuser/department/lanes/:id` route for lane-specific pages.
- Updated `ActionSettingsWheelButton` to modify lane redirect paths for consistency.
- Enhanced `DepartmentLanesTable` to include washing actions (`stopWashing` and status checks) with improved UI.
- Added utility functions (`isWashing`, `stopWashing`) to `SessionUser.Objects.DepartmentLanes`.
2026-01-06 10:55:43 +01:00
Jeppe Bundgaard cb018cc2ec Add department lane actions to ActionSettingsWheelButton and improve DepartmentLanesTable status indicators
- Added `department_lane_id` prop to `ActionSettingsWheelButton` for department lane-specific actions.
- Implemented "View lane in new tab" action and conditional visibility logic.
- Enhanced `DepartmentLanesTable` with status indicators for operational, non-operational, and unconfigured states.
- Introduced status enumerations and utility methods (`isOperational`, `isConfigured`, `isFaulty`) in `SessionUser.Objects.DepartmentLanes`.
2026-01-06 09:58:38 +01:00
Jeppe Bundgaard 429709e270 Handle error in version update API call in vite.config.js
- Added `try-catch` block to gracefully handle errors when calling the server API.
- Improved logging for both success and failure cases to aid debugging.
2026-01-05 11:20:32 +01:00
Jeppe Bundgaard 7f511dd205 Add project guidelines document and adjust VITE_COMMIT_HASH handling
- Introduced `.junie/guidelines.md` to outline project setup, code conventions, and structure.
- Updated `env.d.ts` and `vite.config.js` to standardize `VITE_COMMIT_HASH` usage.
2026-01-05 11:15:48 +01:00
Jeppe Bundgaard 2dd5263087 Update UserProfile.vue: conditionally set module for mobile and add logout button
- Updated `module` bindings to account for mobile devices by displaying empty strings when accessed on mobile.
- Introduced a logout button with confirmation dialog functionality for improved user experience.
2025-12-18 11:51:52 +01:00
Jeppe Bundgaard 3330f20db4 Refactor MobileHeader.vue: replace useRouter with useRoute, update route-based rendering logic, and improve admin features visibility 2025-12-18 11:45:01 +01:00
Jeppe Bundgaard eb6863e4a8 Show wash card in UserDashboard only in development mode using IS_DEV flag 2025-12-18 11:44:54 +01:00
Jeppe Bundgaard 21b8324933 Update MobileFooter.vue: disable "Selv vask" button in production mode using IS_DEV flag 2025-12-18 11:44:47 +01:00
Jeppe Bundgaard ead0ceca39 Refactor MyWashStart.vue: integrate ScrollableSteps, refine guided wash flow, and update footer and assistance logic 2025-12-18 11:10:34 +01:00
Jeppe Bundgaard 815f47004b Add ScrollableSteps.vue and refactor phone call functionality
- Introduced `ScrollableSteps.vue` component with configurable maxHeight and slot-based structure for enhanced reusability.
- Moved phone call functionality to `SessionUser.vue` under reusable `contact` property.
- Updated `MobileHeader.vue` to utilize centralized phone call logic for consistency.
2025-12-18 11:00:51 +01:00
Jeppe Bundgaard 895ab6ffd2 Add call phone button to MobileHeader.vue with dynamic styling and visibility handling
- Implemented a phone call button for quick access with `tel` protocol.
- Added conditional rendering of the button based on `showProfile`.
- Applied dynamic icon styling for development and production modes.
2025-12-18 10:55:44 +01:00
Jeppe Bundgaard 16d8b120f7 Refactor footer visibility logic and improve route-based rendering in MobileHeader.vue
- Extracted `showFooterInContent` into a shared module for reusability.
- Updated `MobileHeader.vue` to use a computed property (`showProfile`) for improved route-based condition handling.
- Renamed `showFooterInContent` to `isFooterInContent` in `Viewport.vue` for clarity and consistency.
2025-12-18 10:12:09 +01:00
Jeppe Bundgaard aac14e474a Update Viewport.vue: add mobile-specific class to header spacer for improved layout handling on mobile devices 2025-12-18 09:44:11 +01:00
Jeppe Bundgaard fba30ba2ac Update MobileHeader.vue: conditionally show profile link and logo based on route
- Added `useRouter` to dynamically check the current route and display the profile button or logo depending on whether the path starts with `/user`.
2025-12-18 09:41:14 +01:00
Jeppe Bundgaard 7a6d2e0b8d Update Viewport.vue: refine footer visibility and enhance mobile footer display
- Adjusted `showFooterInContent` logic to conditionally render footer only on mobile devices using new device detection.
- Updated footer layout to include copyright text and refined styling for improved presentation.
2025-12-18 09:36:47 +01:00
Jeppe Bundgaard 16ccda0c33 Update Viewport.vue: adjust independentScroll logic, add spacer for header, and refine max-height calculation
- Modified `independentScrollMaxHeight` to include `footerHeight` for accurate layout adjustment.
- Added spacer element to prevent content overlap with the fixed header.
- Updated `.independent-scroll` styles for consistency in max-height calculation.
2025-12-18 09:31:16 +01:00
Jeppe Bundgaard 096b878d3d Refactor department dashboard: add "washes" tracking, update calculations for average earnings, and improve subtitle generation logic 2025-12-18 09:14:05 +01:00
Jeppe Bundgaard aab494b239 Improve department navigation: add loading state, skeleton loaders, and optimize department list rendering 2025-12-18 07:54:35 +01:00
Jeppe Bundgaard 8a2b30b117 Add descending order support to paginated list methods across components
- Updated `OrderBookings.vue`, `Orders.vue`, and `ObjectsGlobal.vue` to include `order: 'id:DESC'` in pagination options, ensuring consistent sorting by ID in descending order.
2025-12-18 07:43:38 +01:00
Jeppe Bundgaard e66b7c8853 Add profile link to MobileHeader.vue and dynamic footer visibility in Viewport.vue
- Included user profile button in `MobileHeader.vue` with authentication check and styling for development mode.
- Updated `Viewport.vue` to conditionally show footer content based on route using new computed property.
- Adjusted layout styles, added new color filter classes, and refined footer handling logic for specific paths.
2025-12-17 16:04:15 +01:00
Jeppe Bundgaard 203e39aa6c Refactor DepartmentsOverviewObject.vue: use defineComponent for clarity and export consistency 2025-12-17 15:26:19 +01:00
Jeppe Bundgaard ce2c313f63 Add guided wash flow to MyWashStart.vue with step-by-step instructions, brush details, and improved user navigation 2025-12-17 15:19:57 +01:00
Jeppe Bundgaard da45e23324 Refactor MyWashStart.vue: simplify customer number validation, improve step navigation logic, and ensure reactive updates 2025-12-17 12:20:39 +01:00
Jeppe Bundgaard 4c0cd44a82 Refactor ViewportFooter.vue: replace deprecated slot syntax with v-slot and conditionally render footer component in Viewport.vue 2025-12-17 12:14:09 +01:00
Jeppe Bundgaard 3370bf7469 Refactor department dashboard: replace date shortcuts with DatePeriodSelector, improve loading state handling, and enhance transaction fetch logic 2025-12-17 12:03:26 +01:00
Jeppe Bundgaard b860417cc4 Refactor DepartmentDashboardMyDepartmentsOverview.vue: replace unused BookingsPagination component, add tabbed display for daily reports, and improve department list rendering 2025-12-17 10:05:57 +01:00
Jeppe Bundgaard 58c6a528e3 Enable "Selv vask" button in MobileFooter.vue and remove unused v-show property in UserDashboard.vue 2025-12-16 14:06:40 +01:00
Jeppe Bundgaard 8c88052784 Update MobileFooter.vue: add disabled state to navigation items and bind to button logic 2025-12-16 13:30:41 +01:00
Jeppe Bundgaard 7b5262cebb Add MobileFooter.vue and enhance MyWashStart.vue navigation
- Added `MobileFooter.vue` for improved mobile navigation with dedicated page links.
- Updated `MyWashStart.vue` to refine customer number step validation and clickable state logic.
- Set default `forceNearestDepartmentEvaluationId` to 0 for consistency.
2025-12-16 13:25:14 +01:00
Jeppe Bundgaard 7e64e9f1aa Refactor footers: replace unused content slots with footer components and add ViewportFooter to Viewport.vue 2025-12-16 11:59:30 +01:00
Jeppe Bundgaard 32ae94069b Refactor MyWashStart.vue: set default forceNearestDepartmentEvaluationId to 0 and remove unused console warnings 2025-12-16 11:45:40 +01:00