- Introduced target duration modes (`weeks`, `months`, `years`, `legacy`) with optional cadence.
- Implemented input normalization for department daily targets and progress alerts.
- Added validations for duration cadence and date ranges.
- Updated internationalization strings for new form fields and validation messages.
- Extended tests for goal criteria serialization, normalization, and API payload generation.
- Updated `listShifts` diagnostic modal to include new filters (date range, employee, release state) with improved UI/UX.
- Simplified employee and department lookup diagnostics by removing unnecessary search inputs.
- Standardized error handling and validation messages for shift diagnostics.
- Extended localization files across all supported languages with new diagnostic strings.
- Adjusted Workfeed module logic to reflect updated query parameters (`startFrom`, `startTo`, `employeeID`, `released`).
- Updated and added unit and e2e tests to validate new diagnostic flows and parameter constraints.
- Extend i18n locales to include `company_id` and `company_id_desc` strings for API synchronization.
- Add `CompanyID` field to Workfeed configuration UI in `ConfigurationWorkfeed.vue`.
- Update unit and e2e tests to validate `CompanyID` functionality.
- Adjust Workfeed module logic to handle `CompanyID` get/set operations.
- Implement `Workfeed` module with endpoints for employees, shifts, departments, and diagnostics.
- Add configuration UI for enabling Workfeed, API settings (`api_url`, `api_key`), and integration diagnostics.
- Add unit tests for module schema validation, API endpoints, and diagnostics contract.
- Introduce smoke test for Workfeed configuration and modal diagnostics.
- Extend i18n locales to support Workfeed integration.
- 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.
- Add `AutoTableExportService` for dynamic Excel export button generation and visible row extraction.
- Integrate auto-export initialization in `main.js` for legacy non-paginated tables.
- Extend `PaginationDisplay.vue` with support for paginated Excel export.
- Add export functionality to vehicle views and dependencies, including full-table export handling.
- Add tests for `TableExcelExportService.js`, export workflows, and normalization logic.
- Enhance localization with `download_excel` translation key.
- Add department goal progress retrieval and display in visible result cards.
- Include progress bar, period, and metadata for department goals in the UI.
- Implement caching and lazy loading for department goal data to optimize performance.
- Extend unit tests to cover department goal overview functionality.
- Update translations for department goals in English, Danish, and German locales.
- Add "shouldBypassTextEntryForSystemSearchKey" utility for improved keyboard event handling.
- Implement "scrollSelectedResultIntoView" for precise result focus management.
- Remove grouped summary views and associated settings (e.g., "showGrouped").
- Refactor entity label resolution with "humanize" and "resolveEntityTypeLabel" utilities.
- Simplify result toolbar with a compact layout and improved accessibility.
- Expand locale updates for entity type translations in English, Danish, and German.
- Update unit tests for new navigation logic, label resolution, and result handling.
- Enhance entity alias resolution with extended mappings and alias normalization.
- Add display labels, icons, created timestamps, and cancellation status to result cards.
- Update styles to highlight cancelled results and improve visual hierarchy.
- Expand i18n support for new labels in multiple locales, including `created`, `status`, and `cancelled`.
- Integrate departmental distribution view with monthly breakdowns, filters, and metrics.
- Add support for comparisons, source blends, and allocation trends.
- Update i18n translations for English, Swedish, German, and Norwegian.
- Extend router with distribution-specific routes.
- Add unit tests for route mapping, tabs, and view integrations.
- Update e2e tests for API routes.
- Introduced `ConnectivityIssue.vue` for handling and displaying connectivity problems.
- Added new route for the connectivity issue error page.
- Enhanced accessibility by wrapping table headers in `OrderBookingsTable.vue` with `<thead>` and `<tbody>` tags.
- Included connectivity-related internationalization keys across various locale files.
- Updated components to integrate `ConnectivityIssue` as a fallback display for connection errors.
- Locked versions for `axios`, `sweetalert2`, and `vite` to specific releases.
- Updated multiple Babel helper and plugin packages to newer versions for enhanced functionality.
- Upgraded various esbuild packages and enforced Node.js version >=18 requirement.
- Added missing MIT licenses for dependencies in `package-lock.json` for clarity.
- Integrated 2FA check and handling in user and employee login workflows with `TwoFactorVerify` component.
- Added 2FA setup, enable, and disable functionalities in `UserProfile` and related management views.
- Enhanced internationalization files with 2FA-related translations for multiple locales.
- Created `TwoFactorAuthService.js` to handle API calls for 2FA setup and verification processes.
- Added passkey support for secure, passwordless authentication using WebAuthn.
- Implemented passkey management in user profiles, enabling users to add, rename, and delete passkeys.
- Updated authentication forms to support passkey login, including feature detection and login flow.
- Enhanced internationalization files with passkey-related translations for multiple locales.
- Introduced new components and services for handling passkey operations and WebAuthn interactions.
- Introduced endpoints to handle force enable/disable machine actions (`/modules/self-serve/lane/force/machine/enable`, `/disable`).
- Updated OpenAPI spec to document the new endpoints.
- Extended `DepartmentLane.vue` and `departmentLanesTable.vue` with buttons for force enable/disable, including loading states and toast notifications.
- Added corresponding i18n translations for force control actions.
- Created E2E tests to verify translation keys, non-empty values, and source file functionality in `department-lane-force-machine.spec.js`.
- Updated i18n files to include "Dynamic Image ID" translations.
- Extended `SelfServeTasks` and `DepartmentLanes` with columns for dynamic image and button configurations.
- Integrated new OpenAPI endpoint to generate dynamic images for department lanes.
- Enhanced tables, forms, and dashboards to display and manage new attributes.
- Expanded and improved Danish translations in `da.json` for `auth` and `common` sections.
- Refactored `SubuserLoginForm.vue` to utilize `useI18n` for dynamic text rendering.
- Enhanced i18n key usage for labels and placeholders in the form.
- Introduced `b-loading` component from Buefy for improved loading state visualization in `UserDashboard.vue`.
- Added computed property `isPermissionsLoading` to manage permission loading states dynamically.
- Updated Danish translations in `da.json` for improved clarity and consistency (`customer_creation`, `customer_login`).
- Added extensive Swedish translations for dashboards, reports, bookings, POS components, settings, and common actions.
- Reorganized and expanded i18n keys for greater maintainability and consistency across multilingual support.
- Aligned sv.json with existing `en.json` and `da.json` structures to ensure seamless integration.
- Replaced hardcoded text with dynamic translations using `$t` and `i18n.global.t`.
- Updated `en.json` and `da.json` with new translation keys for SMS notifications, country codes, and related labels.
- Improved multilingual consistency and maintainability across components.
- Added new translation keys (`quantity_sold`) in `en.json` and `da.json` for improved multilingual support.
- Replaced hardcoded labels in `DepartmentDailyReportCount.vue` with computed properties using dynamic translations from `useI18n`.
- Improved maintainability and consistency by centralizing reusable strings.
- Updated `en.json` and `da.json` with comprehensive translation keys for department dashboards, booking reports, tables, and POS components.
- Replaced hardcoded strings with dynamic translations using `$t` in multiple components for multilingual consistency.
- Improved maintainability by organizing and centralizing reusable translation keys.
- Added new translation keys in `en.json` and `da.json` for time bookings (placeholders, labels, and actions) and POS component buttons.
- Improved localization for registration numbers, license plate inputs, and booking flows.
- Replaced hardcoded texts in `ActionSettingsWheelButton.vue` and related components with dynamic translations using `useI18n` for improved multilingual consistency.
- Updated `en.json` with new translation keys for buttons, modals, and action labels.
- Consolidated unused translation keys and improved maintainability by centralizing reusable strings.
- Replaced hardcoded text with dynamic translations using `useI18n` or `$t` across multiple dashboards and components.
- Localized labels, placeholders, titles, subtitles, error messages, table headers, buttons, and actions.
- Extended and centralized translation keys for improved multilingual support and maintainability.
- 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.
- Replaced hardcoded titles, subtitles, and error messages with dynamic translations using `$t` across dashboard and table components.
- Enhanced i18n support by introducing new translation keys for improved multilingual consistency.
- Replaced hardcoded labels and placeholders with dynamic translations using `i18n` across multiple table components (`PosLastScannedLicensePlates.vue`, `InvoiceCollectionsTable.vue`, `ordersSyncTable.vue`, etc.).
- Added comprehensive translation keys for table headers, actions, and states to improve multilingual support.
- Enhanced maintainability by centralizing reusable translation keys.
- Replaced hardcoded labels in `Bookings.vue`, `Orders.vue`, and `Vehicles.vue` with dynamic translations using `i18n`.
- Added comprehensive translation keys for `objects` in `en.json` and `da.json`.
- Improved multilingual support for objects metadata, columns, and labels.
- Replaced hardcoded text in `ObjectsGlobal.vue` with dynamic translations using `i18n`.
- Centralized global translation keys in `en.json` and `da.json` under the `global` namespace.
- Improved multilingual support and maintainability for global object labels and actions.