diff --git a/app/assets/javascripts/channels/projects.coffee b/app/assets/javascripts/channels/projects.coffee index 8f6dad1..9840f32 100644 --- a/app/assets/javascripts/channels/projects.coffee +++ b/app/assets/javascripts/channels/projects.coffee @@ -17,6 +17,7 @@ $(document).on "turbolinks:load", -> when "video_status_update" then @showVideoStatusUpdate(data.content) when "download_status_update" then @showDownloadStatusUpdate(data.content) when "conference_recording_ready" then @showDownloadStatusUpdate(data.content) + when "appearance_matching_flash_message" then @showMatchingStatusUpdate(data.content) showVideoStatusUpdate: (content) -> $("[data-ujs-target='video-analysis-msg']").replaceWith content @@ -24,3 +25,6 @@ $(document).on "turbolinks:load", -> showDownloadStatusUpdate: (content) -> $(".flash-message").html content $(".toast").toast('show') + + showMatchingStatusUpdate: (content) -> + $("#flash-message").replaceWith content diff --git a/app/channels/projects_channel.rb b/app/channels/projects_channel.rb index 68ee885..bc5b9c1 100644 --- a/app/channels/projects_channel.rb +++ b/app/channels/projects_channel.rb @@ -33,4 +33,15 @@ class ProjectsChannel < ApplicationCable::Channel content = ApplicationController.render partial: 'application/flash', locals: { flash: flash } broadcast_to project, event: :conference_recording_ready, content: content end + + def self.appearance_matching_flash_message(project, message, flash_type = :notice) + if (flash_type == :notice) + flash = OpenStruct.new notice: message + else + flash = OpenStruct.new alert: message + end + content = ApplicationController.render partial: 'application/flash', locals: { flash: flash } + + broadcast_to project, event: :appearance_matching_flash_message, content: content + end end diff --git a/app/jobs/match_appearance_releases_job.rb b/app/jobs/match_appearance_releases_job.rb index 66c7ee0..87c5b26 100644 --- a/app/jobs/match_appearance_releases_job.rb +++ b/app/jobs/match_appearance_releases_job.rb @@ -6,7 +6,11 @@ class MatchAppearanceReleasesJob < ApplicationJob def perform(project, attachments) filtered_attachments_object = filter_attachments attachments - return if filtered_attachments_object[:keys].blank? + if filtered_attachments_object[:keys].blank? + notification = I18n.t 'appearance_releases.create.matching_failed' + ProjectsChannel.appearance_matching_flash_message project, notification, :alert + return + end matching_request = MatchingRequest.create project: project, attachments: filtered_attachments_object[:signed_ids] @@ -17,6 +21,8 @@ class MatchAppearanceReleasesJob < ApplicationJob handle_matches matches, project, key_signed_id_hash handle_unmatches matches, project, key_signed_id_hash matching_request.destroy + + ProjectsChannel.appearance_matching_flash_message project, success_message end private @@ -113,4 +119,8 @@ class MatchAppearanceReleasesJob < ApplicationJob signed_ids: filtered_attachments_signed_ids } end + + def success_message + I18n.t 'appearance_releases.create.matching_completed' + end end diff --git a/app/views/application/_flash.html.erb b/app/views/application/_flash.html.erb index afba291..5eb926c 100644 --- a/app/views/application/_flash.html.erb +++ b/app/views/application/_flash.html.erb @@ -3,14 +3,14 @@
<%= flash.alert.html_safe %>
<%= flash.notice.html_safe %>
@@ -19,4 +19,3 @@ <% end %>