Compare commits
13 Commits
add-amendm
...
add-csv-to
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3ffa883462 | ||
|
|
e0cf5ba875 | ||
|
|
ebc13242de | ||
|
|
8538613a83 | ||
|
|
fcb6e093c3 | ||
|
|
33bcb6600a | ||
|
|
d585d3cad3 | ||
|
|
578403bb5c | ||
|
|
2020761649 | ||
|
|
bb8e5c9b73 | ||
|
|
5ed930108d | ||
|
|
a1abd70ae9 | ||
|
|
3918484a84 |
@@ -21,12 +21,11 @@ $(document).on "turbolinks:load", ->
|
||||
|
||||
refreshBroadcastVideo: (data) ->
|
||||
$("#broadcast_updates").html data.status_content
|
||||
stream_selected = $("#broadcast_video").attr('video-type') == 'stream';
|
||||
if data.streamer_status == 'recording' && data.status == 'active' && stream_selected
|
||||
if data.streamer_status == 'recording' && data.status == 'active'
|
||||
$("#broadcast_video").html data.video_content
|
||||
new (Clappr.Player)(
|
||||
parentId: '#broadcast_video'
|
||||
source: data.full_live_stream_playback_url
|
||||
source: data.playback_url
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
mute: true,
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
$(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;
|
||||
}
|
||||
|
||||
$("#broadcast_video").attr('video-type', 'recording');
|
||||
console.warn('Play prev : ', playback_url);
|
||||
|
||||
var playback_url = $(this).attr("data-playback-url")
|
||||
$("#broadcast_video").empty();
|
||||
@@ -23,6 +23,4 @@ $(document).on("click", "[data-behavior=play_recording]", function() {
|
||||
$(this).siblings().children("i").remove();
|
||||
$(this).addClass('active');
|
||||
$(this).prepend('<i class="fa fa-check"> </i>');
|
||||
});
|
||||
|
||||
$(document).on("click", "[data-behavior=play_stream]", function() { $("#broadcast_video").attr('video-type', 'stream'); });
|
||||
});
|
||||
@@ -16,7 +16,6 @@ class BroadcastsChannel < ApplicationCable::Channel
|
||||
event: :broadcast_stream_update,
|
||||
status: broadcast.status,
|
||||
playback_url: broadcast.stream_playback_url,
|
||||
full_live_stream_playback_url: broadcast.full_live_stream_playback_url,
|
||||
video_content: video_content,
|
||||
status_content: status_content,
|
||||
streamer_status: broadcast.streamer_status
|
||||
|
||||
@@ -1,28 +1,21 @@
|
||||
class ApprovalsController < ApplicationController
|
||||
before_action :set_releasable
|
||||
include MedicalReleaseContext
|
||||
|
||||
before_action :set_medical_release
|
||||
before_action :set_project
|
||||
|
||||
layout "project"
|
||||
|
||||
def create
|
||||
@releasable.approve_by(current_user)
|
||||
|
||||
if @releasable.save
|
||||
redirect_to [@project, "#{@releasable_param.name.pluralize}"], notice: t('.release_approved', release_type: @releasable.model_name.human)
|
||||
@medical_release.approve_by(current_user)
|
||||
if @medical_release.save
|
||||
redirect_to [@project, :medical_releases], notice: t('.release_approved')
|
||||
end
|
||||
end
|
||||
|
||||
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
|
||||
@project = @releasable.project
|
||||
@project = @medical_release.project
|
||||
end
|
||||
end
|
||||
|
||||
@@ -33,11 +33,6 @@ class BroadcastsController < ApplicationController
|
||||
end
|
||||
|
||||
def update
|
||||
unless params.has_key?(:broadcast)
|
||||
@broadcast.regenerate_token
|
||||
redirect_to([@project, @broadcast], notice: t('.reset_notice')) and return
|
||||
end
|
||||
|
||||
@broadcast.update(broadcast_params)
|
||||
@files = @broadcast.files.order("created_at DESC").paginate(page: 1)
|
||||
|
||||
@@ -60,7 +55,7 @@ class BroadcastsController < ApplicationController
|
||||
end
|
||||
|
||||
def broadcast_params
|
||||
params.require(:broadcast).permit(:name, :shoot_location_time_zone, files: [])
|
||||
params.require(:broadcast).permit(:name, files: [])
|
||||
end
|
||||
|
||||
def set_project
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class ContractTemplates::DuplicatesController < ApplicationController
|
||||
before_action :set_contract_template
|
||||
|
||||
def create
|
||||
authorize(ContractTemplate)
|
||||
new_contract_template = @contract_template.dup
|
||||
new_contract_template.name = I18n.t('contract_templates.duplicate.name_prefix', template_name: @contract_template.name)
|
||||
|
||||
# Duplicate rich text fields
|
||||
|
||||
new_contract_template.body = @contract_template.body
|
||||
new_contract_template.guardian_clause = @contract_template.guardian_clause
|
||||
new_contract_template.signature_legal_text = @contract_template.signature_legal_text
|
||||
|
||||
if new_contract_template.save
|
||||
redirect_to [:edit, new_contract_template]
|
||||
else
|
||||
redirect_to [@contract_template.project, :contract_templates], alert: t('.error')
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def contract_templates
|
||||
policy_scope(ContractTemplate)
|
||||
end
|
||||
|
||||
def set_contract_template
|
||||
@contract_template = contract_templates.find(params[:contract_template_id])
|
||||
end
|
||||
end
|
||||
@@ -16,12 +16,7 @@ class ContractTemplates::QrCodesController < ApplicationController
|
||||
end
|
||||
|
||||
def qr_code
|
||||
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
|
||||
authorize QrCode.build_from_contract_template(@contract_template)
|
||||
end
|
||||
|
||||
def download_attributes
|
||||
|
||||
@@ -5,9 +5,8 @@ class ContractTemplatesController < ApplicationController
|
||||
|
||||
layout 'project'
|
||||
|
||||
before_action :set_project, except: [:destroy, :edit, :update]
|
||||
before_action :set_contract_template, only: [:destroy, :edit, :update]
|
||||
before_action :set_project_from_contract_template, only: [:edit, :update]
|
||||
before_action :set_project, except: [:destroy]
|
||||
before_action :set_contract_template, only: [:destroy]
|
||||
before_action :show_splash_screen, only: :index
|
||||
|
||||
def index
|
||||
@@ -33,20 +32,6 @@ class ContractTemplatesController < ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
def edit
|
||||
@release_type = @contract_template.release_type
|
||||
end
|
||||
|
||||
def update
|
||||
@contract_template.attributes = contract_template_params
|
||||
|
||||
if @contract_template.save
|
||||
redirect_to [@project, :contract_templates], notice: t('.notice')
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@contract_template.archive
|
||||
redirect_to [@contract_template.project, :contract_templates], alert: t('.archived_notice')
|
||||
@@ -54,10 +39,6 @@ class ContractTemplatesController < ApplicationController
|
||||
|
||||
private
|
||||
|
||||
def set_project_from_contract_template
|
||||
@project = @contract_template.project
|
||||
end
|
||||
|
||||
def show_splash_screen
|
||||
render :splash if contract_templates.non_archived.count.zero?
|
||||
end
|
||||
@@ -82,10 +63,10 @@ class ContractTemplatesController < ApplicationController
|
||||
params
|
||||
.require(:contract_template)
|
||||
.permit(:name, :release_type, :body, :guardian_clause,
|
||||
:signature_legal_text, :fee, :amendment_clause,
|
||||
:signature_legal_text, :fee,
|
||||
:applicable_medium_id, :applicable_medium_text,
|
||||
:territory_id, :territory_text,
|
||||
:term_id, :term_text, :accessibility,
|
||||
:term_id, :term_text,
|
||||
:restriction_id, :restriction_text,
|
||||
:question_1_text, :question_2_text,
|
||||
:question_3_text, :question_4_text,
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
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
|
||||
@@ -1,18 +0,0 @@
|
||||
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
|
||||
@@ -14,10 +14,6 @@ class StreamNotificationsController < ApplicationController
|
||||
when "video.live_stream.recording"
|
||||
@broadcast.streamer_recording!
|
||||
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"
|
||||
@broadcast.active!
|
||||
notify_users
|
||||
@@ -32,9 +28,8 @@ class StreamNotificationsController < ApplicationController
|
||||
asset_uid = notification.dig(:object, :id)
|
||||
playback_uid = notification.dig(:data, :playback_ids, 0, :id)
|
||||
file_name = notification.dig(:data, :static_renditions, :files, -1, :name)
|
||||
duration = notification.dig(:data, :duration)
|
||||
|
||||
recording = @broadcast.broadcast_recordings.create!(asset_uid: asset_uid, asset_playback_uid: playback_uid, file_name: file_name, duration: duration)
|
||||
recording = @broadcast.broadcast_recordings.create!(asset_uid: asset_uid, asset_playback_uid: playback_uid, file_name: file_name)
|
||||
recordings = @broadcast.broadcast_recordings.order_by_recent.paginate(page: params[:page])
|
||||
|
||||
link = helpers.link_to(recording.broadcast_name.titleize, recording.download_url, target: "_blank")
|
||||
@@ -63,8 +58,7 @@ class StreamNotificationsController < ApplicationController
|
||||
end
|
||||
|
||||
def set_broadcast
|
||||
case notification_type
|
||||
when "video.asset.static_renditions.ready", "video.asset.ready"
|
||||
if notification_type == "video.asset.static_renditions.ready"
|
||||
live_stream_id = notification.dig(:stream_notification, :data, :live_stream_id)
|
||||
@broadcast = Broadcast.find_by(stream_uid: live_stream_id)
|
||||
else
|
||||
|
||||
@@ -6,11 +6,11 @@ module TooltipHelper
|
||||
end
|
||||
end
|
||||
|
||||
def get_approval_data_for_releasable(release)
|
||||
if release.approved_by_user_name.present?
|
||||
"#{release.approved_by_user_name} [#{release.approved_by_user_email}]"
|
||||
def get_approval_data_for_medical_release(medical_release)
|
||||
if medical_release.approved_by_user_name.present?
|
||||
"#{medical_release.approved_by_user_name} [#{medical_release.approved_by_user_email}]"
|
||||
else
|
||||
release.approved_by_user_email
|
||||
medical_release.approved_by_user_email
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -10,7 +10,6 @@ class AcquiredMediaRelease < ApplicationRecord
|
||||
include Syncable
|
||||
include PersonName
|
||||
include CsvExportable
|
||||
include Approvable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
|
||||
@@ -16,7 +16,6 @@ class AppearanceRelease < ApplicationRecord
|
||||
include GuardianName
|
||||
include SecondGuardianName
|
||||
include CsvExportable
|
||||
include Approvable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
|
||||
@@ -30,10 +30,6 @@ class Broadcast < ApplicationRecord
|
||||
"https://stream.mux.com/#{stream_playback_uid}.m3u8"
|
||||
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
|
||||
ENV['MUX_BROADCAST_SERVER_URL']
|
||||
end
|
||||
|
||||
@@ -14,6 +14,6 @@ class BroadcastRecording < ApplicationRecord
|
||||
end
|
||||
|
||||
def download_file_name
|
||||
"#{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
|
||||
"#{broadcast_name}_Date_#{created_at.strftime("%Y-%m-%d")}_Time_#{created_at.strftime("%T")}".parameterize
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
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
|
||||
@@ -1,17 +0,0 @@
|
||||
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
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
COMMON_HEADERS = %i[approved? notes tags signed_at].freeze
|
||||
COMMON_HEADERS = %i[notes tags signed_at].freeze
|
||||
COMMON_VALUES = %w[clean_notes clean_tags signed_on].freeze
|
||||
|
||||
included do
|
||||
|
||||
@@ -22,7 +22,6 @@ class ContractTemplate < ApplicationRecord
|
||||
has_rich_text :body
|
||||
has_rich_text :guardian_clause
|
||||
has_rich_text :signature_legal_text
|
||||
has_rich_text :amendment_clause
|
||||
|
||||
validates :name, presence: true
|
||||
validates :release_type, presence: true
|
||||
@@ -44,8 +43,6 @@ class ContractTemplate < ApplicationRecord
|
||||
scope :non_archived, -> { where(archived_at: nil) }
|
||||
scope :order_by_name, -> { order(:name) }
|
||||
|
||||
enum accessibility: [:public_template, :private_template]
|
||||
|
||||
def fee?
|
||||
!fee.zero?
|
||||
end
|
||||
@@ -69,14 +66,4 @@ class ContractTemplate < ApplicationRecord
|
||||
def has_questionnaire?
|
||||
(1..NUMBER_OF_CUSTOM_FIELDS).any? { |n| public_send("question_#{n}_text").presence }
|
||||
end
|
||||
|
||||
def editable?
|
||||
releases.size.zero?
|
||||
end
|
||||
|
||||
def attributes
|
||||
result = super()
|
||||
result[:signature_legal_text] = signature_legal_text.as_json
|
||||
result
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,8 +11,6 @@ class LocationRelease < ApplicationRecord
|
||||
include Taggable
|
||||
include PersonName
|
||||
include CsvExportable
|
||||
include Approvable
|
||||
include Amendmenable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
|
||||
@@ -11,7 +11,6 @@ class MaterialRelease < ApplicationRecord
|
||||
include Taggable
|
||||
include PersonName
|
||||
include CsvExportable
|
||||
include Approvable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
|
||||
@@ -12,11 +12,10 @@ class MedicalRelease < ApplicationRecord
|
||||
include GuardianName
|
||||
include SecondGuardianName
|
||||
include CsvExportable
|
||||
include Approvable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[name contact_info]
|
||||
%i[approved? name contact_info]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -108,6 +107,18 @@ class MedicalRelease < ApplicationRecord
|
||||
"#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime("%Y.%m.%d")}_#{release_number}_#{filename_suffix.parameterize}"
|
||||
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
|
||||
|
||||
def valid_answers
|
||||
|
||||
@@ -10,7 +10,6 @@ class MiscRelease < ApplicationRecord
|
||||
include GuardianName
|
||||
include GuardianPhotoable
|
||||
include CsvExportable
|
||||
include Approvable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
|
||||
@@ -8,7 +8,6 @@ class MusicRelease < ApplicationRecord
|
||||
include Taggable
|
||||
include PersonName
|
||||
include CsvExportable
|
||||
include Approvable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
|
||||
@@ -13,18 +13,6 @@ class QrCode
|
||||
new(url, "#{filename}.png")
|
||||
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")
|
||||
@url = url
|
||||
@filename = filename
|
||||
|
||||
@@ -15,7 +15,6 @@ class TalentRelease < ApplicationRecord
|
||||
include GuardianName
|
||||
include SecondGuardianName
|
||||
include CsvExportable
|
||||
include Approvable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
@@ -111,7 +110,7 @@ class TalentRelease < ApplicationRecord
|
||||
end
|
||||
|
||||
def uses_edl?
|
||||
true
|
||||
false
|
||||
end
|
||||
|
||||
def second_guardian_present?
|
||||
|
||||
@@ -6,5 +6,5 @@ class TaskRequest < ApplicationRecord
|
||||
|
||||
scope :order_by_recent, -> { order(created_at: :desc) }
|
||||
|
||||
validates :time_allowed, numericality: { only_integer: true, greater_than_or_equal_to: 2 }, allow_blank: true
|
||||
validates :time_allowed, numericality: { only_integer: true, greater_than_or_equal_to: 2 }
|
||||
end
|
||||
|
||||
@@ -30,12 +30,4 @@ class AcquiredMediaReleasePolicy < ApplicationPolicy
|
||||
def download_multiple?
|
||||
true
|
||||
end
|
||||
|
||||
def review?
|
||||
user.account_manager?
|
||||
end
|
||||
|
||||
def approve?
|
||||
review?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -26,12 +26,4 @@ class AppearanceReleasePolicy < ReleasePolicy
|
||||
def download_multiple?
|
||||
true
|
||||
end
|
||||
|
||||
def review?
|
||||
user.account_manager?
|
||||
end
|
||||
|
||||
def approve?
|
||||
review?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,10 +3,8 @@ class ContractTemplatePolicy < ApplicationPolicy
|
||||
def resolve
|
||||
if user.account_manager?
|
||||
scope.left_outer_joins(:project).where(projects: {account: user.account})
|
||||
elsif user.manager?
|
||||
scope.left_outer_joins(project: :project_memberships).where(project_memberships: { user_id: user.id })
|
||||
else
|
||||
scope.public_template.left_outer_joins(project: :project_memberships).where(project_memberships: { user_id: user.id })
|
||||
scope.left_outer_joins(project: :project_memberships).where(project_memberships: { user_id: user.id })
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -23,18 +21,6 @@ class ContractTemplatePolicy < ApplicationPolicy
|
||||
create?
|
||||
end
|
||||
|
||||
def edit?
|
||||
record.editable? && create?
|
||||
end
|
||||
|
||||
def update?
|
||||
edit?
|
||||
end
|
||||
|
||||
def duplicate?
|
||||
create?
|
||||
end
|
||||
|
||||
def import?
|
||||
if user.account_manager?
|
||||
record.project.account = user.account
|
||||
|
||||
@@ -34,16 +34,4 @@ class LocationReleasePolicy < ReleasePolicy
|
||||
def download_multiple?
|
||||
true
|
||||
end
|
||||
|
||||
def review?
|
||||
user.account_manager?
|
||||
end
|
||||
|
||||
def sign_amendment?
|
||||
user.manager? || user.account_manager?
|
||||
end
|
||||
|
||||
def approve?
|
||||
review?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -34,12 +34,4 @@ class MaterialReleasePolicy < ReleasePolicy
|
||||
def download_multiple?
|
||||
true
|
||||
end
|
||||
|
||||
def review?
|
||||
user.account_manager?
|
||||
end
|
||||
|
||||
def approve?
|
||||
review?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -38,12 +38,4 @@ class MiscReleasePolicy < ReleasePolicy
|
||||
def download_multiple?
|
||||
download_single?
|
||||
end
|
||||
|
||||
def review?
|
||||
user.account_manager?
|
||||
end
|
||||
|
||||
def approve?
|
||||
review?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -22,12 +22,4 @@ class MusicReleasePolicy < ReleasePolicy
|
||||
def download_multiple?
|
||||
true
|
||||
end
|
||||
|
||||
def review?
|
||||
user.account_manager?
|
||||
end
|
||||
|
||||
def approve?
|
||||
review?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -34,12 +34,4 @@ class TalentReleasePolicy < ReleasePolicy
|
||||
def download_multiple?
|
||||
true
|
||||
end
|
||||
|
||||
def review?
|
||||
user.account_manager?
|
||||
end
|
||||
|
||||
def approve?
|
||||
review?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
<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 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>
|
||||
<%= acquired_media_release.name %>
|
||||
</td>
|
||||
@@ -43,9 +35,6 @@
|
||||
<% 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" %>
|
||||
<% 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? %>
|
||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, acquired_media_release], class: "dropdown-item" %>
|
||||
<% end %>
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<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><%= t(".table_headers.file_infos_count") %></th>
|
||||
<th><%= t(".table_headers.notes") %></th>
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
<tr id="<%= dom_id(appearance_release) %>">
|
||||
<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>
|
||||
<% if appearance_release.photo.attached? %>
|
||||
<%= image_tag medium_variant(appearance_release.photo) %>
|
||||
@@ -47,9 +39,6 @@
|
||||
<% 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" %>
|
||||
<% 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? %>
|
||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, appearance_release], class: "dropdown-item" %>
|
||||
<% end %>
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th data-behavior="all-selectable"><%= check_box_tag "appearance_release_ids[]", false, false %></th>
|
||||
<th><%= t '.table_headers.approved'%></th>
|
||||
<th></th>
|
||||
<th><%= AppearanceRelease.human_attribute_name(:person_name) %></th>
|
||||
<th><%= AppearanceRelease.human_attribute_name(:contact_info) %></th>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<div class="card shadow-sm">
|
||||
<%= card_header text: t(".heading", release_type: @releasable_param.name.titleize), close_action_path: [@project, "#{@releasable_param.name.pluralize}"] %>
|
||||
<%= card_header text: t(".heading"), close_action_path: [@project, :medical_releases] %>
|
||||
<div class="card-body">
|
||||
<embed class="embeded-contract-preview" type="application/pdf" src="<%= url_for [@releasable, :contracts, format: "pdf"] %>" width="90%" height="1200" />
|
||||
<embed class="embeded-contract-preview" type="application/pdf" src="<%= url_for [@medical_release, :contracts, format: "pdf"] %>" width="90%" height="1200" />
|
||||
|
||||
<%= bootstrap_form_with model: @releasable, method: :post, url: public_send("#{@releasable_param.name}_approvals_path", @releasable), local: true do |form| %>
|
||||
<%= bootstrap_form_with model: @medical_release, method: :post, url: medical_release_approvals_path(@medical_release), local: true do |form| %>
|
||||
<div class="row align-items-center text-center mt-4">
|
||||
<%= link_to t("shared.cancel"), [@releasable.project, "#{@releasable_param.name.pluralize}"], class: "col-3 text-reset" %>
|
||||
<%= link_to t("shared.cancel"), [@medical_release.project, :medical_releases], class: "col-3 text-reset" %>
|
||||
<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") } %>
|
||||
</div>
|
||||
|
||||
@@ -3,9 +3,6 @@
|
||||
<td>
|
||||
<%= broadcast.name %>
|
||||
</td>
|
||||
<td>
|
||||
<%= broadcast.shoot_location_time_zone %>
|
||||
</td>
|
||||
<td>
|
||||
<%= broadcast.status.titleize %>
|
||||
</td>
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
<%= bootstrap_form_with model: model, local: true do |form| %>
|
||||
<%= 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">
|
||||
<%= link_to t("shared.cancel"), [project, :broadcasts], class: "col-3 text-reset" %>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<tr>
|
||||
<th></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_created_at") %></th>
|
||||
<th></th>
|
||||
@@ -33,7 +32,7 @@
|
||||
<%= render @broadcasts %>
|
||||
<% else %>
|
||||
<tr>
|
||||
<td colspan="6" class="py-4 text-center text-muted"><%= t(".empty") %></td>
|
||||
<td colspan="5" class="py-4 text-center text-muted"><%= t(".empty") %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</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" } %>
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
|
||||
<h5 class="dropdown-header">Live Streams</h5>
|
||||
<%= link_to fa_icon("check", text: @broadcast.name.titleize), "#", data: { behavior: "play_stream"}, class: "dropdown-item active" %>
|
||||
<%= link_to fa_icon("check", text: @broadcast.name.titleize), "#", class: "dropdown-item active" %>
|
||||
<% @multi_view_broadcasts.each do |broadcast| %>
|
||||
<% if 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) %>
|
||||
<%= link_to broadcast.name.titleize, broadcast.url, class: class_string("dropdown-item", "active" => @broadcast.id == broadcast.id) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<h5 class="dropdown-header">Previous Sessions</h5>
|
||||
@@ -102,7 +102,6 @@
|
||||
<i class="fa fa-clipboard"></i>
|
||||
Copy URL
|
||||
</button>
|
||||
<%= link_to t('.actions.reset_url'), [@project, @broadcast], method: :patch, class: "btn btn-danger" %>
|
||||
</div>
|
||||
<% else %>
|
||||
<input type="text" class="form-control" value="<%= broadcast_url(@broadcast.token) %>" readonly>
|
||||
@@ -111,7 +110,6 @@
|
||||
<i class="fa fa-clipboard"></i>
|
||||
Copy URL
|
||||
</button>
|
||||
<%= link_to t('.actions.reset_url'), [@project, @broadcast], method: :patch, class: "btn btn-danger" %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<tr>
|
||||
<td data-behavior="select_contract_template"><%= check_box_tag "contract_template_ids[]", contract_template.id, false %></td>
|
||||
<td>
|
||||
<%= contract_template.name %>
|
||||
</td>
|
||||
@@ -20,12 +19,6 @@
|
||||
<div class="btn-group">
|
||||
<%= button_tag t(".actions.manage"), class: "btn btn-light btn-sm dropdown-toggle border", data: { toggle: "dropdown", boundary: "window" }, aria: { haspopup: true, expanded: false } %>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<% if policy(contract_template).edit? %>
|
||||
<%= link_to fa_icon("pencil fw", text: t(".actions.edit")), [:edit, contract_template], class: "dropdown-item" %>
|
||||
<% end %>
|
||||
<% if policy(ContractTemplate).duplicate? %>
|
||||
<%= link_to fa_icon("clone fw", text: t(".actions.duplicate")), contract_template_duplicates_path(contract_template), method: :post, class: "dropdown-item" %>
|
||||
<% end %>
|
||||
<% if policy(QrCode).show? %>
|
||||
<%= link_to fa_icon("qrcode", text: t(".actions.qr_code")), [contract_template, :qr_codes], class: "dropdown-item", target: :_blank %>
|
||||
<% end %>
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
<%= bootstrap_form_with model: model, local: true do |form| %>
|
||||
<%= bootstrap_form_with model: [project, contract_template], local: true do |form| %>
|
||||
<%= field_set_tag content_tag(:span, t(".release_info.heading"), class: "h6 text-muted text-uppercase") do %>
|
||||
<div class="form-row">
|
||||
<%= 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), "#amendment_clause": %w(location) } }, class: "form-control custom-select" %>
|
||||
</div>
|
||||
<div class="form-row mb-3">
|
||||
<%= form.radio_button :accessibility, :public_template, label: "Public", wrapper_class: "mr-3" %>
|
||||
<%= form.radio_button :accessibility, :private_template, label: "Private" %>
|
||||
<%= 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" %>
|
||||
</div>
|
||||
<div class="form-row" id="fee_field">
|
||||
<%= form.number_field :fee, min:"0", max:"99999999", step: "0.01", prepend: "$", wrapper_class: "col-sm-6" %>
|
||||
@@ -29,11 +25,6 @@
|
||||
<%= form.rich_text_area :guardian_clause %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div id="amendment_clause">
|
||||
<%= form.form_group do %>
|
||||
<%= form.rich_text_area :amendment_clause %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div id="signature_legal_text">
|
||||
<%= form.form_group do %>
|
||||
<%= form.rich_text_area :signature_legal_text %>
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
<div class="card shadow-sm">
|
||||
<%= card_header text: t(".heading"), close_action_path: [@project, :contract_templates] %>
|
||||
<div class="card-body">
|
||||
<%= render "form", model: @contract_template, project: @project, contract_template: @contract_template %>
|
||||
</div>
|
||||
</div>
|
||||
@@ -5,14 +5,12 @@
|
||||
<%= 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" %>
|
||||
<% 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>
|
||||
|
||||
<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></th>
|
||||
<th><%= ContractTemplate.human_attribute_name(:name) %></th>
|
||||
<th><%= ContractTemplate.human_attribute_name(:fee) %></th>
|
||||
<th><%= t(".table_headers.release_type") %></th>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="card shadow-sm">
|
||||
<%= card_header text: t(".heading"), close_action_path: [@project, :contract_templates] %>
|
||||
<div class="card-body">
|
||||
<%= render "form", model: [@project, @contract_template], project: @project, contract_template: @contract_template %>
|
||||
<%= render "form", project: @project, contract_template: @contract_template %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
<% 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>
|
||||
<%= 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.issued_to'), releasable.name %>
|
||||
<%= description_list_pair t('.description_labels.employee_issued_to'), releasable.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 %>
|
||||
</dl>
|
||||
@@ -26,13 +26,7 @@
|
||||
<%= render "contracts/signature_page", releasable: releasable, contract_template: contract_template, preview: preview %>
|
||||
</div>
|
||||
|
||||
<% 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? %>
|
||||
<% if releasable.class == MedicalRelease && releasable.approved? %>
|
||||
<div class="page">
|
||||
<%= render "contracts/for_office_use_only", releasable: releasable, preview: preview %>
|
||||
</div>
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
<tr id="<%= dom_id(location_release) %>">
|
||||
<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>
|
||||
<% if location_release.photo.attached? %>
|
||||
<%= image_tag medium_variant(location_release.photo), class: "img-fluid" %>
|
||||
@@ -30,17 +22,6 @@
|
||||
<td>
|
||||
<%= location_release.signed_on %>
|
||||
</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">
|
||||
<div class="btn-group">
|
||||
@@ -55,15 +36,9 @@
|
||||
<% if policy(location_release).edit_photos? %>
|
||||
<%= link_to fa_icon("picture-o fw", text: "Photos"), [:edit, location_release, :photos], class: "dropdown-item" %>
|
||||
<% 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?) %>
|
||||
<%= link_to fa_icon("download fw", text: "Download"), [location_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||
<% 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? %>
|
||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, location_release], class: "dropdown-item" %>
|
||||
<% end %>
|
||||
|
||||
@@ -26,14 +26,13 @@
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th data-behavior="all-selectable"><%= check_box_tag "location_release_ids[]", false, false %></th>
|
||||
<th><%= t '.table_headers.approved'%></th>
|
||||
<th></th>
|
||||
<th><%= LocationRelease.human_attribute_name(:name) %></th>
|
||||
<th><%= t(".table_headers.address") %>
|
||||
<th><%= t(".table_headers.notes") %></th>
|
||||
<th><%= t(".table_headers.tags") %></th>
|
||||
<th><%= t(".table_headers.signed_at") %></th>
|
||||
<th></th>
|
||||
<th><%= t(".table_headers.signed_at") %></th>
|
||||
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
<tr id="<%= dom_id(material_release) %>">
|
||||
<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>
|
||||
<% if material_release.photo.attached? %>
|
||||
<%= image_tag medium_variant(material_release.photo), class: "img-fluid" %>
|
||||
@@ -44,9 +36,6 @@
|
||||
<% 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" %>
|
||||
<% 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? %>
|
||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, material_release], class: "dropdown-item" %>
|
||||
<% end %>
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th data-behavior="all-selectable"><%= check_box_tag "material_release_ids[]", false, false %></th>
|
||||
<th><%= t '.table_headers.approved'%></th>
|
||||
<th></th>
|
||||
<th><%= MaterialRelease.human_attribute_name(:name) %></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 class="text-center">
|
||||
<% if medical_release.approved? %>
|
||||
<% tooltip_user_data = get_approval_data_for_releasable(medical_release) %>
|
||||
<% tooltip_user_data = get_approval_data_for_medical_release(medical_release) %>
|
||||
<i class="fa fa-check-circle fa-2x text-success"
|
||||
data-toggle="tooltip"
|
||||
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: medical_release.approved_at %>"></i>
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
<tr id="<%= dom_id(misc_release) %>">
|
||||
<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>
|
||||
<% if misc_release.photo.attached? %>
|
||||
<%= image_tag medium_variant(misc_release.photo), class: "img-fluid" %>
|
||||
@@ -44,9 +36,6 @@
|
||||
<% 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 %>
|
||||
<% 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?) %>
|
||||
<%= link_to fa_icon("download fw", text: "Download"), [misc_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||
<% end %>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th data-behavior="all-selectable"><%= check_box_tag "misc_release_ids[]", false, false %></th>
|
||||
<th><%= t '.table_headers.approved'%></th>
|
||||
<th></th>
|
||||
<th><%= MiscRelease.human_attribute_name(:person_name) %></th>
|
||||
<th><%= MiscRelease.human_attribute_name(:contact_info) %></th>
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
<tr id="<%= dom_id(music_release) %>">
|
||||
<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>
|
||||
<%= music_release.name %>
|
||||
</td>
|
||||
@@ -44,9 +36,6 @@
|
||||
<% 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" %>
|
||||
<% 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? %>
|
||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, music_release], class: "dropdown-item" %>
|
||||
<% end %>
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<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><%= t(".table_headers.file_infos_count") %></th>
|
||||
<th><%= t(".table_headers.composers_count") %></th>
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
<% 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>
|
||||
@@ -1,30 +0,0 @@
|
||||
<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>
|
||||
@@ -1,8 +0,0 @@
|
||||
<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>
|
||||
@@ -1,27 +0,0 @@
|
||||
<% 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>
|
||||
@@ -1,4 +1,3 @@
|
||||
<% 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>
|
||||
|
||||
<% if local_assigns[:instruction] %>
|
||||
@@ -7,7 +6,7 @@
|
||||
</small>
|
||||
<% end %>
|
||||
|
||||
<%= form.hidden_field signature_field, data: { ujs_target: "signature-input" } %>
|
||||
<%= form.hidden_field :signature_base64, data: { ujs_target: "signature-input" } %>
|
||||
<div class="text-right">
|
||||
<%= button_tag class: "btn btn-sm btn-danger", data: { behavior: "clear-digital-signature" } do %>
|
||||
<%= fa_icon "refresh" %> <%= t "shared.clear" %>
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
<tr id="<%= dom_id(talent_release) %>">
|
||||
<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>
|
||||
<% if talent_release.photo.attached? %>
|
||||
<%= image_tag medium_variant(talent_release.photo), class: "img-fluid" %>
|
||||
@@ -50,9 +42,6 @@
|
||||
<% 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" %>
|
||||
<% 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? %>
|
||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, talent_release], class: "dropdown-item" %>
|
||||
<% end %>
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th data-behavior="all-selectable"><%= check_box_tag "talent_release_ids[]", false, false %></th>
|
||||
<th><%= t '.table_headers.approved'%></th>
|
||||
<th></th>
|
||||
<th><%= TalentRelease.human_attribute_name(:person_name) %></th>
|
||||
<th><%= TalentRelease.human_attribute_name(:person_phone) %></th>
|
||||
|
||||
@@ -1,19 +1,9 @@
|
||||
<%= errors_summary_for task_request %>
|
||||
|
||||
<%= bootstrap_form_with model: model, url: [@project, @task_request, show_chat: true], local: true do |form| %>
|
||||
|
||||
<div class="d-flex">
|
||||
<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 class="alert alert-info text-center text-md-left">
|
||||
<%= fa_icon "info-circle" %>
|
||||
<strong><%= t '.info_message' %></strong>
|
||||
</div>
|
||||
|
||||
<%= form.text_area :description, label: t('.labels.description') %>
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
unless Rails.env.test?
|
||||
allowed_hosts = ENV['ALLOWED_HOSTS'].to_s.split(",")
|
||||
|
||||
Rails.application.config.hosts << AppHost.new.domain
|
||||
Rails.application.config.hosts += allowed_hosts
|
||||
end
|
||||
|
||||
@@ -29,9 +29,6 @@ en:
|
||||
acquired_media_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
review: Review
|
||||
messages:
|
||||
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||
no_media: No Media
|
||||
create:
|
||||
notice: The acquired media release has been created
|
||||
@@ -52,7 +49,6 @@ en:
|
||||
search: Search
|
||||
empty: Acquired Media Releases will appear here
|
||||
table_headers:
|
||||
approved: Approved
|
||||
file_infos_count: No. Files
|
||||
name: Name
|
||||
notes: Notes
|
||||
@@ -125,9 +121,6 @@ en:
|
||||
appearance_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
review: Review
|
||||
messages:
|
||||
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||
no_photos: Needs Photo
|
||||
create:
|
||||
failed_import: Failed to create appearance release for files listed below
|
||||
@@ -159,7 +152,6 @@ en:
|
||||
empty: Appearance Releases will appear here
|
||||
imported_appearance_release_missing_attachment: Person photo or contract missing for imported appearance release
|
||||
table_headers:
|
||||
approved: Approved
|
||||
contact_info: Contact info
|
||||
name: Name
|
||||
notes: Notes
|
||||
@@ -184,11 +176,11 @@ en:
|
||||
team_member: Team Member
|
||||
approvals:
|
||||
create:
|
||||
release_approved: "%{release_type} has been approved"
|
||||
release_approved: Medical release has been approved
|
||||
new:
|
||||
actions:
|
||||
approve: Approve
|
||||
heading: "Review %{release_type}"
|
||||
heading: Review Medical Release
|
||||
blank_contracts:
|
||||
new:
|
||||
number_of_copies_label: Number of copies
|
||||
@@ -222,13 +214,9 @@ en:
|
||||
broadcast_created_at: Created Date
|
||||
broadcast_name: Name
|
||||
broadcast_status: Status
|
||||
broadcast_time_zone: Time Zone of Shoot Location
|
||||
new:
|
||||
heading:
|
||||
Create Live Stream
|
||||
show:
|
||||
actions:
|
||||
reset_url: Reset URL
|
||||
splash:
|
||||
actions:
|
||||
book_demo: Schedule a Demo
|
||||
@@ -247,8 +235,6 @@ en:
|
||||
share_stream: Share live stream link with clients
|
||||
stream_from_mobile_app: Stream from ME Suite Mobile app, or via a professional camera
|
||||
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:
|
||||
new_bulk_tag_modal:
|
||||
submit: Add
|
||||
@@ -264,8 +250,6 @@ en:
|
||||
contract_template:
|
||||
actions:
|
||||
copy_url: Copy Release URL
|
||||
duplicate: Duplicate
|
||||
edit: Edit
|
||||
manage: Manage
|
||||
qr_code: QR Code
|
||||
sign: Sign
|
||||
@@ -275,13 +259,6 @@ en:
|
||||
destroy:
|
||||
archived_failure: Failed to archive the release template
|
||||
archived_notice: The release template has been archived
|
||||
duplicate:
|
||||
name_prefix: Copy of %{template_name}
|
||||
duplicates:
|
||||
create:
|
||||
error: Failed to duplicate release template
|
||||
edit:
|
||||
heading: Edit Contract Template
|
||||
form:
|
||||
custom_fields:
|
||||
heading: Questionnaire
|
||||
@@ -320,20 +297,12 @@ en:
|
||||
manage_large_audience: Easily manage large audiences with the crowd control feature
|
||||
print_QR_code: Print out release QR codes
|
||||
releases_automatically_organized: Releases are automatically organized as they’re submitted
|
||||
update:
|
||||
notice: The release template has been updated
|
||||
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:
|
||||
description_labels:
|
||||
date_issued: Date Issued
|
||||
employee_issued_to: Employee Issued To
|
||||
issued_by: Issued By
|
||||
issued_to: Issued To
|
||||
producer: Producer
|
||||
production: Production
|
||||
heading: For Office Use Only
|
||||
@@ -411,7 +380,6 @@ en:
|
||||
helpers:
|
||||
help:
|
||||
contract_template:
|
||||
amendment_clause: Leave blank if not required for this contract
|
||||
fee: Leave at $0.00 for no-fee
|
||||
guardian_clause: Leave blank if not required for this contract
|
||||
signature_legal_text: Leave blank if not required for this contract
|
||||
@@ -721,7 +689,6 @@ en:
|
||||
update: Save Changes
|
||||
contract_template:
|
||||
create: Create Release Template
|
||||
update: Save Changes
|
||||
directory:
|
||||
create: Create Folder
|
||||
new_file: Upload Files
|
||||
@@ -778,7 +745,6 @@ en:
|
||||
empty: Location Releases will appear here
|
||||
table_headers:
|
||||
address: Address
|
||||
approved: Approved
|
||||
name: Name
|
||||
notes: Notes
|
||||
signed_at: Date Signed
|
||||
@@ -786,12 +752,6 @@ en:
|
||||
location_release:
|
||||
actions:
|
||||
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
|
||||
new:
|
||||
heading: Import Location Release
|
||||
@@ -820,7 +780,6 @@ en:
|
||||
search: Search
|
||||
empty: Material Releases will appear here
|
||||
table_headers:
|
||||
approved: Approved
|
||||
name: Name
|
||||
notes: Notes
|
||||
signed_at: Date Signed
|
||||
@@ -828,9 +787,6 @@ en:
|
||||
material_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
review: Review
|
||||
messages:
|
||||
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||
no_photos: Needs Photo
|
||||
new:
|
||||
heading: Import Material Release (Products / Logos)
|
||||
@@ -867,7 +823,6 @@ en:
|
||||
search: Search
|
||||
empty: Misc Releases will appear here
|
||||
table_headers:
|
||||
approved: Approved
|
||||
contact_info: Contact info
|
||||
name: Person name
|
||||
notes: Notes
|
||||
@@ -876,9 +831,6 @@ en:
|
||||
misc_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
review: Review
|
||||
messages:
|
||||
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||
music_releases:
|
||||
create:
|
||||
notice: The music release has been created
|
||||
@@ -905,7 +857,6 @@ en:
|
||||
search: Search
|
||||
empty: Music Releases will appear here
|
||||
table_headers:
|
||||
approved: Approved
|
||||
composers_count: No. Composers
|
||||
file_infos_count: No. Files
|
||||
name: Name
|
||||
@@ -916,9 +867,6 @@ en:
|
||||
music_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
review: Review
|
||||
messages:
|
||||
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||
new:
|
||||
heading: Import Music Release
|
||||
update:
|
||||
@@ -1037,16 +985,6 @@ en:
|
||||
heading: Licensor/Owner Contact Information
|
||||
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:
|
||||
heading: Signature
|
||||
appearance_releases:
|
||||
create:
|
||||
notice: Your release has been signed. Thank you!
|
||||
@@ -1086,16 +1024,6 @@ en:
|
||||
broadcasts:
|
||||
show:
|
||||
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:
|
||||
create:
|
||||
notice: Your release has been signed. Thank you!
|
||||
@@ -1328,7 +1256,6 @@ en:
|
||||
search: Search
|
||||
empty: Talent Releases will appear here
|
||||
table_headers:
|
||||
approved: Approved
|
||||
email: Email
|
||||
name: Name
|
||||
notes: Notes
|
||||
@@ -1340,9 +1267,6 @@ en:
|
||||
talent_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
review: Review
|
||||
messages:
|
||||
approved_tooltip: Approved by %{user} on %{timestamp}
|
||||
update:
|
||||
notice: The talent release has been updated
|
||||
task_requests:
|
||||
@@ -1355,9 +1279,7 @@ en:
|
||||
heading:
|
||||
Edit Task Request
|
||||
form:
|
||||
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
|
||||
info_message: After submitting this task request, you'll be connected via chat with a ME Suite representative.
|
||||
labels:
|
||||
additional_notes: Please add any additional notes we should be aware of regarding this task.
|
||||
deadline: What is the deadline for this task?
|
||||
|
||||
@@ -81,9 +81,6 @@ es:
|
||||
do_not_copy_warning: "Do not copy (ES)"
|
||||
serial_number_label: "Serial Number (ES)"
|
||||
broadcasts:
|
||||
show:
|
||||
actions:
|
||||
reset_url: Reset URL (ES)
|
||||
splash:
|
||||
actions:
|
||||
book_demo: Schedule a Demo
|
||||
@@ -102,23 +99,10 @@ es:
|
||||
share_stream: Share live stream link with clients
|
||||
stream_from_mobile_app: Stream from ME Suite Mobile app, or via a professional camera
|
||||
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:
|
||||
blank_contracts:
|
||||
create:
|
||||
number_of_copies_invalid_notice: Please enter valid number greater than 0 (ES)
|
||||
contract_template:
|
||||
actions:
|
||||
duplicate: Duplicate (ES)
|
||||
edit: Edit (ES)
|
||||
duplicate:
|
||||
name_prefix: Copy of %{template_name} (ES)
|
||||
duplicates:
|
||||
create:
|
||||
error: Failed to duplicate release template (ES)
|
||||
edit:
|
||||
heading: Edit Contract Template (ES)
|
||||
form:
|
||||
custom_fields:
|
||||
heading: Medical Questionnaire (ES)
|
||||
@@ -145,20 +129,12 @@ es:
|
||||
manage_large_audience: Easily manage large audiences with the crowd control feature (ES)
|
||||
print_QR_code: Print out release QR codes (ES)
|
||||
releases_automatically_organized: Releases are automatically organized as they’re submitted (ES)
|
||||
update:
|
||||
notice: The release template has been updated (ES)
|
||||
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:
|
||||
description_labels:
|
||||
date_issued: Date Issued (ES)
|
||||
employee_issued_to: Employee Issued To (ES)
|
||||
issued_by: Issued By (ES)
|
||||
issued_to: Issued To (ES)
|
||||
producer: Producer (ES)
|
||||
production: Production (ES)
|
||||
heading: For Office Use Only (ES)
|
||||
@@ -213,7 +189,6 @@ es:
|
||||
helpers:
|
||||
help:
|
||||
contract_template:
|
||||
amendment_clause: Leave blank if not required for this contract (ES)
|
||||
fee: Leave at $0.00 for no-fee (ES)
|
||||
guardian_clause: Leave blank if not required for this contract (ES)
|
||||
signature_legal_text: Leave blank if not required for this contract (ES)
|
||||
@@ -329,8 +304,6 @@ es:
|
||||
broadcast:
|
||||
create: Create Live Stream (ES)
|
||||
update: Save Changes (ES)
|
||||
contract_template:
|
||||
update: Save changes (ES)
|
||||
create: 'Crear %{model}'
|
||||
medical_release:
|
||||
update: Approve (ES)
|
||||
@@ -345,12 +318,6 @@ es:
|
||||
notes: Notes (ES)
|
||||
signed_at: Date Signed (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:
|
||||
form:
|
||||
photos:
|
||||
@@ -397,16 +364,6 @@ es:
|
||||
signed_at: Date Signed (ES)
|
||||
tags: Tags (ES)
|
||||
public:
|
||||
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:
|
||||
create:
|
||||
notice: La autorización está firmada. ¡Gracias!
|
||||
@@ -522,9 +479,7 @@ es:
|
||||
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)
|
||||
form:
|
||||
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)
|
||||
info_message: After submitting this task request, you'll be connected via chat with a ME Suite representative. (ES)
|
||||
index:
|
||||
table_headers:
|
||||
task_request_description: Description (ES)
|
||||
|
||||
@@ -22,9 +22,6 @@ Rails.application.routes.draw do
|
||||
concern :file_infoable do
|
||||
resource :file_infos, only: [:edit, :update]
|
||||
end
|
||||
concern :approvable do
|
||||
resource :approvals, only: [:new, :create]
|
||||
end
|
||||
|
||||
constraints AdminSignedInConstraint.new do
|
||||
namespace :admin do
|
||||
@@ -59,10 +56,9 @@ Rails.application.routes.draw do
|
||||
resources :talent_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
||||
resources :medical_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
||||
resources :misc_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
||||
resources :contract_templates, only: [:index, :new, :create, :edit, :update, :destroy] do
|
||||
resources :contract_templates, only: [:index, :new, :create, :destroy] do
|
||||
resource :qr_codes, only: [:show], controller: "contract_templates/qr_codes"
|
||||
resource :blank_contracts, only: [:show, :new, :create], controller: "contract_templates/blank_contracts"
|
||||
resource :duplicates, only: [:create], controller: "contract_templates/duplicates"
|
||||
end
|
||||
resource :release_template_imports, only: [:new, :create]
|
||||
resources :project_memberships, only: [:index, :create, :destroy]
|
||||
@@ -124,13 +120,11 @@ Rails.application.routes.draw do
|
||||
scope module: :public do
|
||||
resources :accounts, only: [] do
|
||||
resources :projects, only: [] do
|
||||
resources :contract_templates, only: [:index] do
|
||||
resources :contract_templates, only: [] do
|
||||
resources :talent_releases, only: [:new, :create]
|
||||
resources :appearance_releases, only: [:new, :create]
|
||||
resources :acquired_media_releases, only: [:new, :create]
|
||||
resources :location_releases, only: [:new, :create] do
|
||||
resources :amendments, only: [:new, :create]
|
||||
end
|
||||
resources :location_releases, only: [:new, :create]
|
||||
resources :material_releases, only: [:new, :create]
|
||||
resources :medical_releases, only: [:new, :create]
|
||||
resources :misc_releases, only: [:new, :create]
|
||||
@@ -146,7 +140,12 @@ Rails.application.routes.draw do
|
||||
ALL_RELEASES = RELEASES + [:music_releases]
|
||||
|
||||
ALL_RELEASES.each do |release|
|
||||
resources release, only: [], concerns: [:taggable, :approvable]
|
||||
resources release, only: [], concerns: :taggable
|
||||
end
|
||||
|
||||
# Customization for medical releases
|
||||
resources :medical_releases, only: [], concerns: :taggable do
|
||||
resource :approvals, only: [:new, :create]
|
||||
end
|
||||
|
||||
resources :bulk_taggings, only: [:new, :create]
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
class AddDurationToBroadcastRecordings < ActiveRecord::DataMigration
|
||||
def up
|
||||
recordings = BroadcastRecording.where(duration: nil)
|
||||
client = MuxRuby::AssetsApi.new
|
||||
|
||||
recordings.each do |recording|
|
||||
begin
|
||||
response = client.get_asset(recording.asset_uid)
|
||||
duration = response.data.duration
|
||||
recording.update(duration: duration)
|
||||
rescue MuxRuby::ApiError => e
|
||||
Rails.logger.error("Failed to update duration for broadcast recording with id #{recording.id}\n" + e.message)
|
||||
end
|
||||
|
||||
sleep(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,5 +0,0 @@
|
||||
class AddAccessibilityToContractTemplates < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
add_column :contract_templates, :accessibility, :integer, default: 0
|
||||
end
|
||||
end
|
||||
@@ -1,5 +0,0 @@
|
||||
class AddDurationToBroadcastRecordings < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
add_column :broadcast_recordings, :duration, :float
|
||||
end
|
||||
end
|
||||
@@ -1,7 +0,0 @@
|
||||
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
|
||||
@@ -1,7 +0,0 @@
|
||||
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
|
||||
@@ -1,7 +0,0 @@
|
||||
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
|
||||
@@ -1,7 +0,0 @@
|
||||
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
|
||||
@@ -1,7 +0,0 @@
|
||||
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
|
||||
@@ -1,7 +0,0 @@
|
||||
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
|
||||
@@ -1,7 +0,0 @@
|
||||
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
|
||||
@@ -1,5 +0,0 @@
|
||||
class AddShootLocationTimeZoneToBroadcasts < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
add_column :broadcasts, :shoot_location_time_zone, :string, default: "UTC"
|
||||
end
|
||||
end
|
||||
@@ -1,5 +0,0 @@
|
||||
class AddFullLiveStreamPlaybackUrlToBroadcasts < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
add_column :broadcasts, :full_live_stream_playback_uid, :string
|
||||
end
|
||||
end
|
||||
@@ -1,5 +0,0 @@
|
||||
class AddAmendmentSignerDetailsToLocationReleases < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
add_column :location_releases, :amendment_signer_name, :string
|
||||
end
|
||||
end
|
||||
@@ -158,10 +158,7 @@ CREATE TABLE public.acquired_media_releases (
|
||||
description text,
|
||||
person_first_name character varying,
|
||||
person_last_name character varying,
|
||||
signed_at timestamp without time zone,
|
||||
approved_by_user_name text,
|
||||
approved_by_user_email text,
|
||||
approved_at timestamp without time zone
|
||||
signed_at timestamp without time zone
|
||||
);
|
||||
|
||||
|
||||
@@ -341,10 +338,7 @@ CREATE TABLE public.appearance_releases (
|
||||
guardian_2_address_city character varying,
|
||||
guardian_2_address_state character varying,
|
||||
guardian_2_address_zip character varying,
|
||||
guardian_2_address_country character varying,
|
||||
approved_by_user_name text,
|
||||
approved_by_user_email text,
|
||||
approved_at timestamp without time zone
|
||||
guardian_2_address_country character varying
|
||||
);
|
||||
|
||||
|
||||
@@ -500,8 +494,7 @@ CREATE TABLE public.broadcast_recordings (
|
||||
asset_playback_uid character varying NOT NULL,
|
||||
file_name character varying NOT NULL,
|
||||
created_at timestamp(6) without time zone NOT NULL,
|
||||
updated_at timestamp(6) without time zone NOT NULL,
|
||||
duration double precision
|
||||
updated_at timestamp(6) without time zone NOT NULL
|
||||
);
|
||||
|
||||
|
||||
@@ -539,9 +532,7 @@ CREATE TABLE public.broadcasts (
|
||||
stream_key character varying,
|
||||
stream_playback_uid character varying,
|
||||
token character varying,
|
||||
streamer_status integer DEFAULT 0,
|
||||
shoot_location_time_zone character varying DEFAULT 'UTC'::character varying,
|
||||
full_live_stream_playback_uid character varying
|
||||
streamer_status integer DEFAULT 0
|
||||
);
|
||||
|
||||
|
||||
@@ -638,8 +629,7 @@ CREATE TABLE public.contract_templates (
|
||||
question_12_text text,
|
||||
question_13_text text,
|
||||
question_14_text text,
|
||||
question_15_text text,
|
||||
accessibility integer DEFAULT 0
|
||||
question_15_text text
|
||||
);
|
||||
|
||||
|
||||
@@ -885,11 +875,7 @@ CREATE TABLE public.location_releases (
|
||||
filming_ended_on date,
|
||||
person_first_name character varying,
|
||||
person_last_name character varying,
|
||||
filming_hours text,
|
||||
approved_by_user_name text,
|
||||
approved_by_user_email text,
|
||||
approved_at timestamp without time zone,
|
||||
amendment_signer_name character varying
|
||||
filming_hours text
|
||||
);
|
||||
|
||||
|
||||
@@ -978,10 +964,7 @@ CREATE TABLE public.material_releases (
|
||||
signed_at timestamp without time zone,
|
||||
description text,
|
||||
person_first_name character varying,
|
||||
person_last_name character varying,
|
||||
approved_by_user_name text,
|
||||
approved_by_user_email text,
|
||||
approved_at timestamp without time zone
|
||||
person_last_name character varying
|
||||
);
|
||||
|
||||
|
||||
@@ -1136,10 +1119,7 @@ CREATE TABLE public.misc_releases (
|
||||
question_12_answer text,
|
||||
question_13_answer text,
|
||||
question_14_answer text,
|
||||
question_15_answer text,
|
||||
approved_by_user_name text,
|
||||
approved_by_user_email text,
|
||||
approved_at timestamp without time zone
|
||||
question_15_answer text
|
||||
);
|
||||
|
||||
|
||||
@@ -1195,10 +1175,7 @@ CREATE TABLE public.music_releases (
|
||||
restriction_id bigint,
|
||||
restriction_text character varying,
|
||||
person_first_name character varying,
|
||||
person_last_name character varying,
|
||||
approved_by_user_name text,
|
||||
approved_by_user_email text,
|
||||
approved_at timestamp without time zone
|
||||
person_last_name character varying
|
||||
);
|
||||
|
||||
|
||||
@@ -1554,10 +1531,7 @@ CREATE TABLE public.talent_releases (
|
||||
guardian_2_address_city character varying,
|
||||
guardian_2_address_state character varying,
|
||||
guardian_2_address_zip character varying,
|
||||
guardian_2_address_country character varying,
|
||||
approved_by_user_name text,
|
||||
approved_by_user_email text,
|
||||
approved_at timestamp without time zone
|
||||
guardian_2_address_country character varying
|
||||
);
|
||||
|
||||
|
||||
@@ -3932,18 +3906,6 @@ INSERT INTO "schema_migrations" (version) VALUES
|
||||
('20200622180507'),
|
||||
('20200625144713'),
|
||||
('20200702152130'),
|
||||
('20200707155717'),
|
||||
('20200709120630'),
|
||||
('20200712181139'),
|
||||
('20200715084927'),
|
||||
('20200716055453'),
|
||||
('20200716075851'),
|
||||
('20200716083706'),
|
||||
('20200716094927'),
|
||||
('20200716103525'),
|
||||
('20200716105723'),
|
||||
('20200720051634'),
|
||||
('20200720131309'),
|
||||
('20200721140821');
|
||||
('20200707155717');
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ RSpec.describe BroadcastsChannel, type: :channel do
|
||||
event: "broadcast_stream_update",
|
||||
status: broadcast.status,
|
||||
playback_url: broadcast.stream_playback_url,
|
||||
full_live_stream_playback_url: broadcast.full_live_stream_playback_url,
|
||||
status_content: status_content,
|
||||
video_content: video_content,
|
||||
streamer_status: broadcast.streamer_status
|
||||
|
||||
@@ -30,21 +30,6 @@ RSpec.describe Api::ContractTemplatesController, type: :controller do
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it 'returns electronic signature legal text when present' do
|
||||
ct = create(:contract_template, name: 'ct1', project_id: project.id)
|
||||
ct.signature_legal_text = "some electronic signature legal text"
|
||||
ct.save
|
||||
|
||||
sign_in_to_api(current_user)
|
||||
get :show, params: { id: ct.id }
|
||||
|
||||
expect(response).to be_successful
|
||||
|
||||
expect(response.body).to include("signature_legal_text")
|
||||
expect(response.body).to include(ct.signature_legal_text.body.as_json)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -127,15 +127,8 @@ RSpec.describe Api::SyncController, type: :controller do
|
||||
get :index
|
||||
|
||||
medical_releases = attributes_for_type('medical_releases')
|
||||
expect(medical_releases.first).to include('id')
|
||||
end
|
||||
|
||||
it 'contains signature legal text for contract templates' do
|
||||
create_default_data_with_signature_legal_text
|
||||
get :index
|
||||
contract_templates = attributes_for_type('contract_templates')
|
||||
expect(contract_templates.first).to include('signature_legal_text')
|
||||
expect(contract_templates.first['signature_legal_text']).to eq ContractTemplate.first.signature_legal_text.as_json
|
||||
expect(medical_releases.first).to include('id')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -156,13 +149,6 @@ RSpec.describe Api::SyncController, type: :controller do
|
||||
create(:appearance_release, :minor_with_guardian_photo, project: project)
|
||||
end
|
||||
|
||||
def create_default_data_with_signature_legal_text
|
||||
create_default_data
|
||||
ct = create(:contract_template, name: "with signature legal text", project: Project.first)
|
||||
ct.signature_legal_text = "legal text example"
|
||||
ct.save
|
||||
end
|
||||
|
||||
def response_body_json
|
||||
JSON.parse(response.body)
|
||||
end
|
||||
|
||||
@@ -203,15 +203,6 @@ RSpec.describe BroadcastsController, type: :controller do
|
||||
|
||||
expect(BroadcastsChannel).to have_received(:broadcast_file_upload_updates)
|
||||
end
|
||||
|
||||
it "regenerates token if #update is called without broadcast param" do
|
||||
old_token = broadcast.token
|
||||
patch :update, params: { project_id: project.id, id: broadcast.id }
|
||||
|
||||
expect(response).to redirect_to [project, broadcast]
|
||||
expect(flash.notice).to eq token_reset_notice
|
||||
expect(Broadcast.last.token).not_to eq old_token
|
||||
end
|
||||
end
|
||||
|
||||
describe "#destroy" do
|
||||
@@ -261,8 +252,4 @@ RSpec.describe BroadcastsController, type: :controller do
|
||||
def create_stream
|
||||
t 'broadcasts.splash.actions.create_stream'
|
||||
end
|
||||
|
||||
def token_reset_notice
|
||||
t 'broadcasts.update.reset_notice'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe ContractTemplates::DuplicatesController do
|
||||
let(:account) { build(:account) }
|
||||
let(:current_user) { create(:user, :manager, primary_account: account) }
|
||||
let(:project) { create(:project, members: [current_user], account: account) }
|
||||
|
||||
before do
|
||||
sign_in(current_user)
|
||||
end
|
||||
|
||||
describe '#create' do
|
||||
it "responds with redirect to the edit page for newly created duplicate" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect do
|
||||
post :create, params: { contract_template_id: contract_template }
|
||||
end.to change(ContractTemplate, :count).by(1)
|
||||
|
||||
new_ct = ContractTemplate.last
|
||||
|
||||
expect(new_ct.name).to eq t('contract_templates.duplicate.name_prefix', template_name: contract_template.name)
|
||||
expect(new_ct.release_type).to eq contract_template.release_type
|
||||
|
||||
expect(response).to redirect_to [:edit, new_ct]
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -5,7 +5,6 @@ describe ContractTemplates::QrCodesController do
|
||||
let(:current_user) { create(:user, :manager, primary_account: account) }
|
||||
let(:project) { create(:project, members: [current_user], account: account) }
|
||||
let(:contract_template) { create(:contract_template, project: project) }
|
||||
let(:contract_templates) { create_list(:contract_template, 5, project: project)}
|
||||
|
||||
before do
|
||||
sign_in(current_user)
|
||||
@@ -17,13 +16,5 @@ describe ContractTemplates::QrCodesController do
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
context "for group qr code" do
|
||||
it "responds with success" do
|
||||
get :show, params: { contract_template_id: contract_templates.first, multi_sign_ids: contract_templates }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -118,57 +118,6 @@ describe ContractTemplatesController do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#edit' do
|
||||
let(:contract_template) do
|
||||
create(:contract_template,
|
||||
name: 'My Contract Template', fee: 50, release_type: 'appearance',
|
||||
project: project)
|
||||
end
|
||||
|
||||
it 'responds ok' do
|
||||
get :edit, params: { project_id: project, id: contract_template }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
context 'when current user is an associate' do
|
||||
let(:current_user) { create(:user, :associate) }
|
||||
|
||||
it 'raises exception' do
|
||||
expect do
|
||||
get :edit, params: { project_id: project, id: contract_template }
|
||||
end.to raise_error(Pundit::NotAuthorizedError)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
describe '#update' do
|
||||
let(:contract_template) do
|
||||
create(:contract_template,
|
||||
name: 'My Contract Template', fee: 50, release_type: 'appearance',
|
||||
project: project)
|
||||
end
|
||||
|
||||
it 'redirects' do
|
||||
patch :update, params: { project_id: project, id: contract_template, contract_template: contract_template_params }
|
||||
|
||||
expect(response).to redirect_to(project_contract_templates_path(project))
|
||||
end
|
||||
|
||||
|
||||
context 'when current user is an associate' do
|
||||
let(:current_user) { create(:user, :associate) }
|
||||
|
||||
it 'raises exception' do
|
||||
expect do
|
||||
patch :update, params: { project_id: project, id: contract_template, contract_template: contract_template_params }
|
||||
end.to raise_error(Pundit::NotAuthorizedError)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#destroy' do
|
||||
let!(:contract_template) { create(:contract_template, project: project) }
|
||||
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Public::AmendmentsController, type: :controller do
|
||||
let(:user) { create(:user) }
|
||||
let(:account) { user.primary_account }
|
||||
let(:project) { create(:project, account: account) }
|
||||
let(:contract_template) { create(:location_release_contract_template, :with_amendment_clause, project: project) }
|
||||
let(:location_release) { create(:location_release, contract_template: contract_template, project: project) }
|
||||
|
||||
render_views
|
||||
|
||||
describe "#new" do
|
||||
it "shows amendment signing form for non-signed amendment of a release" do
|
||||
expect(location_release.amendment_signed?).to be_falsey
|
||||
|
||||
get :new, params: {
|
||||
account_id: account,
|
||||
project_id: project,
|
||||
contract_template_id: location_release.contract_template,
|
||||
location_release_id: location_release
|
||||
}
|
||||
|
||||
expect(response).to be_successful
|
||||
|
||||
body = CGI.unescape_html(response.body)
|
||||
expect(body).not_to match already_signed_message
|
||||
end
|
||||
|
||||
it "shows already signed message for signed amendment of a release" do
|
||||
signed_release = create(:location_release, :amendment_signed, contract_template: contract_template, project: project)
|
||||
|
||||
expect(signed_release.amendment_signed?).to be_truthy
|
||||
|
||||
get :new, params: {
|
||||
account_id: account,
|
||||
project_id: project,
|
||||
contract_template_id: location_release.contract_template,
|
||||
location_release_id: signed_release
|
||||
}
|
||||
|
||||
expect(response).to be_successful
|
||||
|
||||
body = CGI.unescape_html(response.body)
|
||||
expect(body).to match already_signed_message
|
||||
end
|
||||
end
|
||||
|
||||
describe "#create" do
|
||||
it "signs amendment" do
|
||||
expect(location_release.amendment_signed?).to be_falsey
|
||||
|
||||
post :create, params: {
|
||||
account_id: account,
|
||||
project_id: project,
|
||||
contract_template_id: location_release.contract_template,
|
||||
location_release_id: location_release,
|
||||
location_release: {
|
||||
amendment_signer_name: "Signer Name",
|
||||
amendment_signature_base64: signature_base64
|
||||
}
|
||||
}
|
||||
|
||||
expect(response).to be_successful
|
||||
|
||||
body = CGI.unescape_html(response.body)
|
||||
expect(body).not_to match already_signed_message
|
||||
expect(body).to match signed_successfully_message
|
||||
|
||||
expect(LocationRelease.last.amendment_signed?).to be_truthy
|
||||
expect(LocationRelease.last.amendment_signer_name).to eq "Signer Name"
|
||||
end
|
||||
|
||||
it "shows already signed message for signed amendment of a release" do
|
||||
signed_release = create(:location_release, :amendment_signed, name: "Test Loc", amendment_signer_name: "Big Signer", contract_template: contract_template, project: project)
|
||||
|
||||
expect(signed_release.amendment_signed?).to be_truthy
|
||||
|
||||
post :create, params: {
|
||||
account_id: account,
|
||||
project_id: project,
|
||||
contract_template_id: location_release.contract_template,
|
||||
location_release_id: signed_release,
|
||||
location_release: {
|
||||
amendment_signer_name: "Signer Who",
|
||||
amendment_signature_base64: signature_base64
|
||||
}
|
||||
}
|
||||
|
||||
expect(response).to be_successful
|
||||
|
||||
body = CGI.unescape_html(response.body)
|
||||
expect(body).to match already_signed_message
|
||||
|
||||
expect(signed_release.amendment_signed?).to be_truthy
|
||||
expect(signed_release.amendment_signer_name).to eq "Big Signer"
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def already_signed_message
|
||||
t 'public.amendments.create.amendment_already_signed_message'
|
||||
end
|
||||
|
||||
def signed_successfully_message
|
||||
t 'public.amendments.create.amendment_signed_message'
|
||||
end
|
||||
|
||||
def signature_base64
|
||||
@signature_base64 ||= Base64Image.from_image(file_fixture('signature.png')).data_uri
|
||||
end
|
||||
end
|
||||
@@ -1,39 +0,0 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Public::ContractTemplatesController, type: :controller do
|
||||
render_views
|
||||
|
||||
let(:account) { create(:account, name: "Dev Account") }
|
||||
let(:project) { create(:project, account: account) }
|
||||
let(:contract_templates) { create_list(:contract_template, 20, project: project) }
|
||||
|
||||
describe '#index' do
|
||||
it 'responds successfully' do
|
||||
get :index, params: { project_id: project, account_id: project.account, contract_template_ids: contract_templates.map(&:id) }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it 'renders content if there are contract templates' do
|
||||
contract_template = create(:contract_template,
|
||||
name: 'My Contract Template', fee: 50, release_type: 'appearance',
|
||||
project: project)
|
||||
sign_path = new_account_project_contract_template_appearance_release_path(project.account, project, contract_template)
|
||||
sign_url = new_account_project_contract_template_appearance_release_url(project.account, project, contract_template)
|
||||
|
||||
get :index, params: { project_id: project, account_id: project.account, contract_template_ids: [contract_template.id] }
|
||||
|
||||
expect(response.body).to have_content('My Contract Template')
|
||||
expect(response.body).to have_link('Sign', href: sign_path)
|
||||
end
|
||||
|
||||
context 'when there are many records' do
|
||||
it 'paginates the table' do
|
||||
get :index, params: { project_id: project, account_id: project.account, contract_template_ids: contract_templates.map(&:id) }
|
||||
|
||||
expect(response.body).to have_link('2', href: account_project_contract_templates_path(project.account, project, contract_template_ids: contract_templates.map(&:id), page: 2))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,45 +4,27 @@ RSpec.describe StreamNotificationsController, type: :controller do
|
||||
render_views
|
||||
|
||||
let!(:broadcast) { create(:broadcast, :with_stream, skip_create_callback: true, name: "Live Stream") }
|
||||
let(:active_status) { { type: "video.live_stream.active", object: { id: "mux_stream" } } }
|
||||
let(:disconnected_status) { { type: "video.live_stream.disconnected", object: { id: "mux_stream" } } }
|
||||
let(:idle_status) { { type: "video.live_stream.idle", object: { id: "mux_stream" } } }
|
||||
let(:idle_status_for_unknown_broadcast) { { type: "video.live_stream.idle", object: { id: "unknown-id" } } }
|
||||
let(:asset_ready) do
|
||||
{
|
||||
type: "video.asset.static_renditions.ready",
|
||||
object: { id: "asset_uid" },
|
||||
let(:active_status) { {type: "video.live_stream.active", object: { id: "mux_stream" }} }
|
||||
let(:disconnected_status) { {type: "video.live_stream.disconnected", object: { id: "mux_stream" }} }
|
||||
let(:idle_status) { {type: "video.live_stream.idle", object: { id: "mux_stream" }} }
|
||||
let(:idle_status_for_unknown_broadcast) { {type: "video.live_stream.idle", object: { id: "unknown-id" }} }
|
||||
let(:asset_ready) { {
|
||||
type: "video.asset.static_renditions.ready",
|
||||
object: { id: "asset_uid" },
|
||||
data: {
|
||||
playback_ids: [
|
||||
{id: "playback_uid"}
|
||||
],
|
||||
static_renditions: {
|
||||
files: [{name: "high.mp4"}]
|
||||
}
|
||||
},
|
||||
stream_notification: {
|
||||
data: {
|
||||
playback_ids: [
|
||||
{ id: "playback_uid" }
|
||||
],
|
||||
static_renditions: {
|
||||
files: [{ name: "high.mp4" }]
|
||||
}
|
||||
},
|
||||
stream_notification: {
|
||||
data: {
|
||||
live_stream_id: "mux_stream"
|
||||
}
|
||||
live_stream_id: "mux_stream"
|
||||
}
|
||||
}
|
||||
end
|
||||
let(:full_live_stream_ready) do
|
||||
{
|
||||
type: "video.asset.ready",
|
||||
object: { id: "active_asset_uid" },
|
||||
data: {
|
||||
playback_ids: [
|
||||
{ id: "full_live_stream_playback_uid" }
|
||||
]
|
||||
},
|
||||
stream_notification: {
|
||||
data: {
|
||||
live_stream_id: "mux_stream"
|
||||
}
|
||||
}
|
||||
}
|
||||
end
|
||||
} }
|
||||
|
||||
describe "#create" do
|
||||
before do
|
||||
@@ -72,20 +54,13 @@ RSpec.describe StreamNotificationsController, type: :controller do
|
||||
end
|
||||
|
||||
it "creates a broadcast recording when static_renditions.ready is received in notification" do
|
||||
expect do
|
||||
expect {
|
||||
post :create, params: asset_ready
|
||||
end.to change(BroadcastRecording, :count).by(1)
|
||||
}.to change(BroadcastRecording, :count).by(1)
|
||||
|
||||
expect(BroadcastsChannel).to have_received(:stream_recording_ready)
|
||||
end
|
||||
|
||||
it "stores full livestream playback uid and updates the broadcast" do
|
||||
post :create, params: full_live_stream_ready
|
||||
|
||||
expect(Broadcast.last.full_live_stream_playback_uid).to eq "full_live_stream_playback_uid"
|
||||
expect(BroadcastsChannel).to have_received(:broadcast_stream_updates).with(be_kind_of(Broadcast))
|
||||
end
|
||||
|
||||
it "returns OK response even for non-existing broadcast" do
|
||||
post :create, params: idle_status_for_unknown_broadcast
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ FactoryBot.define do
|
||||
stream_uid "mux_stream"
|
||||
stream_key "mux_key"
|
||||
stream_playback_uid "mux_playback_id"
|
||||
full_live_stream_playback_uid "full_live_stream_playback_uid"
|
||||
status "created"
|
||||
streamer_status "idle"
|
||||
end
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user