Replace bulk invoice CableReady broadcast with ActionCable

This commit is contained in:
wandji20
2024-10-15 03:13:47 +01:00
parent 039c46cadd
commit 4e93b49104
2 changed files with 8 additions and 7 deletions

View File

@@ -1,7 +1,6 @@
# frozen_string_literal: true
class BulkInvoiceJob < ApplicationJob
include CableReady::Broadcaster
delegate :render, to: ActionController::Base
attr_reader :options
@@ -40,13 +39,14 @@ class BulkInvoiceJob < ApplicationJob
def broadcast(filepath, channel)
file_id = filepath.split("/").last.split(".").first
cable_ready[channel].
inner_html(
ActionCable.server.broadcast(
channel,
{
selector: "#bulk_invoices_modal .modal-content",
html: render(partial: "spree/admin/orders/bulk/invoice_link",
locals: { invoice_url: "/admin/orders/invoices/#{file_id}" })
).
broadcast
}
)
end
def ensure_directory_exists(filepath)

View File

@@ -1,8 +1,9 @@
import consumer from './consumer'
import CableReady from 'cable_ready'
consumer.subscriptions.create("SessionChannel", {
received(data) {
if (data.cableReady) CableReady.perform(data.operations)
if (!data.selector) return;
document.querySelector(data.selector).innerHTML = data.html;
}
});