Compare commits
10 Commits
remove-zoo
...
task-me-mv
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71ad502cc1 | ||
|
|
1cd125382f | ||
|
|
749aad3467 | ||
|
|
c167889ea3 | ||
|
|
3e917c29f0 | ||
|
|
8ad89371b8 | ||
|
|
9d7e2c044a | ||
|
|
88836e937e | ||
|
|
e3d4d22a34 | ||
|
|
3690268f83 |
4
Gemfile
4
Gemfile
@@ -30,9 +30,9 @@ gem "active_storage_base64", "~> 1.0.0"
|
|||||||
gem "image_processing", "~> 1.2"
|
gem "image_processing", "~> 1.2"
|
||||||
|
|
||||||
# Use Amazon Web Services S3 for file uploads in production
|
# Use Amazon Web Services S3 for file uploads in production
|
||||||
gem "aws-sdk-s3", "~> 1.48", require: false, group: [:production, :review]
|
gem "aws-sdk-s3", "~> 1.31.0", require: false, group: [:production, :review]
|
||||||
# Allow AWS API requests to be signed using IAM credentials
|
# Allow AWS API requests to be signed using IAM credentials
|
||||||
gem "aws-sigv4", "~> 1.1"
|
gem "aws-sigv4", "~> 1.0.2"
|
||||||
|
|
||||||
# Reduces boot times through caching; required in config/boot.rb
|
# Reduces boot times through caching; required in config/boot.rb
|
||||||
gem "bootsnap", ">= 1.1.0", require: false
|
gem "bootsnap", ">= 1.1.0", require: false
|
||||||
|
|||||||
31
Gemfile.lock
31
Gemfile.lock
@@ -117,22 +117,21 @@ GEM
|
|||||||
ast (2.4.0)
|
ast (2.4.0)
|
||||||
autoprefixer-rails (9.7.3)
|
autoprefixer-rails (9.7.3)
|
||||||
execjs
|
execjs
|
||||||
aws-eventstream (1.1.0)
|
aws-eventstream (1.0.3)
|
||||||
aws-partitions (1.337.0)
|
aws-partitions (1.210.0)
|
||||||
aws-sdk-core (3.102.1)
|
aws-sdk-core (3.46.2)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1.0)
|
||||||
aws-partitions (~> 1, >= 1.239.0)
|
aws-partitions (~> 1.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.0)
|
||||||
jmespath (~> 1.0)
|
jmespath (~> 1.0)
|
||||||
aws-sdk-kms (1.35.0)
|
aws-sdk-kms (1.13.0)
|
||||||
aws-sdk-core (~> 3, >= 3.99.0)
|
aws-sdk-core (~> 3, >= 3.39.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.0)
|
||||||
aws-sdk-s3 (1.72.0)
|
aws-sdk-s3 (1.31.0)
|
||||||
aws-sdk-core (~> 3, >= 3.102.1)
|
aws-sdk-core (~> 3, >= 3.39.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.0)
|
||||||
aws-sigv4 (1.2.1)
|
aws-sigv4 (1.0.3)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
|
||||||
axlsx (3.0.0.pre)
|
axlsx (3.0.0.pre)
|
||||||
htmlentities (~> 4.3, >= 4.3.4)
|
htmlentities (~> 4.3, >= 4.3.4)
|
||||||
mimemagic (~> 0.3)
|
mimemagic (~> 0.3)
|
||||||
@@ -515,8 +514,8 @@ DEPENDENCIES
|
|||||||
activeresource (= 5.1.0)
|
activeresource (= 5.1.0)
|
||||||
acts-as-taggable-on!
|
acts-as-taggable-on!
|
||||||
analytics-ruby
|
analytics-ruby
|
||||||
aws-sdk-s3 (~> 1.48)
|
aws-sdk-s3 (~> 1.31.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.0.2)
|
||||||
axlsx (~> 3.0.0.pre)
|
axlsx (~> 3.0.0.pre)
|
||||||
axlsx_rails (~> 0.5.2)
|
axlsx_rails (~> 0.5.2)
|
||||||
axlsx_styler (~> 0.2.0)
|
axlsx_styler (~> 0.2.0)
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
$(document).on("turbolinks:load", function() {
|
|
||||||
$("[data-behavior=update-required-status]").click(function(e) {
|
|
||||||
const required = !!($(this)[0] && $(this)[0].checked);
|
|
||||||
|
|
||||||
|
|
||||||
$("[data-required-tag=guardian]").each(function(index, element) {
|
|
||||||
const labelForField = element.previousSibling;
|
|
||||||
|
|
||||||
element.required = required;
|
|
||||||
labelForField.classList.add("required");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -11,7 +11,6 @@ $body-color: #4A4A4A;
|
|||||||
$primary: #6F89FF;
|
$primary: #6F89FF;
|
||||||
$blue: #0092ff;
|
$blue: #0092ff;
|
||||||
$red: #F9002B;
|
$red: #F9002B;
|
||||||
$dark-red: #CE004A;
|
|
||||||
$green: #51B61B;
|
$green: #51B61B;
|
||||||
$teal: #32C498;
|
$teal: #32C498;
|
||||||
$purple: #5139EE;
|
$purple: #5139EE;
|
||||||
|
|||||||
@@ -69,13 +69,6 @@ label {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.cast-me {
|
|
||||||
span:last-child {
|
|
||||||
background-color: $dark-red;
|
|
||||||
color: $white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.disabled {
|
&.disabled {
|
||||||
span:last-child {
|
span:last-child {
|
||||||
background-color: $gray-500 !important;
|
background-color: $gray-500 !important;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class AccountsController < ApplicationController
|
|||||||
|
|
||||||
if sign_in(user)
|
if sign_in(user)
|
||||||
TrackAnalyticsJob.perform_later(user, user.primary_account, :track_guest_sign_up, user_agent: request.user_agent, user_ip: request.remote_ip)
|
TrackAnalyticsJob.perform_later(user, user.primary_account, :track_guest_sign_up, user_agent: request.user_agent, user_ip: request.remote_ip)
|
||||||
SubmitHubspotFormJob.perform_later(first_name: user.first_name, last_name: user.last_name, email: user.email, company: account.name, i_m_interested_in: user.interested_product_name, form_guid: ENV["HUBSPOT_FORM_GUID"])
|
SubmitHubspotFormJob.perform_later(user.email, account.name, i_m_interested_in: user.interested_product_name)
|
||||||
redirect_to signed_in_root_path
|
redirect_to signed_in_root_path
|
||||||
else
|
else
|
||||||
redirect_to new_session_path, alert: t(".notice")
|
redirect_to new_session_path, alert: t(".notice")
|
||||||
|
|||||||
@@ -1,61 +0,0 @@
|
|||||||
class Admin::CastingSubmissionsController < Admin::ApplicationController
|
|
||||||
before_action :set_casting_submission, only: [:edit, :update, :show, :complete]
|
|
||||||
before_action :build_casting_submission, only: [:new, :create]
|
|
||||||
before_action :set_accounts, only: %i[new create edit]
|
|
||||||
|
|
||||||
def index
|
|
||||||
@casting_submissions = casting_submissions.order_by_recent.paginate(page: params[:page])
|
|
||||||
end
|
|
||||||
|
|
||||||
def create
|
|
||||||
@casting_submission.attributes = casting_submission_params
|
|
||||||
|
|
||||||
if @casting_submission.save
|
|
||||||
redirect_to [:admin, :casting_submissions], notice: t(".notice")
|
|
||||||
else
|
|
||||||
render :new
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def update
|
|
||||||
if @casting_submission.update(casting_submission_params)
|
|
||||||
redirect_to [:admin, :casting_submissions], notice: t(".notice")
|
|
||||||
else
|
|
||||||
render :edit
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def complete
|
|
||||||
if @casting_submission.update(interviewed_at: Time.zone.now)
|
|
||||||
redirect_to [:admin, :casting_submissions], notice: t(".notice")
|
|
||||||
else
|
|
||||||
redirect_to [:admin, :casting_submissions], notice: t(".alert")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def set_accounts
|
|
||||||
@accounts = accounts
|
|
||||||
end
|
|
||||||
|
|
||||||
def casting_submission_params
|
|
||||||
params.require(:casting_submission).permit(:casting_call_id, :performer_name, :interview_date, :zoom_meeting_url, :interview_recording)
|
|
||||||
end
|
|
||||||
|
|
||||||
def casting_submissions
|
|
||||||
policy_scope CastingSubmission
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_casting_submission
|
|
||||||
@casting_submission = authorize policy_scope(CastingSubmission).find(params[:id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def accounts
|
|
||||||
policy_scope Account
|
|
||||||
end
|
|
||||||
|
|
||||||
def build_casting_submission
|
|
||||||
@casting_submission = authorize policy_scope(CastingSubmission).build
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -17,9 +17,7 @@ class Api::ApiController < ActionController::Base
|
|||||||
def return_error(exception)
|
def return_error(exception)
|
||||||
raise exception if Rails.env.test?
|
raise exception if Rails.env.test?
|
||||||
|
|
||||||
Raven.capture_exception(exception)
|
logger.error "==Handled======="
|
||||||
|
|
||||||
logger.error "==Handled======"
|
|
||||||
logger.error exception.message
|
logger.error exception.message
|
||||||
logger.error exception.backtrace.join("\n")
|
logger.error exception.backtrace.join("\n")
|
||||||
logger.error "==Handled======="
|
logger.error "==Handled======="
|
||||||
|
|||||||
@@ -19,11 +19,5 @@ class Api::AppearanceReleasesController < Api::ReleasesController
|
|||||||
guardian_photo[:io] = StringIO.new(Base64.decode64(guardian_photo[:io]))
|
guardian_photo[:io] = StringIO.new(Base64.decode64(guardian_photo[:io]))
|
||||||
release.guardian_photo.attach(io: guardian_photo[:io], filename: guardian_photo[:filename])
|
release.guardian_photo.attach(io: guardian_photo[:io], filename: guardian_photo[:filename])
|
||||||
end
|
end
|
||||||
|
|
||||||
guardian_2_photo = release_create_params[:guardian_2_photo]
|
|
||||||
if guardian_2_photo
|
|
||||||
guardian_2_photo[:io] = StringIO.new(Base64.decode64(guardian_2_photo[:io]))
|
|
||||||
release.guardian_2_photo.attach(io: guardian_2_photo[:io], filename: guardian_2_photo[:filename])
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -103,16 +103,10 @@ class Api::ReleasesController < Api::ApiController
|
|||||||
if ["appearance_release", "talent_release"].include?(name)
|
if ["appearance_release", "talent_release"].include?(name)
|
||||||
has_many :guardian_photos do
|
has_many :guardian_photos do
|
||||||
data do
|
data do
|
||||||
[
|
[@object.guardian_photo.try(:attachment)].compact
|
||||||
@object.guardian_photo.try(:attachment),
|
|
||||||
@object.guardian_2_photo.try(:attachment)
|
|
||||||
].compact
|
|
||||||
end
|
end
|
||||||
meta do
|
meta do
|
||||||
{ count:
|
{ count: @object.try(:guardian_photo).try(:attached?) ? 1 : 0 }
|
||||||
(@object.try(:guardian_photo).try(:attached?) ? 1 : 0) +
|
|
||||||
(@object.try(:guardian_2_photo).try(:attached?) ? 1 : 0)
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -176,7 +170,7 @@ class Api::ReleasesController < Api::ApiController
|
|||||||
|
|
||||||
def release_create_params
|
def release_create_params
|
||||||
parameters = params.require(model_name).permit!
|
parameters = params.require(model_name).permit!
|
||||||
keys = model_constant.new.attributes.keys + [:guardian_photo, :guardian_2_photo, :person_photo, :photos, :signature, :signature_base64, :file_infos_attributes]
|
keys = model_constant.new.attributes.keys + [:guardian_photo, :person_photo, :photos, :signature, :signature_base64, :file_infos_attributes]
|
||||||
parameters[:signature_base64] = parameters[:signature]
|
parameters[:signature_base64] = parameters[:signature]
|
||||||
parameters = parameters.slice(*keys).except(:created_at, :updated_at, :id, :user_id, :signature)
|
parameters = parameters.slice(*keys).except(:created_at, :updated_at, :id, :user_id, :signature)
|
||||||
parameters
|
parameters
|
||||||
|
|||||||
@@ -17,11 +17,5 @@ class Api::TalentReleasesController < Api::ReleasesController
|
|||||||
guardian_photo[:io] = StringIO.new(Base64.decode64(guardian_photo[:io]))
|
guardian_photo[:io] = StringIO.new(Base64.decode64(guardian_photo[:io]))
|
||||||
release.guardian_photo.attach(io: guardian_photo[:io], filename: guardian_photo[:filename])
|
release.guardian_photo.attach(io: guardian_photo[:io], filename: guardian_photo[:filename])
|
||||||
end
|
end
|
||||||
|
|
||||||
guardian_2_photo = release_create_params[:guardian_2_photo]
|
|
||||||
if guardian_2_photo
|
|
||||||
guardian_2_photo[:io] = StringIO.new(Base64.decode64(guardian_2_photo[:io]))
|
|
||||||
release.guardian_2_photo.attach(io: guardian_2_photo[:io], filename: guardian_2_photo[:filename])
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ class Api::UserTokenController < Knock::AuthTokenController
|
|||||||
|
|
||||||
# Catch exception and return JSON-formatted error
|
# Catch exception and return JSON-formatted error
|
||||||
def return_error(exception)
|
def return_error(exception)
|
||||||
Raven.capture_exception(exception)
|
|
||||||
|
|
||||||
logger.error "==Handled======="
|
logger.error "==Handled======="
|
||||||
logger.error exception.message
|
logger.error exception.message
|
||||||
logger.error exception.backtrace.join("\n")
|
logger.error exception.backtrace.join("\n")
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ class BroadcastsController < ApplicationController
|
|||||||
before_action :build_broadcast, only: [:new, :create]
|
before_action :build_broadcast, only: [:new, :create]
|
||||||
before_action :set_broadcast, only: [:show, :destroy, :update]
|
before_action :set_broadcast, only: [:show, :destroy, :update]
|
||||||
before_action :set_multi_view_broadcasts, only: [:show]
|
before_action :set_multi_view_broadcasts, only: [:show]
|
||||||
before_action :show_splash_screen, only: :index
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@broadcasts = filtered_broadcasts.order_by_recent.paginate(page: params[:page])
|
@broadcasts = filtered_broadcasts.order_by_recent.paginate(page: params[:page])
|
||||||
@@ -50,10 +49,6 @@ class BroadcastsController < ApplicationController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def show_splash_screen
|
|
||||||
render :splash if broadcasts.count.zero?
|
|
||||||
end
|
|
||||||
|
|
||||||
def broadcast_params
|
def broadcast_params
|
||||||
params.require(:broadcast).permit(:name, files: [])
|
params.require(:broadcast).permit(:name, files: [])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,75 +0,0 @@
|
|||||||
class CastingCallsController < ApplicationController
|
|
||||||
layout "project"
|
|
||||||
|
|
||||||
before_action :set_project
|
|
||||||
before_action :build_casting_call, only: [:new, :create]
|
|
||||||
before_action :set_casting_call, only: [:show, :edit, :update, :cancel]
|
|
||||||
|
|
||||||
def index
|
|
||||||
@casting_calls = casting_calls.order_by_recent.paginate(page: params[:page])
|
|
||||||
end
|
|
||||||
|
|
||||||
def new
|
|
||||||
end
|
|
||||||
|
|
||||||
def create
|
|
||||||
@casting_call.attributes = casting_call_params_with_email
|
|
||||||
|
|
||||||
if @casting_call.save
|
|
||||||
log_create_analytics
|
|
||||||
redirect_to [@project, :casting_calls], notice: t(".notice")
|
|
||||||
else
|
|
||||||
render :new
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def show
|
|
||||||
render layout: 'application'
|
|
||||||
end
|
|
||||||
|
|
||||||
def edit
|
|
||||||
end
|
|
||||||
|
|
||||||
def update
|
|
||||||
if @casting_call.update(casting_call_params)
|
|
||||||
redirect_to [@project, :casting_calls], notice: t(".notice")
|
|
||||||
else
|
|
||||||
render :edit
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def cancel
|
|
||||||
@casting_call.update(cancelled_at: Time.zone.now)
|
|
||||||
redirect_to [@project, :casting_calls], notice: t(".notice")
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def casting_call_params
|
|
||||||
params.require(:casting_call).permit(:title, :description, :project_description, :interview_instructions, :interview_requirements, :questions)
|
|
||||||
end
|
|
||||||
|
|
||||||
def casting_call_params_with_email
|
|
||||||
casting_call_params.merge(user_email: Current.user.email)
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_project
|
|
||||||
@project = policy_scope(Project).find(params[:project_id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_casting_call
|
|
||||||
@casting_call = authorize casting_calls.find(params[:id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def casting_calls
|
|
||||||
authorize policy_scope(@project.casting_calls)
|
|
||||||
end
|
|
||||||
|
|
||||||
def build_casting_call
|
|
||||||
@casting_call = authorize @project.casting_calls.build
|
|
||||||
end
|
|
||||||
|
|
||||||
def log_create_analytics
|
|
||||||
TrackAnalyticsJob.perform_later(Current.user, Current.account, :track_create_casting_call, user_agent: request.user_agent, user_ip: request.remote_ip)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
class CastingSubmissionDownloadsController < ApplicationController
|
|
||||||
include ProjectContext
|
|
||||||
|
|
||||||
before_action :set_project, only: [:create]
|
|
||||||
before_action :set_casting_submission, only: :create
|
|
||||||
|
|
||||||
include ProjectLayout
|
|
||||||
|
|
||||||
def create
|
|
||||||
download = @project.downloads.create!(name: @casting_submission.zip_file_name, release_type: "CastingSubmission")
|
|
||||||
|
|
||||||
other_downloads_in_progress = @project.downloads.unfinished_desc_order.offset(1)
|
|
||||||
|
|
||||||
if other_downloads_in_progress.any?
|
|
||||||
in_progress_downloads_details = render_to_string "_other_pending_downloads", locals: { downloads: other_downloads_in_progress, release_type: "CastingSubmission" }, :layout => false
|
|
||||||
ProjectsChannel.broadcast_download_generation_update(download, in_progress_downloads_details)
|
|
||||||
else
|
|
||||||
ProjectsChannel.broadcast_download_generation_update(download, I18n.t("casting_submission_downloads.download.pending", release_type: "CastingSubmission"))
|
|
||||||
end
|
|
||||||
|
|
||||||
GenerateCastingSubmissionFilesZipJob.perform_later(@project, download, @casting_submission)
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def set_casting_submission
|
|
||||||
authorize(Download)
|
|
||||||
@casting_submission = policy_scope(@project.casting_submissions).find(params[:casting_submission_id])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
class CastingSubmissionsController < ApplicationController
|
|
||||||
before_action :set_project
|
|
||||||
before_action :set_casting_submission, only: [:show]
|
|
||||||
|
|
||||||
include ProjectLayout
|
|
||||||
|
|
||||||
def index
|
|
||||||
@casting_submissions = casting_submissions.completed.order_by_recent.paginate(page: params[:page])
|
|
||||||
end
|
|
||||||
|
|
||||||
def show
|
|
||||||
@casting_call = @casting_submission.casting_call
|
|
||||||
@files = @casting_submission.files.order("created_at DESC").paginate(page: params[:files_page])
|
|
||||||
render layout: 'application'
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def set_project
|
|
||||||
@project = policy_scope(Project).find(params[:project_id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_casting_submission
|
|
||||||
@casting_submission = authorize casting_submissions.find(params[:id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def casting_submissions
|
|
||||||
authorize policy_scope(CastingSubmission)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -7,7 +7,6 @@ class ContractTemplatesController < ApplicationController
|
|||||||
|
|
||||||
before_action :set_project, except: [:destroy]
|
before_action :set_project, except: [:destroy]
|
||||||
before_action :set_contract_template, only: [:destroy]
|
before_action :set_contract_template, only: [:destroy]
|
||||||
before_action :show_splash_screen, only: :index
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@contract_templates = contract_templates.non_archived.order_by_name.paginate(page: params[:page])
|
@contract_templates = contract_templates.non_archived.order_by_name.paginate(page: params[:page])
|
||||||
@@ -39,10 +38,6 @@ class ContractTemplatesController < ApplicationController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def show_splash_screen
|
|
||||||
render :splash if contract_templates.non_archived.count.zero?
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_contract_template
|
def set_contract_template
|
||||||
@contract_template = authorize contract_templates.find(params[:id])
|
@contract_template = authorize contract_templates.find(params[:id])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
class Public::CastingCallsController < Public::BaseController
|
|
||||||
skip_after_action :verify_authorized
|
|
||||||
before_action :set_casting_call, only: [:show]
|
|
||||||
|
|
||||||
def show
|
|
||||||
render layout: 'application'
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def set_casting_call
|
|
||||||
@casting_call = CastingCall.find_by_token(params[:token])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
class Public::CastingSubmissionsController < Public::BaseController
|
|
||||||
skip_after_action :verify_authorized
|
|
||||||
before_action :set_casting_submission, only: [:show, :update]
|
|
||||||
|
|
||||||
def show
|
|
||||||
end
|
|
||||||
|
|
||||||
def update
|
|
||||||
if @casting_submission.update(casting_submission_params)
|
|
||||||
redirect_to casting_submission_url(token: @casting_submission.token), notice: t(".notice")
|
|
||||||
else
|
|
||||||
render :show
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def set_casting_submission
|
|
||||||
@casting_submission = CastingSubmission.find_by_token(params[:token])
|
|
||||||
end
|
|
||||||
|
|
||||||
def casting_submission_params
|
|
||||||
params.require(:casting_submission).permit(files: [])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -46,7 +46,6 @@ class Public::MiscReleasesController < Public::BaseController
|
|||||||
.permit(
|
.permit(
|
||||||
person_params,
|
person_params,
|
||||||
guardian_params,
|
guardian_params,
|
||||||
questionnaire_params,
|
|
||||||
:signature_base64,
|
:signature_base64,
|
||||||
:locale,
|
:locale,
|
||||||
:contract_template,
|
:contract_template,
|
||||||
@@ -86,26 +85,6 @@ class Public::MiscReleasesController < Public::BaseController
|
|||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
def questionnaire_params
|
|
||||||
[
|
|
||||||
:question_1_answer,
|
|
||||||
:question_2_answer,
|
|
||||||
:question_3_answer,
|
|
||||||
:question_4_answer,
|
|
||||||
:question_5_answer,
|
|
||||||
:question_6_answer,
|
|
||||||
:question_7_answer,
|
|
||||||
:question_8_answer,
|
|
||||||
:question_9_answer,
|
|
||||||
:question_10_answer,
|
|
||||||
:question_11_answer,
|
|
||||||
:question_12_answer,
|
|
||||||
:question_13_answer,
|
|
||||||
:question_14_answer,
|
|
||||||
:question_15_answer,
|
|
||||||
]
|
|
||||||
end
|
|
||||||
|
|
||||||
def misc_release_params_with_locale
|
def misc_release_params_with_locale
|
||||||
misc_release_params.merge(locale: I18n.locale)
|
misc_release_params.merge(locale: I18n.locale)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -60,14 +60,9 @@ class StreamNotificationsController < ApplicationController
|
|||||||
def set_broadcast
|
def set_broadcast
|
||||||
if notification_type == "video.asset.static_renditions.ready"
|
if notification_type == "video.asset.static_renditions.ready"
|
||||||
live_stream_id = notification.dig(:stream_notification, :data, :live_stream_id)
|
live_stream_id = notification.dig(:stream_notification, :data, :live_stream_id)
|
||||||
@broadcast = Broadcast.find_by(stream_uid: live_stream_id)
|
@broadcast = Broadcast.find_by!(stream_uid: live_stream_id)
|
||||||
else
|
else
|
||||||
@broadcast = Broadcast.find_by(stream_uid: notification_object_id)
|
@broadcast = Broadcast.find_by!(stream_uid: notification_object_id)
|
||||||
end
|
|
||||||
|
|
||||||
if @broadcast.nil?
|
|
||||||
logger.info "Ignoring broadcast from other environment. Type = #{notification_type}. Id = #{live_stream_id} / #{notification_object_id}"
|
|
||||||
head :ok
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ class TaskRequestsController < ApplicationController
|
|||||||
before_action :set_project
|
before_action :set_project
|
||||||
before_action :build_task_request, only: [:new, :create]
|
before_action :build_task_request, only: [:new, :create]
|
||||||
before_action :set_task_request, only: [:show, :edit, :update, :cancel]
|
before_action :set_task_request, only: [:show, :edit, :update, :cancel]
|
||||||
before_action :show_splash_screen, only: :index
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@task_requests = task_requests.order_by_recent.paginate(page: params[:page])
|
@task_requests = task_requests.order_by_recent.paginate(page: params[:page])
|
||||||
@@ -19,7 +18,7 @@ class TaskRequestsController < ApplicationController
|
|||||||
if @task_request.save
|
if @task_request.save
|
||||||
log_create_analytics
|
log_create_analytics
|
||||||
taskme_url = url_for([:admin, @task_request])
|
taskme_url = url_for([:admin, @task_request])
|
||||||
SubmitHubspotFormJob.perform_later(email: @task_request.user_email, taskme_url: taskme_url, form_guid: ENV["HUBSPOT_TASK_REQUEST_FORM_GUID"])
|
SubmitHubspotTaskRequestFormJob.perform_later(@task_request.user_email, taskme_url)
|
||||||
else
|
else
|
||||||
render :new
|
render :new
|
||||||
end
|
end
|
||||||
@@ -47,10 +46,6 @@ class TaskRequestsController < ApplicationController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def show_splash_screen
|
|
||||||
render :splash if task_requests.count.zero?
|
|
||||||
end
|
|
||||||
|
|
||||||
def task_request_params
|
def task_request_params
|
||||||
params.require(:task_request).permit(:description, :deadline, :time_allowed, :additional_notes, files: [])
|
params.require(:task_request).permit(:description, :deadline, :time_allowed, :additional_notes, files: [])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ class VideosController < ApplicationController
|
|||||||
|
|
||||||
before_action :set_project, only: [:index, :new, :create, :landing]
|
before_action :set_project, only: [:index, :new, :create, :landing]
|
||||||
before_action :set_video, only: [:edit, :update]
|
before_action :set_video, only: [:edit, :update]
|
||||||
before_action :show_splash_screen, only: :index
|
|
||||||
|
|
||||||
def landing
|
def landing
|
||||||
authorize Video, :new?
|
authorize Video, :new?
|
||||||
@@ -61,10 +60,6 @@ class VideosController < ApplicationController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def show_splash_screen
|
|
||||||
render :splash if videos.count.zero?
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_project
|
def set_project
|
||||||
@project = policy_scope(Project).find(params[:project_id])
|
@project = policy_scope(Project).find(params[:project_id])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -13,13 +13,10 @@ module WordmarkHelper
|
|||||||
css += options[:class].to_s
|
css += options[:class].to_s
|
||||||
|
|
||||||
content_tag(:div, class: css) do
|
content_tag(:div, class: css) do
|
||||||
elements = [
|
safe_join [
|
||||||
content_tag(:span, t("shared.#{product_name}")),
|
content_tag(:span, t("shared.#{product_name}")),
|
||||||
content_tag(:span, t("shared.me"))
|
content_tag(:span, t("shared.me"))
|
||||||
]
|
]
|
||||||
prefix = options[:prefix]
|
|
||||||
elements.unshift content_tag(:span, "#{prefix} ") unless prefix.blank?
|
|
||||||
safe_join elements
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,43 +0,0 @@
|
|||||||
class GenerateCastingSubmissionFilesZipJob < ApplicationJob
|
|
||||||
queue_as :default
|
|
||||||
include Rails.application.routes.url_helpers
|
|
||||||
include ActionView::Helpers::UrlHelper
|
|
||||||
|
|
||||||
before_perform do |job|
|
|
||||||
@project = job.arguments.first
|
|
||||||
@download = job.arguments.second
|
|
||||||
@casting_submission = job.arguments.third
|
|
||||||
@download.update!(status: :pending)
|
|
||||||
end
|
|
||||||
|
|
||||||
def perform(project, download, casting_submission)
|
|
||||||
::CastingSubmissionFilesCollectionService.new(casting_submission.files, @download.name).build do |dir, files|
|
|
||||||
zipfile_name = "#{dir}/#{@download.name}.zip"
|
|
||||||
Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
|
|
||||||
files.each do |attachment|
|
|
||||||
zipfile.add(attachment, File.join("#{dir}/", attachment))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
@download.file.attach(io: File.open(zipfile_name), filename: @download.name)
|
|
||||||
end
|
|
||||||
rescue StandardError => e
|
|
||||||
Raven.extra_context(
|
|
||||||
message: "Failed to generate download for project (##{project.id})",
|
|
||||||
release_type: "CastingSubmission"
|
|
||||||
)
|
|
||||||
|
|
||||||
@download.failure!
|
|
||||||
ProjectsChannel.broadcast_download_generation_update(@download, I18n.t("casting_submission_downloads.download.failure"))
|
|
||||||
end
|
|
||||||
|
|
||||||
after_perform do |job|
|
|
||||||
if @download.pending? && @download.file.attached?
|
|
||||||
@download.success!
|
|
||||||
|
|
||||||
downloads_folder_link = link_to("Files > Downloads", project_downloads_path(I18n.locale, @project))
|
|
||||||
download_button = link_to("Download", rails_blob_path(@download.file, disposition: "attachment", only_path: true), class: "btn btn-success", target: :_blank)
|
|
||||||
ProjectsChannel.broadcast_download_generation_update(@download, I18n.t("casting_submission_downloads.download.success", downloads_folder_link: downloads_folder_link, download_button: download_button, release_type: "Casting Submission"))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,11 +1,17 @@
|
|||||||
class SubmitHubspotFormJob < ApplicationJob
|
class SubmitHubspotFormJob < ApplicationJob
|
||||||
queue_as :default
|
queue_as :default
|
||||||
|
|
||||||
def perform(params = {})
|
def perform(email, company_name, additional_params = {})
|
||||||
return unless params[:form_guid].present?
|
hubspot_form_guid = ENV["HUBSPOT_FORM_GUID"]
|
||||||
|
return unless hubspot_form_guid.present?
|
||||||
|
|
||||||
form = Hubspot::Form.new("guid" => params[:form_guid])
|
submission_params = {
|
||||||
is_form_sumitted = form.submit(params.except(:form_guid))
|
email: email,
|
||||||
|
company: company_name
|
||||||
|
}.merge(additional_params)
|
||||||
|
|
||||||
|
form = Hubspot::Form.new("guid" => hubspot_form_guid)
|
||||||
|
is_form_sumitted = form.submit(submission_params)
|
||||||
|
|
||||||
raise StandardError.new "Failed to submit the hubspot form data: #{is_form_sumitted}" unless is_form_sumitted
|
raise StandardError.new "Failed to submit the hubspot form data: #{is_form_sumitted}" unless is_form_sumitted
|
||||||
end
|
end
|
||||||
|
|||||||
18
app/jobs/submit_hubspot_task_request_form_job.rb
Normal file
18
app/jobs/submit_hubspot_task_request_form_job.rb
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
class SubmitHubspotTaskRequestFormJob < ApplicationJob
|
||||||
|
queue_as :default
|
||||||
|
|
||||||
|
def perform(user_email, taskme_url)
|
||||||
|
hubspot_task_request_form_guid = ENV["HUBSPOT_TASK_REQUEST_FORM_GUID"]
|
||||||
|
return unless hubspot_task_request_form_guid.present?
|
||||||
|
|
||||||
|
submission_params = {
|
||||||
|
email: user_email,
|
||||||
|
taskme_url: taskme_url
|
||||||
|
}
|
||||||
|
|
||||||
|
form = Hubspot::Form.new("guid" => hubspot_task_request_form_guid)
|
||||||
|
is_form_sumitted = form.submit(submission_params)
|
||||||
|
|
||||||
|
raise StandardError.new "Failed to submit the task request hubspot form data: #{is_form_sumitted}" unless is_form_sumitted
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -4,8 +4,6 @@ class Account < ApplicationRecord
|
|||||||
has_many :account_auths
|
has_many :account_auths
|
||||||
has_many :users, through: :account_auths
|
has_many :users, through: :account_auths
|
||||||
has_many :projects, dependent: :destroy
|
has_many :projects, dependent: :destroy
|
||||||
has_many :casting_calls, through: :projects
|
|
||||||
has_many :casting_submissions, through: :projects
|
|
||||||
has_many :videos, through: :projects
|
has_many :videos, through: :projects
|
||||||
has_many :contract_templates, through: :projects
|
has_many :contract_templates, through: :projects
|
||||||
|
|
||||||
@@ -61,8 +59,6 @@ class Account < ApplicationRecord
|
|||||||
MedicalRelease.where(project: projects),
|
MedicalRelease.where(project: projects),
|
||||||
MiscRelease.where(project: projects),
|
MiscRelease.where(project: projects),
|
||||||
MatchingRequest.where(project: projects),
|
MatchingRequest.where(project: projects),
|
||||||
CastingCall.where(project: projects),
|
|
||||||
self.casting_submissions,
|
|
||||||
self
|
self
|
||||||
])).sum(:byte_size).to_f
|
])).sum(:byte_size).to_f
|
||||||
end
|
end
|
||||||
@@ -88,11 +84,7 @@ class Account < ApplicationRecord
|
|||||||
end
|
end
|
||||||
|
|
||||||
def taskme_enabled?
|
def taskme_enabled?
|
||||||
ENV["TASKME_ENABLED"] && (plan_uid.to_s == "me_suite" || plan_uid.to_s == "taskme")
|
plan_uid.to_s == "me_suite" || plan_uid.to_s == "taskme"
|
||||||
end
|
|
||||||
|
|
||||||
def castme_enabled?
|
|
||||||
plan_uid.to_s == "me_suite" || plan_uid.to_s == "castme"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def plan_name
|
def plan_name
|
||||||
@@ -105,8 +97,6 @@ class Account < ApplicationRecord
|
|||||||
"ReleaseME"
|
"ReleaseME"
|
||||||
when "taskme"
|
when "taskme"
|
||||||
"TaskME"
|
"TaskME"
|
||||||
when "castme"
|
|
||||||
"CastME"
|
|
||||||
when "me_suite"
|
when "me_suite"
|
||||||
"ME Suite"
|
"ME Suite"
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
class CastingCall < ApplicationRecord
|
|
||||||
belongs_to :project
|
|
||||||
has_many :casting_submissions, dependent: :destroy
|
|
||||||
|
|
||||||
has_secure_token
|
|
||||||
|
|
||||||
def status
|
|
||||||
if cancelled?
|
|
||||||
"Cancelled"
|
|
||||||
else
|
|
||||||
"Active"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def cancelled?
|
|
||||||
self.cancelled_at.present?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
class CastingSubmission < ApplicationRecord
|
|
||||||
belongs_to :casting_call
|
|
||||||
has_many_attached :files
|
|
||||||
has_one_attached :interview_recording
|
|
||||||
|
|
||||||
has_secure_token
|
|
||||||
|
|
||||||
validates :performer_name, presence: true
|
|
||||||
|
|
||||||
scope :completed, -> { where.not(interviewed_at: nil) }
|
|
||||||
|
|
||||||
def zip_file_name
|
|
||||||
"#{self.casting_call.title.parameterize}_#{self.performer_name.parameterize}_#{Time.now.strftime('%Y-%m-%d_%H-%M-%S')}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -5,8 +5,6 @@ class ContractTemplate < ApplicationRecord
|
|||||||
include Syncable
|
include Syncable
|
||||||
include PgSearch
|
include PgSearch
|
||||||
|
|
||||||
NUMBER_OF_CUSTOM_FIELDS = 15
|
|
||||||
|
|
||||||
belongs_to :project
|
belongs_to :project
|
||||||
belongs_to :parent, class_name: 'ContractTemplate', optional: true
|
belongs_to :parent, class_name: 'ContractTemplate', optional: true
|
||||||
has_many :duplicates, class_name: 'ContractTemplate', foreign_key: 'parent_id'
|
has_many :duplicates, class_name: 'ContractTemplate', foreign_key: 'parent_id'
|
||||||
@@ -61,8 +59,4 @@ class ContractTemplate < ApplicationRecord
|
|||||||
def archive
|
def archive
|
||||||
update(archived_at: Time.zone.now)
|
update(archived_at: Time.zone.now)
|
||||||
end
|
end
|
||||||
|
|
||||||
def has_questionnaire?
|
|
||||||
(1..NUMBER_OF_CUSTOM_FIELDS).any? { |n| public_send("question_#{n}_text").presence }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -17,34 +17,12 @@ class MedicalRelease < ApplicationRecord
|
|||||||
composed_of :person_address,
|
composed_of :person_address,
|
||||||
class_name: "Address",
|
class_name: "Address",
|
||||||
mapping: [
|
mapping: [
|
||||||
%w[person_address_street1 street1],
|
%w(person_address_street1 street1),
|
||||||
%w[person_address_street2 street2],
|
%w(person_address_street2 street2),
|
||||||
%w[person_address_city city],
|
%w(person_address_city city),
|
||||||
%w[person_address_state state],
|
%w(person_address_state state),
|
||||||
%w[person_address_zip zip],
|
%w(person_address_zip zip),
|
||||||
%w[person_address_country country]
|
%w(person_address_country country)
|
||||||
]
|
|
||||||
|
|
||||||
composed_of :guardian_address,
|
|
||||||
class_name: 'Address',
|
|
||||||
mapping: [
|
|
||||||
%w[guardian_address_street1 street1],
|
|
||||||
%w[guardian_address_street2 street2],
|
|
||||||
%w[guardian_address_city city],
|
|
||||||
%w[guardian_address_state state],
|
|
||||||
%w[guardian_address_zip zip],
|
|
||||||
%w[guardian_address_country country]
|
|
||||||
]
|
|
||||||
|
|
||||||
composed_of :guardian_2_address,
|
|
||||||
class_name: 'Address',
|
|
||||||
mapping: [
|
|
||||||
%w[guardian_2_address_street1 street1],
|
|
||||||
%w[guardian_2_address_street2 street2],
|
|
||||||
%w[guardian_2_address_city city],
|
|
||||||
%w[guardian_2_address_state state],
|
|
||||||
%w[guardian_2_address_zip zip],
|
|
||||||
%w[guardian_2_address_country country]
|
|
||||||
]
|
]
|
||||||
|
|
||||||
def self.face_photo_acceptable_content_types
|
def self.face_photo_acceptable_content_types
|
||||||
@@ -54,7 +32,6 @@ class MedicalRelease < ApplicationRecord
|
|||||||
# These validations apply to all releases
|
# These validations apply to all releases
|
||||||
validates :person_first_name, :person_last_name, presence: true
|
validates :person_first_name, :person_last_name, presence: true
|
||||||
validates :person_email, email: true, allow_blank: true
|
validates :person_email, email: true, allow_blank: true
|
||||||
validate :valid_answers
|
|
||||||
|
|
||||||
acts_as_taggable_on :internal_tags, :tags
|
acts_as_taggable_on :internal_tags, :tags
|
||||||
|
|
||||||
@@ -99,15 +76,4 @@ class MedicalRelease < ApplicationRecord
|
|||||||
def contract_file_name
|
def contract_file_name
|
||||||
"#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime("%Y.%m.%d")}_#{release_number}_#{filename_suffix.parameterize}"
|
"#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime("%Y.%m.%d")}_#{release_number}_#{filename_suffix.parameterize}"
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def valid_answers
|
|
||||||
(1..ContractTemplate::NUMBER_OF_CUSTOM_FIELDS).each do |index|
|
|
||||||
if contract_template && contract_template["question_#{index}_text"].present? &&
|
|
||||||
public_send("question_#{index}_answer").blank?
|
|
||||||
errors.add("question_#{index}", I18n.t('medical_releases.custom_validation_errors.question_answer_is_required'))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -10,8 +10,6 @@ class MiscRelease < ApplicationRecord
|
|||||||
include GuardianName
|
include GuardianName
|
||||||
include GuardianPhotoable
|
include GuardianPhotoable
|
||||||
|
|
||||||
NUMBER_OF_CUSTOM_FIELDS = 15
|
|
||||||
|
|
||||||
composed_of :person_address,
|
composed_of :person_address,
|
||||||
class_name: "Address",
|
class_name: "Address",
|
||||||
mapping: [
|
mapping: [
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ class Project < ApplicationRecord
|
|||||||
has_many :talent_releases, dependent: :destroy
|
has_many :talent_releases, dependent: :destroy
|
||||||
has_many :medical_releases, dependent: :destroy
|
has_many :medical_releases, dependent: :destroy
|
||||||
has_many :misc_releases, dependent: :destroy
|
has_many :misc_releases, dependent: :destroy
|
||||||
has_many :casting_calls, dependent: :destroy
|
|
||||||
has_many :casting_submissions, through: :casting_calls
|
|
||||||
has_many :videos, dependent: :destroy
|
has_many :videos, dependent: :destroy
|
||||||
has_many :imports, dependent: :destroy
|
has_many :imports, dependent: :destroy
|
||||||
has_many :contract_templates, dependent: :destroy
|
has_many :contract_templates, dependent: :destroy
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
class CastingCallPolicy < ApplicationPolicy
|
|
||||||
def index?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def show?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def create?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def destroy?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def update?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def cancel?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
class CastingSubmissionPolicy < ApplicationPolicy
|
|
||||||
def index?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def show?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def create?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def destroy?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def update?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def complete?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def download?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -40,8 +40,4 @@ class ProjectPolicy < ApplicationPolicy
|
|||||||
def show_task_results?
|
def show_task_results?
|
||||||
show?
|
show?
|
||||||
end
|
end
|
||||||
|
|
||||||
def show_casting_submission_results?
|
|
||||||
show?
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
class CastingSubmissionFilesCollectionService
|
|
||||||
def initialize(files, folder_name)
|
|
||||||
@files = files
|
|
||||||
@folder_name = folder_name
|
|
||||||
end
|
|
||||||
|
|
||||||
def build
|
|
||||||
Dir.mktmpdir { |dir|
|
|
||||||
files.each do |file|
|
|
||||||
open("#{dir}/#{file.filename}", 'wb') do |tmp_file|
|
|
||||||
tmp_file << open(file.service_url.to_s).read
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
read_files = Dir.entries("#{dir}/").select { |f| !File.directory? f }
|
|
||||||
raise StandardError.new "Files not found." unless read_files.any?
|
|
||||||
yield(dir, read_files)
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
attr_reader :files, :folder_name
|
|
||||||
end
|
|
||||||
@@ -170,24 +170,6 @@ class Analytics
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def track_create_casting_call(user_agent:, user_ip:)
|
|
||||||
if analytics_enabled?
|
|
||||||
identify
|
|
||||||
track(
|
|
||||||
{
|
|
||||||
user_id: user.id,
|
|
||||||
event: "Casting call created",
|
|
||||||
properties: {
|
|
||||||
account: account.try(:name),
|
|
||||||
account_id: account.try(:id),
|
|
||||||
user_agent: user_agent,
|
|
||||||
ip: user_ip,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
attr_reader :user, :account, :backend
|
attr_reader :user, :account, :backend
|
||||||
|
|||||||
@@ -10,9 +10,6 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<%= link_to fa_icon("tasks fw", text: "Task Requests"), [:admin, :task_requests], class: class_string("nav-link", "active" => controller_name == "task_requests") %>
|
<%= link_to fa_icon("tasks fw", text: "Task Requests"), [:admin, :task_requests], class: class_string("nav-link", "active" => controller_name == "task_requests") %>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
<%= link_to fa_icon("video-camera fw", text: "Casting Submissions"), [:admin, :casting_submissions], class: class_string("nav-link", "active" => controller_name == "casting_submissions") %>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<%= link_to fa_icon("bug fw", text: "Errors"), "https://sentry.io/bigmedia/", class: "nav-link", target: :_blank %>
|
<%= link_to fa_icon("bug fw", text: "Errors"), "https://sentry.io/bigmedia/", class: "nav-link", target: :_blank %>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
<tr id="<%= dom_id(casting_submission) %>">
|
|
||||||
<td>
|
|
||||||
<%= casting_submission.casting_call.project.account.name.titleize %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<%= casting_submission.casting_call.title.titleize %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<%= casting_submission.performer_name %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<%= casting_submission.interview_date %>
|
|
||||||
</td>
|
|
||||||
<td class="text-right">
|
|
||||||
<div class="btn-group">
|
|
||||||
<%= button_tag "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">
|
|
||||||
<%= link_to fa_icon("video-camera", text: "View"), casting_submission_url(token: casting_submission.token), target: "_blank", class: "dropdown-item" %>
|
|
||||||
<%= link_to fa_icon("pencil", text: "Edit"), [:edit, :admin, casting_submission], class: "dropdown-item" %>
|
|
||||||
<% unless casting_submission.interviewed_at.present? %>
|
|
||||||
<%= link_to fa_icon("check", text: "Complete"), [:complete, :admin, casting_submission], method: :post, class: "dropdown-item" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
<%= errors_summary_for casting_submission %>
|
|
||||||
|
|
||||||
<%= bootstrap_form_with model: model, local: true do |form| %>
|
|
||||||
<%= form.text_field :performer_name, required: true %>
|
|
||||||
<%= form.grouped_collection_select(:casting_call_id, @accounts, :casting_calls, :name, :id, :title, { prompt: "Select a Casting Call", required: true, class: "form-control custom-select" }) %>
|
|
||||||
<%= form.text_field :interview_date, class: "datepicker-control" %>
|
|
||||||
<%= form.text_field :zoom_meeting_url %>
|
|
||||||
|
|
||||||
<% unless casting_submission.new_record? %>
|
|
||||||
<%= form.file_field :interview_recording, accept: "video/*", data: { direct_upload_url: rails_direct_uploads_url, aws_bucket: ENV['AWS_BUCKET'], aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], signer_url: multipart_signatures_url } %>
|
|
||||||
|
|
||||||
<% if casting_submission.interview_recording.attached? %>
|
|
||||||
<p>
|
|
||||||
<%= link_to casting_submission.interview_recording do %>
|
|
||||||
<%= fa_icon "file-text-o" %> <%= casting_submission.interview_recording.filename %>
|
|
||||||
<% end %>
|
|
||||||
<span class="text-muted"><%= fa_icon "long-arrow-left" %> <em>Current interview recording</em></span>
|
|
||||||
</p>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<div class="row align-items-center text-center mt-4">
|
|
||||||
<%= link_to t("shared.cancel"), [:admin, :casting_submissions], class: "col-3 text-reset" %>
|
|
||||||
<div class="col-9">
|
|
||||||
<%= form.submit class: class_string("btn btn-block", ["btn-success", "btn-primary"] => casting_submission.new_record?), data: { disable_with: t("shared.disable_with") } %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: "Edit Casting Submission", close_action_path: [:admin, :casting_submissions] %>
|
|
||||||
<div class="card-body">
|
|
||||||
<%= render "form", model: [:admin, @casting_submission], casting_submission: @casting_submission %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<div class="d-flex flex-row justify-content-between align-items-center mb-3">
|
|
||||||
<% if policy(CastingCall).new? %>
|
|
||||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, :admin, :casting_submission], class: "btn btn-primary mb-3" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<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>Account Name</th>
|
|
||||||
<th>Casting Call Request</th>
|
|
||||||
<th>Perfomer's Name</th>
|
|
||||||
<th>Interview Date</th>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="users">
|
|
||||||
<% if @casting_submissions.any? %>
|
|
||||||
<%= render @casting_submissions %>
|
|
||||||
<% else %>
|
|
||||||
<tr>
|
|
||||||
<td colspan="20" class="py-4 text-center text-muted"><%= t(".empty") %></td>
|
|
||||||
</tr>
|
|
||||||
<% end %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="casting_submissions_pagination" class="mt-3">
|
|
||||||
<%= will_paginate @casting_submissions %>
|
|
||||||
</div>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: t(".heading"), close_action_path: [:admin, :casting_submissions] %>
|
|
||||||
<div class="card-body">
|
|
||||||
<%= render "form", model: [:admin, @casting_submission], casting_submission: @casting_submission, casting_calls: @casting_calls %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -11,14 +11,12 @@
|
|||||||
<hr class="divider-light mx-n4">
|
<hr class="divider-light mx-n4">
|
||||||
<nav>
|
<nav>
|
||||||
<ul class="nav nav-pills nav-pills-dark flex-column">
|
<ul class="nav nav-pills nav-pills-dark flex-column">
|
||||||
<% if Current.account.taskme_enabled? %>
|
<li class="nav-item">
|
||||||
<li class="nav-item">
|
<%= link_to [project, :task_requests], class: class_string("nav-link", "active" => controller_name == "task_requests") do %>
|
||||||
<%= link_to [project, :task_requests], class: class_string("nav-link", "active" => controller_name == "task_requests") do %>
|
<%= lock_icon_for(Current.account, :taskme) %>
|
||||||
<%= lock_icon_for(Current.account, :taskme) %>
|
<%= product_wordmark :task_me, class: class_string("d-inline-block", "disabled" => !Current.account.taskme_enabled?) %>
|
||||||
<%= product_wordmark :task_me, class: class_string("d-inline-block", "disabled" => !Current.account.taskme_enabled?) %>
|
<% end %>
|
||||||
<% end %>
|
</li>
|
||||||
</li>
|
|
||||||
<% end %>
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<%= link_to [project, :contract_templates], class: class_string("nav-link", "active" => %w(contract_templates release_template_imports).include?(controller_name)) do %>
|
<%= link_to [project, :contract_templates], class: class_string("nav-link", "active" => %w(contract_templates release_template_imports).include?(controller_name)) do %>
|
||||||
<%= lock_icon_for Current.account, :releaseme %>
|
<%= lock_icon_for Current.account, :releaseme %>
|
||||||
@@ -43,12 +41,6 @@
|
|||||||
<%= product_wordmark :deliver_me, class: class_string("d-inline-block", "disabled" => !Current.account.deliverme_enabled?) %>
|
<%= product_wordmark :deliver_me, class: class_string("d-inline-block", "disabled" => !Current.account.deliverme_enabled?) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
<%= link_to [project, :casting_calls], class: class_string("nav-link", "active" => controller_name == "casting_calls") do %>
|
|
||||||
<%= lock_icon_for(Current.account, :castme) %>
|
|
||||||
<%= product_wordmark :cast_me, class: class_string("d-inline-block", "disabled" => !Current.account.castme_enabled?) %>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
<hr class="divider-light mx-n4">
|
<hr class="divider-light mx-n4">
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
<div class="d-flex flex-row">
|
|
||||||
<div class="d-flex flex-column">
|
|
||||||
<%= product_wordmark :direct_me, prefix: t('.headings.welcome'), class: "h2" %>
|
|
||||||
<p class="text-muted"><%= t '.headings.subtitle' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
|
|
||||||
<% if policy(Broadcast).new? %>
|
|
||||||
<%= link_to t(".actions.create_stream"), [:new, @project, :broadcast], class: "btn btn-success border align-self-center h-50 pb-2" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="pt-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<div class="card-body p-0">
|
|
||||||
<div class="embed-responsive embed-responsive-16by9">
|
|
||||||
<div class="embed-responsive-item">
|
|
||||||
<iframe src="https://player.vimeo.com/video/435200320?app_id=122963" width="426" height="240" frameborder="0" allow="autoplay; fullscreen" allowfullscreen title="DirectME_How to_V5"></iframe>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.how_it_works' %></h3>
|
|
||||||
<ol>
|
|
||||||
<li><%= t '.list_items.create_stream' %></li>
|
|
||||||
<li><%= t '.list_items.share_stream' %></li>
|
|
||||||
<li><%= t '.list_items.launch_video_conference' %></li>
|
|
||||||
<li><%= t '.list_items.share_files' %></li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.benefits' %></h3>
|
|
||||||
<ul class="fa-ul ml-5">
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.stream_from_mobile_app'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.direct_shoots_anywhere'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.share_live_stream'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.stream_multiple_cameras'))) %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<%= casting_call.created_at.strftime('%D') %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<%= casting_call.title %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<%= casting_call.status %>
|
|
||||||
</td>
|
|
||||||
<td class="text-right">
|
|
||||||
<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">
|
|
||||||
<%= link_to fa_icon("link fw", text: "Copy Audition URL"), casting_call_url(casting_call.token), class: "dropdown-item", data: { behavior: "clipboard" } %>
|
|
||||||
<% if policy(casting_call).show? %>
|
|
||||||
<%= link_to fa_icon("tasks fw", text: "View"), [casting_call.project, casting_call], class: "dropdown-item", target: '_blank' %>
|
|
||||||
<% end %>
|
|
||||||
<% if policy(casting_call).edit? %>
|
|
||||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, casting_call.project, casting_call], class: "dropdown-item" %>
|
|
||||||
<% end %>
|
|
||||||
<% if policy(casting_call).cancel? && !casting_call.cancelled? %>
|
|
||||||
<%= link_to fa_icon("ban fw", text: "Cancel"), [:cancel, casting_call.project, casting_call], class: "dropdown-item", method: :post %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
<%= errors_summary_for casting_call %>
|
|
||||||
|
|
||||||
<%= bootstrap_form_with model: model, url: [@project, @casting_call, show_chat: true], local: true do |form| %>
|
|
||||||
<div class="alert alert-info text-center text-md-left">
|
|
||||||
<%= fa_icon "info-circle" %>
|
|
||||||
<strong><%= t '.info_message' %></strong>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= form.text_field :title %>
|
|
||||||
<%= form.text_area :description %>
|
|
||||||
<%= form.text_area :project_description %>
|
|
||||||
<%= field_set_tag t(".headings.chatbot") do %>
|
|
||||||
<%= form.text_area :interview_instructions, rows: 6 %>
|
|
||||||
<%= form.text_area :questions, rows: 8 %>
|
|
||||||
<%= form.text_area :interview_requirements, rows: 6 %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<div class="row align-items-center text-center mt-4">
|
|
||||||
<%= link_to t("shared.cancel"), [project, :casting_calls], class: "col-3 text-reset" %>
|
|
||||||
<div class="col-9">
|
|
||||||
<%= form.submit class: class_string("btn btn-block", ["btn-success", "btn-primary"] => casting_call.new_record?), data: { disable_with: t("shared.disable_with") } %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: t(".heading"), close_action_path: [@project, :casting_calls] %>
|
|
||||||
<div class="card-body">
|
|
||||||
<%= render "form", model: [@project, @casting_call], casting_call: @casting_call, project: @project %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
<%= product_wordmark :cast_me, class: "small mb-3" %>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<div class="d-md-flex d-sm-flex flex-sm-column flex-md-row flex-md-wrap mb-3">
|
|
||||||
<% if policy(CastingCall).new? %>
|
|
||||||
<%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :casting_call], class: "btn btn-primary mb-2" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<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><%= t(".table_headers.casting_call_created_on") %></th>
|
|
||||||
<th><%= t(".table_headers.casting_call_title") %></th>
|
|
||||||
<th><%= t(".table_headers.casting_call_status") %></th>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="casting_calls">
|
|
||||||
<% if @casting_calls.any? %>
|
|
||||||
<%= render @casting_calls %>
|
|
||||||
<% else %>
|
|
||||||
<tr>
|
|
||||||
<td colspan="20" class="py-4 text-center text-muted"><%= t(".empty") %></td>
|
|
||||||
</tr>
|
|
||||||
<% end %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="casting_calls_pagination" class="mt-3">
|
|
||||||
<%= will_paginate @casting_calls %>
|
|
||||||
</div>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: t(".heading"), close_action_path: [@project, :casting_calls] %>
|
|
||||||
<div class="card-body">
|
|
||||||
<%= render "form", model: [@project, @casting_call], casting_call: @casting_call, project: @project %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,38 +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">
|
|
||||||
<%= product_wordmark(:cast_me, class: 'navbar-brand') %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: @casting_call.title, close_action_path: [@project, :casting_calls] %>
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-sm-12">
|
|
||||||
<dl>
|
|
||||||
<%= description_list_pair_for @casting_call, :title, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :description, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :project_description, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :created_at, append: ":" %>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6 col-sm-12">
|
|
||||||
<dl>
|
|
||||||
<%= description_list_pair_for @casting_call, :status, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :interview_instructions, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :interview_requirements, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :questions, append: ":" %>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% unless @casting_call.cancelled? %>
|
|
||||||
<div class="row align-items-center justify-content-center mt-3">
|
|
||||||
<%= link_to "Schedule an Audition", ENV["CASTME_AUDITION_BOOKING_URL"], target: "_blank", class: "btn btn-primary" %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
<p>Your <%= release_type.titleize %> files are being prepared for download. You will be notified when it's ready.
|
|
||||||
</p>
|
|
||||||
<p class="mt-3">The following downloads are also in progress:</p>
|
|
||||||
<ul>
|
|
||||||
<% downloads.each do |download| %>
|
|
||||||
<% if download.release_type == "reports"%>
|
|
||||||
<li><%= download.release_type.titleize %> (as of <%= time_ago_in_words(download.created_at) %> ago)
|
|
||||||
</li>
|
|
||||||
<% elsif download.release_type == "CastingSubmission"%>
|
|
||||||
<li><%= download.release_type.titleize %> files (as of <%= time_ago_in_words(download.created_at) %> ago)
|
|
||||||
</li>
|
|
||||||
<% else %>
|
|
||||||
<li><%= download.release_type.titleize %> contracts (as of <%= time_ago_in_words(download.created_at) %> ago)
|
|
||||||
</li>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
<tr id="<%= dom_id(casting_submission) %>">
|
|
||||||
<td>
|
|
||||||
<%= casting_submission.casting_call.project.account.name.titleize %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<%= casting_submission.casting_call.title&.titleize %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<%= casting_submission.performer_name %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<%= casting_submission.interviewed_at %>
|
|
||||||
</td>
|
|
||||||
<td class="text-right">
|
|
||||||
<div class="btn-group">
|
|
||||||
<%= button_tag "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(CastingSubmission).show? %>
|
|
||||||
<%= link_to fa_icon("video-camera", text: "View"), [@project, casting_submission], target: "_blank", class: "dropdown-item" %>
|
|
||||||
<% end %>
|
|
||||||
<% if policy(CastingSubmission).download? %>
|
|
||||||
<%= link_to fa_icon("download", text: "Download"), [@project, :casting_submission_downloads, casting_submission_id: casting_submission.id], method: :post, remote: true, class: "dropdown-item" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
<li class="my-2" id="<%= dom_id(file) %>">
|
|
||||||
<% if file.variable? %>
|
|
||||||
<%= link_to image_tag(file.variant(resize_and_pad: [300, 300, background: "#F7F8F9"]), class: "bg-light img-thumbnail img-fluid"), file, target: "_blank" %>
|
|
||||||
<% else %>
|
|
||||||
<div class="border rounded bg-light text-muted d-flex justify-content-center align-items-center fix-h-and-w">
|
|
||||||
<%= link_to file, target: "_blank" do %>
|
|
||||||
<%= fa_icon("file", style: "font-size: 2rem") %>
|
|
||||||
<div class="mt-2"><%= file.filename %></div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
<div class="overflow-auto mh-30">
|
|
||||||
<ul class="list-unstyled d-flex flex-column align-items-center text-center" id="casting_submission_file_list_<%= casting_submission.id %>">
|
|
||||||
<% if files.present? %>
|
|
||||||
<%= render partial: "casting_submissions/file", collection: files %>
|
|
||||||
<% else %>
|
|
||||||
<li class="my-3">
|
|
||||||
Files will appear here.
|
|
||||||
</li>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
<div class="d-flex mt-2 justify-content-center" id="casting_submission_files_pagination_<%= casting_submission.id %>">
|
|
||||||
<%= will_paginate(files, param_name: 'files_page', params: { active_files_tab: casting_submission.id }) if files.present? %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<% if casting_submission.interview_recording.present? %>
|
|
||||||
<div id="casting_submission_video" class="embed-responsive-item"></div>
|
|
||||||
<% else %>
|
|
||||||
<div id="casting_submission_video" class="embed-responsive-item">
|
|
||||||
<table class="w-100 h-100 bg-secondary">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center align-middle text-white">
|
|
||||||
Video player will appear here when the interview recording is available.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
<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>Account Name</th>
|
|
||||||
<th>Casting Call Request</th>
|
|
||||||
<th>Perfomer's Name</th>
|
|
||||||
<th>Interviewed At</th>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="users">
|
|
||||||
<% if @casting_submissions.any? %>
|
|
||||||
<%= render @casting_submissions %>
|
|
||||||
<% else %>
|
|
||||||
<tr>
|
|
||||||
<td colspan="20" class="py-4 text-center text-muted"><%= t(".empty") %></td>
|
|
||||||
</tr>
|
|
||||||
<% end %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="casting_submissions_pagination" class="mt-3">
|
|
||||||
<%= will_paginate @casting_submissions %>
|
|
||||||
</div>
|
|
||||||
@@ -1,79 +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">
|
|
||||||
<%= product_wordmark(:cast_me, class: 'navbar-brand') %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-8 col-md-12 mb-3">
|
|
||||||
<div class="card shadow-sm">
|
|
||||||
<div class="card-header">
|
|
||||||
<div class="d-flex justify-content-start flex-column">
|
|
||||||
<h1 class="h2 mb-1"><%= @casting_submission.performer_name %></h1>
|
|
||||||
<h1 class="h6 mb-1"><%= @casting_call.title %></h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="card-body p-0">
|
|
||||||
<div class="embed-responsive embed-responsive-16by9">
|
|
||||||
<%= render partial: 'casting_submissions/video', locals: { casting_submission: @casting_submission } %>
|
|
||||||
<% if @casting_submission.interview_recording.present? %>
|
|
||||||
<%= javascript_tag nonce: true do %>
|
|
||||||
new Clappr.Player({
|
|
||||||
parentId: '#casting_submission_video',
|
|
||||||
source: "<%= rails_blob_url(@casting_submission.interview_recording, host: AppHost.new.domain_with_port) %>",
|
|
||||||
width: '100%',
|
|
||||||
height: '100%',
|
|
||||||
mute: true,
|
|
||||||
autoPlay: true,
|
|
||||||
hlsMinimumDvrSize: 1
|
|
||||||
});
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4 col-md-12 mb-3">
|
|
||||||
<div class="card shadow-sm mb-3">
|
|
||||||
<div class="card-header">
|
|
||||||
<ul class="nav nav-tabs card-header-tabs">
|
|
||||||
<li class="nav-item">
|
|
||||||
<%= link_to "Home", "#home", class: class_string("nav-link", "active" => !params[:active_tab].present?), data: { toggle: "tab" } %>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<%= link_to "Files", "#files", class: class_string("nav-link", "active" => params[:active_tab] == "files"), data: { toggle: "tab" } %>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="card-body p-3">
|
|
||||||
<div class="tab-content">
|
|
||||||
<div class="<%= class_string("tab-pane fade show", "active" => !params[:active_tab].present?) %>" id="home">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<dl>
|
|
||||||
<%= description_list_pair_for @casting_call, :title, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :status, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :created_at, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :description, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :project_description, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :interview_instructions, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :interview_requirements, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :questions, append: ":" %>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="<%= class_string("tab-pane fade show", "active" => params[:active_tab] == 'files') %>" id="files">
|
|
||||||
<div class="tab-pane fade show active" id="files_casting_submission_<%= @casting_submission.id %>">
|
|
||||||
<%= render partial: 'casting_submissions/files_section', locals: { casting_submission: @casting_submission, files: @files } %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<%= field_set_tag content_tag(:span, t(".release_info.heading"), class: "h6 text-muted text-uppercase") do %>
|
<%= field_set_tag content_tag(:span, t(".release_info.heading"), class: "h6 text-muted text-uppercase") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :name, wrapper_class: "col-sm-6" %>
|
<%= form.text_field :name, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.select :release_type, options_for_release_type_select(project, @release_type), { wrapper_class: "col-sm-6" }, data: { toggle: "collapse-select", target_show_values_mapping: { "#guardian_clause": %w(appearance talent misc medical), "#fee_field": %w(appearance talent location material acquired_media), "#exploitable_rights_fields": %w(appearance talent location material acquired_media), "#custom_fields": %w(medical misc) } }, class: "form-control custom-select" %>
|
<%= form.select :release_type, options_for_release_type_select(project, @release_type), { wrapper_class: "col-sm-6" }, data: { toggle: "collapse-select", target_show_values_mapping: { "#guardian_clause": %w(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) } }, class: "form-control custom-select" %>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row" id="fee_field">
|
<div class="form-row" id="fee_field">
|
||||||
<%= form.number_field :fee, min:"0", max:"99999999", step: "0.01", prepend: "$", wrapper_class: "col-sm-6" %>
|
<%= form.number_field :fee, min:"0", max:"99999999", step: "0.01", prepend: "$", wrapper_class: "col-sm-6" %>
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
<div class="d-flex flex-row">
|
|
||||||
<div class="d-flex flex-column">
|
|
||||||
<%= product_wordmark :release_me, prefix: t('.headings.welcome'), class: "h2" %>
|
|
||||||
<p class="text-muted"><%= t '.headings.subtitle' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
|
|
||||||
<% if policy(ContractTemplate).new? %>
|
|
||||||
<%= link_to t(".actions.create_template"), [:new, @project, :contract_template], class: "btn btn-success border align-self-center h-50 pb-2" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="pt-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<div class="card-body p-0">
|
|
||||||
<div class="embed-responsive embed-responsive-16by9">
|
|
||||||
<div class="embed-responsive-item">
|
|
||||||
<iframe src="https://player.vimeo.com/video/435200486?app_id=122963" width="426" height="240" frameborder="0" allow="autoplay; fullscreen" allowfullscreen title="ReleaseME_How to_V5"></iframe>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.how_it_works' %></h3>
|
|
||||||
<ol>
|
|
||||||
<li><%= t '.list_items.create_releases' %></li>
|
|
||||||
<li><%= t '.list_items.download_mobile_app' %></li>
|
|
||||||
<li><%= t '.list_items.print_QR_code' %></li>
|
|
||||||
<li><%= t '.list_items.releases_automatically_organized' %></li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.benefits' %></h3>
|
|
||||||
<ul class="fa-ul ml-5">
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.all_releases_available'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.manage_large_audience'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.add_tags_and_notes'))) %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<p class="heading"><strong><u><%= t ".heading.#{releasable.model_name.param_key}" %></u></strong></p>
|
<p class="heading"><strong><u><%= t ".heading" %></u></strong></p>
|
||||||
|
|
||||||
<% (1..releasable.class::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
||||||
<% if contract_template.public_send("question_#{n}_text").present? %>
|
<% if contract_template.public_send("question_#{n}_text").present? %>
|
||||||
<p><strong><%= contract_template.public_send("question_#{n}_text") %></strong></p>
|
<p><strong><%= contract_template.public_send("question_#{n}_text") %></strong></p>
|
||||||
<p><%= releasable.public_send("question_#{n}_answer") %></p>
|
<p><%= releasable.public_send("question_#{n}_answer") %></p>
|
||||||
@@ -16,9 +16,9 @@
|
|||||||
<%= contract_template.guardian_clause %>
|
<%= contract_template.guardian_clause %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if releasable.model_name.in? %w(MedicalRelease MiscRelease) %>
|
<% if releasable.model_name == "MedicalRelease" %>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<%= render "contracts/questionnaire", releasable: releasable, contract_template: contract_template, preview: preview %>
|
<%= render "contracts/medical_questionnaire", releasable: releasable, contract_template: contract_template, preview: preview %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|||||||
@@ -21,11 +21,6 @@
|
|||||||
<%= link_to t("projects.show.tasks"), [@project, :tasks], class: "text-decoration-none text-reset stretched-link" %>
|
<%= link_to t("projects.show.tasks"), [@project, :tasks], class: "text-decoration-none text-reset stretched-link" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if policy(Project).show_casting_submission_results? %>
|
|
||||||
<%= render "folder_card" do %>
|
|
||||||
<%= link_to t("projects.show.casting_submissions"), [@project, :casting_submissions], class: "text-decoration-none text-reset stretched-link" %>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -72,12 +72,12 @@
|
|||||||
<div class="<%= class_string("collapse" => !@appearance_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@appearance_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_first_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.text_field :guardian_last_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_last_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.phone_field :guardian_phone, required: @appearance_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.phone_field :guardian_phone, required: @appearance_release.minor?, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field :guardian_email, required: @appearance_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_email, required: @appearance_release.minor?, wrapper_class: "col-sm-6" %>
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian", required: @appearance_release.minor?, data: { required_tag: "guardian" } %>
|
<%= render "shared/address_fields", form: form, subject: "guardian", required: @appearance_release.minor? %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -1,29 +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">
|
|
||||||
<%= product_wordmark(:cast_me, class: 'navbar-brand') %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: @casting_call.title %>
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<dl>
|
|
||||||
<%= description_list_pair_for @casting_call, :title, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :description, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_call, :project_description, append: ":" %>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% unless @casting_call.cancelled? %>
|
|
||||||
<div class="row align-items-center justify-content-center mt-3">
|
|
||||||
<%= link_to "Schedule an Audition", ENV["CASTME_AUDITION_BOOKING_URL"], target: "_blank", class: "btn btn-primary" %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: "Casting submission details" %>
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12">
|
|
||||||
<dl>
|
|
||||||
<%= description_list_pair_for @casting_submission, :performer_name, append: ":" %>
|
|
||||||
<%= description_list_pair_for @casting_submission, :interview_date, append: ":" %>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<h6>INTERVIEW FILES:</h6>
|
|
||||||
<hr/>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12">
|
|
||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: t(".heading") %>
|
|
||||||
<div class="card-body">
|
|
||||||
<%= errors_summary_for @casting_submission %>
|
|
||||||
<%= bootstrap_form_with model: @casting_submission, url: casting_submission_path(token: @casting_submission.token), local: true do |form| %>
|
|
||||||
<div class="field d-none">
|
|
||||||
<%= form.label :files %>
|
|
||||||
<%= form.file_field :files, disable: true, direct_upload: true, multiple: true, id: "casting_call_interivew_files", hide_label: true %>
|
|
||||||
<% @casting_submission.files.each do |file| %>
|
|
||||||
<% unless file.persisted? %>
|
|
||||||
<%= hidden_field_tag "#{@casting_submission.model_name.param_key}[files][]", file.signed_id %>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="dropzone field border-dashed"
|
|
||||||
data-accepted-files="audio/*,image/*,video/*"
|
|
||||||
data-behavior="dropzone"
|
|
||||||
data-file-input-id="casting_call_interivew_files"
|
|
||||||
data-existing-files="<%= mock_photos_json(@casting_submission.files) %>"
|
|
||||||
data-placeholder="<%= dropzone_placeholder_message_for(@casting_submission) %>"
|
|
||||||
data-submit-button="#submit_folder"></div>
|
|
||||||
|
|
||||||
<div class="mt-5">
|
|
||||||
<%= form.button t(".update"), class: "btn btn-block btn-lg btn-success", data: { disable_with: t("shared.disable_with") } %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row align-items-center justify-content-center mt-3">
|
|
||||||
<%= link_to "Start Interview", @casting_submission.zoom_meeting_url, target: "_blank", class: "btn btn-primary" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.medical_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.medical_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
||||||
<% if @contract_template.public_send("question_#{n}_text").present? %>
|
<% if @contract_template.public_send("question_#{n}_text").present? %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_area "question_#{n}_answer", required: true, wrapper_class: "col-sm-12", label: @contract_template.public_send("question_#{n}_text") %>
|
<%= form.text_area "question_#{n}_answer", wrapper_class: "col-sm-12", label: @contract_template.public_send("question_#{n}_text") %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
@@ -59,12 +59,14 @@
|
|||||||
<div class="<%= class_string("collapse" => !@medical_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@medical_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @medical_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_first_name, required: @medical_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.text_field :guardian_last_name, required: @medical_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_last_name, required: @medical_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.phone_field :guardian_phone, required: @medical_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.phone_field :guardian_phone, required: @medical_release.minor?, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field :guardian_email, required: @medical_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian", required: @medical_release.minor?, data: { required_tag: "guardian" } %>
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_email, required: @medical_release.minor?, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian", required: @medical_release.minor? %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -20,19 +20,6 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if @contract_template.has_questionnaire? %>
|
|
||||||
<%= card_field_set_tag t(".questionnaire.heading") do %>
|
|
||||||
<% (1..MiscRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
|
||||||
<% if @contract_template.public_send("question_#{n}_text").present? %>
|
|
||||||
<div class="form-row">
|
|
||||||
<%= form.text_area "question_#{n}_answer", wrapper_class: "col-sm-12", label: @contract_template.public_send("question_#{n}_text") %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
<hr>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<%= card_field_set_tag t(".personal_info.heading") do %>
|
<%= card_field_set_tag t(".personal_info.heading") do %>
|
||||||
<div class="alert alert-warning font-weight-bold"><%= t ".personal_info.instructions" %></div>
|
<div class="alert alert-warning font-weight-bold"><%= t ".personal_info.instructions" %></div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
@@ -56,12 +43,14 @@
|
|||||||
<div class="<%= class_string("collapse" => !@misc_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@misc_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @misc_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_first_name, required: @misc_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.text_field :guardian_last_name, required: @misc_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_last_name, required: @misc_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian", data: { required_tag: "guardian" } %>
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -46,12 +46,12 @@
|
|||||||
<div class="<%= class_string("collapse" => !@talent_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@talent_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @talent_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_first_name, required: @talent_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.text_field :guardian_last_name, required: @talent_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_last_name, required: @talent_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %>
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian", data: { required_tag: "guardian" } %>
|
<%= render "shared/address_fields", form: form, subject: "guardian" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
<% field_name_prefix = subject.present? ? "#{subject}_" : "" %>
|
<% field_name_prefix = subject.present? ? "#{subject}_" : "" %>
|
||||||
<% required = required || false %>
|
<% required = required || false %>
|
||||||
<% data = data || nil %>
|
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field "#{field_name_prefix}address_street1", required: required, wrapper_class: "col-sm-6", data: data %>
|
<%= form.text_field "#{field_name_prefix}address_street1", required: required, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field "#{field_name_prefix}address_street2", wrapper_class: "col-sm-6" %>
|
<%= form.text_field "#{field_name_prefix}address_street2", wrapper_class: "col-sm-6" %>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field "#{field_name_prefix}address_city", required: required, wrapper_class: "col-sm-6", data: data %>
|
<%= form.text_field "#{field_name_prefix}address_city", required: required, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field "#{field_name_prefix}address_state", required: required, wrapper_class: "col-sm-3", data: data %>
|
<%= form.text_field "#{field_name_prefix}address_state", required: required, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.text_field "#{field_name_prefix}address_zip", required: required, wrapper_class: "col-sm-3", data: data %>
|
<%= form.text_field "#{field_name_prefix}address_zip", required: required, wrapper_class: "col-sm-3" %>
|
||||||
</div>
|
</div>
|
||||||
<%= form.form_group "#{field_name_prefix}address_country" do %>
|
<%= form.form_group "#{field_name_prefix}address_country" do %>
|
||||||
<%= form.label "#{field_name_prefix}address_country" %>
|
<%= form.label "#{field_name_prefix}address_country" %>
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
<% if params[:show_chat] %>
|
|
||||||
<%= javascript_include_tag "//js.hs-scripts.com/7344617.js", defer: "defer", async: true, id: "hs-script-loader" %>
|
|
||||||
<%= javascript_tag nonce: true do %>
|
|
||||||
function onConversationsAPIReady() {
|
|
||||||
window.HubSpotConversations.widget.load({ widgetOpen: true });
|
|
||||||
window.HubSpotConversations.widget.open();
|
|
||||||
}
|
|
||||||
if (window.HubSpotConversations) {
|
|
||||||
onConversationsAPIReady();
|
|
||||||
} else {
|
|
||||||
window.hsConversationsOnReady = [onConversationsAPIReady];
|
|
||||||
}
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
@@ -1,2 +1,15 @@
|
|||||||
<%= render "shared/initiate_hubspot_chat" %>
|
<% if params[:show_chat] %>
|
||||||
|
<%= javascript_include_tag "//js.hs-scripts.com/7344617.js", defer: "defer", async: true, id: "hs-script-loader" %>
|
||||||
|
<%= javascript_tag nonce: true do %>
|
||||||
|
function onConversationsAPIReady() {
|
||||||
|
window.HubSpotConversations.widget.load({ widgetOpen: true });
|
||||||
|
window.HubSpotConversations.widget.open();
|
||||||
|
}
|
||||||
|
if (window.HubSpotConversations) {
|
||||||
|
onConversationsAPIReady();
|
||||||
|
} else {
|
||||||
|
window.hsConversationsOnReady = [onConversationsAPIReady];
|
||||||
|
}
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
<p class="alert alert-success p-3 lead text-center"><%= t '.success_message' %></p>
|
<p class="alert alert-success p-3 lead text-center"><%= t '.success_message' %></p>
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
<div class="d-flex flex-row">
|
|
||||||
<div class="d-flex flex-column">
|
|
||||||
<%= product_wordmark :task_me, prefix: t('.headings.welcome'), class: "h2" %>
|
|
||||||
<p class="text-muted"><%= t '.headings.subtitle' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
|
|
||||||
<% if policy(TaskRequest).new? %>
|
|
||||||
<%= link_to t(".actions.create_task_request"), [:new, @project, :task_request], class: "btn btn-success border align-self-center h-50 pb-2" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="pt-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<div class="card-body p-0">
|
|
||||||
<div class="embed-responsive embed-responsive-16by9">
|
|
||||||
<div class="embed-responsive-item">
|
|
||||||
<table class="w-100 h-100 bg-secondary">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center align-middle text-white">
|
|
||||||
Video tutorial will be available soon
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.how_it_works' %></h3>
|
|
||||||
<ol>
|
|
||||||
<li><%= t '.list_items.enter_task_request' %></li>
|
|
||||||
<li><%= t '.list_items.state_deadline' %></li>
|
|
||||||
<li><%= t '.list_items.enter_number_of_hours' %></li>
|
|
||||||
<li><%= t '.list_items.virtual_assistant_delivers_task' %></li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.benefits' %></h3>
|
|
||||||
<ul class="fa-ul ml-5">
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.reduces_need_for_full_time_staff'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.reduces_workload'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.spend_per_task'))) %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
<div class="d-flex flex-row">
|
|
||||||
<div class="d-flex flex-column">
|
|
||||||
<%= product_wordmark :deliver_me, prefix: t('.headings.welcome'), class: "h2" %>
|
|
||||||
<p class="text-muted"><%= t '.headings.subtitle' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
|
|
||||||
<% if policy(Video).new? %>
|
|
||||||
<%= link_to t(".actions.upload_video"), [:new, @project, :video], class: "btn btn-success border align-self-center h-50 pb-2" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="pt-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<div class="card-body p-0">
|
|
||||||
<div class="embed-responsive embed-responsive-16by9">
|
|
||||||
<div class="embed-responsive-item">
|
|
||||||
<iframe src="https://player.vimeo.com/video/435200434?app_id=122963" width="426" height="240" frameborder="0" allow="autoplay; fullscreen" allowfullscreen title="DeliverME_How to_V5"></iframe>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.how_it_works' %></h3>
|
|
||||||
<ol>
|
|
||||||
<li><%= t '.list_items.import_video' %></li>
|
|
||||||
<li><%= t '.list_items.import_EDLs' %></li>
|
|
||||||
<li><%= t '.list_items.AI_generates_documents' %></li>
|
|
||||||
<li><%= t '.list_items.download_documents' %></li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.benefits' %></h3>
|
|
||||||
<ul class="fa-ul ml-5">
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.reduces_labor_cost'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.more_accurate'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.simplifies_cue_sheets'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.production_elements_logs'))) %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -70,9 +70,6 @@ en:
|
|||||||
person_phone: Phone
|
person_phone: Phone
|
||||||
person_photo: Photo
|
person_photo: Photo
|
||||||
signed_on: Date
|
signed_on: Date
|
||||||
casting_call:
|
|
||||||
interview_instructions: Welcome message
|
|
||||||
interview_requirements: Goodbye message
|
|
||||||
location_release:
|
location_release:
|
||||||
person_company: Company
|
person_company: Company
|
||||||
person_email: Email
|
person_email: Email
|
||||||
@@ -100,22 +97,6 @@ en:
|
|||||||
application:
|
application:
|
||||||
header:
|
header:
|
||||||
sign_out: Sign Out
|
sign_out: Sign Out
|
||||||
casting_submissions:
|
|
||||||
complete:
|
|
||||||
notice: The casting submission has been completed
|
|
||||||
create:
|
|
||||||
notice: The casting submission has been created
|
|
||||||
index:
|
|
||||||
actions:
|
|
||||||
new: Create Casting Submission
|
|
||||||
empty: Casting submissions will appear here
|
|
||||||
mark_as_completed:
|
|
||||||
alert: Failed to mark casting submission as completed
|
|
||||||
notice: The casting submission has been marked as completed
|
|
||||||
new:
|
|
||||||
heading: New Casting Submission
|
|
||||||
update:
|
|
||||||
notice: The casting submission has been updated
|
|
||||||
task_requests:
|
task_requests:
|
||||||
index:
|
index:
|
||||||
empty: Task requests will appear here
|
empty: Task requests will appear here
|
||||||
@@ -226,63 +207,9 @@ en:
|
|||||||
new:
|
new:
|
||||||
heading:
|
heading:
|
||||||
Create Live Stream
|
Create Live Stream
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo
|
|
||||||
create_stream: Create New Live Stream
|
|
||||||
headings:
|
|
||||||
benefits: Benefits
|
|
||||||
how_it_works: How It Works
|
|
||||||
subtitle: Remote directing and video village solution
|
|
||||||
welcome: Welcome to
|
|
||||||
list_items:
|
|
||||||
create_stream: Create a live stream
|
|
||||||
direct_shoots_anywhere: Direct shoots anywhere around the world
|
|
||||||
launch_video_conference: Launch Video Conference using plugin
|
|
||||||
share_files: Share files via the ME Suite mobile app
|
|
||||||
share_live_stream: Share live stream with clients all over the the world
|
|
||||||
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
|
|
||||||
bulk_taggings:
|
bulk_taggings:
|
||||||
new_bulk_tag_modal:
|
new_bulk_tag_modal:
|
||||||
submit: Add
|
submit: Add
|
||||||
casting_calls:
|
|
||||||
cancel:
|
|
||||||
notice: The casting call request has been cancelled successfully
|
|
||||||
casting_call:
|
|
||||||
actions:
|
|
||||||
manage: Manage
|
|
||||||
create:
|
|
||||||
notice: The casting call request has been created successfully.
|
|
||||||
edit:
|
|
||||||
heading: Edit Casting Call
|
|
||||||
form:
|
|
||||||
headings:
|
|
||||||
chatbot: Chatbot Instructions
|
|
||||||
info_message: After submitting this casting call request, you'll be connected via chat with a ME Suite representative.
|
|
||||||
index:
|
|
||||||
actions:
|
|
||||||
new: Create Casting Call
|
|
||||||
empty: Casting calls will appear here
|
|
||||||
table_headers:
|
|
||||||
casting_call_created_on: Created On
|
|
||||||
casting_call_status: Status
|
|
||||||
casting_call_title: Casting Title
|
|
||||||
new:
|
|
||||||
heading: New Casting Call
|
|
||||||
update:
|
|
||||||
notice: The casting call request has been updated
|
|
||||||
casting_submission_downloads:
|
|
||||||
download:
|
|
||||||
failure: Your download could not be generated.
|
|
||||||
pending: "Your %{release_type} files are being prepared for download. You will be notified when it's ready."
|
|
||||||
success: "Your %{release_type} files are ready. Download now, or retrieve later in the %{downloads_folder_link} folder. %{download_button}"
|
|
||||||
casting_submissions:
|
|
||||||
index:
|
|
||||||
empty: Casting Submission results will appear here.
|
|
||||||
show:
|
|
||||||
empty: Casting Submission files and recorded meeetings will appear here.
|
|
||||||
contract_downloads:
|
contract_downloads:
|
||||||
download:
|
download:
|
||||||
failure: Your download could not be generated.
|
failure: Your download could not be generated.
|
||||||
@@ -306,7 +233,7 @@ en:
|
|||||||
archived_notice: The release template has been archived
|
archived_notice: The release template has been archived
|
||||||
form:
|
form:
|
||||||
custom_fields:
|
custom_fields:
|
||||||
heading: Questionnaire
|
heading: Medical Questionnaire
|
||||||
instructions: Please list the questions you wish the signer to answer. Any unused question fields will be hidden.
|
instructions: Please list the questions you wish the signer to answer. Any unused question fields will be hidden.
|
||||||
exploitable_rights:
|
exploitable_rights:
|
||||||
heading: Exploitable Rights
|
heading: Exploitable Rights
|
||||||
@@ -325,24 +252,9 @@ en:
|
|||||||
signed_release_count: No. Signed Releases
|
signed_release_count: No. Signed Releases
|
||||||
new:
|
new:
|
||||||
heading: New Release Template
|
heading: New Release Template
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo
|
|
||||||
create_template: Create New Release Template
|
|
||||||
headings:
|
|
||||||
benefits: Benefits
|
|
||||||
how_it_works: How It Works
|
|
||||||
subtitle: The easiest way to create and manage releases.
|
|
||||||
welcome: Welcome to
|
|
||||||
list_items:
|
|
||||||
add_tags_and_notes: Add tags and notes to releases for added organization and searchability
|
|
||||||
all_releases_available: All release types available including Covid Medical, Appearance, Location and more
|
|
||||||
create_releases: Create releases for your video shoot
|
|
||||||
download_mobile_app: Download the ME Suite mobile app
|
|
||||||
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
|
|
||||||
contracts:
|
contracts:
|
||||||
|
medical_questionnaire:
|
||||||
|
heading: Medical Questionnaire
|
||||||
photos:
|
photos:
|
||||||
guardian_2_photo_heading: Second guardian photo
|
guardian_2_photo_heading: Second guardian photo
|
||||||
guardian_photo_heading: Guardian photo
|
guardian_photo_heading: Guardian photo
|
||||||
@@ -352,10 +264,6 @@ en:
|
|||||||
minor_photos_heading:
|
minor_photos_heading:
|
||||||
one: Minor photo
|
one: Minor photo
|
||||||
other: Minor photos
|
other: Minor photos
|
||||||
questionnaire:
|
|
||||||
heading:
|
|
||||||
medical_release: Medical Questionnaire
|
|
||||||
misc_release: Questionnaire
|
|
||||||
signature_page:
|
signature_page:
|
||||||
heading: Signature Page
|
heading: Signature Page
|
||||||
instructions: "By signing this signature page, as of the date listed below, I hereby agree, acknowledge and accept the terms and conditions listed in this %{releasable_name}."
|
instructions: "By signing this signature page, as of the date listed below, I hereby agree, acknowledge and accept the terms and conditions listed in this %{releasable_name}."
|
||||||
@@ -416,15 +324,11 @@ en:
|
|||||||
notice: The release has been updated
|
notice: The release has been updated
|
||||||
helpers:
|
helpers:
|
||||||
help:
|
help:
|
||||||
casting_call:
|
task_request:
|
||||||
interview_instructions: This is the first message the chatbot, BiGGiE, will send. Please include all information and instructions you wish the person to read prior to starting the casting interview.
|
time_allowed: Minimum of 2 hours, no partial hours allowed
|
||||||
interview_requirements: Please enter a final message and include any post-interview instructions (for example, submitting a headshot, additional photos, videos, etc).
|
|
||||||
questions: Please list, one-by-one, all of the questions you wish the chatbot, BiGGiE, to ask the person.
|
|
||||||
contract_template:
|
contract_template:
|
||||||
fee: Leave at $0.00 for no-fee
|
fee: Leave at $0.00 for no-fee
|
||||||
guardian_clause: Leave blank if not required for this contract
|
guardian_clause: Leave blank if not required for this contract
|
||||||
task_request:
|
|
||||||
time_allowed: Minimum of 2 hours, no partial hours allowed
|
|
||||||
video:
|
video:
|
||||||
audio_only_edl_file: If you do not upload an Audio Only EDL, the software will not generate a BiG Music Cue Sheet.
|
audio_only_edl_file: If you do not upload an Audio Only EDL, the software will not generate a BiG Music Cue Sheet.
|
||||||
edl_file: Please follow our directions on exporting the All Tracks EDL. Failure to do so could result in inaccurate and incomplete reporting.
|
edl_file: Please follow our directions on exporting the All Tracks EDL. Failure to do so could result in inaccurate and incomplete reporting.
|
||||||
@@ -478,13 +382,6 @@ en:
|
|||||||
person_last_name: Last name
|
person_last_name: Last name
|
||||||
person_name: Name
|
person_name: Name
|
||||||
person_phone: Phone number
|
person_phone: Phone number
|
||||||
casting_call:
|
|
||||||
description: Casting search description
|
|
||||||
interview_instructions: Welcome message
|
|
||||||
interview_requirements: Goodbye message
|
|
||||||
project_description: Project description
|
|
||||||
questions: Questions
|
|
||||||
title: Casting search title
|
|
||||||
location_release:
|
location_release:
|
||||||
address_city: City
|
address_city: City
|
||||||
address_country: Country
|
address_country: Country
|
||||||
@@ -554,30 +451,6 @@ en:
|
|||||||
person_last_name: Last name
|
person_last_name: Last name
|
||||||
person_name: Name
|
person_name: Name
|
||||||
person_phone: Phone number
|
person_phone: Phone number
|
||||||
misc_release:
|
|
||||||
guardian_address_city: Guardian city
|
|
||||||
guardian_address_country: Guardian country
|
|
||||||
guardian_address_state: Guardian state
|
|
||||||
guardian_address_street1: Guardian address
|
|
||||||
guardian_address_street2: Guardian address (Line 2)
|
|
||||||
guardian_address_zip: Guardian zip code
|
|
||||||
guardian_email: Guardian email
|
|
||||||
guardian_first_name: Guardian first name
|
|
||||||
guardian_last_name: Guardian last name
|
|
||||||
guardian_phone: Guardian phone
|
|
||||||
minor: Is the person a minor?
|
|
||||||
person_address_city: City
|
|
||||||
person_address_country: Country
|
|
||||||
person_address_state: State
|
|
||||||
person_address_street1: Address
|
|
||||||
person_address_street2: Address (Line 2)
|
|
||||||
person_address_zip: Zip code
|
|
||||||
person_date_of_birth: Date of birth
|
|
||||||
person_email: Email address
|
|
||||||
person_first_name: First name
|
|
||||||
person_last_name: Last name
|
|
||||||
person_name: Name
|
|
||||||
person_phone: Phone number
|
|
||||||
music_release:
|
music_release:
|
||||||
person_address: Address
|
person_address: Address
|
||||||
person_address_city: City
|
person_address_city: City
|
||||||
@@ -734,8 +607,6 @@ en:
|
|||||||
broadcast:
|
broadcast:
|
||||||
create: Create Live Stream
|
create: Create Live Stream
|
||||||
update: Save Changes
|
update: Save Changes
|
||||||
casting_submission:
|
|
||||||
create: Create Casting Submission
|
|
||||||
contract_template:
|
contract_template:
|
||||||
create: Create Release Template
|
create: Create Release Template
|
||||||
directory:
|
directory:
|
||||||
@@ -840,8 +711,6 @@ en:
|
|||||||
update:
|
update:
|
||||||
notice: The material release has been updated
|
notice: The material release has been updated
|
||||||
medical_releases:
|
medical_releases:
|
||||||
custom_validation_errors:
|
|
||||||
question_answer_is_required: answer is required
|
|
||||||
destroy:
|
destroy:
|
||||||
alert: The medical release has been deleted
|
alert: The medical release has been deleted
|
||||||
index:
|
index:
|
||||||
@@ -999,7 +868,6 @@ en:
|
|||||||
show:
|
show:
|
||||||
acquired_media_release: Acquired Media Releases (%{count})
|
acquired_media_release: Acquired Media Releases (%{count})
|
||||||
appearance_release: Appearance Releases (%{count})
|
appearance_release: Appearance Releases (%{count})
|
||||||
casting_submissions: Casting Submissions
|
|
||||||
downloads: Downloads
|
downloads: Downloads
|
||||||
location_release: Location Releases (%{count})
|
location_release: Location Releases (%{count})
|
||||||
material_release: Material Releases (%{count})
|
material_release: Material Releases (%{count})
|
||||||
@@ -1062,12 +930,6 @@ en:
|
|||||||
broadcasts:
|
broadcasts:
|
||||||
show:
|
show:
|
||||||
alert: That broadcast is no longer available
|
alert: That broadcast is no longer available
|
||||||
casting_submissions:
|
|
||||||
show:
|
|
||||||
heading: Files
|
|
||||||
update: Upload
|
|
||||||
update:
|
|
||||||
notice: Your files have been uploaded successfully
|
|
||||||
location_releases:
|
location_releases:
|
||||||
create:
|
create:
|
||||||
notice: Your release has been signed. Thank you!
|
notice: Your release has been signed. Thank you!
|
||||||
@@ -1162,8 +1024,6 @@ en:
|
|||||||
instructions: Now, enter your personal information.
|
instructions: Now, enter your personal information.
|
||||||
photo:
|
photo:
|
||||||
heading: Photos
|
heading: Photos
|
||||||
questionnaire:
|
|
||||||
heading: Questionnaire
|
|
||||||
signature:
|
signature:
|
||||||
heading: Signature
|
heading: Signature
|
||||||
talent_releases:
|
talent_releases:
|
||||||
@@ -1244,7 +1104,6 @@ en:
|
|||||||
ago: ago
|
ago: ago
|
||||||
back: Back
|
back: Back
|
||||||
cancel: Cancel
|
cancel: Cancel
|
||||||
cast_me: Cast
|
|
||||||
clear: Clear
|
clear: Clear
|
||||||
close: Close
|
close: Close
|
||||||
csv: CSV
|
csv: CSV
|
||||||
@@ -1343,23 +1202,6 @@ en:
|
|||||||
heading: New Task Request
|
heading: New Task Request
|
||||||
show:
|
show:
|
||||||
empty: Attached files will appear here.
|
empty: Attached files will appear here.
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo
|
|
||||||
create_task_request: Create Task Request
|
|
||||||
headings:
|
|
||||||
benefits: Benefits
|
|
||||||
how_it_works: How It Works
|
|
||||||
subtitle: Pay-by-the-hour, digitally-enabled remote assistants
|
|
||||||
welcome: Welcome to
|
|
||||||
list_items:
|
|
||||||
enter_number_of_hours: Enter the number of hours you want the task worked on
|
|
||||||
enter_task_request: Enter your task request
|
|
||||||
reduces_need_for_full_time_staff: Reduces need to hire full-time staff
|
|
||||||
reduces_workload: Reduces workload for current staff
|
|
||||||
spend_per_task: Spend as little as $60 per task
|
|
||||||
state_deadline: State your deadline
|
|
||||||
virtual_assistant_delivers_task: Virtual assistant delivers task via TaskME portal
|
|
||||||
task_request:
|
task_request:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
@@ -1431,24 +1273,6 @@ en:
|
|||||||
new:
|
new:
|
||||||
heading: Upload Video
|
heading: Upload Video
|
||||||
subheading: 2 of 2 Files
|
subheading: 2 of 2 Files
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo
|
|
||||||
upload_video: Upload New Video
|
|
||||||
headings:
|
|
||||||
benefits: Benefits
|
|
||||||
how_it_works: How It Works
|
|
||||||
subtitle: Automate your deliverable documents
|
|
||||||
welcome: Welcome to
|
|
||||||
list_items:
|
|
||||||
AI_generates_documents: AI generates deliverable documents
|
|
||||||
download_documents: Download deliverable documents
|
|
||||||
import_EDLs: Import your EDLs
|
|
||||||
import_video: Import your video
|
|
||||||
more_accurate: More accurate than human-generated reports
|
|
||||||
production_elements_logs: Production Elements Logs, and more
|
|
||||||
reduces_labor_cost: Reduces labor costs
|
|
||||||
simplifies_cue_sheets: Simplifies Music Cue Sheets, Graphic Cue Sheets
|
|
||||||
update:
|
update:
|
||||||
notice: The video has been updated
|
notice: The video has been updated
|
||||||
video:
|
video:
|
||||||
|
|||||||
@@ -57,25 +57,6 @@ es:
|
|||||||
pdf:
|
pdf:
|
||||||
do_not_copy_warning: "Do not copy (ES)"
|
do_not_copy_warning: "Do not copy (ES)"
|
||||||
serial_number_label: "Serial Number (ES)"
|
serial_number_label: "Serial Number (ES)"
|
||||||
broadcasts:
|
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo
|
|
||||||
create_stream: Create New Live Stream
|
|
||||||
headings:
|
|
||||||
benefits: Benefits
|
|
||||||
how_it_works: How It Works
|
|
||||||
subtitle: Remote directing and video village solution
|
|
||||||
welcome: Welcome to
|
|
||||||
list_items:
|
|
||||||
create_stream: Create a live stream
|
|
||||||
direct_shoots_anywhere: Direct shoots anywhere around the world
|
|
||||||
launch_video_conference: Launch Video Conference using plugin
|
|
||||||
share_files: Share files via the ME Suite mobile app
|
|
||||||
share_live_stream: Share live stream with clients all over the the world
|
|
||||||
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
|
|
||||||
contract_templates:
|
contract_templates:
|
||||||
blank_contracts:
|
blank_contracts:
|
||||||
create:
|
create:
|
||||||
@@ -89,23 +70,6 @@ es:
|
|||||||
heading: Legal (ES)
|
heading: Legal (ES)
|
||||||
release_info:
|
release_info:
|
||||||
heading: Release Info (ES)
|
heading: Release Info (ES)
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo (ES)
|
|
||||||
create_template: Create New Release Template (ES)
|
|
||||||
headings:
|
|
||||||
benefits: ""
|
|
||||||
how_it_works: How It Works (ES)
|
|
||||||
subtitle: The easiest way to create and manage releases. (ES)
|
|
||||||
welcome: Welcome to (ES)
|
|
||||||
list_items:
|
|
||||||
add_tags_and_notes: Add tags and notes to releases for added organization and searchability (ES)
|
|
||||||
all_releases_available: All release types available including Covid Medical, Appearance, Location and more (ES)
|
|
||||||
create_releases: Create releases for your video shoot (ES)
|
|
||||||
download_mobile_app: Download the ME Suite mobile app (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)
|
|
||||||
contracts:
|
contracts:
|
||||||
photos:
|
photos:
|
||||||
guardian_2_photo_heading: Second guardian photo (ES)
|
guardian_2_photo_heading: Second guardian photo (ES)
|
||||||
@@ -272,8 +236,6 @@ es:
|
|||||||
broadcast:
|
broadcast:
|
||||||
create: Create Live Stream (ES)
|
create: Create Live Stream (ES)
|
||||||
update: Save Changes (ES)
|
update: Save Changes (ES)
|
||||||
casting_submission:
|
|
||||||
create: Create casting submission (ES)
|
|
||||||
create: 'Crear %{model}'
|
create: 'Crear %{model}'
|
||||||
update: 'Actualizar %{model}'
|
update: 'Actualizar %{model}'
|
||||||
location_releases:
|
location_releases:
|
||||||
@@ -284,9 +246,6 @@ es:
|
|||||||
form:
|
form:
|
||||||
photos:
|
photos:
|
||||||
dropzone_label: Tap to take a photo of Licensed Material (optional) (ES)
|
dropzone_label: Tap to take a photo of Licensed Material (optional) (ES)
|
||||||
medical_releases:
|
|
||||||
custom_validation_errors:
|
|
||||||
question_answer_is_required: answer is required (ES)
|
|
||||||
public:
|
public:
|
||||||
appearance_releases:
|
appearance_releases:
|
||||||
create:
|
create:
|
||||||
@@ -399,44 +358,8 @@ es:
|
|||||||
index:
|
index:
|
||||||
table_headers:
|
table_headers:
|
||||||
task_request_description: Description (ES)
|
task_request_description: Description (ES)
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo (ES)
|
|
||||||
create_task_request: Create Task Request
|
|
||||||
headings:
|
|
||||||
benefits: Benefits (ES)
|
|
||||||
how_it_works: How It Works (ES)
|
|
||||||
subtitle: Pay-by-the-hour, digitally-enabled remote assistants (ES)
|
|
||||||
welcome: Welcome to (ES)
|
|
||||||
list_items:
|
|
||||||
enter_number_of_hours: Enter the number of hours you want the task worked on (ES)
|
|
||||||
enter_task_request: Enter your task request (ES)
|
|
||||||
reduces_need_for_full_time_staff: Reduces need to hire full-time staff (ES)
|
|
||||||
reduces_workload: Reduces workload for current staff (ES)
|
|
||||||
spend_per_task: Spend as little as $60 per task (ES)
|
|
||||||
state_deadline: State your deadline (ES)
|
|
||||||
virtual_assistant_delivers_task: Virtual assistant delivers task via TaskME portal (ES)
|
|
||||||
task_request:
|
task_request:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage (ES)
|
manage: Manage (ES)
|
||||||
open_deliverable: Open Deliverable (ES)
|
open_deliverable: Open Deliverable (ES)
|
||||||
read_more: read more (ES)
|
read_more: read more (ES)
|
||||||
videos:
|
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo (ES)
|
|
||||||
upload_video: Upload New Video (ES)
|
|
||||||
headings:
|
|
||||||
benefits: Benefits (ES)
|
|
||||||
how_it_works: How It Works (ES)
|
|
||||||
subtitle: Automate your deliverable documents (ES)
|
|
||||||
welcome: Welcome to (ES)
|
|
||||||
list_items:
|
|
||||||
AI_generates_documents: AI generates deliverable documents (ES)
|
|
||||||
download_documents: Download deliverable documents (ES)
|
|
||||||
import_EDLs: Import your EDLs (ES)
|
|
||||||
import_video: Import your video (ES)
|
|
||||||
more_accurate: More accurate than human-generated reports (ES)
|
|
||||||
production_elements_logs: Production Elements Logs, and more (ES)
|
|
||||||
reduces_labor_cost: Reduces labor costs (ES)
|
|
||||||
simplifies_cue_sheets: Simplifies Music Cue Sheets, Graphic Cue Sheets (ES)
|
|
||||||
|
|||||||
@@ -32,9 +32,6 @@ Rails.application.routes.draw do
|
|||||||
resource :masquerade, only: :create
|
resource :masquerade, only: :create
|
||||||
end
|
end
|
||||||
resources :task_requests, only: [:index, :edit, :update, :show]
|
resources :task_requests, only: [:index, :edit, :update, :show]
|
||||||
resources :casting_submissions do
|
|
||||||
post :complete, on: :member
|
|
||||||
end
|
|
||||||
|
|
||||||
root to: "accounts#index", as: :signed_in_root
|
root to: "accounts#index", as: :signed_in_root
|
||||||
end
|
end
|
||||||
@@ -69,7 +66,6 @@ Rails.application.routes.draw do
|
|||||||
resource :contract_downloads, only: [:create]
|
resource :contract_downloads, only: [:create]
|
||||||
resources :downloads, only: [:index, :destroy]
|
resources :downloads, only: [:index, :destroy]
|
||||||
resource :report_downloads, only: [:create]
|
resource :report_downloads, only: [:create]
|
||||||
resource :casting_submission_downloads, only: [:create]
|
|
||||||
resources :videos, only: [:index, :new, :create, :edit, :update] do
|
resources :videos, only: [:index, :new, :create, :edit, :update] do
|
||||||
collection do
|
collection do
|
||||||
get :landing
|
get :landing
|
||||||
@@ -109,13 +105,7 @@ Rails.application.routes.draw do
|
|||||||
post :cancel
|
post :cancel
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
resources :casting_calls, except: :destroy do
|
|
||||||
member do
|
|
||||||
post :cancel
|
|
||||||
end
|
|
||||||
end
|
|
||||||
resources :tasks, only: :index
|
resources :tasks, only: :index
|
||||||
resources :casting_submissions, only: [:index, :show]
|
|
||||||
end
|
end
|
||||||
resource :profile, only: [:show, :update]
|
resource :profile, only: [:show, :update]
|
||||||
resources :videos, only: [] do
|
resources :videos, only: [] do
|
||||||
@@ -144,8 +134,6 @@ Rails.application.routes.draw do
|
|||||||
resources :broadcasts, param: :token, only: [:show, :update] do
|
resources :broadcasts, param: :token, only: [:show, :update] do
|
||||||
resource :zoom_meeting, only: [:show]
|
resource :zoom_meeting, only: [:show]
|
||||||
end
|
end
|
||||||
resources :casting_calls, param: :token, only: [:show]
|
|
||||||
resources :casting_submissions, param: :token, only: [:show, :update]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
RELEASES = [:acquired_media_releases, :appearance_releases, :talent_releases, :material_releases, :location_releases]
|
RELEASES = [:acquired_media_releases, :appearance_releases, :talent_releases, :material_releases, :location_releases]
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
class CreateCastingCalls < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
create_table :casting_calls do |t|
|
|
||||||
t.references :project
|
|
||||||
t.string :title
|
|
||||||
t.string :user_email
|
|
||||||
t.text :description
|
|
||||||
t.text :project_description
|
|
||||||
t.text :interview_instructions
|
|
||||||
t.text :interview_requirements
|
|
||||||
t.text :questions
|
|
||||||
t.datetime :cancelled_at
|
|
||||||
|
|
||||||
t.timestamps
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
class CreateCastingCallInterviews < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
create_table :casting_call_interviews do |t|
|
|
||||||
t.references :casting_call, foreign_key: true
|
|
||||||
t.string :performer_name
|
|
||||||
t.string :zoom_meeting_url
|
|
||||||
t.datetime :interview_date
|
|
||||||
|
|
||||||
t.timestamps
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
class AddQuestionAnswersToMiscReleases < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
add_column :misc_releases, :question_1_answer, :text
|
|
||||||
add_column :misc_releases, :question_2_answer, :text
|
|
||||||
add_column :misc_releases, :question_3_answer, :text
|
|
||||||
add_column :misc_releases, :question_4_answer, :text
|
|
||||||
add_column :misc_releases, :question_5_answer, :text
|
|
||||||
add_column :misc_releases, :question_6_answer, :text
|
|
||||||
add_column :misc_releases, :question_7_answer, :text
|
|
||||||
add_column :misc_releases, :question_8_answer, :text
|
|
||||||
add_column :misc_releases, :question_9_answer, :text
|
|
||||||
add_column :misc_releases, :question_10_answer, :text
|
|
||||||
add_column :misc_releases, :question_11_answer, :text
|
|
||||||
add_column :misc_releases, :question_12_answer, :text
|
|
||||||
add_column :misc_releases, :question_13_answer, :text
|
|
||||||
add_column :misc_releases, :question_14_answer, :text
|
|
||||||
add_column :misc_releases, :question_15_answer, :text
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
class AddTokenToCastingCalls < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
add_column :casting_calls, :token, :string
|
|
||||||
add_index :casting_calls, :token, unique: true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
class AddTokenToCastingCallInterviews < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
add_column :casting_call_interviews, :token, :string
|
|
||||||
add_index :casting_call_interviews, :token, unique: true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
class AddInterviewedAtToCastingCallInterview < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
add_column :casting_call_interviews, :interviewed_at, :datetime
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
class RenameCastingCallInterviewsToCastingSubmissions < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
rename_table :casting_call_interviews, :casting_submissions
|
|
||||||
end
|
|
||||||
end
|
|
||||||
208
db/structure.sql
208
db/structure.sql
@@ -9,6 +9,20 @@ SET xmloption = content;
|
|||||||
SET client_min_messages = warning;
|
SET client_min_messages = warning;
|
||||||
SET row_security = off;
|
SET row_security = off;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: fuzzystrmatch; Type: EXTENSION; Schema: -; Owner: -
|
-- Name: fuzzystrmatch; Type: EXTENSION; Schema: -; Owner: -
|
||||||
--
|
--
|
||||||
@@ -317,8 +331,8 @@ CREATE TABLE public.appearance_releases (
|
|||||||
person_last_name character varying,
|
person_last_name character varying,
|
||||||
guardian_first_name character varying,
|
guardian_first_name character varying,
|
||||||
guardian_last_name character varying,
|
guardian_last_name character varying,
|
||||||
identifier character varying,
|
|
||||||
guardian_email character varying,
|
guardian_email character varying,
|
||||||
|
identifier character varying,
|
||||||
person_address_street2 character varying,
|
person_address_street2 character varying,
|
||||||
person_address_city character varying,
|
person_address_city character varying,
|
||||||
person_address_state character varying,
|
person_address_state character varying,
|
||||||
@@ -555,82 +569,6 @@ CREATE SEQUENCE public.broadcasts_id_seq
|
|||||||
ALTER SEQUENCE public.broadcasts_id_seq OWNED BY public.broadcasts.id;
|
ALTER SEQUENCE public.broadcasts_id_seq OWNED BY public.broadcasts.id;
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_calls; Type: TABLE; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE TABLE public.casting_calls (
|
|
||||||
id bigint NOT NULL,
|
|
||||||
project_id bigint,
|
|
||||||
title character varying,
|
|
||||||
user_email character varying,
|
|
||||||
description text,
|
|
||||||
project_description text,
|
|
||||||
interview_instructions text,
|
|
||||||
interview_requirements text,
|
|
||||||
questions text,
|
|
||||||
cancelled_at timestamp without time zone,
|
|
||||||
created_at timestamp(6) without time zone NOT NULL,
|
|
||||||
updated_at timestamp(6) without time zone NOT NULL,
|
|
||||||
token character varying
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_calls_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE SEQUENCE public.casting_calls_id_seq
|
|
||||||
START WITH 1
|
|
||||||
INCREMENT BY 1
|
|
||||||
NO MINVALUE
|
|
||||||
NO MAXVALUE
|
|
||||||
CACHE 1;
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_calls_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER SEQUENCE public.casting_calls_id_seq OWNED BY public.casting_calls.id;
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_submissions; Type: TABLE; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE TABLE public.casting_submissions (
|
|
||||||
id bigint NOT NULL,
|
|
||||||
casting_call_id bigint,
|
|
||||||
performer_name character varying,
|
|
||||||
zoom_meeting_url character varying,
|
|
||||||
interview_date timestamp without time zone,
|
|
||||||
created_at timestamp(6) without time zone NOT NULL,
|
|
||||||
updated_at timestamp(6) without time zone NOT NULL,
|
|
||||||
token character varying,
|
|
||||||
interviewed_at timestamp without time zone
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_submissions_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE SEQUENCE public.casting_submissions_id_seq
|
|
||||||
START WITH 1
|
|
||||||
INCREMENT BY 1
|
|
||||||
NO MINVALUE
|
|
||||||
NO MAXVALUE
|
|
||||||
CACHE 1;
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_submissions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER SEQUENCE public.casting_submissions_id_seq OWNED BY public.casting_submissions.id;
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: composers; Type: TABLE; Schema: public; Owner: -
|
-- Name: composers; Type: TABLE; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -728,6 +666,15 @@ CREATE SEQUENCE public.contract_templates_id_seq
|
|||||||
ALTER SEQUENCE public.contract_templates_id_seq OWNED BY public.contract_templates.id;
|
ALTER SEQUENCE public.contract_templates_id_seq OWNED BY public.contract_templates.id;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: data_migrations; Type: TABLE; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE public.data_migrations (
|
||||||
|
version character varying NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: directories; Type: TABLE; Schema: public; Owner: -
|
-- Name: directories; Type: TABLE; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -1177,22 +1124,7 @@ CREATE TABLE public.misc_releases (
|
|||||||
signed_at timestamp without time zone,
|
signed_at timestamp without time zone,
|
||||||
minor boolean DEFAULT false,
|
minor boolean DEFAULT false,
|
||||||
created_at timestamp(6) without time zone NOT NULL,
|
created_at timestamp(6) without time zone NOT NULL,
|
||||||
updated_at timestamp(6) without time zone NOT NULL,
|
updated_at timestamp(6) without time zone NOT NULL
|
||||||
question_1_answer text,
|
|
||||||
question_2_answer text,
|
|
||||||
question_3_answer text,
|
|
||||||
question_4_answer text,
|
|
||||||
question_5_answer text,
|
|
||||||
question_6_answer text,
|
|
||||||
question_7_answer text,
|
|
||||||
question_8_answer text,
|
|
||||||
question_9_answer text,
|
|
||||||
question_10_answer text,
|
|
||||||
question_11_answer text,
|
|
||||||
question_12_answer text,
|
|
||||||
question_13_answer text,
|
|
||||||
question_14_answer text,
|
|
||||||
question_15_answer text
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -1469,7 +1401,6 @@ CREATE TABLE public.settings (
|
|||||||
--
|
--
|
||||||
|
|
||||||
CREATE SEQUENCE public.settings_id_seq
|
CREATE SEQUENCE public.settings_id_seq
|
||||||
AS integer
|
|
||||||
START WITH 1
|
START WITH 1
|
||||||
INCREMENT BY 1
|
INCREMENT BY 1
|
||||||
NO MINVALUE
|
NO MINVALUE
|
||||||
@@ -1505,7 +1436,6 @@ CREATE TABLE public.taggings (
|
|||||||
--
|
--
|
||||||
|
|
||||||
CREATE SEQUENCE public.taggings_id_seq
|
CREATE SEQUENCE public.taggings_id_seq
|
||||||
AS integer
|
|
||||||
START WITH 1
|
START WITH 1
|
||||||
INCREMENT BY 1
|
INCREMENT BY 1
|
||||||
NO MINVALUE
|
NO MINVALUE
|
||||||
@@ -1536,7 +1466,6 @@ CREATE TABLE public.tags (
|
|||||||
--
|
--
|
||||||
|
|
||||||
CREATE SEQUENCE public.tags_id_seq
|
CREATE SEQUENCE public.tags_id_seq
|
||||||
AS integer
|
|
||||||
START WITH 1
|
START WITH 1
|
||||||
INCREMENT BY 1
|
INCREMENT BY 1
|
||||||
NO MINVALUE
|
NO MINVALUE
|
||||||
@@ -1897,9 +1826,9 @@ CREATE TABLE public.zoom_meetings (
|
|||||||
api_meeting_id character varying,
|
api_meeting_id character varying,
|
||||||
created_at timestamp(6) without time zone NOT NULL,
|
created_at timestamp(6) without time zone NOT NULL,
|
||||||
updated_at timestamp(6) without time zone NOT NULL,
|
updated_at timestamp(6) without time zone NOT NULL,
|
||||||
|
status integer DEFAULT 0,
|
||||||
zoom_user_id bigint,
|
zoom_user_id bigint,
|
||||||
project_id bigint,
|
project_id bigint
|
||||||
status integer DEFAULT 0
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -2039,20 +1968,6 @@ ALTER TABLE ONLY public.broadcast_recordings ALTER COLUMN id SET DEFAULT nextval
|
|||||||
ALTER TABLE ONLY public.broadcasts ALTER COLUMN id SET DEFAULT nextval('public.broadcasts_id_seq'::regclass);
|
ALTER TABLE ONLY public.broadcasts ALTER COLUMN id SET DEFAULT nextval('public.broadcasts_id_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_calls id; Type: DEFAULT; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER TABLE ONLY public.casting_calls ALTER COLUMN id SET DEFAULT nextval('public.casting_calls_id_seq'::regclass);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_submissions id; Type: DEFAULT; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER TABLE ONLY public.casting_submissions ALTER COLUMN id SET DEFAULT nextval('public.casting_submissions_id_seq'::regclass);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: composers id; Type: DEFAULT; Schema: public; Owner: -
|
-- Name: composers id; Type: DEFAULT; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -2374,22 +2289,6 @@ ALTER TABLE ONLY public.broadcasts
|
|||||||
ADD CONSTRAINT broadcasts_pkey PRIMARY KEY (id);
|
ADD CONSTRAINT broadcasts_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_calls casting_calls_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER TABLE ONLY public.casting_calls
|
|
||||||
ADD CONSTRAINT casting_calls_pkey PRIMARY KEY (id);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_submissions casting_submissions_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER TABLE ONLY public.casting_submissions
|
|
||||||
ADD CONSTRAINT casting_submissions_pkey PRIMARY KEY (id);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: composers composers_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
-- Name: composers composers_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -2406,6 +2305,14 @@ ALTER TABLE ONLY public.contract_templates
|
|||||||
ADD CONSTRAINT contract_templates_pkey PRIMARY KEY (id);
|
ADD CONSTRAINT contract_templates_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: data_migrations data_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY public.data_migrations
|
||||||
|
ADD CONSTRAINT data_migrations_pkey PRIMARY KEY (version);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: directories directories_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
-- Name: directories directories_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -2807,34 +2714,6 @@ CREATE INDEX index_broadcasts_on_project_id ON public.broadcasts USING btree (pr
|
|||||||
CREATE UNIQUE INDEX index_broadcasts_on_token ON public.broadcasts USING btree (token);
|
CREATE UNIQUE INDEX index_broadcasts_on_token ON public.broadcasts USING btree (token);
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: index_casting_calls_on_project_id; Type: INDEX; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE INDEX index_casting_calls_on_project_id ON public.casting_calls USING btree (project_id);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: index_casting_calls_on_token; Type: INDEX; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE UNIQUE INDEX index_casting_calls_on_token ON public.casting_calls USING btree (token);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: index_casting_submissions_on_casting_call_id; Type: INDEX; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE INDEX index_casting_submissions_on_casting_call_id ON public.casting_submissions USING btree (casting_call_id);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: index_casting_submissions_on_token; Type: INDEX; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE UNIQUE INDEX index_casting_submissions_on_token ON public.casting_submissions USING btree (token);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: index_composers_on_music_release_id; Type: INDEX; Schema: public; Owner: -
|
-- Name: index_composers_on_music_release_id; Type: INDEX; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -3432,14 +3311,6 @@ ALTER TABLE ONLY public.bookmarks
|
|||||||
ADD CONSTRAINT fk_rails_15735b7db8 FOREIGN KEY (video_id) REFERENCES public.videos(id);
|
ADD CONSTRAINT fk_rails_15735b7db8 FOREIGN KEY (video_id) REFERENCES public.videos(id);
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: casting_submissions fk_rails_1583f69fbb; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER TABLE ONLY public.casting_submissions
|
|
||||||
ADD CONSTRAINT fk_rails_1583f69fbb FOREIGN KEY (casting_call_id) REFERENCES public.casting_calls(id);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: acquired_media_releases fk_rails_15b450b040; Type: FK CONSTRAINT; Schema: public; Owner: -
|
-- Name: acquired_media_releases fk_rails_15b450b040; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -4043,13 +3914,6 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||||||
('20200619085823'),
|
('20200619085823'),
|
||||||
('20200619134853'),
|
('20200619134853'),
|
||||||
('20200622180507'),
|
('20200622180507'),
|
||||||
('20200625144713'),
|
('20200625144713');
|
||||||
('20200626044744'),
|
|
||||||
('20200701121237'),
|
|
||||||
('20200702152130'),
|
|
||||||
('20200706193123'),
|
|
||||||
('20200706230803'),
|
|
||||||
('20200707070522'),
|
|
||||||
('20200714175331');
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -54,16 +54,12 @@ RSpec.describe AccountsController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "enqueues hubspot form submission job" do
|
it "enqueues hubspot form submission job" do
|
||||||
ENV["HUBSPOT_FORM_GUID"] = "form_guid"
|
|
||||||
expect {
|
expect {
|
||||||
post :create, params: params
|
post :create, params: params
|
||||||
}.to have_enqueued_job(SubmitHubspotFormJob).with(
|
}.to have_enqueued_job(SubmitHubspotFormJob).with(
|
||||||
first_name: "John",
|
"test_user+1@test.com",
|
||||||
last_name: "Doe",
|
"Test Dev account",
|
||||||
email: "test_user+1@test.com",
|
i_m_interested_in: "DirectME"
|
||||||
company: "Test Dev account",
|
|
||||||
i_m_interested_in: "DirectME",
|
|
||||||
form_guid: "form_guid"
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,114 +0,0 @@
|
|||||||
require "rails_helper"
|
|
||||||
|
|
||||||
RSpec.describe Admin::CastingSubmissionsController, type: :controller do
|
|
||||||
|
|
||||||
let!(:current_user) { create(:user, :admin) }
|
|
||||||
|
|
||||||
before do
|
|
||||||
sign_in(current_user)
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#index" do
|
|
||||||
it "returns a successful response" do
|
|
||||||
get :index
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#new" do
|
|
||||||
it "returns a successful response" do
|
|
||||||
get :new
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
end
|
|
||||||
|
|
||||||
it "assigns user, accounts" do
|
|
||||||
get :new
|
|
||||||
|
|
||||||
expect(assigns(:casting_submission)).not_to be_nil
|
|
||||||
expect(assigns(:accounts)).to eq Account.all
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#create" do
|
|
||||||
it "does create a new record" do
|
|
||||||
expect {
|
|
||||||
post :create, params: { casting_submission: casting_submission_params }
|
|
||||||
}.to change(CastingSubmission, :count)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#edit" do
|
|
||||||
let(:casting_submission) { create(:casting_submission) }
|
|
||||||
|
|
||||||
it "returns a successful response" do
|
|
||||||
get :edit, params: { id: casting_submission }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
end
|
|
||||||
|
|
||||||
it "assigns casting submission" do
|
|
||||||
get :edit, params: { id: casting_submission }
|
|
||||||
|
|
||||||
expect(assigns(:casting_submission)).to eq casting_submission
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#update" do
|
|
||||||
let(:casting_submission) { create(:casting_submission) }
|
|
||||||
|
|
||||||
it "redirects to casting submissions page" do
|
|
||||||
patch :update, params: { id: casting_submission, casting_submission: update_params }
|
|
||||||
|
|
||||||
expect(response).to be_redirect
|
|
||||||
expect(response).to redirect_to admin_casting_submissions_path
|
|
||||||
end
|
|
||||||
|
|
||||||
it "sets a flash notice" do
|
|
||||||
patch :update, params: { id: casting_submission, casting_submission: update_params }
|
|
||||||
|
|
||||||
expect(flash.notice).to eq "The casting submission has been updated"
|
|
||||||
end
|
|
||||||
|
|
||||||
it "updates casting submission" do
|
|
||||||
patch :update, params: { id: casting_submission, casting_submission: update_params }
|
|
||||||
|
|
||||||
expect(casting_submission.reload.zoom_meeting_url).to eq new_zoom_meeting_url
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#complete" do
|
|
||||||
let(:casting_submission) { create(:casting_submission) }
|
|
||||||
|
|
||||||
it "sets interviewed_at on casting submission" do
|
|
||||||
expect(casting_submission.interviewed_at).to be_nil
|
|
||||||
|
|
||||||
post :complete, params: { id: casting_submission }
|
|
||||||
|
|
||||||
expect(casting_submission.reload.interviewed_at).not_to be_nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def casting_submission_params
|
|
||||||
casting_call = create(:casting_call)
|
|
||||||
|
|
||||||
attributes_for(:casting_submission).except(:interviewed_at).merge(casting_call_id: casting_call.id)
|
|
||||||
end
|
|
||||||
|
|
||||||
def update_params
|
|
||||||
{
|
|
||||||
zoom_meeting_url: new_zoom_meeting_url
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
def new_zoom_meeting_url
|
|
||||||
"https://s01web.zoom.us/j/11111?pwd=Ab123Cq34"
|
|
||||||
end
|
|
||||||
|
|
||||||
def invalid_meeting_url_flash_error
|
|
||||||
t 'casting_submissions.validation_errors.invalid_meeting_url'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -37,26 +37,23 @@ RSpec.describe Api::AppearanceReleasesController, type: :controller do
|
|||||||
|
|
||||||
it 'includes photos' do
|
it 'includes photos' do
|
||||||
project = create(:project, account_id: current_user.primary_account.id)
|
project = create(:project, account_id: current_user.primary_account.id)
|
||||||
appearance_release = create(:appearance_release,
|
appearance_release = create(:appearance_release, person_first_name: 'Release', person_last_name: 'Name', project: project)
|
||||||
:with_person_photo, :with_guardian_photo, :with_guardian_2_photo,
|
|
||||||
project: project)
|
|
||||||
|
|
||||||
sign_in_to_api(current_user)
|
sign_in_to_api(current_user)
|
||||||
get :show, params: { id: appearance_release.id }
|
get :show, params: { id: appearance_release.id }
|
||||||
|
|
||||||
[appearance_release.person_photo, appearance_release.guardian_photo, appearance_release.guardian_2_photo].each do |photo|
|
photo = appearance_release.person_photo
|
||||||
data = {
|
data = {
|
||||||
'id' => photo.id.to_s,
|
'id' => photo.id.to_s,
|
||||||
'type' => 'active_storage_attachment',
|
'type' => 'active_storage_attachment',
|
||||||
'attributes' => {
|
'attributes' => {
|
||||||
'content_type' => photo.content_type,
|
'content_type' => photo.content_type,
|
||||||
'filename' => photo.filename.to_s,
|
'filename' => photo.filename.to_s,
|
||||||
'url' => photo_path_for(photo),
|
'url' => photo_path_for(photo),
|
||||||
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
||||||
}
|
|
||||||
}
|
}
|
||||||
expect(response_body_included_attributes).to include(data)
|
}
|
||||||
end
|
expect(response_body_included_attributes).to include(data)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -187,46 +184,7 @@ RSpec.describe Api::AppearanceReleasesController, type: :controller do
|
|||||||
expect(appearance_release.guardian_photo).to be_attached
|
expect(appearance_release.guardian_photo).to be_attached
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns 201 for minor without second guardian photo' do
|
|
||||||
post :create, params: @parameters.deep_merge(appearance_release: {
|
|
||||||
minor: true,
|
|
||||||
guardian_2_name: 'Guardian 2 Name',
|
|
||||||
guardian_2_phone: '101010',
|
|
||||||
})
|
|
||||||
|
|
||||||
expect(response.status).to eq 201
|
|
||||||
expect(AppearanceRelease.last.signature).to be_attached
|
|
||||||
expect(AppearanceRelease.last.guardian_2_photo).not_to be_attached
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns 201 for minor with second guardian photo' do
|
|
||||||
post :create, params: @parameters.deep_merge(appearance_release: {
|
|
||||||
minor: true,
|
|
||||||
guardian_2_name: 'Guardian 2 Name',
|
|
||||||
guardian_2_phone: '101010',
|
|
||||||
guardian_2_photo: {
|
|
||||||
io: guardian_photo_base64,
|
|
||||||
filename: 'guardian_2_photo.jpeg'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
expect(response.status).to eq 201
|
|
||||||
|
|
||||||
appearance_release = AppearanceRelease.last
|
|
||||||
photo = appearance_release.guardian_2_photo
|
|
||||||
data = {
|
|
||||||
'id' => photo.id.to_s,
|
|
||||||
'type' => 'active_storage_attachment',
|
|
||||||
'attributes' => {
|
|
||||||
'content_type' => photo.content_type,
|
|
||||||
'filename' => photo.filename.to_s,
|
|
||||||
'url' => photo_path_for(photo),
|
|
||||||
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expect(response_body_included_attributes).to include(data)
|
|
||||||
expect(appearance_release.signature).to be_attached
|
|
||||||
expect(appearance_release.guardian_2_photo).to be_attached
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -32,28 +32,26 @@ RSpec.describe Api::TalentReleasesController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it 'includes photos' do
|
it 'includes photos' do
|
||||||
project = create(:project, account_id: current_user.primary_account.id)
|
tested_release = create("talent_release_with_photo", person_name: 'Release 1', project: project)
|
||||||
talent_release = create(:talent_release,
|
|
||||||
:with_guardian_photo, :with_guardian_2_photo,
|
|
||||||
project: project)
|
|
||||||
|
|
||||||
sign_in_to_api(current_user)
|
sign_in_to_api(current_user)
|
||||||
get :show, params: { id: talent_release.id }
|
get :show, params: { id: tested_release.id }
|
||||||
|
|
||||||
[talent_release.photos, talent_release.guardian_photo, talent_release.guardian_2_photo].flatten.each do |photo|
|
tested_release.photos.each do |photo|
|
||||||
data = {
|
data = {
|
||||||
'id' => photo.id.to_s,
|
'id' => photo.id.to_s,
|
||||||
'type' => 'active_storage_attachment',
|
'type' => 'active_storage_attachment',
|
||||||
'attributes' => {
|
'attributes' => {
|
||||||
'content_type' => photo.content_type,
|
'content_type' => photo.content_type,
|
||||||
'filename' => photo.filename.to_s,
|
'filename' => photo.filename.to_s,
|
||||||
'url' => photo_path_for(photo),
|
'url' => photo_path_for(photo),
|
||||||
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
expect(response_body_included_attributes).to include(data)
|
|
||||||
end
|
expect(response_body_included_attributes).to include(data)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#create' do
|
describe '#create' do
|
||||||
@@ -182,47 +180,6 @@ RSpec.describe Api::TalentReleasesController, type: :controller do
|
|||||||
expect(talent_release.signature).to be_attached
|
expect(talent_release.signature).to be_attached
|
||||||
expect(talent_release.guardian_photo).to be_attached
|
expect(talent_release.guardian_photo).to be_attached
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns 201 for minor without second guardian photo' do
|
|
||||||
post :create, params: @parameters.deep_merge(talent_release: {
|
|
||||||
minor: true,
|
|
||||||
guardian_2_name: 'Guardian 2 Name',
|
|
||||||
guardian_2_phone: '101010',
|
|
||||||
})
|
|
||||||
|
|
||||||
expect(response.status).to eq 201
|
|
||||||
expect(TalentRelease.last.signature).to be_attached
|
|
||||||
expect(TalentRelease.last.guardian_2_photo).not_to be_attached
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns 201 for minor with second guardian photo' do
|
|
||||||
post :create, params: @parameters.deep_merge(talent_release: {
|
|
||||||
minor: true,
|
|
||||||
guardian_2_name: 'Guardian 2 Name',
|
|
||||||
guardian_2_phone: '101010',
|
|
||||||
guardian_2_photo: {
|
|
||||||
io: guardian_photo_base64,
|
|
||||||
filename: 'guardian_2_photo.jpeg'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
expect(response.status).to eq 201
|
|
||||||
|
|
||||||
talent_release = TalentRelease.last
|
|
||||||
photo = talent_release.guardian_2_photo
|
|
||||||
data = {
|
|
||||||
'id' => photo.id.to_s,
|
|
||||||
'type' => 'active_storage_attachment',
|
|
||||||
'attributes' => {
|
|
||||||
'content_type' => photo.content_type,
|
|
||||||
'filename' => photo.filename.to_s,
|
|
||||||
'url' => photo_path_for(photo),
|
|
||||||
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expect(response_body_included_attributes).to include(data)
|
|
||||||
expect(talent_release.signature).to be_attached
|
|
||||||
expect(talent_release.guardian_2_photo).to be_attached
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ RSpec.describe BroadcastsController, type: :controller do
|
|||||||
expect(response).to be_successful
|
expect(response).to be_successful
|
||||||
end
|
end
|
||||||
|
|
||||||
it "renders content if theere are existing broadcasts" do
|
it "renders content" do
|
||||||
create(:broadcast, project: project, name: "Another Broadcast")
|
create(:broadcast, project: project, name: "Another Broadcast")
|
||||||
|
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
@@ -34,13 +34,12 @@ RSpec.describe BroadcastsController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context "when there are no active broadcasts" do
|
context "when there are no active broadcasts" do
|
||||||
it "renders splash screen" do
|
it "renders an empty message" do
|
||||||
Broadcast.destroy_all
|
Broadcast.destroy_all
|
||||||
|
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
|
|
||||||
expect(response.body).to have_link create_stream
|
expect(response.body).to have_content("Live streams will appear here")
|
||||||
expect(response.body).to have_link schedule_demo
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -56,8 +55,10 @@ RSpec.describe BroadcastsController, type: :controller do
|
|||||||
|
|
||||||
context "for xhr request" do
|
context "for xhr request" do
|
||||||
it "filters the broadcasts by a query param" do
|
it "filters the broadcasts by a query param" do
|
||||||
create(:broadcast, project: project, skip_create_callback: true, name: "Stream by Adam")
|
appearance_releases = [
|
||||||
create(:broadcast, project: project, skip_create_callback: true, name: "Stream by Zoe")
|
create(:broadcast, skip_create_callback: true, name: "Stream by Adam"),
|
||||||
|
create(:broadcast, skip_create_callback: true, name: "Stream by Zoe"),
|
||||||
|
]
|
||||||
|
|
||||||
get :index, params: { project_id: project, query: "Zoe" }, xhr: true
|
get :index, params: { project_id: project, query: "Zoe" }, xhr: true
|
||||||
|
|
||||||
@@ -244,12 +245,4 @@ RSpec.describe BroadcastsController, type: :controller do
|
|||||||
|
|
||||||
{ files: [contract_file] }
|
{ files: [contract_file] }
|
||||||
end
|
end
|
||||||
|
|
||||||
def schedule_demo
|
|
||||||
t 'broadcasts.splash.actions.book_demo'
|
|
||||||
end
|
|
||||||
|
|
||||||
def create_stream
|
|
||||||
t 'broadcasts.splash.actions.create_stream'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,120 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
RSpec.describe CastingCallsController, type: :controller do
|
|
||||||
render_views
|
|
||||||
|
|
||||||
let(:user) { create(:user) }
|
|
||||||
let(:account) { user.primary_account }
|
|
||||||
let(:project) { create(:project, account: user.primary_account) }
|
|
||||||
|
|
||||||
before do
|
|
||||||
sign_in user
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#index" do
|
|
||||||
it "responds successfully" do
|
|
||||||
get :index, params: { project_id: project }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
end
|
|
||||||
|
|
||||||
it "renders content" do
|
|
||||||
create(:casting_call, project: project)
|
|
||||||
|
|
||||||
get :index, params: { project_id: project }
|
|
||||||
|
|
||||||
expect(response.body).to have_link "Create Casting Call"
|
|
||||||
expect(response.body).to have_content "Active"
|
|
||||||
end
|
|
||||||
|
|
||||||
context "when there are many records" do
|
|
||||||
it "paginates the table" do
|
|
||||||
create_list(:casting_call, 20, project: project)
|
|
||||||
|
|
||||||
get :index, params: { project_id: project }
|
|
||||||
|
|
||||||
expect(response.body).to have_link("2", href: project_casting_calls_path(project, page: 2))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#new" do
|
|
||||||
it "responds successfully" do
|
|
||||||
get :new, params: { project_id: project }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
expect(assigns(:casting_call)).to be_a_new(CastingCall)
|
|
||||||
expect(response).to render_template(:new)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#create" do
|
|
||||||
it "does create a new record" do
|
|
||||||
expect {
|
|
||||||
post :create, params: { project_id: project.id, casting_call: casting_call_params }
|
|
||||||
}.to change(CastingCall, :count)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "logs an event" do
|
|
||||||
expect {
|
|
||||||
post :create, params: { project_id: project.id, casting_call: casting_call_params }
|
|
||||||
}.to have_enqueued_job(TrackAnalyticsJob).with(user, account, :track_create_casting_call, user_agent: "Rails Testing", user_ip: "0.0.0.0")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#update" do
|
|
||||||
let!(:casting_call) { create(:casting_call, project: project, description: "My description" ) }
|
|
||||||
|
|
||||||
it "updates casting call request" do
|
|
||||||
patch :update, params: { project_id: project.id, id: casting_call.id, casting_call: update_params }
|
|
||||||
|
|
||||||
expect(casting_call.reload.description).to eq("This is updated description")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#show" do
|
|
||||||
let!(:casting_call) { create(:casting_call, project: project, description: "Casting Call Request") }
|
|
||||||
|
|
||||||
it "responds successfully" do
|
|
||||||
get :show, params: { project_id: project.id, id: casting_call.id }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
expect(assigns(:casting_call)).to eq(casting_call)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "renders content" do
|
|
||||||
get :show, params: { project_id: project.id, id: casting_call.id }
|
|
||||||
|
|
||||||
expect(response.body).to have_content "Casting Call Request"
|
|
||||||
expect(response.body).to have_content "Active"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#cancel" do
|
|
||||||
let!(:casting_call) { create(:casting_call, project: project, description: "Casting Call to be Cancelled") }
|
|
||||||
|
|
||||||
it "responds with redirect" do
|
|
||||||
post :cancel, params: { project_id: project.id, id: casting_call.id }
|
|
||||||
|
|
||||||
expect(response).to be_redirect
|
|
||||||
expect(response).to redirect_to(project_casting_calls_path(project))
|
|
||||||
expect(flash.notice).not_to be_nil
|
|
||||||
end
|
|
||||||
|
|
||||||
it "updates the status to 'Cancelled'" do
|
|
||||||
expect {
|
|
||||||
post :cancel, params: { project_id: project.id, id: casting_call.id }
|
|
||||||
}.to change { casting_call.reload.status }.from("Active").to("Cancelled")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def casting_call_params
|
|
||||||
attributes_for(:casting_call).except(:status, :user_email)
|
|
||||||
end
|
|
||||||
|
|
||||||
def update_params
|
|
||||||
{ description: "This is updated description" }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
require "rails_helper"
|
|
||||||
|
|
||||||
RSpec.describe CastingSubmissionDownloadsController, type: :controller do
|
|
||||||
render_views
|
|
||||||
|
|
||||||
let(:current_user) { create(:user) }
|
|
||||||
let(:project) { create(:project, :discovery_client, account: current_user.primary_account) }
|
|
||||||
let(:casting_call) { create(:casting_call, project: project, title: "My Title") }
|
|
||||||
let(:casting_submission) { create(:casting_submission, casting_call: casting_call, performer_name: "John Doe") }
|
|
||||||
|
|
||||||
before do
|
|
||||||
sign_in current_user
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#create" do
|
|
||||||
it "enqueues zip file generation job" do
|
|
||||||
expect {
|
|
||||||
post :create, params: { project_id: project.id, casting_submission_id: casting_submission.id }, format: :js
|
|
||||||
}.to have_enqueued_job(GenerateCastingSubmissionFilesZipJob)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "creates a download record with 'not_started' status" do
|
|
||||||
expect {
|
|
||||||
post :create, params: { project_id: project.id, casting_submission_id: casting_submission.id }, format: :js
|
|
||||||
}.to change(Download, :count).by(1)
|
|
||||||
|
|
||||||
expect(Download.last.status).to eq('not_started')
|
|
||||||
end
|
|
||||||
|
|
||||||
context "When there is no existing job" do
|
|
||||||
it "shows a notification to user" do
|
|
||||||
allow(ProjectsChannel).to receive(:broadcast_download_generation_update).with(be_kind_of(Download), I18n.t("casting_submission_downloads.download.pending", release_type: "CastingSubmission"))
|
|
||||||
|
|
||||||
post :create, params: { project_id: project.id, casting_submission_id: casting_submission.id }, format: :js
|
|
||||||
|
|
||||||
expect(ProjectsChannel).to have_received(:broadcast_download_generation_update).with(be_kind_of(Download), I18n.t("casting_submission_downloads.download.pending", release_type: "CastingSubmission"))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "When there are existing jobs" do
|
|
||||||
let(:appearance_release_download) { create(:download, project_id: project.id, name: "#{project.name.parameterize}_appearance-releases") }
|
|
||||||
let(:acquired_media_release_download) { create(:download, project_id: project.id, name: "#{project.name.parameterize}_acquired-media-releases", release_type: "AcquiredMediaRelease") }
|
|
||||||
|
|
||||||
before do
|
|
||||||
allow(Download).to receive_message_chain(:unfinished_desc_order, :offset).and_return([acquired_media_release_download, appearance_release_download])
|
|
||||||
allow(ProjectsChannel).to receive(:broadcast_download_generation_update)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "shows names of other contracts in the notification, which are in progress" do
|
|
||||||
broadcast_message = "<p>Your Casting Submission files are being prepared for download. You will be notified when it's ready.\n</p>\n<p class=\"mt-3\">The following downloads are also in progress:</p> \n<ul>\n <li>Acquired Media Release contracts (as of less than a minute ago)\n </li>\n <li>Appearance Release contracts (as of less than a minute ago)\n </li>\n</ul>\n"
|
|
||||||
|
|
||||||
post :create, params: { project_id: project.id, casting_submission_id: casting_submission.id }, format: :js
|
|
||||||
|
|
||||||
expect(ProjectsChannel).to have_received(:broadcast_download_generation_update).with(be_kind_of(Download), broadcast_message)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
require "rails_helper"
|
|
||||||
|
|
||||||
RSpec.describe CastingSubmissionsController, type: :controller do
|
|
||||||
render_views
|
|
||||||
|
|
||||||
let(:user) { create(:user) }
|
|
||||||
let(:account) { user.primary_account }
|
|
||||||
let(:project) { create(:project, account: user.primary_account) }
|
|
||||||
let(:casting_call) { create(:casting_call, project: project, title: "My Interview") }
|
|
||||||
|
|
||||||
before do
|
|
||||||
sign_in(user)
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#index" do
|
|
||||||
it "returns a successful response" do
|
|
||||||
get :index, params: { project_id: project }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
end
|
|
||||||
|
|
||||||
it "only shows completed submissions" do
|
|
||||||
create(:casting_submission, casting_call: casting_call, interviewed_at: Time.zone.now, performer_name: "John Doe")
|
|
||||||
create(:casting_submission, casting_call: casting_call, interviewed_at: nil, performer_name: "Jane Doe")
|
|
||||||
|
|
||||||
get :index, params: { project_id: project }
|
|
||||||
|
|
||||||
expect(response.body).to have_content("John Doe")
|
|
||||||
expect(response.body).not_to have_content("Jane Doe")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#show" do
|
|
||||||
let!(:casting_submission) { create(:casting_submission, :with_files, casting_call: casting_call, interviewed_at: Time.zone.now, performer_name: "Jane Doe") }
|
|
||||||
|
|
||||||
it "shows files of casting submission" do
|
|
||||||
get :show, params: { project_id: project, id: casting_submission.id }
|
|
||||||
|
|
||||||
expect(response.body).to have_content(casting_submission.performer_name)
|
|
||||||
expect(response.body).to have_content(casting_submission.casting_call.title)
|
|
||||||
expect(response.body).to have_content(casting_submission.casting_call.project_description)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -19,7 +19,7 @@ describe ContractTemplatesController do
|
|||||||
expect(response).to be_successful
|
expect(response).to be_successful
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders content if there are contract templates' do
|
it 'renders content' do
|
||||||
contract_template = create(:contract_template,
|
contract_template = create(:contract_template,
|
||||||
name: 'My Contract Template', fee: 50, release_type: 'appearance',
|
name: 'My Contract Template', fee: 50, release_type: 'appearance',
|
||||||
project: project)
|
project: project)
|
||||||
@@ -39,11 +39,10 @@ describe ContractTemplatesController do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context 'when there are no contract templates' do
|
context 'when there are no contract templates' do
|
||||||
it 'renders splash screen' do
|
it 'renders an empty message' do
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
|
|
||||||
expect(response.body).to have_link "Create New Release Template"
|
expect(response.body).to have_content('Release Templates will appear here')
|
||||||
expect(response.body).to have_link schedule_demo
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -51,7 +50,6 @@ describe ContractTemplatesController do
|
|||||||
let(:current_user) { create(:user, :associate) }
|
let(:current_user) { create(:user, :associate) }
|
||||||
|
|
||||||
it 'does not show the new contract template button' do
|
it 'does not show the new contract template button' do
|
||||||
create(:contract_template, project: project)
|
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
|
|
||||||
expect(response.body).not_to have_link('Create New Release Template')
|
expect(response.body).not_to have_link('Create New Release Template')
|
||||||
@@ -168,8 +166,4 @@ describe ContractTemplatesController do
|
|||||||
restriction_text: 'restrictions'
|
restriction_text: 'restrictions'
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def schedule_demo
|
|
||||||
t 'contract_templates.splash.actions.book_demo'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
RSpec.describe Public::CastingCallsController, type: :controller do
|
|
||||||
render_views
|
|
||||||
|
|
||||||
describe "#show" do
|
|
||||||
let(:casting_call) { create(:casting_call) }
|
|
||||||
|
|
||||||
it "responds successfully" do
|
|
||||||
get :show, params: { token: casting_call.token }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
expect(assigns(:casting_call)).to eq(casting_call)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "shows casting call details" do
|
|
||||||
get :show, params: { token: casting_call.token }
|
|
||||||
|
|
||||||
expect(response.body).to have_content(casting_call.title)
|
|
||||||
expect(response.body).to have_content(casting_call.description)
|
|
||||||
expect(response.body).to have_content(casting_call.project_description)
|
|
||||||
expect(response.body).to have_link("Schedule an Audition")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
RSpec.describe Public::CastingSubmissionsController, type: :controller do
|
|
||||||
render_views
|
|
||||||
|
|
||||||
describe "#show" do
|
|
||||||
let(:casting_submission) { create(:casting_submission) }
|
|
||||||
|
|
||||||
it "responds successfully" do
|
|
||||||
get :show, params: { token: casting_submission.token }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
expect(assigns(:casting_submission)).to eq(casting_submission)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "shows casting call interview details" do
|
|
||||||
get :show, params: { token: casting_submission.token }
|
|
||||||
|
|
||||||
expect(response.body).to have_content(casting_submission.performer_name)
|
|
||||||
expect(response.body).to have_content(casting_submission.interview_date)
|
|
||||||
expect(response.body).to have_link("Start Interview")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#update" do
|
|
||||||
let(:casting_submission) { create(:casting_submission) }
|
|
||||||
|
|
||||||
it "responds successfully" do
|
|
||||||
patch :update, params: { token: casting_submission.token, casting_submission: casting_submission_params }
|
|
||||||
|
|
||||||
expect(response).to redirect_to casting_submission_url(token: casting_submission.token)
|
|
||||||
expect(flash.notice).to be_present
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def casting_submission_params
|
|
||||||
path = Rails.root.join("spec", "fixtures", "files", "contract.pdf")
|
|
||||||
file = Rack::Test::UploadedFile.new(path, "application/pdf")
|
|
||||||
|
|
||||||
{ files: [file]}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -19,29 +19,14 @@ RSpec.describe Public::MedicalReleasesController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "displays validation errors" do
|
it "displays validation errors" do
|
||||||
contract_template = create(:contract_template,
|
contract_template = create(:contract_template, project: project)
|
||||||
project: project,
|
|
||||||
question_1_text: "Question 1",
|
|
||||||
question_2_text: "Question 2"
|
|
||||||
)
|
|
||||||
sign_in(user)
|
sign_in(user)
|
||||||
|
|
||||||
post :create, params: {
|
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, medical_release: { person_address_city: "Albuquerque" } }
|
||||||
account_id: user.primary_account.to_param,
|
|
||||||
project_id: project,
|
|
||||||
contract_template_id: contract_template,
|
|
||||||
medical_release: {
|
|
||||||
person_address_city: "Albuquerque",
|
|
||||||
question_2_answer: "Answer 2"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
body = CGI.unescape_html(response.body)
|
body = CGI.unescape_html(response.body)
|
||||||
expect(body).to match /Person first name can't be blank/
|
expect(body).to match /Person first name can't be blank/
|
||||||
expect(body).to match /Person last name can't be blank/
|
expect(body).to match /Person last name can't be blank/
|
||||||
expect(body).to match />can't be blank</
|
expect(body).to match />can't be blank</
|
||||||
expect(body).to match /Question 1 #{question_answer_validation_error}/
|
|
||||||
expect(body).not_to match /Question 2 #{question_answer_validation_error}/
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "responds with success " do
|
it "responds with success " do
|
||||||
@@ -83,8 +68,4 @@ RSpec.describe Public::MedicalReleasesController, type: :controller do
|
|||||||
|
|
||||||
{ signature_base64: data_uri }
|
{ signature_base64: data_uri }
|
||||||
end
|
end
|
||||||
|
|
||||||
def question_answer_validation_error
|
|
||||||
t 'medical_releases.custom_validation_errors.question_answer_is_required'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ RSpec.describe StreamNotificationsController, type: :controller do
|
|||||||
let(:active_status) { {type: "video.live_stream.active", object: { id: "mux_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(: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) { {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) { {
|
let(:asset_ready) { {
|
||||||
type: "video.asset.static_renditions.ready",
|
type: "video.asset.static_renditions.ready",
|
||||||
object: { id: "asset_uid" },
|
object: { id: "asset_uid" },
|
||||||
@@ -60,12 +59,6 @@ RSpec.describe StreamNotificationsController, type: :controller do
|
|||||||
|
|
||||||
expect(BroadcastsChannel).to have_received(:stream_recording_ready)
|
expect(BroadcastsChannel).to have_received(:stream_recording_ready)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns OK response even for non-existing broadcast" do
|
|
||||||
post :create, params: idle_status_for_unknown_broadcast
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
after do
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user