diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js index dceefaa2..71eb2e74 100644 --- a/app/assets/javascripts/main.js +++ b/app/assets/javascripts/main.js @@ -33,7 +33,7 @@ function getLocalizedString(key) { }) // If key is not found, search the fallback language for the key - if (translated == undefined) { + if (translated === undefined) { translated = I18nFallback keyArr.forEach(function(k) { diff --git a/app/assets/javascripts/room.js b/app/assets/javascripts/room.js index f6fe3b27..d03fac8e 100644 --- a/app/assets/javascripts/room.js +++ b/app/assets/javascripts/room.js @@ -44,93 +44,82 @@ $(document).on('turbolinks:load', function(){ if ($("#cant-create-room-wrapper").length){ $(".wrapper").css('height', '100%').css('height', '-=130px'); } - } - // Display and update all fields related to creating a room in the createRoomModal - $("#create-room-block").click(function(){ - $("#create-room-name").val("") - $("#create-room-access-code").text(getLocalizedString("modal.create_room.access_code_placeholder")) - $("#room_access_code").val(null) - - $("#createRoomModal form").attr("action", $("body").data('relative-root')) - $("#room_mute_on_join").prop("checked", false) - $("#room_require_moderator_approval").prop("checked", false) - $("#room_anyone_can_start").prop("checked", false) - $("#room_all_join_moderator").prop("checked", false) - - //show all elements & their children with a create-only class - $(".create-only").each(function() { - $(this).show() - if($(this).children().length > 0) { $(this).children().show() } + // Display and update all fields related to creating a room in the createRoomModal + $("#create-room-block").click(function(){ + showCreateRoom() }) - //hide all elements & their children with a update-only class - $(".update-only").each(function() { - $(this).attr('style',"display:none !important") - if($(this).children().length > 0) { $(this).children().attr('style',"display:none !important") } + // Display and update all fields related to creating a room in the createRoomModal + $(".update-room").click(function(){ + showUpdateRoom() }) - }) - - // Display and update all fields related to creating a room in the createRoomModal - $(".update-room").click(function(){ - var room_block_uid = $(this).closest("#room-block").data("room-uid") - $("#create-room-name").val($(this).closest("tbody").find("#room-name h4").text()) - $("#createRoomModal form").attr("action", room_block_uid + "/update_settings") - - //show all elements & their children with a update-only class - $(".update-only").each(function() { - $(this).show() - if($(this).children().length > 0) { $(this).children().show() } - }) - - //hide all elements & their children with a create-only class - $(".create-only").each(function() { - $(this).attr('style',"display:none !important") - if($(this).children().length > 0) { $(this).children().attr('style',"display:none !important") } - }) - - updateCurrentSettings($(this).closest("#room-block").data("room-settings")) - - accessCode = $(this).closest("#room-block").data("room-access-code") - - if(accessCode){ - $("#create-room-access-code").text(getLocalizedString("modal.create_room.access_code") + ": " + accessCode) - $("#room_access_code").val(accessCode) - } else{ - $("#create-room-access-code").text(getLocalizedString("modal.create_room.access_code_placeholder")) - $("#room_access_code").val(null) - } - }) - - //Update the createRoomModal to show the correct current settings - function updateCurrentSettings(settings){ - //set checkbox - if(settings.muteOnStart){ - $("#room_mute_on_join").prop("checked", true) - } else { //default option - $("#room_mute_on_join").prop("checked", false) - } - - if(settings.requireModeratorApproval){ - $("#room_require_moderator_approval").prop("checked", true) - } else { //default option - $("#room_require_moderator_approval").prop("checked", false) - } - - if(settings.anyoneCanStart){ - $("#room_anyone_can_start").prop("checked", true) - } else { //default option - $("#room_anyone_can_start").prop("checked", false) - } - - if(settings.joinModerator){ - $("#room_all_join_moderator").prop("checked", true) - } else { //default option - $("#room_all_join_moderator").prop("checked", false) - } } }); +function showCreateRoom() { + $("#create-room-name").val("") + $("#create-room-access-code").text(getLocalizedString("modal.create_room.access_code_placeholder")) + $("#room_access_code").val(null) + + $("#createRoomModal form").attr("action", $("body").data('relative-root')) + $("#room_mute_on_join").prop("checked", false) + $("#room_require_moderator_approval").prop("checked", false) + $("#room_anyone_can_start").prop("checked", false) + $("#room_all_join_moderator").prop("checked", false) + + //show all elements & their children with a create-only class + $(".create-only").each(function() { + $(this).show() + if($(this).children().length > 0) { $(this).children().show() } + }) + + //hide all elements & their children with a update-only class + $(".update-only").each(function() { + $(this).attr('style',"display:none !important") + if($(this).children().length > 0) { $(this).children().attr('style',"display:none !important") } + }) +} + +function showUpdateRoom() { + var room_block_uid = $(this).closest("#room-block").data("room-uid") + $("#create-room-name").val($(this).closest("tbody").find("#room-name h4").text()) + $("#createRoomModal form").attr("action", room_block_uid + "/update_settings") + + //show all elements & their children with a update-only class + $(".update-only").each(function() { + $(this).show() + if($(this).children().length > 0) { $(this).children().show() } + }) + + //hide all elements & their children with a create-only class + $(".create-only").each(function() { + $(this).attr('style',"display:none !important") + if($(this).children().length > 0) { $(this).children().attr('style',"display:none !important") } + }) + + updateCurrentSettings($(this).closest("#room-block").data("room-settings")) + + var accessCode = $(this).closest("#room-block").data("room-access-code") + + if(accessCode){ + $("#create-room-access-code").text(getLocalizedString("modal.create_room.access_code") + ": " + accessCode) + $("#room_access_code").val(accessCode) + } else { + $("#create-room-access-code").text(getLocalizedString("modal.create_room.access_code_placeholder")) + $("#room_access_code").val(null) + } +} + +//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 generateAccessCode(){ const accessCodeLength = 6 var validCharacters = "0123456789" diff --git a/app/controllers/rooms_controller.rb b/app/controllers/rooms_controller.rb index aae578de..f4322537 100644 --- a/app/controllers/rooms_controller.rb +++ b/app/controllers/rooms_controller.rb @@ -141,7 +141,7 @@ class RoomsController < ApplicationController # Include the user's choices for the room settings room_settings = JSON.parse(@room[:room_settings]) - opts[:mute_on_start] = room_settings["muteOnStart"] if room_settings["muteOnStart"] + opts[:mute_on_start] = room_settings["muteOnStart"] opts[:require_moderator_approval] = room_settings["requireModeratorApproval"] begin @@ -164,14 +164,14 @@ class RoomsController < ApplicationController raise "Room name can't be blank" if options[:name].blank? raise "Unauthorized Request" if !@room.owned_by?(current_user) || @room == current_user.main_room - # Update the rooms settings + # Update the rooms values room_settings_string = create_room_settings_string(options) - @room.update_attributes(room_settings: room_settings_string) if @room.room_settings != room_settings_string - # Update the rooms name if it has been changed - @room.update_attributes(name: options[:name]) if @room.name != options[:name] - # Update the room's access code if it has changed - @room.update_attributes(access_code: options[:access_code]) if @room.access_code != options[:access_code] + @room.update_attributes( + name: options[:name], + room_settings: room_settings_string, + access_code: options[:access_code] + ) flash[:success] = I18n.t("room.update_settings_success") rescue => e @@ -202,14 +202,12 @@ class RoomsController < ApplicationController private def create_room_settings_string(options) - room_settings = {} - room_settings["muteOnStart"] = options[:mute_on_join] == "1" - - room_settings["requireModeratorApproval"] = options[:require_moderator_approval] == "1" - - room_settings["anyoneCanStart"] = options[:anyone_can_start] == "1" - - room_settings["joinModerator"] = options[:all_join_moderator] == "1" + room_settings = { + "muteOnStart": options[:mute_on_join] == "1", + "requireModeratorApproval": options[:require_moderator_approval] == "1", + "anyoneCanStart": options[:anyone_can_start] == "1", + "joinModerator": options[:all_join_moderator] == "1", + } room_settings.to_json end