Added the ability to choose which room settings are available using env variable (#363)

This commit is contained in:
farhatahmad 2019-02-06 16:13:53 -05:00 committed by Jesus Federico
parent 5a7c3133da
commit d24e8fad14
6 changed files with 51 additions and 71 deletions

View File

@ -20,31 +20,6 @@ $(document).on('turbolinks:load', function(){
if(controller == "rooms" && action == "show" || controller == "rooms" && action == "update"){ if(controller == "rooms" && action == "show" || controller == "rooms" && action == "update"){
// Set a room block rename event
var configure_room_block = function(room_block){
if(!room_block.is('#home_room_block')){
// Register a click event on each room_block rename dropdown
room_block.find('#rename-room-button').on('click', function(e){
room_block.find('#room-name-editable-input').on('focusout', function(){
submit_rename_request(room_block.find('.card'));
$(window).off('mousedown keydown');
});
room_block.click(function(linkEvent) { linkEvent.preventDefault(); });
room_block.find('#room-name').hide();
room_block.find('#room-name-editable').show();
room_block.find('#room-name-editable-input').select()
// Stop automatic refresh
e.preventDefault();
register_window_event(room_block.find('.card'), 'room-name-editable-input', null);
});
}
}
// Set a room header rename event // Set a room header rename event
var configure_room_header = function(room_title){ var configure_room_header = function(room_title){
@ -182,12 +157,6 @@ $(document).on('turbolinks:load', function(){
// Configure renaming for room header // Configure renaming for room header
configure_room_header(room_title); configure_room_header(room_title);
// Configure renaming for room blocks
room_blocks.each(function(){
var room_block = $(this)
configure_room_block(room_block)
});
// Configure renaming for recording rows // Configure renaming for recording rows
recording_rows.each(function(){ recording_rows.each(function(){
var recording_title = $(this).find('#recording-title'); var recording_title = $(this).find('#recording-title');

View File

@ -58,7 +58,6 @@ $(document).on('turbolinks:load', function(){
$("#createRoomModal form").attr("action", "/") $("#createRoomModal form").attr("action", "/")
updateDropdown($(".dropdown-item[value='default']")) updateDropdown($(".dropdown-item[value='default']"))
$("#room_mute_on_join").prop("checked", false) $("#room_mute_on_join").prop("checked", false)
$("#auto-join-label").addClass("mt-3 mb-6")
//show all elements & their children with a create-only class //show all elements & their children with a create-only class
$(".create-only").each(function() { $(".create-only").each(function() {
@ -68,8 +67,8 @@ $(document).on('turbolinks:load', function(){
//hide all elements & their children with a update-only class //hide all elements & their children with a update-only class
$(".update-only").each(function() { $(".update-only").each(function() {
$(this).hide() $(this).attr('style',"display:none !important")
if($(this).children().length > 0) $(this).children().hide() if($(this).children().length > 0) $(this).children().attr('style',"display:none !important")
}) })
}) })
@ -78,7 +77,6 @@ $(document).on('turbolinks:load', function(){
var room_block_uid = $(this).closest("#room-block").data("room-uid") var room_block_uid = $(this).closest("#room-block").data("room-uid")
$("#create-room-name").val($(this).closest("tbody").find("#room-name h4").text()) $("#create-room-name").val($(this).closest("tbody").find("#room-name h4").text())
$("#createRoomModal form").attr("action", "/" + room_block_uid + "/update_settings") $("#createRoomModal form").attr("action", "/" + room_block_uid + "/update_settings")
$("#auto-join-label").removeClass("mt-3 mb-6")
//show all elements & their children with a update-only class //show all elements & their children with a update-only class
$(".update-only").each(function() { $(".update-only").each(function() {
@ -88,8 +86,8 @@ $(document).on('turbolinks:load', function(){
//hide all elements & their children with a create-only class //hide all elements & their children with a create-only class
$(".create-only").each(function() { $(".create-only").each(function() {
$(this).hide() $(this).attr('style',"display:none !important")
if($(this).children().length > 0) $(this).children().hide() if($(this).children().length > 0) $(this).children().attr('style',"display:none !important")
}) })
updateCurrentSettings($(this).closest("#room-block").data("room-settings")) updateCurrentSettings($(this).closest("#room-block").data("room-settings"))

View File

@ -47,9 +47,6 @@
<i class="fas fa-ellipsis-v px-4"></i> <i class="fas fa-ellipsis-v px-4"></i>
</a> </a>
<div class="dropdown-menu"> <div class="dropdown-menu">
<a href="" id="rename-room-button" class="dropdown-item">
<i class="dropdown-icon far fa-edit"></i> <%= t("rename") %>
</a>
<a href="" data-toggle="modal" data-target="#createRoomModal" class="update-room dropdown-item"> <a href="" data-toggle="modal" data-target="#createRoomModal" class="update-room dropdown-item">
<i class="dropdown-icon fas fa-cog"></i> <%= t("room.settings") %> <i class="dropdown-icon fas fa-cog"></i> <%= t("room.settings") %>
</a> </a>

View File

@ -24,7 +24,7 @@
</div> </div>
<%= form_for(:room, url: rooms_path) do |f| %> <%= form_for(:room, url: rooms_path) do |f| %>
<div class="input-icon"> <div class="input-icon mb-2">
<span class="input-icon-addon"> <span class="input-icon-addon">
<i class="fas fa-chalkboard-teacher"></i> <i class="fas fa-chalkboard-teacher"></i>
</span> </span>
@ -32,7 +32,8 @@
<div class="invalid-feedback text-left"><%= t("modal.create_room.not_blank") %></div> <div class="invalid-feedback text-left"><%= t("modal.create_room.not_blank") %></div>
</div> </div>
<label class="mt-5 mb-3 w-100 text-left d-inline-block"> <% if Rails.configuration.room_features.include? "default-client" %>
<label class="mt-3 mb-3 w-100 text-left d-inline-block">
<input type="hidden" name="room[client]" id="room_client"> <input type="hidden" name="room[client]" id="room_client">
<span id="room-settings-dropdown-label" class="custom-switch-description"><%= t("modal.room_settings.client")%></span> <span id="room-settings-dropdown-label" class="custom-switch-description"><%= t("modal.room_settings.client")%></span>
<div id="dropdown-div" class="dropdown float-right"> <div id="dropdown-div" class="dropdown float-right">
@ -46,19 +47,22 @@
</div> </div>
</div> </div>
</label> </label>
<% end %>
<% if Rails.configuration.room_features.include? "mute-on-join" %>
<label class="custom-switch mt-3 mb-3 w-100 text-left d-inline-block"> <label class="custom-switch mt-3 mb-3 w-100 text-left d-inline-block">
<span class="custom-switch-description"><%= t("modal.room_settings.mute")%></span> <span class="custom-switch-description"><%= t("modal.room_settings.mute")%></span>
<%= f.check_box :mute_on_join, class: "custom-switch-input", checked: false %> <%= f.check_box :mute_on_join, class: "custom-switch-input", checked: false %>
<span class="custom-switch-indicator float-right"></span> <span class="custom-switch-indicator float-right"></span>
</label> </label>
<% end %>
<label id="auto-join-label" class="create-only custom-switch mb-6 w-100 text-left d-inline-block"> <label id="auto-join-label" class="create-only custom-switch mt-3 mb-3 w-100 text-left d-inline-block">
<span class="custom-switch-description"><%= t("modal.create_room.auto_join") %></span> <span class="custom-switch-description"><%= t("modal.create_room.auto_join") %></span>
<%= f.check_box :auto_join, class: "custom-switch-input", checked: false %> <%= f.check_box :auto_join, class: "custom-switch-input", checked: false %>
<span class="custom-switch-indicator float-right"></span> <span class="custom-switch-indicator float-right"></span>
</label> </label>
<div> <div class="mt-4">
<%= f.submit t("header.create_room"), id: "create-room-submit", class: "create-only btn btn-outline-primary btn-block btn-pill" %> <%= f.submit t("header.create_room"), id: "create-room-submit", class: "create-only btn btn-outline-primary btn-block btn-pill" %>
<%= f.submit t("modal.room_settings.update"), id: "create-room-submit", class: "update-only btn btn-outline-primary btn-block btn-pill" %> <%= f.submit t("modal.room_settings.update"), id: "create-room-submit", class: "update-only btn btn-outline-primary btn-block btn-pill" %>
</div> </div>

View File

@ -83,5 +83,8 @@ module Greenlight
# Enable/disable recording thumbnails. # Enable/disable recording thumbnails.
config.recording_thumbnails = (ENV['RECORDING_THUMBNAILS'] != "false") config.recording_thumbnails = (ENV['RECORDING_THUMBNAILS'] != "false")
# Configure which settings are available to user on room creation/edit after creation
config.room_features = ENV['ROOM_FEATURES'] || ""
end end
end end

View File

@ -111,6 +111,15 @@ RELATIVE_URL_ROOT=/b
# By default, this is the BigBlueButton logo. # By default, this is the BigBlueButton logo.
BRANDING_IMAGE= BRANDING_IMAGE=
# Specify which settings you would like the users to configure on room creation
# or edit after the room has been created
# By default, all settings are turned OFF.
#
# Current settings available:
# default-client: Room owners can decide between the Flash Client and the HTML5 Client for a room
# mute-on-join: Automatically mute users by default when they join a room
ROOM_FEATURES=default-client,mute-on-join
# Comment this out to send logs to STDOUT in production instead of log/production.log . # Comment this out to send logs to STDOUT in production instead of log/production.log .
# #
# RAILS_LOG_TO_STDOUT=true # RAILS_LOG_TO_STDOUT=true