Compare commits

..

2 Commits

Author SHA1 Message Date
Bilal
928ef05f2e fix after rebase 2020-09-01 20:59:53 +03:00
Bilal
8cbe368e24 open broadcast page in director mode if available 2020-09-01 18:45:14 +03:00
7 changed files with 34 additions and 31 deletions

View File

@@ -45,14 +45,13 @@ class Api::ReleasesController < Api::ApiController
if model_name == "acquired_media_release"
mapping = {
"#{model_name.camelize}": SerializableAcquiredMediaRelease,
FileInfo: SerializableFileInfo,
"ActiveStorage::Attachment".to_sym => ActiveStorage::SerializableAttachment,
FileInfo: SerializableFileInfo
}
render jsonapi: release,
status: status,
class: mapping,
include: [:files, :file_infos]
include: [:file_infos]
else
mapping = {
"#{model_name.camelize}": show_serializable,

View File

@@ -7,7 +7,7 @@ class SerializableAcquiredMediaRelease < JSONAPI::Serializable::Resource
:person_title, :person_company, :created_at, :updated_at, :collection_uid, :territory_old, :term_old,
:applicable_medium_id, :applicable_medium_text, :territory_id, :territory_text, :term_id, :term_text,
:restriction_id, :restriction_text, :categories, :description, :tag_list
has_many :file_infos do
data do
@object.file_infos
@@ -17,14 +17,4 @@ class SerializableAcquiredMediaRelease < JSONAPI::Serializable::Resource
{ count: @object.file_infos.size }
end
end
has_many :files do
data do
@object.files
end
meta do
{ count: @object.files.size }
end
end
end

View File

@@ -1,5 +1,5 @@
<% if broadcast.director_mode_video_embed.present? && params[:director_mode].present? %>
<div class="embed-responsive-item" data-video-type="stream">
<% if broadcast.director_mode_video_embed.present? && params[:director_mode].nil? %>
<div id="director_broadcast_video" class="embed-responsive-item" data-video-type="stream">
<%= raw broadcast.director_mode_video_embed %>
</div>
<% elsif broadcast.streamer_recording? && broadcast.active? %>

View File

@@ -48,18 +48,18 @@
</div>
</div>
<% if @broadcast.director_mode_video_embed.present? %>
<% if params[:director_mode] %>
<% unless params[:director_mode] %>
<div class="custom-control custom-switch ml-auto">
<input type="checkbox" name="director_mode" value="true" class="custom-control-input" id="director_mode_switch" checked="checked" />
<label class="custom-control-label text-white override-custom-control-label" for="director_mode_switch">Director Mode</label>
</div>
<%= link_to "Disable Director Mode", url_for(params.permit!.except(:director_mode)), class: "d-none", id: "director_mode_link" %>
<%= link_to "Disable Director Mode", [@broadcast.project, @broadcast, director_mode: false], class: "d-none", id: "director_mode_link" %>
<% else %>
<div class="custom-control custom-switch ml-auto">
<input type="checkbox" name="director_mode" value="true" class="custom-control-input" id="director_mode_switch" />
<label class="custom-control-label text-white override-custom-control-label" for="director_mode_switch">Director Mode</label>
</div>
<%= link_to "Enable Director Mode", url_for(params.permit!.merge(director_mode: true)), class: "d-none", id: "director_mode_link" %>
<%= link_to "Enable Director Mode", [@broadcast.project, @broadcast], class: "d-none", id: "director_mode_link" %>
<% end %>
<% end %>
</div>

View File

@@ -30,16 +30,6 @@ RSpec.describe Api::AcquiredMediaReleasesController, type: :controller do
expect(response).to be_successful
end
it 'contains files attachment data' do
tested_release = create(:acquired_media_release, name: 'ct1', project_id: project.id)
sign_in_to_api(current_user)
get :show, params: { id: tested_release.id }
expect(response.body).to match /file_infos/
expect(response.body).to match /files/
end
end
describe '#create' do

View File

@@ -197,13 +197,13 @@ RSpec.describe BroadcastsController, type: :controller do
context "when director mode is enabled" do
it "shows the video embed" do
get :show, params: { project_id: project, id: broadcast, director_mode: true }
get :show, params: { project_id: project, id: broadcast }
expect(response.body).to have_selector("iframe", text: "video player")
end
it "renders the view dropdown with a director mode disable option" do
get :show, params: { project_id: project, id: broadcast, director_mode: true }
get :show, params: { project_id: project, id: broadcast }
expect(response.body).to have_content broadcast.name
expect(response.body).to have_selector(".custom-control-label", text: "Director Mode")

View File

@@ -151,6 +151,30 @@ feature 'User managing broadcasts' do
end
end
scenario 'opening broadcast page starts in normal mode if director mode is not available' do
broadcast = create(:broadcast, :with_stream, :with_files, project: project)
broadcast.director_mode_video_embed = nil
broadcast.save
visit project_broadcast_path(project, broadcast)
expect(page).not_to have_selector('#director_broadcast_video')
expect(page).to have_selector('#broadcast_video')
expect(page).not_to have_selector('#director_mode_switch')
end
scenario 'opening broadcast page starts in director mode if available' do
broadcast = create(:broadcast, :with_stream, :with_files, project: project, director_mode_video_embed: 'director_mode')
visit project_broadcast_path(project, broadcast)
expect(page).not_to have_selector('#broadcast_video')
expect(page).to have_selector('#director_broadcast_video')
expect(page).to have_selector('#director_mode_switch')
end
context 'When the user is associate' do
let(:current_user) { create(:user, :associate) }