allow user to star/unstar broadcast recordings

This commit is contained in:
Bilal
2020-08-25 00:21:42 +03:00
committed by Senad Uka
parent 896cec2259
commit 4a09406120
12 changed files with 160 additions and 29 deletions

View File

@@ -5,9 +5,14 @@ class BroadcastRecordingsController < ApplicationController
before_action :set_broadcast
before_action :set_recording
def update
@recording.update(star: !@recording.star)
set_recordings
end
def destroy
@recording.update(hidden: true)
@recordings = @broadcast.broadcast_recordings.visible.order_by_recent.paginate(page: params[:page])
set_recordings
end
private
@@ -23,4 +28,8 @@ class BroadcastRecordingsController < ApplicationController
def set_recording
@recording = authorize policy_scope(@broadcast.broadcast_recordings).find(params[:id])
end
def set_recordings
@recordings = @broadcast.broadcast_recordings.visible.order_by_recent.paginate(page: params[:page])
end
end

View File

@@ -3,7 +3,11 @@ class BroadcastRecordingPolicy < ApplicationPolicy
if user.nil? || user.user.nil?
return false
end
user.manager? || user.account_manager?
end
def update?
destroy?
end
end

View File

@@ -0,0 +1,6 @@
var dom_id = "<%= dom_id(@recording) %>"
$('[data-id="' + dom_id + '"]').remove();
<% if @recordings.empty? %>
$("#broadcast_recordings_nav").append('<p class="dropdown-item text-muted">Recordings will appear here</p>')
<% end %>
$("#broadcast_recordings").html("<%= j render(partial: 'broadcasts/broadcast_recordings', locals: { recordings: @recordings, broadcast: @broadcast }) %>");

View File

@@ -1,6 +1 @@
var dom_id = "<%= dom_id(@recording) %>"
$('[data-id="' + dom_id + '"]').remove();
<% if @recordings.empty? %>
$("#broadcast_recordings_nav").append('<p class="dropdown-item text-muted">Recordings will appear here</p>')
<% end %>
$("#broadcast_recordings").html("<%= j render(partial: 'broadcasts/broadcast_recordings', locals: { recordings: @recordings, broadcast: @broadcast }) %>");
<%= render("broadcast_recordings/refresh_recordings_list") %>

View File

@@ -0,0 +1 @@
<%= render("broadcast_recordings/refresh_recordings_list") %>

View File

@@ -7,6 +7,9 @@
<% if (controller.class.module_parent.to_s != "Public" && policy(BroadcastRecording).destroy?) %>
<%= link_to "Hide", [broadcast.project, broadcast, recording], class: "btn-sm btn-primary ml-1 text-decoration-none", remote: true, method: :delete, data: { confirm: t('.confirm_hide') } %>
<% end %>
<% if (controller.class.module_parent.to_s != "Public" && policy(BroadcastRecording).destroy?) %>
<%= link_to fa_icon("#{recording.star ? 'star' : 'star-o'} fw"), [broadcast.project, broadcast, recording], class: "text-warning", method: :put, remote: true %>
<% end %>
</li>
<% end %>
</ul>