forked from External/greenlight
		
	fix recording update channel and routes
This commit is contained in:
		@@ -62,13 +62,13 @@
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  $(document).on("turbolinks:load", function() {
 | 
					  $(document).on("turbolinks:load", function() {
 | 
				
			||||||
 | 
					    // disable meeting updates if enabled from a previous page
 | 
				
			||||||
 | 
					    if (App.meeting_update) {
 | 
				
			||||||
 | 
					      disableMeetingUpdates();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    if ($("body[data-controller=landing]").get(0)) {
 | 
					    if ($("body[data-controller=landing]").get(0)) {
 | 
				
			||||||
      if ($("body[data-action=rooms]").get(0)) {
 | 
					      if ($("body[data-action=rooms]").get(0)) {
 | 
				
			||||||
        // disable meeting updates if enabled from a previous page
 | 
					        if (!$(".page-wrapper.rooms").data('main-room')) {
 | 
				
			||||||
        if (App.meeting_update) {
 | 
					 | 
				
			||||||
          disableMeetingUpdates();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if ($(".page-wrapper.rooms").data('main-room') === false) {
 | 
					 | 
				
			||||||
          enableMeetingUpdates();
 | 
					          enableMeetingUpdates();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,10 +16,11 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
(function() {
 | 
					(function() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  var initRooms = function() {
 | 
					  var enableRecordingUpdates = function() {
 | 
				
			||||||
    App.messages = App.cable.subscriptions.create({
 | 
					    App.recording_update = App.cable.subscriptions.create({
 | 
				
			||||||
      channel: 'RecordingUpdatesChannel',
 | 
					      channel: 'RecordingUpdatesChannel',
 | 
				
			||||||
      encrypted_id: $(".page-wrapper").data('id')
 | 
					      admin_id: $(".page-wrapper.rooms").data('admin-id'),
 | 
				
			||||||
 | 
					      meeting_id: $(".page-wrapper.rooms").data('id')
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      received: function(data) {
 | 
					      received: function(data) {
 | 
				
			||||||
@@ -57,10 +58,19 @@
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  var disableRecordingUpdates = function() {
 | 
				
			||||||
 | 
					    App.recording_update.unsubscribe();
 | 
				
			||||||
 | 
					    delete App.recording_update
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  $(document).on("turbolinks:load", function() {
 | 
					  $(document).on("turbolinks:load", function() {
 | 
				
			||||||
 | 
					    // disable recording updates if enabled from a previous page
 | 
				
			||||||
 | 
					    if (App.recording_update) {
 | 
				
			||||||
 | 
					      disableRecordingUpdates();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    if ($("body[data-controller=landing]").get(0)) {
 | 
					    if ($("body[data-controller=landing]").get(0)) {
 | 
				
			||||||
      if ($("body[data-action=rooms]").get(0)) {
 | 
					      if ($("body[data-action=rooms]").get(0)) {
 | 
				
			||||||
        initRooms();
 | 
					        enableRecordingUpdates();
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,6 +16,11 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class RecordingUpdatesChannel < ApplicationCable::Channel
 | 
					class RecordingUpdatesChannel < ApplicationCable::Channel
 | 
				
			||||||
  def subscribed
 | 
					  def subscribed
 | 
				
			||||||
    stream_from "#{params[:encrypted_id]}_recording_updates_channel"
 | 
					    full_id = if params[:meeting_id].present?
 | 
				
			||||||
 | 
					      "#{params[:admin_id]}-#{params[:meeting_id]}"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      params[:admin_id]
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					    stream_from "#{full_id}_recording_updates_channel"
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,17 +28,20 @@ Rails.application.routes.draw do
 | 
				
			|||||||
  # There are two resources [meetings|rooms]
 | 
					  # There are two resources [meetings|rooms]
 | 
				
			||||||
  # meetings offer a landing page for NON authenticated users to create and join session in BigBlueButton
 | 
					  # meetings offer a landing page for NON authenticated users to create and join session in BigBlueButton
 | 
				
			||||||
  # rooms offer a customized landing page for authenticated users to create and join session in BigBlueButton
 | 
					  # rooms offer a customized landing page for authenticated users to create and join session in BigBlueButton
 | 
				
			||||||
  get '/:resource/:id', to: 'landing#resource', as: :resource
 | 
					 | 
				
			||||||
  get '/:resource/:id/join', to: 'bbb#join', as: :bbb_join, defaults: {format: 'json'}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  get '/rooms/:room_id/recordings', to: 'bbb#recordings', defaults: {format: 'json'}
 | 
					  get '/rooms/:room_id/recordings', to: 'bbb#recordings', defaults: {format: 'json'}
 | 
				
			||||||
  post '/:resource/:id/callback', to: 'bbb#callback' #, defaults: {format: 'json'}
 | 
					 | 
				
			||||||
  patch '/rooms/:id/recordings/:record_id', to: 'bbb#update_recordings', defaults: {format: 'json'}
 | 
					  patch '/rooms/:id/recordings/:record_id', to: 'bbb#update_recordings', defaults: {format: 'json'}
 | 
				
			||||||
  delete '/rooms/:id/recordings/:record_id', to: 'bbb#delete_recordings', defaults: {format: 'json'}
 | 
					  delete '/rooms/:id/recordings/:record_id', to: 'bbb#delete_recordings', defaults: {format: 'json'}
 | 
				
			||||||
 | 
					  get '/rooms/:room_id/:id', to: 'landing#resource', resource: 'rooms'
 | 
				
			||||||
 | 
					  get '/rooms/:room_id',  to: 'landing#resource', resource: 'rooms'
 | 
				
			||||||
 | 
					  delete '/rooms/:room_id/:id/end', to: 'bbb#end', defaults: {format: 'json'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  get '/:resource/:id', to: 'landing#resource', as: :resource
 | 
				
			||||||
 | 
					  get '/:resource/:id/join', to: 'bbb#join', as: :bbb_join, defaults: {format: 'json'}
 | 
				
			||||||
 | 
					  post '/:resource/:id/callback', to: 'bbb#callback' #, defaults: {format: 'json'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  get '/:resource/:room_id/:id/wait', to: 'landing#wait_for_moderator'
 | 
					  get '/:resource/:room_id/:id/wait', to: 'landing#wait_for_moderator'
 | 
				
			||||||
  get '/:resource/:room_id/:id/session_status_refresh', to: 'landing#session_status_refresh'
 | 
					  get '/:resource/:room_id/:id/session_status_refresh', to: 'landing#session_status_refresh'
 | 
				
			||||||
  delete '/rooms/:room_id/:id/end', to: 'bbb#end', defaults: {format: 'json'}
 | 
					 | 
				
			||||||
  get '/rooms/:room_id/:id', to: 'landing#resource', resource: 'rooms'
 | 
					 | 
				
			||||||
  get '/:resource/:room_id/:id/join', to: 'bbb#join', defaults: {format: 'json'}
 | 
					  get '/:resource/:room_id/:id/join', to: 'bbb#join', defaults: {format: 'json'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user