diff --git a/app/assets/stylesheets/utilities/_primary_themes.scss b/app/assets/stylesheets/utilities/_primary_themes.scss
index c8a37695..e94dc328 100644
--- a/app/assets/stylesheets/utilities/_primary_themes.scss
+++ b/app/assets/stylesheets/utilities/_primary_themes.scss
@@ -161,4 +161,14 @@ input:focus, select:focus {
background-color: $primary-color-darken !important;
border-color: $primary-color-darken !important;
color: white !important;
+}
+
+.custom-switch-input:checked ~ .custom-switch-indicator {
+ background-color: $primary-color !important;
+ border-color: $primary-color-darken !important;
+}
+
+.custom-switch-input:focus ~ .custom-switch-indicator {
+ box-shadow: 0 0 0 2px $primary-color-lighten;
+ border-color: $primary-color-darken !important;
}
\ No newline at end of file
diff --git a/app/controllers/rooms_controller.rb b/app/controllers/rooms_controller.rb
index 75b10c39..233b6c23 100644
--- a/app/controllers/rooms_controller.rb
+++ b/app/controllers/rooms_controller.rb
@@ -39,7 +39,7 @@ class RoomsController < ApplicationController
@room = Room.new(name: room_params[:name], access_code: room_params[:access_code])
@room.owner = current_user
@room.room_settings = create_room_settings_string(room_params[:mute_on_join],
- room_params[:require_moderator_approval], room_params[:anyone_can_start])
+ room_params[:require_moderator_approval], room_params[:anyone_can_start], room_params[:all_join_moderator])
if @room.save
if room_params[:auto_join] == "1"
@@ -203,7 +203,7 @@ class RoomsController < ApplicationController
@room.update_attributes(name: params[:room_name] || room_params[:name])
elsif update_type.eql? "settings"
room_settings_string = create_room_settings_string(room_params[:mute_on_join],
- room_params[:require_moderator_approval], room_params[:anyone_can_start])
+ room_params[:require_moderator_approval], room_params[:anyone_can_start], room_params[:all_join_moderator])
@room.update_attributes(room_settings: room_settings_string)
elsif update_type.eql? "access_code"
@room.update_attributes(access_code: room_params[:access_code])
@@ -211,7 +211,7 @@ class RoomsController < ApplicationController
end
end
- def create_room_settings_string(mute_res, require_approval_res, start_res)
+ def create_room_settings_string(mute_res, require_approval_res, start_res, join_mod)
room_settings = {}
room_settings["muteOnStart"] = mute_res == "1"
@@ -219,12 +219,14 @@ class RoomsController < ApplicationController
room_settings["anyoneCanStart"] = start_res == "1"
+ room_settings["joinModerator"] = join_mod == "1"
+
room_settings.to_json
end
def room_params
params.require(:room).permit(:name, :auto_join, :mute_on_join, :access_code,
- :require_moderator_approval, :anyone_can_start)
+ :require_moderator_approval, :anyone_can_start, :all_join_moderator)
end
# Find the room from the uid.
@@ -297,8 +299,7 @@ class RoomsController < ApplicationController
if @room.running? || @room.owned_by?(current_user) || room_settings["anyoneCanStart"]
# Determine if the user needs to join as a moderator.
- opts[:user_is_moderator] = @room.owned_by?(current_user) ||
- (room_settings["anyoneCanStart"] && !@room.running?)
+ opts[:user_is_moderator] = @room.owned_by?(current_user) || room_settings["joinModerator"]
opts[:require_moderator_approval] = room_settings["requireModeratorApproval"]
diff --git a/app/views/shared/modals/_create_room_modal.html.erb b/app/views/shared/modals/_create_room_modal.html.erb
index 5f8e7058..e7e6e8b7 100644
--- a/app/views/shared/modals/_create_room_modal.html.erb
+++ b/app/views/shared/modals/_create_room_modal.html.erb
@@ -67,6 +67,14 @@
<% end %>
+ <% if Rails.configuration.room_features.include? "all-join-moderator" %>
+
+ <% end %>
+