43 lines
1.3 KiB
Ruby
43 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module ActionCableHelper
|
|
def trigger_rfc_action_cable
|
|
Thread.new do
|
|
# Context: RfC
|
|
if submission.study_group_id.present?
|
|
ActionCable.server.broadcast(
|
|
"la_exercises_#{exercise_id}_channel_study_group_#{submission.study_group_id}",
|
|
type: :rfc,
|
|
id: id,
|
|
html: ApplicationController.render(partial: 'request_for_comments/list_entry',
|
|
locals: {request_for_comment: self})
|
|
)
|
|
end
|
|
ensure
|
|
ActiveRecord::Base.connection_pool.release_connection
|
|
end
|
|
end
|
|
|
|
def trigger_rfc_action_cable_from_comment
|
|
# Context: Comment
|
|
RequestForComment.find_by(submission: file.context).trigger_rfc_action_cable
|
|
end
|
|
|
|
def trigger_working_times_action_cable
|
|
Thread.new do
|
|
# Context: Submission
|
|
if study_group_id.present?
|
|
ActionCable.server.broadcast(
|
|
"la_exercises_#{exercise_id}_channel_study_group_#{study_group_id}",
|
|
type: :working_times,
|
|
working_time_data: exercise.get_working_times_for_study_group(study_group_id, user)
|
|
)
|
|
end
|
|
ensure
|
|
ActiveRecord::Base.connection_pool.release_connection
|
|
end
|
|
end
|
|
end
|
|
|
|
# TODO: Check if any user is connected and prevent preparing the data otherwise
|