diff --git a/app/controllers/rooms_controller.rb b/app/controllers/rooms_controller.rb index 857819ec..737cc28c 100644 --- a/app/controllers/rooms_controller.rb +++ b/app/controllers/rooms_controller.rb @@ -94,7 +94,11 @@ class RoomsController < ApplicationController opts = default_meeting_options opts[:user_is_moderator] = true - redirect_to @room.join_path(current_user.name, opts, current_user.uid) + begin + redirect_to @room.join_path(current_user.name, opts, current_user.uid) + rescue BigBlueButton::BigBlueButtonException => exc + redirect_to room_path, notice: I18n.t(exc.key.to_s.underscore, default: I18n.t("bigbluebutton_exception")) + end # Notify users that the room has started. # Delay 5 seconds to allow for server start, although the request will retry until it succeeds. diff --git a/app/models/room.rb b/app/models/room.rb index 867886c2..24e737b8 100644 --- a/app/models/room.rb +++ b/app/models/room.rb @@ -63,6 +63,7 @@ class Room < ApplicationRecord bbb.create_meeting(name, bbb_id, create_options) rescue BigBlueButton::BigBlueButtonException => exc puts "BigBlueButton failed on create: #{exc.key}: #{exc.message}" + raise exc end end diff --git a/app/views/rooms/show.html.erb b/app/views/rooms/show.html.erb index 199c596f..7869d7f5 100644 --- a/app/views/rooms/show.html.erb +++ b/app/views/rooms/show.html.erb @@ -13,6 +13,14 @@ # with BigBlueButton; if not, see . %> +<% unless flash.empty? %> + <%= render "shared/error_banner" do %> + <% flash.each do |key, value| %> + <%= content_tag :div, value, class: "flash #{key} d-inline" %> + <% end %> + <% end %> +<% end %> +
diff --git a/config/locales/en.yml b/config/locales/en.yml index 9b1c488f..e466cc28 100755 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -22,6 +22,7 @@ en: user: accepted_terms: "Terms and Conditions" bigbluebutton: BigBlueButton + bigbluebutton_exception: Oops, there was an error when starting the meeting! cancel: Cancel copy: Copy delete: Delete @@ -78,6 +79,7 @@ en: version: We've released a new version of Greenlight, but your database isn't compatible. ldap_error: Unable to connect to the LDAP server. Please check your LDAP configuration in the env file and ensure your server is running. login: Sign in + max_concurrent: The maximum number of concurrent sessions allowed has been reached! modal: create_room: auto_join: Automatically join me into the room.