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]

Reply via email to