forked from External/greenlight
		
	multi meeting rooms
This commit is contained in:
		@@ -23,10 +23,15 @@
 | 
			
		||||
    });
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  var initRooms = function() {
 | 
			
		||||
  var enableMeetingUpdates = function() {
 | 
			
		||||
    var meeting_id = '';
 | 
			
		||||
    if ($(".page-wrapper.rooms").data('main-room') === false) {
 | 
			
		||||
      meeting_id = $(".page-wrapper.rooms").data('id');
 | 
			
		||||
    }
 | 
			
		||||
    App.messages = App.cable.subscriptions.create({
 | 
			
		||||
      channel: 'MeetingUpdatesChannel',
 | 
			
		||||
      encrypted_id: $(".page-wrapper").data('id')
 | 
			
		||||
      admin_id: $(".page-wrapper.rooms").data('admin-id'),
 | 
			
		||||
      meeting_id: meeting_id
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      received: function(data) {
 | 
			
		||||
@@ -58,7 +63,7 @@
 | 
			
		||||
  $(document).on("turbolinks:load", function() {
 | 
			
		||||
    if ($("body[data-controller=landing]").get(0)) {
 | 
			
		||||
      if ($("body[data-action=rooms]").get(0)) {
 | 
			
		||||
        initRooms();
 | 
			
		||||
        enableMeetingUpdates();
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 
 | 
			
		||||
@@ -64,6 +64,10 @@
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $('.center-panel-wrapper').on ('click', '.meeting-start', function (event) {
 | 
			
		||||
      Turbolinks.visit(Meeting.getInstance().getURL());
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $('.center-panel-wrapper').on ('keypress', '.meeting-user-name', function (event) {
 | 
			
		||||
      if (event.keyCode === 13) {
 | 
			
		||||
        event.preventDefault();
 | 
			
		||||
@@ -192,12 +196,15 @@
 | 
			
		||||
    displayRoomURL();
 | 
			
		||||
 | 
			
		||||
    $('.center-panel-wrapper').on('keyup', '.meeting-name', function (event, msg) {
 | 
			
		||||
      var newName = $(this).val();
 | 
			
		||||
      // Meeting.getInstance().setMeetingId(newId);
 | 
			
		||||
      Meeting.getInstance().setMeetingName(newName);
 | 
			
		||||
      // $(".page-wrapper.meetings").data('id', newId);
 | 
			
		||||
      // $('.meeting-url').val(Meeting.getInstance().getURL());
 | 
			
		||||
      // $('.join-meeting-title').html(I18n.join_title.replace(/%{id}/, newId));
 | 
			
		||||
      var newId = $(this).val();
 | 
			
		||||
      Meeting.getInstance().setMeetingId(newId);
 | 
			
		||||
      $('.meeting-url').val(Meeting.getInstance().getURL());
 | 
			
		||||
      $('.join-meeting-title').html(I18n.join_title.replace(/%{id}/, newId));
 | 
			
		||||
      if (newId === '') {
 | 
			
		||||
        $('.invite-join-wrapper').addClass('hidden');
 | 
			
		||||
      } else {
 | 
			
		||||
        $('.invite-join-wrapper').removeClass('hidden');
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    Recordings.getInstance().refresh();
 | 
			
		||||
 
 | 
			
		||||
@@ -19,28 +19,30 @@
 | 
			
		||||
_meetingInstance = null
 | 
			
		||||
 | 
			
		||||
class @Meeting
 | 
			
		||||
  constructor: (@meetingId, @type, @userName, @meetingName) ->
 | 
			
		||||
  constructor: (@meetingId, @type, @userName, @adminId) ->
 | 
			
		||||
 | 
			
		||||
  # Gets the current instance or creates a new one
 | 
			
		||||
  @getInstance: ->
 | 
			
		||||
    if _meetingInstance
 | 
			
		||||
      return _meetingInstance
 | 
			
		||||
    id = $(".page-wrapper").data('id')
 | 
			
		||||
    meetingId = $(".page-wrapper").data('id')
 | 
			
		||||
    if (type = location.pathname.split('/')[1]) != 'rooms'
 | 
			
		||||
      type = 'meetings'
 | 
			
		||||
    name = $('.meeting-user-name').val()
 | 
			
		||||
    _meetingInstance = new Meeting(id, type, name)
 | 
			
		||||
    adminId = $(".page-wrapper").data('admin-id')
 | 
			
		||||
    _meetingInstance = new Meeting(meetingId, type, name, adminId)
 | 
			
		||||
    return _meetingInstance
 | 
			
		||||
 | 
			
		||||
  @clear: ->
 | 
			
		||||
    _meetingInstance = null
 | 
			
		||||
 | 
			
		||||
  @buildMeetingURL: (id, type, name) ->
 | 
			
		||||
    if name
 | 
			
		||||
      name = '/' + encodeURIComponent(name)
 | 
			
		||||
  @buildMeetingURL: (meetingId, type, adminId) ->
 | 
			
		||||
    fullId = ''
 | 
			
		||||
    if adminId
 | 
			
		||||
      fullId = encodeURIComponent(adminId) + '/' + encodeURIComponent(meetingId)
 | 
			
		||||
    else
 | 
			
		||||
      name = ''
 | 
			
		||||
    return @buildFullDomainURL() + '/' + type + '/' + encodeURIComponent(id) + name
 | 
			
		||||
      fullId = encodeURIComponent(meetingId)
 | 
			
		||||
    return @buildFullDomainURL() + '/' + type + '/' + fullId
 | 
			
		||||
 | 
			
		||||
  @buildFullDomainURL: ->
 | 
			
		||||
    url = location.protocol + '//' + location.hostname
 | 
			
		||||
@@ -84,8 +86,11 @@ class @Meeting
 | 
			
		||||
    @meetingId = id
 | 
			
		||||
    return this
 | 
			
		||||
 | 
			
		||||
  setMeetingName: (name) ->
 | 
			
		||||
    @meetingName = name
 | 
			
		||||
  getAdminId: ->
 | 
			
		||||
    return @adminId
 | 
			
		||||
 | 
			
		||||
  setAdminId: (id) ->
 | 
			
		||||
    @adminId = id
 | 
			
		||||
    return this
 | 
			
		||||
 | 
			
		||||
  getType: ->
 | 
			
		||||
@@ -96,7 +101,7 @@ class @Meeting
 | 
			
		||||
    return this
 | 
			
		||||
 | 
			
		||||
  getURL: ->
 | 
			
		||||
    return Meeting.buildMeetingURL(@meetingId, @type, @meetingName)
 | 
			
		||||
    return Meeting.buildMeetingURL(@meetingId, @type, @adminId)
 | 
			
		||||
 | 
			
		||||
  getUserName: ->
 | 
			
		||||
    return @userName
 | 
			
		||||
 
 | 
			
		||||
@@ -157,7 +157,7 @@ class @Recordings
 | 
			
		||||
  # refresh the recordings from the server
 | 
			
		||||
  refresh: ->
 | 
			
		||||
    table_api = this.table.api()
 | 
			
		||||
    $.get "/rooms/"+Meeting.getInstance().getMeetingId()+"/recordings", (data) =>
 | 
			
		||||
    $.get "/rooms/"+Meeting.getInstance().getAdminId()+"/recordings", (data) =>
 | 
			
		||||
      @setOwner(data.is_owner)
 | 
			
		||||
      if !@owner
 | 
			
		||||
        table_api.column(-1).visible(false)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user