forked from External/greenlight
seperate js in files
This commit is contained in:
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++;
|
||||
}
|
||||
});
|
||||
}
|
|
@ -166,7 +166,7 @@ class Room < ApplicationRecord
|
|||
|
||||
# Sets a BigBlueButtonApi object for interacting with the API.
|
||||
def bbb
|
||||
@bbb = BigBlueButton::BigBlueButtonApi.new(remove_slash(bbb_endpoint), bbb_secret, "0.8")
|
||||
@bbb ||= BigBlueButton::BigBlueButtonApi.new(remove_slash(bbb_endpoint), bbb_secret, "0.8")
|
||||
#@bbb ||= if Rails.configuration.loadbalanced_configuration
|
||||
# lb_user = retrieve_loadbalanced_credentials(self.room.owner.provider)
|
||||
# BigBlueButton::BigBlueButtonApi.new(remove_slash(lb_user["apiURL"]), lb_user["secret"], "0.8")
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
|
||||
<%= yield %>
|
||||
|
||||
<!-- Modal Load -->
|
||||
<% if current_user %>
|
||||
<%= render "shared/modals/create_room_modal" %>
|
||||
<% end %>
|
||||
|
|
|
@ -55,36 +55,3 @@
|
|||
</div>
|
||||
|
||||
<%= render "shared/sessions", recordings: @recordings, only_public: false %>
|
||||
|
||||
<script>
|
||||
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();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -9,37 +9,3 @@
|
|||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<script>
|
||||
$(document).on("turbolinks:load", function(){
|
||||
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++;
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -34,7 +34,8 @@
|
|||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
// Handle validation messages client-side because
|
||||
// form is served in modal, and they are minimal.
|
||||
var roomCreateValidations = function(){
|
||||
if($('#room-name').val().length == 0){
|
||||
$('#room-name').addClass("is-invalid");
|
||||
|
@ -42,5 +43,4 @@ var roomCreateValidations = function(){
|
|||
}
|
||||
|
||||
$('#create-room-submit').on('click', roomCreateValidations);
|
||||
|
||||
</script>
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
<div class="container mt-8">
|
||||
|
||||
<%= render "shared/components/subtitle", subtitle: "Settings", search: false %>
|
||||
|
||||
<div class="row">
|
||||
|
@ -46,25 +45,3 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
settingsButtons = $('.setting-btn');
|
||||
settingsViews = $('.setting-view');
|
||||
|
||||
$(document).ready(function(){
|
||||
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();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -8,4 +8,4 @@ Rails.application.config.assets.version = '1.0'
|
|||
|
||||
# Precompile additional assets.
|
||||
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
||||
# Rails.application.config.assets.precompile += %w( search.js )
|
||||
Rails.application.config.assets.precompile += %w(settings.js room.js wait.js)
|
||||
|
|
Loading…
Reference in New Issue