52 lines
2.5 KiB
Plaintext
52 lines
2.5 KiB
Plaintext
$(document).on "turbolinks:load", ->
|
|
subscribeToBroadcast = (broadcastToken) -> App.cable.subscriptions.create { channel: "BroadcastsChannel", token: broadcastToken },
|
|
connected: ->
|
|
# Called when the subscription is ready for use on the server
|
|
console.info "Subscribed to channel for broadcast:#{broadcastToken}"
|
|
|
|
disconnected: ->
|
|
# Called when the subscription has been terminated by the server
|
|
|
|
received: (data) ->
|
|
switch data.event
|
|
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)
|
|
|
|
refreshBroadcastVideo: (data) ->
|
|
$("#broadcast_updates").html data.status_content
|
|
stream_selected = $("#broadcast_video").data('videoType') == 'stream';
|
|
if data.streamer_status == 'recording' && data.status == 'active' && stream_selected
|
|
$("#broadcast_video").html data.video_content
|
|
new (Clappr.Player)(
|
|
<%= "baseUrl: 'http://cdn.clappr.io/latest'," if Rails.env.test? %>
|
|
parentId: '#broadcast_video'
|
|
source: data.full_live_stream_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
|
|
|
|
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
|