- Introduced ObjectChildCards component to manage recipients in the NewEmailMessage and EmailMessageInfo components, allowing for better organization and display of recipient information.
- Updated EmailMessageInfo to include a collapsible section for recipients, enhancing user experience by providing clear visibility of recipient details.
- Refactored email recipient handling in NewEmailMessage to utilize candidatesToRecipients for improved recipient management and validation.
- Enhanced EmailSendButton to accommodate the new recipients structure, ensuring proper data flow and functionality.
- Improved utility functions for email recipient resolution, streamlining the process of fetching and managing recipient data.
- Added 'margin', 'header', and 'footer' to the list of style attributes, allowing for more flexible styling options.
- Updated the logic for 'vertical', 'header', and 'footer' to include boolean values in their attribute definitions.
- Introduced pagination placeholders ('!pageNumber' and '!totalPages') to support dynamic content in templates.
- Implemented a completion source function for placeholders, enhancing user experience by providing context-aware suggestions.
- Integrated InfoActionButtons into multiple components across the Finance and Inventory sections, enhancing user interaction and providing contextual actions for invoices, payment policies, payments, tax records, and various inventory items.
- Updated the respective components to include the new buttons with appropriate object types and list mode settings, improving the overall functionality and user experience in the dashboard.
- Introduced refs to manage scanning state and active host ID, improving control over scan initiation and termination.
- Updated useEffect to handle scanning conditions more effectively, including debouncing stop scan actions.
- Enhanced session management and error handling during network scans, ensuring better user feedback and reliability.
- Cleaned up component lifecycle management to prevent memory leaks and ensure proper resource cleanup.
- Introduced HostDeviceScanner component to facilitate network scanning for document printers and printers.
- Updated NewDocumentPrinter and NewPrinter components to integrate HostDeviceScanner, allowing users to scan for compatible devices based on connection settings.
- Enhanced ObjectInfo displays within both components to improve visibility of connection properties and device information.
- Refactored default values to include connection settings for better initial configuration.
- Added a new CSS class for the PrinterQueue component to adjust the minimum height of the last step item in vertical step layouts.
- Updated the PrinterQueue component to include the new class, improving visual consistency and layout management in the dashboard.
- Upgraded gcode-preview package from version 2.18.0 to 3.0.0-alpha.6, incorporating breaking changes and new features.
- Refactored GCodePreview component to align with the updated API, including changes to color handling and camera management.
- Improved rendering logic to utilize sceneManager for better performance and maintainability.
- Enhanced user interaction by updating event handling and resizing logic in the GCodePreview component.
- Updated value comparison logic in areValuesEqual to handle null values and case insensitivity.
- Introduced load generation tracking to manage asynchronous updates and prevent stale data handling.
- Refactored onTreeSelectChange to improve selection handling for both single and multiple selections.
- Added useEffect hooks to manage state changes based on type and masterFilter updates, enhancing component responsiveness.
- Implemented findObjectById function for better object retrieval from the list, improving performance and clarity.
- Added render mode selection to toggle between 'lines' and 'pipes' for GCode visualization.
- Introduced travel visibility options to show or hide travel paths in the preview.
- Updated rendering logic to reflect changes in user-selected options, improving the flexibility and usability of the GCodePreview component.
- Integrated download progress tracking in the FilePreview component to provide users with real-time feedback during file loading.
- Updated fetchFileContent function in ApiServerContext to support progress callbacks, enhancing user experience during file downloads.
- Refactored rendering logic in FilePreview to display a progress overlay while files are being fetched, improving visual feedback and interaction.
- Wrapped FilePreview in a Spin component to indicate loading state when fetching file data in FileInfo.
- Removed hardcoded color properties from GCodePreview and implemented dynamic theme color support based on user settings.
- Refactored camera and control handling in GCodePreview for improved user interaction and responsiveness.
- Updated File model to include 'extension' field for better file management and sorting capabilities.
- Adjusted formatting in DocumentTemplateInfo component for improved readability and consistency.
- Updated DocumentTemplate and EmailTemplate models to include 'updatedAt' field with appropriate properties for better data tracking.
- Refined file field definitions in both models to enhance clarity and functionality, including master filters and thumbnail support.
- Updated fcTemplateLang to include resourceNames for improved autocompletion in template languages.
- Added resource management capabilities to DocumentTemplate and EmailTemplate models, allowing for dynamic handling of resources.
- Enhanced DocumentTemplateInfo and EmailTemplateInfo components to display and manage resources, improving user interaction and data visibility.
- Refactored related components, including CodeBlockEditor and ObjectProperty, to support resource integration, ensuring consistent functionality across the application.
- Updated field labels in EmailMessage model for clarity, changing 'Recipient' to 'Recipient Email' and 'Recipient Object' to 'Recipient'.
- Added 'Updated At' timestamp field to File model to track modification times, improving data management and auditing capabilities.
- Adjusted button and input styles in TemplatePreview to enhance layout adaptability.
- Changed button width to a minimum of 70px and input width to a range of 120px to 140px, improving user interaction and visual consistency.
- Added usePinchZoom and usePreserveZoomScroll hooks to enable pinch zoom functionality and maintain scroll position during zooming in PDFViewer and TemplatePreview components.
- Introduced a new clampPreviewScale function to ensure zoom levels remain within defined limits.
- Enhanced TemplatePreview with a zoom slider and overlay for better user interaction.
- Updated PDFViewer to handle scale changes and improve rendering performance.
- Refactored related components to support the new zooming features, enhancing overall user experience.
- Introduced a new getRowClassName function to dynamically apply the 'object-table-row-selected' class based on bulk selection criteria.
- Updated the ObjectTable component to utilize the new row class logic, improving visual feedback for selected rows.
- Enhanced CSS styles for selected rows in the dashboard table, providing distinct background colors for better user experience during selection and hover states.
- Integrated BulkObjectActions component across various management and dashboard components for improved batch processing capabilities.
- Updated components including Invoices, PaymentPolicies, Payments, TaxRecords, and multiple Inventory and Management sections to include bulk action functionality.
- Enhanced user experience by allowing users to perform actions on multiple items simultaneously, streamlining workflows and improving efficiency.
- Introduced scaleCssSize function to dynamically adjust CSS sizes based on scaling factor.
- Added responsive width control for the preview document, improving layout adaptability.
- Implemented useLayoutEffect to apply iframe content size based on preview type and width.
- Refactored reloadPreview function to simplify parameters and ensure consistent width handling.
- Enhanced iframe rendering with scaling transformations for better visual representation.
- Updated fcTemplateLang to utilize new helper functions for improved template type handling.
- Introduced typedScope for better autocompletion support in JavaScript language integration.
- Enhanced CodeBlockEditor and TemplateEditor components to support cursor change events and template type management.
- Added fetchTemplateIntellisense function in ApiServerContext for improved intellisense capabilities based on cursor position.
- Refactored related components to ensure consistent handling of template types and cursor changes, enhancing user experience.
- Integrated AuthContext to access user profile permissions.
- Added logic to conditionally display DocumentPrintButton and EmailSendButton based on user permissions, enhancing security and user experience.
- Improved component structure for better maintainability and clarity.
- Introduced new EmailAccounts and EmailMessages components for managing email accounts and messages.
- Implemented ObjectTable for displaying data with filtering and sorting capabilities.
- Integrated InfoActionButtons for enhanced user interactions across various management functionalities.
- Refactored existing components to replace DocumentPrintButton with InfoActionButtons for consistency in action handling.
- Added EmailAccountInfo component for detailed view and management of individual email accounts.
- Added useContext to integrate ApiServerContext for accessing user settings.
- Implemented dynamic dateTimeFormat in the TimeEdit component, improving flexibility based on user preferences.
- Refactored date picker to utilize the new format, enhancing user experience and consistency.
- Added minWidth property to the style of the ObjectProperty component, enhancing layout adaptability and preventing overflow issues in responsive designs.
- Added minWidth property to the TemplateEditor component for better layout control.
- Introduced a responsive toolbar in the TemplatePreview component, utilizing Popover for improved UI on smaller screens.
- Implemented a ResizeObserver to dynamically adjust toolbar settings based on available width, enhancing user experience.
- Refactored toolbar content handling to streamline button interactions and improve accessibility.
- Added a new CSS variable for text placeholder color, improving consistency across themes.
- Updated the ThemeContext to set the new placeholder color based on dark mode settings.
- Enhanced the state handling in Utils.js to include 'overdue' status, improving clarity in state representation.
- Updated the objectData method in SalesOrder and User models to directly return the complete objectData instead of a subset, enhancing data accessibility.
- Improved clarity and maintainability of the objectData function structure in both models, ensuring consistent handling of order and user data.
- Introduced utility functions to standardize value conversion and retrieval, improving consistency in value handling.
- Enhanced synchronization of external values with internal state, ensuring accurate representation of selected items.
- Improved selection change handling to prevent unnecessary updates when no valid selection is made.
- Refactored tree selection logic for better clarity and maintainability, ensuring robust handling of both single and multiple selections.
- Updated the form initialization logic to ensure it accurately reflects the latest default values and computed entries.
- Enhanced the handling of form state synchronization with object data, ensuring consistency during edits.
- Improved validation and reset logic to maintain form integrity when default values change.
- Streamlined the application of computed values to enhance clarity and maintainability of the component.
- Added loading state indication during reconnection attempts in the modal.
- Adjusted modal dimensions and styles based on the reconnection status for better user experience.
- Streamlined the display logic for connection lost messages and reconnection progress, improving clarity and responsiveness.
- Added support for quote tokens in the FilterInput component, allowing for better expression handling.
- Updated QuickPropertyFilters to include new filter options for 'isEmpty' and 'isNotEmpty', enhancing filtering capabilities.
- Improved CSS styles for quote elements to ensure consistent appearance in light mode.
- Adjusted padding in ObjectTimelineItem for better layout consistency.
- Streamlined the JSX structure in the Invoices component for better readability.
- Removed unnecessary line breaks and adjusted indentation for consistent formatting.
- Enhanced the organization of child components within the ObjectListViewProvider for clearer hierarchy.
- Updated lazy loading syntax for component imports across multiple models to enhance code clarity.
- Reformatted content return statements in various components for better readability.
- Adjusted column widths for date fields from 175 to 200 to improve layout consistency across models.
- Ensured consistent formatting and structure in model definitions for better maintainability.
- Added AuthContext to both ObjectKanban and ObjectTimeline components to manage subscriptions based on user authentication status.
- Updated useEffect hooks to conditionally subscribe to updates only when the user is connected and authenticated, improving performance and reliability.
- Refactored dependency arrays in useEffect hooks to include token checks, ensuring proper cleanup and subscription management.
- Introduced a new custom hook, useSidebarWidth, to manage and persist sidebar widths based on user settings, improving user experience and customization.
- Updated ObjectTable to utilize the sidebar width dynamically, enhancing layout responsiveness.
- Implemented visibility logic for vertical scrollbars in the ObjectTable, ensuring better usability during data interaction.
- Enhanced CSS styles for scrollbar transitions and sidebar components, improving visual feedback and interaction.
- Integrated user settings context to dynamically adjust date and time formats in the TimeDisplay component, improving customization based on user preferences.
- Refactored date formatting logic to utilize user-defined formats, ensuring accurate display of date and time based on user settings.
- Improved overall readability and maintainability of the component by streamlining the formatting logic.
- Updated DashboardNavigation to utilize user settings for appearance and navigation label preferences, improving user experience.
- Introduced logic to dynamically set theme mode and density based on user preferences and application settings.
- Refactored useEffect to ensure settings are applied only when user settings are loaded, enhancing performance and reliability.
- Updated ObjectForm to prefer fetched snapshot data over stale objectData when entering edit mode, ensuring accurate state management.
- Enhanced logic to compute next object data based on the latest server data, improving user experience during editing.
- Simplified state change handling by integrating base data checks, reducing potential errors during data updates.
- Removed unused imports and streamlined component structure for better readability.
- Added a new settings schema to manage user and app settings, enhancing configurability.
- Updated state management for settings, including draft and saved settings handling.
- Improved appearance application logic to dynamically adjust theme and density based on user preferences.
- Introduced utility functions for validating and picking settings, ensuring robust settings management.
- Updated lazy loading syntax for component imports to enhance code clarity.
- Reformatted content return statements in SKU components for better readability.
- Added 'overrideCost' and 'overridePrice' fields to SKU models for expanded functionality.
- Adjusted column widths for 'Override Cost' and 'Override Price' fields to improve layout consistency.
- Added new date utility functions for better handling of date ranges, including start and end of month, week, and year.
- Updated FilterInput component to support date unit highlighting and improved tokenization for date expressions.
- Enhanced QuickPropertyFilters to include additional date filter options such as 'Today', 'Yesterday', and relative date ranges.
- Improved CSS styles for date input elements to enhance visibility and user interaction.
- Refactored AuditLogs component to integrate new ObjectTableViewButton for better data representation.
- Introduced a new timeline view in the ObjectTable component, allowing users to visualize data over time.
- Updated view mode utilities to include timeline-specific settings for start and end dates, and color properties.
- Enhanced ObjectTableViewButton to manage timeline settings and integrate timeline icon.
- Added CSS styles for timeline components to improve layout and visual feedback.
- Refactored StateTag component to utilize a utility function for state representation, improving maintainability.
- Added support for viewFilter and isEditing props in FilterSidebar to manage filter states more effectively.
- Updated ObjectTable to handle user overrides for filter and sort states when switching views, ensuring accurate data representation.
- Integrated userOverridesRef to maintain filter and sort states during editing, improving user experience when managing views.
- Adjusted loading logic in ObjectTableNavigationButtons to prioritize effective filters based on active views, enhancing data consistency.
- Added MissingPlaceholder component to ObjectKanban and ObjectTable for improved user feedback when no data is available.
- Updated ObjectKanban to display a custom message when no category property is selected.
- Modified ObjectTable to show MissingPlaceholder when there is no data and lazy loading is not active.
- Introduced height prop to MissingPlaceholder for better layout control.
- Introduced ObjectKanbanColumnResizeHandle and ObjectKanbanColumnResizeOverlay components for better column resizing functionality.
- Updated CSS styles to support new overlays and improve visual feedback during resizing actions.
- Refactored ObjectKanbanSkeletonColumns to utilize the new skeleton structure for enhanced layout and responsiveness.
- Adjusted properties and styles for better content visibility and interaction during resizing.
- Adjusted the positioning of the column resize handle for better alignment and user interaction.
- Modified hover styles for the resize handle to enhance visual feedback during resizing actions.
- Updated dimensions of the list view tabs color dot for a more consistent appearance.
- Changed overflow property in the ObjectKanbanColumnSkeleton to allow for better content visibility.
- Implemented dynamic column resizing in ObjectKanban and ObjectKanbanColumn, allowing users to adjust column widths for better layout control.
- Added drag-and-drop support for reordering columns in ObjectKanbanHeader, improving user interaction and customization of the kanban view.
- Updated CSS styles in App.css to accommodate new resizing handles and visual feedback during drag-and-drop actions.
- Refactored ObjectKanban and related components to manage column states and widths effectively, ensuring a responsive and user-friendly experience.
- Introduced new utility functions for managing updates and filtering in ObjectKanban and ObjectTable, improving data handling during updates.
- Enhanced ObjectKanban to support dynamic reloading of columns based on filter and sort changes, ensuring accurate data representation.
- Updated ObjectKanbanColumn to include item finding and updating capabilities, streamlining item management within columns.
- Refactored ObjectTable to improve item update handling and ensure consistent behavior with kanban view integration.
- Added lazy loading support in ObjectKanbanHeader for better loading state management during data fetching.
- Replaced refs with state variables for container and measure elements to enhance reactivity and maintainability.
- Updated layout effects to utilize new state variables, ensuring accurate measurement and truncation logic.
- Improved cleanup logic in useLayoutEffect to prevent memory leaks and ensure proper event handling for font loading and observers.
- Updated LoadingPlaceholder to accept new props for border and height customization, improving flexibility in loading states.
- Integrated lazy loading functionality across ObjectCard, ObjectKanban, ObjectKanbanColumn, ObjectKanbanHeader, and ObjectTable components, enhancing user experience during data fetching.
- Adjusted rendering logic in ObjectTable to display LoadingPlaceholder when data is being fetched, providing clearer visual feedback to users.
- Refactored prop types in relevant components to include lazy loading options, ensuring consistent API across components.