Compare commits
2 Commits
master
...
make-direc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
928ef05f2e | ||
|
|
8cbe368e24 |
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB |
@@ -1,7 +0,0 @@
|
||||
$(document).on("turbolinks:load", function() {
|
||||
bsCustomFileInput.init();
|
||||
})
|
||||
|
||||
$(document).on("turbolinks:load", function() {
|
||||
$(".toast").toast('show');
|
||||
})
|
||||
@@ -24,7 +24,7 @@ $(document).on "turbolinks:load", ->
|
||||
stream_selected = $("#broadcast_video").data('videoType') == 'stream';
|
||||
if data.streamer_status == 'recording' && data.status == 'active' && stream_selected
|
||||
$("#broadcast_video").html data.video_content
|
||||
$("#recording_status").html data.recording_status_content
|
||||
$("#live_take").html data.live_take_content
|
||||
|
||||
new (Clappr.Player)(
|
||||
<%= "baseUrl: 'http://cdn.clappr.io/latest'," if Rails.env.test? %>
|
||||
@@ -37,13 +37,12 @@ $(document).on "turbolinks:load", ->
|
||||
hlsMinimumDvrSize: 1)
|
||||
if data.streamer_status == "idle" && data.status == "idle"
|
||||
$("#broadcast_video").html data.video_content
|
||||
$("#recording_status").html data.recording_status_content
|
||||
$("#live_take").html data.live_take_content
|
||||
|
||||
showBroadcastRecordings: (data) ->
|
||||
$(".flash-message").html data.flash_content
|
||||
$("#broadcast_recordings").html data.recordings_content
|
||||
$("#broadcast_recordings_nav").html data.recordings_nav_content
|
||||
$(".toast").toast('show')
|
||||
|
||||
refreshBroadcastFilesTab: (data) ->
|
||||
$("#broadcast_file_list_#{data.broadcast_token}").html data.files_content
|
||||
|
||||
@@ -23,4 +23,3 @@ $(document).on "turbolinks:load", ->
|
||||
|
||||
showDownloadStatusUpdate: (content) ->
|
||||
$(".flash-message").html content
|
||||
$(".toast").toast('show')
|
||||
|
||||
3
app/assets/javascripts/custom_file_input.js
Normal file
3
app/assets/javascripts/custom_file_input.js
Normal file
@@ -0,0 +1,3 @@
|
||||
$(document).on("turbolinks:load", function() {
|
||||
bsCustomFileInput.init()
|
||||
})
|
||||
@@ -1,20 +0,0 @@
|
||||
$(document).on("click", "#download_releases", function(event) {
|
||||
event.preventDefault();
|
||||
|
||||
const releasable_ids = JSON.parse($("#selected_releases_form").attr('data-releasable-ids'));
|
||||
const total_entries = $('#total_entries').val();
|
||||
|
||||
const input_ids = $('<input>').attr({ type: 'hidden', name: 'release_ids', value: JSON.stringify(releasable_ids) });
|
||||
const search_query = $('<input>').attr({ type: 'hidden', name: 'search_query', value: $("form input[type='search']").val() });
|
||||
const type_filter = $('<input>').attr({ type: 'hidden', name: 'type_filter', value: $('#type_filter_value').val() });
|
||||
|
||||
const download_count = releasable_ids.length > 0 ? releasable_ids.length : total_entries;
|
||||
|
||||
$(this).parent().append(input_ids);
|
||||
$(this).parent().append(search_query);
|
||||
$(this).parent().append(type_filter);
|
||||
|
||||
if (confirm(`${download_count} release(s) will be downloaded. Is this correct?`)){
|
||||
Rails.fire($(this).parent()[0], 'submit');
|
||||
}
|
||||
});
|
||||
@@ -1,6 +1,7 @@
|
||||
$(document).on("click", "[data-behavior=play_recording]", function() {
|
||||
clearPlayingHighlight();
|
||||
$(this).parent().parent().addClass('playing-highlight');
|
||||
if ($(this).hasClass('active')){
|
||||
return false;
|
||||
}
|
||||
|
||||
$("#broadcast_video").data('videoType', 'recording');
|
||||
|
||||
@@ -15,13 +16,13 @@ $(document).on("click", "[data-behavior=play_recording]", function() {
|
||||
height: '100%',
|
||||
autoPlay: true
|
||||
});
|
||||
|
||||
$(".dropdown-menu").children().removeClass('active');
|
||||
$(".dropdown-menu").children().children('i').remove();
|
||||
$(this).siblings().removeClass('active');
|
||||
$(this).siblings().children("i").remove();
|
||||
$(this).addClass('active');
|
||||
$(this).prepend('<i class="fa fa-check"> </i>');
|
||||
});
|
||||
|
||||
$(document).on("click", "[data-behavior=play_stream]", function() {
|
||||
// clearPlayingHighlight();
|
||||
$("#broadcast_video").data('videoType', 'stream');
|
||||
});
|
||||
|
||||
function clearPlayingHighlight() {
|
||||
$(".playing-highlight").removeClass("playing-highlight");
|
||||
}
|
||||
$(document).on("click", "[data-behavior=play_stream]", function() { $("#broadcast_video").data('videoType', 'stream'); });
|
||||
@@ -1,30 +1,4 @@
|
||||
// Do not allow file attachments in rich text content
|
||||
addEventListener("trix-file-accept", function(event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
Trix.config.textAttributes.underline = {
|
||||
style: { "textDecoration": "underline" },
|
||||
inheritable: true,
|
||||
parser: function (element) {
|
||||
var style = window.getComputedStyle(element);
|
||||
return style.textDecoration === "underline";
|
||||
}
|
||||
}
|
||||
|
||||
document.addEventListener('trix-initialize', function (e) {
|
||||
const trix = e.target;
|
||||
const toolBar = trix.toolbarElement;
|
||||
|
||||
// // Creation of the button
|
||||
const button = document.createElement("button");
|
||||
button.setAttribute("type", "button");
|
||||
button.setAttribute("class", "trix-button trix-button--icon trix-button--icon-underline");
|
||||
button.setAttribute("data-trix-attribute", "underline");
|
||||
button.setAttribute("title", "underline");
|
||||
button.setAttribute("tabindex", "-1");
|
||||
button.innerText = "U";
|
||||
|
||||
// Attachment of the button to the toolBar
|
||||
toolBar.querySelector('.trix-button-group--text-tools').appendChild(button);
|
||||
});
|
||||
})
|
||||
|
||||
@@ -461,64 +461,3 @@ a[data-behavior=seekable-timecode] {
|
||||
border-color: transparent;
|
||||
border-bottom: 3px solid #ff0000;
|
||||
}
|
||||
|
||||
//Trix underline style
|
||||
trix-toolbar {
|
||||
.trix-button--icon-underline::before {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z'/%3E%3C/svg%3E");
|
||||
}
|
||||
}
|
||||
|
||||
// Play button SVG
|
||||
.play-btn {
|
||||
width: 60%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.play-btn-svg{
|
||||
transition: 0.3s;
|
||||
stroke:#fedfc2;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.play-btn:hover .play-btn-svg {
|
||||
fill-opacity: 0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
// Play button in video thumbnail preview
|
||||
.play-thumbnail { position: relative; }
|
||||
.play-thumbnail img { display: block; }
|
||||
.play-thumbnail .play-btn { position: absolute; bottom:5px; left:10px; }
|
||||
|
||||
// Active recording highlight
|
||||
.playing-highlight {
|
||||
background-color: scale-color($primary, $lightness: 80%);
|
||||
}
|
||||
|
||||
// Toast min width and border radius
|
||||
.toast-min-w-border-radius {
|
||||
min-width: 18rem;
|
||||
border-radius: 0.8rem;
|
||||
}
|
||||
|
||||
// Toast left border primary
|
||||
.toast-border-left-primary {
|
||||
border-left: 8px solid $primary;
|
||||
}
|
||||
|
||||
// Toast left border danger
|
||||
.toast-border-left-danger {
|
||||
border-left: 8px solid $danger;
|
||||
}
|
||||
|
||||
// Change link color to primary on toast notifications
|
||||
.toast {
|
||||
a {
|
||||
color: $primary;
|
||||
}
|
||||
|
||||
a.btn {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
@@ -48,10 +48,6 @@ u {
|
||||
margin-right: -30px;
|
||||
}
|
||||
|
||||
.embed-person-photo {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.do-not-copy-warning {
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ class BroadcastsChannel < ApplicationCable::Channel
|
||||
def self.broadcast_stream_updates(broadcast)
|
||||
status_content = ApplicationController.render partial: "broadcasts/broadcast_status", locals: { broadcast: broadcast }
|
||||
video_content = ApplicationController.render partial: "broadcasts/video", locals: { broadcast: broadcast }
|
||||
recording_status_content = ApplicationController.render partial: "broadcasts/recording_status", locals: { broadcast: broadcast }
|
||||
live_take = ApplicationController.render partial: "broadcasts/live_take", locals: { broadcast: broadcast }
|
||||
|
||||
broadcast_to broadcast, {
|
||||
event: :broadcast_stream_update,
|
||||
@@ -19,7 +19,7 @@ class BroadcastsChannel < ApplicationCable::Channel
|
||||
playback_url: broadcast.stream_playback_url,
|
||||
full_live_stream_playback_url: broadcast.full_live_stream_playback_url,
|
||||
video_content: video_content,
|
||||
recording_status_content: recording_status_content,
|
||||
live_take_content: live_take,
|
||||
status_content: status_content,
|
||||
streamer_status: broadcast.streamer_status
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
class AccountSessionsController < ApplicationController
|
||||
skip_before_action :redirect_locked_accounts
|
||||
def update
|
||||
authorize :account_session, :update?
|
||||
session[:active_account] = account_session_params[:account_id]
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
class Admin::AccountLocksController < Admin::ApplicationController
|
||||
before_action :set_account
|
||||
|
||||
def create
|
||||
authorize :account_lock, :create?
|
||||
@account.update(locked: true)
|
||||
redirect_to admin_accounts_path, notice: 'Account locked'
|
||||
end
|
||||
|
||||
def destroy
|
||||
authorize :account_lock, :destroy?
|
||||
@account.update(locked: false)
|
||||
redirect_to admin_accounts_path, notice: 'Account unlocked'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_account
|
||||
if params[:account_id].present?
|
||||
@account = Account.find_by(slug: params[:account_id])
|
||||
else
|
||||
failure_redirect
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
failure_redirect
|
||||
end
|
||||
|
||||
def failure_redirect
|
||||
redirect_to admin_accounts_path, alert: 'Failed to find the account'
|
||||
end
|
||||
end
|
||||
@@ -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,
|
||||
|
||||
@@ -13,7 +13,6 @@ class ApplicationController < ActionController::Base
|
||||
|
||||
include SetCurrentRequestDetails
|
||||
before_action :redirect_accountless
|
||||
before_action :redirect_locked_accounts
|
||||
|
||||
private
|
||||
|
||||
@@ -30,12 +29,6 @@ class ApplicationController < ActionController::Base
|
||||
end
|
||||
end
|
||||
|
||||
def redirect_locked_accounts
|
||||
if Current.user && !Current.user.admin? && Current.account.present? && Current.account.locked?
|
||||
redirect_to locked_account_path
|
||||
end
|
||||
end
|
||||
|
||||
def signed_in_as_admin?
|
||||
signed_in? && current_user.admin?
|
||||
end
|
||||
|
||||
34
app/controllers/broadcast_recording_starrings_controller.rb
Normal file
34
app/controllers/broadcast_recording_starrings_controller.rb
Normal file
@@ -0,0 +1,34 @@
|
||||
class BroadcastRecordingStarringsController < ApplicationController
|
||||
layout "project"
|
||||
|
||||
before_action :set_project
|
||||
before_action :set_broadcast
|
||||
before_action :set_recording
|
||||
|
||||
def create
|
||||
@recording.toggle_star
|
||||
set_recordings
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def broadcast_recording_params
|
||||
params.require(:broadcast_recording).permit(:name, :description)
|
||||
end
|
||||
|
||||
def set_project
|
||||
@project = policy_scope(Project).find(params[:project_id])
|
||||
end
|
||||
|
||||
def set_broadcast
|
||||
@broadcast = authorize policy_scope(@project.broadcasts).find(params[:broadcast_id])
|
||||
end
|
||||
|
||||
def set_recording
|
||||
@recording = authorize policy_scope(@broadcast.broadcast_recordings).find(params[:broadcast_recording_id])
|
||||
end
|
||||
|
||||
def set_recordings
|
||||
@recordings = @broadcast.broadcast_recordings.visible.order_by_recent.paginate(page: params[:page])
|
||||
end
|
||||
end
|
||||
@@ -5,6 +5,14 @@ class BroadcastRecordingsController < ApplicationController
|
||||
before_action :set_broadcast
|
||||
before_action :set_recording
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def update
|
||||
@recording.update(broadcast_recording_params)
|
||||
set_recordings
|
||||
end
|
||||
|
||||
def destroy
|
||||
@recording.update(hidden: true)
|
||||
set_recordings
|
||||
@@ -12,6 +20,10 @@ class BroadcastRecordingsController < ApplicationController
|
||||
|
||||
private
|
||||
|
||||
def broadcast_recording_params
|
||||
params.require(:broadcast_recording).permit(:name, :description)
|
||||
end
|
||||
|
||||
def set_project
|
||||
@project = policy_scope(Project).find(params[:project_id])
|
||||
end
|
||||
|
||||
@@ -7,41 +7,28 @@ class ContractDownloadsController < ApplicationController
|
||||
|
||||
def create
|
||||
authorize policy_scope(Download).create
|
||||
|
||||
download = @project.downloads.create!(release_type: release_type)
|
||||
fetch_releases
|
||||
|
||||
download = @project.downloads.create!(release_type: params[:release_type])
|
||||
other_downloads_in_progress = @project.downloads.unfinished_desc_order.offset(1)
|
||||
|
||||
if other_downloads_in_progress.any?
|
||||
in_progress_downloads_details = render_to_string "_other_pending_downloads", locals: { downloads: other_downloads_in_progress, release_type: release_type }, :layout => false
|
||||
in_progress_downloads_details = render_to_string "_other_pending_downloads", locals: { downloads: other_downloads_in_progress, release_type: params[:release_type] }, :layout => false
|
||||
ProjectsChannel.broadcast_download_generation_update(download, in_progress_downloads_details)
|
||||
else
|
||||
ProjectsChannel.broadcast_download_generation_update(download, I18n.t("contract_downloads.download.pending", release_type: release_type.titleize))
|
||||
ProjectsChannel.broadcast_download_generation_update(download, I18n.t("contract_downloads.download.pending", release_type: params[:release_type].titleize))
|
||||
end
|
||||
|
||||
GenerateContractsZipJob.perform_later(@project, download, release_type, release_ids, search_query, type_filter)
|
||||
GenerateContractsZipJob.perform_later(@project, download, params[:release_type], @releases.ids)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def release_type
|
||||
params[:release_type]
|
||||
def fetch_releases
|
||||
@releases = policy_scope(@project.public_send(releases))
|
||||
end
|
||||
|
||||
def search_query
|
||||
params[:search_query]
|
||||
end
|
||||
|
||||
def type_filter
|
||||
params[:type_filter]
|
||||
end
|
||||
|
||||
def release_ids
|
||||
JSON.parse(params[:release_ids])
|
||||
rescue StandardError
|
||||
[]
|
||||
end
|
||||
|
||||
def release_name(release_type)
|
||||
release_type.constantize.model_name.plural
|
||||
def releases
|
||||
params[:release_type].constantize.model_name.plural
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@ class ContractsController < ApplicationController
|
||||
respond_to do |format|
|
||||
format.pdf { send_contract_pdf }
|
||||
|
||||
if Rails.env.development? || Rails.env.test?
|
||||
if Rails.env.development?
|
||||
format.html { render_sample_html }
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
class LockedAccountsController < ApplicationController
|
||||
skip_before_action :redirect_locked_accounts
|
||||
skip_after_action :verify_policy_scoped
|
||||
|
||||
def index
|
||||
unless Current.account.locked?
|
||||
redirect_to projects_path
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -4,16 +4,4 @@ class PagesController < ApplicationController
|
||||
skip_after_action :verify_authorized
|
||||
skip_after_action :verify_policy_scoped
|
||||
skip_before_action :require_login
|
||||
|
||||
layout :layout_for_page
|
||||
|
||||
private
|
||||
|
||||
def layout_for_page
|
||||
case params[:id]
|
||||
when 'nanocosmos_player'
|
||||
false
|
||||
else
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
class Public::BroadcastRecordingStarringsController < Public::BaseController
|
||||
skip_after_action :verify_authorized
|
||||
before_action :set_broadcast
|
||||
before_action :set_recording
|
||||
|
||||
def create
|
||||
@recording.toggle_star
|
||||
set_recordings
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_broadcast
|
||||
@broadcast = Broadcast.find_by_token(params[:broadcast_token])
|
||||
end
|
||||
|
||||
def set_recording
|
||||
@recording = @broadcast.broadcast_recordings.find(params[:broadcast_recording_id])
|
||||
end
|
||||
|
||||
def set_recordings
|
||||
@recordings = @broadcast.broadcast_recordings.visible.order_by_recent.paginate(page: params[:page])
|
||||
end
|
||||
end
|
||||
@@ -1,31 +0,0 @@
|
||||
class Public::BroadcastRecordingsController < Public::BaseController
|
||||
skip_after_action :verify_authorized
|
||||
before_action :set_broadcast, only: [:edit, :update]
|
||||
before_action :set_recording, only: [:edit, :update]
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def update
|
||||
@recording.update(broadcast_recording_params)
|
||||
set_recordings
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def broadcast_recording_params
|
||||
params.require(:broadcast_recording).permit(:name, :description)
|
||||
end
|
||||
|
||||
def set_broadcast
|
||||
@broadcast = Broadcast.find_by_token(params[:broadcast_token])
|
||||
end
|
||||
|
||||
def set_recording
|
||||
@recording = @broadcast.broadcast_recordings.find(params[:id])
|
||||
end
|
||||
|
||||
def set_recordings
|
||||
@recordings = @broadcast.broadcast_recordings.visible.order_by_recent.paginate(page: params[:page])
|
||||
end
|
||||
end
|
||||
@@ -2,7 +2,7 @@ class VideoAnalyses::AcquiredMediaReleasesController < ApplicationController
|
||||
before_action :set_video
|
||||
|
||||
def index
|
||||
@acquired_media_files = filtered_files
|
||||
@acquired_media_file_infos = filtered_file_infos
|
||||
end
|
||||
|
||||
private
|
||||
@@ -15,12 +15,12 @@ class VideoAnalyses::AcquiredMediaReleasesController < ApplicationController
|
||||
params[:query]
|
||||
end
|
||||
|
||||
def filtered_files
|
||||
def filtered_file_infos
|
||||
releasables = policy_scope(@video.acquired_media_releases)
|
||||
results = ActiveStorage::Attachment.where(record: releasables, name: "files")
|
||||
results = FileInfo.where(releasable: releasables)
|
||||
|
||||
if query_param.present?
|
||||
results = results.joins(:blob).where("active_storage_blobs.filename ILIKE ?", "%#{query_param}%")
|
||||
results = results.search_filename(query_param)
|
||||
end
|
||||
|
||||
results
|
||||
|
||||
@@ -74,7 +74,6 @@ class VideoReleaseConfirmationsController < ApplicationController
|
||||
params.require(:video_release_confirmation).permit(
|
||||
:time_elapsed,
|
||||
:file_info_id,
|
||||
:file_id,
|
||||
:channel,
|
||||
:timecode_in,
|
||||
:timecode_out,
|
||||
|
||||
@@ -40,13 +40,4 @@ module DropzoneHelper
|
||||
{ name: file_info.filename, size: file_info.byte_size, type: file_info.content_type }
|
||||
end.to_json
|
||||
end
|
||||
|
||||
def dropzone_file_size_limit_for(releasable)
|
||||
case releasable.model_name.param_key
|
||||
when "material_release", "acquired_media_release"
|
||||
1000000
|
||||
else
|
||||
256
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,7 +17,6 @@ module TagsHelper
|
||||
disable_with: disabled_content,
|
||||
},
|
||||
form: {
|
||||
id: "selected_releases_form",
|
||||
data: {
|
||||
releasable_ids: [],
|
||||
},
|
||||
|
||||
@@ -12,7 +12,6 @@ class ActiveStorageDropzone {
|
||||
var acceptedFiles = $(element).data("accepted-files") || "image/*";
|
||||
var dictDefaultMessage = $(element).data("placeholder") || "Drop files here";
|
||||
var submitButton = $($(element).data("submit-button"));
|
||||
var maxFileSize = $(element).data("max-file-size");
|
||||
var that = this;
|
||||
|
||||
this.myDropzone = new this.DropzoneClass(element, {
|
||||
@@ -21,7 +20,6 @@ class ActiveStorageDropzone {
|
||||
acceptedFiles: acceptedFiles,
|
||||
parallelUploads: 30,
|
||||
dictDefaultMessage: dictDefaultMessage,
|
||||
maxFilesize: maxFileSize,
|
||||
|
||||
init: function () {
|
||||
this.on("sending", (file, xhr, formData) => {
|
||||
|
||||
@@ -7,14 +7,13 @@ class GenerateContractsZipJob < ApplicationJob
|
||||
@project = job.arguments.first
|
||||
@download = job.arguments.second
|
||||
@release_type = job.arguments.third
|
||||
@release_ids = job.arguments.fourth
|
||||
@search_query = job.arguments.fifth
|
||||
@type_filter = job.arguments[5]
|
||||
@folder_name = "#{@project.name.parameterize}_#{release_name.gsub('_', '-')}"
|
||||
@folder_name = "#{@project.name.parameterize}_#{get_release_name(@release_type).gsub('_', '-')}"
|
||||
@download.update!(name: @folder_name, status: :pending)
|
||||
end
|
||||
|
||||
def perform(project, download, release_type, release_ids, search_query, type_filter)
|
||||
def perform(project, download, release_type, release_ids)
|
||||
releases = project.public_send(get_release_name(release_type)).where(id: release_ids)
|
||||
|
||||
::ReleaseContractCollectionService.new(releases, @folder_name).build do |dir, files|
|
||||
zipfile_name = "#{dir}/#{@folder_name}.zip"
|
||||
Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
|
||||
@@ -32,7 +31,7 @@ class GenerateContractsZipJob < ApplicationJob
|
||||
end
|
||||
rescue StandardError => e
|
||||
Rails.logger.error("Failed to generate download for project (##{project.id}) with release type #{release_type}\n" + e.message)
|
||||
|
||||
|
||||
@download.failure!
|
||||
ProjectsChannel.broadcast_download_generation_update(@download, I18n.t("contract_downloads.download.failure"))
|
||||
end
|
||||
@@ -62,32 +61,7 @@ class GenerateContractsZipJob < ApplicationJob
|
||||
end
|
||||
end
|
||||
|
||||
def release_name
|
||||
@release_type.constantize.model_name.plural
|
||||
end
|
||||
|
||||
def all_releases
|
||||
@project.public_send(release_name)
|
||||
end
|
||||
|
||||
def releases
|
||||
if @release_ids.any?
|
||||
return all_releases.where(id: @release_ids)
|
||||
end
|
||||
|
||||
results = all_releases
|
||||
if all_releases.respond_to?(:complete, :incomplete)
|
||||
results = case @type_filter
|
||||
when 'complete'
|
||||
all_releases.complete
|
||||
when 'incomplete'
|
||||
all_releases.incomplete
|
||||
else
|
||||
all_releases
|
||||
end
|
||||
end
|
||||
|
||||
results = results.search(@search_query) if @search_query.present?
|
||||
results
|
||||
def get_release_name(release_type)
|
||||
release_type.constantize.model_name.plural
|
||||
end
|
||||
end
|
||||
|
||||
@@ -15,7 +15,6 @@ class MatchAppearanceReleasesJob < ApplicationJob
|
||||
matches = response.matches || []
|
||||
key_signed_id_hash = Hash[filtered_attachments_object[:keys].zip(filtered_attachments_object[:signed_ids])]
|
||||
handle_matches matches, project, key_signed_id_hash
|
||||
handle_unmatches matches, project, key_signed_id_hash
|
||||
matching_request.destroy
|
||||
end
|
||||
|
||||
@@ -41,21 +40,6 @@ class MatchAppearanceReleasesJob < ApplicationJob
|
||||
end
|
||||
end
|
||||
|
||||
def handle_unmatches(matches, project, key_signed_id_hash)
|
||||
matched_keys = matches.flat_map { |match| match.contracts + match.headshots }
|
||||
unmatches = key_signed_id_hash.find_all { |key, _| !key.in?(matched_keys) }
|
||||
|
||||
unmatches.each do |key, signed_id|
|
||||
blob = ActiveStorage::Blob.find_signed signed_id
|
||||
|
||||
if blob.image?
|
||||
create_release(project, nil, signed_id, nil)
|
||||
else
|
||||
create_release(project, signed_id, nil, nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def create_release(project, contract, headshot, identifier)
|
||||
random_contract_no = AppearanceRelease.random_contract_number.to_s
|
||||
is_incomplete = contract.nil? || headshot.nil?
|
||||
|
||||
@@ -18,7 +18,7 @@ class ContractTemplate < ApplicationRecord
|
||||
has_many :medical_releases, dependent: :restrict_with_error
|
||||
has_many :misc_releases, dependent: :restrict_with_error
|
||||
|
||||
monetize :fee_old_cents
|
||||
monetize :fee_cents
|
||||
has_rich_text :body
|
||||
has_rich_text :guardian_clause
|
||||
has_rich_text :signature_legal_text
|
||||
@@ -29,7 +29,7 @@ class ContractTemplate < ApplicationRecord
|
||||
|
||||
validates :name, presence: true
|
||||
validates :release_type, presence: true
|
||||
validates :fee_old_cents, numericality: {
|
||||
validates :fee_cents, numericality: {
|
||||
greater_than_or_equal_to: 0,
|
||||
less_than_or_equal_to: 99_999_999_99
|
||||
}
|
||||
@@ -50,11 +50,7 @@ class ContractTemplate < ApplicationRecord
|
||||
enum accessibility: [:public_template, :private_template]
|
||||
|
||||
def fee?
|
||||
fee.present?
|
||||
end
|
||||
|
||||
def fee_old?
|
||||
!fee_old.zero?
|
||||
!fee.zero?
|
||||
end
|
||||
|
||||
def releases
|
||||
|
||||
@@ -9,10 +9,6 @@ class VideoReleaseConfirmation < ApplicationRecord
|
||||
Timecode.from_seconds(time_elapsed.to_f).to_s
|
||||
end
|
||||
|
||||
def file
|
||||
ActiveStorage::Attachment.find(file_id)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
class ReleaseRankOrder
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
class AccountLockPolicy < ApplicationPolicy
|
||||
def create?
|
||||
user.admin?
|
||||
end
|
||||
|
||||
def destroy?
|
||||
user.admin?
|
||||
end
|
||||
end
|
||||
@@ -12,10 +12,10 @@ class BroadcastRecordingPolicy < ApplicationPolicy
|
||||
end
|
||||
|
||||
def edit?
|
||||
true
|
||||
destroy?
|
||||
end
|
||||
|
||||
def update?
|
||||
true
|
||||
edit?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
class SerializableUser < JSONAPI::Serializable::Resource
|
||||
type "user"
|
||||
|
||||
attributes :email, :full_name
|
||||
|
||||
attribute :company_name do
|
||||
@object.primary_account.name
|
||||
end
|
||||
attributes :email
|
||||
end
|
||||
|
||||
@@ -24,7 +24,7 @@ class ReleaseContractCollectionService
|
||||
end
|
||||
|
||||
files = Dir.entries("#{dir}/").select { |f| !File.directory? f }
|
||||
# raise StandardError.new "Contracts or Contract Templates not found." unless files.any?
|
||||
raise StandardError.new "Contracts or Contract Templates not found." unless files.any?
|
||||
yield(dir, files)
|
||||
}
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<%= form.email_field :email, class: "form-group" %>
|
||||
<%= form.password_field :password %>
|
||||
<%= form.text_field :account_name, label: 'Account Name' %>
|
||||
<%= form.select :interested_product_name, options_for_select(["I'm interested in all products", "ME Suite PRO", "DirectME", "ReleaseME", "CastME", "EditME", "DeliverME", "ExpenseME"]), { label: "What product are you most interested in?" }, { class: "form-control custom-select" } %>
|
||||
<%= form.select :interested_product_name, options_for_select(["I'm interested in all products", "DirectME", "ReleaseME", "CastME", "EditME", "DeliverME", "ExpenseME"]), { label: "What product are you most interested in?" }, { class: "form-control custom-select" } %>
|
||||
<div class="pt-3">
|
||||
<%= form.submit "Start Free Trial", class: "btn btn-block btn-danger font-weight-bold" %>
|
||||
</div>
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
<h3>Welcome To <%= suite_wordmark("d-inline-block") %></h3>
|
||||
<div class="mt-4">
|
||||
<p>Sign up for a <strong>14 Day Free Trial</strong> which includes full access to the following products. No credit card required!</p>
|
||||
<div class="d-flex justify-content-between pb-2">
|
||||
<div><%= image_tag "ME_PRO_black.png", width: "96.66%" %></div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between pb-2">
|
||||
<div><%= image_tag "logo_directme.png", width: "90%" %></div>
|
||||
<div><%= image_tag "logo_releaseme.png", width: "90%" %></div>
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<input id="total_entries" type=hidden value=<%= @acquired_media_releases.total_entries %> />
|
||||
<div class="d-md-flex d-sm-flex flex-sm-column flex-md-row flex-md-wrap mb-3">
|
||||
<% if policy(AcquiredMediaRelease).new? %>
|
||||
<div class="mr-auto">
|
||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :acquired_media_release], class: "btn btn-primary mr-2 mb-2" %>
|
||||
</div>
|
||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :acquired_media_release], class: "btn btn-primary mr-2 mb-2" %>
|
||||
<% end %>
|
||||
|
||||
<% if @acquired_media_releases.any? && policy(AcquiredMediaRelease).tag_multiple? %>
|
||||
<%= button_to_bulk_tagging(@project) %>
|
||||
<% end %>
|
||||
|
||||
|
||||
<% if @acquired_media_releases.any? && policy(AcquiredMediaRelease).download_multiple? %>
|
||||
<%= button_to "Download", [@project, :contract_downloads, release_type: @acquired_media_releases.name], id: "download_releases", method: :post, remote: true, class: "btn btn-light border mr-2 mb-2", data: {
|
||||
<%= link_to "Download All", [@project, :contract_downloads, release_type: @acquired_media_releases.name], method: :post, remote: true, class: "btn btn-light border ml-auto mr-2 mb-2", data: {
|
||||
disable_with: "Please wait..." } %>
|
||||
<% end %>
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
$("#acquired_media_releases").html("<%= j render(@acquired_media_releases) %>");
|
||||
$("form input[type='search']").val("<%= params[:query] %>");
|
||||
$("#acquired_media_releases_pagination").html("<%= j will_paginate(@acquired_media_releases) %>");
|
||||
$("#selected_releases_form").attr('data-releasable-ids', JSON.stringify([]));
|
||||
$("#total_entries").val(<%= @acquired_media_releases.total_entries %>);
|
||||
@@ -30,11 +30,6 @@
|
||||
<%= link_to fa_icon("arrow-right", text: "Overview"), admin_account_path(account), class: "dropdown-item" %>
|
||||
<%= link_to fa_icon("pencil", text: "Edit"), edit_admin_account_path(account), class: "dropdown-item" %>
|
||||
<%= link_to fa_icon("arrow-right", text: "Account Managers"), account_auths_path({ account_id: account.id}), class: "dropdown-item" %>
|
||||
<% if account.locked? %>
|
||||
<%= link_to fa_icon("unlock", text: "Unlock Account"), [:admin, account, :lock], method: :delete, class: "dropdown-item" %>
|
||||
<% else %>
|
||||
<%= link_to fa_icon("lock", text: "Lock Account"), [:admin, account, :lock], method: :post, class: "dropdown-item" %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<input id="total_entries" type=hidden value=<%= @appearance_releases.total_entries %> />
|
||||
<div id="upload-progress-container" class="mb-1"></div>
|
||||
<div class="d-md-flex d-sm-flex flex-sm-column flex-md-row flex-md-wrap mb-2">
|
||||
<% if policy(AppearanceRelease).new? %>
|
||||
@@ -17,7 +16,7 @@
|
||||
<% end %>
|
||||
|
||||
<% if @appearance_releases.any? && policy(AppearanceRelease).download_multiple? %>
|
||||
<%= button_to "Download", [@project, :contract_downloads, release_type: @appearance_releases.name], id: "download_releases", method: :post, remote: true, class: "btn btn-light border mr-2 mb-2", data: { disable_with: "Please wait..." } %>
|
||||
<%= link_to "Download All", [@project, :contract_downloads, release_type: @appearance_releases.name], method: :post, remote: true, class: "btn btn-light border mr-2 mb-2", data: { disable_with: "Please wait..." } %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,5 +3,3 @@ $("form input[type='search']").val("<%= params[:query] %>");
|
||||
$("#type_filter_actions").html("<%= j render 'type_filter_actions' %>");
|
||||
$("#appearance_releases_pagination").html("<%= j will_paginate(@appearance_releases) %>");
|
||||
$('#type_filter_value').val("<%= params[:type_filter] %>");
|
||||
$("#selected_releases_form").attr('data-releasable-ids', JSON.stringify([]));
|
||||
$("#total_entries").val(<%= @appearance_releases.total_entries %>);
|
||||
@@ -1,22 +1,5 @@
|
||||
<!-- Wrapping element flash message-->
|
||||
<div class="position-relative" style="z-index: 9999;">
|
||||
<!-- Position toasts -->
|
||||
<div class="position-absolute" style="top: 0.5rem; right: 0.5rem;">
|
||||
<% if flash.alert.present? %>
|
||||
<div class="toast fade show bg-black text-white toast-min-w-border-radius" data-autohide="false">
|
||||
<div class="toast-body toast-border-left-danger">
|
||||
<button type="button" class="close text-white ml-2" data-dismiss="toast">×</button>
|
||||
<p><%= flash.alert.html_safe %></p>
|
||||
</div>
|
||||
</div>
|
||||
<% elsif flash.notice.present? %>
|
||||
<div class="toast fade show bg-black text-white toast-min-w-border-radius" data-autohide="false">
|
||||
<div class="toast-body toast-border-left-primary">
|
||||
<button type="button" class="close text-white ml-2" data-dismiss="toast">×</button>
|
||||
<p><%= flash.notice.html_safe %></p>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if flash.alert.present? %>
|
||||
<div class="alert alert-danger text-center text-md-left"><%= flash.alert.html_safe %></div>
|
||||
<% elsif flash.notice.present? %>
|
||||
<div class="alert alert-primary text-center text-md-left"><%= flash.notice.html_safe %></div>
|
||||
<% end %>
|
||||
|
||||
@@ -1 +1 @@
|
||||
$("#broadcast_recordings").html("<%= j render(partial: 'broadcasts/broadcast_recordings', locals: { recordings: @recordings, broadcast: @broadcast }) %>");
|
||||
$("#broadcast_recordings").html("<%= j render(partial: 'broadcasts/broadcast_recordings', locals: { recordings: @recordings, broadcast: @broadcast }) %>");
|
||||
@@ -7,7 +7,7 @@
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<%= bootstrap_form_with model: [broadcast, recording], url: broadcast_broadcast_recording_path(broadcast.token, recording), layout: :horizontal, label_col: "col-3", control_col: "col-9" do |form| %>
|
||||
<%= bootstrap_form_with model: [broadcast.project, broadcast, recording], layout: :horizontal, label_col: "col-3", control_col: "col-9" do |form| %>
|
||||
<div class="modal-body">
|
||||
<div id="broadcast_recording_fields">
|
||||
<%= form.text_field :name %>
|
||||
@@ -2,5 +2,5 @@
|
||||
$("#edit_broadcast_recording_modal").remove();
|
||||
|
||||
<% # Create and show the modal %>
|
||||
$("body").append("<%= j render(partial: 'edit_broadcast_recording_modal', locals: { broadcast: @broadcast, recording: @recording }) %>");
|
||||
$("body").append("<%= j render(partial: 'edit_broadcast_recording_modal', locals: { project: @project, broadcast: @broadcast, recording: @recording }) %>");
|
||||
$("#edit_broadcast_recording_modal").modal("toggle");
|
||||
1
app/views/broadcast_recordings/update.js.erb
Normal file
1
app/views/broadcast_recordings/update.js.erb
Normal file
@@ -0,0 +1 @@
|
||||
<%= render("broadcast_recordings/refresh_recordings_list") %>
|
||||
@@ -1,31 +1,29 @@
|
||||
<ul class="list-unstyled">
|
||||
<% recordings.each do |recording| %>
|
||||
<li class="media p-3">
|
||||
<% if policy(BroadcastRecording).update? %>
|
||||
<%= link_to fa_icon("#{recording.starred ? 'star' : 'star-o'} fw"), broadcast_broadcast_recording_broadcast_recording_starrings_path(broadcast.token, recording), method: :post, class: "text-warning mr-3", remote: true %>
|
||||
<% end %>
|
||||
|
||||
<div class="play-thumbnail">
|
||||
<%= image_tag(recording.thumbnail_url, class: 'mr-2', size: "64x64") %>
|
||||
<%= content_tag :div, class: "play-btn", data: { behavior: "play_recording", playback_url: recording.playback_url, id: dom_id(recording) } do %>
|
||||
<%= render "broadcasts/play_button_svg" %>
|
||||
<% end %>
|
||||
<% if recordings.present? %>
|
||||
<div class="list-group">
|
||||
<% recordings.each do |recording| %>
|
||||
<div class="list-group-item list-group-item-action">
|
||||
<div class="d-flex align-items-start">
|
||||
<% if (controller.class.module_parent.to_s != "Public" && policy(BroadcastRecording).update?) %>
|
||||
<%= link_to fa_icon("#{recording.starred ? 'star' : 'star-o'} fw"), [broadcast.project, broadcast, recording, :broadcast_recording_starrings], method: :post, class: "text-warning mr-3", remote: true %>
|
||||
<% end %>
|
||||
<%= image_tag(recording.thumbnail_url, class: 'img-thumbnail img-fluid max-w-75') %>
|
||||
<div class="ml-auto">
|
||||
<% if (controller.class.module_parent.to_s != "Public" && policy(BroadcastRecording).edit?) %>
|
||||
<%= link_to fa_icon('edit'), [:edit, broadcast.project, broadcast, recording], remote: true %>
|
||||
<% end %>
|
||||
<%= link_to(fa_icon('download'), recording.download_url, target: "_blank") %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-column align-items-start justify-content-start p-4">
|
||||
<h5><%= recording.name %></h5>
|
||||
<p><%= recording.description %></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="mt-0 mb-1"><%= recording.name %></h5>
|
||||
<small class="text-muted"><%= recording.description %></small>
|
||||
</div>
|
||||
|
||||
<% if policy(BroadcastRecording).edit? %>
|
||||
<%= link_to fa_icon('edit'), edit_broadcast_broadcast_recording_path(broadcast.token, recording), remote: true %>
|
||||
<% end %>
|
||||
|
||||
<%= link_to(fa_icon('download'), recording.download_url, target: "_blank") %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
<div id="recordings_pagination" class="row mt-5 justify-content-center">
|
||||
<%= will_paginate(recordings, params: {controller: "broadcasts", action: "show", project_id: broadcast.project_id, id: broadcast.id, page: params[:page], active_tab: 'recordings'}) %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div id="recordings_pagination" class="row mt-5 justify-content-center">
|
||||
<%= will_paginate(recordings, params: {controller: "broadcasts", action: "show", project_id: broadcast.project_id, id: broadcast.id, page: params[:page], active_tab: 'recordings'}) %>
|
||||
</div>
|
||||
<% else %>
|
||||
<p class="mt-4">Recording of the live stream will appear here.</p>
|
||||
<% end %>
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
<% if broadcast.streamer_connected? || (broadcast.streamer_recording? && !broadcast.active?) %>
|
||||
<p class="mb-1">Live stream has connected successfully and will be available soon.</p>
|
||||
<div class="badge badge-pill badge-success mb-2 text-uppercase">Connected</div>
|
||||
<% elsif broadcast.streamer_recording? && broadcast.active? %>
|
||||
<p class="mb-1">Live stream has begun, click play to watch it.</p>
|
||||
<div class="badge badge-pill badge-danger mb-2 text-uppercase">Live</div>
|
||||
<% elsif broadcast.streamer_disconnected? %>
|
||||
<p class="mb-1">Live stream got disconnected.</p>
|
||||
<div class="badge badge-pill badge-warning mb-2 text-uppercase">Disconnected</div>
|
||||
<% elsif (broadcast.idle? && broadcast.streamer_idle?) || (broadcast.created? && broadcast.streamer_idle?) %>
|
||||
<p class="mb-1">Live stream is waiting to begin.</p>
|
||||
<div class="badge badge-pill badge-primary mb-2 text-uppercase">Idle</div>
|
||||
<% end %>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="text-center p-3" id="broadcast_file_form_<%= broadcast.token %>">
|
||||
<div class="text-center pb-2" id="broadcast_file_form_<%= broadcast.token %>">
|
||||
<% if controller.class.module_parent.to_s == "Public" %>
|
||||
<%= render partial: "public/broadcasts/file_form", locals: { model: [broadcast], token: broadcast.token } %>
|
||||
<% else %>
|
||||
|
||||
@@ -1,35 +1,12 @@
|
||||
<% # TODO: Refactor this %>
|
||||
<% if params[:director_mode] %>
|
||||
<% if controller.class.module_parent.to_s == "Public" %>
|
||||
<% live_take_url = url_for(params.permit!.merge(director_mode: true, token: broadcast.token)) %>
|
||||
<% else %>
|
||||
<% live_take_url = url_for(params.permit!.merge(director_mode: true, id: broadcast.id)) %>
|
||||
<% end %>
|
||||
<hr/>
|
||||
<% else %>
|
||||
<% if controller.class.module_parent.to_s == "Public" %>
|
||||
<% live_take_url = url_for(params.permit!.merge(token: broadcast.token).except(:director_mode)) %>
|
||||
<% else %>
|
||||
<% live_take_url = url_for(params.permit!.merge(id: broadcast.id).except(:director_mode)) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<div id="live-take" class="media p-3 playing-highlight">
|
||||
<div id="recording_status">
|
||||
<%= render 'broadcasts/recording_status', broadcast: broadcast %>
|
||||
</div>
|
||||
|
||||
<div class="play-thumbnail">
|
||||
<%= image_tag "live_icon.png", class: "mr-2", width: 64, alt: "Live stream thumbnail" %>
|
||||
<%= link_to live_take_url, class: "play-btn", data: { behavior: "play_stream" } do %>
|
||||
<%= render "broadcasts/play_button_svg" %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<div class="media-body">
|
||||
<h5 class="mt-0"><%= broadcast.name %></h5>
|
||||
<small id="broadcast_updates" class="text-muted">
|
||||
<div class="list-group">
|
||||
<div class="list-group-item list-group-item-action flex-column align-items-start">
|
||||
<div class="d-flex w-100 justify-content-between mb-1">
|
||||
<h5 class="mb-1"><%= broadcast.name %></h5>
|
||||
<small>Created - <%= time_ago_in_words(broadcast.created_at) + " ago" %></small>
|
||||
</div>
|
||||
<div id="broadcast_updates">
|
||||
<%= render partial: 'broadcasts/broadcast_status', locals: { broadcast: broadcast } %>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
@@ -1,3 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 26">
|
||||
<polygon class="play-btn-svg" points="9.33 6.69 9.33 19.39 19.3 13.04 9.33 6.69"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 153 B |
@@ -1 +0,0 @@
|
||||
<%= fa_icon "circle fw", class: class_string('mr-2', 'text-danger' => broadcast.streamer_recording? && broadcast.active?) %>
|
||||
@@ -1,4 +1,4 @@
|
||||
<% if broadcast.director_mode_video_embed.present? && params[:non_director_mode].nil? %>
|
||||
<% 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>
|
||||
|
||||
@@ -13,45 +13,34 @@
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<style>
|
||||
body {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
<% content_for :header do %>
|
||||
<header></header>
|
||||
<% end %>
|
||||
|
||||
<div class="row no-gutters m-n3">
|
||||
<div class="col-lg-9 col-md-12 bg-black vh-100">
|
||||
<div class="col-lg-8 col-md-12 bg-black">
|
||||
<div class="d-flex justify-content-start align-items-center flex-row p-3 mb-5 bg-dark">
|
||||
<%= product_wordmark(:direct_me, class: 'navbar-brand text-white') %>
|
||||
<div class="ml-4 dropdown">
|
||||
<% if @multi_view_broadcasts.present? %>
|
||||
<%= link_to "#", class: "btn btn-light dropdown-toggle text-white bg-black border-0 override-dropdown-show-state", role: "button", id: "dropdownMenuLink", data: { toggle: "dropdown" }, aria: { haspopup: "true", expanded: "false" } do %>
|
||||
<i class="fa fa-video-camera text-primary" aria-hidden="true"></i><span class="ml-2" id="selected_stream"><%= @broadcast.name %></span>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%= link_to "javascript:void(0);", class: "btn btn-light text-white bg-black border-0 override-dropdown-show-state", role: "button", id: "dropdownMenuLink", aria: { haspopup: "true", expanded: "false" } do %>
|
||||
<i class="fa fa-video-camera text-primary" aria-hidden="true"></i><span class="ml-2" id="selected_stream"><%= @broadcast.name %></span>
|
||||
<% end %>
|
||||
<%= link_to "#", class: "btn btn-light dropdown-toggle text-white bg-black border-0 override-dropdown-show-state", role: "button", id: "dropdownMenuLink", data: { toggle: "dropdown" }, aria: { haspopup: "true", expanded: "false" } do %>
|
||||
<i class="fa fa-video-camera text-primary" aria-hidden="true"></i><span class="ml-2" id="selected_stream"><%= @broadcast.name %></span>
|
||||
<% end %>
|
||||
<div class="dropdown-menu bg-black" aria-labelledby="dropdownMenuLink">
|
||||
<h5 class="dropdown-header">Live Streams</h5>
|
||||
<%= link_to fa_icon("check", text: @broadcast.name.titleize), "#", data: { behavior: "play_stream"}, class: "dropdown-item active" %>
|
||||
<% @multi_view_broadcasts.each do |broadcast| %>
|
||||
<% if broadcast.id != @broadcast.id %>
|
||||
<% if params[:non_director_mode] %>
|
||||
<% if params[:director_mode] %>
|
||||
<% if controller.class.module_parent.to_s == "Public" %>
|
||||
<%= link_to broadcast.name.titleize, url_for(params.permit!.merge(non_director_mode: true, token: broadcast.token)), data: { behavior: "play_stream"}, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||
<%= link_to broadcast.name.titleize, url_for(params.permit!.merge(director_mode: true, token: broadcast.token)), data: { behavior: "play_stream"}, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||
<% else %>
|
||||
<%= link_to broadcast.name.titleize, url_for(params.permit!.merge(non_director_mode: true, id: broadcast.id)), data: { behavior: "play_stream"}, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||
<%= link_to broadcast.name.titleize, url_for(params.permit!.merge(director_mode: true, id: broadcast.id)), data: { behavior: "play_stream"}, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<% if controller.class.module_parent.to_s == "Public" %>
|
||||
<%= link_to broadcast.name.titleize, url_for(params.permit!.merge(token: broadcast.token).except(:non_director_mode)), data: { behavior: "play_stream"}, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||
<%= link_to broadcast.name.titleize, url_for(params.permit!.merge(token: broadcast.token).except(:director_mode)), data: { behavior: "play_stream"}, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||
<% else %>
|
||||
<%= link_to broadcast.name.titleize, url_for(params.permit!.merge(id: broadcast.id).except(:non_director_mode)), data: { behavior: "play_stream"}, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||
<%= link_to broadcast.name.titleize, url_for(params.permit!.merge(id: broadcast.id).except(:director_mode)), data: { behavior: "play_stream"}, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
@@ -59,18 +48,18 @@
|
||||
</div>
|
||||
</div>
|
||||
<% if @broadcast.director_mode_video_embed.present? %>
|
||||
<% if params[:non_director_mode] %>
|
||||
<% unless params[:director_mode] %>
|
||||
<div class="custom-control custom-switch ml-auto">
|
||||
<input type="checkbox" name="non_director_mode" value="true" class="custom-control-input" id="director_mode_switch" />
|
||||
<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 "Enable Director Mode", url_for(params.permit!.except(:non_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="non_director_mode" value="true" class="custom-control-input" id="director_mode_switch" checked="checked" />
|
||||
<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 "Disable Director Mode", url_for(params.permit!.merge(non_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>
|
||||
@@ -91,34 +80,32 @@
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-12 bg-white vh-100 overflow-auto">
|
||||
<div class="px-3 pt-3">
|
||||
<% unless controller.class.module_parent.to_s == "Public" %>
|
||||
<% if @multi_view_broadcasts.present? %>
|
||||
<% tokens = @multi_view_broadcasts.map(&:token) %>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-primary" id="broadcast_share_url" data-behavior="clipboard" href="<%= broadcast_url(@broadcast.token, multi_view_tokens: tokens) %>">Share URL</button>
|
||||
<button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<%= link_to t('.actions.reset_url'), [@project, @broadcast], method: :patch, class: "dropdown-item" %>
|
||||
</div>
|
||||
<div class="col-lg-4 col-md-12 bg-white p-3 min-vh-100 overflow-auto">
|
||||
<% unless controller.class.module_parent.to_s == "Public" %>
|
||||
<% if @multi_view_broadcasts.present? %>
|
||||
<% tokens = @multi_view_broadcasts.map(&:token) %>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-primary" id="broadcast_share_url" data-behavior="clipboard" href="<%= broadcast_url(@broadcast.token, multi_view_tokens: tokens) %>">Share URL</button>
|
||||
<button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<%= link_to t('.actions.reset_url'), [@project, @broadcast], method: :patch, class: "dropdown-item" %>
|
||||
</div>
|
||||
<% else %>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-primary" id="broadcast_share_url" data-behavior="clipboard" href="<%= broadcast_url(@broadcast.token) %>">Share URL</button>
|
||||
<button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<%= link_to t('.actions.reset_url'), [@project, @broadcast], method: :patch, class: "dropdown-item" %>
|
||||
</div>
|
||||
</div>
|
||||
<% else %>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-primary" id="broadcast_share_url" data-behavior="clipboard" href="<%= broadcast_url(@broadcast.token) %>">Share URL</button>
|
||||
<button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<%= link_to t('.actions.reset_url'), [@project, @broadcast], method: :patch, class: "dropdown-item" %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
<%= link_to 'Video Conference', @conference_url, class: 'btn btn-primary', target: '_blank' %>
|
||||
</div>
|
||||
<% end %>
|
||||
<%= link_to 'Video Conference', @conference_url, class: 'btn btn-primary', target: '_blank' %>
|
||||
<hr/>
|
||||
<ul class="nav nav-tabs override-nav-tabs mb-3">
|
||||
<li class="nav-item">
|
||||
@@ -133,21 +120,6 @@
|
||||
<div id="live_take">
|
||||
<%= render partial: 'broadcasts/live_take', locals: { broadcast: @broadcast } %>
|
||||
</div>
|
||||
<% if params[:non_director_mode] %>
|
||||
<% if controller.class.module_parent.to_s == "Public" %>
|
||||
<%= link_to "Play #{@broadcast.name.titleize}", url_for(params.permit!.merge(non_director_mode: true, token: @broadcast.token)), data: { behavior: "play_stream"}, class: "mt-2 btn btn-primary" %>
|
||||
<% else %>
|
||||
<%= link_to "Play #{@broadcast.name.titleize}", url_for(params.permit!.merge(non_director_mode: true, id: @broadcast.id)), data: { behavior: "play_stream"}, class: "mt-2 btn btn-primary" %>
|
||||
<% end %>
|
||||
<hr/>
|
||||
<% else %>
|
||||
<% if controller.class.module_parent.to_s == "Public" %>
|
||||
<%= link_to "Play #{@broadcast.name.titleize}", url_for(params.permit!.merge(token: @broadcast.token).except(:non_director_mode)), data: { behavior: "play_stream"}, class: "mt-2 btn btn-primary" %>
|
||||
<% else %>
|
||||
<%= link_to "Play #{@broadcast.name.titleize}", url_for(params.permit!.merge(id: @broadcast.id).except(:non_director_mode)), data: { behavior: "play_stream"}, class: "mt-2 btn btn-primary" %>
|
||||
<% end %>
|
||||
<hr/>
|
||||
<% end %>
|
||||
<div id="broadcast_recordings">
|
||||
<%= render partial: 'broadcasts/broadcast_recordings', locals: { recordings: @recordings, broadcast: @broadcast } %>
|
||||
</div>
|
||||
@@ -161,12 +133,12 @@
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-content pt-4">
|
||||
<% @multi_view_broadcasts.each_with_index do |mvb, index| %>
|
||||
<div class="<%= class_string("tab-pane fade show", "active" => (params[:active_files_tab] == mvb.token || (params[:active_files_tab].nil? && index == 0))) %>" id="files_broadcast_<%= mvb.token %>">
|
||||
<%= render partial: 'broadcasts/files_section', locals: { broadcast: mvb, files: mvb.files } %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
<% else %>
|
||||
<%= render partial: 'broadcasts/files_section', locals: { broadcast: @broadcast, files: @files } %>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<% if contract_template.fee? %>
|
||||
<%= contract_template.fee %>
|
||||
<%= number_to_currency(contract_template.fee) %>
|
||||
<% else %>
|
||||
<%= t(".no_fee") %>
|
||||
<% end %>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<%= form.radio_button :accessibility, :private_template, label: "Private" %>
|
||||
</div>
|
||||
<div class="form-row" id="fee_field">
|
||||
<%= form.text_field :fee, wrapper_class: "col-sm-6" %>
|
||||
<%= form.number_field :fee, min:"0", max:"99999999", step: "0.01", prepend: "$", wrapper_class: "col-sm-6" %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
<% has_logo = local_assigns[:logo] %>
|
||||
<% has_user_photo = releasable.model_name == "AppearanceRelease" && releasable.person_photo.attached? %>
|
||||
|
||||
<% if has_logo || has_user_photo %>
|
||||
<table class="heading-table">
|
||||
<tr>
|
||||
<td>
|
||||
<% if has_logo %>
|
||||
<div class="logo">
|
||||
<%= render "blank_contracts/logo", logo: logo %>
|
||||
</div>
|
||||
<% end %>
|
||||
</td>
|
||||
<td class="embed-person-photo">
|
||||
<% if has_user_photo %>
|
||||
<%= image_tag releasable.photos.first.variant(auto_orient: true, resize: "200x200"), id: "top-person-photo" %>
|
||||
<% end %>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
<% end %>
|
||||
|
||||
<% if preview %>
|
||||
<h1>PREVIEW ONLY</h1>
|
||||
<% end %>
|
||||
|
||||
<% if contract_template.body.present? %>
|
||||
<%= contract_template.body %>
|
||||
<br/>
|
||||
<% end %>
|
||||
|
||||
<% if releasable.minor? && contract_template.guardian_clause.present? %>
|
||||
<p class="text-left"><strong>Guardian Clause</strong></p>
|
||||
<%= contract_template.guardian_clause %>
|
||||
<% end %>
|
||||
@@ -36,7 +36,7 @@
|
||||
<%= description_list_pair "Filming Hours:", releasable&.filming_hours %>
|
||||
<% end %>
|
||||
<% if contract_template.fee? %>
|
||||
<%= description_list_pair "Fee:", contract_template.fee %>
|
||||
<%= description_list_pair "Fee:", number_to_currency(contract_template.fee) %>
|
||||
<% end %>
|
||||
<% if releasable.model_name == "MaterialRelease" %>
|
||||
<%= description_list_pair "Description:", releasable.description %>
|
||||
|
||||
@@ -1,13 +1,22 @@
|
||||
<% logo = local_assigns[:logo] ? local_assigns[:logo] : nil %>
|
||||
|
||||
<% if logo || (releasable.model_name == 'AppearanceRelease' && releasable.person_photo.attached?) ||
|
||||
contract_template.body.present? || (releasable.minor? && contract_template.guardian_clause.present?) %>
|
||||
<div class="page">
|
||||
<%= render "contracts/logo_page", logo: logo, preview: preview, releasable: releasable, contract_template: contract_template %>
|
||||
<% if local_assigns[:logo] %>
|
||||
<div class="logo">
|
||||
<%= render "contracts/logo", logo: logo %>
|
||||
</div>
|
||||
<hr>
|
||||
<% end %>
|
||||
<% if preview %>
|
||||
<h1>PREVIEW ONLY</h1>
|
||||
<% end %>
|
||||
<% if contract_template.body.present? %>
|
||||
<%= contract_template.body %>
|
||||
<br/>
|
||||
<% end %>
|
||||
<% if releasable.minor? && contract_template.guardian_clause.present? %>
|
||||
<p class="text-left"><strong>Guardian Clause</strong></p>
|
||||
<%= contract_template.guardian_clause %>
|
||||
<% end %>
|
||||
|
||||
<% if contract_template.present? && contract_template.has_questionnaire? %>
|
||||
<% if releasable.respond_to?(:question_1_answer) %>
|
||||
<div class="page">
|
||||
<%= render "contracts/questionnaire", releasable: releasable, contract_template: contract_template, preview: preview %>
|
||||
</div>
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="flash-message">
|
||||
<%= render "flash" %>
|
||||
</div>
|
||||
<%= content_for?(:header) ? yield(:header) : render("header") %>
|
||||
<%= render "masquerade" if masquerading? %>
|
||||
<main class="container-fluid py-3">
|
||||
<div class="flash-message"></div>
|
||||
<%= render "flash" %>
|
||||
</div>
|
||||
<%= content_for?(:content) ? yield(:content) : yield %>
|
||||
</main>
|
||||
</body>
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<input id="total_entries" type=hidden value=<%= @location_releases.total_entries %> />
|
||||
<div class="d-md-flex d-sm-flex flex-sm-column flex-md-row flex-md-wrap mb-3">
|
||||
<% if policy(LocationRelease).new? %>
|
||||
<div class="mr-auto">
|
||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :location_release], class: "btn btn-primary mr-2 mb-2" %>
|
||||
</div>
|
||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :location_release], class: "btn btn-primary mr-2 mb-2" %>
|
||||
<% end %>
|
||||
|
||||
<% if @location_releases.any? && policy(LocationRelease).tag_multiple? %>
|
||||
@@ -13,7 +10,7 @@
|
||||
<% end %>
|
||||
|
||||
<% if @location_releases.any? && policy(LocationRelease).download_multiple? %>
|
||||
<%= button_to "Download", [@project, :contract_downloads, release_type: @location_releases.name], id: "download_releases", method: :post, remote: true, class: "btn btn-light border mr-2 mb-2", data: {
|
||||
<%= link_to "Download All", [@project, :contract_downloads, release_type: @location_releases.name], method: :post, remote: true, class: "btn btn-light border ml-auto mr-2 mb-2", data: {
|
||||
disable_with: "Please wait..." } %>
|
||||
<% end %>
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
$("#location_releases").html("<%= j render(@location_releases) %>");
|
||||
$("form input[type='search']").val("<%= params[:query] %>");
|
||||
$("#location_releases_pagination").html("<%= j will_paginate(@location_releases) %>");
|
||||
$("#selected_releases_form").attr('data-releasable-ids', JSON.stringify([]));
|
||||
$("#total_entries").val(<%= @location_releases.total_entries %>);
|
||||
@@ -1 +0,0 @@
|
||||
<p><%= t '.account_locked_message' %></p>
|
||||
@@ -42,7 +42,7 @@
|
||||
<%= link_to fa_icon("tags fw", text: "Tags"), [:new, material_release, :acts_as_taggable_on_tag], class: "dropdown-item", remote: true %>
|
||||
<% end %>
|
||||
<% if policy(material_release).edit_files? %>
|
||||
<%= link_to fa_icon("file-o fw", text: "Media"), [:edit, material_release, :files], class: "dropdown-item" %>
|
||||
<%= link_to fa_icon("file-o fw", text: "Add Media"), [:edit, material_release, :files], class: "dropdown-item" %>
|
||||
<% end %>
|
||||
<% if policy(Contract).show? && (material_release.contract.attached? || material_release.contract_template.present?) %>
|
||||
<%= link_to fa_icon("download fw", text: "Download"), [material_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<input id="total_entries" type=hidden value=<%= @material_releases.total_entries %> />
|
||||
<div class="d-md-flex d-sm-flex flex-sm-column flex-md-row flex-md-wrap mb-3">
|
||||
<% if policy(MaterialRelease).new? %>
|
||||
<div class="mr-auto">
|
||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :material_release], class: "btn btn-primary mr-2 mb-2" %>
|
||||
</div>
|
||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :material_release], class: "btn btn-primary mr-2 mb-2" %>
|
||||
<% end %>
|
||||
|
||||
<% if @material_releases.any? && policy(MaterialRelease).tag_multiple? %>
|
||||
@@ -13,7 +10,7 @@
|
||||
<% end %>
|
||||
|
||||
<% if @material_releases.any? && policy(MaterialRelease).download_multiple? %>
|
||||
<%= button_to "Download", [@project, :contract_downloads, release_type: @material_releases.name], id: "download_releases", method: :post, remote: true, class: "btn btn-light border mr-2 mb-2", data: {
|
||||
<%= link_to "Download All", [@project, :contract_downloads, release_type: @material_releases.name], method: :post, remote: true, class: "btn btn-light border ml-auto mr-2 mb-2", data: {
|
||||
disable_with: "Please wait..." } %>
|
||||
<% end %>
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
$("#material_releases").html("<%= j render(@material_releases) %>");
|
||||
$("form input[type='search']").val("<%= params[:query] %>");
|
||||
$("#material_releases_pagination").html("<%= j will_paginate(@material_releases) %>");
|
||||
$("#selected_releases_form").attr('data-releasable-ids', JSON.stringify([]));
|
||||
$("#total_entries").val(<%= @material_releases.total_entries %>);
|
||||
@@ -1,15 +1,12 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<input id="total_entries" type=hidden value=<%= @medical_releases.total_entries %> />
|
||||
<div class="d-md-flex d-sm-flex flex-sm-column flex-md-row flex-md-wrap mb-3">
|
||||
<% if @medical_releases.any? && policy(MedicalRelease).tag_multiple? %>
|
||||
<div class="ml-auto">
|
||||
<%= button_to_bulk_tagging(@project) %>
|
||||
</div>
|
||||
<%= button_to_bulk_tagging(@project) %>
|
||||
<% end %>
|
||||
|
||||
<% if @medical_releases.any? && policy(MedicalRelease).download_multiple? %>
|
||||
<%= button_to "Download", [@project, :contract_downloads, release_type: @medical_releases.name], id: "download_releases", method: :post, remote: true, class: "btn btn-light border mr-2 mb-2", data: {
|
||||
<%= link_to "Download All", [@project, :contract_downloads, release_type: @medical_releases.name], method: :post, remote: true, class: "btn btn-light border ml-auto mr-2 mb-2", data: {
|
||||
disable_with: "Please wait..." } %>
|
||||
<% end %>
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
$("#medical_releases").html("<%= j render(@medical_releases) %>");
|
||||
$("form input[type='search']").val("<%= params[:query] %>");
|
||||
$("#medical_releases_pagination").html("<%= j will_paginate(@medical_releases) %>");
|
||||
$("#selected_releases_form").attr('data-releasable-ids', JSON.stringify([]));
|
||||
$("#total_entries").val(<%= @medical_releases.total_entries %>);
|
||||
@@ -1,15 +1,12 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<input id="total_entries" type=hidden value=<%= @misc_releases.total_entries %> />
|
||||
<div class="d-md-flex d-sm-flex flex-sm-column flex-md-row flex-md-wrap mb-3">
|
||||
<% if @misc_releases.any? && policy(MiscRelease).tag_multiple? %>
|
||||
<div class="ml-auto">
|
||||
<%= button_to_bulk_tagging(@project) %>
|
||||
</div>
|
||||
<%= button_to_bulk_tagging(@project) %>
|
||||
<% end %>
|
||||
|
||||
<% if @misc_releases.any? && policy(MiscRelease).download_multiple? %>
|
||||
<%= button_to "Download", [@project, :contract_downloads, release_type: @misc_releases.name], id: "download_releases", method: :post, remote: true, class: "btn btn-light border mr-2 mb-2", data: {
|
||||
<%= link_to "Download All", [@project, :contract_downloads, release_type: @misc_releases.name], method: :post, remote: true, class: "btn btn-light border ml-auto mr-2 mb-2", data: {
|
||||
disable_with: "Please wait..." } %>
|
||||
<% end %>
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
$("#misc_releases").html("<%= j render(@misc_releases) %>");
|
||||
$("form input[type='search']").val("<%= params[:query] %>");
|
||||
$("#misc_releases_pagination").html("<%= j will_paginate(@misc_releases) %>");
|
||||
$("#selected_releases_form").attr('data-releasable-ids', JSON.stringify([]));
|
||||
$("#total_entries").val(<%= @misc_releases.total_entries %>);
|
||||
@@ -1,11 +1,8 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<input id="total_entries" type=hidden value=<%= @music_releases.total_entries %> />
|
||||
<div class="d-md-flex d-sm-flex flex-sm-column flex-md-row flex-md-wrap mb-3">
|
||||
<% if policy(MusicRelease).new? %>
|
||||
<div class="mr-auto">
|
||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :music_release], class: "btn btn-primary mr-2 mb-2" %>
|
||||
</div>
|
||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :music_release], class: "btn btn-primary mr-2 mb-2" %>
|
||||
<% end %>
|
||||
|
||||
<% if @music_releases.any? && policy(MusicRelease).tag_multiple? %>
|
||||
@@ -13,7 +10,7 @@
|
||||
<% end %>
|
||||
|
||||
<% if @music_releases.any? && policy(MusicRelease).download_multiple? %>
|
||||
<%= button_to "Download", [@project, :contract_downloads, release_type: @music_releases.name], id: "download_releases", method: :post, remote: true, class: "btn btn-light border mr-2 mb-2" %>
|
||||
<%= link_to "Download All", [@project, :contract_downloads, release_type: @music_releases.name], method: :post, remote: true, class: "btn btn-light border ml-auto mr-2 mb-2" %>
|
||||
<% end %>
|
||||
|
||||
<%= bootstrap_form_with url: [@project, :music_releases], method: :get, remote: true, layout: :inline, id: "search" do |form| %>
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
$("#music_releases").html("<%= j render(@music_releases) %>");
|
||||
$("form input[type='search']").val("<%= params[:query] %>");
|
||||
$("#music_releases_pagination").html("<%= j will_paginate(@music_releases) %>");
|
||||
$("#selected_releases_form").attr('data-releasable-ids', JSON.stringify([]));
|
||||
$("#total_entries").val(<%= @music_releases.total_entries %>);
|
||||
@@ -1,45 +0,0 @@
|
||||
<div>
|
||||
<div id="playerDiv"></div>
|
||||
<script type="text/javascript" src="https://demo.nanocosmos.de/nanoplayer/api/release/nanoplayer.4.min.js"></script>
|
||||
<%= javascript_tag nonce: true do %>
|
||||
var urlParams = new URLSearchParams(window.location.search);
|
||||
var streamName = urlParams.get('stream_name');
|
||||
console.log("streamName", streamName);
|
||||
var player;
|
||||
var config = {
|
||||
"source": {
|
||||
"entries": [
|
||||
{
|
||||
"h5live": {
|
||||
// your rtmp stream
|
||||
"rtmp": {
|
||||
"url": "rtmp://bintu-play.nanocosmos.de/play",
|
||||
"streamname": streamName,
|
||||
},
|
||||
"server": {
|
||||
"websocket": "wss://bintu-h5live.nanocosmos.de:443/h5live/stream.mp4",
|
||||
"hls": "https://bintu-h5live.nanocosmos.de:443/h5live/http/playlist.m3u8",
|
||||
"progressive": "https://bintu-h5live.nanocosmos.de:443/h5live/http/stream.mp4"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"style": {
|
||||
"width": "auto",
|
||||
}
|
||||
};
|
||||
function initPlayer() {
|
||||
player = new NanoPlayer('playerDiv');
|
||||
player.setup(config).then(function (config) {
|
||||
console.log('setup ok with config: ' + JSON.stringify(config));
|
||||
}, function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
}
|
||||
// load player from playerDiv
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
initPlayer();
|
||||
});
|
||||
<% end %>
|
||||
</div>
|
||||
@@ -6,7 +6,7 @@
|
||||
<p><%= @contract_template.body %></p>
|
||||
<% if @contract_template.fee? %>
|
||||
<p>
|
||||
Fee <span class="font-weight-bold text-success"><%= @contract_template.fee %></span>
|
||||
Fee <span class="font-weight-bold text-success"><%= number_to_currency @contract_template.fee %></span>
|
||||
</p>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<p><%= @contract_template.body %></p>
|
||||
<% if @contract_template.fee? %>
|
||||
<p>
|
||||
Fee <span class="font-weight-bold text-success"><%= @contract_template.fee %></span>
|
||||
Fee <span class="font-weight-bold text-success"><%= number_to_currency @contract_template.fee %></span>
|
||||
</p>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
$('[data-id="<%= dom_id(@recording) %>"]').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 }) %>");
|
||||
|
||||
// Close and remove the modal
|
||||
$("#edit_broadcast_recording_modal").on("hidden.bs.modal", function (e) {
|
||||
$("#edit_broadcast_recording_modal").remove();
|
||||
});
|
||||
$("#edit_broadcast_recording_modal").modal("hide");
|
||||
@@ -1 +0,0 @@
|
||||
<%= render("public/broadcast_recordings/refresh_recordings_list") %>
|
||||
@@ -6,7 +6,7 @@
|
||||
<p><%= @contract_template.body %></p>
|
||||
<% if @contract_template.fee? %>
|
||||
<p>
|
||||
Fee <span class="font-weight-bold text-success"><%= @contract_template.fee %></span>
|
||||
Fee <span class="font-weight-bold text-success"><%= number_to_currency @contract_template.fee %></span>
|
||||
</p>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<p><%= @contract_template.body %></p>
|
||||
<% if @contract_template.fee? %>
|
||||
<p>
|
||||
Fee <span class="font-weight-bold text-success"><%= @contract_template.fee %></span>
|
||||
Fee <span class="font-weight-bold text-success"><%= number_to_currency @contract_template.fee %></span>
|
||||
</p>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<%= @contract_template.body %>
|
||||
<% if @contract_template.fee? %>
|
||||
<p>
|
||||
Fee <span class="font-weight-bold text-success"><%= @contract_template.fee %></span>
|
||||
Fee <span class="font-weight-bold text-success"><%= number_to_currency @contract_template.fee %></span>
|
||||
</p>
|
||||
<% end %>
|
||||
<% end %>
|
||||
@@ -24,7 +24,7 @@
|
||||
<% end %>
|
||||
<hr>
|
||||
<% end %>
|
||||
|
||||
|
||||
<% if (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).map {|n| @contract_template.public_send("question_#{n}_text").presence }.compact.any? %>
|
||||
<%= card_field_set_tag t(".questionnaire.heading") do %>
|
||||
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<p><%= @contract_template.body %></p>
|
||||
<% if @contract_template.fee? %>
|
||||
<p>
|
||||
Fee <span class="font-weight-bold text-success"><%= @contract_template.fee %></span>
|
||||
Fee <span class="font-weight-bold text-success"><%= number_to_currency @contract_template.fee %></span>
|
||||
</p>
|
||||
<% end %>
|
||||
<% end %>
|
||||
@@ -139,4 +139,4 @@
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -14,5 +14,4 @@
|
||||
data-file-input-id="releasable_files"
|
||||
data-existing-files="<%= mock_photos_json(releasable.files) %>"
|
||||
data-placeholder="<%= dropzone_placeholder_message_for(releasable) %>"
|
||||
data-submit-button="#submit_folder"
|
||||
data-max-file-size="<%= dropzone_file_size_limit_for(releasable) %>"></div>
|
||||
data-submit-button="#submit_folder"></div>
|
||||
@@ -1,11 +1,8 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<input id="total_entries" type=hidden value=<%= @talent_releases.total_entries %> />
|
||||
<div class="d-md-flex d-sm-flex flex-sm-column flex-md-row flex-md-wrap mb-3">
|
||||
<% if policy(TalentRelease).new? %>
|
||||
<div class="mr-auto">
|
||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :talent_release], class: "btn btn-primary mr-2 mb-2" %>
|
||||
</div>
|
||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :talent_release], class: "btn btn-primary mr-2 mb-2" %>
|
||||
<% end %>
|
||||
|
||||
<% if @talent_releases.any? && policy(TalentRelease).tag_multiple? %>
|
||||
@@ -13,7 +10,7 @@
|
||||
<% end %>
|
||||
|
||||
<% if @talent_releases.any? && policy(TalentRelease).download_multiple? %>
|
||||
<%= button_to "Download", [@project, :contract_downloads, release_type: @talent_releases.name], id: "download_releases", method: :post, remote: true, class: "btn btn-light border mr-2 mb-2", data: {
|
||||
<%= link_to "Download All", [@project, :contract_downloads, release_type: @talent_releases.name], method: :post, remote: true, class: "btn btn-light border ml-auto mr-2 mb-2", data: {
|
||||
disable_with: "Please wait..." } %>
|
||||
<% end %>
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
$("#talent_releases").html("<%= j render(@talent_releases) %>");
|
||||
$("form input[type='search']").val("<%= params[:query] %>");
|
||||
$("#talent_releases_pagination").html("<%= j will_paginate(@talent_releases) %>");
|
||||
$("#selected_releases_form").attr('data-releasable-ids', JSON.stringify([]));
|
||||
$("#total_entries").val(<%= @talent_releases.total_entries %>);
|
||||
@@ -1,7 +1,7 @@
|
||||
<% if acquired_media_files.any? %>
|
||||
<% acquired_media_files.each do |file| %>
|
||||
<li class="acquired-media-releasable list-inline-item" data-ujs-target="<%= dom_id(file.record, dom_id(file)) %>" data-hidden="false">
|
||||
<%= render "video_analyses/file_releasable", releasable: file.record, video: video, file: file %>
|
||||
<% if acquired_media_file_infos.any? %>
|
||||
<% acquired_media_file_infos.each do |file_info| %>
|
||||
<li class="acquired-media-releasable list-inline-item" data-ujs-target="<%= dom_id(file_info.releasable, dom_id(file_info)) %>" data-hidden="false">
|
||||
<%= render "video_analyses/file_info_releasable", releasable: file_info.releasable, video: video, file_info: file_info %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% else %>
|
||||
@@ -1,7 +1,7 @@
|
||||
<% if acquired_media_release.files.any? %>
|
||||
<% acquired_media_release.files.each do |file| %>
|
||||
<li class="acquired-media-releasable list-inline-item" data-ujs-target="<%= dom_id(acquired_media_release, "attachment_#{file.id}") %>" data-confirmed="<%= video.has_confirmed_release?(acquired_media_release) && video.video_release_confirmations.any? { |video_release_confirmation| video_release_confirmation.file_id == file.id } %>" data-hidden="false">
|
||||
<%= render "video_analyses/file_releasable", releasable: acquired_media_release, video: video, file: file %>
|
||||
<% if acquired_media_release.file_infos.any? %>
|
||||
<% acquired_media_release.file_infos.each do |file_info| %>
|
||||
<li class="acquired-media-releasable list-inline-item" data-ujs-target="<%= dom_id(acquired_media_release, "file_info_#{file_info.id}") %>" data-confirmed="<%= video.has_confirmed_release?(acquired_media_release) && video.video_release_confirmations.any? { |video_release_confirmation| video_release_confirmation.file_info_id == file_info.id } %>" data-hidden="false">
|
||||
<%= render "video_analyses/file_info_releasable", releasable: acquired_media_release, video: video, file_info: file_info %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% else %>
|
||||
|
||||
8
app/views/video_analyses/_file_info_releasable.html.erb
Normal file
8
app/views/video_analyses/_file_info_releasable.html.erb
Normal file
@@ -0,0 +1,8 @@
|
||||
<%= button_to_video_release_confirmation video, releasable, additional_video_release_params: { file_info_id: file_info.id } do %>
|
||||
<figure class="figure mb-0">
|
||||
<div class="figure-img border text-muted d-flex justify-content-center align-items-center text-wrap text-break" style="width:200px;height:200px;">
|
||||
<%= file_info.filename %>
|
||||
</div>
|
||||
<figcaption class="figure-caption text-center"><%= truncate releasable.name, length: 25 %></figcaption>
|
||||
</figure>
|
||||
<% end %>
|
||||
@@ -1,12 +0,0 @@
|
||||
<%= button_to_video_release_confirmation video, releasable, additional_video_release_params: { file_id: file.id } do %>
|
||||
<figure class="figure mb-0">
|
||||
<% if file.content_type.include? "image" %>
|
||||
<%= image_tag large_variant(file), class: "figure-img border", style: "width:200px;height:200px;" %>
|
||||
<% else %>
|
||||
<div class="figure-img border text-muted d-flex justify-content-center align-items-center text-wrap text-break" style="width:200px;height:200px;">
|
||||
<%= file.filename %>
|
||||
</div>
|
||||
<% end %>
|
||||
<figcaption class="figure-caption text-center"><%= truncate releasable.name, length: 25 %></figcaption>
|
||||
</figure>
|
||||
<% end %>
|
||||
@@ -1,18 +1,3 @@
|
||||
<% if material_release.files.any? %>
|
||||
<% material_release.files.each do |file| %>
|
||||
<li class="releasable list-inline-item hidden-when-confirmed" id="<%= dom_id(material_release) %>" data-ujs-target="<%= dom_id(material_release, "attachment_#{file.id}") %>" data-confirmed="<%= video.confirmed_material_releases.include?(material_release) %>" data-hidden="<%= video.confirmed_material_releases.include?(material_release) %>">
|
||||
<%= render "video_analyses/file_releasable", releasable: material_release, video: video, file: file %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<li class="releasable list-inline-item" data-confirmed="false" data-hidden="false">
|
||||
<figure class="figure mb-0">
|
||||
|
||||
<div class="figure-img border text-muted d-flex justify-content-center align-items-center" style="width:200px;height:200px;">
|
||||
<small>No File Uploaded</small>
|
||||
</div>
|
||||
|
||||
<figcaption class="figure-caption text-center"><%= truncate material_release.name, length: 25 %></figcaption>
|
||||
</figure>
|
||||
</li>
|
||||
<% end %>
|
||||
<li class="releasable list-inline-item hidden-when-confirmed" id="<%= dom_id(material_release) %>" data-confirmed="<%= video.confirmed_material_releases.include?(material_release) %>" data-hidden="<%= video.confirmed_material_releases.include?(material_release) %>">
|
||||
<%= render "video_analyses/releasable", releasable: material_release, video: video %>
|
||||
</li>
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
<td><a data-behavior="seekable-timecode"><%= confirmation.appears_at %></a></td>
|
||||
<td><%= confirmation.releasable.name %></td>
|
||||
<td>
|
||||
<% if confirmation.file_id.present? %>
|
||||
<%= confirmation.file.filename %></div>
|
||||
<% if confirmation.file_info.present? %>
|
||||
<%= confirmation.file_info.filename %></div>
|
||||
<% elsif confirmation.releasable.respond_to?(:photo) && confirmation.releasable.photo.attached? %>
|
||||
<%= image_tag thumbnail_variant(confirmation.releasable.photo), class: "img-fluid figure-img" %>
|
||||
<% else %>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$("#acquired_media_releases [data-toggle=tooltip]").tooltip("dispose");
|
||||
|
||||
// Update the release list
|
||||
$("#acquired_media_releases").html("<%= j render("video_analyses/acquired_media_files", acquired_media_files: @acquired_media_files, video: @video) %>");
|
||||
$("#acquired_media_releases").html("<%= j render("video_analyses/acquired_media_file_infos", acquired_media_file_infos: @acquired_media_file_infos, video: @video) %>");
|
||||
|
||||
// # Reset the search form
|
||||
$("#acquired_media_releases_section form input[name='query']").val("<%= params[:query] %>");
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
<div id="video_release_confirmation_fields">
|
||||
<%= form.hidden_field :time_elapsed, value: video_release_confirmation.time_elapsed %>
|
||||
<%= form.hidden_field :file_id, value: video_release_confirmation.file_id %>
|
||||
<%= form.hidden_field :file_info_id, value: video_release_confirmation.file_info_id %>
|
||||
<%= form.static_control nil, name: nil, label: "Video Timecode", value: video_release_confirmation.appears_at %>
|
||||
<%= form.text_field :channel %>
|
||||
<%= form.text_field :timecode_in %>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
var hideConfirmed = $("input[name=hide_confirmed]:checked").length > 0;
|
||||
|
||||
// Mark the release as confirmed
|
||||
if (<%= @releasable.respond_to?(:files) %>) {
|
||||
$("[data-ujs-target=<%= dom_id(@releasable, "attachment_#{@video_release_confirmation.file_id}") %>]").attr("data-confirmed", true).data("confirmed", true)
|
||||
if (<%= @releasable.respond_to?(:file_infos) %>) {
|
||||
$("[data-ujs-target=<%= dom_id(@releasable, "file_info_#{@video_release_confirmation.file_info_id}") %>]").attr("data-confirmed", true).data("confirmed", true)
|
||||
} else {
|
||||
$("#<%= dom_id(@releasable) %>").attr("data-confirmed", true).data("confirmed", true)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Mark the release as no longer confirmed and show
|
||||
if (<%= @releasable.respond_to?(:files) && @video_release_confirmation.respond_to?(:file_id) %>) {
|
||||
if (<%= @video_release_confirmations.none? { |video_release_confirmation| video_release_confirmation.respond_to?(:file_id) && video_release_confirmation.file_id == @video_release_confirmation.file_id } %>) {
|
||||
$("[data-ujs-target=<%= dom_id(@releasable, "attachment_#{@video_release_confirmation.file_id}") %>]")
|
||||
if (<%= @releasable.respond_to?(:file_infos) && @video_release_confirmation.respond_to?(:file_info_id) %>) {
|
||||
if (<%= @video_release_confirmations.none? { |video_release_confirmation| video_release_confirmation.respond_to?(:file_info_id) && video_release_confirmation.file_info_id == @video_release_confirmation.file_info_id } %>) {
|
||||
$("[data-ujs-target=<%= dom_id(@releasable, "file_info_#{@video_release_confirmation.file_info_id}") %>]")
|
||||
.attr("data-confirmed", false).data("confirmed", false)
|
||||
.attr("data-hidden", false).data("hidden", false);
|
||||
}
|
||||
|
||||
@@ -9,12 +9,12 @@ Rails.application.config.content_security_policy do |policy|
|
||||
policy.font_src :self, :https, :data
|
||||
policy.img_src :self, :https, :data
|
||||
policy.object_src :self
|
||||
policy.script_src :self, :https, AppHost.new.domain_with_port, "https://stream.mux.com", "https://demo.nanocosmos.de", :blob, :unsafe_eval
|
||||
policy.script_src :self, :https, AppHost.new.domain_with_port, "https://stream.mux.com", :blob, :unsafe_eval
|
||||
policy.media_src :self, :https, AppHost.new.domain_with_port, "https://stream.mux.com", :data, :blob
|
||||
# policy.style_src :self, :https, :unsafe_inline
|
||||
# If you are using webpack-dev-server then specify webpack-dev-server host
|
||||
# policy.connect_src :self, :https, "http://localhost:3035", "ws://localhost:3035" if Rails.env.development?
|
||||
policy.connect_src :self, :https, "ws://#{AppHost.new.domain_with_port}", "wss://#{AppHost.new.domain_with_port}", "wss://bintu-h5live.nanocosmos.de"
|
||||
policy.connect_src :self, :https, "ws://#{AppHost.new.domain_with_port}", "wss://#{AppHost.new.domain_with_port}"
|
||||
|
||||
# Specify URI for violation reports
|
||||
# policy.report_uri "/csp-violation-report-endpoint"
|
||||
|
||||
@@ -457,7 +457,7 @@ en:
|
||||
help:
|
||||
contract_template:
|
||||
amendment_clause: Leave blank if not required for this contract
|
||||
fee: Please enter all necessary details about fees. Leave it blank for no-fee
|
||||
fee: Leave at $0.00 for no-fee
|
||||
guardian_clause: Leave blank if not required for this contract
|
||||
questionnaire_legal_text: Leave blank if not required for this contract
|
||||
signature_legal_text: Leave blank if not required for this contract
|
||||
@@ -1651,6 +1651,3 @@ en:
|
||||
edit: Edit
|
||||
report: Report
|
||||
generating: Generating...
|
||||
locked_accounts:
|
||||
index:
|
||||
account_locked_message: This account is locked. Please contact a BIG admin.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user