Compare commits
14 Commits
implement-
...
allow-api-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d0ae5898d7 | ||
|
|
acfb3bed70 | ||
|
|
83aa0a7aab | ||
|
|
76934cefb5 | ||
|
|
9cbd8d31a8 | ||
|
|
9c3fac4ab9 | ||
|
|
8f13589c55 | ||
|
|
cd0de9154c | ||
|
|
2590b6bdc9 | ||
|
|
40f241b75f | ||
|
|
add8304eab | ||
|
|
f04d34d337 | ||
|
|
c033f5df17 | ||
|
|
7f49f31ebf |
@@ -27,3 +27,6 @@ MUX_TOKEN_ID=
|
|||||||
MUX_TOKEN_SECRET=
|
MUX_TOKEN_SECRET=
|
||||||
MUX_BROADCAST_SERVER_URL=rtmp://global-live.mux.com:5222/app
|
MUX_BROADCAST_SERVER_URL=rtmp://global-live.mux.com:5222/app
|
||||||
MUX_TEST_MODE_DISABLED=
|
MUX_TEST_MODE_DISABLED=
|
||||||
|
|
||||||
|
# Required for creating user through API
|
||||||
|
CUSTOM_API_TOKEN=
|
||||||
@@ -21,11 +21,13 @@ $(document).on "turbolinks:load", ->
|
|||||||
|
|
||||||
refreshBroadcastVideo: (data) ->
|
refreshBroadcastVideo: (data) ->
|
||||||
$("#broadcast_updates").html data.status_content
|
$("#broadcast_updates").html data.status_content
|
||||||
if data.streamer_status == 'recording' && data.status == 'active'
|
stream_selected = $("#broadcast_video").data('videoType') == 'stream';
|
||||||
|
if data.streamer_status == 'recording' && data.status == 'active' && stream_selected
|
||||||
$("#broadcast_video").html data.video_content
|
$("#broadcast_video").html data.video_content
|
||||||
new (Clappr.Player)(
|
new (Clappr.Player)(
|
||||||
|
<%= "baseUrl: 'http://cdn.clappr.io/latest'," if Rails.env.test? %>
|
||||||
parentId: '#broadcast_video'
|
parentId: '#broadcast_video'
|
||||||
source: data.playback_url
|
source: data.full_live_stream_playback_url
|
||||||
width: '100%',
|
width: '100%',
|
||||||
height: '100%',
|
height: '100%',
|
||||||
mute: true,
|
mute: true,
|
||||||
9
app/assets/javascripts/directory_files_input.js
Normal file
9
app/assets/javascripts/directory_files_input.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
$(document).on("turbolinks:load", function() {
|
||||||
|
$("#upload_directory_files").on('click', function(e){
|
||||||
|
const newFilesCount = $('input[name = "directory[files][]"][type = "hidden"]').length;
|
||||||
|
|
||||||
|
if (newFilesCount === 0){
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
50
app/assets/javascripts/group_qr_code.js
Normal file
50
app/assets/javascripts/group_qr_code.js
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
$(document).on("click", "[data-behavior=select_contract_template]", function() {
|
||||||
|
var _this = this;
|
||||||
|
var checkbox = $(this).children("input:checkbox");
|
||||||
|
|
||||||
|
selectContractTemplate(_this, checkbox);
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).on("click", "[data-behavior=select_contract_template] input[type='checkbox']", function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
|
||||||
|
var _this = this;
|
||||||
|
var checkbox = $(this);
|
||||||
|
|
||||||
|
selectContractTemplate(_this, checkbox);
|
||||||
|
});
|
||||||
|
|
||||||
|
function selectContractTemplate(clicked_element, checkbox) {
|
||||||
|
if (clicked_element.hasChildNodes()) {
|
||||||
|
if(checkbox.prop("checked")) {
|
||||||
|
checkbox.prop('checked', false);
|
||||||
|
} else {
|
||||||
|
checkbox.prop('checked', true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var checked = checkbox.prop("checked");
|
||||||
|
var project_id = JSON.parse($('#group_qr_code').attr('data-project-id'));
|
||||||
|
var contract_template_ids = JSON.parse($('#group_qr_code').attr('data-contract-template-ids'));
|
||||||
|
var selected_contract_template_id = checkbox.val();
|
||||||
|
|
||||||
|
if (checked && !contract_template_ids.includes(selected_contract_template_id)) {
|
||||||
|
contract_template_ids.push(selected_contract_template_id);
|
||||||
|
} else if(!checked && contract_template_ids.includes(selected_contract_template_id)) {
|
||||||
|
contract_template_ids.splice( $.inArray(selected_contract_template_id, contract_template_ids), 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#group_qr_code').attr('data-contract-template-ids', JSON.stringify(contract_template_ids));
|
||||||
|
|
||||||
|
if (contract_template_ids.length >= 2) {
|
||||||
|
multi_sign_ids = $.param({multi_sign_ids: contract_template_ids});
|
||||||
|
contract_template_url = "/en/contract_templates/" + contract_template_ids[0] + "/qr_codes?" + multi_sign_ids
|
||||||
|
|
||||||
|
$("#group_qr_code").attr("href", contract_template_url);
|
||||||
|
$("#group_qr_code").attr("target", "_blank");
|
||||||
|
$("#group_qr_code").removeClass('disabled');
|
||||||
|
} else if (contract_template_ids.length < 2) {
|
||||||
|
$("#group_qr_code").attr("href", "javascript:void(0);");
|
||||||
|
$("#group_qr_code").addClass('disabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@ $(document).on("click", "[data-behavior=play_recording]", function() {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.warn('Play prev : ', playback_url);
|
$("#broadcast_video").data('videoType', 'recording');
|
||||||
|
|
||||||
var playback_url = $(this).attr("data-playback-url")
|
var playback_url = $(this).attr("data-playback-url")
|
||||||
$("#broadcast_video").empty();
|
$("#broadcast_video").empty();
|
||||||
@@ -23,4 +23,6 @@ $(document).on("click", "[data-behavior=play_recording]", function() {
|
|||||||
$(this).siblings().children("i").remove();
|
$(this).siblings().children("i").remove();
|
||||||
$(this).addClass('active');
|
$(this).addClass('active');
|
||||||
$(this).prepend('<i class="fa fa-check"> </i>');
|
$(this).prepend('<i class="fa fa-check"> </i>');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(document).on("click", "[data-behavior=play_stream]", function() { $("#broadcast_video").data('videoType', 'stream'); });
|
||||||
@@ -16,6 +16,7 @@ class BroadcastsChannel < ApplicationCable::Channel
|
|||||||
event: :broadcast_stream_update,
|
event: :broadcast_stream_update,
|
||||||
status: broadcast.status,
|
status: broadcast.status,
|
||||||
playback_url: broadcast.stream_playback_url,
|
playback_url: broadcast.stream_playback_url,
|
||||||
|
full_live_stream_playback_url: broadcast.full_live_stream_playback_url,
|
||||||
video_content: video_content,
|
video_content: video_content,
|
||||||
status_content: status_content,
|
status_content: status_content,
|
||||||
streamer_status: broadcast.streamer_status
|
streamer_status: broadcast.streamer_status
|
||||||
|
|||||||
@@ -56,35 +56,74 @@ class AcquiredMediaReleasesController < ApplicationController
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def person_params
|
||||||
|
%i[
|
||||||
|
person_first_name
|
||||||
|
person_last_name
|
||||||
|
person_phone
|
||||||
|
person_company
|
||||||
|
person_email
|
||||||
|
person_title
|
||||||
|
person_address_street1
|
||||||
|
person_address_street2
|
||||||
|
person_address_city
|
||||||
|
person_address_state
|
||||||
|
person_address_zip
|
||||||
|
person_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def guardian_params
|
||||||
|
%i[
|
||||||
|
guardian_first_name
|
||||||
|
guardian_last_name
|
||||||
|
guardian_phone
|
||||||
|
guardian_email
|
||||||
|
guardian_photo
|
||||||
|
guardian_address_street1
|
||||||
|
guardian_address_street2
|
||||||
|
guardian_address_city
|
||||||
|
guardian_address_state
|
||||||
|
guardian_address_zip
|
||||||
|
guardian_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def second_guardian_params
|
||||||
|
%i[
|
||||||
|
guardian_2_first_name
|
||||||
|
guardian_2_last_name
|
||||||
|
guardian_2_phone
|
||||||
|
guardian_2_email
|
||||||
|
guardian_2_photo
|
||||||
|
guardian_2_address_street1
|
||||||
|
guardian_2_address_street2
|
||||||
|
guardian_2_address_city
|
||||||
|
guardian_2_address_state
|
||||||
|
guardian_2_address_zip
|
||||||
|
guardian_2_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
def acquired_media_release_params
|
def acquired_media_release_params
|
||||||
params.require(:acquired_media_release).permit(
|
params.require(:acquired_media_release).permit(person_params,
|
||||||
:name,
|
guardian_params,
|
||||||
:territory,
|
second_guardian_params,
|
||||||
:term,
|
:minor,
|
||||||
:person_first_name,
|
:name,
|
||||||
:person_last_name,
|
:territory,
|
||||||
:person_phone,
|
:term,
|
||||||
:person_email,
|
:contract,
|
||||||
:person_company,
|
:applicable_medium_id, :applicable_medium_text,
|
||||||
:person_title,
|
:territory_id, :territory_text,
|
||||||
:person_address_street1,
|
:term_id, :term_text,
|
||||||
:person_address_street2,
|
:restriction_id, :restriction_text,
|
||||||
:person_address_city,
|
categories: [],
|
||||||
:person_address_state,
|
file_infos_attributes: %i[
|
||||||
:person_address_zip,
|
filename
|
||||||
:person_address_country,
|
content_type
|
||||||
:contract,
|
byte_size
|
||||||
:applicable_medium_id, :applicable_medium_text,
|
])
|
||||||
:territory_id, :territory_text,
|
|
||||||
:term_id, :term_text,
|
|
||||||
:restriction_id, :restriction_text,
|
|
||||||
categories: [],
|
|
||||||
file_infos_attributes: [
|
|
||||||
:filename,
|
|
||||||
:content_type,
|
|
||||||
:byte_size
|
|
||||||
]
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_acquired_media_release(attrs = {})
|
def build_acquired_media_release(attrs = {})
|
||||||
|
|||||||
33
app/controllers/api/users_controller.rb
Normal file
33
app/controllers/api/users_controller.rb
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class Api::UsersController < Api::ApiController
|
||||||
|
skip_before_action :authenticate_user
|
||||||
|
before_action :verify_custom_token, only: :create
|
||||||
|
|
||||||
|
def create
|
||||||
|
if user_params[:email].nil? || user_params[:password].nil?
|
||||||
|
raise ActionController::ParameterMissing.new 'Missing email or password'
|
||||||
|
end
|
||||||
|
|
||||||
|
user = Oath::Services::SignUp.new(user_params).perform
|
||||||
|
render json: user.slice(:email, :created_at, :first_name, :last_name)
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def user_params
|
||||||
|
params.require(:user).permit(%i[
|
||||||
|
email
|
||||||
|
password
|
||||||
|
first_name
|
||||||
|
last_name
|
||||||
|
])
|
||||||
|
end
|
||||||
|
|
||||||
|
def verify_custom_token
|
||||||
|
if token.blank? || token != ENV['CUSTOM_API_TOKEN']
|
||||||
|
unauthorized_entity(:user)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
@@ -1,21 +1,28 @@
|
|||||||
class ApprovalsController < ApplicationController
|
class ApprovalsController < ApplicationController
|
||||||
include MedicalReleaseContext
|
before_action :set_releasable
|
||||||
|
|
||||||
before_action :set_medical_release
|
|
||||||
before_action :set_project
|
before_action :set_project
|
||||||
|
|
||||||
layout "project"
|
layout "project"
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@medical_release.approve_by(current_user)
|
@releasable.approve_by(current_user)
|
||||||
if @medical_release.save
|
|
||||||
redirect_to [@project, :medical_releases], notice: t('.release_approved')
|
if @releasable.save
|
||||||
|
redirect_to [@project, "#{@releasable_param.name.pluralize}"], notice: t('.release_approved', release_type: @releasable.model_name.human)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def releasable_param
|
||||||
|
@releasable_param ||= ReleasableParam.new(params.to_unsafe_h)
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_releasable
|
||||||
|
@releasable = authorize policy_scope(releasable_param.type).find(releasable_param.id)
|
||||||
|
end
|
||||||
|
|
||||||
def set_project
|
def set_project
|
||||||
@project = @medical_release.project
|
@project = @releasable.project
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ class BroadcastsController < ApplicationController
|
|||||||
|
|
||||||
before_action :set_project
|
before_action :set_project
|
||||||
before_action :build_broadcast, only: [:new, :create]
|
before_action :build_broadcast, only: [:new, :create]
|
||||||
before_action :set_broadcast, only: [:show, :destroy, :update]
|
before_action :set_broadcast, only: [:show, :destroy, :update, :destroy_file]
|
||||||
before_action :set_multi_view_broadcasts, only: [:show]
|
before_action :set_multi_view_broadcasts, only: [:show]
|
||||||
before_action :show_splash_screen, only: :index
|
before_action :show_splash_screen, only: :index
|
||||||
|
|
||||||
@@ -33,11 +33,13 @@ class BroadcastsController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@broadcast.update(broadcast_params)
|
unless params.has_key?(:broadcast)
|
||||||
@files = @broadcast.files.order("created_at DESC").paginate(page: 1)
|
@broadcast.regenerate_token
|
||||||
|
redirect_to([@project, @broadcast], notice: t('.reset_notice')) and return
|
||||||
|
end
|
||||||
|
|
||||||
pagination_content = ApplicationController.render html: helpers.will_paginate(@files, params: { active_tab: params[:active_tab], page: params[:page], active_files_tab: params[:active_files_tab] })
|
@broadcast.update(broadcast_params)
|
||||||
BroadcastsChannel.broadcast_file_upload_updates(@broadcast, @files, pagination_content)
|
update_files_section
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
@@ -48,14 +50,29 @@ class BroadcastsController < ApplicationController
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def destroy_file
|
||||||
|
authorize Broadcast
|
||||||
|
file = ActiveStorage::Attachment.find(params[:file_id])
|
||||||
|
file.destroy
|
||||||
|
|
||||||
|
update_files_section
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def update_files_section
|
||||||
|
@files = @broadcast.files.order("created_at DESC").paginate(page: 1)
|
||||||
|
|
||||||
|
pagination_content = ApplicationController.render html: helpers.will_paginate(@files, params: { active_tab: params[:active_tab], page: params[:page], active_files_tab: params[:active_files_tab] })
|
||||||
|
BroadcastsChannel.broadcast_file_upload_updates(@broadcast, @files, pagination_content)
|
||||||
|
end
|
||||||
|
|
||||||
def show_splash_screen
|
def show_splash_screen
|
||||||
render :splash if broadcasts.count.zero?
|
render :splash if broadcasts.count.zero?
|
||||||
end
|
end
|
||||||
|
|
||||||
def broadcast_params
|
def broadcast_params
|
||||||
params.require(:broadcast).permit(:name, files: [])
|
params.require(:broadcast).permit(:name, :shoot_location_time_zone, files: [])
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_project
|
def set_project
|
||||||
|
|||||||
@@ -16,7 +16,12 @@ class ContractTemplates::QrCodesController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def qr_code
|
def qr_code
|
||||||
authorize QrCode.build_from_contract_template(@contract_template)
|
if params[:multi_sign_ids].present?
|
||||||
|
contract_templates_group = authorize contract_templates.where(id: params[:multi_sign_ids]).order_by_recent
|
||||||
|
authorize QrCode.build_from_multiple_contract_templates(contract_templates_group, @contract_template.project)
|
||||||
|
else
|
||||||
|
authorize QrCode.build_from_contract_template(@contract_template)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def download_attributes
|
def download_attributes
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ class ContractTemplatesController < ApplicationController
|
|||||||
params
|
params
|
||||||
.require(:contract_template)
|
.require(:contract_template)
|
||||||
.permit(:name, :release_type, :body, :guardian_clause,
|
.permit(:name, :release_type, :body, :guardian_clause,
|
||||||
:signature_legal_text, :fee,
|
:signature_legal_text, :fee, :amendment_clause,
|
||||||
:applicable_medium_id, :applicable_medium_text,
|
:applicable_medium_id, :applicable_medium_text,
|
||||||
:territory_id, :territory_text,
|
:territory_id, :territory_text,
|
||||||
:term_id, :term_text, :accessibility,
|
:term_id, :term_text, :accessibility,
|
||||||
|
|||||||
@@ -50,11 +50,58 @@ class MaterialReleasesController < ApplicationController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def person_params
|
||||||
|
%i[
|
||||||
|
person_first_name
|
||||||
|
person_last_name
|
||||||
|
person_phone
|
||||||
|
person_company
|
||||||
|
person_email
|
||||||
|
person_title
|
||||||
|
person_address_street1
|
||||||
|
person_address_street2
|
||||||
|
person_address_city
|
||||||
|
person_address_state
|
||||||
|
person_address_zip
|
||||||
|
person_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def guardian_params
|
||||||
|
%i[
|
||||||
|
guardian_first_name
|
||||||
|
guardian_last_name
|
||||||
|
guardian_phone
|
||||||
|
guardian_email
|
||||||
|
guardian_photo
|
||||||
|
guardian_address_street1
|
||||||
|
guardian_address_street2
|
||||||
|
guardian_address_city
|
||||||
|
guardian_address_state
|
||||||
|
guardian_address_zip
|
||||||
|
guardian_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def second_guardian_params
|
||||||
|
%i[
|
||||||
|
guardian_2_first_name
|
||||||
|
guardian_2_last_name
|
||||||
|
guardian_2_phone
|
||||||
|
guardian_2_email
|
||||||
|
guardian_2_photo
|
||||||
|
guardian_2_address_street1
|
||||||
|
guardian_2_address_street2
|
||||||
|
guardian_2_address_city
|
||||||
|
guardian_2_address_state
|
||||||
|
guardian_2_address_zip
|
||||||
|
guardian_2_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
def material_release_params
|
def material_release_params
|
||||||
params.require(:material_release).permit(
|
params.require(:material_release).permit(person_params, guardian_params, second_guardian_params, :minor,
|
||||||
:name, :address_street1, :address_street2, :address_city, :address_state, :address_zip, :address_country,
|
:name, :address_street1, :address_street2, :address_city, :address_state, :address_zip, :address_country,
|
||||||
:person_first_name, :person_last_name, :person_title, :person_company, :person_phone, :person_email,
|
|
||||||
:person_address_street1, :person_address_street2, :person_address_city, :person_address_state, :person_address_zip, :person_address_country,
|
|
||||||
:applicable_medium_id, :applicable_medium_text,
|
:applicable_medium_id, :applicable_medium_text,
|
||||||
:territory_id, :territory_text,
|
:territory_id, :territory_text,
|
||||||
:term_id, :term_text,
|
:term_id, :term_text,
|
||||||
|
|||||||
@@ -41,31 +41,70 @@ class Public::AcquiredMediaReleasesController < Public::BaseController
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def person_params
|
||||||
|
%i[
|
||||||
|
person_first_name
|
||||||
|
person_last_name
|
||||||
|
person_phone
|
||||||
|
person_fax
|
||||||
|
person_email
|
||||||
|
person_title
|
||||||
|
person_address_street1
|
||||||
|
person_address_street2
|
||||||
|
person_address_city
|
||||||
|
person_address_state
|
||||||
|
person_address_zip
|
||||||
|
person_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def guardian_params
|
||||||
|
%i[
|
||||||
|
guardian_first_name
|
||||||
|
guardian_last_name
|
||||||
|
guardian_phone
|
||||||
|
guardian_email
|
||||||
|
guardian_photo
|
||||||
|
guardian_address_street1
|
||||||
|
guardian_address_street2
|
||||||
|
guardian_address_city
|
||||||
|
guardian_address_state
|
||||||
|
guardian_address_zip
|
||||||
|
guardian_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def second_guardian_params
|
||||||
|
%i[
|
||||||
|
guardian_2_first_name
|
||||||
|
guardian_2_last_name
|
||||||
|
guardian_2_phone
|
||||||
|
guardian_2_email
|
||||||
|
guardian_2_photo
|
||||||
|
guardian_2_address_street1
|
||||||
|
guardian_2_address_street2
|
||||||
|
guardian_2_address_city
|
||||||
|
guardian_2_address_state
|
||||||
|
guardian_2_address_zip
|
||||||
|
guardian_2_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
def acquired_media_release_params
|
def acquired_media_release_params
|
||||||
params.require(:acquired_media_release).permit(
|
params.require(:acquired_media_release).permit(person_params,
|
||||||
:name,
|
guardian_params,
|
||||||
:description,
|
second_guardian_params,
|
||||||
:person_first_name,
|
:minor,
|
||||||
:person_last_name,
|
:name,
|
||||||
:person_email,
|
:description,
|
||||||
:person_title,
|
:signature_base64,
|
||||||
:person_phone,
|
:locale, :contract_template,
|
||||||
:person_fax,
|
categories: [],
|
||||||
:person_address_street1,
|
file_infos_attributes: %i[
|
||||||
:person_address_street2,
|
filename
|
||||||
:person_address_city,
|
content_type
|
||||||
:person_address_state,
|
byte_size
|
||||||
:person_address_zip,
|
])
|
||||||
:person_address_country,
|
|
||||||
:signature_base64,
|
|
||||||
:locale, :contract_template,
|
|
||||||
categories: [],
|
|
||||||
file_infos_attributes: [
|
|
||||||
:filename,
|
|
||||||
:content_type,
|
|
||||||
:byte_size
|
|
||||||
]
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def acquired_media_release_params_with_locale
|
def acquired_media_release_params_with_locale
|
||||||
|
|||||||
47
app/controllers/public/amendments_controller.rb
Normal file
47
app/controllers/public/amendments_controller.rb
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
class Public::AmendmentsController < Public::BaseController
|
||||||
|
skip_after_action :verify_authorized, :verify_policy_scoped
|
||||||
|
before_action :set_account, :set_project, :set_contract_template, :set_release
|
||||||
|
|
||||||
|
def new
|
||||||
|
if @release.amendment_signed?
|
||||||
|
render :create, locals: { already_signed: true }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
if @release.amendment_signed?
|
||||||
|
render :create, locals: { already_signed: true }
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
@release.attributes = amendment_params
|
||||||
|
|
||||||
|
render :new unless @release.save(context: :amendment)
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def amendment_params
|
||||||
|
params.require(releasable_param.name).permit(:amendment_signer_name, :amendment_signature_base64)
|
||||||
|
end
|
||||||
|
|
||||||
|
def releasable_param
|
||||||
|
@releasable_param ||= ReleasableParam.new(params.to_unsafe_h)
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_release
|
||||||
|
@release = @contract_template.releases.find(releasable_param.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_contract_template
|
||||||
|
@contract_template = @project.contract_templates.find(params[:contract_template_id])
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_project
|
||||||
|
@project = @account.projects.find(params[:project_id])
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_account
|
||||||
|
@account = Account.find_by(slug: params[:account_id])
|
||||||
|
end
|
||||||
|
end
|
||||||
18
app/controllers/public/contract_templates_controller.rb
Normal file
18
app/controllers/public/contract_templates_controller.rb
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
class Public::ContractTemplatesController < Public::BaseController
|
||||||
|
skip_after_action :verify_authorized, :verify_policy_scoped
|
||||||
|
before_action :set_account, :set_project
|
||||||
|
|
||||||
|
def index
|
||||||
|
@contract_templates = @project.contract_templates.where(id: params[:contract_template_ids]).order_by_name.paginate(page: params[:page])
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def set_project
|
||||||
|
@project = @account.projects.find(params[:project_id])
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_account
|
||||||
|
@account = Account.find_by(slug: params[:account_id])
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -39,11 +39,59 @@ class Public::MaterialReleasesController < Public::BaseController
|
|||||||
authorize material_releases.build(params)
|
authorize material_releases.build(params)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def person_params
|
||||||
|
%i[
|
||||||
|
person_first_name
|
||||||
|
person_last_name
|
||||||
|
person_phone
|
||||||
|
person_email
|
||||||
|
person_title
|
||||||
|
person_company
|
||||||
|
person_address_street1
|
||||||
|
person_address_street2
|
||||||
|
person_address_city
|
||||||
|
person_address_state
|
||||||
|
person_address_zip
|
||||||
|
person_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def guardian_params
|
||||||
|
%i[
|
||||||
|
guardian_first_name
|
||||||
|
guardian_last_name
|
||||||
|
guardian_phone
|
||||||
|
guardian_email
|
||||||
|
guardian_photo
|
||||||
|
guardian_address_street1
|
||||||
|
guardian_address_street2
|
||||||
|
guardian_address_city
|
||||||
|
guardian_address_state
|
||||||
|
guardian_address_zip
|
||||||
|
guardian_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def second_guardian_params
|
||||||
|
%i[
|
||||||
|
guardian_2_first_name
|
||||||
|
guardian_2_last_name
|
||||||
|
guardian_2_phone
|
||||||
|
guardian_2_email
|
||||||
|
guardian_2_photo
|
||||||
|
guardian_2_address_street1
|
||||||
|
guardian_2_address_street2
|
||||||
|
guardian_2_address_city
|
||||||
|
guardian_2_address_state
|
||||||
|
guardian_2_address_zip
|
||||||
|
guardian_2_address_country
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
def material_release_params
|
def material_release_params
|
||||||
params.require(:material_release).permit(
|
params.require(:material_release).permit(person_params, guardian_params, second_guardian_params, :minor,
|
||||||
:name, :address_street1, :address_street2, :address_city, :address_state, :address_zip, :address_country,
|
:name, :address_street1, :address_street2, :address_city, :address_state, :address_zip, :address_country,
|
||||||
:person_first_name, :person_last_name, :person_title, :person_company, :person_phone, :person_email,
|
|
||||||
:person_address_street1, :person_address_street2, :person_address_city, :person_address_state, :person_address_zip, :person_address_country,
|
|
||||||
:signature_base64,
|
:signature_base64,
|
||||||
:locale, :contract_template, :description, photos: []
|
:locale, :contract_template, :description, photos: []
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -14,6 +14,10 @@ class StreamNotificationsController < ApplicationController
|
|||||||
when "video.live_stream.recording"
|
when "video.live_stream.recording"
|
||||||
@broadcast.streamer_recording!
|
@broadcast.streamer_recording!
|
||||||
notify_users
|
notify_users
|
||||||
|
when "video.asset.ready"
|
||||||
|
full_live_stream_playback_uid = notification.dig(:data, :playback_ids, 0, :id)
|
||||||
|
@broadcast.update(full_live_stream_playback_uid: full_live_stream_playback_uid)
|
||||||
|
notify_users
|
||||||
when "video.live_stream.active"
|
when "video.live_stream.active"
|
||||||
@broadcast.active!
|
@broadcast.active!
|
||||||
notify_users
|
notify_users
|
||||||
@@ -59,7 +63,8 @@ class StreamNotificationsController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def set_broadcast
|
def set_broadcast
|
||||||
if notification_type == "video.asset.static_renditions.ready"
|
case notification_type
|
||||||
|
when "video.asset.static_renditions.ready", "video.asset.ready"
|
||||||
live_stream_id = notification.dig(:stream_notification, :data, :live_stream_id)
|
live_stream_id = notification.dig(:stream_notification, :data, :live_stream_id)
|
||||||
@broadcast = Broadcast.find_by(stream_uid: live_stream_id)
|
@broadcast = Broadcast.find_by(stream_uid: live_stream_id)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -6,11 +6,11 @@ module TooltipHelper
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_approval_data_for_medical_release(medical_release)
|
def get_approval_data_for_releasable(release)
|
||||||
if medical_release.approved_by_user_name.present?
|
if release.approved_by_user_name.present?
|
||||||
"#{medical_release.approved_by_user_name} [#{medical_release.approved_by_user_email}]"
|
"#{release.approved_by_user_name} [#{release.approved_by_user_email}]"
|
||||||
else
|
else
|
||||||
medical_release.approved_by_user_email
|
release.approved_by_user_email
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ class AcquiredMediaRelease < ApplicationRecord
|
|||||||
include Syncable
|
include Syncable
|
||||||
include PersonName
|
include PersonName
|
||||||
include CsvExportable
|
include CsvExportable
|
||||||
|
include Approvable
|
||||||
|
include GuardianPhotoable
|
||||||
|
include SecondGuardianPhotoable
|
||||||
|
include GuardianName
|
||||||
|
include SecondGuardianName
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def custom_csv_exportable_headers
|
def custom_csv_exportable_headers
|
||||||
@@ -32,6 +37,38 @@ class AcquiredMediaRelease < ApplicationRecord
|
|||||||
%w(person_address_country country)
|
%w(person_address_country country)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
composed_of :guardian_address,
|
||||||
|
class_name: 'Address',
|
||||||
|
mapping: [
|
||||||
|
%w[guardian_address_street1 street1],
|
||||||
|
%w[guardian_address_street2 street2],
|
||||||
|
%w[guardian_address_city city],
|
||||||
|
%w[guardian_address_state state],
|
||||||
|
%w[guardian_address_zip zip],
|
||||||
|
%w[guardian_address_country country]
|
||||||
|
]
|
||||||
|
|
||||||
|
composed_of :guardian_2_address,
|
||||||
|
class_name: 'Address',
|
||||||
|
mapping: [
|
||||||
|
%w[guardian_2_address_street1 street1],
|
||||||
|
%w[guardian_2_address_street2 street2],
|
||||||
|
%w[guardian_2_address_city city],
|
||||||
|
%w[guardian_2_address_state state],
|
||||||
|
%w[guardian_2_address_zip zip],
|
||||||
|
%w[guardian_2_address_country country]
|
||||||
|
]
|
||||||
|
|
||||||
|
# We don't care for the argument but method WILL receive option name
|
||||||
|
# when called from inside with_option block, hence * argument
|
||||||
|
def self.face_photo_acceptable_content_types(*)
|
||||||
|
['image/png', 'image/jpeg']
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.acceptable_import_file_extensions
|
||||||
|
['.png', '.jpeg', '.jpg', '.pdf']
|
||||||
|
end
|
||||||
|
|
||||||
validates :name, presence: true
|
validates :name, presence: true
|
||||||
validates :person_email, email: true, allow_blank: true
|
validates :person_email, email: true, allow_blank: true
|
||||||
|
|
||||||
@@ -53,8 +90,8 @@ class AcquiredMediaRelease < ApplicationRecord
|
|||||||
# CATEGORIES = ["Artwork", "Film Footage", "Video Footage", "Still Photograph"].freeze
|
# CATEGORIES = ["Artwork", "Film Footage", "Video Footage", "Still Photograph"].freeze
|
||||||
CATEGORIES = ["Film Footage", "Video Footage", "Still Photograph"].freeze
|
CATEGORIES = ["Film Footage", "Video Footage", "Still Photograph"].freeze
|
||||||
|
|
||||||
def minor?
|
def second_guardian_present?
|
||||||
false
|
guardian_2_first_name.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
def contact_person
|
def contact_person
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class AppearanceRelease < ApplicationRecord
|
|||||||
include GuardianName
|
include GuardianName
|
||||||
include SecondGuardianName
|
include SecondGuardianName
|
||||||
include CsvExportable
|
include CsvExportable
|
||||||
|
include Approvable
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def custom_csv_exportable_headers
|
def custom_csv_exportable_headers
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ class Broadcast < ApplicationRecord
|
|||||||
"https://stream.mux.com/#{stream_playback_uid}.m3u8"
|
"https://stream.mux.com/#{stream_playback_uid}.m3u8"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def full_live_stream_playback_url
|
||||||
|
full_live_stream_playback_uid.blank? ? stream_playback_url : "https://stream.mux.com/#{full_live_stream_playback_uid}.m3u8"
|
||||||
|
end
|
||||||
|
|
||||||
def stream_server_url
|
def stream_server_url
|
||||||
ENV['MUX_BROADCAST_SERVER_URL']
|
ENV['MUX_BROADCAST_SERVER_URL']
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -14,6 +14,6 @@ class BroadcastRecording < ApplicationRecord
|
|||||||
end
|
end
|
||||||
|
|
||||||
def download_file_name
|
def download_file_name
|
||||||
"#{broadcast_name}_Date_#{created_at.strftime("%Y-%m-%d")}_Time_#{created_at.strftime("%T")}".parameterize
|
"#{broadcast_name}_Date_#{created_at.in_time_zone(broadcast.shoot_location_time_zone).strftime("%Y-%m-%d")}_Time_#{created_at.in_time_zone(broadcast.shoot_location_time_zone).strftime("%T")}".parameterize
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
32
app/models/concerns/amendmenable.rb
Normal file
32
app/models/concerns/amendmenable.rb
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
module Amendmenable
|
||||||
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
included do
|
||||||
|
include ActiveStorageSupport::SupportForBase64
|
||||||
|
|
||||||
|
has_one_base64_attached :amendment_signature
|
||||||
|
|
||||||
|
with_options on: :amendment do
|
||||||
|
validates :amendment_signer_name, presence: true
|
||||||
|
validates :amendment_signature, attached: true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def amendment_signable?
|
||||||
|
contract_template.present? && contract_template.amendment_clause.present?
|
||||||
|
end
|
||||||
|
|
||||||
|
def amendment_signed?
|
||||||
|
amendment_signature.attached?
|
||||||
|
end
|
||||||
|
|
||||||
|
def amendment_signature_base64
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def amendment_signature_base64=(data_uri)
|
||||||
|
return if data_uri.blank?
|
||||||
|
|
||||||
|
amendment_signature.attach(data: data_uri, filename: "amendment_signature.png", content_type: "image/png", identify: "false")
|
||||||
|
end
|
||||||
|
end
|
||||||
17
app/models/concerns/approvable.rb
Normal file
17
app/models/concerns/approvable.rb
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
module Approvable
|
||||||
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
included do
|
||||||
|
def approve_by(user)
|
||||||
|
return unless approved_at.nil?
|
||||||
|
|
||||||
|
self.approved_by_user_name = user.full_name
|
||||||
|
self.approved_by_user_email = user.email
|
||||||
|
self.approved_at = Time.zone.now
|
||||||
|
end
|
||||||
|
|
||||||
|
def approved?
|
||||||
|
self.approved_at.present?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
module CsvExportable
|
module CsvExportable
|
||||||
extend ActiveSupport::Concern
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
COMMON_HEADERS = %i[notes tags signed_at].freeze
|
COMMON_HEADERS = %i[approved? notes tags signed_at].freeze
|
||||||
COMMON_VALUES = %w[clean_notes clean_tags signed_on].freeze
|
COMMON_VALUES = %w[clean_notes clean_tags signed_on].freeze
|
||||||
|
|
||||||
included do
|
included do
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ class ContractTemplate < ApplicationRecord
|
|||||||
has_rich_text :body
|
has_rich_text :body
|
||||||
has_rich_text :guardian_clause
|
has_rich_text :guardian_clause
|
||||||
has_rich_text :signature_legal_text
|
has_rich_text :signature_legal_text
|
||||||
|
has_rich_text :amendment_clause
|
||||||
|
|
||||||
validates :name, presence: true
|
validates :name, presence: true
|
||||||
validates :release_type, presence: true
|
validates :release_type, presence: true
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ class LocationRelease < ApplicationRecord
|
|||||||
include Taggable
|
include Taggable
|
||||||
include PersonName
|
include PersonName
|
||||||
include CsvExportable
|
include CsvExportable
|
||||||
|
include Approvable
|
||||||
|
include Amendmenable
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def custom_csv_exportable_headers
|
def custom_csv_exportable_headers
|
||||||
|
|||||||
@@ -11,6 +11,12 @@ class MaterialRelease < ApplicationRecord
|
|||||||
include Taggable
|
include Taggable
|
||||||
include PersonName
|
include PersonName
|
||||||
include CsvExportable
|
include CsvExportable
|
||||||
|
include Approvable
|
||||||
|
include GuardianPhotoable
|
||||||
|
include SecondGuardianPhotoable
|
||||||
|
include GuardianName
|
||||||
|
include SecondGuardianName
|
||||||
|
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def custom_csv_exportable_headers
|
def custom_csv_exportable_headers
|
||||||
@@ -29,6 +35,39 @@ class MaterialRelease < ApplicationRecord
|
|||||||
%w(person_address_country country)
|
%w(person_address_country country)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
composed_of :guardian_address,
|
||||||
|
class_name: 'Address',
|
||||||
|
mapping: [
|
||||||
|
%w[guardian_address_street1 street1],
|
||||||
|
%w[guardian_address_street2 street2],
|
||||||
|
%w[guardian_address_city city],
|
||||||
|
%w[guardian_address_state state],
|
||||||
|
%w[guardian_address_zip zip],
|
||||||
|
%w[guardian_address_country country]
|
||||||
|
]
|
||||||
|
|
||||||
|
composed_of :guardian_2_address,
|
||||||
|
class_name: 'Address',
|
||||||
|
mapping: [
|
||||||
|
%w[guardian_2_address_street1 street1],
|
||||||
|
%w[guardian_2_address_street2 street2],
|
||||||
|
%w[guardian_2_address_city city],
|
||||||
|
%w[guardian_2_address_state state],
|
||||||
|
%w[guardian_2_address_zip zip],
|
||||||
|
%w[guardian_2_address_country country]
|
||||||
|
]
|
||||||
|
|
||||||
|
# We don't care for the argument but method WILL receive option name
|
||||||
|
# when called from inside with_option block, hence * argument
|
||||||
|
def self.face_photo_acceptable_content_types(*)
|
||||||
|
['image/png', 'image/jpeg']
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.acceptable_import_file_extensions
|
||||||
|
['.png', '.jpeg', '.jpg', '.pdf']
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
validates :name, presence: true
|
validates :name, presence: true
|
||||||
validates :person_email, email: true, allow_blank: true
|
validates :person_email, email: true, allow_blank: true
|
||||||
|
|
||||||
@@ -46,8 +85,8 @@ class MaterialRelease < ApplicationRecord
|
|||||||
@contact_person ||= Contact.new(person_name, person_address, person_email, person_phone)
|
@contact_person ||= Contact.new(person_name, person_address, person_email, person_phone)
|
||||||
end
|
end
|
||||||
|
|
||||||
def minor?
|
def second_guardian_present?
|
||||||
false
|
guardian_2_first_name.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
def uses_edl?
|
def uses_edl?
|
||||||
|
|||||||
@@ -12,10 +12,11 @@ class MedicalRelease < ApplicationRecord
|
|||||||
include GuardianName
|
include GuardianName
|
||||||
include SecondGuardianName
|
include SecondGuardianName
|
||||||
include CsvExportable
|
include CsvExportable
|
||||||
|
include Approvable
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def custom_csv_exportable_headers
|
def custom_csv_exportable_headers
|
||||||
%i[approved? name contact_info]
|
%i[name contact_info]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -107,18 +108,6 @@ class MedicalRelease < ApplicationRecord
|
|||||||
"#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime("%Y.%m.%d")}_#{release_number}_#{filename_suffix.parameterize}"
|
"#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime("%Y.%m.%d")}_#{release_number}_#{filename_suffix.parameterize}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def approve_by(user)
|
|
||||||
return unless approved_at.nil?
|
|
||||||
|
|
||||||
self.approved_by_user_name = user.full_name
|
|
||||||
self.approved_by_user_email = user.email
|
|
||||||
self.approved_at = Time.zone.now
|
|
||||||
end
|
|
||||||
|
|
||||||
def approved?
|
|
||||||
approved_at.present?
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def valid_answers
|
def valid_answers
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ class MiscRelease < ApplicationRecord
|
|||||||
include GuardianName
|
include GuardianName
|
||||||
include GuardianPhotoable
|
include GuardianPhotoable
|
||||||
include CsvExportable
|
include CsvExportable
|
||||||
|
include Approvable
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def custom_csv_exportable_headers
|
def custom_csv_exportable_headers
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ class MusicRelease < ApplicationRecord
|
|||||||
include Taggable
|
include Taggable
|
||||||
include PersonName
|
include PersonName
|
||||||
include CsvExportable
|
include CsvExportable
|
||||||
|
include Approvable
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def custom_csv_exportable_headers
|
def custom_csv_exportable_headers
|
||||||
|
|||||||
@@ -13,6 +13,18 @@ class QrCode
|
|||||||
new(url, "#{filename}.png")
|
new(url, "#{filename}.png")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.build_from_multiple_contract_templates(contract_templates, project)
|
||||||
|
account = project.account
|
||||||
|
locale = I18n.locale
|
||||||
|
host = AppHost.new.domain_with_port
|
||||||
|
route = [account, project, :contract_templates, contract_template_ids: contract_templates.ids, locale: I18n.locale, host: AppHost.new.domain_with_port]
|
||||||
|
|
||||||
|
url = Rails.application.routes.url_helpers.url_for(route)
|
||||||
|
filename = [project.account.name, project.name].map(&:parameterize).join("_")
|
||||||
|
|
||||||
|
new(url, "#{filename}.png")
|
||||||
|
end
|
||||||
|
|
||||||
def initialize(url, filename = "qrcode.png")
|
def initialize(url, filename = "qrcode.png")
|
||||||
@url = url
|
@url = url
|
||||||
@filename = filename
|
@filename = filename
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ class TalentRelease < ApplicationRecord
|
|||||||
include GuardianName
|
include GuardianName
|
||||||
include SecondGuardianName
|
include SecondGuardianName
|
||||||
include CsvExportable
|
include CsvExportable
|
||||||
|
include Approvable
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def custom_csv_exportable_headers
|
def custom_csv_exportable_headers
|
||||||
@@ -110,7 +111,7 @@ class TalentRelease < ApplicationRecord
|
|||||||
end
|
end
|
||||||
|
|
||||||
def uses_edl?
|
def uses_edl?
|
||||||
false
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
def second_guardian_present?
|
def second_guardian_present?
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ class TaskRequest < ApplicationRecord
|
|||||||
|
|
||||||
scope :order_by_recent, -> { order(created_at: :desc) }
|
scope :order_by_recent, -> { order(created_at: :desc) }
|
||||||
|
|
||||||
validates :time_allowed, numericality: { only_integer: true, greater_than_or_equal_to: 2 }
|
validates :time_allowed, numericality: { only_integer: true, greater_than_or_equal_to: 2 }, allow_blank: true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -30,4 +30,12 @@ class AcquiredMediaReleasePolicy < ApplicationPolicy
|
|||||||
def download_multiple?
|
def download_multiple?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def review?
|
||||||
|
user.account_manager?
|
||||||
|
end
|
||||||
|
|
||||||
|
def approve?
|
||||||
|
review?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -26,4 +26,12 @@ class AppearanceReleasePolicy < ReleasePolicy
|
|||||||
def download_multiple?
|
def download_multiple?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def review?
|
||||||
|
user.account_manager?
|
||||||
|
end
|
||||||
|
|
||||||
|
def approve?
|
||||||
|
review?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -18,4 +18,12 @@ class BroadcastPolicy < ApplicationPolicy
|
|||||||
def update?
|
def update?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def destroy_file?
|
||||||
|
if user.nil? || user.user.nil?
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
user.manager? || user.account_manager?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -34,4 +34,16 @@ class LocationReleasePolicy < ReleasePolicy
|
|||||||
def download_multiple?
|
def download_multiple?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def review?
|
||||||
|
user.account_manager?
|
||||||
|
end
|
||||||
|
|
||||||
|
def sign_amendment?
|
||||||
|
user.manager? || user.account_manager?
|
||||||
|
end
|
||||||
|
|
||||||
|
def approve?
|
||||||
|
review?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -34,4 +34,12 @@ class MaterialReleasePolicy < ReleasePolicy
|
|||||||
def download_multiple?
|
def download_multiple?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def review?
|
||||||
|
user.account_manager?
|
||||||
|
end
|
||||||
|
|
||||||
|
def approve?
|
||||||
|
review?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -38,4 +38,12 @@ class MiscReleasePolicy < ReleasePolicy
|
|||||||
def download_multiple?
|
def download_multiple?
|
||||||
download_single?
|
download_single?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def review?
|
||||||
|
user.account_manager?
|
||||||
|
end
|
||||||
|
|
||||||
|
def approve?
|
||||||
|
review?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -22,4 +22,12 @@ class MusicReleasePolicy < ReleasePolicy
|
|||||||
def download_multiple?
|
def download_multiple?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def review?
|
||||||
|
user.account_manager?
|
||||||
|
end
|
||||||
|
|
||||||
|
def approve?
|
||||||
|
review?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -34,4 +34,12 @@ class TalentReleasePolicy < ReleasePolicy
|
|||||||
def download_multiple?
|
def download_multiple?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def review?
|
||||||
|
user.account_manager?
|
||||||
|
end
|
||||||
|
|
||||||
|
def approve?
|
||||||
|
review?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
<tr id="<%= dom_id(acquired_media_release) %>">
|
<tr id="<%= dom_id(acquired_media_release) %>">
|
||||||
<td data-behavior="select"><%= check_box_tag "acquired_media_release_ids[]", acquired_media_release.id, false %></td>
|
<td data-behavior="select"><%= check_box_tag "acquired_media_release_ids[]", acquired_media_release.id, false %></td>
|
||||||
|
<td class="text-center">
|
||||||
|
<% if acquired_media_release.approved? %>
|
||||||
|
<% tooltip_user_data = get_approval_data_for_releasable(acquired_media_release) %>
|
||||||
|
<i class="fa fa-check-circle fa-2x text-success"
|
||||||
|
data-toggle="tooltip"
|
||||||
|
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: acquired_media_release.approved_at %>"></i>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<%= acquired_media_release.name %>
|
<%= acquired_media_release.name %>
|
||||||
</td>
|
</td>
|
||||||
@@ -35,6 +43,9 @@
|
|||||||
<% if policy(Contract).show? && (acquired_media_release.contract.attached? || acquired_media_release.contract_template.present?) %>
|
<% if policy(Contract).show? && (acquired_media_release.contract.attached? || acquired_media_release.contract_template.present?) %>
|
||||||
<%= link_to fa_icon("download fw", text: "Download"), [acquired_media_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
<%= link_to fa_icon("download fw", text: "Download"), [acquired_media_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if policy(AcquiredMediaRelease).review? %>
|
||||||
|
<%= link_to fa_icon("search fw", text: t('.actions.review')), new_acquired_media_release_approvals_path(acquired_media_release), class: "dropdown-item" %>
|
||||||
|
<% end %>
|
||||||
<% if policy(acquired_media_release).edit? %>
|
<% if policy(acquired_media_release).edit? %>
|
||||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, acquired_media_release], class: "dropdown-item" %>
|
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, acquired_media_release], class: "dropdown-item" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
<%= errors_summary_for acquired_media_release %>
|
<%= errors_summary_for acquired_media_release %>
|
||||||
<%= bootstrap_form_with model: model, local: true do |form| %>
|
<%= bootstrap_form_with model: model, local: true do |form| %>
|
||||||
<%= field_set_tag content_tag(:span, t(".acquired_media_details.heading"), class: "h6 text-muted text-uppercase") do %>
|
<%= field_set_tag content_tag(:span, t(".acquired_media_details.heading"), class: "h6 text-muted text-uppercase") do %>
|
||||||
|
<%= form.form_group :minor do %>
|
||||||
|
<%= form.check_box :minor, label: t("helpers.label.talent_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :name, required: true, wrapper_class: "col-12" %>
|
<%= form.text_field :name, required: true, wrapper_class: "col-12" %>
|
||||||
</div>
|
</div>
|
||||||
@@ -9,6 +13,28 @@
|
|||||||
<%= form.check_box :categories, { multiple: true, label: category }, category, false %>
|
<%= form.check_box :categories, { multiple: true, label: category }, category, false %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
<div class="<%= class_string("collapse" => !acquired_media_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_first_name, required: acquired_media_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.text_field :guardian_last_name, required: acquired_media_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %>
|
||||||
|
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".guardian_2_info.heading") do %>
|
||||||
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_2_first_name, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.text_field :guardian_2_last_name, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.phone_field :guardian_2_phone, wrapper_class: "col-sm-6" %>
|
||||||
|
<%= form.text_field :guardian_2_email, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian_2" %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
@@ -19,6 +45,44 @@
|
|||||||
<strong>For optimal accuracy, please ensure video file names and photo file names match the source file name in the editing sequence.</strong>
|
<strong>For optimal accuracy, please ensure video file names and photo file names match the source file name in the editing sequence.</strong>
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/file_infos_dropzone", form: form, releasable: acquired_media_release %>
|
<%= render "shared/file_infos_dropzone", form: form, releasable: acquired_media_release %>
|
||||||
|
|
||||||
|
<div class="<%= class_string("collapse" => !acquired_media_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
|
<br>
|
||||||
|
<div class="text-left">
|
||||||
|
<p><%= t(".photos.guardian_photo.heading") %></p>
|
||||||
|
<div id="guardian-photo-preview" class="d-inline-block mb-2" data-behavior="guardian-photo-preview" data-file-input="[data-ujs-target=guardian-photo-input]">
|
||||||
|
<div class="align-items-center d-flex photo-preview img-thumbnail justify-content-center">
|
||||||
|
<span>No photo yet</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% if acquired_media_release.guardian_photo.attached? %>
|
||||||
|
<%= javascript_tag nonce: true do %>
|
||||||
|
App.PhotoPreview.set("#guardian-photo-preview", "<%= url_for(acquired_media_release.guardian_photo.variant(auto_orient: true, resize: '200x200')) %>");
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="d-inline-block">
|
||||||
|
<%= form.hidden_field :guardian_photo, value: form.object.guardian_photo.signed_id if acquired_media_release.guardian_photo.attached?%>
|
||||||
|
<%= form.file_field :guardian_photo, hide_label: true, data: { ujs_target: "guardian-photo-input" }, help: "PNG or JPG only", accept: acquired_media_release.class.face_photo_acceptable_content_types.join(",") %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p><%= t(".photos.guardian_2_photo.heading") %></p>
|
||||||
|
<div id="guardian-2-photo-preview" class="d-inline-block mb-2" data-behavior="guardian-photo-preview" data-file-input="[data-ujs-target=guardian-2-photo-input]">
|
||||||
|
<div class="align-items-center d-flex photo-preview img-thumbnail justify-content-center">
|
||||||
|
<span>No photo yet</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% if acquired_media_release.guardian_2_photo.attached? %>
|
||||||
|
<%= javascript_tag nonce: true do %>
|
||||||
|
App.PhotoPreview.set("#guardian-2-photo-preview", "<%= url_for(acquired_media_release.guardian_2_photo.variant(auto_orient: true, resize: '200x200')) %>");
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="d-inline-block">
|
||||||
|
<%= form.hidden_field :guardian_2_photo, value: form.object.guardian_2_photo.signed_id if acquired_media_release.guardian_2_photo.attached?%>
|
||||||
|
<%= form.file_field :guardian_2_photo, hide_label: true, data: { ujs_target: "guardian-2-photo-input" }, help: "PNG or JPG only", accept: acquired_media_release.class.face_photo_acceptable_content_types.join(",") %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
<thead class="thead-light">
|
<thead class="thead-light">
|
||||||
<tr>
|
<tr>
|
||||||
<th data-behavior="all-selectable"><%= check_box_tag "acquired_media_release_ids[]", false, false %></th>
|
<th data-behavior="all-selectable"><%= check_box_tag "acquired_media_release_ids[]", false, false %></th>
|
||||||
|
<th><%= t '.table_headers.approved'%></th>
|
||||||
<th><%= AcquiredMediaRelease.human_attribute_name(:name) %></th>
|
<th><%= AcquiredMediaRelease.human_attribute_name(:name) %></th>
|
||||||
<th><%= t(".table_headers.file_infos_count") %></th>
|
<th><%= t(".table_headers.file_infos_count") %></th>
|
||||||
<th><%= t(".table_headers.notes") %></th>
|
<th><%= t(".table_headers.notes") %></th>
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
<tr id="<%= dom_id(appearance_release) %>">
|
<tr id="<%= dom_id(appearance_release) %>">
|
||||||
<td data-behavior="select"><%= check_box_tag "appearance_release_ids[]", appearance_release.id, false %></td>
|
<td data-behavior="select"><%= check_box_tag "appearance_release_ids[]", appearance_release.id, false %></td>
|
||||||
|
<td class="text-center">
|
||||||
|
<% if appearance_release.approved? %>
|
||||||
|
<% tooltip_user_data = get_approval_data_for_releasable(appearance_release) %>
|
||||||
|
<i class="fa fa-check-circle fa-2x text-success"
|
||||||
|
data-toggle="tooltip"
|
||||||
|
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: appearance_release.approved_at %>"></i>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<% if appearance_release.photo.attached? %>
|
<% if appearance_release.photo.attached? %>
|
||||||
<%= image_tag medium_variant(appearance_release.photo) %>
|
<%= image_tag medium_variant(appearance_release.photo) %>
|
||||||
@@ -39,6 +47,9 @@
|
|||||||
<% if policy(Contract).show? && (appearance_release.contract.attached? || appearance_release.contract_template.present?) %>
|
<% if policy(Contract).show? && (appearance_release.contract.attached? || appearance_release.contract_template.present?) %>
|
||||||
<%= link_to fa_icon("download fw", text: "Download"), [appearance_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
<%= link_to fa_icon("download fw", text: "Download"), [appearance_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if policy(AppearanceRelease).review? %>
|
||||||
|
<%= link_to fa_icon("search fw", text: t('.actions.review')), new_appearance_release_approvals_path(appearance_release), class: "dropdown-item" %>
|
||||||
|
<% end %>
|
||||||
<% if policy(appearance_release).edit? %>
|
<% if policy(appearance_release).edit? %>
|
||||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, appearance_release], class: "dropdown-item" %>
|
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, appearance_release], class: "dropdown-item" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
<thead class="thead-light">
|
<thead class="thead-light">
|
||||||
<tr>
|
<tr>
|
||||||
<th data-behavior="all-selectable"><%= check_box_tag "appearance_release_ids[]", false, false %></th>
|
<th data-behavior="all-selectable"><%= check_box_tag "appearance_release_ids[]", false, false %></th>
|
||||||
|
<th><%= t '.table_headers.approved'%></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><%= AppearanceRelease.human_attribute_name(:person_name) %></th>
|
<th><%= AppearanceRelease.human_attribute_name(:person_name) %></th>
|
||||||
<th><%= AppearanceRelease.human_attribute_name(:contact_info) %></th>
|
<th><%= AppearanceRelease.human_attribute_name(:contact_info) %></th>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<div class="card shadow-sm">
|
<div class="card shadow-sm">
|
||||||
<%= card_header text: t(".heading"), close_action_path: [@project, :medical_releases] %>
|
<%= card_header text: t(".heading", release_type: @releasable_param.name.titleize), close_action_path: [@project, "#{@releasable_param.name.pluralize}"] %>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<embed class="embeded-contract-preview" type="application/pdf" src="<%= url_for [@medical_release, :contracts, format: "pdf"] %>" width="90%" height="1200" />
|
<embed class="embeded-contract-preview" type="application/pdf" src="<%= url_for [@releasable, :contracts, format: "pdf"] %>" width="90%" height="1200" />
|
||||||
|
|
||||||
<%= bootstrap_form_with model: @medical_release, method: :post, url: medical_release_approvals_path(@medical_release), local: true do |form| %>
|
<%= bootstrap_form_with model: @releasable, method: :post, url: public_send("#{@releasable_param.name}_approvals_path", @releasable), local: true do |form| %>
|
||||||
<div class="row align-items-center text-center mt-4">
|
<div class="row align-items-center text-center mt-4">
|
||||||
<%= link_to t("shared.cancel"), [@medical_release.project, :medical_releases], class: "col-3 text-reset" %>
|
<%= link_to t("shared.cancel"), [@releasable.project, "#{@releasable_param.name.pluralize}"], class: "col-3 text-reset" %>
|
||||||
<div class="col-9">
|
<div class="col-9">
|
||||||
<%= form.button t('.actions.approve'), id: "approve_release", class: class_string("btn btn-block btn-success btn-primary"), data: { disable_with: t("shared.disable_with") } %>
|
<%= form.button t('.actions.approve'), id: "approve_release", class: class_string("btn btn-block btn-success btn-primary"), data: { disable_with: t("shared.disable_with") } %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
<td>
|
<td>
|
||||||
<%= broadcast.name %>
|
<%= broadcast.name %>
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= broadcast.shoot_location_time_zone %>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<%= broadcast.status.titleize %>
|
<%= broadcast.status.titleize %>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -1,12 +1,25 @@
|
|||||||
<li class="my-2" id="<%= dom_id(file) %>">
|
<div class="row">
|
||||||
<% if file.variable? %>
|
<% broadcast = file.record %>
|
||||||
<%= link_to image_tag(file.variant(resize_and_pad: [300, 300, background: "#F7F8F9"]), class: "bg-light img-thumbnail img-fluid"), file, target: "_blank" %>
|
<% show_delete = controller.class.module_parent.to_s == "Public" ? false : policy(broadcast).destroy_file? %>
|
||||||
<% else %>
|
<% file_class = show_delete ? "col-8" : "col-12" %>
|
||||||
<div class="border rounded bg-light text-muted d-flex justify-content-center align-items-center fix-h-and-w">
|
<div class="<%= file_class %>">
|
||||||
<%= link_to file, target: "_blank" do %>
|
<li class="my-2" id="<%= dom_id(file) %>">
|
||||||
<%= fa_icon("file", style: "font-size: 2rem") %>
|
<% if file.variable? %>
|
||||||
<div class="mt-2"><%= file.filename %></div>
|
<%= link_to image_tag(file.variant(resize_and_pad: [300, 300, background: "#F7F8F9"]), class: "bg-light img-thumbnail img-fluid"), file, target: "_blank" %>
|
||||||
|
<% else %>
|
||||||
|
<div class="border rounded bg-light text-muted d-flex justify-content-center align-items-center img-fluid fix-h-and-w">
|
||||||
|
<%= link_to file, target: "_blank" do %>
|
||||||
|
<%= fa_icon("file", style: "font-size: 2rem") %>
|
||||||
|
<div class="mt-2"><%= file.filename %></div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
<% if show_delete %>
|
||||||
|
<div class="col-4 align-self-center p-0 m-0">
|
||||||
|
<% url = url_for [:destroy_file, broadcast.project, broadcast, { file_id: file.id }] %>
|
||||||
|
<%= link_to fa_icon("trash fw", text: t('.actions.delete_file')), url, class: "btn btn-danger", remote: true, method: :delete, data: { confirm: t('.confirm_delete') } %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</li>
|
</div>
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
<%= bootstrap_form_with model: model, local: true do |form| %>
|
<%= bootstrap_form_with model: model, local: true do |form| %>
|
||||||
<%= form.text_field :name %>
|
<%= form.text_field :name %>
|
||||||
|
<%= form.time_zone_select(:shoot_location_time_zone, nil, label: "Time zone of shoot location") %>
|
||||||
|
|
||||||
<div class="row align-items-center text-center mt-4">
|
<div class="row align-items-center text-center mt-4">
|
||||||
<%= link_to t("shared.cancel"), [project, :broadcasts], class: "col-3 text-reset" %>
|
<%= link_to t("shared.cancel"), [project, :broadcasts], class: "col-3 text-reset" %>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<% if broadcast.streamer_recording? && broadcast.active? %>
|
<% if broadcast.streamer_recording? && broadcast.active? %>
|
||||||
<div id="broadcast_video" class="embed-responsive-item"></div>
|
<div id="broadcast_video" class="embed-responsive-item" data-video-type="stream"></div>
|
||||||
<% else %>
|
<% else %>
|
||||||
<div id="broadcast_video" class="embed-responsive-item">
|
<div id="broadcast_video" class="embed-responsive-item" data-video-type="stream">
|
||||||
<table class="w-100 h-100 bg-secondary">
|
<table class="w-100 h-100 bg-secondary">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><%= t(".table_headers.broadcast_name") %></th>
|
<th><%= t(".table_headers.broadcast_name") %></th>
|
||||||
|
<th><%= t(".table_headers.broadcast_time_zone") %></th>
|
||||||
<th><%= t(".table_headers.broadcast_status") %></th>
|
<th><%= t(".table_headers.broadcast_status") %></th>
|
||||||
<th><%= t(".table_headers.broadcast_created_at") %></th>
|
<th><%= t(".table_headers.broadcast_created_at") %></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
@@ -32,7 +33,7 @@
|
|||||||
<%= render @broadcasts %>
|
<%= render @broadcasts %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="5" class="py-4 text-center text-muted"><%= t(".empty") %></td>
|
<td colspan="6" class="py-4 text-center text-muted"><%= t(".empty") %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -33,10 +33,10 @@
|
|||||||
<%= link_to "Switch View", "#", class: "btn btn-light border dropdown-toggle", role: "button", id: "dropdownMenuLink", data: { toggle: "dropdown" }, aria: { haspopup: "true", expanded: "false" } %>
|
<%= link_to "Switch View", "#", class: "btn btn-light border dropdown-toggle", role: "button", id: "dropdownMenuLink", data: { toggle: "dropdown" }, aria: { haspopup: "true", expanded: "false" } %>
|
||||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
|
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
|
||||||
<h5 class="dropdown-header">Live Streams</h5>
|
<h5 class="dropdown-header">Live Streams</h5>
|
||||||
<%= link_to fa_icon("check", text: @broadcast.name.titleize), "#", class: "dropdown-item active" %>
|
<%= link_to fa_icon("check", text: @broadcast.name.titleize), "#", data: { behavior: "play_stream"}, class: "dropdown-item active" %>
|
||||||
<% @multi_view_broadcasts.each do |broadcast| %>
|
<% @multi_view_broadcasts.each do |broadcast| %>
|
||||||
<% if broadcast.id != @broadcast.id %>
|
<% if broadcast.id != @broadcast.id %>
|
||||||
<%= link_to broadcast.name.titleize, broadcast.url, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
<%= link_to broadcast.name.titleize, broadcast.url, data: { behavior: "play_stream"}, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<h5 class="dropdown-header">Previous Sessions</h5>
|
<h5 class="dropdown-header">Previous Sessions</h5>
|
||||||
@@ -102,6 +102,7 @@
|
|||||||
<i class="fa fa-clipboard"></i>
|
<i class="fa fa-clipboard"></i>
|
||||||
Copy URL
|
Copy URL
|
||||||
</button>
|
</button>
|
||||||
|
<%= link_to t('.actions.reset_url'), [@project, @broadcast], method: :patch, class: "btn btn-danger" %>
|
||||||
</div>
|
</div>
|
||||||
<% else %>
|
<% else %>
|
||||||
<input type="text" class="form-control" value="<%= broadcast_url(@broadcast.token) %>" readonly>
|
<input type="text" class="form-control" value="<%= broadcast_url(@broadcast.token) %>" readonly>
|
||||||
@@ -110,6 +111,7 @@
|
|||||||
<i class="fa fa-clipboard"></i>
|
<i class="fa fa-clipboard"></i>
|
||||||
Copy URL
|
Copy URL
|
||||||
</button>
|
</button>
|
||||||
|
<%= link_to t('.actions.reset_url'), [@project, @broadcast], method: :patch, class: "btn btn-danger" %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<tr>
|
<tr>
|
||||||
|
<td data-behavior="select_contract_template"><%= check_box_tag "contract_template_ids[]", contract_template.id, false %></td>
|
||||||
<td>
|
<td>
|
||||||
<%= contract_template.name %>
|
<%= contract_template.name %>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<%= field_set_tag content_tag(:span, t(".release_info.heading"), class: "h6 text-muted text-uppercase") do %>
|
<%= field_set_tag content_tag(:span, t(".release_info.heading"), class: "h6 text-muted text-uppercase") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :name, wrapper_class: "col-sm-6" %>
|
<%= form.text_field :name, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.select :release_type, options_for_release_type_select(project, @release_type), { wrapper_class: "col-sm-6" }, data: { toggle: "collapse-select", target_show_values_mapping: { "#guardian_clause": %w(appearance talent misc medical), "#fee_field": %w(appearance talent location material acquired_media), "#exploitable_rights_fields": %w(appearance talent location material acquired_media), "#custom_fields": %w(medical misc) } }, class: "form-control custom-select" %>
|
<%= form.select :release_type, options_for_release_type_select(project, @release_type), { wrapper_class: "col-sm-6" }, data: { toggle: "collapse-select", target_show_values_mapping: { "#guardian_clause": %w(acquired_media appearance talent material misc medical), "#fee_field": %w(appearance talent location material acquired_media), "#exploitable_rights_fields": %w(appearance talent location material acquired_media), "#custom_fields": %w(medical misc), "#amendment_clause": %w(location) } }, class: "form-control custom-select" %>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row mb-3">
|
<div class="form-row mb-3">
|
||||||
<%= form.radio_button :accessibility, :public_template, label: "Public", wrapper_class: "mr-3" %>
|
<%= form.radio_button :accessibility, :public_template, label: "Public", wrapper_class: "mr-3" %>
|
||||||
@@ -29,6 +29,11 @@
|
|||||||
<%= form.rich_text_area :guardian_clause %>
|
<%= form.rich_text_area :guardian_clause %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="amendment_clause">
|
||||||
|
<%= form.form_group do %>
|
||||||
|
<%= form.rich_text_area :amendment_clause %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
<div id="signature_legal_text">
|
<div id="signature_legal_text">
|
||||||
<%= form.form_group do %>
|
<%= form.form_group do %>
|
||||||
<%= form.rich_text_area :signature_legal_text %>
|
<%= form.rich_text_area :signature_legal_text %>
|
||||||
|
|||||||
@@ -5,12 +5,14 @@
|
|||||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :contract_template], class: "btn btn-primary" %>
|
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :contract_template], class: "btn btn-primary" %>
|
||||||
<%= link_to fa_icon("clone", text: t(".actions.import")), [:new, @project, :release_template_imports], class: "btn btn-secondary" %>
|
<%= link_to fa_icon("clone", text: t(".actions.import")), [:new, @project, :release_template_imports], class: "btn btn-secondary" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<%= link_to "Group QR Code", "javascript:void(0);", class: "btn btn-light border disabled", id: "group_qr_code", data: { project_id: @project.id, contract_template_ids: [] } %>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="border bg-white rounded shadow-sm pb-3 table-responsive">
|
<div class="border bg-white rounded shadow-sm pb-3 table-responsive">
|
||||||
<table class="table table-striped tr-px-4 align-all-middle">
|
<table class="table table-striped tr-px-4 align-all-middle">
|
||||||
<thead class="thead-light">
|
<thead class="thead-light">
|
||||||
<tr>
|
<tr>
|
||||||
|
<th></th>
|
||||||
<th><%= ContractTemplate.human_attribute_name(:name) %></th>
|
<th><%= ContractTemplate.human_attribute_name(:name) %></th>
|
||||||
<th><%= ContractTemplate.human_attribute_name(:fee) %></th>
|
<th><%= ContractTemplate.human_attribute_name(:fee) %></th>
|
||||||
<th><%= t(".table_headers.release_type") %></th>
|
<th><%= t(".table_headers.release_type") %></th>
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
|
|
||||||
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
|
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
|
||||||
<% if policy(ContractTemplate).new? %>
|
<% if policy(ContractTemplate).new? %>
|
||||||
<%= link_to t(".actions.create_template"), [:new, @project, :contract_template], class: "btn btn-success border align-self-center h-50 pb-2" %>
|
<%= link_to t(".actions.create_template"), [:new, @project, :contract_template], class: "btn btn-success border align-self-center h-50 mr-2 pb-2" %>
|
||||||
|
<%= link_to t(".actions.import_template"), [:new, @project, :release_template_imports], class: "btn btn-light border align-self-center h-50 pb-2" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -47,4 +48,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
19
app/views/contracts/_amendment_page.html.erb
Normal file
19
app/views/contracts/_amendment_page.html.erb
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<% if preview %>
|
||||||
|
<h1>PREVIEW ONLY</h1>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<p class="heading"><strong><u><%= t '.heading' %></u></strong></p>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<%= description_list_pair "#{t('.description_labels.amendment_clause')}:", releasable.contract_template.amendment_clause %>
|
||||||
|
<%= description_list_pair "#{t('.description_labels.amendment_signer_name')}:", releasable.amendment_signer_name %>
|
||||||
|
|
||||||
|
<dt><%= t('.description_labels.amendment_signature') %>:</dt>
|
||||||
|
<dd>
|
||||||
|
<% if preview %>
|
||||||
|
<%= image_tag dummy_signature %>
|
||||||
|
<% elsif releasable.amendment_signature.attached? %>
|
||||||
|
<%= image_tag releasable.amendment_signature.variant(auto_orient: true, resize: "200x200") %>
|
||||||
|
<% end %>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
<dl>
|
<dl>
|
||||||
<%= description_list_pair t('.description_labels.producer'), releasable.project.account.name %>
|
<%= description_list_pair t('.description_labels.producer'), releasable.project.account.name %>
|
||||||
<%= description_list_pair t('.description_labels.production'), releasable.project.name %>
|
<%= description_list_pair t('.description_labels.production'), releasable.project.name %>
|
||||||
<%= description_list_pair t('.description_labels.employee_issued_to'), releasable.name %>
|
<%= description_list_pair t('.description_labels.issued_to'), releasable.name %>
|
||||||
<%= description_list_pair t('.description_labels.issued_by'), releasable.approved_by_user_name %>
|
<%= description_list_pair t('.description_labels.issued_by'), releasable.approved_by_user_name %>
|
||||||
<%= description_list_pair t('.description_labels.date_issued'), releasable.approved_at %>
|
<%= description_list_pair t('.description_labels.date_issued'), releasable.approved_at %>
|
||||||
</dl>
|
</dl>
|
||||||
@@ -18,10 +18,14 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
</dd>
|
</dd>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= description_list_pair_for releasable, :name, append: ":" %>
|
<%= description_list_pair t(".labels.#{releasable.model_name.param_key}.name", default: "Name"), releasable.name, append: ":" %>
|
||||||
<%= description_list_pair "Contact Address:", releasable.contact_person.address %>
|
<% if releasable.model_name == "LocationRelease" %>
|
||||||
<%= description_list_pair "Contact Phone:", releasable.contact_person.phone %>
|
<%= description_list_pair "Location Address:", releasable.address %>
|
||||||
<%= description_list_pair "Contact Email:", releasable.contact_person.email %>
|
<%= description_list_pair "Owner Name", releasable.person_name, append: ":" %>
|
||||||
|
<% end %>
|
||||||
|
<%= description_list_pair t(".labels.#{releasable.model_name.param_key}.contact_person_address", default: "Contact Address"), releasable.contact_person.address, append: ":" %>
|
||||||
|
<%= description_list_pair t(".labels.#{releasable.model_name.param_key}.contact_person_phone", default: "Contact Phone"), releasable.contact_person.phone, append: ":" %>
|
||||||
|
<%= description_list_pair t(".labels.#{releasable.model_name.param_key}.contact_person_email", default: "Contact Email"), releasable.contact_person.email, append: ":" %>
|
||||||
<% if releasable.model_name == "AppearanceRelease" %>
|
<% if releasable.model_name == "AppearanceRelease" %>
|
||||||
<%= description_list_pair "Person Date of Birth:", releasable&.person_date_of_birth&.strftime("%D") %>
|
<%= description_list_pair "Person Date of Birth:", releasable&.person_date_of_birth&.strftime("%D") %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -26,7 +26,13 @@
|
|||||||
<%= render "contracts/signature_page", releasable: releasable, contract_template: contract_template, preview: preview %>
|
<%= render "contracts/signature_page", releasable: releasable, contract_template: contract_template, preview: preview %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% if releasable.class == MedicalRelease && releasable.approved? %>
|
<% if releasable.respond_to?(:amendment_signed?) && releasable.amendment_signed? %>
|
||||||
|
<div class="page">
|
||||||
|
<%= render "contracts/amendment_page", releasable: releasable, preview: preview %>
|
||||||
|
</div>
|
||||||
|
<%end %>
|
||||||
|
|
||||||
|
<% if releasable.respond_to?(:approved?) && releasable.approved? %>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<%= render "contracts/for_office_use_only", releasable: releasable, preview: preview %>
|
<%= render "contracts/for_office_use_only", releasable: releasable, preview: preview %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
<%= render "shared/files_dropzone_fields", form: form, directory: directory %>
|
<%= render "shared/files_dropzone_fields", form: form, directory: directory %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="pt-3">
|
<div class="pt-3">
|
||||||
<%= form.submit t(".submit"), class: "btn btn-block btn-success", data: { disable_with: t("shared.disable_with") } %>
|
<%= form.submit t(".submit"), id: "upload_directory_files", class: "btn btn-block btn-success", data: { disable_with: t("shared.disable_with") } %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
<tr id="<%= dom_id(location_release) %>">
|
<tr id="<%= dom_id(location_release) %>">
|
||||||
<td data-behavior="select"><%= check_box_tag "location_release_ids[]", location_release.id, false %></td>
|
<td data-behavior="select"><%= check_box_tag "location_release_ids[]", location_release.id, false %></td>
|
||||||
|
<td class="text-center">
|
||||||
|
<% if location_release.approved? %>
|
||||||
|
<% tooltip_user_data = get_approval_data_for_releasable(location_release) %>
|
||||||
|
<i class="fa fa-check-circle fa-2x text-success"
|
||||||
|
data-toggle="tooltip"
|
||||||
|
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: location_release.approved_at %>"></i>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<% if location_release.photo.attached? %>
|
<% if location_release.photo.attached? %>
|
||||||
<%= image_tag medium_variant(location_release.photo), class: "img-fluid" %>
|
<%= image_tag medium_variant(location_release.photo), class: "img-fluid" %>
|
||||||
@@ -22,6 +30,17 @@
|
|||||||
<td>
|
<td>
|
||||||
<%= location_release.signed_on %>
|
<%= location_release.signed_on %>
|
||||||
</td>
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<% if location_release.amendment_signed? %>
|
||||||
|
<i class="fa fa-check-square-o text-dark"
|
||||||
|
data-toggle="tooltip"
|
||||||
|
title="<%= t '.messages.amendment_signed_tooltip' %>"></i>
|
||||||
|
<% elsif location_release.amendment_signable? %>
|
||||||
|
<i class="fa fa-square-o"
|
||||||
|
data-toggle="tooltip"
|
||||||
|
title="<%= t '.messages.amendment_not_signed_tooltip' %>"></i>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
@@ -36,9 +55,15 @@
|
|||||||
<% if policy(location_release).edit_photos? %>
|
<% if policy(location_release).edit_photos? %>
|
||||||
<%= link_to fa_icon("picture-o fw", text: "Photos"), [:edit, location_release, :photos], class: "dropdown-item" %>
|
<%= link_to fa_icon("picture-o fw", text: "Photos"), [:edit, location_release, :photos], class: "dropdown-item" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if policy(location_release).sign_amendment? && location_release.amendment_signable? && !location_release.amendment_signed? %>
|
||||||
|
<%= link_to fa_icon("file-text fw", text: t('.actions.sign_amendment')), [:new, location_release.project.account, location_release.project, location_release.contract_template, location_release, :amendment], class: "dropdown-item", target: "_blank" %>
|
||||||
|
<% end %>
|
||||||
<% if policy(Contract).show? && (location_release.contract.attached? || location_release.contract_template.present?) %>
|
<% if policy(Contract).show? && (location_release.contract.attached? || location_release.contract_template.present?) %>
|
||||||
<%= link_to fa_icon("download fw", text: "Download"), [location_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
<%= link_to fa_icon("download fw", text: "Download"), [location_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if policy(LocationRelease).review? %>
|
||||||
|
<%= link_to fa_icon("search fw", text: t('.actions.review')), new_location_release_approvals_path(location_release), class: "dropdown-item" %>
|
||||||
|
<% end %>
|
||||||
<% if policy(location_release).edit? %>
|
<% if policy(location_release).edit? %>
|
||||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, location_release], class: "dropdown-item" %>
|
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, location_release], class: "dropdown-item" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -26,13 +26,14 @@
|
|||||||
<thead class="thead-light">
|
<thead class="thead-light">
|
||||||
<tr>
|
<tr>
|
||||||
<th data-behavior="all-selectable"><%= check_box_tag "location_release_ids[]", false, false %></th>
|
<th data-behavior="all-selectable"><%= check_box_tag "location_release_ids[]", false, false %></th>
|
||||||
|
<th><%= t '.table_headers.approved'%></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><%= LocationRelease.human_attribute_name(:name) %></th>
|
<th><%= t(".table_headers.name") %></th>
|
||||||
<th><%= t(".table_headers.address") %>
|
<th><%= t(".table_headers.address") %>
|
||||||
<th><%= t(".table_headers.notes") %></th>
|
<th><%= t(".table_headers.notes") %></th>
|
||||||
<th><%= t(".table_headers.tags") %></th>
|
<th><%= t(".table_headers.tags") %></th>
|
||||||
<th><%= t(".table_headers.signed_at") %></th>
|
<th><%= t(".table_headers.signed_at") %></th>
|
||||||
|
<th><%= t(".table_headers.amendment_signed") %></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|||||||
@@ -12,6 +12,9 @@
|
|||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<%= field_set_tag content_tag(:span, t(".signer_details.heading"), class: "h6 text-muted text-uppercase") do %>
|
<%= field_set_tag content_tag(:span, t(".signer_details.heading"), class: "h6 text-muted text-uppercase") do %>
|
||||||
|
<%= form.form_group :minor do %>
|
||||||
|
<%= form.check_box :minor, label: t("helpers.label.material_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
|
<% end %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :person_first_name, wrapper_class: "col-sm-6" %>
|
<%= form.text_field :person_first_name, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field :person_last_name, wrapper_class: "col-sm-6" %>
|
<%= form.text_field :person_last_name, wrapper_class: "col-sm-6" %>
|
||||||
@@ -21,6 +24,28 @@
|
|||||||
<%= form.text_field :person_title, wrapper_class: "col-sm-6" %>
|
<%= form.text_field :person_title, wrapper_class: "col-sm-6" %>
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "person" %>
|
<%= render "shared/address_fields", form: form, subject: "person" %>
|
||||||
|
|
||||||
|
<div class="<%= class_string("collapse" => !material_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_first_name, required: material_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.text_field :guardian_last_name, required: material_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %>
|
||||||
|
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".guardian_2_info.heading") do %>
|
||||||
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_2_first_name, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.text_field :guardian_2_last_name, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.phone_field :guardian_2_phone, wrapper_class: "col-sm-6" %>
|
||||||
|
<%= form.text_field :guardian_2_email, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian_2" %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
@@ -34,6 +59,44 @@
|
|||||||
|
|
||||||
<%= field_set_tag content_tag(:span, t(".photos.heading"), class: "h6 text-muted text-uppercase") do %>
|
<%= field_set_tag content_tag(:span, t(".photos.heading"), class: "h6 text-muted text-uppercase") do %>
|
||||||
<%= render "shared/photos_dropzone_fields", form: form, release: material_release %>
|
<%= render "shared/photos_dropzone_fields", form: form, release: material_release %>
|
||||||
|
|
||||||
|
<div class="<%= class_string("collapse" => !material_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
|
<br>
|
||||||
|
<div class="text-left">
|
||||||
|
<p><%= t(".photos.guardian_photo.heading") %></p>
|
||||||
|
<div id="guardian-photo-preview" class="d-inline-block mb-2" data-behavior="guardian-photo-preview" data-file-input="[data-ujs-target=guardian-photo-input]">
|
||||||
|
<div class="align-items-center d-flex photo-preview img-thumbnail justify-content-center">
|
||||||
|
<span>No photo yet</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% if material_release.guardian_photo.attached? %>
|
||||||
|
<%= javascript_tag nonce: true do %>
|
||||||
|
App.PhotoPreview.set("#guardian-photo-preview", "<%= url_for(material_release.guardian_photo.variant(auto_orient: true, resize: '200x200')) %>");
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="d-inline-block">
|
||||||
|
<%= form.hidden_field :guardian_photo, value: form.object.guardian_photo.signed_id if material_release.guardian_photo.attached?%>
|
||||||
|
<%= form.file_field :guardian_photo, hide_label: true, data: { ujs_target: "guardian-photo-input" }, help: "PNG or JPG only", accept: material_release.class.face_photo_acceptable_content_types.join(",") %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p><%= t(".photos.guardian_2_photo.heading") %></p>
|
||||||
|
<div id="guardian-2-photo-preview" class="d-inline-block mb-2" data-behavior="guardian-photo-preview" data-file-input="[data-ujs-target=guardian-2-photo-input]">
|
||||||
|
<div class="align-items-center d-flex photo-preview img-thumbnail justify-content-center">
|
||||||
|
<span>No photo yet</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% if material_release.guardian_2_photo.attached? %>
|
||||||
|
<%= javascript_tag nonce: true do %>
|
||||||
|
App.PhotoPreview.set("#guardian-2-photo-preview", "<%= url_for(material_release.guardian_2_photo.variant(auto_orient: true, resize: '200x200')) %>");
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="d-inline-block">
|
||||||
|
<%= form.hidden_field :guardian_2_photo, value: form.object.guardian_2_photo.signed_id if material_release.guardian_2_photo.attached?%>
|
||||||
|
<%= form.file_field :guardian_2_photo, hide_label: true, data: { ujs_target: "guardian-2-photo-input" }, help: "PNG or JPG only", accept: material_release.class.face_photo_acceptable_content_types.join(",") %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="row align-items-center text-center mt-4">
|
<div class="row align-items-center text-center mt-4">
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
<tr id="<%= dom_id(material_release) %>">
|
<tr id="<%= dom_id(material_release) %>">
|
||||||
<td data-behavior="select"><%= check_box_tag "material_release_ids[]", material_release.id, false %></td>
|
<td data-behavior="select"><%= check_box_tag "material_release_ids[]", material_release.id, false %></td>
|
||||||
|
<td class="text-center">
|
||||||
|
<% if material_release.approved? %>
|
||||||
|
<% tooltip_user_data = get_approval_data_for_releasable(material_release) %>
|
||||||
|
<i class="fa fa-check-circle fa-2x text-success"
|
||||||
|
data-toggle="tooltip"
|
||||||
|
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: material_release.approved_at %>"></i>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<% if material_release.photo.attached? %>
|
<% if material_release.photo.attached? %>
|
||||||
<%= image_tag medium_variant(material_release.photo), class: "img-fluid" %>
|
<%= image_tag medium_variant(material_release.photo), class: "img-fluid" %>
|
||||||
@@ -36,6 +44,9 @@
|
|||||||
<% if policy(Contract).show? && (material_release.contract.attached? || material_release.contract_template.present?) %>
|
<% 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" %>
|
<%= link_to fa_icon("download fw", text: "Download"), [material_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if policy(MaterialRelease).review? %>
|
||||||
|
<%= link_to fa_icon("search fw", text: t('.actions.review')), new_material_release_approvals_path(material_release), class: "dropdown-item" %>
|
||||||
|
<% end %>
|
||||||
<% if policy(material_release).edit? %>
|
<% if policy(material_release).edit? %>
|
||||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, material_release], class: "dropdown-item" %>
|
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, material_release], class: "dropdown-item" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
<thead class="thead-light">
|
<thead class="thead-light">
|
||||||
<tr>
|
<tr>
|
||||||
<th data-behavior="all-selectable"><%= check_box_tag "material_release_ids[]", false, false %></th>
|
<th data-behavior="all-selectable"><%= check_box_tag "material_release_ids[]", false, false %></th>
|
||||||
|
<th><%= t '.table_headers.approved'%></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><%= MaterialRelease.human_attribute_name(:name) %></th>
|
<th><%= MaterialRelease.human_attribute_name(:name) %></th>
|
||||||
<th><%= t(".table_headers.notes") %></th>
|
<th><%= t(".table_headers.notes") %></th>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<td data-behavior="select"><%= check_box_tag "medical_release_ids[]", medical_release.id, false %></td>
|
<td data-behavior="select"><%= check_box_tag "medical_release_ids[]", medical_release.id, false %></td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<% if medical_release.approved? %>
|
<% if medical_release.approved? %>
|
||||||
<% tooltip_user_data = get_approval_data_for_medical_release(medical_release) %>
|
<% tooltip_user_data = get_approval_data_for_releasable(medical_release) %>
|
||||||
<i class="fa fa-check-circle fa-2x text-success"
|
<i class="fa fa-check-circle fa-2x text-success"
|
||||||
data-toggle="tooltip"
|
data-toggle="tooltip"
|
||||||
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: medical_release.approved_at %>"></i>
|
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: medical_release.approved_at %>"></i>
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
<tr id="<%= dom_id(misc_release) %>">
|
<tr id="<%= dom_id(misc_release) %>">
|
||||||
<td data-behavior="select"><%= check_box_tag "misc_release_ids[]", misc_release.id, false %></td>
|
<td data-behavior="select"><%= check_box_tag "misc_release_ids[]", misc_release.id, false %></td>
|
||||||
|
<td class="text-center">
|
||||||
|
<% if misc_release.approved? %>
|
||||||
|
<% tooltip_user_data = get_approval_data_for_releasable(misc_release) %>
|
||||||
|
<i class="fa fa-check-circle fa-2x text-success"
|
||||||
|
data-toggle="tooltip"
|
||||||
|
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: misc_release.approved_at %>"></i>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<% if misc_release.photo.attached? %>
|
<% if misc_release.photo.attached? %>
|
||||||
<%= image_tag medium_variant(misc_release.photo), class: "img-fluid" %>
|
<%= image_tag medium_variant(misc_release.photo), class: "img-fluid" %>
|
||||||
@@ -36,6 +44,9 @@
|
|||||||
<% if policy(misc_release.tags).new? %>
|
<% if policy(misc_release.tags).new? %>
|
||||||
<%= link_to fa_icon("tags fw", text: "Tags"), [:new, misc_release, :acts_as_taggable_on_tag], class: "dropdown-item", remote: true %>
|
<%= link_to fa_icon("tags fw", text: "Tags"), [:new, misc_release, :acts_as_taggable_on_tag], class: "dropdown-item", remote: true %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if policy(MiscRelease).review? %>
|
||||||
|
<%= link_to fa_icon("search fw", text: t('.actions.review')), new_misc_release_approvals_path(misc_release), class: "dropdown-item" %>
|
||||||
|
<% end %>
|
||||||
<% if policy(MedicalRelease).download_single? && policy(Contract).show? && (misc_release.contract.attached? || misc_release.contract_template.present?) %>
|
<% if policy(MedicalRelease).download_single? && policy(Contract).show? && (misc_release.contract.attached? || misc_release.contract_template.present?) %>
|
||||||
<%= link_to fa_icon("download fw", text: "Download"), [misc_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
<%= link_to fa_icon("download fw", text: "Download"), [misc_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
<thead class="thead-light">
|
<thead class="thead-light">
|
||||||
<tr>
|
<tr>
|
||||||
<th data-behavior="all-selectable"><%= check_box_tag "misc_release_ids[]", false, false %></th>
|
<th data-behavior="all-selectable"><%= check_box_tag "misc_release_ids[]", false, false %></th>
|
||||||
|
<th><%= t '.table_headers.approved'%></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><%= MiscRelease.human_attribute_name(:person_name) %></th>
|
<th><%= MiscRelease.human_attribute_name(:person_name) %></th>
|
||||||
<th><%= MiscRelease.human_attribute_name(:contact_info) %></th>
|
<th><%= MiscRelease.human_attribute_name(:contact_info) %></th>
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
<tr id="<%= dom_id(music_release) %>">
|
<tr id="<%= dom_id(music_release) %>">
|
||||||
<td data-behavior="select"><%= check_box_tag "music_release_ids[]", music_release.id, false %></td>
|
<td data-behavior="select"><%= check_box_tag "music_release_ids[]", music_release.id, false %></td>
|
||||||
|
<td class="text-center">
|
||||||
|
<% if music_release.approved? %>
|
||||||
|
<% tooltip_user_data = get_approval_data_for_releasable(music_release) %>
|
||||||
|
<i class="fa fa-check-circle fa-2x text-success"
|
||||||
|
data-toggle="tooltip"
|
||||||
|
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: music_release.approved_at %>"></i>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<%= music_release.name %>
|
<%= music_release.name %>
|
||||||
</td>
|
</td>
|
||||||
@@ -36,6 +44,9 @@
|
|||||||
<% if policy(Contract).show? && (music_release.contract.attached? || music_release.contract_template.present?) %>
|
<% if policy(Contract).show? && (music_release.contract.attached? || music_release.contract_template.present?) %>
|
||||||
<%= link_to fa_icon("download fw", text: "Download"), [music_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
<%= link_to fa_icon("download fw", text: "Download"), [music_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if policy(MusicRelease).review? %>
|
||||||
|
<%= link_to fa_icon("search fw", text: t('.actions.review')), new_music_release_approvals_path(music_release), class: "dropdown-item" %>
|
||||||
|
<% end %>
|
||||||
<% if policy(music_release).edit? %>
|
<% if policy(music_release).edit? %>
|
||||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, music_release], class: "dropdown-item" %>
|
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, music_release], class: "dropdown-item" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
<thead class="thead-light">
|
<thead class="thead-light">
|
||||||
<tr>
|
<tr>
|
||||||
<th data-behavior="all-selectable"><%= check_box_tag "music_release_ids[]", false, false %></th>
|
<th data-behavior="all-selectable"><%= check_box_tag "music_release_ids[]", false, false %></th>
|
||||||
|
<th><%= t '.table_headers.approved'%></th>
|
||||||
<th><%= MusicRelease.human_attribute_name(:name) %></th>
|
<th><%= MusicRelease.human_attribute_name(:name) %></th>
|
||||||
<th><%= t(".table_headers.file_infos_count") %></th>
|
<th><%= t(".table_headers.file_infos_count") %></th>
|
||||||
<th><%= t(".table_headers.composers_count") %></th>
|
<th><%= t(".table_headers.composers_count") %></th>
|
||||||
|
|||||||
@@ -13,6 +13,17 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
|
<%= form.form_group :minor do %>
|
||||||
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
|
<p><%= @contract_template.guardian_clause %></p>
|
||||||
|
<% end %>
|
||||||
|
<hr>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".acquired_media_info.heading") do %>
|
<%= card_field_set_tag t(".acquired_media_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :name, required: true, wrapper_class: "col-12" %>
|
<%= form.text_field :name, required: true, wrapper_class: "col-12" %>
|
||||||
@@ -49,6 +60,91 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
|
<div class="<%= class_string("collapse" => !@acquired_media_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_first_name, required: @acquired_media_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
|
<%= form.text_field :guardian_last_name, required: @acquired_media_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
|
<%= form.phone_field :guardian_phone, required: @acquired_media_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
|
<%= form.text_field :guardian_email, required: @acquired_media_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian", required: @acquired_media_release.minor?, data: { required_tag: "guardian" } %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".guardian_photo.heading") do %>
|
||||||
|
<div class="alert alert-warning font-weight-bold"><%= t ".guardian_photo.instructions" %></div>
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="d-inline-block mb-2" data-behavior="guardian-photo-preview" data-file-input="[data-ujs-target=guardian-photo-input]">
|
||||||
|
<div class="align-items-center d-flex photo-preview img-thumbnail justify-content-center">
|
||||||
|
<span><%= t ".photo.no_photo" %></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-inline-block text-left">
|
||||||
|
<% if @acquired_media_release.guardian_photo.attached? %>
|
||||||
|
<%= javascript_tag nonce: true do %>
|
||||||
|
App.PhotoPreview.set("[data-behavior=guardian-photo-preview]", "<%= url_for(@acquired_media_release.guardian_photo.variant(auto_orient: true, resize: '200x200')) %>");
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="hidden-file-input">
|
||||||
|
<%= form.hidden_field :guardian_photo, value: form.object.guardian_photo.signed_id if @acquired_media_release.guardian_photo.attached? %>
|
||||||
|
<%= form.file_field :guardian_photo, required: @acquired_media_release.minor?, hide_label: true, data: { ujs_target: "guardian-photo-input" }, accept: @acquired_media_release.class.face_photo_acceptable_content_types.join(","), direct_upload: true %>
|
||||||
|
</div>
|
||||||
|
<%= button_tag t(".photo.take_photo"), type: "button", class: "btn btn-lg btn-primary take-photo-button", data: { behavior: "trigger-click", target: "[data-ujs-target=guardian-photo-input]" } %>
|
||||||
|
</div>
|
||||||
|
<p class="p-2 font-weight-bold">
|
||||||
|
<small class="text-muted"><%= t ".photo.warning" %></small>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".guardian_2_info.heading") do %>
|
||||||
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_2_first_name, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.text_field :guardian_2_last_name, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.phone_field :guardian_2_phone, wrapper_class: "col-sm-6" %>
|
||||||
|
<%= form.text_field :guardian_2_email, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian_2" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".guardian_2_photo.heading") do %>
|
||||||
|
<div class="alert alert-warning font-weight-bold"><%= t ".guardian_2_photo.instructions" %></div>
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="d-inline-block mb-2" data-behavior="guardian-photo-preview" data-file-input="[data-ujs-target=guardian-2-photo-input]">
|
||||||
|
<div class="align-items-center d-flex photo-preview img-thumbnail justify-content-center">
|
||||||
|
<span><%= t ".photo.no_photo" %></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-inline-block text-left">
|
||||||
|
<% if @acquired_media_release.guardian_2_photo.attached? %>
|
||||||
|
<%= javascript_tag nonce: true do %>
|
||||||
|
App.PhotoPreview.set("[data-behavior=guardian-photo-preview]", "<%= url_for(@acquired_media_release.guardian_2_photo.variant(auto_orient: true, resize: '200x200')) %>");
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="hidden-file-input">
|
||||||
|
<%= form.hidden_field :guardian_2_photo, value: form.object.guardian_2_photo.signed_id if @acquired_media_release.guardian_2_photo.attached? %>
|
||||||
|
<%= form.file_field :guardian_2_photo, hide_label: true, data: { ujs_target: "guardian-2-photo-input" }, accept: @acquired_media_release.class.face_photo_acceptable_content_types.join(","), direct_upload: true %>
|
||||||
|
</div>
|
||||||
|
<%= button_tag t(".photo.take_photo"), type: "button", class: "btn btn-lg btn-primary take-photo-button", data: { behavior: "trigger-click", target: "[data-ujs-target=guardian-2-photo-input]" } %>
|
||||||
|
</div>
|
||||||
|
<p class="p-2 font-weight-bold">
|
||||||
|
<small class="text-muted"><%= t ".photo.warning" %></small>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
3
app/views/public/amendments/create.html.erb
Normal file
3
app/views/public/amendments/create.html.erb
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<% message = local_assigns[:already_signed] ? t('.amendment_already_signed_message') : t('.amendment_signed_message') %>
|
||||||
|
<% alert_type = local_assigns[:already_signed] ? "alert-warning" : "alert-success" %>
|
||||||
|
<p class="alert <%= alert_type %> p-3 lead text-center"><%= message %></p>
|
||||||
30
app/views/public/amendments/new.html.erb
Normal file
30
app/views/public/amendments/new.html.erb
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<button type="button" class="btn btn-success mb-3" data-behavior="clipboard" href="<%= polymorphic_url [:new, @account, @project, @contract_template, @release, :amendment] %>">
|
||||||
|
<i class="fa fa-clipboard"></i>
|
||||||
|
<%= t '.copy_url' %>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card shadow-sm">
|
||||||
|
<div class="card-body">
|
||||||
|
<%= errors_summary_for @release %>
|
||||||
|
<%= bootstrap_form_with model: @release, method: :post, url: public_send("account_project_contract_template_#{@contract_template.release_type}_release_amendments_path"), local: true do |form| %>
|
||||||
|
<%= card_field_set_tag t(".amendment.heading") do %>
|
||||||
|
<p><%= @contract_template.amendment_clause %></p>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<div class="form-row">
|
||||||
|
<%= form.text_field :amendment_signer_name, required: true, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
|
<%= render "shared/signature_fields", signature_field: :amendment_signature_base64, form: form %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<div class="mt-5">
|
||||||
|
<%= form.button t("shared.submit_release_long"), class: "btn btn-block btn-lg btn-success", data: { disable_with: t("shared.disable_with") } %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<%= contract_template.name %>
|
||||||
|
</td>
|
||||||
|
<td class="text-right" nowrap>
|
||||||
|
<%= link_to t(".actions.sign"), [:new, contract_template.project.account, contract_template.project, contract_template, "#{contract_template.release_type}_release"], class: "btn btn-sm btn-primary", target: :_blank %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
27
app/views/public/contract_templates/index.html.erb
Normal file
27
app/views/public/contract_templates/index.html.erb
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<% content_for :header do %>
|
||||||
|
<header class="container-fluid py-3 border-bottom sticky-top bg-light">
|
||||||
|
<div class="row align-items-center justify-content-center">
|
||||||
|
<div class="col-4 text-center">
|
||||||
|
<h1 class="h4 m-0"><%= @account.name %></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<div class="border bg-white rounded shadow-sm pb-3 table-responsive">
|
||||||
|
<table class="table table-striped tr-px-4 align-all-middle">
|
||||||
|
<thead class="thead-light">
|
||||||
|
<tr>
|
||||||
|
<th><%= ContractTemplate.human_attribute_name(:name) %></th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<%= render @contract_templates %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-3">
|
||||||
|
<%= will_paginate @contract_templates %>
|
||||||
|
</div>
|
||||||
@@ -13,6 +13,17 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
|
<%= form.form_group :minor do %>
|
||||||
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
|
<p><%= @contract_template.guardian_clause %></p>
|
||||||
|
<% end %>
|
||||||
|
<hr>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".release_info.heading") do %>
|
<%= card_field_set_tag t(".release_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :name, required: true, wrapper_class: "col-12" %>
|
<%= form.text_field :name, required: true, wrapper_class: "col-12" %>
|
||||||
@@ -40,6 +51,91 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
|
<div class="<%= class_string("collapse" => !@material_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_first_name, required: @material_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
|
<%= form.text_field :guardian_last_name, required: @material_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
||||||
|
<%= form.phone_field :guardian_phone, required: @material_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
|
<%= form.text_field :guardian_email, required: @material_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian", required: @material_release.minor?, data: { required_tag: "guardian" } %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".guardian_photo.heading") do %>
|
||||||
|
<div class="alert alert-warning font-weight-bold"><%= t ".guardian_photo.instructions" %></div>
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="d-inline-block mb-2" data-behavior="guardian-photo-preview" data-file-input="[data-ujs-target=guardian-photo-input]">
|
||||||
|
<div class="align-items-center d-flex photo-preview img-thumbnail justify-content-center">
|
||||||
|
<span><%= t ".photo.no_photo" %></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-inline-block text-left">
|
||||||
|
<% if @material_release.guardian_photo.attached? %>
|
||||||
|
<%= javascript_tag nonce: true do %>
|
||||||
|
App.PhotoPreview.set("[data-behavior=guardian-photo-preview]", "<%= url_for(@material_release.guardian_photo.variant(auto_orient: true, resize: '200x200')) %>");
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="hidden-file-input">
|
||||||
|
<%= form.hidden_field :guardian_photo, value: form.object.guardian_photo.signed_id if @material_release.guardian_photo.attached? %>
|
||||||
|
<%= form.file_field :guardian_photo, required: @material_release.minor?, hide_label: true, data: { ujs_target: "guardian-photo-input" }, accept: @material_release.class.face_photo_acceptable_content_types.join(","), direct_upload: true %>
|
||||||
|
</div>
|
||||||
|
<%= button_tag t(".photo.take_photo"), type: "button", class: "btn btn-lg btn-primary take-photo-button", data: { behavior: "trigger-click", target: "[data-ujs-target=guardian-photo-input]" } %>
|
||||||
|
</div>
|
||||||
|
<p class="p-2 font-weight-bold">
|
||||||
|
<small class="text-muted"><%= t ".photo.warning" %></small>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".guardian_2_info.heading") do %>
|
||||||
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_2_first_name, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.text_field :guardian_2_last_name, wrapper_class: "col-sm-3" %>
|
||||||
|
<%= form.phone_field :guardian_2_phone, wrapper_class: "col-sm-6" %>
|
||||||
|
<%= form.text_field :guardian_2_email, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian_2" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<%= card_field_set_tag t(".guardian_2_photo.heading") do %>
|
||||||
|
<div class="alert alert-warning font-weight-bold"><%= t ".guardian_2_photo.instructions" %></div>
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="d-inline-block mb-2" data-behavior="guardian-photo-preview" data-file-input="[data-ujs-target=guardian-2-photo-input]">
|
||||||
|
<div class="align-items-center d-flex photo-preview img-thumbnail justify-content-center">
|
||||||
|
<span><%= t ".photo.no_photo" %></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-inline-block text-left">
|
||||||
|
<% if @material_release.guardian_2_photo.attached? %>
|
||||||
|
<%= javascript_tag nonce: true do %>
|
||||||
|
App.PhotoPreview.set("[data-behavior=guardian-photo-preview]", "<%= url_for(@material_release.guardian_2_photo.variant(auto_orient: true, resize: '200x200')) %>");
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="hidden-file-input">
|
||||||
|
<%= form.hidden_field :guardian_2_photo, value: form.object.guardian_2_photo.signed_id if @material_release.guardian_2_photo.attached? %>
|
||||||
|
<%= form.file_field :guardian_2_photo, hide_label: true, data: { ujs_target: "guardian-2-photo-input" }, accept: @material_release.class.face_photo_acceptable_content_types.join(","), direct_upload: true %>
|
||||||
|
</div>
|
||||||
|
<%= button_tag t(".photo.take_photo"), type: "button", class: "btn btn-lg btn-primary take-photo-button", data: { behavior: "trigger-click", target: "[data-ujs-target=guardian-2-photo-input]" } %>
|
||||||
|
</div>
|
||||||
|
<p class="p-2 font-weight-bold">
|
||||||
|
<small class="text-muted"><%= t ".photo.warning" %></small>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, instruction: 'For Owner or Authorized Signatory', signature_legal_text: @contract_template.signature_legal_text %>
|
<%= render "shared/signature_fields", form: form, instruction: 'For Owner or Authorized Signatory', signature_legal_text: @contract_template.signature_legal_text %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<% signature_field = local_assigns[:signature_field] ? local_assigns[:signature_field] : :signature_base64 %>
|
||||||
<canvas class="border bg-light w-100" data-behavior="digital-signature" data-signature-input="[data-ujs-target=signature-input]" style="height: 150px"></canvas>
|
<canvas class="border bg-light w-100" data-behavior="digital-signature" data-signature-input="[data-ujs-target=signature-input]" style="height: 150px"></canvas>
|
||||||
|
|
||||||
<% if local_assigns[:instruction] %>
|
<% if local_assigns[:instruction] %>
|
||||||
@@ -6,7 +7,7 @@
|
|||||||
</small>
|
</small>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= form.hidden_field :signature_base64, data: { ujs_target: "signature-input" } %>
|
<%= form.hidden_field signature_field, data: { ujs_target: "signature-input" } %>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
<%= button_tag class: "btn btn-sm btn-danger", data: { behavior: "clear-digital-signature" } do %>
|
<%= button_tag class: "btn btn-sm btn-danger", data: { behavior: "clear-digital-signature" } do %>
|
||||||
<%= fa_icon "refresh" %> <%= t "shared.clear" %>
|
<%= fa_icon "refresh" %> <%= t "shared.clear" %>
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
<tr id="<%= dom_id(talent_release) %>">
|
<tr id="<%= dom_id(talent_release) %>">
|
||||||
<td data-behavior="select"><%= check_box_tag "talent_release_ids[]", talent_release.id, false %></td>
|
<td data-behavior="select"><%= check_box_tag "talent_release_ids[]", talent_release.id, false %></td>
|
||||||
|
<td class="text-center">
|
||||||
|
<% if talent_release.approved? %>
|
||||||
|
<% tooltip_user_data = get_approval_data_for_releasable(talent_release) %>
|
||||||
|
<i class="fa fa-check-circle fa-2x text-success"
|
||||||
|
data-toggle="tooltip"
|
||||||
|
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: talent_release.approved_at %>"></i>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<% if talent_release.photo.attached? %>
|
<% if talent_release.photo.attached? %>
|
||||||
<%= image_tag medium_variant(talent_release.photo), class: "img-fluid" %>
|
<%= image_tag medium_variant(talent_release.photo), class: "img-fluid" %>
|
||||||
@@ -42,6 +50,9 @@
|
|||||||
<% if policy(Contract).show? && (talent_release.contract.attached? || talent_release.contract_template.present?) %>
|
<% if policy(Contract).show? && (talent_release.contract.attached? || talent_release.contract_template.present?) %>
|
||||||
<%= link_to fa_icon("download fw", text: "Download"), [talent_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
<%= link_to fa_icon("download fw", text: "Download"), [talent_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if policy(TalentRelease).review? %>
|
||||||
|
<%= link_to fa_icon("search fw", text: t('.actions.review')), new_talent_release_approvals_path(talent_release), class: "dropdown-item" %>
|
||||||
|
<% end %>
|
||||||
<% if policy(talent_release).edit? %>
|
<% if policy(talent_release).edit? %>
|
||||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, talent_release], class: "dropdown-item" %>
|
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, talent_release], class: "dropdown-item" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
<thead class="thead-light">
|
<thead class="thead-light">
|
||||||
<tr>
|
<tr>
|
||||||
<th data-behavior="all-selectable"><%= check_box_tag "talent_release_ids[]", false, false %></th>
|
<th data-behavior="all-selectable"><%= check_box_tag "talent_release_ids[]", false, false %></th>
|
||||||
|
<th><%= t '.table_headers.approved'%></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><%= TalentRelease.human_attribute_name(:person_name) %></th>
|
<th><%= TalentRelease.human_attribute_name(:person_name) %></th>
|
||||||
<th><%= TalentRelease.human_attribute_name(:person_phone) %></th>
|
<th><%= TalentRelease.human_attribute_name(:person_phone) %></th>
|
||||||
|
|||||||
@@ -1,9 +1,19 @@
|
|||||||
<%= errors_summary_for task_request %>
|
<%= errors_summary_for task_request %>
|
||||||
|
|
||||||
<%= bootstrap_form_with model: model, url: [@project, @task_request, show_chat: true], local: true do |form| %>
|
<%= bootstrap_form_with model: model, url: [@project, @task_request, show_chat: true], local: true do |form| %>
|
||||||
<div class="alert alert-info text-center text-md-left">
|
|
||||||
<%= fa_icon "info-circle" %>
|
<div class="d-flex">
|
||||||
<strong><%= t '.info_message' %></strong>
|
<div class="row">
|
||||||
|
<div class="col-xl-10 col-12">
|
||||||
|
<div class="alert alert-info text-center text-md-left">
|
||||||
|
<%= fa_icon "info-circle" %>
|
||||||
|
<strong><%= t '.info_message' %></strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xl-2 col-12">
|
||||||
|
<%= form.submit t('.actions.chat_now'), class: "btn btn-block btn-warning pt-4 pb-4 mb-1", data: { disable_with: t("shared.disable_with") } %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<%= form.text_area :description, label: t('.labels.description') %>
|
<%= form.text_area :description, label: t('.labels.description') %>
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
unless Rails.env.test?
|
unless Rails.env.test?
|
||||||
|
allowed_hosts = ENV['ALLOWED_HOSTS'].to_s.split(",")
|
||||||
|
|
||||||
Rails.application.config.hosts << AppHost.new.domain
|
Rails.application.config.hosts << AppHost.new.domain
|
||||||
|
Rails.application.config.hosts += allowed_hosts
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -29,6 +29,9 @@ en:
|
|||||||
acquired_media_release:
|
acquired_media_release:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
|
review: Review
|
||||||
|
messages:
|
||||||
|
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||||
no_media: No Media
|
no_media: No Media
|
||||||
create:
|
create:
|
||||||
notice: The acquired media release has been created
|
notice: The acquired media release has been created
|
||||||
@@ -43,12 +46,22 @@ en:
|
|||||||
heading: 3 of 3 Contract & Exploitable Rights
|
heading: 3 of 3 Contract & Exploitable Rights
|
||||||
files:
|
files:
|
||||||
heading: 2 of 3 Files
|
heading: 2 of 3 Files
|
||||||
|
guardian_2_info:
|
||||||
|
heading: Second Guardian Information (if company requires)
|
||||||
|
guardian_info:
|
||||||
|
heading: Guardian Information
|
||||||
|
photos:
|
||||||
|
guardian_2_photo:
|
||||||
|
heading: Second Guardian Photo
|
||||||
|
guardian_photo:
|
||||||
|
heading: Guardian Photo
|
||||||
index:
|
index:
|
||||||
actions:
|
actions:
|
||||||
new: Import Release
|
new: Import Release
|
||||||
search: Search
|
search: Search
|
||||||
empty: Acquired Media Releases will appear here
|
empty: Acquired Media Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
|
approved: Approved
|
||||||
file_infos_count: No. Files
|
file_infos_count: No. Files
|
||||||
name: Name
|
name: Name
|
||||||
notes: Notes
|
notes: Notes
|
||||||
@@ -121,6 +134,9 @@ en:
|
|||||||
appearance_release:
|
appearance_release:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
|
review: Review
|
||||||
|
messages:
|
||||||
|
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||||
no_photos: Needs Photo
|
no_photos: Needs Photo
|
||||||
create:
|
create:
|
||||||
failed_import: Failed to create appearance release for files listed below
|
failed_import: Failed to create appearance release for files listed below
|
||||||
@@ -152,6 +168,7 @@ en:
|
|||||||
empty: Appearance Releases will appear here
|
empty: Appearance Releases will appear here
|
||||||
imported_appearance_release_missing_attachment: Person photo or contract missing for imported appearance release
|
imported_appearance_release_missing_attachment: Person photo or contract missing for imported appearance release
|
||||||
table_headers:
|
table_headers:
|
||||||
|
approved: Approved
|
||||||
contact_info: Contact info
|
contact_info: Contact info
|
||||||
name: Name
|
name: Name
|
||||||
notes: Notes
|
notes: Notes
|
||||||
@@ -176,11 +193,11 @@ en:
|
|||||||
team_member: Team Member
|
team_member: Team Member
|
||||||
approvals:
|
approvals:
|
||||||
create:
|
create:
|
||||||
release_approved: Medical release has been approved
|
release_approved: "%{release_type} has been approved"
|
||||||
new:
|
new:
|
||||||
actions:
|
actions:
|
||||||
approve: Approve
|
approve: Approve
|
||||||
heading: Review Medical Release
|
heading: "Review %{release_type}"
|
||||||
blank_contracts:
|
blank_contracts:
|
||||||
new:
|
new:
|
||||||
number_of_copies_label: Number of copies
|
number_of_copies_label: Number of copies
|
||||||
@@ -206,6 +223,10 @@ en:
|
|||||||
destroy:
|
destroy:
|
||||||
alert: A live stream has been deleted
|
alert: A live stream has been deleted
|
||||||
api_error: Something went wrong, please try again later after some time
|
api_error: Something went wrong, please try again later after some time
|
||||||
|
file:
|
||||||
|
actions:
|
||||||
|
delete_file: Delete
|
||||||
|
confirm_delete: Are you sure?
|
||||||
index:
|
index:
|
||||||
actions:
|
actions:
|
||||||
new: Create New Live Stream
|
new: Create New Live Stream
|
||||||
@@ -214,9 +235,13 @@ en:
|
|||||||
broadcast_created_at: Created Date
|
broadcast_created_at: Created Date
|
||||||
broadcast_name: Name
|
broadcast_name: Name
|
||||||
broadcast_status: Status
|
broadcast_status: Status
|
||||||
|
broadcast_time_zone: Time Zone of Shoot Location
|
||||||
new:
|
new:
|
||||||
heading:
|
heading:
|
||||||
Create Live Stream
|
Create Live Stream
|
||||||
|
show:
|
||||||
|
actions:
|
||||||
|
reset_url: Reset URL
|
||||||
splash:
|
splash:
|
||||||
actions:
|
actions:
|
||||||
book_demo: Schedule a Demo
|
book_demo: Schedule a Demo
|
||||||
@@ -235,6 +260,8 @@ en:
|
|||||||
share_stream: Share live stream link with clients
|
share_stream: Share live stream link with clients
|
||||||
stream_from_mobile_app: Stream from ME Suite Mobile app, or via a professional camera
|
stream_from_mobile_app: Stream from ME Suite Mobile app, or via a professional camera
|
||||||
stream_multiple_cameras: Stream multiple cameras at one time
|
stream_multiple_cameras: Stream multiple cameras at one time
|
||||||
|
update:
|
||||||
|
reset_notice: The Share URL has been reset, and the previous URL will no longer work. Please click "Copy URL" and share it again with those who you want to have access to this live stream
|
||||||
bulk_taggings:
|
bulk_taggings:
|
||||||
new_bulk_tag_modal:
|
new_bulk_tag_modal:
|
||||||
submit: Add
|
submit: Add
|
||||||
@@ -293,6 +320,7 @@ en:
|
|||||||
actions:
|
actions:
|
||||||
book_demo: Schedule a Demo
|
book_demo: Schedule a Demo
|
||||||
create_template: Create New Release Template
|
create_template: Create New Release Template
|
||||||
|
import_template: Import Template
|
||||||
headings:
|
headings:
|
||||||
benefits: Benefits
|
benefits: Benefits
|
||||||
how_it_works: How It Works
|
how_it_works: How It Works
|
||||||
@@ -309,11 +337,17 @@ en:
|
|||||||
update:
|
update:
|
||||||
notice: The release template has been updated
|
notice: The release template has been updated
|
||||||
contracts:
|
contracts:
|
||||||
|
amendment_page:
|
||||||
|
description_labels:
|
||||||
|
amendment_clause: Amendment Clause
|
||||||
|
amendment_signature: Amendment Signature
|
||||||
|
amendment_signer_name: Amendment Signer Name
|
||||||
|
heading: Amendment
|
||||||
for_office_use_only:
|
for_office_use_only:
|
||||||
description_labels:
|
description_labels:
|
||||||
date_issued: Date Issued
|
date_issued: Date Issued
|
||||||
employee_issued_to: Employee Issued To
|
|
||||||
issued_by: Issued By
|
issued_by: Issued By
|
||||||
|
issued_to: Issued To
|
||||||
producer: Producer
|
producer: Producer
|
||||||
production: Production
|
production: Production
|
||||||
heading: For Office Use Only
|
heading: For Office Use Only
|
||||||
@@ -333,6 +367,12 @@ en:
|
|||||||
signature_page:
|
signature_page:
|
||||||
heading: Signature Page
|
heading: Signature Page
|
||||||
instructions: "By signing this signature page, as of the date listed below, I hereby agree, acknowledge and accept the terms and conditions listed in this %{releasable_name}."
|
instructions: "By signing this signature page, as of the date listed below, I hereby agree, acknowledge and accept the terms and conditions listed in this %{releasable_name}."
|
||||||
|
labels:
|
||||||
|
location_release:
|
||||||
|
contact_person_address: Owner Address
|
||||||
|
contact_person_email: Owner Email
|
||||||
|
contact_person_phone: Owner Phone
|
||||||
|
name: Location Name
|
||||||
directories:
|
directories:
|
||||||
destroy:
|
destroy:
|
||||||
alert: The folder has been deleted
|
alert: The folder has been deleted
|
||||||
@@ -391,6 +431,7 @@ en:
|
|||||||
helpers:
|
helpers:
|
||||||
help:
|
help:
|
||||||
contract_template:
|
contract_template:
|
||||||
|
amendment_clause: Leave blank if not required for this contract
|
||||||
fee: Leave at $0.00 for no-fee
|
fee: Leave at $0.00 for no-fee
|
||||||
guardian_clause: Leave blank if not required for this contract
|
guardian_clause: Leave blank if not required for this contract
|
||||||
signature_legal_text: Leave blank if not required for this contract
|
signature_legal_text: Leave blank if not required for this contract
|
||||||
@@ -404,6 +445,27 @@ en:
|
|||||||
label:
|
label:
|
||||||
acquired_media_release:
|
acquired_media_release:
|
||||||
description: Description of property
|
description: Description of property
|
||||||
|
guardian_2_address_city: Guardian 2 city
|
||||||
|
guardian_2_address_country: Guardian 2 country
|
||||||
|
guardian_2_address_state: Guardian 2 state
|
||||||
|
guardian_2_address_street1: Guardian 2 address
|
||||||
|
guardian_2_address_street2: Guardian 2 address (Line 2)
|
||||||
|
guardian_2_address_zip: Guardian 2 zip code
|
||||||
|
guardian_2_email: Guardian 2 email
|
||||||
|
guardian_2_first_name: Guardian 2 first name
|
||||||
|
guardian_2_last_name: Guardian 2 last name
|
||||||
|
guardian_2_phone: Guardian 2 phone
|
||||||
|
guardian_address_city: Guardian city
|
||||||
|
guardian_address_country: Guardian country
|
||||||
|
guardian_address_state: Guardian state
|
||||||
|
guardian_address_street1: Guardian address
|
||||||
|
guardian_address_street2: Guardian address (Line 2)
|
||||||
|
guardian_address_zip: Guardian zip code
|
||||||
|
guardian_email: Guardian email
|
||||||
|
guardian_first_name: Guardian first name
|
||||||
|
guardian_last_name: Guardian last name
|
||||||
|
guardian_phone: Guardian phone
|
||||||
|
minor: Is the person a minor?
|
||||||
name: Name of property
|
name: Name of property
|
||||||
person_address: Address
|
person_address: Address
|
||||||
person_address_city: City
|
person_address_city: City
|
||||||
@@ -469,6 +531,27 @@ en:
|
|||||||
person_last_name: Owner last name
|
person_last_name: Owner last name
|
||||||
material_release:
|
material_release:
|
||||||
description: Description of licensed material
|
description: Description of licensed material
|
||||||
|
guardian_2_address_city: Guardian 2 city
|
||||||
|
guardian_2_address_country: Guardian 2 country
|
||||||
|
guardian_2_address_state: Guardian 2 state
|
||||||
|
guardian_2_address_street1: Guardian 2 address
|
||||||
|
guardian_2_address_street2: Guardian 2 address (Line 2)
|
||||||
|
guardian_2_address_zip: Guardian 2 zip code
|
||||||
|
guardian_2_email: Guardian 2 email
|
||||||
|
guardian_2_first_name: Guardian 2 first name
|
||||||
|
guardian_2_last_name: Guardian 2 last name
|
||||||
|
guardian_2_phone: Guardian 2 phone
|
||||||
|
guardian_address_city: Guardian city
|
||||||
|
guardian_address_country: Guardian country
|
||||||
|
guardian_address_state: Guardian state
|
||||||
|
guardian_address_street1: Guardian address
|
||||||
|
guardian_address_street2: Guardian address (Line 2)
|
||||||
|
guardian_address_zip: Guardian zip code
|
||||||
|
guardian_email: Guardian email
|
||||||
|
guardian_first_name: Guardian first name
|
||||||
|
guardian_last_name: Guardian last name
|
||||||
|
guardian_phone: Guardian phone
|
||||||
|
minor: Is the person a minor?
|
||||||
name: Name of licensed material
|
name: Name of licensed material
|
||||||
person_address: Address
|
person_address: Address
|
||||||
person_address_city: City
|
person_address_city: City
|
||||||
@@ -689,6 +772,8 @@ en:
|
|||||||
acquired_media_release:
|
acquired_media_release:
|
||||||
create: Import Release
|
create: Import Release
|
||||||
update: Save Changes
|
update: Save Changes
|
||||||
|
acquired_media_releases:
|
||||||
|
create: Import Release
|
||||||
appearance_release:
|
appearance_release:
|
||||||
create: Import Release
|
create: Import Release
|
||||||
update: Save Changes
|
update: Save Changes
|
||||||
@@ -757,13 +842,21 @@ en:
|
|||||||
empty: Location Releases will appear here
|
empty: Location Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
address: Address
|
address: Address
|
||||||
name: Name
|
amendment_signed: Amendment
|
||||||
|
approved: Approved
|
||||||
|
name: Location Name
|
||||||
notes: Notes
|
notes: Notes
|
||||||
signed_at: Date Signed
|
signed_at: Date Signed
|
||||||
tags: Tags
|
tags: Tags
|
||||||
location_release:
|
location_release:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
|
review: Review
|
||||||
|
sign_amendment: Sign Amendment
|
||||||
|
messages:
|
||||||
|
amendment_not_signed_tooltip: Amendment not yet signed
|
||||||
|
amendment_signed_tooltip: Amendment Signed
|
||||||
|
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||||
no_photos: Needs Photo
|
no_photos: Needs Photo
|
||||||
new:
|
new:
|
||||||
heading: Import Location Release
|
heading: Import Location Release
|
||||||
@@ -779,10 +872,18 @@ en:
|
|||||||
form:
|
form:
|
||||||
contract_and_rights:
|
contract_and_rights:
|
||||||
heading: 3 of 4 Contract & Exploitable Rights
|
heading: 3 of 4 Contract & Exploitable Rights
|
||||||
|
guardian_2_info:
|
||||||
|
heading: Second Guardian Information (if company requires)
|
||||||
|
guardian_info:
|
||||||
|
heading: Guardian Information
|
||||||
material_details:
|
material_details:
|
||||||
heading: 1 of 3 Material Details
|
heading: 1 of 3 Material Details
|
||||||
photos:
|
photos:
|
||||||
dropzone_label: Tap to take a photo of Licensed Material (optional)
|
dropzone_label: Tap to take a photo of Licensed Material (optional)
|
||||||
|
guardian_2_photo:
|
||||||
|
heading: Second Guardian Photo
|
||||||
|
guardian_photo:
|
||||||
|
heading: Guardian Photo
|
||||||
heading: 4 of 4 Photos
|
heading: 4 of 4 Photos
|
||||||
signer_details:
|
signer_details:
|
||||||
heading: 2 of 4 Licensor/Owner Details
|
heading: 2 of 4 Licensor/Owner Details
|
||||||
@@ -792,6 +893,7 @@ en:
|
|||||||
search: Search
|
search: Search
|
||||||
empty: Material Releases will appear here
|
empty: Material Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
|
approved: Approved
|
||||||
name: Name
|
name: Name
|
||||||
notes: Notes
|
notes: Notes
|
||||||
signed_at: Date Signed
|
signed_at: Date Signed
|
||||||
@@ -799,6 +901,9 @@ en:
|
|||||||
material_release:
|
material_release:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
|
review: Review
|
||||||
|
messages:
|
||||||
|
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||||
no_photos: Needs Photo
|
no_photos: Needs Photo
|
||||||
new:
|
new:
|
||||||
heading: Import Material Release (Products / Logos)
|
heading: Import Material Release (Products / Logos)
|
||||||
@@ -835,6 +940,7 @@ en:
|
|||||||
search: Search
|
search: Search
|
||||||
empty: Misc Releases will appear here
|
empty: Misc Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
|
approved: Approved
|
||||||
contact_info: Contact info
|
contact_info: Contact info
|
||||||
name: Person name
|
name: Person name
|
||||||
notes: Notes
|
notes: Notes
|
||||||
@@ -843,6 +949,9 @@ en:
|
|||||||
misc_release:
|
misc_release:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
|
review: Review
|
||||||
|
messages:
|
||||||
|
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||||
music_releases:
|
music_releases:
|
||||||
create:
|
create:
|
||||||
notice: The music release has been created
|
notice: The music release has been created
|
||||||
@@ -869,6 +978,7 @@ en:
|
|||||||
search: Search
|
search: Search
|
||||||
empty: Music Releases will appear here
|
empty: Music Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
|
approved: Approved
|
||||||
composers_count: No. Composers
|
composers_count: No. Composers
|
||||||
file_infos_count: No. Files
|
file_infos_count: No. Files
|
||||||
name: Name
|
name: Name
|
||||||
@@ -879,6 +989,9 @@ en:
|
|||||||
music_release:
|
music_release:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
|
review: Review
|
||||||
|
messages:
|
||||||
|
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||||
new:
|
new:
|
||||||
heading: Import Music Release
|
heading: Import Music Release
|
||||||
update:
|
update:
|
||||||
@@ -991,10 +1104,38 @@ en:
|
|||||||
cancel: Cancel
|
cancel: Cancel
|
||||||
files:
|
files:
|
||||||
heading: File Information
|
heading: File Information
|
||||||
|
guardian_2_info:
|
||||||
|
heading: Second Guardian Information (if company requires)
|
||||||
|
guardian_2_photo:
|
||||||
|
heading: Second Guardian Photo
|
||||||
|
instructions: >
|
||||||
|
Lastly, it's time for second guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese!
|
||||||
|
guardian_clause:
|
||||||
|
heading: Guardian Clause
|
||||||
|
guardian_info:
|
||||||
|
heading: Guardian Information
|
||||||
|
guardian_photo:
|
||||||
|
heading: Guardian Photo
|
||||||
|
instructions: >
|
||||||
|
Lastly, it's time for guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese!
|
||||||
legal:
|
legal:
|
||||||
heading: Legal
|
heading: Legal
|
||||||
personal_info:
|
personal_info:
|
||||||
heading: Licensor/Owner Contact Information
|
heading: Licensor/Owner Contact Information
|
||||||
|
photo:
|
||||||
|
no_photo: No photo yet
|
||||||
|
take_photo: Take Photo
|
||||||
|
warning: If your photo appears sideways, it will be autocorrected when you submit your release.
|
||||||
|
signature:
|
||||||
|
heading: Signature
|
||||||
|
amendments:
|
||||||
|
create:
|
||||||
|
amendment_already_signed_message: Release amendment is already signed!
|
||||||
|
amendment_signed_message: Release amendment signed successfully! Thank you
|
||||||
|
new:
|
||||||
|
amendment:
|
||||||
|
heading: Amendment
|
||||||
|
copy_url: Copy sign amendment URL
|
||||||
signature:
|
signature:
|
||||||
heading: Signature
|
heading: Signature
|
||||||
appearance_releases:
|
appearance_releases:
|
||||||
@@ -1036,6 +1177,16 @@ en:
|
|||||||
broadcasts:
|
broadcasts:
|
||||||
show:
|
show:
|
||||||
alert: That broadcast is no longer available
|
alert: That broadcast is no longer available
|
||||||
|
contract_templates:
|
||||||
|
contract_template:
|
||||||
|
actions:
|
||||||
|
sign: Sign
|
||||||
|
no_fee: No Fee
|
||||||
|
index:
|
||||||
|
heading: Release Templates
|
||||||
|
table_headers:
|
||||||
|
release_type: Type of Release
|
||||||
|
signed_release_count: No. Signed Releases
|
||||||
location_releases:
|
location_releases:
|
||||||
create:
|
create:
|
||||||
notice: Your release has been signed. Thank you!
|
notice: Your release has been signed. Thank you!
|
||||||
@@ -1060,10 +1211,27 @@ en:
|
|||||||
cancel: Cancel
|
cancel: Cancel
|
||||||
contact_info:
|
contact_info:
|
||||||
heading: Licensor/Owner Contact Information
|
heading: Licensor/Owner Contact Information
|
||||||
|
guardian_2_info:
|
||||||
|
heading: Second Guardian Information (if company requires)
|
||||||
|
guardian_2_photo:
|
||||||
|
heading: Second Guardian Photo
|
||||||
|
instructions: >
|
||||||
|
Lastly, it's time for second guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese!
|
||||||
|
guardian_clause:
|
||||||
|
heading: Guardian Clause
|
||||||
|
guardian_info:
|
||||||
|
heading: Guardian Information
|
||||||
|
guardian_photo:
|
||||||
|
heading: Guardian Photo
|
||||||
|
instructions: >
|
||||||
|
Lastly, it's time for guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese!
|
||||||
legal:
|
legal:
|
||||||
heading: Legal
|
heading: Legal
|
||||||
photo:
|
photo:
|
||||||
heading: Photos
|
heading: Photos
|
||||||
|
no_photo: No photo yet
|
||||||
|
take_photo: Take Photo
|
||||||
|
warning: If your photo appears sideways, it will be autocorrected when you submit your release.
|
||||||
release_info:
|
release_info:
|
||||||
heading: Release Information
|
heading: Release Information
|
||||||
signature:
|
signature:
|
||||||
@@ -1268,6 +1436,7 @@ en:
|
|||||||
search: Search
|
search: Search
|
||||||
empty: Talent Releases will appear here
|
empty: Talent Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
|
approved: Approved
|
||||||
email: Email
|
email: Email
|
||||||
name: Name
|
name: Name
|
||||||
notes: Notes
|
notes: Notes
|
||||||
@@ -1279,6 +1448,9 @@ en:
|
|||||||
talent_release:
|
talent_release:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
|
review: Review
|
||||||
|
messages:
|
||||||
|
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||||
update:
|
update:
|
||||||
notice: The talent release has been updated
|
notice: The talent release has been updated
|
||||||
task_requests:
|
task_requests:
|
||||||
@@ -1291,7 +1463,9 @@ en:
|
|||||||
heading:
|
heading:
|
||||||
Edit Task Request
|
Edit Task Request
|
||||||
form:
|
form:
|
||||||
info_message: After submitting this task request, you'll be connected via chat with a ME Suite representative.
|
actions:
|
||||||
|
chat_now: Chat Now
|
||||||
|
info_message: For best results, please fill out this form prior to being connected with a TaskME assistant. However, if urgent, you can start speaking with a TaskME assistant by pressing the Chat Now button to the right
|
||||||
labels:
|
labels:
|
||||||
additional_notes: Please add any additional notes we should be aware of regarding this task.
|
additional_notes: Please add any additional notes we should be aware of regarding this task.
|
||||||
deadline: What is the deadline for this task?
|
deadline: What is the deadline for this task?
|
||||||
|
|||||||
@@ -2,6 +2,18 @@ es:
|
|||||||
acquired_media_releases:
|
acquired_media_releases:
|
||||||
acquired_media_release:
|
acquired_media_release:
|
||||||
no_media: No Media (ES)
|
no_media: No Media (ES)
|
||||||
|
create:
|
||||||
|
notice: The acquired media release has been created (ES)
|
||||||
|
form:
|
||||||
|
guardian_2_info:
|
||||||
|
heading: Guardian Information (if company requires) [ES]
|
||||||
|
guardian_info:
|
||||||
|
heading: Guardian Information (ES)
|
||||||
|
photos:
|
||||||
|
guardian_2_photo:
|
||||||
|
heading: Second Guardian Photo
|
||||||
|
guardian_photo:
|
||||||
|
heading: Guardian Photo
|
||||||
index:
|
index:
|
||||||
table_headers:
|
table_headers:
|
||||||
file_infos_count: No. Files (ES)
|
file_infos_count: No. Files (ES)
|
||||||
@@ -81,6 +93,13 @@ es:
|
|||||||
do_not_copy_warning: "Do not copy (ES)"
|
do_not_copy_warning: "Do not copy (ES)"
|
||||||
serial_number_label: "Serial Number (ES)"
|
serial_number_label: "Serial Number (ES)"
|
||||||
broadcasts:
|
broadcasts:
|
||||||
|
file:
|
||||||
|
actions:
|
||||||
|
delete_file: Delete
|
||||||
|
confirm_delete: Are you sure? (ES)
|
||||||
|
show:
|
||||||
|
actions:
|
||||||
|
reset_url: Reset URL (ES)
|
||||||
splash:
|
splash:
|
||||||
actions:
|
actions:
|
||||||
book_demo: Schedule a Demo
|
book_demo: Schedule a Demo
|
||||||
@@ -99,6 +118,8 @@ es:
|
|||||||
share_stream: Share live stream link with clients
|
share_stream: Share live stream link with clients
|
||||||
stream_from_mobile_app: Stream from ME Suite Mobile app, or via a professional camera
|
stream_from_mobile_app: Stream from ME Suite Mobile app, or via a professional camera
|
||||||
stream_multiple_cameras: Stream multiple cameras at one time
|
stream_multiple_cameras: Stream multiple cameras at one time
|
||||||
|
update:
|
||||||
|
reset_notice: The Share URL has been reset, and the previous URL will no longer work. Please click "Copy URL" and share it again with those who you want to have access to this live stream
|
||||||
contract_templates:
|
contract_templates:
|
||||||
blank_contracts:
|
blank_contracts:
|
||||||
create:
|
create:
|
||||||
@@ -143,11 +164,17 @@ es:
|
|||||||
update:
|
update:
|
||||||
notice: The release template has been updated (ES)
|
notice: The release template has been updated (ES)
|
||||||
contracts:
|
contracts:
|
||||||
|
amendment_page:
|
||||||
|
description_labels:
|
||||||
|
amendment_clause: Amendment Clause (ES)
|
||||||
|
amendment_signature: Amendment Signature (ES)
|
||||||
|
amendment_signer_name: Amendment Signer Name (ES)
|
||||||
|
heading: Amendment (ES)
|
||||||
for_office_use_only:
|
for_office_use_only:
|
||||||
description_labels:
|
description_labels:
|
||||||
date_issued: Date Issued (ES)
|
date_issued: Date Issued (ES)
|
||||||
employee_issued_to: Employee Issued To (ES)
|
|
||||||
issued_by: Issued By (ES)
|
issued_by: Issued By (ES)
|
||||||
|
issued_to: Issued To (ES)
|
||||||
producer: Producer (ES)
|
producer: Producer (ES)
|
||||||
production: Production (ES)
|
production: Production (ES)
|
||||||
heading: For Office Use Only (ES)
|
heading: For Office Use Only (ES)
|
||||||
@@ -202,10 +229,34 @@ es:
|
|||||||
helpers:
|
helpers:
|
||||||
help:
|
help:
|
||||||
contract_template:
|
contract_template:
|
||||||
|
amendment_clause: Leave blank if not required for this contract (ES)
|
||||||
fee: Leave at $0.00 for no-fee (ES)
|
fee: Leave at $0.00 for no-fee (ES)
|
||||||
guardian_clause: Leave blank if not required for this contract (ES)
|
guardian_clause: Leave blank if not required for this contract (ES)
|
||||||
signature_legal_text: Leave blank if not required for this contract (ES)
|
signature_legal_text: Leave blank if not required for this contract (ES)
|
||||||
label:
|
label:
|
||||||
|
acquired_media_release:
|
||||||
|
guardian_2_address_city: Guardian 2 city (ES)
|
||||||
|
guardian_2_address_country: Guardian 2 country (ES)
|
||||||
|
guardian_2_address_state: Guardian 2 state (ES)
|
||||||
|
guardian_2_address_street1: Guardian 2 address (ES)
|
||||||
|
guardian_2_address_street2: Guardian 2 address (Line 2) (ES)
|
||||||
|
guardian_2_address_zip: Guardian 2 zip code (ES)
|
||||||
|
guardian_2_email: Guardian 2 email (ES)
|
||||||
|
guardian_2_first_name: Guardian 2 first name (ES)
|
||||||
|
guardian_2_last_name: Guardian 2 last name (ES)
|
||||||
|
guardian_2_phone: Guardian 2 phone (ES)
|
||||||
|
guardian_address_city: Guardian city (ES)
|
||||||
|
guardian_address_country: Guardian country (ES)
|
||||||
|
guardian_address_state: Guardian state (ES)
|
||||||
|
guardian_address_street1: Dirección del tutor legal
|
||||||
|
guardian_address_street2: Dirección del tutor legal (Línea 2)
|
||||||
|
guardian_address_zip: Guardian zip code (ES)
|
||||||
|
guardian_email: Guardian email (ES)
|
||||||
|
guardian_first_name: Guardian first name (ES)
|
||||||
|
guardian_last_name: Guardian last name (ES)
|
||||||
|
guardian_name: Nómbre del tutor legal
|
||||||
|
guardian_phone: Número de teléfono del tutor legal
|
||||||
|
minor: El firmante es un menor
|
||||||
appearance_release:
|
appearance_release:
|
||||||
guardian_2_address_city: Guardian 2 city (ES)
|
guardian_2_address_city: Guardian 2 city (ES)
|
||||||
guardian_2_address_country: Guardian 2 country (ES)
|
guardian_2_address_country: Guardian 2 country (ES)
|
||||||
@@ -234,6 +285,29 @@ es:
|
|||||||
person_email: Dirección de correo electrónico
|
person_email: Dirección de correo electrónico
|
||||||
person_name: Nómbre
|
person_name: Nómbre
|
||||||
person_phone: Número de teléfono
|
person_phone: Número de teléfono
|
||||||
|
material_release:
|
||||||
|
guardian_2_address_city: Guardian 2 city (ES)
|
||||||
|
guardian_2_address_country: Guardian 2 country (ES)
|
||||||
|
guardian_2_address_state: Guardian 2 state (ES)
|
||||||
|
guardian_2_address_street1: Guardian 2 address (ES)
|
||||||
|
guardian_2_address_street2: Guardian 2 address (Line 2) (ES)
|
||||||
|
guardian_2_address_zip: Guardian 2 zip code (ES)
|
||||||
|
guardian_2_email: Guardian 2 email (ES)
|
||||||
|
guardian_2_first_name: Guardian 2 first name (ES)
|
||||||
|
guardian_2_last_name: Guardian 2 last name (ES)
|
||||||
|
guardian_2_phone: Guardian 2 phone (ES)
|
||||||
|
guardian_address_city: Guardian city (ES)
|
||||||
|
guardian_address_country: Guardian country (ES)
|
||||||
|
guardian_address_state: Guardian state (ES)
|
||||||
|
guardian_address_street1: Dirección del tutor legal
|
||||||
|
guardian_address_street2: Dirección del tutor legal (Línea 2)
|
||||||
|
guardian_address_zip: Guardian zip code (ES)
|
||||||
|
guardian_email: Guardian email (ES)
|
||||||
|
guardian_first_name: Guardian first name (ES)
|
||||||
|
guardian_last_name: Guardian last name (ES)
|
||||||
|
guardian_name: Nómbre del tutor legal
|
||||||
|
guardian_phone: Número de teléfono del tutor legal
|
||||||
|
minor: El firmante es un menor
|
||||||
medical_release:
|
medical_release:
|
||||||
guardian_2_address_city: Guardian 2 city (ES)
|
guardian_2_address_city: Guardian 2 city (ES)
|
||||||
guardian_2_address_country: Guardian 2 country (ES)
|
guardian_2_address_country: Guardian 2 country (ES)
|
||||||
@@ -312,6 +386,8 @@ es:
|
|||||||
person_name: Jane Doe
|
person_name: Jane Doe
|
||||||
person_phone: 555-555-5555
|
person_phone: 555-555-5555
|
||||||
submit:
|
submit:
|
||||||
|
acquired_media_releases:
|
||||||
|
create: Import Release (ES)
|
||||||
appearance_release:
|
appearance_release:
|
||||||
create: Crear Autorización
|
create: Crear Autorización
|
||||||
broadcast:
|
broadcast:
|
||||||
@@ -320,6 +396,8 @@ es:
|
|||||||
contract_template:
|
contract_template:
|
||||||
update: Save changes (ES)
|
update: Save changes (ES)
|
||||||
create: 'Crear %{model}'
|
create: 'Crear %{model}'
|
||||||
|
material_release:
|
||||||
|
create: Import Release (ES)
|
||||||
medical_release:
|
medical_release:
|
||||||
update: Approve (ES)
|
update: Approve (ES)
|
||||||
update: 'Actualizar %{model}'
|
update: 'Actualizar %{model}'
|
||||||
@@ -330,13 +408,30 @@ es:
|
|||||||
index:
|
index:
|
||||||
table_headers:
|
table_headers:
|
||||||
address: Address (ES)
|
address: Address (ES)
|
||||||
|
amendment_signed: Amendment (ES)
|
||||||
notes: Notes (ES)
|
notes: Notes (ES)
|
||||||
signed_at: Date Signed (ES)
|
signed_at: Date Signed (ES)
|
||||||
tags: Tags (ES)
|
tags: Tags (ES)
|
||||||
|
location_release:
|
||||||
|
actions:
|
||||||
|
sign_amendment: Sign Amendment (ES)
|
||||||
|
messages:
|
||||||
|
amendment_not_signed_tooltip: Amendment not yet signed (ES)
|
||||||
|
amendment_signed_tooltip: Amendment Signed (ES)
|
||||||
material_releases:
|
material_releases:
|
||||||
|
create:
|
||||||
|
notice: The acquired media release has been created (ES)
|
||||||
form:
|
form:
|
||||||
|
guardian_2_info:
|
||||||
|
heading: Guardian Information (if company requires) [ES]
|
||||||
|
guardian_info:
|
||||||
|
heading: Guardian Information (ES)
|
||||||
photos:
|
photos:
|
||||||
dropzone_label: Tap to take a photo of Licensed Material (optional) (ES)
|
dropzone_label: Tap to take a photo of Licensed Material (optional) (ES)
|
||||||
|
guardian_2_photo:
|
||||||
|
heading: Second Guardian Photo
|
||||||
|
guardian_photo:
|
||||||
|
heading: Guardian Photo
|
||||||
index:
|
index:
|
||||||
table_headers:
|
table_headers:
|
||||||
name: Name (ES)
|
name: Name (ES)
|
||||||
@@ -379,6 +474,36 @@ es:
|
|||||||
signed_at: Date Signed (ES)
|
signed_at: Date Signed (ES)
|
||||||
tags: Tags (ES)
|
tags: Tags (ES)
|
||||||
public:
|
public:
|
||||||
|
acquired_media_releases:
|
||||||
|
new:
|
||||||
|
guardian_2_info:
|
||||||
|
heading: Second Guardian Information (if company requires) [ES]
|
||||||
|
guardian_2_photo:
|
||||||
|
heading: Second Guardian Photo (ES)
|
||||||
|
instructions: >
|
||||||
|
(ES) Lastly, it's time for second guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese! (ES)
|
||||||
|
guardian_clause:
|
||||||
|
heading: Guardian Clause (ES)
|
||||||
|
guardian_info:
|
||||||
|
heading: Guardian Information (ES)
|
||||||
|
guardian_photo:
|
||||||
|
heading: Guardian Photo (ES)
|
||||||
|
instructions: >
|
||||||
|
(ES) Lastly, it's time for guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese! (ES)
|
||||||
|
photo:
|
||||||
|
no_photo: No photo yet (ES)
|
||||||
|
take_photo: Take Photo (ES)
|
||||||
|
warning: If your photo appears sideways, it will be autocorrected when you submit your release. (ES)
|
||||||
|
amendments:
|
||||||
|
create:
|
||||||
|
amendment_already_signed_message: Release amendment is already signed! (ES)
|
||||||
|
amendment_signed_message: Release amendment signed successfully! Thank you (ES)
|
||||||
|
new:
|
||||||
|
amendment:
|
||||||
|
heading: Amendment
|
||||||
|
copy_url: Copy sign amendment URL (ES)
|
||||||
|
signature:
|
||||||
|
heading: Signature (ES)
|
||||||
appearance_releases:
|
appearance_releases:
|
||||||
create:
|
create:
|
||||||
notice: La autorización está firmada. ¡Gracias!
|
notice: La autorización está firmada. ¡Gracias!
|
||||||
@@ -418,8 +543,25 @@ es:
|
|||||||
heading: Photos (ES)
|
heading: Photos (ES)
|
||||||
material_releases:
|
material_releases:
|
||||||
new:
|
new:
|
||||||
|
guardian_2_info:
|
||||||
|
heading: Second Guardian Information (if company requires) [ES]
|
||||||
|
guardian_2_photo:
|
||||||
|
heading: Second Guardian Photo (ES)
|
||||||
|
instructions: >
|
||||||
|
(ES) Lastly, it's time for second guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese! (ES)
|
||||||
|
guardian_clause:
|
||||||
|
heading: Guardian Clause (ES)
|
||||||
|
guardian_info:
|
||||||
|
heading: Guardian Information (ES)
|
||||||
|
guardian_photo:
|
||||||
|
heading: Guardian Photo (ES)
|
||||||
|
instructions: >
|
||||||
|
(ES) Lastly, it's time for guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese! (ES)
|
||||||
photo:
|
photo:
|
||||||
heading: Photos (ES)
|
heading: Photos (ES)
|
||||||
|
no_photo: No photo yet (ES)
|
||||||
|
take_photo: Take Photo (ES)
|
||||||
|
warning: If your photo appears sideways, it will be autocorrected when you submit your release. (ES)
|
||||||
medical_releases:
|
medical_releases:
|
||||||
new:
|
new:
|
||||||
guardian_2_info:
|
guardian_2_info:
|
||||||
@@ -494,7 +636,9 @@ es:
|
|||||||
create:
|
create:
|
||||||
success_message: Your task request was successfully submitted. Thank you. A chat window will pop up on the lower right in a few seconds. (ES)
|
success_message: Your task request was successfully submitted. Thank you. A chat window will pop up on the lower right in a few seconds. (ES)
|
||||||
form:
|
form:
|
||||||
info_message: After submitting this task request, you'll be connected via chat with a ME Suite representative. (ES)
|
actions:
|
||||||
|
chat_now: Chat Now (ES)
|
||||||
|
info_message: For best results, please fill out this form prior to being connected with a TaskME assistant. However, if urgent, you can start speaking with a TaskME assistant by pressing the Chat Now button to the right (ES)
|
||||||
index:
|
index:
|
||||||
table_headers:
|
table_headers:
|
||||||
task_request_description: Description (ES)
|
task_request_description: Description (ES)
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ Rails.application.routes.draw do
|
|||||||
concern :file_infoable do
|
concern :file_infoable do
|
||||||
resource :file_infos, only: [:edit, :update]
|
resource :file_infos, only: [:edit, :update]
|
||||||
end
|
end
|
||||||
|
concern :approvable do
|
||||||
|
resource :approvals, only: [:new, :create]
|
||||||
|
end
|
||||||
|
|
||||||
constraints AdminSignedInConstraint.new do
|
constraints AdminSignedInConstraint.new do
|
||||||
namespace :admin do
|
namespace :admin do
|
||||||
@@ -93,6 +96,9 @@ Rails.application.routes.draw do
|
|||||||
end
|
end
|
||||||
resources :projects, only: [] do
|
resources :projects, only: [] do
|
||||||
resources :broadcasts, except: [:edit] do
|
resources :broadcasts, except: [:edit] do
|
||||||
|
member do
|
||||||
|
delete :destroy_file
|
||||||
|
end
|
||||||
resource :zoom_meeting, only: [:show]
|
resource :zoom_meeting, only: [:show]
|
||||||
end
|
end
|
||||||
resources :directories, except: [:index] do
|
resources :directories, except: [:index] do
|
||||||
@@ -121,11 +127,13 @@ Rails.application.routes.draw do
|
|||||||
scope module: :public do
|
scope module: :public do
|
||||||
resources :accounts, only: [] do
|
resources :accounts, only: [] do
|
||||||
resources :projects, only: [] do
|
resources :projects, only: [] do
|
||||||
resources :contract_templates, only: [] do
|
resources :contract_templates, only: [:index] do
|
||||||
resources :talent_releases, only: [:new, :create]
|
resources :talent_releases, only: [:new, :create]
|
||||||
resources :appearance_releases, only: [:new, :create]
|
resources :appearance_releases, only: [:new, :create]
|
||||||
resources :acquired_media_releases, only: [:new, :create]
|
resources :acquired_media_releases, only: [:new, :create]
|
||||||
resources :location_releases, only: [:new, :create]
|
resources :location_releases, only: [:new, :create] do
|
||||||
|
resources :amendments, only: [:new, :create]
|
||||||
|
end
|
||||||
resources :material_releases, only: [:new, :create]
|
resources :material_releases, only: [:new, :create]
|
||||||
resources :medical_releases, only: [:new, :create]
|
resources :medical_releases, only: [:new, :create]
|
||||||
resources :misc_releases, only: [:new, :create]
|
resources :misc_releases, only: [:new, :create]
|
||||||
@@ -141,12 +149,7 @@ Rails.application.routes.draw do
|
|||||||
ALL_RELEASES = RELEASES + [:music_releases]
|
ALL_RELEASES = RELEASES + [:music_releases]
|
||||||
|
|
||||||
ALL_RELEASES.each do |release|
|
ALL_RELEASES.each do |release|
|
||||||
resources release, only: [], concerns: :taggable
|
resources release, only: [], concerns: [:taggable, :approvable]
|
||||||
end
|
|
||||||
|
|
||||||
# Customization for medical releases
|
|
||||||
resources :medical_releases, only: [], concerns: :taggable do
|
|
||||||
resource :approvals, only: [:new, :create]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :bulk_taggings, only: [:new, :create]
|
resources :bulk_taggings, only: [:new, :create]
|
||||||
@@ -155,6 +158,7 @@ Rails.application.routes.draw do
|
|||||||
scope 'v1' do
|
scope 'v1' do
|
||||||
get 'sync' => 'sync#index'
|
get 'sync' => 'sync#index'
|
||||||
post 'user_token' => 'user_token#create'
|
post 'user_token' => 'user_token#create'
|
||||||
|
post 'users' => 'users#create'
|
||||||
resource :profiles, only: [:show]
|
resource :profiles, only: [:show]
|
||||||
resources :projects, only: [:index] do
|
resources :projects, only: [:index] do
|
||||||
resources :broadcasts, only: [:index, :show, :update]
|
resources :broadcasts, only: [:index, :show, :update]
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class AddApprovalFieldsToMusicReleases < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :music_releases, :approved_by_user_name, :text
|
||||||
|
add_column :music_releases, :approved_by_user_email, :text
|
||||||
|
add_column :music_releases, :approved_at, :timestamp
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class AddApprovalFieldsToMiscReleases < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :misc_releases, :approved_by_user_name, :text
|
||||||
|
add_column :misc_releases, :approved_by_user_email, :text
|
||||||
|
add_column :misc_releases, :approved_at, :timestamp
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class AddApprovalFieldsToAcquiredMediaReleases < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :acquired_media_releases, :approved_by_user_name, :text
|
||||||
|
add_column :acquired_media_releases, :approved_by_user_email, :text
|
||||||
|
add_column :acquired_media_releases, :approved_at, :timestamp
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class AddApprovalFieldsToMaterialReleases < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :material_releases, :approved_by_user_name, :text
|
||||||
|
add_column :material_releases, :approved_by_user_email, :text
|
||||||
|
add_column :material_releases, :approved_at, :timestamp
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class AddApprovalFieldsToLocationReleases < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :location_releases, :approved_by_user_name, :text
|
||||||
|
add_column :location_releases, :approved_by_user_email, :text
|
||||||
|
add_column :location_releases, :approved_at, :timestamp
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class AddApprovalFieldsToTalentReleases < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :talent_releases, :approved_by_user_name, :text
|
||||||
|
add_column :talent_releases, :approved_by_user_email, :text
|
||||||
|
add_column :talent_releases, :approved_at, :timestamp
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class AddApprovalFieldsToAppearanceReleases < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :appearance_releases, :approved_by_user_name, :text
|
||||||
|
add_column :appearance_releases, :approved_by_user_email, :text
|
||||||
|
add_column :appearance_releases, :approved_at, :timestamp
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
class AddShootLocationTimeZoneToBroadcasts < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :broadcasts, :shoot_location_time_zone, :string, default: "UTC"
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
class AddFullLiveStreamPlaybackUrlToBroadcasts < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :broadcasts, :full_live_stream_playback_uid, :string
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
class AddAmendmentSignerDetailsToLocationReleases < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :location_releases, :amendment_signer_name, :string
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
class AddGuardiansFieldsToAcquiredMediaReleases < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :acquired_media_releases, :minor, :boolean, default: false
|
||||||
|
add_column :acquired_media_releases, :guardian_first_name, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_last_name, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_email, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_phone, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_address_street1, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_address_street2, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_address_city, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_address_state, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_address_zip, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_address_country, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_2_first_name, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_2_last_name, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_2_email, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_2_phone, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_2_address_street1, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_2_address_street2, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_2_address_city, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_2_address_state, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_2_address_zip, :string
|
||||||
|
add_column :acquired_media_releases, :guardian_2_address_country, :string
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
class AddGuardiansFieldsToMaterialReleases < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :material_releases, :minor, :boolean, default: false
|
||||||
|
add_column :material_releases, :guardian_first_name, :string
|
||||||
|
add_column :material_releases, :guardian_last_name, :string
|
||||||
|
add_column :material_releases, :guardian_email, :string
|
||||||
|
add_column :material_releases, :guardian_phone, :string
|
||||||
|
add_column :material_releases, :guardian_address_street1, :string
|
||||||
|
add_column :material_releases, :guardian_address_street2, :string
|
||||||
|
add_column :material_releases, :guardian_address_city, :string
|
||||||
|
add_column :material_releases, :guardian_address_state, :string
|
||||||
|
add_column :material_releases, :guardian_address_zip, :string
|
||||||
|
add_column :material_releases, :guardian_address_country, :string
|
||||||
|
add_column :material_releases, :guardian_2_first_name, :string
|
||||||
|
add_column :material_releases, :guardian_2_last_name, :string
|
||||||
|
add_column :material_releases, :guardian_2_email, :string
|
||||||
|
add_column :material_releases, :guardian_2_phone, :string
|
||||||
|
add_column :material_releases, :guardian_2_address_street1, :string
|
||||||
|
add_column :material_releases, :guardian_2_address_street2, :string
|
||||||
|
add_column :material_releases, :guardian_2_address_city, :string
|
||||||
|
add_column :material_releases, :guardian_2_address_state, :string
|
||||||
|
add_column :material_releases, :guardian_2_address_zip, :string
|
||||||
|
add_column :material_releases, :guardian_2_address_country, :string
|
||||||
|
end
|
||||||
|
end
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user