forked from External/greenlight
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// BigBlueButton open source conferencing system - http://www.bigbluebutton.org/.
 | 
						|
//
 | 
						|
// Copyright (c) 2018 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/>.
 | 
						|
 | 
						|
// 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: $(".background").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: $(".background").attr("join-name")
 | 
						|
    },
 | 
						|
    headers: {
 | 
						|
      'Content-Type': 'application/x-www-form-urlencoded',
 | 
						|
      'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
 | 
						|
    },
 | 
						|
    success: function(){
 | 
						|
      // Enqueue another trial just incase they didn't actually join.
 | 
						|
      if(join_attempts < 4){ setTimeout(request_to_join_meeting, 10000); }
 | 
						|
      join_attempts++;
 | 
						|
    }
 | 
						|
  });
 | 
						|
}
 |