// 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 . $.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(); });