* 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 <nikhilschacko@gmail.com>
Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com>
* 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 <jayashtripathy371@gmail.com>
Co-authored-by: Dheeraj Kumar Ketireddy <dheeru0198@gmail.com>
Co-authored-by: pablohashescobar <nikhilschacko@gmail.com>
Co-authored-by: sangeethailango <sangeethailango21@gmail.com>
* feat: rich filters store architecture and UI components
* 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
* feat: done basic setup of rich filters in dashboard widgets
* refactor: clean up whitespace in widget type definitions
* feat: implement complex filtering backend for Django REST Framework
* Added ComplexFilterBackend to support advanced JSON-based filtering with logical operators.
* Introduced DashboardWidgetIssueFilterSet for filtering issues based on various criteria.
* Updated widget views to utilize the new filtering capabilities.
* Refactored widget_graph_plot.py to streamline query construction.
* Added README documentation for the filters module detailing usage and examples.
* chore: update filter configurations and clean up
* Enhance ComplexFilterBackend for improved performance and documentation
* Updated WidgetListEndpoint to pass the view instance to the filter method.
* Optimized NOT operations to use subqueries instead of large IN clauses for better performance.
* Removed deprecated range filter validation logic.
* Expanded README documentation to include performance considerations and advanced usage examples for NOT operations.
* Refactor DashboardWidgetIssueFilterSet to use custom filter methods for soft delete exclusion
* Replaced direct field lookups with custom filter methods for assignee, cycle, module, mention, and label IDs to exclude soft deleted records.
* Added new filter methods for label ID and label ID in to enhance filtering capabilities.
* Improved code readability and maintainability by centralizing filtering logic.
* refactor: remove unused export for TAutomationConditionFilterExpression in widget.ts
* fix: types
* chore: added more filters
* refactor: made the TFilterValue typed and add config for boolean
* refactor: made TFilterValue typed and add config for boolean
* Refactor WidgetListEndpoint to streamline issue filtering logic
* Updated the issue filtering process to first retrieve workspace by slug, improving clarity and maintainability.
* Consolidated filtering conditions into a single query for better performance and readability.
* Enhanced the DashboardWidgetIssueFilterSet to utilize the new filtering capabilities for label IDs.
* Enhance ComplexFilterBackend with depth validation and structure checks
* Introduced maximum depth validation for complex filters to prevent excessive nesting.
* Added structure validation to ensure proper JSON format for filter nodes.
* Implemented detailed error handling for various filter scenarios, improving robustness and user feedback.
* Refactor WidgetListEndpoint to improve workspace and dashboard retrieval
* Updated the WidgetListEndpoint to retrieve the workspace by slug before querying the dashboard, enhancing clarity and maintainability.
* Replaced multiple filter conditions with workspace ID for dashboard and widget queries, improving performance and consistency.
* Removed redundant workspace retrieval from the end of the method to streamline the code.
* chore: remove boolean filter value input
* improvements: define value type for filter configs
* chore: add default value type for filter configs
* chore: minor type updates for filter configs
* imrovement: type safety of the operators in rich filters
* refactor: reverted to old types of rich filters
* refactor: reverted to old label of rich filters
* refactor: enhance dashboard widget filters with new adapter and HOC
- Replaced the existing WidgetConfigSidebarFilters with EnhancedWidgetConfigSidebarFilters to support new filter logic.
- Introduced DashboardWidgetFilterAdapter for converting between internal and external filter expressions.
- Updated filter configurations to use the new external filter structure.
- Removed the old filters adapter and adjusted related types for better clarity and maintainability.
- Cleaned up imports and improved code organization in the filters components.
* chore: cleanup
* chore: cleanup
* refactor: update dashboard filters and add observable for filters
* refactor: comment out draft filter configuration in dashboard filters
* ♻️ refactor: adaptor to have comma separated array values and removed draft filter config
* ♻️ refactor: updated the default value for the empty expression
* ♻️ refactor: value sanitization for empty values
* ✨ feat: enhance sidebar filters with loading state and optimized data fetching
* 🧹 chore: remove duplicate export of work-item-filters from utils index
* 🎨 style: update button variant in sidebar filters from neutral-primary to accent-primary
* 🔧 fix: update dependency in withFilters to include handleSubmit in effect dependencies
* 🔧 fix: update _parseFilterValue to handle SingleOrArray type for filter values
* Removed unnecessary code
* ♻️ refactor: integrate workspace project fetching and improve dashboard filter handling
* 🔧 fix: rename EXTERNAL_OPERATOR_SEPARATOR to EXTERNAL_WIDGET_OPERATOR_SEPARATOR for consistency in filter handling
---------
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Co-authored-by: Dheeraj Kumar Ketireddy <dheeru0198@gmail.com>
* feat: page comments
* chore: added node id
* chore: changed reverse relation
* chore: added resolve comment endpoint
* fix: build errors
* fix: basic comment decoration added
* fix: add marks
* fix: operations
* fix: to ditch decorations approach!
* fix: move dev-wiki into apps
* fix: new approach with some more types
* fix: link view container
* fix: editor ee packages updated
* fix: basic threads implementation added
* fix: comments scroll and filtering
* fix scrolling
* chore: added total count for comments
* fix: seperate the comments store
* fix: comments removal
* feat: multi comment on same mark
* fix: mark fixed and styles of comments fixed!
* feat: added better animations
* fix: better styles and animations for comments
* fix: ee seperation
* fix: threads api fix
* fix: new comment store attached
* fix: resolve and delete
* fix: remove framer motion
* fix: add comment ordering
* fix: delete extension
* fix: web
* fix: context aware comments
* fix: new working comment store
* fix: getting changes to web
* fix: ui of comments
* fix: comment mark resolution fixed
* fix: move changes to store
* temp fix: project pages
* fix: comments using lite text editor
* fix: rerendering infinitely
* fix: comment box and reference
* chore: updated the migration file
* fix: move things to ee
* chore: un commented the feature flag logic
* chore: removed an extra line in feature flag
* fix: editor types
* fix: scrolling of thread items
* fix: scrolling of thread items
* fix: type errors
* fix: comment creation
* fix: page comments
* fix: page comments
* fix: remove utils
* fix: added feature flagging
* fix:loading json content
* fix: upload items
* fix: upload items
* fix: ui chanegs
* fix: comment box
* fix: better spacing
* Fix spacing and removing the divs not needed anymore
* fix: comments storing json
* Add comment thread management hooks
* Replace use-new-comment hook with use-scroll-manager
Remove useNewComment hook and related logic. Add useScrollManager hook
for managing scroll behavior in the comments sidebar. Refactor
threads-sidebar to use scroll manager for thread and comment box
navigation. Add cancel button to new comment box.
* Remove hover and click effects for resolved comment marks
* Auto-scroll new comments in sidebar after order sync
Adds highlight and scroll-to behavior for newly created comments.
Sidebar now scrolls to the new thread after comments order updates.
* Add granular page comment permissions and UI checks
Introduce canCurrentUserCommentOnPage permission for pages. Update
comment UI to respect user comment permissions. Refactor comment
creation logic into useNewComment hook. Hide comment/reply UI for users
without permission.
* Refactor comments components and imports for clarity and type safety
* Refactor comments components to use local types and remove unused files
- Move type definitions from shared types file into local components -
Remove unused comment-reactions component and types/index.ts - Update
imports to use local hooks and types - Minor code cleanup and formatting
* Refactor comments feature flag and clean up comments components
- Replace isPageCommentsEnabled with isCommentsEnabled in page stores -
Remove unused types, utils, and reactions components from comments -
Move and rename comments components for consistency - Update editor
flagging to use new comments feature flag logic - Simplify comments
sidebar and thread item structure - Remove redundant exports and props
from comments modules
* Refactor comments extension to use workspace feature flag
- Pass storeType to navigation pane extensions - Check isCommentsEnabled
with workspaceSlug before rendering comments - Update canComment logic
to use canCurrentUserCommentOnPage - Remove console.log and unused code
- Fix types for extension props
* Add canCurrentUserCommentOnPage to TeamspacePage
* Refactor TCommentConfig type and move EditorSideEffects
- Move TCommentConfig to ce/types/editor.ts and ee
* fix: ce sync
* fix: prosemirror-model fixed
* chore: removed the extra migration
* chore: added page comments serializer
* fix: comments
* refactor: comments
* fix: ce/ee seperation
* chore: changed the page serialization
* fix: page comments refactored
* fix: remove ce changes
* fix: restoration for nested pages fixed
* fix: less ce changes
* fix: imports
* fix: better refactoring of page root and editor body
* fix: renaming files
* fix: editor sideeffects
* fix: add comments json field
* fix: page comments types
* fix: lint warnings
* fix: props name change
* fix: props name
* fix: comment mark
* fix: import type
* fix: review changes
* fix: extra checks
* fix: type changes
* fix: remove editor ref current
* fix: renaming
* fix: renaming files
* fix: comments extension revamp
* fix: declaring better types
* fix: better types
* fix: hooks seperated
* fix: edit box
* fix: html validation
* fix: agents md
* fix: naming convention
* fix: update names and service methods
* fix: more fixes
* fix: attributs
* fix: dev wiki sync
---------
Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
* 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
* feat: enhance URL utility functions with IP address validation and cleaned up the extraction utilities
* fix: remove unnecessary type assertion in isLocalhost function