parent
83642f22c1
commit
7fadd6be69
@ -1,3 +0,0 @@ |
||||
# Place all the behaviors and hooks related to the matching controller here. |
||||
# All this logic will automatically be available in application.js. |
||||
# You can use CoffeeScript in this file: http://coffeescript.org/ |
@ -1,3 +0,0 @@ |
||||
# Place all the behaviors and hooks related to the matching controller here. |
||||
# All this logic will automatically be available in application.js. |
||||
# You can use CoffeeScript in this file: http://coffeescript.org/ |
@ -0,0 +1,40 @@ |
||||
// 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 invite_url; |
||||
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("<i class='fas fa-check'></i> Copy") |
||||
setTimeout(function(){ |
||||
copy.removeClass('btn-success'); |
||||
copy.html("<i class='fas fa-copy'></i> Copy") |
||||
}, 2000) |
||||
} |
||||
}); |
||||
|
||||
// Handle recording emails.
|
||||
$('.email-link').each(function(){ |
||||
$(this).click(function(){ |
||||
var subject = $(".username").text() + " has invited you to view a recording."; |
||||
var body = "To view the recording, follow the link below:\n\n" + $(this).attr("data-pres-link"); |
||||
var footer = "\n\nThis e-mail is auto-generated by BigBlueButton.\nBigBlueButton is an open source web conferencing system. For more information on BigBlueButton, see https://bigbluebutton.org/." |
||||
var win = window.open("mailto:?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body) + encodeURIComponent(footer), '_blank'); |
||||
win.focus(); |
||||
}); |
||||
}); |
||||
} |
||||
}); |
@ -1,27 +0,0 @@ |
||||
$(document).on("turbolinks:load", function() { |
||||
var action = $("body").data('action'); |
||||
var controller = $("body").data('controller'); |
||||
|
||||
// If the user is on the waiting screen.
|
||||
if (controller == 'rooms' && action == 'wait') { |
||||
setTimeout(refresh, 10000); |
||||
} |
||||
}); |
||||
|
||||
// Send a request to the meeting wait endpoint.
|
||||
// This checks if the meeting is running on the
|
||||
// server and will auto join the user if it is.
|
||||
var refresh = function() { |
||||
$.ajax({ |
||||
url: window.location.pathname, |
||||
type: 'POST', |
||||
data: { |
||||
unauthenticated_join_name: $('#unauthenticated_join_name_').val() |
||||
}, |
||||
headers: { |
||||
'Content-Type': 'application/x-www-form-urlencoded' |
||||
} |
||||
}); |
||||
|
||||
setTimeout(refresh, 10000); |
||||
} |
@ -1,3 +0,0 @@ |
||||
# Place all the behaviors and hooks related to the matching controller here. |
||||
# All this logic will automatically be available in application.js. |
||||
# You can use CoffeeScript in this file: http://coffeescript.org/ |
@ -0,0 +1,27 @@ |
||||
// Handle changing of settings tabs.
|
||||
|
||||
$(document).on('turbolinks:load', function(){ |
||||
var controller = $("body").data('controller'); |
||||
var action = $("body").data('action'); |
||||
|
||||
// Only run on the settings page.
|
||||
if (controller == "users" && action == "edit"){ |
||||
settingsButtons = $('.setting-btn'); |
||||
settingsViews = $('.setting-view'); |
||||
|
||||
settingsButtons.each(function(i, btn) { |
||||
if(i != 0){ $(settingsViews[i]).hide(); } |
||||
$(btn).click(function(){ |
||||
$(btn).addClass("active"); |
||||
settingsViews.each(function(i, view){ |
||||
if($(view).attr("id") == $(btn).attr("id")){ |
||||
$(view).show(); |
||||
} else { |
||||
$(settingsButtons[i]).removeClass("active"); |
||||
$(view).hide(); |
||||
} |
||||
}); |
||||
}); |
||||
}); |
||||
} |
||||
}); |
@ -1,3 +0,0 @@ |
||||
# Place all the behaviors and hooks related to the matching controller here. |
||||
# All this logic will automatically be available in application.js. |
||||
# You can use CoffeeScript in this file: http://coffeescript.org/ |
@ -0,0 +1,38 @@ |
||||
// Handle client request to join when meeting starts.
|
||||
|
||||
$(document).on("turbolinks:load", function(){ |
||||
var controller = $("body").data('controller'); |
||||
var action = $("body").data('action'); |
||||
|
||||
if(controller == "rooms" && action == "join"){ |
||||
App.waiting = App.cable.subscriptions.create({ |
||||
channel: "WaitingChannel", |
||||
uid: $(".room-section").attr("room") |
||||
}, { |
||||
received: function(data){ |
||||
if(data.action = "started"){ request_to_join_meeting(); } |
||||
} |
||||
}); |
||||
} |
||||
}); |
||||
|
||||
var join_attempts = 0; |
||||
|
||||
var request_to_join_meeting = function(){ |
||||
$.ajax({ |
||||
url: window.location.pathname, |
||||
type: 'POST', |
||||
data: { |
||||
join_name: $(".room-section").attr("join-name") |
||||
}, |
||||
headers: { |
||||
'Content-Type': 'application/x-www-form-urlencoded', |
||||
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') |
||||
}, |
||||
error: function(){ |
||||
// The meeting is still booting (going slowly), retry shortly.
|
||||
if(join_attempts < 4){ setTimeout(request_to_join_meeting, 10000); } |
||||
join_attempts++; |
||||
} |
||||
}); |
||||
} |
Reference in new issue