forked from External/greenlight
		
	recording async update
This commit is contained in:
		
							
								
								
									
										26
									
								
								app/assets/javascripts/channels/recording_update.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								app/assets/javascripts/channels/recording_update.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
(function() {
 | 
			
		||||
 | 
			
		||||
  var initRooms = function() {
 | 
			
		||||
    App.messages = App.cable.subscriptions.create({
 | 
			
		||||
      channel: 'RecordingUpdatesChannel',
 | 
			
		||||
      username: window.location.pathname.split('/').pop()
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      received: function(data) {
 | 
			
		||||
        var btn = $("#recordings").find(".recording-update:disabled");
 | 
			
		||||
        btn.data('published', data.published);
 | 
			
		||||
        btn.find('i').removeClass(getPublishClass(!data.published));
 | 
			
		||||
        btn.find('i').addClass(getPublishClass(data.published));
 | 
			
		||||
        btn.prop("disabled", false);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  $(document).on("turbolinks:load", function() {
 | 
			
		||||
    if ($("body[data-controller=landing]").get(0)) {
 | 
			
		||||
      if ($("body[data-action=rooms]").get(0)) {
 | 
			
		||||
        initRooms();
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
}).call(this);
 | 
			
		||||
@@ -112,9 +112,9 @@
 | 
			
		||||
            if (type === 'display') {
 | 
			
		||||
              var roomName = window.location.pathname.split('/').pop();
 | 
			
		||||
              var published = row.published;
 | 
			
		||||
              var eye = (published) ? 'eye' : 'eye-slash'
 | 
			
		||||
              var eye = getPublishClass(published);
 | 
			
		||||
              return '<button type="button" class="btn btn-default recording-update" data-id="'+data+'" data-room="'+roomName+'" data-published="'+published+'">' +
 | 
			
		||||
                '<i class="fa fa-'+eye+'" aria-hidden="true"></i></button> ' +
 | 
			
		||||
                '<i class="fa '+eye+'" aria-hidden="true"></i></button> ' +
 | 
			
		||||
                '<button type="button" class="btn btn-default recording-delete" data-id="'+data+'" data-room="'+roomName+'">' +
 | 
			
		||||
                '<i class="fa fa-trash-o" aria-hidden="true"></i></button>';
 | 
			
		||||
            }
 | 
			
		||||
@@ -128,12 +128,15 @@
 | 
			
		||||
      var room = $(this).data('room');
 | 
			
		||||
      var id = $(this).data('id');
 | 
			
		||||
      var published = $(this).data('published');
 | 
			
		||||
      $(this).prop("disabled", true);
 | 
			
		||||
      $.ajax({
 | 
			
		||||
        method: 'PATCH',
 | 
			
		||||
        url: '/rooms/'+room+'/recordings/'+id,
 | 
			
		||||
        data: {published: (!published).toString()}
 | 
			
		||||
      }).done(function(data) {
 | 
			
		||||
        $(this).prop("disabled", true);
 | 
			
		||||
 | 
			
		||||
      }).fail(function(data) {
 | 
			
		||||
        $(this).prop("disabled", false);
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,12 @@ $.ajaxSetup({
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
var PUBLISHED_CLASSES = ['fa-eye-slash', 'fa-eye']
 | 
			
		||||
 | 
			
		||||
var getPublishClass = function(published) {
 | 
			
		||||
  return PUBLISHED_CLASSES[+published];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var meetingInstance = null;
 | 
			
		||||
class Meeting {
 | 
			
		||||
  constructor(url, name) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user