Class: Spree::Admin::ImportSubscriber

Inherits:
Subscriber
  • Object
show all
Defined in:
app/subscribers/spree/admin/import_subscriber.rb

Overview

Handles Import events for the admin interface.

This subscriber listens to import.completed event and handles:

  • Updating the loader in the import view (Turbo Streams)

We use async: false because the UI update should happen immediately after the import completes.

Instance Method Summary collapse

Instance Method Details

#update_loader_in_import_view(event) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/subscribers/spree/admin/import_subscriber.rb', line 18

def update_loader_in_import_view(event)
  import_id = event.payload['id']
  return unless import_id

  import = Spree::Import.find_by_prefix_id(import_id)
  return unless import
  return unless import.respond_to?(:broadcast_update_to)

  import.broadcast_update_to(
    "import_#{import.id}_loader",
    target: 'loader',
    partial: 'spree/admin/imports/loader',
    locals: { import: import }
  )
end