forked from External/greenlight
Add optional moderator codes (#2413)
* add column for moderator code * add interface for moderator access code * add support for write and update moderator access * check if correct moderator_code in session * move access code form into own component * add support for moderator access code * add support for moderator access code * add copy code button for moderator code * freeze all the things * add tests for moderator access code * add helpfer for moderator_access setting * add setting for moderator access code * show setting for moderator access code * add checks for moderator code setting * use method from room controller for moderator password check * add tests for login with moderator access code * add check for moderator code setting * check if moderator codes are enabled in settings * only display form for moderator code if enabled in settings * add newline at end of file * make check for moderator code available as helper * align style of join button and access code button * add localization for moderator codes * add field for moderator codes * add field for moderator access code to rooms * fixes for rubocop * fix LineLenghts for rubocop * fix double space Co-authored-by: Ahmad Farhat <ahmad.af.farhat@gmail.com>
This commit is contained in:
@ -184,17 +184,19 @@ function copyInvite() {
|
||||
}
|
||||
}
|
||||
|
||||
function copyAccess() {
|
||||
$('#copy-code').attr("type", "text")
|
||||
$('#copy-code').select()
|
||||
function copyAccess(target) {
|
||||
input = target ? $("#copy-" + target + "-code") : $("#copy-code")
|
||||
input.attr("type", "text")
|
||||
input.select()
|
||||
if (document.execCommand("copy")) {
|
||||
$('#copy-code').attr("type", "hidden")
|
||||
copy = $("#copy-access")
|
||||
input.attr("type", "hidden")
|
||||
copy = target ? $("#copy-" + target + "-access") : $("#copy-access")
|
||||
copy.addClass('btn-success');
|
||||
copy.html("<i class='fas fa-check mr-1'></i>" + getLocalizedString("copied"))
|
||||
setTimeout(function(){
|
||||
copy.removeClass('btn-success');
|
||||
copy.html("<i class='fas fa-copy mr-1'></i>" + getLocalizedString("room.copy_access"))
|
||||
originalString = target ? getLocalizedString("room.copy_" + target + "_access") : getLocalizedString("room.copy_access")
|
||||
copy.html("<i class='fas fa-copy mr-1'></i>" + originalString)
|
||||
}, 1000)
|
||||
}
|
||||
}
|
||||
@ -202,7 +204,9 @@ function copyAccess() {
|
||||
function showCreateRoom(target) {
|
||||
$("#create-room-name").val("")
|
||||
$("#create-room-access-code").text(getLocalizedString("modal.create_room.access_code_placeholder"))
|
||||
$("#create-room-moderator-access-code").text(getLocalizedString("modal.create_room.moderator_access_code_placeholder"))
|
||||
$("#room_access_code").val(null)
|
||||
$("#room_moderator_access_code").val(null)
|
||||
|
||||
$("#createRoomModal form").attr("action", $("body").data('relative-root'))
|
||||
$("#room_mute_on_join").prop("checked", $("#room_mute_on_join").data("default"))
|
||||
@ -254,6 +258,16 @@ function showUpdateRoom(target) {
|
||||
$("#create-room-access-code").text(getLocalizedString("modal.create_room.access_code_placeholder"))
|
||||
$("#room_access_code").val(null)
|
||||
}
|
||||
|
||||
var moderatorAccessCode = modal.closest(".room-block").data("room-moderator-access-code")
|
||||
|
||||
if(moderatorAccessCode){
|
||||
$("#create-room-moderator-access-code").text(getLocalizedString("modal.create_room.moderator_access_code") + ": " + moderatorAccessCode)
|
||||
$("#room_moderator_access_code").val(moderatorAccessCode)
|
||||
} else {
|
||||
$("#create-room-moderator-access-code").text(getLocalizedString("modal.create_room.moderator_access_code_placeholder"))
|
||||
$("#room_moderator_access_code").val(null)
|
||||
}
|
||||
}
|
||||
|
||||
function showDeleteRoom(target) {
|
||||
@ -291,6 +305,24 @@ function ResetAccessCode(){
|
||||
$("#room_access_code").val(null)
|
||||
}
|
||||
|
||||
function generateModeratorAccessCode(){
|
||||
const accessCodeLength = 6
|
||||
var validCharacters = "abcdefghijklmopqrstuvwxyz"
|
||||
var accessCode = ""
|
||||
|
||||
for( var i = 0; i < accessCodeLength; i++){
|
||||
accessCode += validCharacters.charAt(Math.floor(Math.random() * validCharacters.length));
|
||||
}
|
||||
|
||||
$("#create-room-moderator-access-code").text(getLocalizedString("modal.create_room.moderator_access_code") + ": " + accessCode)
|
||||
$("#room_moderator_access_code").val(accessCode)
|
||||
}
|
||||
|
||||
function ResetModeratorAccessCode(){
|
||||
$("#create-room-moderator-access-code").text(getLocalizedString("modal.create_room.moderator_access_code_placeholder"))
|
||||
$("#room_moderator_access_code").val(null)
|
||||
}
|
||||
|
||||
function saveAccessChanges() {
|
||||
let listItemsToAdd = $("#user-list li:not(.remove-shared)").toArray().map(user => $(user).data("uid"))
|
||||
|
||||
|
@ -32,8 +32,8 @@
|
||||
font-size: 20px !important;
|
||||
}
|
||||
|
||||
.join-input {
|
||||
height: 48px;
|
||||
.moderator-code-label {
|
||||
margin-top: 150px !important;
|
||||
}
|
||||
|
||||
.home-indicator {
|
||||
|
Reference in New Issue
Block a user