Skip to content

feat(dashboard): add bulk study actions with progress and reliable sync#816

Open
mohiuddinshahrukh wants to merge 1 commit into
hpi-studyu:devfrom
mohiuddinshahrukh:feat/dashboard-bulk-study-actions
Open

feat(dashboard): add bulk study actions with progress and reliable sync#816
mohiuddinshahrukh wants to merge 1 commit into
hpi-studyu:devfrom
mohiuddinshahrukh:feat/dashboard-bulk-study-actions

Conversation

@mohiuddinshahrukh
Copy link
Copy Markdown
Collaborator

Summary

Adds bulk study actions to the dashboard and makes their execution more reliable and transparent.

What changed

  • Added row selection to the studies table, including select/deselect and select all.
  • Added bulk actions for selected studies:
    • export
    • duplicate
    • delete
  • Moved bulk actions into a single Bulk actions dropdown.
  • Added loading and progress feedback during bulk operations.
  • Disabled interaction while a bulk action is running.
  • Improved bulk export feedback:
    • export only runs when triggered by the user
    • studies that cannot be exported are skipped
    • the UI reports which studies were skipped and why
  • Improved bulk delete reliability:
    • wait for persisted backend completion
    • refresh study data after delete/duplicate
    • only report deletion as successful when backend state confirms it
  • Improved delete failure messaging for backend conflicts, including user-friendly handling for studies that still have invite codes linked to them.

Technical changes

  • Updated dashboard selection and bulk-action state handling.
  • Added progress counters for long-running bulk operations.
  • Updated repository delete/duplicate paths to support non-optimistic persisted operations for bulk flows.
  • Preserved backend error details from API delete calls so the UI can show more meaningful failure reasons.

Files touched

  • designer_v2/lib/features/dashboard/dashboard_controller.dart
  • designer_v2/lib/features/dashboard/dashboard_page.dart
  • designer_v2/lib/features/dashboard/dashboard_state.dart
  • designer_v2/lib/features/dashboard/studies_table.dart
  • designer_v2/lib/features/dashboard/studies_table_column_header.dart
  • designer_v2/lib/features/dashboard/studies_table_item.dart
  • designer_v2/lib/features/analyze/study_export_zip.dart
  • designer_v2/lib/repositories/api_client.dart
  • designer_v2/lib/repositories/model_repository.dart
  • designer_v2/lib/repositories/study_repository.dart

Validation

  • Bulk action controls appear only when studies are selected.
  • Bulk actions run with a visible in-progress state and progress count.
  • Export reports skipped studies with reasons instead of silently failing.
  • Delete no longer claims success based only on local UI state.
  • Dashboard data is refreshed after delete and duplicate operations.

Copy link
Copy Markdown
Contributor

@johannesvedder johannesvedder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I already gave feedback on this, why it is not a good idea to include bulk actions.

@mohiuddinshahrukh
Copy link
Copy Markdown
Collaborator Author

Thanks for the feedback!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants