From 973c95339c58a9cd687aab143bc1790426d10bf0 Mon Sep 17 00:00:00 2001 From: farhatahmad <35435341+farhatahmad@users.noreply.github.com> Date: Wed, 31 Jul 2019 11:34:31 -0400 Subject: [PATCH] Added All Join as Moderator room setting (#696) --- .../utilities/_primary_themes.scss | 10 ++++++++++ app/controllers/rooms_controller.rb | 13 ++++++------ .../shared/modals/_create_room_modal.html.erb | 8 ++++++++ config/locales/en.yml | 1 + sample.env | 3 ++- spec/controllers/rooms_controller_spec.rb | 20 ++++++++++++++++--- 6 files changed, 45 insertions(+), 10 deletions(-) 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 %> +