Commit Graph
68 Commits
Author SHA1 Message Date
Jeppe Bundgaard f2bfef3c88 Improve print invoice flow and caching strategy:
- Simplified print dialog logic in `PrintInvoiceFromOrderItems.vue` using dynamic URL-based receipts and onload handling.
- Enhanced service worker caching configuration in `vite.config.js` with specific caching rules for assets, API responses, images, and HTML files.
- Updated `ViewportHeader.vue` with visibility toggle and responsiveness improvements.
- Adjusted camera capture delays in `PosDepartmentStepMobileFlow.vue` for better user experience.
- Refactored department order views to manage display states for print receipt mode.
2025-08-28 14:07:32 +02:00
Jeppe Bundgaard 8b27a02e3a Add update checking and download functionality:
- Introduced `NavigationMenuUpdates.vue` for update management.
- Added "Check for Updates" button to `MobileNavigation.vue`.
- Integrated version checking, changelog display, and cache-clearing utilities.
2025-08-28 08:52:41 +02:00
Jeppe Bundgaard 246ddc89a3 Remove unused <SessionUser /> component and provide IS_DEV globally via Vue instance. 2025-08-28 08:31:55 +02:00
Jeppe Bundgaard 8accdc51f1 Add build metadata and version display:
- Integrated build date, version, and commit hash generation in `vite.config.js`.
- Enhanced `MobileNavigation.vue` to display build metadata and development mode info.
- Added type definitions in `env.d.ts` for environment variables.
2025-08-28 08:29:22 +02:00
Jeppe Bundgaard cf0e5e8a01 Add QR code error handling, mobile control enhancements, and POS flow updates:
- Added SweetAlert error notifications for untrusted QR codes in `LoginQR.vue`.
- Updated `LoginForm.vue` to hide the QR code login button on desktop.
- Enhanced POS mobile flow in `PosDepartmentStepMobileFlow.vue` with sound feedback for successful scans.
- Implemented camera delay logic for improved capture management in `PosDepartmentStepMobile1.vue`.
- Removed unused element in `PWADownload.vue` and adjusted geolocation visibility in `PosDepartmentStepMobile1Location.vue`.
2025-08-27 16:09:56 +02:00
Jeppe Bundgaard 36b97b67d5 Add QR code-based login functionality and enhancements:
- Implemented QR code scanning and detection using `vue-qrcode-reader` in `LoginQR.vue`.
- Added token extraction and application logic for seamless login flow.
- Enhanced error handling for scanning issues and invalid QR codes.
- Updated `LoginForm.vue` to include a QR code login button.
- Added session handling updates with SweetAlert integration and improved error notifications.
- Bumped dependencies with `@vueuse/integrations` and `vue-qrcode-reader` support.
2025-08-27 13:05:59 +02:00
Jeppe Bundgaard f04dd122f6 Introduce automatic department selection based on user location:
- Added geolocation integration to detect user's proximity to departments.
- Implemented `attemptAutoSelectDepartment` logic in `DefaultPage.vue` for mobile flow.
- Enhanced `locations` object in `PosDepartmentStepMobileFlow.vue` with timeout and distance calculation utilities.
- Updated mobile POS views to handle department redirection dynamically.
2025-08-27 10:11:27 +02:00
Jeppe Bundgaard cf7ad83dff Enhance department distance handling in NavigationMenuDepartment.vue:
- Added `getDistanceToDepartment` and `getDepartmentLabelWithDistance` helper functions.
- Simplified template by replacing inline distance calculation with `getDepartmentLabelWithDistance`.
2025-08-27 08:39:57 +02:00
Jeppe Bundgaard 9a97cc0a39 Add enhanced geolocation handling and distance calculation:
- Updated `PosLocation.vue` to use `Date` for `timestamp` and defined location structure.
- Added geolocation watcher in `PosDepartmentStepMobile1Location.vue` for real-time updates and manual triggers.
- Introduced centralized location management in `PosDepartmentStepMobileFlow.vue` with `locations` object and utility methods.
- Enhanced `NavigationMenuDepartment.vue` to integrate department distance calculation relative to the user's location.
2025-08-26 17:58:44 +02:00
Jeppe Bundgaard d770cf7706 Add location handling to PosDepartmentStepMobile1.vue:
- Introduced geolocation functionality in `PosDepartmentStepMobile1Location.vue` for latitude, longitude, and error reporting.
- Added `PosLocation` type in `PosLocation.vue` to define location data with coordinates.
- Updated `PosDepartmentStepMobile1.vue` to include location display component.
2025-08-26 16:49:49 +02:00
Jeppe Bundgaard d34d6958cf Add latitude and longitude columns to departments table with edit functionality. 2025-08-26 16:49:06 +02:00
Jeppe Bundgaard 9ccc0927c0 Add onAfterSuccessfulScan.mp3 for success scan sound in mobile POS workflow. 2025-08-26 15:19:45 +02:00
Jeppe Bundgaard 14bedb4e31 Remove unused test text element in PosDepartmentStepMobile1.vue. 2025-08-26 14:41:00 +02:00
Jeppe Bundgaard 56343103c3 Enhance mobile POS functionality:
- Add `PosDepartmentStepMobileFixedBottomControl.vue` for consistent bottom control layout.
- Implement overflow control in `ViewportHeaderSettings.vue` with `isOverflowVisible`.
- Enhance `PosPopup.vue` with `defineComponent` and dynamic popup content.
- Add scroll prevention for mobile scanning views in `PosDepartmentStepMobile1.vue`.
- Improve registration number UI in `PosDepartmentStepMobile1RegistrationNumbers.vue`.
- Refactor service worker updates and PWA behavior in `main.js`.
- Update routing default path in `router.js`.
- Improve scanner UI in `ScannerOutline.vue` with responsive dimensions.
2025-08-26 14:39:40 +02:00
Jeppe Bundgaard dc74c4b95f Refactor PosDepartmentStepMobileFlow.vue:
- Replace `export` with `const` declarations for internal functions and references.
- Introduce `type` imports for cleaner type separation and improved readability.
- Update explicit object structures with simplified reactivity handling.
- Modularize `reset`, `popups`, and transaction-related logic for better maintainability.
2025-08-26 08:57:11 +02:00
Jeppe Bundgaard af86c24653 Add suggested category and product handling in mobile POS workflow:
- Introduced "Suggested" category logic in `PosDepartmentStepMobile2Categories.vue` for displaying recommended options.
- Added `fetchSuggestedProducts` function in `PosDepartmentStepMobile2Products.vue` with API integration for vehicle-based product suggestions.
- Enhanced category selection watcher to handle suggested products dynamically.
- Updated `PosDepartmentStepMobile1RegistrationNumbers.vue` with improved styling and `vehicles` reference for registration flow.
2025-08-26 08:02:11 +02:00
Jeppe Bundgaard 0b71a313eb Refactor search result handling in PosDepartmentStepMobilePopupSelectCustomer.vue:
- Introduced local state for search results to prevent UI "blinking" during updates.
- Added watcher on `isSearching` for smoother result application.
- Updated template bindings and conditions for improved search result rendering.
2025-08-25 16:27:03 +02:00
Jeppe Bundgaard 7d467160e0 Add support for dynamic popup styling in mobile POS workflow:
- Introduced `style` prop in `PosPopup.vue` for customizable CSS styling.
- Updated `PosDepartmentStepMobilePopupRenderer.vue` to apply dynamic styles to popup content.
- Enhanced `PosDepartmentStepMobileFlow.vue` with `style` object configuration for popups.
- Refactored `PosDepartmentStepMobilePopupSelectCustomer.vue` template for improved structure and readability.
2025-08-25 16:13:12 +02:00
Jeppe Bundgaard d9ff57af79 Refactor search button click handler in PosDepartmentStep2MobileVehicleSelection.vue for improved function encapsulation and readability. 2025-08-25 16:06:26 +02:00
Jeppe Bundgaard 902bdad855 Refactor customer filtering logic in InvoicingBillingPeriodFilters.vue to consolidate booked transaction checks 2025-08-25 15:59:39 +02:00
Jeppe Bundgaard 2953937e8c Add bulk invoicing support and queue management in billing workflows:
- Introduced invoicing queue management with features to handle bulk invoice processing and progress tracking (`InvoicingBillingPeriodImportInvoiceQueue.vue`).
- Enhanced `ObjectsGlobal.vue` with additional language keys for new invoicing terms and functionalities.
- Updated `InvoicingBillingPeriodViewAll.vue` with new quick actions for invoicing, transaction validation, and queue integration.
- Added methods in `Orders.vue` to fetch multiple objects by IDs for improved batch processing.
- Improved UI/UX with loading indicators, success tags, and progress bar for queue status.
2025-08-25 15:31:46 +02:00
Jeppe Bundgaard f715164f98 Add enhanced invoice actions in economic management:
- Introduced new features including "Send as is," "Unlink," "Remove special arrangements," and "Reset prices to defaults" for collected order invoices.
- Updated `ObjectsGlobal.vue` with new language keys for additional economic terms.
- Added confirmation dialogs for dangerous actions with Swal integration.
- Refactored related functions in `CollectedOrderInvoices.vue` for extended API handling and dynamic payload updates.
- Enhanced UI actions and dropdown options for improved invoice management workflows.
2025-08-25 13:30:49 +02:00
Jeppe Bundgaard a7922b3c19 Add customer suggestion handling and vehicle registration enhancements in mobile POS workflow:
- Introduce `PosCustomerSuggestion` type for customer suggestion handling in search results.
- Add dynamic customer suggestion rendering in `VehicleCustomerSuggestionsPos.vue` and integrate `onClickSuggestion` logic in `PosDepartmentStepMobilePopupSelectCustomer.vue`.
- Enhance `setValueUserInput` in `PosDepartmentStep1MobileManualInput.vue` for better registration number management and auto-selection.
- Update `PosSearchResult` type with `customerSuggestions` field for historical billing data.
- Refactor vehicle state and status handling for improved registration and customer selection workflows.
- Improve layout responsiveness in `VehicleCustomerSuggestionsPos.vue` with updated CSS classes.
2025-08-21 15:34:00 +02:00
Jeppe Bundgaard d65e4b4905 Refactor primaryItem watcher in PosDepartmentStepMobile2.vue:
- Simplify and modularize addon handling logic using reusable `mapAddonsWithQuantity` utility.
- Enhance readability and maintainability with streamlined conditional checks and flow.
- Improve logging for primary item transitions and addon merging.
2025-08-21 13:23:52 +02:00
Jeppe Bundgaard 7f708e7624 Enhance mobile POS workflow with last order and cashier integration:
- Add `PosCashier` type in `PosCashier.vue` and integrate optional `cashier` field in `PosOrderItem` for cashier details within orders.
- Extend `PosDepartmentStepMobile2.vue` with methods to fetch and handle last vehicle orders (`fetchLastOrder`, `fetchLastOrderItems`) and dynamic state updates for last orders.
- Implement watchers for `primaryItem` and `lastOrders` in `PosDepartmentStepMobileFlow.vue` to enhance order item and state handling logic.
- Update `PosDepartmentStepMobile2LastOrder.vue` to support custom date formatting using session utilities.
- Add helper functions and utilities for vehicle and order management, including `selectLastVehicleOrder` and enhanced addon handling.
2025-08-21 13:18:15 +02:00
Jeppe Bundgaard f50c42bb50 Add last order handling and dynamic label updates in PosDepartmentStepMobile2.vue and related components:
- Introduce `lastOrder` prop in `PosDepartmentStepMobile2LastOrder.vue` for handling last vehicle orders.
- Add computed properties for dynamic label (`displayLabel`) and subtitle (`displaySubtitle`) updates based on `lastOrder`.
- Update `PosSearchResult` and `PosVehicle` types to include `lastOrderId` and `washSubscription` fields.
- Refactor `onAutomaticSelection` in `PosDepartmentStepMobile1.vue` to enhance vehicle selection logic with additional metadata.
2025-08-21 09:45:10 +02:00
Jeppe Bundgaard a9a3361e64 Add PosOrderItem type definition in PosOrderItem.vue for order item handling in mobile POS workflow:
- Introduce detailed properties for order items, including product details, notes, pricing, and timestamps.
- Add support for optional fields to accommodate dynamic order item customization.
2025-08-21 08:38:50 +02:00
Jeppe Bundgaard 6afd425665 Add PosOrder type definition in PosOrder.vue for order handling in mobile POS workflow:
- Introduce `PosOrder` type with detailed properties including IDs, timestamps, and order item associations.
- Add support for dynamic order customization with optional fields and item arrays.
2025-08-21 08:38:43 +02:00
Jeppe Bundgaard 415dd30c2e Add last vehicle orders handling in PosDepartmentStepMobileFlow.vue:
- Introduce `lastVehicleOrders` for storing historical data of vehicle orders.
- Add methods `setLastVehicleOrder` and `getLastVehicleOrder` for managing vehicle order state.
- Implement `resetLastVehicleOrders` for clearing vehicle order history.
- Update reset functionality to include resetting last vehicle orders.
- Enhance persistence mechanism with last vehicle orders storage and restoration support.
- Add watchers for last vehicle orders to trigger state saving.
2025-08-21 08:38:28 +02:00
Jeppe Bundgaard 5cf98a0c49 Add close event to "Add vehicle" button in PosDepartmentStep1MobileManualInput.vue. 2025-08-20 15:57:11 +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 012594a914 Update mobile POS step for product selection and vehicle toggle:
- Add product selection event handling with `@addProduct` in `PosDepartmentStepMobile2Products.vue` and child components.
- Enhance `PosDepartmentStepMobile2Addons` with support for dynamic addon rendering.
- Adjust `vehicleSelection` default state in `PosDepartmentStepMobileFlow.vue`.
- Refactor button click functionality and product addition logic in `PosDepartmentStep2MobileVehicleSelection.vue`.
2025-08-19 14:21:16 +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 d5242aad18 Enhance mobile POS step with license plate scanning and vehicle registration handling:
- Add real-time frame capture, automatic vehicle lookup, and registration assignment in `PosDepartmentStepMobile1.vue`.
- Integrate `RegistrationNumberSearchResult.vue` for auto-selection and improved search handling.
- Extend `ScannerCamera.vue` with interval-based frame capture and lifecycle handling for camera mount/unmount.
- Improve active vehicle state management, indexing, and UI responsiveness for multi-vehicle workflows.
- Add computed properties and dynamic customer status handling for seamless integration of license plate recognition results.
2025-08-18 16:46:03 +02:00
Jeppe Bundgaard 6412d0f504 Add OpenAI configuration module and superuser integration:
- Introduce `OpenAI` module in `superUser` with configuration management (`Config.vue`, `OpenAI.vue`).
- Add `ConfigurationOpenAI.vue` for superuser dashboard, enabling settings management for OpenAI integration.
- Update `router.js` and superuser navigation for OpenAI configuration paths.
- Enhance `SuperUserDashboardConfigurationNavigation.vue` with OpenAI entry.
- Integrate general settings and API key handling in the OpenAI configuration UI.
2025-08-18 11:35:09 +02:00
Jeppe Bundgaard 7132dd8f46 Add product category and selection handling to mobile POS:
- Introduce product and category-related components including `GenericTag.vue`, `PosDepartmentStepMobile2Categories.vue`, and `PosDepartmentStepMobile2Products.vue`.
- Enhance `PosDepartmentStepMobile2.vue` with vehicle selection, long-press functionality for primary products, and dynamic product rendering.
- Add `PosProduct` and `PosCategory` object types for structuring API calls and maintaining state.
- Refactor UI for consistent styling and streamlined user interaction with category-based product listing.
2025-08-13 17:21:33 +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
Jeppe Bundgaard 9dcbfe298a Add BarcodeScanner.vue and VerifiedCustomer.vue icons, enhance POS mobile workflow:
- Introduce `BarcodeScanner.vue` and `VerifiedCustomer.vue` for improved visual elements in the POS module.
- Implement manual registration input flow in `PosDepartmentStepMobile1.vue` with `PosDepartmentStep1MobileManualInput.vue` for enhanced user flexibility.
- Add responsive button width adjustments in `GenericButton.vue` for consistent styling.
- Refine `ScannerCamera.vue` frame capture logic and improve header background integration with `ViewportHeaderSettings.vue`.
- Ensure dynamic background color via `Viewport.vue`.
2025-08-06 15:16:22 +02:00
Jeppe Bundgaard cdbca11f39 Integrate real-time frame capture and image parsing for license plate scanning:
- Enhance `ScannerCamera.vue` with `update:frame` event for real-time frame data emission.
- Add `parseImage` method in `PosDepartmentStepMobile1.vue` for image parsing and server-side license plate recognition API call.
- Improve video resolution, canvas handling, and frame capturing logic in `ScannerCamera.vue`.
- Update UI with fixed background styling, semi-transparent overlay, and improved scanner visibility.
- Refactor canvas dimensions to match video size dynamically and optimize frame rendering for better performance.
2025-08-06 10:53:00 +02:00
Jeppe Bundgaard 7a3b66cb53 Add OcrSpace configuration module and superuser integration:
- Introduce `OcrSpace` module in `superUser` with configuration management (`Config.vue`).
- Add `ConfigurationOcrSpace.vue` for superuser dashboard, enabling settings management for OcrSpace integration.
- Update `router.js` and superuser navigation for OcrSpace configuration paths.
- Enhance `SuperUserDashboardConfigurationNavigation.vue` with OcrSpace entry.
- Integrate general settings and API key handling in the OcrSpace configuration UI.
2025-08-06 10:51:58 +02:00
Jeppe Bundgaard c0d085fdfd Enhance ReaderTest.vue with improved OCR logic and canvas processing:
- Adjust image range for focused testing on a single image.
- Add grayscale conversion to canvas for better OCR accuracy.
- Increase canvas resolution and styling for grid generation.
- Optimize combined canvas handling for license plate detection.
- Remove redundant console logs for cleaner debugging.
2025-08-05 12:43:23 +02:00
Jeppe Bundgaard d681fb52cb Add ReaderTest.vue, ReaderReliabilityTest.vue, and LetterReader.vue for OCR and license plate testing:
- Introduce `ReaderTest.vue` for handling canvas-based image processing and OCR integration.
- Add `ReaderReliabilityTest.vue` as a test page for reader reliability under department dashboards.
- Implement `LetterReader.vue` for real-time license plate recognition using `tesseract.js` and video feed.
- Enhance `ScannerCamera.vue` with improved frame capturing logic.
2025-08-05 11:27:37 +02:00
Jeppe Bundgaard da7d1d86d6 Introduce mobile-first POS department step and header transparency enhancements:
- Add `PosDepartmentStepMobile1.vue` for mobile-specific POS workflows with registration number inputs.
- Implement header transparency logic with `isTransparent` state in `ViewportHeaderSettings.vue`.
- Update `MobileHeader.vue` styling for better visual clarity using blur and transparency effects.
- Extend `PosDepartmentMVP.vue` with responsive design using `ViewportResponsiveWrapper`.
- Enhance `ScannerCamera.vue` and `ScannerOutline.vue` with surrounding blur effects for improved UI/UX focus during scanning.
2025-08-04 14:30:22 +02:00
Jeppe Bundgaard 4cd8d9dc40 Add logout functionality and desktop header:
- Introduce `DesktopHeader.vue` for improved navigation on larger screens.
- Add `Logout.vue` to handle user logout with redirection to login.
- Update `router.js` to include logout route.
- Enhance `NavigationMenuItemsAdmin.vue` with a "Sign out" menu option.
- Refactor `NavigationMenuItem.vue` to handle visibility based on item type.
- Update `LoginQR.vue` with new text for better user clarity.
2025-08-04 12:48:38 +02:00
Jeppe Bundgaard 3ace2f9018 Add department selection and update navigation logic:
- Introduce `NavigationMenuDepartment.vue` for selecting and switching between departments.
- Enhance `SessionUser.vue` with `selectDepartment` method for URL updates and access control.
- Update `NavigationMenuItemsAdmin.vue` with `type: 'department'` entries and improved department-specific routing.
- Refactor `NavigationItem.vue` with new `type` property for navigation flexibility.
- Integrate department selection into `MobileHeader.vue` for responsive usage.
2025-08-04 11:48:17 +02:00
Jeppe Bundgaard a81c18ded3 Add permissions and badge logic for navigation items:
- Extend `NavigationMenuItemsAdmin.vue` with new menu entries and permission-based visibility.
- Implement badge structure and default badge logic for `NavigationItem.vue`.
- Update `AdminLeftMenu.vue` permissions for better control.
- Add computed visibility and badge display logic in `NavigationMenuItem.vue`.
- Enhance app initialization in `App.vue` with `onMounted` lifecycle method.
2025-08-04 09:15:44 +02:00
Jeppe Bundgaard ecbbef8d29 Add admin navigation menu and enhance component flexibility:
- Introduce `NavigationMenuItemsAdmin.vue` and `NavigationMenuAdmin.vue` for admin-specific navigation.
- Improve computed logic in `NavigationMenuItems.vue` with `routeStartsWithAdmin` for better route handling.
- Wrap content in `Viewport` for improved layout in `DefaultPageWrapper.vue`.
- Update `FormDisplay.vue` to support multiple select fields.
- Adjust styling and slot behavior across various components for flexibility and responsiveness.
2025-07-31 15:33:16 +02:00
Jeppe Bundgaard 2eb14a68df Enhance login and register flows, update navigation menu:
- Wrap `Login.vue` in `Viewport` for responsive design.
- Add external redirect logic to `Register.vue` and replace static content with `PageLoader`.
- Update `NavigationMenuItemsGuest.vue` with new menu options (`Opret bruger`, `Book vask med reference`).
2025-07-31 14:58:24 +02:00
Jeppe Bundgaard 56414a929a Add navigation menu components and improve mobile responsiveness:
- Introduce `NavigationMenuItems.vue` for managing navigation menu structure.
- Add new modular components for mobile navigation (`MobileNavigation`, `MobileHeader`) with expandable menu functionality.
- Incorporate `ViewportHeaderSettings.vue` to manage header state and actions.
- Implement guest-specific navigation with `NavigationMenuItemsGuest.vue` and `NavigationMenuGuest.vue`.
- Enhance `XLVaskPage.vue` by wrapping the dashboard in a responsive `Viewport`.
- Refactor header alignment and add toggle functionality for mobile navigation menus in `MobileHeader.vue`.
2025-07-31 14:38:18 +02:00
Jeppe Bundgaard 20bdaf9bc1 Add scanner functionality and reusable button component:
- Introduce `ScannerInstructions.vue` for user guidance during scanning.
- Add `GenericButton.vue` as a flexible button component with default, disabled, and white styles.
- Implement `ScannerCamera.vue` to handle camera activation and video frame capture.
- Update `LoginQR.vue` with scanner, instructions, and button integrations.
- Add `tesseract.js` dependency in `package.json` and `package-lock.json` for future OCR capabilities.
2025-07-31 09:22:20 +02:00
Jeppe Bundgaard d641bb8e37 Add QR login functionality and scanner components:
- Introduce `LoginQR.vue` with QR-based login layout.
- Add scanner outline components (`ScannerOutlineTopLeft`, `ScannerOutlineTopRight`, `ScannerOutlineBottomLeft`, `ScannerOutlineBottomRight`, and `ScannerOutlineLoader`) to enhance the QR scanning interface.
- Include reusable `ScannerOutline` for structured scanning visuals.
- Update `router.js` to add `/login/qr` route with guest middleware.
- Clean up imports in `App.vue` for consistency.
2025-07-30 15:28:24 +02:00
Jeppe Bundgaard 32c47d6800 Add responsive viewport components and improve layout handling:
- Introduce reusable viewport components (`Viewport`, `ViewportTypes`, `ViewportResponsiveWrapper`) for responsive layouts.
- Add separate content components for mobile, tablet, and desktop (`MobileContent`, `TabletContent`, `DesktopContent`, `DefaultContent`).
- Implement `ViewportHeader` with `MobileHeader` for mobile navigation support.
- Replace `GuestDashboardPageWrapper` with `Viewport` in `PWADownload.vue` for better adaptability.
- Refine layout logic and improve maintainability across updated components.
2025-07-30 12:59:29 +02:00
Jeppe Bundgaard 2fb538d207 Enhance PWA manifest configuration and update dependencies:
- Add custom manifest properties (`id`, `display`, `start_url`, `scope`, `orientation`, `launch_handler`).
- Include `@bubblewrap/cli` dependency for improved PWA tooling integrations in `package-lock.json`.
2025-07-30 10:23:31 +02:00
Jeppe Bundgaard 1b2d0529e4 Improve header alignment and responsive layout in DefaultPageWrapper.vue:
- Adjust column spacing for better alignment on mobile and desktop.
- Refine `UserNavigationTop` styling for improved responsiveness.
2025-07-29 18:05:54 +02:00
Jeppe Bundgaard e7a7e10856 Remove redundant is-multiline class from mobile-centered columns in DefaultPageWrapper.vue. 2025-07-29 17:56:00 +02:00
Jeppe Bundgaard ef86819532 Add PWA support and responsive layout improvements:
- Integrate `vite-plugin-pwa` with automatic updates and manifest configuration for PWA support.
- Create `PWADownload.vue` component to guide users on installing the app.
- Add `/download` route in `router.js` for accessing the PWA download page.
- Improve responsive layout handling in `DefaultPageWrapper.vue` for better mobile adaptation.
- Update dependencies in `package.json` and `package-lock.json` to reflect PWA integration.
2025-07-29 17:53:14 +02:00
Jeppe Bundgaard b942fb08f2 Refactor components to improve reusability and maintainability:
- Add `defineComponent` and `setup` to standardize component declarations across multiple components.
- Introduce `scheduleReload` in `XLVaskUsagePagination` for better date filter handling.
- Update `PaginationDisplayTemplateDate` logic to emit formatted date on selection with improved logging.
- Enhance type safety using `RouteLocationRaw` in `NavigationItem.vue`.
- Add empty `<template>` sections where necessary for consistency.
- Refine `PaginationDisplayIsSmall` with `defineComponent` and props for better adaptability.
2025-07-29 15:46:06 +02:00
Jeppe Bundgaard ba80528459 Add regret action and date filter functionality:
- Introduce `regret` translation key in `ObjectsGlobal.vue`.
- Update logic in `XLVaskUsagePagination` to set filters for `date_from` and `date_to`.
- Adjust `isNotEqual` action in `XLVaskUsageOrdersTable` to toggle comparing state and use the new `regret` translation dynamically.
- Refine comments and UI labels for enhanced clarity.
2025-07-29 15:09:29 +02:00
Jeppe Bundgaard 3dac234fba Add invoicing progress bar, enhance date selection, and update navigation for superuser dashboard:
- Integrate `InvoicingBillingPeriodInvoiceProgressBar` for improved visual feedback during invoicing processes.
- Implement reusable date selection components with `PaginationDisplayTemplateDate` and `PaginationDisplayTemplateDates` for enhanced flexibility in date filtering.
- Add `NavigationMenuSuperUser` to improve navigation structure for superuser dashboard.
- Refactor related components with helper methods for better maintainability.
- Include `vue-toast-notification` to provide dynamic notifications.
- Update translations and adjust UI components to align with new functionality.
- General fixes to maintain code modularity and reusability.
2025-07-29 10:51:42 +02:00
Jeppe Bundgaard 2819c2d923 Comment out unused transaction tab in CollectedOrderInvoices.vue and replace Orders with InvoiceOrdersPagination in Orders.vue for improved maintainability. 2025-07-24 09:58:01 +02:00
Jeppe Bundgaard 26338c4f71 Refactor session handling with SessionUser helper methods:
- Streamline access control logic in middleware files with new `hasToken` and `canAccessGuest` methods.
- Rework `DefaultPage` to dynamically redirect users based on hierarchical access levels.
- Improve guest user redirection by integrating query-based redirect paths.
- Enhance maintainability and reduce reliance on `localStorage` for session validation.
2025-07-24 09:49:12 +02:00
Jeppe Bundgaard d66c237106 Add autoExpandAll functionality to OrdersTable and InvoiceOrdersPagination. Enhance UI with expand/collapse toggle for invoice collections. Refactor dropdown logic for improved behavior when auto-expand is active. Update language pack with relevant translations. 2025-07-23 10:13:45 +02:00
Jeppe Bundgaard c09a656740 Add import functionality to XLVaskUsagePagination with a new importUsageButton. Refactor order creation in XLVaskUsageOrdersTable to streamline handling of order items and remove unnecessary logs. 2025-07-21 16:47:37 +02:00
Jeppe Bundgaard 05ec021173 Enable inline editing in OrderItemsTable with allowEdit and setItemValue props. Add editing state management to XLVaskUsageOrdersTable and utilize SessionUser helper methods for enhanced data formatting. 2025-07-21 13:30:29 +02:00
Jeppe Bundgaard 5390837951 Enhance OrderItemsTable and XLVaskUsageOrdersTable by integrating duplicate management, comparison actions, and dynamic labels from SessionUser. Introduce new helper methods for order handling and update UI for better clarity. 2025-07-21 13:12:09 +02:00
Jeppe Bundgaard 683976b331 - Add toggle functionality to WhiteBoxCard component with toggleable and defaultOpen props.
- Refactor `getPicture` method into a new `Piktogrammer.vue` module to improve reusability.
- Introduce `XLVaskUsagePagination` and `DepartmentPosSyncDuplicates` for enhanced pagination and duplicate management.
- Update `router.js` to include new routes for managing duplicates under POS sync.
- Clean up unused image imports in `SelectProductsFormPOS.vue`, utilizing the new picture module.
- General fixes and adjustments to improve modularity and maintainability.
2025-07-17 16:24:49 +02:00