forked from External/greenlight
94 lines
2.8 KiB
Plaintext
94 lines
2.8 KiB
Plaintext
// BigBlueButton open source conferencing system - http://www.bigbluebutton.org/.
|
|
//
|
|
// Copyright (c) 2016 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 <http://www.gnu.org/licenses/>.
|
|
|
|
$.ajaxSetup({
|
|
headers: {
|
|
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
|
|
}
|
|
});
|
|
|
|
var loopJoin = function() {
|
|
var jqxhr = Meeting.getInstance().getJoinMeetingResponse();
|
|
jqxhr.done(function(data) {
|
|
if (data.messageKey === 'wait_for_moderator') {
|
|
setTimeout(loopJoin, 5000);
|
|
} else {
|
|
$(location).attr("href", data.response.join_url);
|
|
}
|
|
});
|
|
jqxhr.fail(function(xhr, status, error) {
|
|
console.info("meeting join failed");
|
|
});
|
|
};
|
|
|
|
var alertTimeout = null;
|
|
var showAlert = function(html, timeout_delay, type) {
|
|
type = type || 'success'
|
|
|
|
if (!html) {
|
|
return;
|
|
}
|
|
|
|
$('.alert-template .alert-message').html(html);
|
|
$('.alert-template .alert').removeClass('alert-success alert-danger alert-info alert-warning').addClass('alert-'+type);
|
|
$('#alerts').html($('.alert-template').html());
|
|
|
|
if (timeout_delay) {
|
|
clearTimeout(alertTimeout);
|
|
alertTimeout = setTimeout(function() {
|
|
$('#alerts > .alert').alert('close');
|
|
}, timeout_delay);
|
|
}
|
|
};
|
|
|
|
// remove flash alerts after 5 seconds
|
|
var flashAlertDelayedDismiss = function() {
|
|
setTimeout(function(){
|
|
$('.flash-alerts').remove();
|
|
}, 5000);
|
|
};
|
|
|
|
var displayRoomURL = function() {
|
|
$('.meeting-url').val(Meeting.getInstance().getURL());
|
|
};
|
|
|
|
var showNotification = function(title, options) {
|
|
if (Notification.permission === "granted") {
|
|
var icon = '<%= asset_path("bbb-logo.png") %>';
|
|
options = $.extend(options, {
|
|
icon: icon,
|
|
tag: 'UserWaiting'
|
|
});
|
|
var notification = new Notification(title, options);
|
|
notification.onclick = function() {
|
|
window.focus();
|
|
};
|
|
}
|
|
};
|
|
|
|
var isRoomOwner = function() {
|
|
return $('body').data('current-user') === $('.page-wrapper.rooms').data('admin-id')
|
|
}
|
|
|
|
// For now there are notifications only for users signed in and when they
|
|
// are in their room's page
|
|
$(document).on("turbolinks:load", function() {
|
|
if (isRoomOwner()) {
|
|
Notification.requestPermission();
|
|
}
|
|
flashAlertDelayedDismiss();
|
|
});
|