forked from External/greenlight
		
	
		
			
				
	
	
		
			103 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
$.ajaxSetup({
 | 
						|
  headers: {
 | 
						|
    'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
 | 
						|
  }
 | 
						|
});
 | 
						|
 | 
						|
var getEncryptedId = function() {
 | 
						|
  return $(".page-wrapper.rooms").data('room');
 | 
						|
}
 | 
						|
 | 
						|
var PUBLISHED_CLASSES = ['fa-eye-slash', 'fa-eye']
 | 
						|
 | 
						|
var getPublishClass = function(published) {
 | 
						|
  return PUBLISHED_CLASSES[+published];
 | 
						|
}
 | 
						|
 | 
						|
var meetingInstance = null;
 | 
						|
class Meeting {
 | 
						|
  constructor(url, name) {
 | 
						|
    this.url = url;
 | 
						|
    this.name = name;
 | 
						|
  }
 | 
						|
 | 
						|
  static getInstance() {
 | 
						|
    if (meetingInstance) {
 | 
						|
      return meetingInstance;
 | 
						|
    }
 | 
						|
    var url = $('.meeting-url').val();
 | 
						|
    var name = $('.meeting-user-name').val();
 | 
						|
    meetingInstance = new Meeting(url, name);
 | 
						|
    return meetingInstance;
 | 
						|
  }
 | 
						|
 | 
						|
  getjoinMeetingURL() {
 | 
						|
    return $.get(this.url + "/join?name=" + this.name, function() {
 | 
						|
    });
 | 
						|
  };
 | 
						|
 | 
						|
  endMeeting() {
 | 
						|
    return $.ajax({
 | 
						|
      url: this.url + "/end",
 | 
						|
      type: 'DELETE'
 | 
						|
    });
 | 
						|
  }
 | 
						|
 | 
						|
  setURL(url) {
 | 
						|
    this.url = url;
 | 
						|
  }
 | 
						|
  setName(name) {
 | 
						|
    this.name = name;
 | 
						|
  }
 | 
						|
  setModJoined(modJoined) {
 | 
						|
    this.modJoined = modJoined;
 | 
						|
  }
 | 
						|
  getModJoined() {
 | 
						|
    return this.modJoined;
 | 
						|
  }
 | 
						|
  setWaitingForMod(wMod) {
 | 
						|
    this.waitingForMod = wMod;
 | 
						|
  }
 | 
						|
  getWaitingForMod() {
 | 
						|
    return this.waitingForMod;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
var loopJoin = function() {
 | 
						|
  var jqxhr = Meeting.getInstance().getjoinMeetingURL();
 | 
						|
  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 showAlert = function(html, timeout_delay) {
 | 
						|
  if (!html) {
 | 
						|
    return;
 | 
						|
  }
 | 
						|
 | 
						|
  $('.alert-template .alert-message').html(html);
 | 
						|
  $('#alerts').html($('.alert-template').html());
 | 
						|
 | 
						|
  if (timeout_delay) {
 | 
						|
    setTimeout(function() {
 | 
						|
      $('#alerts > .alert').alert('close');
 | 
						|
    }, timeout_delay);
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
var displayMeetingURL = function() {
 | 
						|
  meetingURL = $('.meeting-url');
 | 
						|
  var link = window.location.protocol +
 | 
						|
    '//' +
 | 
						|
    window.location.hostname +
 | 
						|
    meetingURL.data('path');
 | 
						|
  meetingURL.val(link);
 | 
						|
}
 |