- Introduced a variable for hovered targets in the Tooltip component to enhance clarity and maintainability of the hover state management.
- Updated the cleanup logic to directly reference the hovered targets variable, streamlining the event listener removal process.
- Modified the dependency array in the useEffect hook of the NotesPanel component to include 'type', ensuring that the effect re-runs when the type prop changes. This enhances the component's responsiveness to prop updates.
- Moved the `toEditorCode` and `getCodeLanguageExtension` functions from CodeBlockEditor to a new utility file, `codeBlockEditorUtils.js`, for better code organization and reusability.
- Updated imports in CodeDiffViewer and DiffLabel components to reference the new utility file, ensuring consistent functionality across the application.
- Updated the DashboardSidebarSplitter component to change the resize locking mechanism from a timed lock to a pointer-up event lock, enhancing responsiveness during sidebar adjustments.
- This change improves user experience by allowing for more intuitive interactions when expanding the sidebar.
- Added a Divider component to improve visual separation within the DashboardSidebar.
- Refactored the button layout to ensure full-width styling and better alignment, enhancing user interaction when collapsing or expanding the sidebar.
- Updated Flex container properties for improved responsiveness and layout consistency.
- Updated CSS for the DashboardSidebarSplitter to improve sidebar resizing transitions, adding new properties for smoother animations.
- Introduced state management for resize locking and pointer events to enhance user interaction during sidebar adjustments.
- Refactored resizing logic to support dynamic sidebar size adjustments, improving responsiveness and user experience.
- 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.
- Updated the Tooltip component to include a new prop, `listenParents`, allowing it to listen for mouse events on parent elements, improving tooltip visibility and interaction.
- Refactored mouse event handling to manage hover states more effectively, ensuring tooltips behave consistently when interacting with parent elements.
- Improved code organization and readability by consolidating event handling logic and utilizing refs for better performance.
- Modified the overflow style from 'hidden' to 'visible' in the DashboardSidebarSplitter component, allowing for improved visibility of sidebar content during resizing and collapsing actions.
- Introduced a new DashboardSidebarSplitter component to manage sidebar resizing and collapsing behavior, enhancing user experience on different screen sizes.
- Updated DashboardSidebar to support dynamic collapsed width and improved styling for better visual consistency.
- Refactored DashboardLayout to utilize the new splitter, streamlining the layout structure and improving maintainability.
- Enhanced CSS styles for sidebar components to ensure consistent behavior and appearance across various states.
- Introduced a new CollapsedItemIcon component to improve the display of sidebar items when collapsed, providing additional context through tooltips.
- Updated the DashboardSidebar to utilize the CollapsedItemIcon for better user experience and visual clarity when navigating collapsed sidebar items.
- Enhanced code readability by organizing the new component and its prop types within the DashboardSidebar file.
- Updated the ElipsisText component to conditionally wrap truncated text in a Tooltip, enhancing user experience by providing additional context on hover.
- Simplified the rendering logic by consolidating the content structure, improving code readability and maintainability.
- Increased the tooltip offset from 10 to 15 pixels to enhance visibility and prevent overlap with UI elements, improving user experience during interactions.
- Added a 'list' action to various object models, including AppPassword, AuditLog, Client, and more, to standardize access to list views across the application.
- Updated the ObjectModels.js to include a new label for the 'list' action, improving clarity in the permission matrix.
- Refactored Sidebar.js to incorporate user profile permissions for sidebar item visibility, enhancing user experience based on access rights.
- Introduced utility functions for normalizing paths and filtering sidebar items based on user permissions, streamlining sidebar management.
- Improved the overall structure and readability of the Sidebar and ObjectModels components.
- 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.
- Implemented session storage functionality to persist expanded row keys and scroll position in the PermissionsMatrix, improving user experience during navigation.
- Refactored state management to utilize hooks for handling expanded rows and scroll restoration.
- Added utility functions for reading and writing to session storage, ensuring data integrity and availability across user sessions.
- Updated event handling for scroll events to maintain the user's scroll position, enhancing usability in the permissions matrix.
- 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.
- Added hover effect to the permissions matrix table cells, improving visual feedback for user interactions.
- Refactored column handling by introducing a new utility function for setting column index properties.
- Replaced state management for hovered columns with a ref to optimize performance and reduce unnecessary re-renders.
- Updated event handling for mouse over and leave actions to enhance user experience in the permissions matrix.
- 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 utility functions for normalizing sidebar paths and collecting metadata from sidebar items.
- Implemented logic to match models with sidebar sections, improving the organization of permissions.
- Enhanced the data source construction for the PermissionsMatrix, allowing for better grouping and display of models.
- Introduced state management for expanded rows and hovered columns to improve user interaction.
- Refactored existing functionality to accommodate new features while maintaining performance and clarity.
- Introduced UserGroups and PermissionSettings components for managing user groups and permission settings.
- Implemented new icons for user groups and permission settings, enhancing visual representation in the dashboard.
- Updated routing and sidebar configuration to include new management sections for user groups and permission settings.
- Enhanced existing components with loading states and improved styling for better user experience.
- Refactored related components to ensure consistency in naming and functionality across the application.
- Introduced new utility functions for normalizing and aggregating permission states, improving the management of user permissions.
- Added row and column cycling functionality to allow users to easily toggle permission states.
- Enhanced the rendering of checkboxes with tooltips for better user feedback on permission states.
- Updated the layout of the PermissionsMatrix to improve visual clarity and user interaction.
- Updated PermissionSettingsInfo and UserInfo components to wrap Card elements with Spin for loading state visualization.
- Changed titles in InfoCollapse for consistency, renaming 'Permission Settings Matrix' to 'Permissions Matrix'.
- Enhanced user experience by providing visual feedback during data loading.
- Updated TemplateEditor component to include padding in Card styles for improved layout.
- Added a new CSS class for .cm-editor to set its width to fit-content, enhancing the editor's appearance.
- Ensured consistent styling adjustments to improve user experience in the editor interface.
- Introduced a new PermissionSettings management component, including a list view and modal for creating new permission settings.
- Implemented a permissions matrix for managing user permissions with checkboxes for allow, deny, and inherit states.
- Added associated styles in App.css for the permissions matrix table and checkbox components.
- Created new icons and integrated them into the sidebar and relevant components for better visual representation.
- Updated routing and sidebar configuration to include the new Permission Settings section in the management dashboard.
- Added farmControlLight and farmControlDark themes for CodeMirror integration, improving syntax highlighting and overall editor aesthetics.
- Updated CodeBlockEditor to utilize the new themes and introduced a layout theme for better responsiveness.
- Enhanced styling in App.css for the code block editor, ensuring proper display and overflow handling.
- Refactored CodeDiffViewer to support the new themes, maintaining visual consistency across code comparison components.
- 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.
- Removed duplicate 'courier', 'host', and 'owner' properties from visibleColumns in CourierInfo, HostInfo, and SubJobInfo components for cleaner code.
- Enhanced code readability and maintainability by streamlining the visibleColumns structure.
- 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.
- Adjusted mask-image properties in App.css to change the gradient calculation from 0.8em to 0.5em for better alignment and appearance of skeleton input elements.
- Ensured consistent styling across both standard and webkit-prefixed mask images.
- 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 CodeDiffViewer component utilizing @codemirror/merge for visual code diffs.
- Added DiffLabel component to display code change statistics and trigger the CodeDiffViewer modal.
- Updated PropertyChanges component to integrate DiffLabel for code property changes.
- Enhanced styling for code diff display with new CSS classes.
- Updated package.json and lock files to include @codemirror/merge dependency.
- 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 a new ChevronRightIcon component using SVG for better visual representation.
- Replaced the ArrowLeftIcon with ChevronRightIcon in the FilterInput component to enhance the operand display.
- Added the corresponding SVG file for the ChevronRightIcon to the assets/icons directory.
- Added support for wildcard symbols (*, ?) in the FilterInput component, allowing for in-place highlighting.
- Updated the caret positioning logic to handle wildcard spans correctly, ensuring accurate text selection.
- Refactored tokenization and rendering functions to accommodate new wildcard types, enhancing overall functionality.
- Changed operand colors for various comparison symbols in the FilterInput component to enhance visual differentiation.
- Updated colors for symbols such as '..', '<>', '>=', '<=', and '=' to align with a more cohesive color scheme.
- Introduced new SVG icons for comparison operators: Equal, Greater Than, Greater Than or Equal To, Less Than, Less Than or Equal To, and Not Equal.
- Updated FilterInput component to utilize these new icons for better visual representation of operand symbols.
- Enhanced the layout and styling of operand labels within the FilterInput for improved user experience.
- Added @codemirror/commands, @lezer/common, @lezer/highlight, @lezer/lr, and classnames to package.json for enhanced functionality.
- Removed duplicate entries for @codemirror/commands and ensured proper versioning for new dependencies.
- Updated pnpm-lock.yaml to reflect the addition of classnames and maintain consistency across dependencies.
- Introduced a new FieldSelectLabel component to dynamically size select fields based on the longest label, improving layout consistency.
- Updated FilterSidebar to utilize the FieldSelectLabel for better visual alignment of select options.
- Adjusted CSS styles for the filter sidebar field selects to ensure proper width handling.
- Added relative positioning and z-index management to ensure the focus ring is visible above Compact siblings.
- Refactored Popover anchor to prevent wrapping of Compact items, enhancing user interaction and accessibility.
- Cleaned up JSX structure for better readability and maintainability.
- Added a transparent background color to the .simple-date-time-property-filter class for improved visual integration.
- Adjusted padding for the Text component within SimpleDateTimePropertyFilter to enhance layout consistency and spacing.
- Updated FilterInput to include property filter functionality, allowing for more complex filtering expressions.
- Introduced new utility functions to convert between filter expressions and values, improving data handling.
- Modified FilterSidebar to pass property filter configurations to the FilterInput, enhancing the filtering capabilities.
- Improved SimplePropertyFilter to cache options and prevent unnecessary refetching, optimizing performance during interactions.
- Introduced a new FilterInput component to streamline user input for filter values, replacing the standard Input component in FilterSidebar and ObjectTable.
- Updated FilterSidebar and ObjectTable to utilize FilterInput, improving the overall filtering experience and consistency across the dashboard.
- Enhanced expression handling in ColumnFilterDropdown to accommodate the new FilterInput component, ensuring seamless integration with existing functionality.