Skip to content

Add admin bulk visibility actions for diagrams#1

Merged
mkreyman merged 4 commits into
masterfrom
feature/admin-bulk-visibility
Nov 29, 2025
Merged

Add admin bulk visibility actions for diagrams#1
mkreyman merged 4 commits into
masterfrom
feature/admin-bulk-visibility

Conversation

@mkreyman

Copy link
Copy Markdown
Owner

Summary

  • Add bulk visibility actions (Make Public/Unlisted/Private) to admin Diagrams panel
  • Allows admins to select multiple diagrams and change visibility in bulk
  • Follows Backpex ItemAction patterns with confirmation dialogs

Changes

  • New files:

    • lib/diagram_forge_web/admin/item_actions/make_public.ex
    • lib/diagram_forge_web/admin/item_actions/make_unlisted.ex
    • lib/diagram_forge_web/admin/item_actions/make_private.ex
    • test/diagram_forge/diagrams_admin_test.exs (7 tests)
    • docs/features/admin-bulk-visibility.md
  • Modified files:

    • lib/diagram_forge/diagrams.ex - Added admin_bulk_update_visibility/2
    • lib/diagram_forge_web/admin/resources/diagram_resource.ex - Registered item actions

Test plan

  • All 526 tests pass
  • Credo: No issues
  • Dialyzer: Passed
  • Manual testing: Navigate to /admin/diagrams, select diagrams, use bulk actions

- Add MakePublic, MakeUnlisted, MakePrivate Backpex item actions
- Add admin_bulk_update_visibility/2 function to Diagrams context
- Register item actions in DiagramResource
- Add comprehensive tests for bulk visibility updates
- Add implementation documentation
@mkreyman mkreyman assigned mkreyman and unassigned mkreyman Nov 29, 2025
Move 14 feature implementation documents from docs/ to docs/features/
to better organize documentation. Keeping DiagramForge.md (main project doc)
and deployment-pipeline.md (DevOps doc) in the root docs/ directory.
The custom item actions (make_public, make_unlisted, make_private)
were being blocked by the catch-all can?/3 clause that returns false.
Added explicit permission checks for these actions.
Flash messages now automatically dismiss after 10 seconds, solving the
issue where consecutive bulk visibility actions would show stale flash
messages. The previous flash blocked new ones from appearing until
manually closed.

Changes:
- Add AutoDismissFlash JavaScript hook that clears flash after timeout
- Add auto_dismiss_flash_messages component in Admin.Layouts
- Replace Backpex flash_messages with custom component in admin layout
- Add comprehensive tests for bulk visibility actions
@mkreyman mkreyman merged commit e2c3fc3 into master Nov 29, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant