Geo Replication List: Shared Bulk Actions Component

What does this MR do and why?

Part of #410401 (closed)
Broken off from !184092 (closed)
Based on POC: !181027 (closed)
Uses feature flag geo_replicables_filtered_list_view

This change extracts the existing bulk actions into there own component so they can be shared between the old UI and new UI based on the Feature Flag.

note: The UX of the actions leaves some to be desired. This MR is focused only on the migration, we are working on a new UX as part of Geo Replicables: Improve Bulk Actions Experienc... (#520355 - closed)

List of changes in this MR

  1. Extract existing Bulk Actions and Modal into a shared component
  2. Use shared component in non-ff component geo_replicable_filter_bar.vue
  3. Use shared component in ff template in app.vue
  4. Migrate existing specs to new file
  5. Add coverage for both parent components validating when the bulk actions should exist

Screenshots or screen recordings

note: to see a more in-depth before and after outside of the feature flag and end goal visit !184092 (closed)

Demo (FF on, this change)

Screen_Recording_2025-04-01_at_2.57.27_PM

Before After
FF On Before_FF_On After_FF_On
FF Off Before_FF_Off_-_Desktop After_FF_Off_-_Desktop

How to set up and validate locally

Setup Geo (optional)

Important: To properly test Geo you will need a separate GDK setup. Setup is straightforward but takes some time. Another option is to validate the code functionally and if needed schedule a call to sync and I can screen share my instance.

  1. Ensure no other GDKs are running. gdk stop/gdk kill
  2. Open an empty directory and install and run Geo with the one-line command found on the Easy installation instructions
  3. Access your primary and secondary Geo instances via 127.0.0.1:3000 and 127.0.0.1:3001.

Testing

  1. Test both sides of the feature flag Feature.enable(:geo_replicables_filtered_list_view)
  2. Access your primary GDK Geo Page (127.0.0.1:3000/admin/geo)
  3. Scroll down to the very bottom Replication details section
  4. Click one of the blue links (ex: Project Repositories)
  5. Find list with items in it
  6. Ensure bulk actions work and fire a modal when first clicked

Merge request reports

Loading