From 92da1f6f876cbb0158f17d95433072428b75afa9 Mon Sep 17 00:00:00 2001
From: etiennevvv <59622352+etiennevvv@users.noreply.github.com>
Date: Fri, 21 Feb 2020 09:20:22 -0500
Subject: [PATCH] GRN2-269: Pulling room settings using GET instead of
data-attributes (#953)
* GRN2-269: Pulling room settings using GET instead of data-attributes
* GRN2-269: added test case and fixed documentation
* GRN2:269: rubocop fix
* GRN2-269: Fixed test case
---
app/assets/javascripts/room.js | 18 +++++++++++-------
app/controllers/rooms_controller.rb | 8 ++++++++
.../rooms/components/_room_block.html.erb | 4 ++--
config/routes.rb | 1 +
spec/controllers/rooms_controller_spec.rb | 14 ++++++++++++++
5 files changed, 36 insertions(+), 9 deletions(-)
diff --git a/app/assets/javascripts/room.js b/app/assets/javascripts/room.js
index 79e8652a..e3afbd8a 100644
--- a/app/assets/javascripts/room.js
+++ b/app/assets/javascripts/room.js
@@ -161,6 +161,7 @@ function showCreateRoom(target) {
function showUpdateRoom(target) {
var modal = $(target)
var update_path = modal.closest("#room-block").data("path")
+ var settings_path = modal.data("settings-path")
$("#create-room-name").val(modal.closest("#room-block").find("#room-name-text").text())
$("#createRoomModal form").attr("action", update_path)
@@ -176,7 +177,7 @@ function showUpdateRoom(target) {
if($(this).children().length > 0) { $(this).children().attr('style',"display:none !important") }
})
- updateCurrentSettings(modal.closest("#room-block").data("room-settings"))
+ updateCurrentSettings(settings_path)
var accessCode = modal.closest("#room-block").data("room-access-code")
@@ -195,12 +196,15 @@ function showDeleteRoom(target) {
}
//Update the createRoomModal to show the correct current settings
-function updateCurrentSettings(settings){
- //set checkbox
- $("#room_mute_on_join").prop("checked", settings.muteOnStart)
- $("#room_require_moderator_approval").prop("checked", settings.requireModeratorApproval)
- $("#room_anyone_can_start").prop("checked", settings.anyoneCanStart)
- $("#room_all_join_moderator").prop("checked", settings.joinModerator)
+function updateCurrentSettings(settings_path){
+ // Get current room settings and set checkbox
+ $.get(settings_path, function(room_settings) {
+ var settings = JSON.parse(room_settings)
+ $("#room_mute_on_join").prop("checked", settings.muteOnStart)
+ $("#room_require_moderator_approval").prop("checked", settings.requireModeratorApproval)
+ $("#room_anyone_can_start").prop("checked", settings.anyoneCanStart)
+ $("#room_all_join_moderator").prop("checked", settings.joinModerator)
+ })
}
function generateAccessCode(){
diff --git a/app/controllers/rooms_controller.rb b/app/controllers/rooms_controller.rb
index b6096d88..d02fba87 100644
--- a/app/controllers/rooms_controller.rb
+++ b/app/controllers/rooms_controller.rb
@@ -248,6 +248,14 @@ class RoomsController < ApplicationController
end
end
+ # GET /:room_uid/room_settings
+ def room_settings
+ # Respond with JSON object of the room_settings
+ respond_to do |format|
+ format.json { render body: @room.room_settings.to_json }
+ end
+ end
+
# GET /:room_uid/logout
def logout
logger.info "Support: #{current_user.present? ? current_user.email : 'Guest'} has left room #{@room.uid}"
diff --git a/app/views/rooms/components/_room_block.html.erb b/app/views/rooms/components/_room_block.html.erb
index bef5edf5..b2dfb822 100644
--- a/app/views/rooms/components/_room_block.html.erb
+++ b/app/views/rooms/components/_room_block.html.erb
@@ -13,7 +13,7 @@
# with BigBlueButton; if not, see