- Introduced new SVG icons for Kanban and Timeline to enhance visual representation in the dashboard.
- Expanded App.css with new styles for the Kanban component, improving layout and responsiveness.
- Updated various dashboard components to integrate the new ObjectListViewPageContent for better view management and consistency across the application.
- Updated DashboardBreadcrumb to display a more informative name by incorporating the view name alongside the model label, improving user navigation clarity.
- Enhanced ObjectListViewProvider to synchronize the active view name with the dashboard breadcrumb, ensuring consistent view representation across components.
- Introduced session management for object list views in TableStateContext, allowing for persistent view states across user sessions.
- Removed unnecessary state management for masterFilter and masterSort in ObjectTable, streamlining filter handling.
- Updated ObjectListViewContext to simplify view state restoration logic, enhancing clarity and maintainability.
- Adjusted references to masterFilter throughout ObjectTable to ensure consistent filter application.
- Updated ListViewEditButtons to disable actions during initial loading, improving user experience.
- Refactored ListViewTabs to adjust icon styles based on loading state and removed unnecessary imports for cleaner code.
- Modified ObjectListViewContext to use viewId instead of view reference for better clarity and consistency.
- Updated TableStateContext to reflect changes in view parameter naming, enhancing code maintainability.
- Adjusted App.css for improved styling of segmented navigation items and loading indicators.
- Updated multiple dashboard components (Invoices, PaymentPolicies, Payments, TaxRecords, FilamentStocks, OrderItems, PartStocks, ProductStocks, PurchaseOrders, Shipments, StockAudits, StockEvents, StockLocations, StockTransfers, AppPasswords, AuditLogs) to incorporate ListViewTabs and ListViewEditButtons for enhanced user interaction.
- Introduced ObjectListViewProvider to manage view state and filter/sort changes across components, improving maintainability and user experience.
- Added state management for active views and filter/sort handling to streamline component functionality.
- Integrated Badge component to display the count of active sorters in the SortSidebarButton.
- Utilized useLocation and useTableState hooks to manage sorting state based on the current route.
- Updated TableStateContext to include pageSorters state and setPageSorter function for improved sorting functionality across the dashboard.
- Introduced new utility functions in ObjectSelect for tree node searching and value validation, improving data handling and user experience.
- Enhanced ObjectSelect component to manage object updates and reloading logic more effectively, ensuring accurate state representation.
- Added subscription capabilities for all object updates in ApiServerContext, allowing for real-time updates across components.
- Refactored existing methods to improve clarity and maintainability, enhancing overall performance of the dashboard components.
- Updated filter structure in fetchObjects calls within ApiServerProvider to remove unnecessary object notation, enhancing code clarity and maintainability.
- Streamlined data fetching logic for user notifiers, improving overall performance and readability of the context component.
- Updated FilterInput, FilterSidebar, ObjectTable, SimpleDateTimePropertyFilter, and SimplePropertyFilter components to support new filter and masterFilter props, improving data filtering capabilities.
- Introduced ObjectTableFilterContext for better state management of filter values across components, enhancing the overall user experience.
- Refactored getModelPropertyValues function in ApiServerContext to accept filter parameters, allowing for more dynamic data fetching based on user-defined filters.
- Improved loading and visibility handling in SimpleDateTimePropertyFilter and SimplePropertyFilter to optimize performance during data retrieval.
- Introduced DashboardOverviewPage and DashboardOverviewFlexColumns components to streamline the layout and management of dashboard sections, improving overall organization and usability.
- Replaced individual collapsible sections in Finance, Inventory, Production, and Sales overviews with a unified structure, enhancing maintainability and consistency across the dashboard.
- Added ActionsButton component for improved action handling and keyboard shortcuts, enhancing user interaction capabilities.
- Updated styles in App.css to support new drag-and-drop functionality and layout features, ensuring a cohesive visual experience.
- Refactored existing components to utilize the new structure, improving code clarity and reducing redundancy.
- Introduced a new function to handle reconnection attempts when the socket is disconnected, improving the robustness of the connection management.
- Updated the visibility change and window focus event handlers to utilize the new reconnection logic, ensuring better handling of socket states during user interactions.
- Enhanced the subscription management for activity listeners when the page becomes visible, improving responsiveness and user experience.
- Introduced normalizeAxiosBlobError function to handle and normalize errors from Axios when the response data is a Blob.
- Updated error handling in the ApiServerProvider to utilize the new normalization function, improving error reporting and user feedback.
- Enhanced the Accept header in API requests to support both image and JSON responses, ensuring better compatibility with different content types.
- Added state management for connection issues, including reconnect progress and attempts, to enhance the robustness of the API server connection.
- Introduced functions to handle reconnect scheduling, countdowns, and teardown of socket connections, improving error handling during disconnections.
- Updated the connectToServer function to manage socket connections more effectively, ensuring a smoother user experience during connectivity issues.
- Enhanced the disconnect event handling to provide better feedback and state management when the API server is disconnected.
- Removed the delete action from various components including InvoiceInfo, PaymentInfo, and others to streamline functionality.
- Introduced a new DeleteObject component to handle deletion logic in a centralized manner, enhancing code maintainability.
- Updated models to utilize the new DeleteObject component for consistent deletion handling across the application.
- Simplified ObjectForm by eliminating the previous delete modal, improving component structure and clarity.
- Introduced a new setting for showNavigationLabels in the ThemeContext to manage the visibility of navigation labels.
- Updated the Settings component to allow users to toggle navigation labels and persist this setting.
- Modified the DashboardNavigation component to conditionally render navigation labels based on user preference.
- Adjusted App.css to improve styling for navigation items when labels are hidden.
- Updated App.css to refine styling for object display tags and introduced a border for better visual distinction.
- Enhanced NewDocumentJob component by adding a default quantity value for improved user experience.
- Introduced PrinterQueue component to manage and display printer job queues, enhancing the ControlPrinter functionality.
- Improved MissingPlaceholder component with additional props for customizable border and padding options.
- Adjusted ObjectDisplay and ObjectList components for better layout and interaction, including cursor changes for clickable elements.
- Updated ThemeContext to manage new color variables for consistent theming across components.
- Introduced PDFPreview and PDFViewer components to facilitate PDF rendering and interaction within the dashboard.
- Implemented zoom and pan functionalities in PDFPreview for improved user experience.
- Enhanced App.css with styles for a new overlay during PDF loading, ensuring a smooth visual transition.
- Updated TemplatePreview to integrate PDF viewing capabilities, allowing users to preview PDF documents seamlessly.
- Modified ApiServerContext to support asynchronous PDF downloads, improving document handling efficiency.
- Added a new helper function 'renderDocumentTemplate' to the fcTemplateHelpers for improved document rendering capabilities.
- Introduced 'mapObjectFiltersForQuery' function to streamline filter mapping in API requests, enhancing code readability and maintainability.
- Updated API server context to utilize the new filter mapping function, improving data fetching logic and consistency in handling object filters.
- Refactored sorting parameters in API requests to use 'sortProperty' and 'sortOrder' for better clarity and alignment with naming conventions.
- Updated the NewDocumentSize component to include additional default values for print padding and padding dimensions (left, right, top, bottom).
- Modified the ApiServerProvider to pass padding parameters in API requests, ensuring consistent handling of new padding options.
- Expanded the DocumentSize model to incorporate new fields for print padding and padding dimensions, enhancing the document size configuration capabilities.
- Introduced DashboardObjectToolsContext and DashboardObjectToolsProvider for managing object tools state within the dashboard.
- Added ChevronLeftIcon and ChevronRightIcon components for navigation buttons, enhancing user interface consistency.
- Updated ObjectTableNavigationButtons to utilize new chevron icons and improved layout for better user experience.
- Refactored KeyboardShortcut and Tooltip components for cleaner code and improved functionality.
- Added a new KeyboardKey component for consistent keyboard key styling across the application.
- Introduced KeyboardShortcut component to wrap buttons with keyboard shortcut hints, improving user accessibility.
- Enhanced Tooltip and CursorTooltip components to support a hideBorder prop, allowing for customizable tooltip appearances.
- Updated CSS styles for keyboard keys in light and dark modes, ensuring visual consistency and improved user experience.
- Introduced useRef hooks to store references for fetchNotifications, authenticated, and connected states, improving performance and reducing unnecessary re-renders.
- Updated useEffect hooks to utilize the refs for fetching notifications, enhancing clarity and responsiveness to state changes while maintaining functionality.
- Removed the useEffectEvent for fetching notifications and integrated the fetching logic directly into the useEffect hooks for improved clarity and performance.
- Updated dependency arrays to ensure notifications are fetched correctly based on authentication and connection status, enhancing responsiveness to state changes.
- Reduced fade-out duration for tooltips from 500ms to 250ms and hide delay from 100ms to 10ms for improved responsiveness.
- Updated DashboardSidebarSplitter to include a new class for the content panel, enhancing layout flexibility and styling consistency.
- Adjusted CSS for cursor tooltip transitions to provide a smoother visual experience.
- Updated the CursorTooltip component to accept a new `visible` prop, allowing for better control over tooltip visibility.
- Refactored tooltip rendering logic to utilize CSS transitions for smoother fade-in and fade-out effects, improving user experience.
- Enhanced TooltipContext to manage tooltip visibility state and timing, ensuring consistent behavior during interactions.
- Updated CSS styles for the cursor tooltip to support new visibility transitions, enhancing visual feedback.
- Introduced a new Tooltip component to standardize tooltip functionality across the application, improving consistency and usability.
- Refactored existing components to utilize the new Tooltip implementation, enhancing user interactions with clearer feedback.
- Added a CursorTooltip for dynamic tooltip positioning based on mouse movement, improving user experience.
- Updated CSS styles for tooltips and related components to enhance visual clarity and responsiveness.
- Integrated TooltipProvider to manage tooltip state and visibility, streamlining tooltip management across the application.
- Consolidated JavaScript completion sources into a new module, improving organization and maintainability.
- Updated the `fcTemplateLang` to utilize the new `javascriptCompletionSources` for enhanced autocomplete capabilities.
- Removed redundant imports and streamlined the code in various components, including Invoices, Payments, TaxRecords, and Inventory sections, by replacing dropdown actions with a unified `ObjectActions` component.
- Improved the handling of object actions across multiple inventory and finance components, enhancing user experience and code consistency.
- Introduced a new utility function, capitalizeFirstLetter, to standardize label formatting in ObjectForm.
- Enhanced error handling in ObjectForm by providing more descriptive error messages related to editing and fetching objects.
- Updated ApiServerContext to handle forbidden access scenarios with a dedicated modal, improving user experience during permission errors.
- Refactored state management in ObjectForm to streamline loading and editing states, ensuring better performance and clarity.
- Improved overall code readability and structure in both components.
- Updated ObjectList to accept a new prop, showHyperlink, allowing for conditional rendering of hyperlinks for object items.
- Modified ObjectProperty to pass the showHyperlink prop to ObjectList and ObjectSelect components, enhancing their functionality.
- Improved error handling in ApiServerContext by adding detailed logging for error responses.
- Updated various database models to include showHyperlink attribute for object lists, improving user navigation and interaction.
- Enhanced CSS styles for the permissions matrix table to improve visual clarity and user experience.
- Added error line highlighting functionality in CodeBlockEditor and ObjectProperty components to visually indicate errors in code.
- Introduced a new EJSErrorFormatter component in TemplateEditor for better error message display.
- Updated App.css with new styles for error lines and various color classes for improved visual feedback.
- Enhanced ThemeContext to support dynamic text color based on theme mode.
- Introduced MagicWandIcon component using SVG for enhanced visual representation in the TemplateEditor.
- Updated TemplateEditor to include a button for formatting template content, utilizing the new fetchTemplateFormat function from ApiServerContext.
- Enhanced DocumentTemplateDesign to pass necessary props to TemplateEditor for improved functionality.
- Refactored CodeBlockEditor to support an additional value prop for better code handling.
- Simplified fetchTemplatePDF function by consolidating parameters into a single line for better readability.
- Updated userNotifier fetch queries to use nested object syntax for improved clarity and consistency in data retrieval.
- Enhanced overall code maintainability by reducing unnecessary line breaks and optimizing filter structures.
- Updated the download functionality in NewDocumentJob to use a unified downloadTemplate method, supporting multiple file formats (PDF, PNG, JPEG, SVG).
- Improved error handling in ApiServerContext by adding getTemplateErrorFromResponse and triggerFileDownload functions for better response management.
- Refactored fetchTemplatePDF to utilize fetchTemplateDownload for streamlined code and improved maintainability.
- Cleaned up ObjectDisplay component by removing unnecessary line breaks for better readability.
- Updated multiple components including InvoiceInfo, PaymentInfo, TaxRecordInfo, and various stock-related components to use getModelByName for constructing master filters.
- Improved code consistency and readability by replacing hardcoded parent ID references with dynamic model prefixes.
- Cleaned up unnecessary whitespace and optimized component structure for better maintainability.
- Introduced a new ElipsisText component to manage text overflow and truncation more effectively.
- Replaced instances of the Text component with ElipsisText across various components including AddressDisplay, EmailDisplay, and FileList for consistent text handling.
- Updated styles in multiple components to ensure proper layout and responsiveness when displaying long text.
- Introduced useEffectEvent for handling notification fetching based on authentication and connection status.
- Simplified the useEffect dependencies for fetching notifications when the notification center is opened.
- Removed unused token from context to streamline the NotificationProvider component.
- Introduced SortSidebarButton to enable sorting in Invoices, Payments, TaxRecords, and Inventory components.
- Integrated useSortSidebarVisibility hook to manage sort sidebar visibility state.
- Updated relevant components to include sorting capabilities, enhancing user experience and data management.
- Added styling for `.ant-drawer-mask` to match the existing `.ant-modal-mask` backdrop filter.
- Updated the positioning of `.electron-body .ant-drawer` to align with modal adjustments, ensuring a cohesive layout across components.
- Updated MessageContext to adjust message positioning in the Electrobun desktop application, ensuring messages clear the custom title bar.
- Introduced a conditional MESSAGE_TOP value based on the desktop environment, improving the user experience for desktop users.
- Introduced a new mechanism to track the active update stage using an index, allowing for better handling of out-of-order progress events.
- Simplified status determination functions for download, install, and restart stages, enhancing clarity and maintainability.
- Updated the rendering logic to ensure accurate display of progress and status messages, improving user experience during updates.
- Adjusted modal width in AppUpdateContext for better layout consistency.
- Refactored the `formatFullAppVersion` function for better readability and maintainability.
- Updated modal components in `AppUpdateProvider` to set `closable` to false, enhancing user experience during update notifications.
- Introduced a new function `formatFullAppVersion` to standardize the application version and build number representation.
- Updated the `getUpdateInstalledMessage` function to provide detailed feedback on updates, including changes in version, branch, and engine.
- Refactored the update handling logic to improve clarity and maintainability, ensuring users receive accurate and informative update notifications.
- Updated imports in ObjectTable and ObjectTableNavigationButtons to include getActiveFilterValues from TableStateContext.
- Simplified the useTableStatePersistence hook calls by removing unnecessary destructured values.
- Enhanced navigation button handlers with useCallback for better performance and readability.
- Added keyboard shortcuts for previous and next navigation, improving user experience.
- Simplified the `isElectron` function to directly return the result of `isElectrobunBridgeReady` or `isElectrobunDesktop`.
- Removed redundant checks and consolidated URL opening logic to enhance clarity and reduce code duplication.
- Updated event handling for Electron-specific features to utilize the desktopBridge API, improving maintainability and performance.
- Updated state management for duplicate installations by setting default values to null, simplifying the logic for handling duplicates.
- Changed the initial state of duplicatePromptOpen to false, improving the user experience by preventing unnecessary prompts on load.
- Updated the state management for duplicate installations to include specific paths, enhancing clarity for users.
- Modified modal titles to include icons for better visual representation of update statuses.
- Adjusted modal properties for improved user experience during duplicate installation prompts.
- Updated `AppUpdateProvider` to handle errors during startup checks for app updates and duplicate installations, improving robustness.
- Refactored logic to ensure duplicate installation checks are integrated into the update process, providing clearer feedback to users.
- Adjusted modal visibility conditions for duplicate installation prompts to streamline user experience.