// BigBlueButton open source conferencing system - http://www.bigbluebutton.org/. // // Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below). // // This program is free software; you can redistribute it and/or modify it under the // terms of the GNU Lesser General Public License as published by the Free Software // Foundation; either version 3.0 of the License, or (at your option) any later // version. // // BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A // PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License along // with BigBlueButton; if not, see . // Room specific js for copy button and email link. $(document).on('turbolinks:load', function(){ var controller = $("body").data('controller'); var action = $("body").data('action'); // Only run on room pages. if (controller == "rooms" && action == "show"){ var copy = $('#copy'); // Handle copy button. copy.on('click', function(){ var inviteURL = $('#invite-url'); inviteURL.select(); var success = document.execCommand("copy"); if (success) { inviteURL.blur(); copy.addClass('btn-success'); copy.html(" <%= I18n.t("copied") %>") setTimeout(function(){ copy.removeClass('btn-success'); copy.html(" <%= I18n.t("copy") %>") }, 2000) } }); } // 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("<%= I18n.t("modal.create_room.access_code_placeholder") %>") $("#room_access_code").val(null) $("#createRoomModal form").attr("action", $("body").data('relative-root')) updateDropdown($(".dropdown-item[value='default']")) $("#room_mute_on_join").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") } }) }) // 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("<%= I18n.t("modal.create_room.access_code") %>: " + accessCode) $("#room_access_code").val(accessCode) } else{ $("#create-room-access-code").text("<%= I18n.t("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) } //set dropdown value if (settings.joinViaHtml5) { updateDropdown($(".dropdown-item[value='html5']")) } else if (settings.joinViaHtml5 === false) { updateDropdown($(".dropdown-item[value='flash']")) } else { //default option updateDropdown($(".dropdown-item[value='default']")) } } }); // Updates the dropdown element to show the clicked/correct text function updateDropdown(element) { $("#dropdown-trigger").text(element.text()) $("#room_client").val(element.val()) } function generateAccessCode(){ const accessCodeLength = 6 var validCharacters = "0123456789" var accessCode = "" for( var i = 0; i < accessCodeLength; i++){ accessCode += validCharacters.charAt(Math.floor(Math.random() * validCharacters.length)); } $("#create-room-access-code").text("<%= I18n.t("modal.create_room.access_code") %>: " + accessCode) $("#room_access_code").val(accessCode) } function ResetAccessCode(){ $("#create-room-access-code").text("<%= I18n.t("modal.create_room.access_code_placeholder") %>") $("#room_access_code").val(null) }