Files
old-holivud2/app/assets/javascripts/channels/broadcasts.coffee

50 lines
2.3 KiB
CoffeeScript
Raw Normal View History

2020-05-31 22:38:19 +02:00
$(document).on "turbolinks:load", ->
2020-06-03 17:14:04 +02:00
subscribeToBroadcast = (broadcastToken) -> App.cable.subscriptions.create { channel: "BroadcastsChannel", token: broadcastToken },
2020-05-31 22:38:19 +02:00
connected: ->
# Called when the subscription is ready for use on the server
2020-06-03 17:14:04 +02:00
console.info "Subscribed to channel for broadcast:#{broadcastToken}"
2020-05-31 22:38:19 +02:00
disconnected: ->
# Called when the subscription has been terminated by the server
received: (data) ->
switch data.event
2020-06-17 14:39:10 +02:00
when "broadcast_stream_update"
return unless document.querySelector("meta[name=broadcast-token][current=true][content='#{broadcastToken}']")
@refreshBroadcastVideo(data)
when "stream_recording_ready"
return unless document.querySelector("meta[name=broadcast-token][current=true][content='#{broadcastToken}']")
@showBroadcastRecordings(data)
when "file_upload_update"
return unless document.querySelector("meta[name=broadcast-token][content='#{broadcastToken}']")
@refreshBroadcastFilesTab(data)
2020-05-31 22:38:19 +02:00
refreshBroadcastVideo: (data) ->
$("#broadcast_updates").html data.status_content
if data.streamer_status == 'recording' && data.status == 'active'
$("#broadcast_video").html data.video_content
new (Clappr.Player)(
parentId: '#broadcast_video'
source: data.playback_url
width: '100%',
height: '100%',
mute: true,
autoPlay: true,
hlsMinimumDvrSize: 1)
if data.streamer_status == "idle" && data.status == "idle"
$("#broadcast_video").html data.video_content
showBroadcastRecordings: (data) ->
$(".flash-message").html data.flash_content
$("#broadcast_recordings").html data.recordings_content
$("#broadcast_recordings_nav").html data.recordings_nav_content
2020-06-03 17:14:04 +02:00
refreshBroadcastFilesTab: (data) ->
$("#broadcast_file_list_#{data.broadcast_token}").html data.files_content
$("#broadcast_files_pagination_#{data.broadcast_token}").html data.pagination_content
# Create a channel subscription for every broadcast included in the meta tags
get_token = (meta) -> meta.getAttribute("content")
broadcast_tokens = (get_token broadcast_meta for broadcast_meta in document.querySelectorAll("meta[name=broadcast-token]"))
subscribeToBroadcast token for token in broadcast_tokens