coreforge196 opened a new pull request, #42799: URL: https://github.com/apache/superset/pull/42799
### SUMMARY Adds optional hierarchical folders to the dashboard list. The implementation includes a metadata model and migration, Command/DAO-based REST operations, object-aware visibility and write checks, a collapsible folder tree, synchronized Folder filtering, and a two-level parent/child dashboard move workflow. The folder tree intentionally shows navigation labels without dashboard counts to keep the narrow sidebar scannable. Existing dashboards remain uncategorized and existing dashboard URLs remain unchanged. Deleting a folder subtree preserves its dashboards by setting their folder association to `NULL`. Folder names are normalized for duplicate validation, and read-only folders can be browsed without becoming write targets. Associated SIP: #42798 ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF - Before: the dashboard list has no hierarchical folder navigation. - After: a browser acceptance screenshot is available and an interaction recording covering expand/collapse, parent/child selection, filtering, and moving a dashboard will be added before requesting review. ### TESTING INSTRUCTIONS 1. Apply the metadata migration and start the existing development Compose stack. 2. Sign in as an administrator and open `/dashboard/list/`. 3. Create a root folder and a child folder; verify duplicate sibling names and child names matching the parent are rejected case-insensitively. 4. Collapse and expand the tree, select each folder, and verify the dashboard list and Folder filter remain synchronized. 5. Move a dashboard by selecting a parent and optionally a child; clear the child selection and verify the dashboard moves to the parent. 6. Rename and move folders; verify cyclic parent relationships are rejected. 7. Delete a folder subtree and verify its dashboards remain available under Uncategorized. 8. Sign in as a restricted user and verify read-only folders are navigable but cannot be used as write targets. Automated checks completed after rebasing onto current `upstream/master`: - Backend dashboard-folder tests: 15 passed. - Frontend folder and filter tests: 27 passed before the final visual adjustment; the updated folder-panel suite passes all 8 tests after dashboard counts were removed. - Ruff: passed. - Targeted MyPy pre-commit hook: passed. - TypeScript: passed. - Oxfmt: passed. - Oxlint: 0 errors; 9 pre-existing warnings. - Browser acceptance at 1440x900: no page-level horizontal or vertical overflow; folder panel widths are 48px collapsed and 280px expanded. Known environment limitation: the combined pre-commit invocation stalls when WSL resolves the Windows Node runtime through a UNC path. Equivalent backend and frontend checks were run separately. Full Chinese catalog compilation is also blocked by 67 pre-existing placeholder errors; the entries added by this change are not in that error list. ### ADDITIONAL INFORMATION - [x] Has associated issue: #42798 - [ ] Required feature flags - [x] Changes UI - [x] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351)) - [ ] Migration is atomic, supports rollback & is backwards-compatible (implementation prepared; supported-engine verification pending) - [ ] Confirm DB migration upgrade and downgrade tested (pending supported-engine verification) - [x] Runtime estimates and downtime expectations provided: metadata-only migration; no data rewrite; normal migration window only - [x] Introduces new feature or API - [ ] Removes existing feature or API -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
