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.
|
# Sets a BigBlueButtonApi object for interacting with the API.
|
||||||
def bbb
|
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
|
#@bbb ||= if Rails.configuration.loadbalanced_configuration
|
||||||
# lb_user = retrieve_loadbalanced_credentials(self.room.owner.provider)
|
# lb_user = retrieve_loadbalanced_credentials(self.room.owner.provider)
|
||||||
# BigBlueButton::BigBlueButtonApi.new(remove_slash(lb_user["apiURL"]), lb_user["secret"], "0.8")
|
# BigBlueButton::BigBlueButtonApi.new(remove_slash(lb_user["apiURL"]), lb_user["secret"], "0.8")
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
|
|
||||||
<%= yield %>
|
<%= yield %>
|
||||||
|
|
||||||
<!-- Modal Load -->
|
|
||||||
<% if current_user %>
|
<% if current_user %>
|
||||||
<%= render "shared/modals/create_room_modal" %>
|
<%= render "shared/modals/create_room_modal" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -55,36 +55,3 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<%= render "shared/sessions", recordings: @recordings, only_public: false %>
|
<%= 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>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% 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>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
// Handle validation messages client-side because
|
||||||
|
// form is served in modal, and they are minimal.
|
||||||
var roomCreateValidations = function(){
|
var roomCreateValidations = function(){
|
||||||
if($('#room-name').val().length == 0){
|
if($('#room-name').val().length == 0){
|
||||||
$('#room-name').addClass("is-invalid");
|
$('#room-name').addClass("is-invalid");
|
||||||
|
@ -42,5 +43,4 @@ var roomCreateValidations = function(){
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#create-room-submit').on('click', roomCreateValidations);
|
$('#create-room-submit').on('click', roomCreateValidations);
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
<div class="container mt-8">
|
<div class="container mt-8">
|
||||||
|
|
||||||
<%= render "shared/components/subtitle", subtitle: "Settings", search: false %>
|
<%= render "shared/components/subtitle", subtitle: "Settings", search: false %>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -46,25 +45,3 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</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.
|
# Precompile additional assets.
|
||||||
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
# 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