-
Notifications
You must be signed in to change notification settings - Fork 16.4k
Persist DataTable column visibility in localStorage #61202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Persist DataTable column visibility in localStorage #61202
Conversation
…Path (apache#60519) * pyproject.toml: update universal-pathlib version boundaries * task_sdk.io.path: fix test regarding relative_to * tests: adjust the lazy_load test to reflect caching is done via STORE_CACHE * tests: update tests to register fake remote filesystem in fsspec * airflow.sdk.io.path: implement ObjectStoragePath via ProxyUPath * airflow.sdk.io.path: provide a basic implementation for copy_into and move_into * airflow.sdk.io.path: fix __str__ method * airflow.sdk.io.path: docstring fixes * update spelling_wordlist.txt
* Add support for globalCss to custom theme * Fix CI
* Explicitly set table ordering * Remove start_date as default * simplify comments * Simplify table sort fix * Reverse sort direction to match tests * Remove isfetching
The delete_old_records query was scanning the RTIF table with a complex NOT EXISTS subquery containing a join, causing statement timeouts and scheduler crashes for DAGs with 3k+ mapped task instances (~100k RTIF records). Simplified the query to only use the dag_run table for finding recent run_ids, avoiding the expensive RTIF table scan entirely. Benchmarks show ~38x improvement (330ms -> 6ms for 5000 records). Changes: - Replaced NOT EXISTS with simple NOT IN on dag_run table - Uses run_after instead of logical_date (avoids NULL for manual runs) - Renamed config to max_num_rendered_ti_fields_per_dag_run with backward-compatible deprecation of old name - Added test for sparse task behavior to document the semantic change Note: Retention is now based on N most recent dag runs rather than N most recent task executions. For sparse/conditional tasks, this may result in fewer historical records being retained. * Improve performance of rendered templates cleanup The delete_old_records query was scanning the RTIF table with a complex NOT EXISTS subquery containing a join, causing statement timeouts and scheduler crashes for DAGs with 3k+ mapped task instances (~100k RTIF records). Simplified the query to only use the dag_run table for finding recent run_ids, avoiding the expensive RTIF table scan entirely. Benchmarks show ~38x improvement (330ms -> 6ms for 5000 records). Changes: - Replaced NOT EXISTS with simple NOT IN on dag_run table - Uses run_after instead of logical_date (avoids NULL for manual runs) - Renamed config to max_num_rendered_ti_fields_per_dag_run with backward-compatible deprecation of old name - Added test for sparse task behavior to document the semantic change Note: Retention is now based on N most recent dag runs rather than N most recent task executions. For sparse/conditional tasks, this may result in fewer historical records being retained.
…tes (apache#61221) Bumps the core-ui-package-updates group with 2 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory: [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) and [axios](https://github.com/axios/axios). Updates `@hey-api/openapi-ts` from 0.90.9 to 0.90.10 - [Release notes](https://github.com/hey-api/openapi-ts/releases) - [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md) - [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.9...@hey-api/openapi-ts@0.90.10) Updates `axios` from 1.13.2 to 1.13.3 - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.13.2...v1.13.3) --- updated-dependencies: - dependency-name: "@hey-api/openapi-ts" dependency-version: 0.90.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: core-ui-package-updates - dependency-name: axios dependency-version: 1.13.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: core-ui-package-updates ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) (apache#60734) * dag_processing: initialize versioned bundles for callbacks (apache#52040) * Apply suggestion from @amoghrajesh Co-authored-by: Amogh Desai <amoghrajesh1999@gmail.com> * Apply suggestion from @amoghrajesh Co-authored-by: Amogh Desai <amoghrajesh1999@gmail.com> * Apply suggestion from @amoghrajesh Co-authored-by: Amogh Desai <amoghrajesh1999@gmail.com> * Add unit tests for callback handling and improve logging in Dag processing * fix CI static checks apache#2 --------- Co-authored-by: Amogh Desai <amoghrajesh1999@gmail.com>
…iders/edge3/plugins/www in the edge-ui-package-updates group across 1 directory (apache#61220) * Bump axios Bumps the edge-ui-package-updates group with 1 update in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory: [axios](https://github.com/axios/axios). Updates `axios` from 1.13.2 to 1.13.3 - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.13.2...v1.13.3) --- updated-dependencies: - dependency-name: axios dependency-version: 1.13.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: edge-ui-package-updates ... Signed-off-by: dependabot[bot] <support@github.com> * Fix static checks --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jens Scheffler <jscheffl@apache.org>
Previous behavior only updated the queued_at field if the run was cleared while in a terminal state. A run which was cleared while it was running or queued kept the original queued_at timestamp, making it impossible to track when the run was most recently attempted and introducing different behaviour depending on when the button was clicked. We now update the queued_at timestamp and clear_number counter regardless of the state the run was in at the time it was cleared. start_date is preserved as the timestamp of the original first attempt.
Co-authored-by: Przemysław Mirowski <miretpl@gmail.com>
…behavior (apache#61047) * Default logical_date to now in airflowctl dagrun trigger to match UI behavior When triggering DAG runs via airflowctl without specifying --logical-date, the parameter now defaults to the current timestamp instead of None. This aligns with the Airflow UI behavior where the trigger form pre-populates logical_date with the current time, providing a more intuitive user experience. * Add tests
* Add XCom CLI commands to airflowctl This commit adds `add`, `edit`, `delete`, `get`, and `list` commands for XComs to `airflowctl`. These commands allow managing XCom entries for a specific task instance. The commands support handling JSON values for XComs. Key changes: - Added `XComOperations` to `airflowctl/api/operations.py`. - Added `xcom` property to `Client` in `airflowctl/api/client.py`. - Exposed commands: `airflowctl xcom [add|edit|delete|get|list]`. * Fix XCom CLI commands and add comprehensive unit tests This commit fixes critical issues with XCom CLI commands in airflowctl and adds comprehensive test coverage for all XCom operations. * Add integration tests
|
Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contributors' Guide (https://github.com/apache/airflow/blob/main/contributing-docs/README.rst)
|
* fix(ui): avoid chart annotation left error by removing resizeDelay * fix(ui): keep resizeDelay and set annotation clip false in gantt * fix(ui): adjust annotation clip false position per prek formatting
bbovenzi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be greatly simplified with useLocalStorage() ctrl+f the codebase to see examples
|
I think there are lots unrelated changes. You may need to rebase or open a fresh one. Thanks! |
Persist DataTable column visibility (show/hide) configuration in browser localStorage, so user preferences are restored when returning to a table.
This change uses the shared DataTable component and scopes persistence using the table 'modelName'. Only column visibility is persisted — sorting, filtering, and pagination behavior remain unchanged.
The implementation safely falls back to default column visibility when no stored configuration is found and follows existing UI persistence patterns in Airflow.
closes #61159