- Deleted local database related files and utilities to streamline the codebase.
- Removed references to local database persistence in various components and services.
- Updated issue handling logic to rely solely on server-side data fetching.
- Cleaned up unused imports and functions related to local database operations.
* [WEB-5196] chore: switch from isomorphic-dompurify to dompurify
Replace isomorphic-dompurify with dompurify package in utils.
This change simplifies the dependency and uses the canonical
DOMPurify package directly.
* fix: removing dompurify from the space app as dependency
* chore: remove unused import
---------
Co-authored-by: sriramveeraghanta <[email protected]>
* [WEB-5134] refactor: update `web` ESLint configuration and refactor imports to use type imports
- Enhanced ESLint configuration by adding new rules for import consistency and type imports.
- Refactored multiple files to replace regular imports with type imports for better clarity and performance.
- Ensured consistent use of type imports across the application to align with TypeScript best practices.
* refactor: standardize type imports across components
- Updated multiple files to replace regular imports with type imports for improved clarity and consistency.
- Ensured adherence to TypeScript best practices in the rich filters and issue layouts components.
* feat: add extended complex filter backend and custom property filters for enhanced querying capabilities
* feat: enhance filter operators and configurations with number range support and equality operator updates
* feat: add extended filter configs and helpers
* feat: add new property filter configurations for boolean, date, dropdown, member-picker, number, and text types
* fix: update property validation to allow custom properties in WorkItemFiltersAdapter
* feat: introduce custom property filter key and extend work item filter types
* feat: enhance work item filters with custom property configurations and member support
* feat: update ExtendedIssueFilterSet to support URL property type and enhance range filtering
* feat: refine ExtendedIssueFilterSet to enforce property type checks for various lookup operations
* feat: enhance ExtendedIssueFilterSet to include checks for deleted properties in filter queries
* fix: update work item filter condition data type to include boolean
* feat (temp): enhance custom property filters to include issue type icons and improve filter icon rendering
* - Updated the transformation logic to combine property_id and value into a single string for backend processing.
- Enhanced the filtering method to validate UUIDs and handle the new format for custom property values.
* refactor: update filter value input handling and enhance multi-value operator support
- Changed condition value handling in TextFilterValueInput to use optional chaining for better safety.
- Updated WorkItemFiltersAdapter to correctly parse raw values based on multi-value operator support.
- Introduced CORE_MULTI_VALUE_OPERATORS and EXTENDED_MULTI_VALUE_OPERATORS to categorize operators that support multiple values.
- Consolidated multi-value operators into a single export for easier access.
* refactor: enhance input validation and UI for filter value components
- Added input validation logic to disable the apply button in NumberRangeFilterValueInput, NumberFilterValueInput, and TextFilterValueInput based on user input.
- Updated PopoverFilterInput to conditionally render helper text and apply button state based on input validity.
- Improved styling for input fields by setting a consistent size across different filter components.
* refactor: enhance validation messages for filter value inputs
- Added validation messages for minimum and maximum values in NumberRangeFilterValueInput and NumberFilterValueInput components.
- Implemented similar validation messages for minLength and maxLength in TextFilterValueInput.
- Updated styling for validation messages to ensure consistency across filter components.
* refactor: improve condition value update logic in filter
- Added isEqual check to prevent unnecessary updates when the condition value remains unchanged.
- Introduced a deep clone of the condition before update to enhance validation and ensure accurate comparisons.
- Enhanced early return conditions for invalid expressions and conditions to streamline the update process.
* refactor: enhance ComplexFilterBackend and BaseFilterSet for Q object filtering
- Introduced BaseFilterSet to support Q object construction for complex filtering.
- Updated ComplexFilterBackend to utilize Q objects for building querysets.
- Improved error handling and validation in filter methods.
- Refactored filter evaluation logic to streamline query construction.
* fix: improve filter processing in BaseFilterSet to handle empty cleaned_data and optimize filter evaluation
- Added handling for cases where cleaned_data is None or empty, returning an empty Q object.
- Optimized filter evaluation by only processing filters that are provided in the request data.
* feat: enhance issue type logo sizes and integrate tooltip for custom property filters
* update ComplexFilterBackend to pass queryset in filter evaluation
* feat: add entity type support and enhance project-level filter logic for project level work items and epics custom properties
* fix: disable tooltip when work item type name is not available in work item filters
* feat: implement loader readiness checks and enhance filter configuration management
* feat: add invalid filter item component
* fix: ensure custom property filters are only enabled for active properties
* refactor: enhance ExtendedComplexFilterBackend and ExtendedIssueFilterSet for improved filtering
- Updated ExtendedComplexFilterBackend to validate filterset_class and utilize it for queryset filtering.
- Refactored ExtendedIssueFilterSet to return Q objects instead of querysets for better handling of custom property filters.
- Improved error handling for invalid filter conditions and missing filterset_class.
* refactor: update maxHeight options for dropdown components
- Changed maxHeight values in AddFilterButton and FilterItem components to specific sizes (3xl and 2xl).
- Updated CustomSearchSelect and helper types to support new maxHeight options, enhancing dropdown flexibility.
* fix: build errors
* fix: update operator labels for consistency
- Changed "contains" to "icontains" in both the operator labels and extended equality operator definitions to ensure uniformity in terminology.
* feat: add work item name filter configuration
- Introduced a new filter configuration for work item names in the useWorkItemFiltersConfig hook.
- Updated constants to include the "name" filter key in various filter configurations.
- Enhanced the ISSUE_DISPLAY_FILTERS_BY_PAGE to incorporate the new work item name filter for better filtering capabilities.
* refactor: improve filter row visibility handling with loading state
* feat: enhance name filter options in ExtendedIssueFilterSet
- Added new filtering options for the "name" field, including "exact", "icontains", "contains", "startswith", and "endswith" to improve search capabilities.
* feat: enhance rich filters with tooltip and right content support
- Added tooltip support to FilterItemProperty for displaying additional information on hover.
- Introduced rightContent property in filter configurations to allow custom content display in dropdown options.
- Updated AddFilterButton to utilize rightContent for enhanced UI.
- Refactored related hooks and components to accommodate new properties.
* fix: update maxHeight options in dropdown components
* chore: re structure rich filter value inputs for various data types
* chore: minor clean up
* fix: build errors
* enhance ComplexFilterBackend with transformation hooks for field validation
- Added _transform_field_name_for_validation and _preprocess_leaf_conditions methods to support custom property filtering.
- Updated field extraction logic to utilize the new transformation hooks for improved filter handling.
- Refactored ExtendedComplexFilterBackend to leverage these enhancements for custom property filters.
* refactor: reorganize rich-filters component structure and enhance filter item functionality
- Moved AddFilterButton to a new directory structure for better organization.
- Introduced AddFilterDropdown component to improve filter selection UI.
- Updated FilterItemProperty to handle filter selection and condition updates more effectively.
- Enhanced FilterInstance methods to support condition property updates with proper negation handling.
- Adjusted imports across various components to reflect the new structure.
* [WEB-5111] feat: add filters for created_at and updated_at in issue filter sets
- Updated IssueFilterSet and ExtendedIssueFilterSet to include "updated_at" as a filter option.
- Enhanced useWorkItemFiltersConfig to incorporate created_at and updated_at filter configurations.
- Introduced getCreatedAtFilterConfig and getUpdatedAtFilterConfig utility functions for date filters.
- Updated WORK_ITEM_FILTER_PROPERTY_KEYS to include created_at and updated_at.
* fix: build
---------
Co-authored-by: pablohashescobar <[email protected]>
Co-authored-by: Dheeraj Kumar Ketireddy <[email protected]>
Co-authored-by: Nikhil <[email protected]>
* feat: enhance rich filters with new components and configurations
- Added `AdditionalFilterValueInput` for unsupported filter types.
- Introduced `FilterItem` and related components for better filter item management.
- Updated filter configurations to include new properties and support for multiple values.
- Improved loading states and error handling in filter components.
- Refactored existing filter logic to streamline operations and enhance performance.
* Refactor rich filters component structure and enhance filter item functionality
- Moved AddFilterButton and AddFilterDropdown to a new directory structure for better organization.
- Updated FilterItemProperty to handle filter selection and condition updates more effectively.
- Enhanced the FilterInstance class with methods to update condition properties and operators, improving filter management.
- Added new functionality to handle invalid filter states and improve user feedback.
* [WEB-5111] feat: add 'created_at' and 'updated_at' filters to work item configuration
- Introduced new filter configurations for 'created_at' and 'updated_at' in the work item filters.
- Updated relevant components to utilize these new filters, enhancing filtering capabilities.
- Added corresponding filter configuration functions in the utils for better date handling.
* fix: build
- Refactored file upload utilities to use async functions for better handling of file metadata.
- Introduced MIME type detection using the file-type library.
- Updated file service methods to await metadata retrieval.
- Added new dependencies for file-type and updated package.json accordingly.
- Removed deprecated file handling code from utils and adjusted imports across services.
* fix: next path url redirection
* fix: enhance URL redirection safety in authentication views
Updated SignInAuthSpaceEndpoint, GitHubCallbackSpaceEndpoint, GitLabCallbackSpaceEndpoint, and GoogleCallbackSpaceEndpoint to include checks for allowed hosts and schemes before redirecting. This improves the security of URL redirection by ensuring only valid URLs are used.
* chore: updated uitl to handle double /
---------
Co-authored-by: pablohashescobar <[email protected]>
Co-authored-by: Nikhil <[email protected]>
* feat: rich filters store architecture and UI components
* feat: add work item layout filter HOC
* improvements: minor enhancements for rich filters
* added button configuration to add filters button
* added option to disable transition for filter item
* fixed filter item label truncation
* added support for changing work item filter config keys
* improvements: add filter button config initialization
* improvements: work item layout filter compatibility fixes
* refactor: update filter structure and improve type safety across automation and rich filters
- Changed filter property types to use TFilterProperty and TFilterValue for better type consistency.
- Updated various components and hooks to utilize new type definitions, enhancing type safety.
- Refactored filter configuration and adapter logic to accommodate the new types, ensuring compatibility with existing functionality.
- Improved handling of filter expressions and conditions, streamlining the overall filter management process.
* chore: restructure rich filter utils
* refactor: optimize filter value handling and update automation condition types
- Removed unnecessary condition checks in automation details sidebar trigger.
- Enhanced filter value input to handle empty states more gracefully.
- Updated filter helper methods to return both optimal operator and transformed value.
- Adjusted filter instance logic to accommodate changes in operator and value updates.
- Modified type definitions for automation conditions and filter configurations to support SingleOrArray types.
- Added utility functions for transforming values based on operator requirements.
* fix: handle single-value operators in automation condition filters
* fix: build errors
* chore: refactor work item filters to core with enterprise extensibility
* chore: update clear filters logic from project work item empty state
* chore: remove header filters selection from project work item list
* chore: remove header filters selection from project work item list mobile header
* feat: add work item filters bar to support save and update views
* feat: add visibility button to filters bar
* chore: minor fixes for work item filters adapter
* feat: enhance filters bar with async save and update handling
* chore: minor ux fixes for filters bar
* refactor: split updateCondition into separate operator and value update methods
* feat: add save and update view options to rich filter instance
* chore: minor fixes in clear filters
* feat: project level work item filters hoc with save and update view options
* chore: minor UX improvements for view save and update options
* chore: ordering fix in work item filters store
* improvement: enhance work item filters with consistent naming and memoization optimization
* feat: different variants for filters row
* feat: implement rich filters in create and update project view modal
* chore: ensure that max visible conditions are only visible in header variant
* feat: add tracker elements for clear filter, save view, and update view
* feat: update layout filter if view is updated from modal
* feat: implement rich filters for project archived work items
* feat: implement rich filters for cycle work items
* feat: implement rich filters for module work items
* chore: remove module applied filters header
* feat: implement rich filters in epics layout
* feat: implement rich filters in workspace views
* chore: remove router filter params from all issue layout root
* feat: implement rich filters for profile work items
* fix: shouldNotifyChangeForExpression should be called before clearing the filter expression
* refactor: get all the entities from props to generate work item config
* feat: implement rich filters for teamspace work items
* feat: implement rich filters for teamspace views
* feat: implement rich filters for teamspace project work items
* feat: implement rich filters for teamspace views create / update modal
* chore: remove all instances of FilterSelection component
* chore: clean up filters from FilterSelection
* feat: add LegacyToRichFiltersConverter and BaseIssueFilterSet for enhanced filtering capabilities
- Introduced LegacyToRichFiltersConverter to automate conversion from legacy filter formats to rich filter JSON structure, including validation features for UUIDs, choices, and dates.
- Added BaseIssueFilterSet with custom filter methods for handling soft delete exclusions and direct field lookups for the Issue model.
- Updated README.md to document the new converter and filter set usage, including examples and configuration options.
* feat: implement migrations for rich filters in core and EE models
- Added migration scripts to convert legacy filters to rich_filters format for core models (IssueView, WorkspaceUserProperties, etc.) and EE models (EpicUserProperties, InitiativeUserProperty, TeamspaceUserProperty).
- Introduced utility functions for migrating and clearing rich_filters, enhancing the migration process.
- Updated date validation in the LegacyToRichFiltersConverter to utilize dateutil.parser for improved flexibility in date format handling.
- Enhanced README.md to reflect changes in date validation capabilities.
* fix: build errors
* feat: refactor rich filter config and utils to support complex and extended filters
* feat: add `state_group` to project level filters
* chore: minor updates for work item filter configs
* feat: add state group set filter
* feat: add project and teamspace project filters
* chore: remove filters-selection component
* Updated IssueViewset to use complexfilter backend and made improvements to grouping.
- Refactored IssueListEndpoint and IssueViewSet to utilize new filtering and grouping features, enhancing query efficiency.
- Updated issue grouping functions to accept a queryset parameter, improving flexibility and performance.
- Optimized AND operations through branch-based evaluation.
* Changed the rich filters query param to 'filters'
* chore: integrate project work item rich filters with backend
* refactor: page wise filter constants
* chore: minor build fixes
* feat: integrate rich filters across all work item layouts
* fix: view update on additional changes
* chore: enabled filter item transition
* chore: remove total filters from view list item
* feat: add work item subscriber filter
* added custom UUIDInFilter and update filterset to utilize it
* fix: handle empty filters with empty object instead of null
* Fixed bug with updating issues
* fix: disable save view in epic layout
* chore: update state group set filter label
* fix: filter item early return re-render error
* fix: space app build
* fix: web build
* added CharInFilter and enhanced BaseFilterSet to support exact filters
* add subscriber ID filters to BaseIssueFilterSet
* simplify filter definitions in BaseIssueFilterSet by removing unnecessary lookup expressions
* Use comma separated values for in and range filters
* Fixed issue creation
* fix: reset filter condition when operator changes to different config type
* fix: only show work item type filter if enabled for project
* chore: minor fix in cleanup function and sub work item types
* fixed date rage filter
* fix: initial work item filters for global view, project view, teamspace view, initial work item filters for static views
* fix: add condition with negation operator
* fix: reset filters when project and teamspace view layouts unmount
* Enhance issue filtering capabilities across multiple views by integrating ComplexFilterBackend and BaseIssueFilterSet. Refactor issue querysets to apply filtering and annotations consistently, improving performance and maintainability.
* chore: update epic filters to show by layout
* Enhance issue queryset by applying annotations for improved data handling in WorkspaceViewIssuesViewSet.
* Fixed workspace issue viewset
* feat: add rich_filters support to multiple user properties endpoints
* fix: incorrect count
* improvement: update filters dropdowns height to full
* refactor: update filter label from "Grouping" to "Work item group" for clarity
* improvement: update work item filters list order
* feat: sanitize and stabilize filter expressions before external conversion
* chore: reorder add filter button in filters row
* feat: enhance issue viewsets by adding prefetch_related for improved performance and data retrieval across multiple endpoints. Refactor queryset handling to streamline filtering and annotations.
* feat: apply static view filters to workspace issues
* chore: minor updates for global view rich filters
* fix: local storage filters
* refactor: update issue filter handling to use new supported filter types
- Replaced instances of EIssueFilterType with TSupportedFilterTypeForUpdate in various components and stores.
- Updated filter update methods to utilize the new filter type structure for better consistency and maintainability.
- Removed deprecated filter handling logic across multiple files, streamlining the filter update process.
* feat: enable rich filters for cycle and module analytics progress stats
Refactored progress statistics components to support advanced filtering capabilities across cycles and modules. Added new shared components for assignee, label, and state group progress tracking with consistent filtering interface.
* refactor: update sub-issue filter components to use available filters
- Replaced layoutDisplayFiltersOptions with availableFilters in SubIssueFilters and related components for better filter management.
- Introduced new constants for available filters specific to work item and initiatives pages.
- Cleaned up unused imports and improved filter enabling logic for clarity and maintainability.
* chore: disable operator selection when filter is disabled or only one operator option is available
* refactor: enhance filter components to support disabled state
* chore: minor cleanup
* reorderd the data migration for rich filters
* refactor: rich filter utils structure
* refactor: reuse traversal and transformation utilities
* refactor: use type guards in rich filters
* cleanup: remove unused comment
* refactor: restructure filter system with extended rich filters support
- Rename and reorganize filter modules for better structure
- complex_filter.py → filter_backend.py
- migration_utils.py → filter_migrations.py
- Remove custom_filters.py (inlined into filterset.py)
- Create extended filter system with inheritance hierarchy
- Add extended/ directory with enhanced converters and filtersets
- Support additional enterprise fields (team_project_id, type_id)
- Maintain base functionality while adding extended features
- Centralize imports through clean public API
- Update all view imports to use plane.utils.filters module
- Extended classes automatically override base implementations
- Maintain backward compatibility
- Rename BaseIssueFilterSet to IssueFilterSet across codebase
- Update migration files to use new converter structure
- Consolidate filter utilities for better maintainability
* Added missing param
* refactor: restructure rich filters by removing obsolete operator files and introducing core and extended operator configurations
* refactor: restructure rich filters utils
- Streamlined exports in rich-filters index files for factories, operations, types, and validators.
- Removed obsolete core types and operators, integrating their functionalities into a more cohesive structure.
- Introduced new factory and operation files to enhance modularity and maintainability.
- Improved type guards and utility functions for better type safety and clarity in filter operations.
* refactor: enhance operator handling in rich filters
- Introduced `getOperatorForPayload` utility to streamline operator normalization and negation handling across filter components.
- Updated various filter-related files to utilize the new utility, improving code clarity and reducing redundancy.
- Refactored condition addition logic to leverage the new operator handling, ensuring consistent behavior in filter expressions.
* Updated migration sequence
* refactor: update filter constants and types for consistency
- Renamed filter-related constants from `FILTER_TYPE_OPTIONS` to `FILTER_FIELD_TYPE_OPTIONS` for clarity.
- Updated references in various components and stores to use the new naming convention.
- Introduced new field type configurations to enhance filter handling and maintainability across the application.
* feat: enhance shared-state and rich filters integration
- Added new filter components and utilities to the shared-state package, improving the filter expression handling.
- Introduced `AddFilterButton`, `FilterItem`, and various input components for rich filters, enhancing user interaction.
- Updated existing components to utilize the new shared-state functionalities, ensuring consistency across the application.
- Refactored filter-related logic to streamline the integration of work item filters and improve maintainability.
* refactor: use factory functions instead of shared-state adapter
* fix: update filter helpers to handle negation correctly
* chore: minor comment cleanup
* feat: introduce new filter configurations and utilities for work item filters
- Added various filter configurations including cycle, date, label, module, priority, project, state, teamspace, user, and work item type.
- Implemented helper functions for multi-select and single-select configurations to streamline filter creation.
- Enhanced existing filter utilities to support new configurations, improving the overall filter management system.
- Organized filter-related code into dedicated files for better maintainability and clarity.
* feat: add rich filters types
* feat: add rich filters constants
* feat: add rich filters utils
* feat: add rich filters store in shared state package
* feat: add rich filters UI components
* chore: minor updates and fixes.
* chore: update pnpm lock file.
* [WEB-4842] feat: enhance rich filters with complex filter support and improved code organization
* chore: remove state group set from state filter
* chore: remove state group set from work item rich filters
* replace DashboardWidgetIssueFilterSet with IssueFilterSet in WidgetListEndpoint
- Removed the custom DashboardWidgetIssueFilterSet class and replaced it with the existing IssueFilterSet.
- This change simplifies the filter logic for the WidgetListEndpoint, leveraging the existing functionality of IssueFilterSet.
* removed state_group_set filter and related logic from IssueFilterSet
* fix: make setLoading optional in loadOptions function for improved flexibility
* fix: automation condition item value display
* chore: minor cleanup and updates
* chore: revert un-needed changes
* chore: remove duplicate exports
* chore: minor improvements to rich filters
* chore: minor improvements
* code cleanup and minor fixes
* chore: minor change
---------
Co-authored-by: JayashTripathy <[email protected]>
Co-authored-by: Dheeraj Kumar Ketireddy <[email protected]>
Co-authored-by: pablohashescobar <[email protected]>
Co-authored-by: sangeethailango <[email protected]>