diff --git a/app/assets/javascripts/channels/recording_update.js b/app/assets/javascripts/channels/recording_update.js
index 51c9d842..3beec545 100644
--- a/app/assets/javascripts/channels/recording_update.js
+++ b/app/assets/javascripts/channels/recording_update.js
@@ -7,17 +7,20 @@
},
{
received: function(data) {
- var table = $("#recordings").DataTable();
+ var recordings = Recordings.getInstance();
+ var table = recordings.table.api()
var row = table.row("#"+data.record_id);
if (data.action === 'update') {
var rowData = row.data();
rowData.published = data.published
- table.row("#"+data.record_id).data(rowData).draw();
+ table.row("#"+data.record_id).data(rowData);
+ recordings.draw();
var published = (data.published) ? 'published' : 'unpublished';
showAlert(I18n['recording_'+published], 4000);
} else if (data.action === 'delete') {
- row.remove().draw();
+ row.remove();
+ recordings.draw();
showAlert(I18n.recording_deleted, 4000);
}
diff --git a/app/assets/javascripts/recordings.coffee b/app/assets/javascripts/recordings.coffee
index 2e9dfff3..94f6ba52 100644
--- a/app/assets/javascripts/recordings.coffee
+++ b/app/assets/javascripts/recordings.coffee
@@ -9,17 +9,19 @@ class @Recordings
data: [],
rowId: 'id',
paging: false,
- searching: false,
+ dom: 'lrtip',
info: false,
order: [[ 0, "desc" ]],
language: {
- emptyTable: I18n.no_recordings
+ emptyTable: I18n.no_recordings,
+ zeroRecords: I18n.no_recordings
},
columns: [
{ data: "start_time" },
{ data: "previews", orderable: false },
{ data: "duration" },
{ data: "playbacks", orderable: false },
+ { data: "published", visible: false },
{ data: "id", orderable: false }
],
columnDefs: [
@@ -38,8 +40,9 @@ class @Recordings
render: (data, type, row) ->
if type == 'display'
str = ''
- for d in data
- str += ' '
+ if row.published
+ for d in data
+ str += '
'
return str
return data
},
@@ -50,7 +53,7 @@ class @Recordings
str = ''
if row.published
for d in data
- str += ''+d.type_i18n+' '
+ str += ''+d.type_i18n+' '
return str
return data
},
@@ -95,12 +98,17 @@ class @Recordings
@initialized: ->
return $.fn.DataTable.isDataTable('#recordings') && _recordingsInstance
+ draw: ->
+ if !@isOwner()
+ @table.api().columns(4).search('true')
+ @table.api().columns.adjust().draw()
+
# refresh the recordings from the server
refresh: ->
- _this = this
table_api = this.table.api()
- $.get "/rooms/"+Meeting.getInstance().getId()+"/recordings", (data) ->
- if !data.is_owner
+ $.get "/rooms/"+Meeting.getInstance().getId()+"/recordings", (data) =>
+ @setOwner(data.is_owner)
+ if !@owner
table_api.column(-1).visible(false)
for recording in data.recordings
totalMinutes = Math.round((new Date(recording.end_time) - new Date(recording.start_time)) / 1000 / 60)
@@ -109,7 +117,7 @@ class @Recordings
return new Date(b.start_time) - new Date(a.start_time)
table_api.clear()
table_api.rows.add(data.recordings)
- table_api.columns.adjust().draw()
+ @draw()
# setup click handlers for the action buttons
setupActionHandlers: ->
@@ -145,3 +153,9 @@ class @Recordings
).fail((data) ->
btn.prop('disabled', false)
)
+
+ isOwner: ->
+ @owner
+
+ setOwner: (owner) ->
+ @owner = owner
diff --git a/app/views/landing/rooms.html.erb b/app/views/landing/rooms.html.erb
index 397cfaa1..6c82ba3a 100644
--- a/app/views/landing/rooms.html.erb
+++ b/app/views/landing/rooms.html.erb
@@ -20,6 +20,7 @@