diff --git a/app/assets/javascripts/channels/meeting_updates.js b/app/assets/javascripts/channels/meeting_updates.js
index 0cf1ba32..a3ce7157 100644
--- a/app/assets/javascripts/channels/meeting_updates.js
+++ b/app/assets/javascripts/channels/meeting_updates.js
@@ -24,10 +24,14 @@
};
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({
channel: 'MeetingUpdatesChannel',
admin_id: $(".page-wrapper.rooms").data('admin-id'),
- meeting_id: $(".page-wrapper.rooms").data('id')
+ meeting_id: meetingId
},
{
received: function(data) {
@@ -46,7 +50,7 @@
showAlert(I18n.meeting_ended, 4000);
} else if (data.action === 'user_waiting') {
// show a browser notification only to the owner
- if (GreenLight.user.roomOwner) {
+ if (isRoomOwner()) {
showNotification(I18n.user_waiting_title, {
body: I18n.user_waiting_body.replace(/%{user}/, data.user)
});
@@ -68,9 +72,7 @@
}
if ($("body[data-controller=landing]").get(0)) {
if ($("body[data-action=rooms]").get(0)) {
- if (!$(".page-wrapper.rooms").data('main-room')) {
- enableMeetingUpdates();
- }
+ enableMeetingUpdates();
}
}
});
diff --git a/app/assets/javascripts/shared.js.erb b/app/assets/javascripts/shared.js.erb
index dba6461e..dd7cc53e 100644
--- a/app/assets/javascripts/shared.js.erb
+++ b/app/assets/javascripts/shared.js.erb
@@ -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
// are in their room's page
$(document).on("turbolinks:load", function() {
- if (GreenLight.user.roomOwner) {
+ if (isRoomOwner()) {
Notification.requestPermission();
}
});
diff --git a/app/controllers/bbb_controller.rb b/app/controllers/bbb_controller.rb
index 9e7b2ef6..19704e6e 100644
--- a/app/controllers/bbb_controller.rb
+++ b/app/controllers/bbb_controller.rb
@@ -78,8 +78,8 @@ class BbbController < ApplicationController
)
# the user can join the meeting
- if bbb_res[:returncode] && user
- if current_user == user
+ if user
+ if bbb_res[:returncode] && current_user == user
JoinMeetingJob.perform_later(user.encrypted_id, params[:id])
# user will be waiting for a moderator
diff --git a/app/jobs/notify_user_waiting_job.rb b/app/jobs/notify_user_waiting_job.rb
index 2437d840..d36ca411 100644
--- a/app/jobs/notify_user_waiting_job.rb
+++ b/app/jobs/notify_user_waiting_job.rb
@@ -19,6 +19,8 @@ class NotifyUserWaitingJob < ApplicationJob
def perform(room, meeting, user)
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
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index d7584fce..d213488d 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -45,7 +45,9 @@ with BigBlueButton; if not, see