forked from External/greenlight
		
	add user waiting notifications back to main room
This commit is contained in:
		@@ -24,10 +24,14 @@
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  var enableMeetingUpdates = function() {
 | 
					  var enableMeetingUpdates = function() {
 | 
				
			||||||
 | 
					    var meetingId = ''
 | 
				
			||||||
 | 
					    if (!$(".page-wrapper.rooms").data('main-room')) {
 | 
				
			||||||
 | 
					      meetingId = $(".page-wrapper.rooms").data('id');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    App.meeting_update = App.cable.subscriptions.create({
 | 
					    App.meeting_update = App.cable.subscriptions.create({
 | 
				
			||||||
      channel: 'MeetingUpdatesChannel',
 | 
					      channel: 'MeetingUpdatesChannel',
 | 
				
			||||||
      admin_id: $(".page-wrapper.rooms").data('admin-id'),
 | 
					      admin_id: $(".page-wrapper.rooms").data('admin-id'),
 | 
				
			||||||
      meeting_id: $(".page-wrapper.rooms").data('id')
 | 
					      meeting_id: meetingId
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      received: function(data) {
 | 
					      received: function(data) {
 | 
				
			||||||
@@ -46,7 +50,7 @@
 | 
				
			|||||||
          showAlert(I18n.meeting_ended, 4000);
 | 
					          showAlert(I18n.meeting_ended, 4000);
 | 
				
			||||||
        } else if (data.action === 'user_waiting') {
 | 
					        } else if (data.action === 'user_waiting') {
 | 
				
			||||||
          // show a browser notification only to the owner
 | 
					          // show a browser notification only to the owner
 | 
				
			||||||
          if (GreenLight.user.roomOwner) {
 | 
					          if (isRoomOwner()) {
 | 
				
			||||||
            showNotification(I18n.user_waiting_title, {
 | 
					            showNotification(I18n.user_waiting_title, {
 | 
				
			||||||
              body: I18n.user_waiting_body.replace(/%{user}/, data.user)
 | 
					              body: I18n.user_waiting_body.replace(/%{user}/, data.user)
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
@@ -68,9 +72,7 @@
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    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)) {
 | 
				
			||||||
        if (!$(".page-wrapper.rooms").data('main-room')) {
 | 
					        enableMeetingUpdates();
 | 
				
			||||||
          enableMeetingUpdates();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -68,10 +68,14 @@ var showNotification = function(title, options) {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var isRoomOwner = function() {
 | 
				
			||||||
 | 
					  return $('body').data('current-user') === $('.page-wrapper.rooms').data('admin-id')
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// For now there are notifications only for users signed in and when they
 | 
					// For now there are notifications only for users signed in and when they
 | 
				
			||||||
// are in their room's page
 | 
					// are in their room's page
 | 
				
			||||||
$(document).on("turbolinks:load", function() {
 | 
					$(document).on("turbolinks:load", function() {
 | 
				
			||||||
  if (GreenLight.user.roomOwner) {
 | 
					  if (isRoomOwner()) {
 | 
				
			||||||
    Notification.requestPermission();
 | 
					    Notification.requestPermission();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -78,8 +78,8 @@ class BbbController < ApplicationController
 | 
				
			|||||||
      )
 | 
					      )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # the user can join the meeting
 | 
					      # the user can join the meeting
 | 
				
			||||||
      if bbb_res[:returncode] && user
 | 
					      if user
 | 
				
			||||||
        if current_user == user
 | 
					        if bbb_res[:returncode] && current_user == user
 | 
				
			||||||
          JoinMeetingJob.perform_later(user.encrypted_id, params[:id])
 | 
					          JoinMeetingJob.perform_later(user.encrypted_id, params[:id])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # user will be waiting for a moderator
 | 
					      # user will be waiting for a moderator
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,6 +19,8 @@ class NotifyUserWaitingJob < ApplicationJob
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def perform(room, meeting, user)
 | 
					  def perform(room, meeting, user)
 | 
				
			||||||
    ActionCable.server.broadcast "#{room}-#{meeting}_meeting_updates_channel",
 | 
					    ActionCable.server.broadcast "#{room}-#{meeting}_meeting_updates_channel",
 | 
				
			||||||
                                 { action: 'user_waiting', user: user }
 | 
					                                  { action: 'user_waiting', user: user }
 | 
				
			||||||
 | 
					    ActionCable.server.broadcast "#{room}_meeting_updates_channel",
 | 
				
			||||||
 | 
					                                  { action: 'user_waiting', user: user }
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,7 +45,9 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
 | 
				
			|||||||
    <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet">
 | 
					    <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet">
 | 
				
			||||||
  </head>
 | 
					  </head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <body class="app-background" data-controller="<%= params[:controller] %>" data-action="<%= params[:action] %>" data-resource="<%= params[:resource] %>"
 | 
					  <body class="app-background" data-controller="<%= params[:controller] %>" data-action="<%= params[:action] %>"
 | 
				
			||||||
 | 
					    data-resource="<%= params[:resource] %>"
 | 
				
			||||||
 | 
					    data-current-user="<%= current_user.try(:encrypted_id) %>"
 | 
				
			||||||
    style="background-image:url(<%= image_path('greenlight_background.png') if params[:controller] == 'landing' %>);">
 | 
					    style="background-image:url(<%= image_path('greenlight_background.png') if params[:controller] == 'landing' %>);">
 | 
				
			||||||
    <!-- Messages -->
 | 
					    <!-- Messages -->
 | 
				
			||||||
    <div id='alerts'>
 | 
					    <div id='alerts'>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user