Initial commit
This commit is contained in:
42
config/application.rb
Normal file
42
config/application.rb
Normal file
@@ -0,0 +1,42 @@
|
||||
require_relative 'boot'
|
||||
|
||||
require "rails"
|
||||
# Pick the frameworks you want:
|
||||
require "active_model/railtie"
|
||||
require "active_job/railtie"
|
||||
require "active_record/railtie"
|
||||
require "active_storage/engine"
|
||||
require "action_controller/railtie"
|
||||
require "action_mailer/railtie"
|
||||
require "action_mailbox/engine"
|
||||
require "action_view/railtie"
|
||||
require "action_cable/engine"
|
||||
require "sprockets/railtie"
|
||||
require "action_text/engine"
|
||||
# require "rails/test_unit/railtie"
|
||||
|
||||
# Require the gems listed in Gemfile, including any gems
|
||||
# you've limited to :test, :development, or :production.
|
||||
Bundler.require(*Rails.groups)
|
||||
|
||||
module EasyRelease
|
||||
class Application < Rails::Application
|
||||
# Initialize configuration defaults for originally generated Rails version.
|
||||
config.load_defaults 6.0
|
||||
|
||||
# Settings in config/environments/* take precedence over those specified here.
|
||||
# Application configuration can go into files in config/initializers
|
||||
# -- all .rb files in that directory are automatically loaded after loading
|
||||
# the framework and any gems in your application.
|
||||
|
||||
# Don't generate system test files.
|
||||
config.generators.system_tests = nil
|
||||
|
||||
config.active_record.schema_format = :sql
|
||||
|
||||
# Detect locale from HTTP headers
|
||||
config.middleware.use Rack::Locale
|
||||
|
||||
config.active_storage.replace_on_assign_to_many = false
|
||||
end
|
||||
end
|
||||
4
config/boot.rb
Normal file
4
config/boot.rb
Normal file
@@ -0,0 +1,4 @@
|
||||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
|
||||
|
||||
require 'bundler/setup' # Set up gems listed in the Gemfile.
|
||||
require 'bootsnap/setup' # Speed up boot time by caching expensive operations.
|
||||
15
config/cable.yml
Normal file
15
config/cable.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
development:
|
||||
<% if ENV["REDIS_URL"] %>
|
||||
adapter: redis
|
||||
url: <%= ENV.fetch("REDIS_URL") %>
|
||||
<% else %>
|
||||
adapter: async
|
||||
<% end %>
|
||||
|
||||
test:
|
||||
adapter: test
|
||||
|
||||
production:
|
||||
adapter: redis
|
||||
url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %>
|
||||
channel_prefix: easy_release_production
|
||||
1
config/credentials.yml.enc
Normal file
1
config/credentials.yml.enc
Normal file
@@ -0,0 +1 @@
|
||||
0W15EiP+LwIYXJj9SuZmoQKFVYH7l/SWKnFaFzvLfuibNSxNtwBYj6H/jV8VMVuSE1eOZQDw+n10EPWR8jmAh2E0J5OlcxE4Q7SfsQoF0/srt5meYbyRb5QtWBx0csHZCgtQK/G2Ez8HoxILEYN01UyLeb5zNYlDbLuSUrmFxlzhcUD5f6T0cYEZ+c1s0ZaoT7kVpZf9nS89xDoaJf1XElVUgnSeTedgvx7j55dZZ+t6phl0kvSrJ2FbCe6UnBO+t8VWXPptp1W6Mv+5MlW2mNWC62g2XqMvivS8AYwL7+DvB3ZvngTlrBjl1rjpLpEppS4VgM0GUsJWAGbOFJqg9qiTtapiGKBfdWACMhFUsKgZJR0XNHFtpYGl5ysxR0rg+HC6Ao0PUBn5qEYmxHyrETERNjNfr5UX--SpJalQMTsugk97nB--/OBGVKNeOwJWnzp+Byx4yg==
|
||||
91
config/database.yml
Normal file
91
config/database.yml
Normal file
@@ -0,0 +1,91 @@
|
||||
# PostgreSQL. Versions 9.1 and up are supported.
|
||||
#
|
||||
# Install the pg driver:
|
||||
# gem install pg
|
||||
# On OS X with Homebrew:
|
||||
# gem install pg -- --with-pg-config=/usr/local/bin/pg_config
|
||||
# On OS X with MacPorts:
|
||||
# gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
|
||||
# On Windows:
|
||||
# gem install pg
|
||||
# Choose the win32 build.
|
||||
# Install PostgreSQL and put its /bin directory on your path.
|
||||
#
|
||||
# Configure Using Gemfile
|
||||
# gem 'pg'
|
||||
#
|
||||
default: &default
|
||||
adapter: postgresql
|
||||
encoding: unicode
|
||||
# For details on connection pooling, see Rails configuration guide
|
||||
# http://guides.rubyonrails.org/configuring.html#database-pooling
|
||||
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
||||
|
||||
development:
|
||||
<<: *default
|
||||
database: easy-release_development
|
||||
|
||||
# The specified database role being used to connect to postgres.
|
||||
# To create additional roles in postgres see `$ createuser --help`.
|
||||
# When left blank, postgres will use the default role. This is
|
||||
# the same name as the operating system user that initialized the database.
|
||||
#username: easy-release
|
||||
|
||||
# The password associated with the postgres role (username).
|
||||
#password:
|
||||
|
||||
# Connect on a TCP socket. Omitted by default since the client uses a
|
||||
# domain socket that doesn't need configuration. Windows does not have
|
||||
# domain sockets, so uncomment these lines.
|
||||
#host: localhost
|
||||
|
||||
# The TCP port the server listens on. Defaults to 5432.
|
||||
# If your server runs on a different port number, change accordingly.
|
||||
#port: 5432
|
||||
|
||||
# Schema search path. The server defaults to $user,public
|
||||
#schema_search_path: myapp,sharedapp,public
|
||||
|
||||
# Minimum log levels, in increasing order:
|
||||
# debug5, debug4, debug3, debug2, debug1,
|
||||
# log, notice, warning, error, fatal, and panic
|
||||
# Defaults to warning.
|
||||
#min_messages: notice
|
||||
|
||||
# Warning: The database defined as "test" will be erased and
|
||||
# re-generated from your development database when you run "rake".
|
||||
# Do not set this db to the same as development or production.
|
||||
test:
|
||||
<<: *default
|
||||
database: easy-release_test
|
||||
|
||||
# As with config/secrets.yml, you never want to store sensitive information,
|
||||
# like your database password, in your source code. If your source code is
|
||||
# ever seen by anyone, they now have access to your database.
|
||||
#
|
||||
# Instead, provide the password as a unix environment variable when you boot
|
||||
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
|
||||
# for a full rundown on how to provide these environment variables in a
|
||||
# production deployment.
|
||||
#
|
||||
# On Heroku and other platform providers, you may have a full connection URL
|
||||
# available as an environment variable. For example:
|
||||
#
|
||||
# DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase"
|
||||
#
|
||||
# You can use this database configuration with:
|
||||
#
|
||||
# production:
|
||||
# url: <%= ENV['DATABASE_URL'] %>
|
||||
#
|
||||
review:
|
||||
<<: *default
|
||||
database: easy-release_review
|
||||
username: easy-release
|
||||
password: <%= ENV['EASY-RELEASE_DATABASE_PASSWORD'] %>
|
||||
|
||||
production:
|
||||
<<: *default
|
||||
database: easy-release_production
|
||||
username: easy-release
|
||||
password: <%= ENV['EASY-RELEASE_DATABASE_PASSWORD'] %>
|
||||
5
config/environment.rb
Normal file
5
config/environment.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
# Load the Rails application.
|
||||
require_relative 'application'
|
||||
|
||||
# Initialize the Rails application.
|
||||
Rails.application.initialize!
|
||||
78
config/environments/development.rb
Normal file
78
config/environments/development.rb
Normal file
@@ -0,0 +1,78 @@
|
||||
Rails.application.configure do
|
||||
# Settings specified here will take precedence over those in config/application.rb.
|
||||
|
||||
# In the development environment your application's code is reloaded on
|
||||
# every request. This slows down response time but is perfect for development
|
||||
# since you don't have to restart the web server when you make code changes.
|
||||
config.cache_classes = false
|
||||
|
||||
# Do not eager load code on boot.
|
||||
config.eager_load = false
|
||||
|
||||
# Show full error reports.
|
||||
config.consider_all_requests_local = true
|
||||
|
||||
# Enable/disable caching. By default caching is disabled.
|
||||
# Run rails dev:cache to toggle caching.
|
||||
if Rails.root.join('tmp', 'caching-dev.txt').exist?
|
||||
config.action_controller.perform_caching = true
|
||||
config.action_controller.enable_fragment_cache_logging = true
|
||||
|
||||
config.cache_store = :memory_store
|
||||
config.public_file_server.headers = {
|
||||
'Cache-Control' => "public, max-age=#{2.days.to_i}"
|
||||
}
|
||||
else
|
||||
config.action_controller.perform_caching = false
|
||||
|
||||
config.cache_store = :null_store
|
||||
end
|
||||
|
||||
# Store uploaded files on the local file system (see config/storage.yml for options)
|
||||
config.active_storage.service = :amazon
|
||||
|
||||
# Don't care if the mailer can't send.
|
||||
config.action_mailer.raise_delivery_errors = false
|
||||
|
||||
config.action_mailer.perform_caching = false
|
||||
|
||||
# Print deprecation notices to the Rails logger.
|
||||
config.active_support.deprecation = :log
|
||||
|
||||
# Raise an error on page load if there are pending migrations.
|
||||
config.active_record.migration_error = :page_load
|
||||
|
||||
# Highlight code that triggered database queries in logs.
|
||||
config.active_record.verbose_query_logs = true
|
||||
|
||||
# Debug mode disables concatenation and preprocessing of assets.
|
||||
# This option may cause significant delays in view rendering with a large
|
||||
# number of complex assets.
|
||||
config.assets.debug = true
|
||||
|
||||
# Suppress logger output for asset requests.
|
||||
config.assets.quiet = true
|
||||
|
||||
# Raises error for missing translations
|
||||
config.action_view.raise_on_missing_translations = true
|
||||
|
||||
# Use an evented file watcher to asynchronously detect changes in source code,
|
||||
# routes, locales, etc. This feature depends on the listen gem.
|
||||
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
||||
|
||||
# Raises error for unpermitted controller parameters
|
||||
config.action_controller.action_on_unpermitted_parameters = :raise
|
||||
|
||||
# Set default values for the host and port used in URLs
|
||||
config.action_controller.default_url_options = {
|
||||
host: AppHost.new.domain,
|
||||
port: AppHost.new.port,
|
||||
protocol: AppHost.new.protocol,
|
||||
}
|
||||
|
||||
if ENV["REDIS_URL"]
|
||||
config.active_job.queue_adapter = :sidekiq
|
||||
end
|
||||
|
||||
config.hosts << /[a-z0-9]+\.ngrok\.io/
|
||||
end
|
||||
113
config/environments/production.rb
Normal file
113
config/environments/production.rb
Normal file
@@ -0,0 +1,113 @@
|
||||
Rails.application.configure do
|
||||
# Settings specified here will take precedence over those in config/application.rb.
|
||||
|
||||
# Code is not reloaded between requests.
|
||||
config.cache_classes = true
|
||||
|
||||
# Eager load code on boot. This eager loads most of Rails and
|
||||
# your application in memory, allowing both threaded web servers
|
||||
# and those relying on copy on write to perform better.
|
||||
# Rake tasks automatically ignore this option for performance.
|
||||
config.eager_load = true
|
||||
|
||||
# Full error reports are disabled and caching is turned on.
|
||||
config.consider_all_requests_local = false
|
||||
config.action_controller.perform_caching = true
|
||||
|
||||
# Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
|
||||
# or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
|
||||
# config.require_master_key = true
|
||||
|
||||
# Disable serving static files from the `/public` folder by default since
|
||||
# Apache or NGINX already handles this.
|
||||
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
|
||||
|
||||
# Compress JavaScripts and CSS.
|
||||
# Enable ES 6 compilation
|
||||
# See: https://github.com/lautis/uglifier/issues/127
|
||||
config.assets.js_compressor = Uglifier.new(harmony: true)
|
||||
# config.assets.css_compressor = :sass
|
||||
|
||||
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
||||
config.assets.compile = false
|
||||
|
||||
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
|
||||
|
||||
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
||||
# config.action_controller.asset_host = 'http://assets.example.com'
|
||||
|
||||
# Specifies the header that your server uses for sending files.
|
||||
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
|
||||
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
|
||||
|
||||
# Store uploaded files on the local file system (see config/storage.yml for options)
|
||||
config.active_storage.service = :amazon
|
||||
|
||||
# Mount Action Cable outside main process or domain
|
||||
# config.action_cable.mount_path = nil
|
||||
# config.action_cable.url = 'wss://example.com/cable'
|
||||
# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
|
||||
|
||||
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
||||
config.force_ssl = AppHost.new.using_ssl?
|
||||
|
||||
# Use the lowest log level to ensure availability of diagnostic information
|
||||
# when problems arise.
|
||||
config.log_level = :debug
|
||||
|
||||
# Prepend all log lines with the following tags.
|
||||
config.log_tags = [:request_id]
|
||||
|
||||
# Use a different cache store in production.
|
||||
# config.cache_store = :mem_cache_store
|
||||
|
||||
# Use a real queuing backend for Active Job (and separate queues per environment)
|
||||
config.active_job.queue_adapter = :sidekiq
|
||||
# config.active_job.queue_name_prefix = "easy_release_#{Rails.env}"
|
||||
|
||||
config.action_mailer.perform_caching = false
|
||||
|
||||
# Ignore bad email addresses and do not raise email delivery errors.
|
||||
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
||||
# config.action_mailer.raise_delivery_errors = false
|
||||
|
||||
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
||||
# the I18n.default_locale when a translation cannot be found).
|
||||
config.i18n.fallbacks = true
|
||||
|
||||
# Send deprecation notices to registered listeners.
|
||||
config.active_support.deprecation = :notify
|
||||
|
||||
# Use default logging formatter so that PID and timestamp are not suppressed.
|
||||
config.log_formatter = ::Logger::Formatter.new
|
||||
|
||||
# Use a different logger for distributed setups.
|
||||
# require 'syslog/logger'
|
||||
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
||||
|
||||
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
||||
logger = ActiveSupport::Logger.new(STDOUT)
|
||||
logger.formatter = config.log_formatter
|
||||
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
||||
end
|
||||
|
||||
# Do not dump schema after migrations.
|
||||
config.active_record.dump_schema_after_migration = false
|
||||
|
||||
# Set default value for the host used in URLs
|
||||
config.action_controller.default_url_options = {
|
||||
host: AppHost.new.domain,
|
||||
protocol: AppHost.new.protocol,
|
||||
}
|
||||
|
||||
# Configure ActionMailer to use SendGrid
|
||||
ActionMailer::Base.smtp_settings = {
|
||||
user_name: ENV['SENDGRID_USERNAME'],
|
||||
password: ENV['SENDGRID_PASSWORD'],
|
||||
domain: AppHost.new.domain,
|
||||
address: 'smtp.sendgrid.net',
|
||||
port: 587,
|
||||
authentication: :plain,
|
||||
enable_starttls_auto: true
|
||||
}
|
||||
end
|
||||
113
config/environments/review.rb
Normal file
113
config/environments/review.rb
Normal file
@@ -0,0 +1,113 @@
|
||||
Rails.application.configure do
|
||||
# Settings specified here will take precedence over those in config/application.rb.
|
||||
|
||||
# Code is not reloaded between requests.
|
||||
config.cache_classes = true
|
||||
|
||||
# Eager load code on boot. This eager loads most of Rails and
|
||||
# your application in memory, allowing both threaded web servers
|
||||
# and those relying on copy on write to perform better.
|
||||
# Rake tasks automatically ignore this option for performance.
|
||||
config.eager_load = true
|
||||
|
||||
# Full error reports are disabled and caching is turned on.
|
||||
config.consider_all_requests_local = false
|
||||
config.action_controller.perform_caching = true
|
||||
|
||||
# Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
|
||||
# or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
|
||||
# config.require_master_key = true
|
||||
|
||||
# Disable serving static files from the `/public` folder by default since
|
||||
# Apache or NGINX already handles this.
|
||||
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
|
||||
|
||||
# Compress JavaScripts and CSS.
|
||||
# Enable ES 6 compilation
|
||||
# See: https://github.com/lautis/uglifier/issues/127
|
||||
config.assets.js_compressor = Uglifier.new(harmony: true)
|
||||
# config.assets.css_compressor = :sass
|
||||
|
||||
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
||||
config.assets.compile = false
|
||||
|
||||
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
|
||||
|
||||
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
||||
# config.action_controller.asset_host = 'http://assets.example.com'
|
||||
|
||||
# Specifies the header that your server uses for sending files.
|
||||
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
|
||||
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
|
||||
|
||||
# Store uploaded files on the local file system (see config/storage.yml for options)
|
||||
config.active_storage.service = :amazon
|
||||
|
||||
# Mount Action Cable outside main process or domain
|
||||
# config.action_cable.mount_path = nil
|
||||
# config.action_cable.url = 'wss://example.com/cable'
|
||||
# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
|
||||
|
||||
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
||||
config.force_ssl = AppHost.new.using_ssl?
|
||||
|
||||
# Use the lowest log level to ensure availability of diagnostic information
|
||||
# when problems arise.
|
||||
config.log_level = :debug
|
||||
|
||||
# Prepend all log lines with the following tags.
|
||||
config.log_tags = [:request_id]
|
||||
|
||||
# Use a different cache store in production.
|
||||
# config.cache_store = :mem_cache_store
|
||||
|
||||
# Use a real queuing backend for Active Job (and separate queues per environment)
|
||||
config.active_job.queue_adapter = :sidekiq
|
||||
# config.active_job.queue_name_prefix = "easy_release_#{Rails.env}"
|
||||
|
||||
config.action_mailer.perform_caching = false
|
||||
|
||||
# Ignore bad email addresses and do not raise email delivery errors.
|
||||
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
||||
# config.action_mailer.raise_delivery_errors = false
|
||||
|
||||
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
||||
# the I18n.default_locale when a translation cannot be found).
|
||||
config.i18n.fallbacks = true
|
||||
|
||||
# Send deprecation notices to registered listeners.
|
||||
config.active_support.deprecation = :notify
|
||||
|
||||
# Use default logging formatter so that PID and timestamp are not suppressed.
|
||||
config.log_formatter = ::Logger::Formatter.new
|
||||
|
||||
# Use a different logger for distributed setups.
|
||||
# require 'syslog/logger'
|
||||
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
||||
|
||||
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
||||
logger = ActiveSupport::Logger.new(STDOUT)
|
||||
logger.formatter = config.log_formatter
|
||||
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
||||
end
|
||||
|
||||
# Do not dump schema after migrations.
|
||||
config.active_record.dump_schema_after_migration = false
|
||||
|
||||
# Set default value for the host used in URLs
|
||||
config.action_controller.default_url_options = {
|
||||
host: AppHost.new.domain,
|
||||
protocol: AppHost.new.protocol,
|
||||
}
|
||||
|
||||
# Configure ActionMailer to use SendGrid
|
||||
ActionMailer::Base.smtp_settings = {
|
||||
user_name: ENV['SENDGRID_USERNAME'],
|
||||
password: ENV['SENDGRID_PASSWORD'],
|
||||
domain: AppHost.new.domain,
|
||||
address: 'smtp.sendgrid.net',
|
||||
port: 587,
|
||||
authentication: :plain,
|
||||
enable_starttls_auto: true
|
||||
}
|
||||
end
|
||||
52
config/environments/test.rb
Normal file
52
config/environments/test.rb
Normal file
@@ -0,0 +1,52 @@
|
||||
Rails.application.configure do
|
||||
# Settings specified here will take precedence over those in config/application.rb.
|
||||
|
||||
# The test environment is used exclusively to run your application's
|
||||
# test suite. You never need to work with it otherwise. Remember that
|
||||
# your test database is "scratch space" for the test suite and is wiped
|
||||
# and recreated between test runs. Don't rely on the data there!
|
||||
config.cache_classes = true
|
||||
|
||||
# Do not eager load code on boot. This avoids loading your whole application
|
||||
# just for the purpose of running a single test. If you are using a tool that
|
||||
# preloads Rails for running tests, you may have to set it to true.
|
||||
config.eager_load = false
|
||||
|
||||
# Configure public file server for tests with Cache-Control for performance.
|
||||
config.public_file_server.enabled = true
|
||||
config.public_file_server.headers = {
|
||||
'Cache-Control' => "public, max-age=#{1.hour.to_i}"
|
||||
}
|
||||
|
||||
# Show full error reports and disable caching.
|
||||
config.consider_all_requests_local = true
|
||||
config.action_controller.perform_caching = false
|
||||
|
||||
# Raise exceptions instead of rendering exception templates.
|
||||
config.action_dispatch.show_exceptions = false
|
||||
|
||||
# Disable request forgery protection in test environment.
|
||||
config.action_controller.allow_forgery_protection = false
|
||||
|
||||
# Store uploaded files on the local file system in a temporary directory
|
||||
config.active_storage.service = :test
|
||||
|
||||
config.action_mailer.perform_caching = false
|
||||
|
||||
# Tell Action Mailer not to deliver emails to the real world.
|
||||
# The :test delivery method accumulates sent emails in the
|
||||
# ActionMailer::Base.deliveries array.
|
||||
config.action_mailer.delivery_method = :test
|
||||
|
||||
# Print deprecation notices to the stderr.
|
||||
config.active_support.deprecation = :stderr
|
||||
|
||||
# Raises error for missing translations
|
||||
config.action_view.raise_on_missing_translations = true
|
||||
|
||||
# Raises error for unpermitted controller parameters
|
||||
config.action_controller.action_on_unpermitted_parameters = :raise
|
||||
|
||||
ENV["ENABLE_ANALYTICS"] = "true"
|
||||
ENV["BRAYNIAC_AI_API_ENDPOINT"] ||= ""
|
||||
end
|
||||
3
config/initializers/allowed_host.rb
Normal file
3
config/initializers/allowed_host.rb
Normal file
@@ -0,0 +1,3 @@
|
||||
unless Rails.env.test?
|
||||
Rails.application.config.hosts << AppHost.new.domain
|
||||
end
|
||||
4
config/initializers/analytics_ruby.rb
Normal file
4
config/initializers/analytics_ruby.rb
Normal file
@@ -0,0 +1,4 @@
|
||||
AnalyticsRuby = Segment::Analytics.new({
|
||||
write_key: ENV.fetch("SEGMENT_SERVER_KEY", ""),
|
||||
on_error: Proc.new { |_status, msg| print msg }
|
||||
})
|
||||
8
config/initializers/application_controller_renderer.rb
Normal file
8
config/initializers/application_controller_renderer.rb
Normal file
@@ -0,0 +1,8 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# ActiveSupport::Reloader.to_prepare do
|
||||
# ApplicationController.renderer.defaults.merge!(
|
||||
# http_host: 'example.org',
|
||||
# https: false
|
||||
# )
|
||||
# end
|
||||
14
config/initializers/assets.rb
Normal file
14
config/initializers/assets.rb
Normal file
@@ -0,0 +1,14 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Version of your assets, change this if you want to expire all your assets.
|
||||
Rails.application.config.assets.version = '1.0'
|
||||
|
||||
# Add additional assets to the asset load path.
|
||||
# Rails.application.config.assets.paths << Emoji.images_path
|
||||
# Add Yarn node_modules folder to the asset load path.
|
||||
Rails.application.config.assets.paths << Rails.root.join('node_modules')
|
||||
|
||||
# Precompile additional assets.
|
||||
# application.js, application.css, and all non-JS/CSS in the app/assets
|
||||
# folder are already added.
|
||||
Rails.application.config.assets.precompile += %w( contract_pdf.css )
|
||||
7
config/initializers/backtrace_silencers.rb
Normal file
7
config/initializers/backtrace_silencers.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
|
||||
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
|
||||
|
||||
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
|
||||
# Rails.backtrace_cleaner.remove_silencers!
|
||||
6
config/initializers/bootstrap_form.rb
Normal file
6
config/initializers/bootstrap_form.rb
Normal file
@@ -0,0 +1,6 @@
|
||||
require_relative "../../lib/bootstrap_form_extensions"
|
||||
|
||||
# Include patches to `bootstrap_form` gem
|
||||
class BootstrapForm::FormBuilder
|
||||
prepend BootstrapFormExtensions
|
||||
end
|
||||
1
config/initializers/brayniac_ai.rb
Normal file
1
config/initializers/brayniac_ai.rb
Normal file
@@ -0,0 +1 @@
|
||||
require "brayniac_ai"
|
||||
36
config/initializers/content_security_policy.rb
Normal file
36
config/initializers/content_security_policy.rb
Normal file
@@ -0,0 +1,36 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Define an application-wide content security policy
|
||||
# For further information see the following documentation
|
||||
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
|
||||
|
||||
Rails.application.config.content_security_policy do |policy|
|
||||
policy.default_src :self, :https, AppHost.new.domain_with_port, :unsafe_inline
|
||||
policy.font_src :self, :https, :data
|
||||
policy.img_src :self, :https, :data
|
||||
policy.object_src :self
|
||||
policy.script_src :self, :https, AppHost.new.domain_with_port, "https://stream.mux.com", :blob, :unsafe_eval
|
||||
policy.media_src :self, :https, AppHost.new.domain_with_port, "https://stream.mux.com", :data, :blob
|
||||
# policy.style_src :self, :https, :unsafe_inline
|
||||
# If you are using webpack-dev-server then specify webpack-dev-server host
|
||||
# policy.connect_src :self, :https, "http://localhost:3035", "ws://localhost:3035" if Rails.env.development?
|
||||
policy.connect_src :self, :https, "ws://#{AppHost.new.domain_with_port}", "wss://#{AppHost.new.domain_with_port}"
|
||||
|
||||
# Specify URI for violation reports
|
||||
# policy.report_uri "/csp-violation-report-endpoint"
|
||||
end
|
||||
|
||||
# If you are using UJS then enable automatic nonce generation
|
||||
Rails.application.config.content_security_policy_nonce_generator = -> (request) do
|
||||
# Use the same CSP nonce for Turbolinks requests
|
||||
if request.env["HTTP_TURBOLINKS_REFERRER"].present?
|
||||
request.env["HTTP_X_TURBOLINKS_NONCE"]
|
||||
else
|
||||
SecureRandom.base64(16)
|
||||
end
|
||||
end
|
||||
|
||||
# Report CSP violations to a specified URI
|
||||
# For further information see the following documentation:
|
||||
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
|
||||
# Rails.application.config.content_security_policy_report_only = true
|
||||
5
config/initializers/cookies_serializer.rb
Normal file
5
config/initializers/cookies_serializer.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Specify a serializer for the signed and encrypted cookie jars.
|
||||
# Valid options are :json, :marshal, and :hybrid.
|
||||
Rails.application.config.action_dispatch.cookies_serializer = :json
|
||||
13
config/initializers/cors.rb
Normal file
13
config/initializers/cors.rb
Normal file
@@ -0,0 +1,13 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Avoid CORS issues when API is called from the frontend app.
|
||||
# Handle Cross-Origin Resource Sharing (CORS) in order to accept cross-origin AJAX requests.
|
||||
|
||||
# Read more: https://github.com/cyu/rack-cors
|
||||
|
||||
Rails.application.config.middleware.insert_before 0, Rack::Cors do
|
||||
allow do
|
||||
origins 'https://stream.mux.com'
|
||||
resource '*', headers: :any, methods: [:get, :post, :options]
|
||||
end
|
||||
end
|
||||
7
config/initializers/filter_parameter_logging.rb
Normal file
7
config/initializers/filter_parameter_logging.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Configure sensitive parameters which will be filtered from the log file.
|
||||
Rails.application.config.filter_parameters += [:password]
|
||||
|
||||
# Filter base64 image strings from logs
|
||||
Rails.application.config.filter_parameters += ['person_photo.io', 'guardian_photo.io', 'photos.io', 'signature', 'signature_base64']
|
||||
9
config/initializers/hubspot_ruby.rb
Normal file
9
config/initializers/hubspot_ruby.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
hubspot_api_key = ENV["HUBSPOT_API_KEY"]
|
||||
hubspot_portal_id = ENV["HUBSPOT_PORTAL_ID"]
|
||||
|
||||
if hubspot_api_key.present? && hubspot_portal_id.present?
|
||||
Hubspot.configure(
|
||||
hapikey: hubspot_api_key,
|
||||
portal_id: hubspot_portal_id
|
||||
)
|
||||
end
|
||||
16
config/initializers/inflections.rb
Normal file
16
config/initializers/inflections.rb
Normal file
@@ -0,0 +1,16 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Add new inflection rules using the following format. Inflections
|
||||
# are locale specific, and you may define rules for as many different
|
||||
# locales as you wish. All of these examples are active by default:
|
||||
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
||||
# inflect.plural /^(ox)$/i, '\1en'
|
||||
# inflect.singular /^(ox)en/i, '\1'
|
||||
# inflect.irregular 'person', 'people'
|
||||
# inflect.uncountable %w( fish sheep )
|
||||
# end
|
||||
|
||||
# These inflection rules are supported but not enabled by default:
|
||||
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
||||
# inflect.acronym 'RESTful'
|
||||
# end
|
||||
83
config/initializers/jsonapi.rb
Normal file
83
config/initializers/jsonapi.rb
Normal file
@@ -0,0 +1,83 @@
|
||||
require "jsonapi/rails"
|
||||
|
||||
JSONAPI::Rails.configure do |config|
|
||||
# # Set a default serializable class mapping.
|
||||
# config.jsonapi_class = Hash.new { |h, k|
|
||||
# names = k.to_s.split('::')
|
||||
# klass = names.pop
|
||||
# h[k] = [*names, "Serializable#{klass}"].join('::').safe_constantize
|
||||
# }
|
||||
#
|
||||
# # Set a default serializable class mapping for errors.
|
||||
# config.jsonapi_errors_class = Hash.new { |h, k|
|
||||
# names = k.to_s.split('::')
|
||||
# klass = names.pop
|
||||
# h[k] = [*names, "Serializable#{klass}"].join('::').safe_constantize
|
||||
# }.tap { |h|
|
||||
# h[:'ActiveModel::Errors'] = JSONAPI::Rails::SerializableActiveModelErrors
|
||||
# h[:Hash] = JSONAPI::Rails::SerializableErrorHash
|
||||
# }
|
||||
#
|
||||
# # Set a default JSON API object.
|
||||
# config.jsonapi_object = {
|
||||
# version: '1.0'
|
||||
# }
|
||||
#
|
||||
# # Set default cache.
|
||||
# # A lambda/proc that will be eval'd in the controller context.
|
||||
# config.jsonapi_cache = ->() { nil }
|
||||
#
|
||||
# # Uncomment the following to enable fragment caching. Make sure you
|
||||
# # invalidate cache keys accordingly.
|
||||
# config.jsonapi_cache = lambda {
|
||||
# Rails.cache
|
||||
# }
|
||||
#
|
||||
# # Set default exposures.
|
||||
# # A lambda/proc that will be eval'd in the controller context.
|
||||
# config.jsonapi_expose = lambda {
|
||||
# { url_helpers: ::Rails.application.routes.url_helpers }
|
||||
# }
|
||||
#
|
||||
# # Set default fields.
|
||||
# # A lambda/proc that will be eval'd in the controller context.
|
||||
# config.jsonapi_fields = ->() { nil }
|
||||
#
|
||||
# # Uncomment the following to have it default to the `fields` query
|
||||
# # parameter.
|
||||
# config.jsonapi_fields = lambda {
|
||||
# fields_param = params.to_unsafe_hash.fetch(:fields, {})
|
||||
# Hash[fields_param.map { |k, v| [k.to_sym, v.split(',').map!(&:to_sym)] }]
|
||||
# }
|
||||
#
|
||||
# # Set default include.
|
||||
# # A lambda/proc that will be eval'd in the controller context.
|
||||
# config.jsonapi_include = ->() { nil }
|
||||
#
|
||||
# # Uncomment the following to have it default to the `include` query
|
||||
# # parameter.
|
||||
# config.jsonapi_include = lambda {
|
||||
# params[:include]
|
||||
# }
|
||||
#
|
||||
# # Set default links.
|
||||
# # A lambda/proc that will be eval'd in the controller context.
|
||||
# config.jsonapi_links = ->() { {} }
|
||||
#
|
||||
# # Set default meta.
|
||||
# # A lambda/proc that will be eval'd in the controller context.
|
||||
# config.jsonapi_meta = ->() { nil }
|
||||
#
|
||||
# # Set a default pagination scheme.
|
||||
# config.jsonapi_pagination = ->(_) { {} }
|
||||
#
|
||||
# # Set a logger.
|
||||
# config.logger = Logger.new(STDOUT)
|
||||
#
|
||||
# # Uncomment the following to disable logging.
|
||||
if Rails.env.test?
|
||||
# too chatty on the tests, but useful in other envs
|
||||
# because of the possible deserialization problems
|
||||
config.logger = Logger.new('/dev/null')
|
||||
end
|
||||
end
|
||||
66
config/initializers/knock.rb
Normal file
66
config/initializers/knock.rb
Normal file
@@ -0,0 +1,66 @@
|
||||
require "knock/version"
|
||||
require "knock/authenticable"
|
||||
|
||||
Knock.setup do |config|
|
||||
|
||||
## Expiration claim
|
||||
## ----------------
|
||||
##
|
||||
## How long before a token is expired. If nil is provided, token will
|
||||
## last forever.
|
||||
##
|
||||
## Default:
|
||||
config.token_lifetime = 10.years
|
||||
|
||||
|
||||
## Audience claim
|
||||
## --------------
|
||||
##
|
||||
## Configure the audience claim to identify the recipients that the token
|
||||
## is intended for.
|
||||
##
|
||||
## Default:
|
||||
# config.token_audience = nil
|
||||
|
||||
## If using Auth0, uncomment the line below
|
||||
# config.token_audience = -> { Rails.application.secrets.auth0_client_id }
|
||||
|
||||
## Signature algorithm
|
||||
## -------------------
|
||||
##
|
||||
## Configure the algorithm used to encode the token
|
||||
##
|
||||
## Default:
|
||||
# config.token_signature_algorithm = 'HS256'
|
||||
|
||||
## Signature key
|
||||
## -------------
|
||||
##
|
||||
## Configure the key used to sign tokens.
|
||||
##
|
||||
## Default:
|
||||
# config.token_secret_signature_key = -> { Rails.application.secrets.secret_key_base }
|
||||
# Default does not work in production, other does not work in dev
|
||||
# When combined, they become: working configuration!
|
||||
config.token_secret_signature_key = -> {
|
||||
Rails.application.secrets.secret_key_base || Rails.application.credentials.secret_key_base
|
||||
}
|
||||
## If using Auth0, uncomment the line below
|
||||
# config.token_secret_signature_key = -> { JWT.base64url_decode Rails.application.secrets.auth0_client_secret }
|
||||
|
||||
## Public key
|
||||
## ----------
|
||||
##
|
||||
## Configure the public key used to decode tokens, if required.
|
||||
##
|
||||
## Default:
|
||||
# config.token_public_key = nil
|
||||
|
||||
## Exception Class
|
||||
## ---------------
|
||||
##
|
||||
## Configure the exception to be used when user cannot be found.
|
||||
##
|
||||
## Default:
|
||||
# config.not_found_exception_class_name = 'ActiveRecord::RecordNotFound'
|
||||
end
|
||||
2
config/initializers/locale.rb
Normal file
2
config/initializers/locale.rb
Normal file
@@ -0,0 +1,2 @@
|
||||
# Whitelist locales available for the application
|
||||
I18n.available_locales = [:en, :es]
|
||||
4
config/initializers/mime_types.rb
Normal file
4
config/initializers/mime_types.rb
Normal file
@@ -0,0 +1,4 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Add new mime types for use in respond_to blocks:
|
||||
# Mime::Type.register "text/richtext", :rtf
|
||||
115
config/initializers/money.rb
Normal file
115
config/initializers/money.rb
Normal file
@@ -0,0 +1,115 @@
|
||||
# encoding : utf-8
|
||||
|
||||
MoneyRails.configure do |config|
|
||||
|
||||
# To set the default currency
|
||||
#
|
||||
# config.default_currency = :usd
|
||||
|
||||
# Set default bank object
|
||||
#
|
||||
# Example:
|
||||
# config.default_bank = EuCentralBank.new
|
||||
|
||||
# Add exchange rates to current money bank object.
|
||||
# (The conversion rate refers to one direction only)
|
||||
#
|
||||
# Example:
|
||||
# config.add_rate "USD", "CAD", 1.24515
|
||||
# config.add_rate "CAD", "USD", 0.803115
|
||||
|
||||
# To handle the inclusion of validations for monetized fields
|
||||
# The default value is true
|
||||
#
|
||||
# config.include_validations = true
|
||||
|
||||
# Default ActiveRecord migration configuration values for columns:
|
||||
#
|
||||
# config.amount_column = { prefix: '', # column name prefix
|
||||
# postfix: '_cents', # column name postfix
|
||||
# column_name: nil, # full column name (overrides prefix, postfix and accessor name)
|
||||
# type: :integer, # column type
|
||||
# present: true, # column will be created
|
||||
# null: false, # other options will be treated as column options
|
||||
# default: 0
|
||||
# }
|
||||
#
|
||||
# config.currency_column = { prefix: '',
|
||||
# postfix: '_currency',
|
||||
# column_name: nil,
|
||||
# type: :string,
|
||||
# present: true,
|
||||
# null: false,
|
||||
# default: 'USD'
|
||||
# }
|
||||
|
||||
# Register a custom currency
|
||||
#
|
||||
# Example:
|
||||
# config.register_currency = {
|
||||
# priority: 1,
|
||||
# iso_code: "EU4",
|
||||
# name: "Euro with subunit of 4 digits",
|
||||
# symbol: "€",
|
||||
# symbol_first: true,
|
||||
# subunit: "Subcent",
|
||||
# subunit_to_unit: 10000,
|
||||
# thousands_separator: ".",
|
||||
# decimal_mark: ","
|
||||
# }
|
||||
|
||||
# Specify a rounding mode
|
||||
# Any one of:
|
||||
#
|
||||
# BigDecimal::ROUND_UP,
|
||||
# BigDecimal::ROUND_DOWN,
|
||||
# BigDecimal::ROUND_HALF_UP,
|
||||
# BigDecimal::ROUND_HALF_DOWN,
|
||||
# BigDecimal::ROUND_HALF_EVEN,
|
||||
# BigDecimal::ROUND_CEILING,
|
||||
# BigDecimal::ROUND_FLOOR
|
||||
#
|
||||
# set to BigDecimal::ROUND_HALF_EVEN by default
|
||||
#
|
||||
# config.rounding_mode = BigDecimal::ROUND_HALF_UP
|
||||
|
||||
# Set default money format globally.
|
||||
# Default value is nil meaning "ignore this option".
|
||||
# Example:
|
||||
#
|
||||
# config.default_format = {
|
||||
# no_cents_if_whole: nil,
|
||||
# symbol: nil,
|
||||
# sign_before_symbol: nil
|
||||
# }
|
||||
|
||||
# If you would like to use I18n localization (formatting depends on the
|
||||
# locale):
|
||||
# config.locale_backend = :i18n
|
||||
#
|
||||
# Example (using default localization from rails-i18n):
|
||||
#
|
||||
# I18n.locale = :en
|
||||
# Money.new(10_000_00, 'USD').format # => $10,000.00
|
||||
# I18n.locale = :es
|
||||
# Money.new(10_000_00, 'USD').format # => $10.000,00
|
||||
#
|
||||
# For the legacy behaviour of "per currency" localization (formatting depends
|
||||
# only on currency):
|
||||
config.locale_backend = :currency
|
||||
#
|
||||
# Example:
|
||||
# Money.new(10_000_00, 'USD').format # => $10,000.00
|
||||
# Money.new(10_000_00, 'EUR').format # => €10.000,00
|
||||
#
|
||||
# In case you don't need localization and would like to use default values
|
||||
# (can be redefined using config.default_format):
|
||||
# config.locale_backend = nil
|
||||
|
||||
# Set default raise_error_on_money_parsing option
|
||||
# It will be raise error if assigned different currency
|
||||
# The default value is false
|
||||
#
|
||||
# Example:
|
||||
# config.raise_error_on_money_parsing = false
|
||||
end
|
||||
4
config/initializers/mux_ruby.rb
Normal file
4
config/initializers/mux_ruby.rb
Normal file
@@ -0,0 +1,4 @@
|
||||
MuxRuby.configure do |config|
|
||||
config.username = ENV['MUX_TOKEN_ID']
|
||||
config.password = ENV['MUX_TOKEN_SECRET']
|
||||
end
|
||||
3
config/initializers/redis.rb
Normal file
3
config/initializers/redis.rb
Normal file
@@ -0,0 +1,3 @@
|
||||
if ENV["REDIS_URL"]
|
||||
$redis = Redis.new(url: ENV["REDIS_URL"])
|
||||
end
|
||||
6
config/initializers/sentry.rb
Normal file
6
config/initializers/sentry.rb
Normal file
@@ -0,0 +1,6 @@
|
||||
if sentry_dsn = ENV['SENTRY_DSN']
|
||||
Raven.configure do |config|
|
||||
config.dsn = sentry_dsn
|
||||
config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s)
|
||||
end
|
||||
end
|
||||
1
config/initializers/will_paginate.rb
Normal file
1
config/initializers/will_paginate.rb
Normal file
@@ -0,0 +1 @@
|
||||
WillPaginate.per_page = 15
|
||||
14
config/initializers/wrap_parameters.rb
Normal file
14
config/initializers/wrap_parameters.rb
Normal file
@@ -0,0 +1,14 @@
|
||||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# This file contains settings for ActionController::ParamsWrapper which
|
||||
# is enabled by default.
|
||||
|
||||
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
|
||||
ActiveSupport.on_load(:action_controller) do
|
||||
wrap_parameters format: [:json]
|
||||
end
|
||||
|
||||
# To enable root element in JSON for ActiveRecord objects.
|
||||
# ActiveSupport.on_load(:active_record) do
|
||||
# self.include_root_in_json = true
|
||||
# end
|
||||
26
config/initializers/zoom.rb
Normal file
26
config/initializers/zoom.rb
Normal file
@@ -0,0 +1,26 @@
|
||||
require 'zoom'
|
||||
unless Rails.env.test?
|
||||
Zoom.configure do |c|
|
||||
c.api_key = ENV['ZOOM_API_KEY']
|
||||
c.api_secret = ENV['ZOOM_API_SECRET']
|
||||
end
|
||||
end
|
||||
|
||||
class Zoom::APIError < StandardError
|
||||
attr_reader :status_code
|
||||
def initialize(status_code)
|
||||
super
|
||||
@status_code = status_code
|
||||
end
|
||||
end
|
||||
|
||||
module RaiseErrorsWithCodes
|
||||
def raise_if_error!(response)
|
||||
if response&.[]('code') && (response['code'] >= 300 || response['code'] == 124)
|
||||
raise Zoom::APIError.new(response['code']), response['message']
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
end
|
||||
Zoom::Utils.singleton_class.send :prepend, RaiseErrorsWithCodes
|
||||
995
config/locales/en.yml
Normal file
995
config/locales/en.yml
Normal file
@@ -0,0 +1,995 @@
|
||||
en:
|
||||
account_auths:
|
||||
account_auth:
|
||||
actions:
|
||||
remove: Remove
|
||||
confirm: Are you sure you want to remove this user from the account?
|
||||
account_logo_form:
|
||||
submit: Upload Logo
|
||||
create:
|
||||
notice: Account manager added
|
||||
destroy:
|
||||
alert: User has been removed from the account.
|
||||
form:
|
||||
submit: Add
|
||||
index:
|
||||
heading: Account
|
||||
invitation:
|
||||
heading: Add Account Manager
|
||||
logo:
|
||||
heading: Add Logo
|
||||
update:
|
||||
alert: Role could not be updated.
|
||||
notice: Role has been updated.
|
||||
accounts:
|
||||
create:
|
||||
error: Invalid sign up details. Please enter valid sign up details
|
||||
notice: The account was created. Please Sign In
|
||||
acquired_media_releases:
|
||||
acquired_media_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
no_media: No Media
|
||||
create:
|
||||
notice: The acquired media release has been created
|
||||
destroy:
|
||||
alert: The acquired media release has been deleted
|
||||
edit:
|
||||
heading: Edit Acquired Media Release
|
||||
form:
|
||||
acquired_media_details:
|
||||
heading: 1 of 3 Release Details
|
||||
contract_and_rights:
|
||||
heading: 3 of 3 Contract & Exploitable Rights
|
||||
files:
|
||||
heading: 2 of 3 Files
|
||||
index:
|
||||
actions:
|
||||
new: Import Release
|
||||
search: Search
|
||||
empty: Acquired Media Releases will appear here
|
||||
table_headers:
|
||||
file_infos_count: No. Files
|
||||
notes: Notes
|
||||
signed_at: Date Signed
|
||||
tags: Tags
|
||||
new:
|
||||
heading: Import Acquired Media Release
|
||||
update:
|
||||
notice: The acquired media release has been updated
|
||||
activerecord:
|
||||
attributes:
|
||||
appearance_release:
|
||||
person_address: Address
|
||||
person_email: Email
|
||||
person_name: Name
|
||||
person_phone: Phone
|
||||
person_photo: Photo
|
||||
signed_on: Date
|
||||
location_release:
|
||||
person_company: Company
|
||||
person_email: Email
|
||||
person_name: Name
|
||||
person_phone: Phone
|
||||
person_title: Title
|
||||
talent_release:
|
||||
person_email: Email
|
||||
person_name: Name
|
||||
person_phone: Phone
|
||||
errors:
|
||||
messages:
|
||||
attached: is not attached
|
||||
content_type: is not a valid file format
|
||||
admin:
|
||||
accounts:
|
||||
create:
|
||||
notice: The account was created
|
||||
index:
|
||||
actions:
|
||||
search: Search accounts.
|
||||
empty: Accounts will appear here.
|
||||
update:
|
||||
notice: The account was updated
|
||||
application:
|
||||
header:
|
||||
sign_out: Sign Out
|
||||
users:
|
||||
create:
|
||||
notice: The user was created
|
||||
destroy:
|
||||
alert: The user was deleted
|
||||
index:
|
||||
actions:
|
||||
new: New User
|
||||
search: Search users
|
||||
empty: Users will appear here
|
||||
update:
|
||||
notice: The user was updated
|
||||
appearance_releases:
|
||||
appearance_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
no_photos: Needs Photo
|
||||
create:
|
||||
failed_import: Failed to create appearance release for files listed below
|
||||
no_attachments: Failed to import - no attachments
|
||||
edit:
|
||||
heading: Edit Appearance Release
|
||||
form:
|
||||
contract_and_rights:
|
||||
heading: 2 of 3 Contract & Exploitable Rights
|
||||
person_details:
|
||||
heading: 1 of 3 Person Details
|
||||
photos:
|
||||
guardian_photo:
|
||||
heading: Guardian Photo
|
||||
heading: 3 of 3 Photo
|
||||
person_photo:
|
||||
heading: Person Photo
|
||||
index:
|
||||
actions:
|
||||
new: Import Release
|
||||
search: Search
|
||||
empty: Appearance Releases will appear here
|
||||
imported_appearance_release_missing_attachment: Person photo or contract missing for imported appearance release
|
||||
table_headers:
|
||||
notes: Notes
|
||||
signed_at: Date Signed
|
||||
tags: Tags
|
||||
new:
|
||||
heading: Import Appearance Release
|
||||
shared:
|
||||
imported_appearance_release_contract_name: Imported Contract
|
||||
imported_appearance_release_headshot_name: Imported Headshot
|
||||
type_filter_actions:
|
||||
all_releases: All Releases
|
||||
complete_releases: Complete Releases
|
||||
incomplete_releases: Incomplete Releases
|
||||
application:
|
||||
header:
|
||||
sign_out: Sign Out
|
||||
sidebar:
|
||||
files: Files
|
||||
team_member: Team Member
|
||||
blank_contracts:
|
||||
new:
|
||||
number_of_copies_label: Number of copies
|
||||
preview_heading: Contract template preview
|
||||
pdf:
|
||||
do_not_copy_warning: "DO NOT COPY"
|
||||
serial_number_label: "Serial Number"
|
||||
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}."
|
||||
bookmarks:
|
||||
bookmark:
|
||||
actions:
|
||||
manage: Manage
|
||||
empty_bookmarks:
|
||||
empty: Notes will appear here
|
||||
broadcasts:
|
||||
broadcast:
|
||||
actions:
|
||||
manage: Manage
|
||||
create:
|
||||
notice: A live stream has been created
|
||||
destroy:
|
||||
alert: A live stream has been deleted
|
||||
api_error: Something went wrong, please try again later after some time
|
||||
index:
|
||||
actions:
|
||||
new: Create New Live Stream
|
||||
empty: Live streams will appear here
|
||||
table_headers:
|
||||
broadcast_created_at: Created Date
|
||||
broadcast_name: Name
|
||||
broadcast_status: Status
|
||||
new:
|
||||
heading:
|
||||
Create Live Stream
|
||||
bulk_taggings:
|
||||
new_bulk_tag_modal:
|
||||
submit: Add
|
||||
contract_downloads:
|
||||
download:
|
||||
failure: Your download could not be generated.
|
||||
pending: "Your %{release_type} contracts are being prepared for download. You will be notified when it's ready."
|
||||
success: "Your %{release_type} contracts are ready. Download now, or retrieve later in the %{downloads_folder_link} folder. %{download_button}"
|
||||
contract_templates:
|
||||
blank_contracts:
|
||||
create:
|
||||
number_of_copies_invalid_notice: Please enter valid number greater than 0
|
||||
contract_template:
|
||||
actions:
|
||||
copy_url: Copy Release URL
|
||||
manage: Manage
|
||||
qr_code: QR Code
|
||||
sign: Sign
|
||||
no_fee: No Fee
|
||||
create:
|
||||
notice: The release template has been created
|
||||
destroy:
|
||||
archived_failure: Failed to archive the release template
|
||||
archived_notice: The release template has been archived
|
||||
form:
|
||||
exploitable_rights:
|
||||
heading: 2 of 3 Exploitable Rights
|
||||
legal:
|
||||
heading: 3 of 3 Legal
|
||||
release_info:
|
||||
heading: 1 of 3 Release Info
|
||||
index:
|
||||
actions:
|
||||
import: Import Release Template
|
||||
new: Create New Release Template
|
||||
empty: Release Templates will appear here
|
||||
heading: Release Templates
|
||||
table_headers:
|
||||
release_type: Type of Release
|
||||
signed_release_count: No. Signed Releases
|
||||
new:
|
||||
heading: New Release Template
|
||||
contracts:
|
||||
photos:
|
||||
guardian_photo_heading: Guardian photo
|
||||
heading:
|
||||
one: Photo
|
||||
other: Photos
|
||||
minor_photos_heading:
|
||||
one: Minor photo
|
||||
other: Minor photos
|
||||
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}."
|
||||
directories:
|
||||
destroy:
|
||||
alert: The folder has been deleted
|
||||
destroy_file:
|
||||
alert: File deleted successfully
|
||||
directories:
|
||||
heading: Custom Folders
|
||||
directory:
|
||||
actions:
|
||||
delete: Delete Folder
|
||||
edit: Update Folder
|
||||
confirm_delete: "WARNING: Are you sure you want to permanently delete this folder? Deleting this folder will also delete all the files stored in this folder."
|
||||
edit:
|
||||
heading: Update Folder
|
||||
file:
|
||||
manage: Manage
|
||||
file_form:
|
||||
heading: UPLOAD NEW FILES
|
||||
manage: Manage
|
||||
submit: Upload Files
|
||||
form:
|
||||
permissions_help: If you do not select permissions, the software will automatically set it to everyone.
|
||||
new:
|
||||
heading: Create New Folder
|
||||
new_file:
|
||||
heading: Upload new files
|
||||
show:
|
||||
actions:
|
||||
new: Upload File
|
||||
search: Search Files
|
||||
empty: Uploaded files will appear here
|
||||
heading: Uploaded Files
|
||||
update:
|
||||
notice: The folder has been updated
|
||||
downloads:
|
||||
download:
|
||||
actions:
|
||||
download: Download Zip
|
||||
manage: Manage
|
||||
index:
|
||||
actions:
|
||||
search: Search Downloads
|
||||
empty: Downloads will appear here
|
||||
table_headers:
|
||||
download_created_at: Created At
|
||||
download_name: Filename
|
||||
download_status: Status
|
||||
download_type: Type
|
||||
errors_helper:
|
||||
failure_message: "The following errors have prevented this %{model_name} from being submitted:"
|
||||
file_infos:
|
||||
edit:
|
||||
heading: Add Media
|
||||
update:
|
||||
notice: The release has been updated
|
||||
helpers:
|
||||
help:
|
||||
video:
|
||||
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.
|
||||
file: Preferred file type is .mov, however, .mp4 will be accepted. File size must be less than 5GB.
|
||||
graphics_only_edl_file: If you do not upload a Graphics Only EDL, the software will not generate a Graphics Cue List.
|
||||
label:
|
||||
acquired_media_release:
|
||||
person_address: Address
|
||||
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_company: Company
|
||||
person_email: Email address
|
||||
person_name: Name
|
||||
person_phone: Phone number
|
||||
person_title: Title
|
||||
appearance_release:
|
||||
minor: Is the person a minor?
|
||||
person_address: Address
|
||||
person_email: Email address
|
||||
person_name: Name
|
||||
person_phone: Phone number
|
||||
location_release:
|
||||
address_city: City
|
||||
address_country: Country
|
||||
address_state: State
|
||||
address_street1: Address
|
||||
address_street2: Address (Line 2)
|
||||
address_zip: Zip code
|
||||
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
|
||||
material_release:
|
||||
person_address: Address
|
||||
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_company: Company
|
||||
person_email: Email address
|
||||
person_name: Name
|
||||
person_phone: Phone number
|
||||
person_title: Title
|
||||
music_release:
|
||||
person_address: Address
|
||||
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_company: Company
|
||||
person_email: Email address
|
||||
person_name: Name
|
||||
person_phone: Phone number
|
||||
person_title: Title
|
||||
project:
|
||||
predefined_client_name: Client
|
||||
talent_release:
|
||||
guardian_address_city: City
|
||||
guardian_address_country: Guardian country
|
||||
guardian_address_state: State
|
||||
guardian_address_street1: Guardian address
|
||||
guardian_address_street2: Guardian address (Line 2)
|
||||
guardian_address_zip: Zip code
|
||||
guardian_email: Guardian email address
|
||||
guardian_name: Guardian name
|
||||
guardian_phone: Guardian phone number
|
||||
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_email: Email address
|
||||
person_name: Name
|
||||
person_phone: Phone number
|
||||
video:
|
||||
edl_file: EDL file
|
||||
file: Video file
|
||||
name: Episode name
|
||||
number: Episode number
|
||||
placeholder:
|
||||
acquired_media_release:
|
||||
name: Collection Name
|
||||
notes: Add notes here...
|
||||
person_address_city: City
|
||||
person_address_country: Please select a country
|
||||
person_address_state: State
|
||||
person_address_street1: Street
|
||||
person_address_street2: Apt, Suite, etc.
|
||||
person_address_zip: Zip / Postal Code
|
||||
person_company: Company Name
|
||||
person_email: Email
|
||||
person_name: Name
|
||||
person_phone: Phone
|
||||
person_title: Title
|
||||
appearance_release:
|
||||
guardian_address: Street, Apt, City, State, Zip Code
|
||||
guardian_name: Jane Doe
|
||||
guardian_phone: 555-555-5555
|
||||
notes: Add notes here...
|
||||
person_address: Street, Apt, City, State, Zip Code
|
||||
person_email: jane.doe@example.com
|
||||
person_name: Jane Doe
|
||||
person_phone: 555-555-5555
|
||||
location_release:
|
||||
address_city: City
|
||||
address_country: Please select a country
|
||||
address_state: State
|
||||
address_street1: Street
|
||||
address_street2: Apt, Suite, etc.
|
||||
address_zip: Zip / Postal Code
|
||||
name: Location Name
|
||||
person_address_city: City
|
||||
person_address_country: Please select a country
|
||||
person_address_state: State
|
||||
person_address_street1: Street
|
||||
person_address_street2: Apt, Suite, etc.
|
||||
person_address_zip: Zip / Postal Code
|
||||
person_company: Company Name
|
||||
person_email: Email
|
||||
person_name: Name
|
||||
person_phone: Phone
|
||||
person_title: Title
|
||||
material_release:
|
||||
person_address_city: City
|
||||
person_address_state: State
|
||||
person_address_street1: Street
|
||||
person_address_street2: Apt, Suite, etc.
|
||||
person_address_zip: Zip / Postal Code
|
||||
person_company: Company Name
|
||||
person_email: Email
|
||||
person_name: Name
|
||||
person_phone: Phone
|
||||
person_title: Title
|
||||
music_release:
|
||||
name: Collection Name
|
||||
notes: Add notes here...
|
||||
person_address_city: City
|
||||
person_address_country: Please select a country
|
||||
person_address_state: State
|
||||
person_address_street1: Street
|
||||
person_address_street2: Apt, Suite, etc.
|
||||
person_address_zip: Zip / Postal Code
|
||||
person_company: Company Name
|
||||
person_email: Email
|
||||
person_name: Name
|
||||
person_phone: Phone
|
||||
person_title: Title
|
||||
project:
|
||||
client_name: Which network is this project for?
|
||||
description: A quick synopsis of the show
|
||||
project_membership:
|
||||
user_email: example@example.com
|
||||
talent_release:
|
||||
guardian_address_city: City
|
||||
guardian_address_country: Please select a country
|
||||
guardian_address_state: State
|
||||
guardian_address_street1: Street
|
||||
guardian_address_street2: Apt, Suite, etc.
|
||||
guardian_address_zip: Zip / Postal Code
|
||||
guardian_email: Email
|
||||
guardian_name: Name
|
||||
guardian_phone: Phone
|
||||
notes: Add notes here...
|
||||
person_address_city: City
|
||||
person_address_country: Please select a country
|
||||
person_address_state: State
|
||||
person_address_street1: Street
|
||||
person_address_street2: Apt, Suite, etc.
|
||||
person_address_zip: Zip / Postal Code
|
||||
person_email: Email
|
||||
person_name: Name
|
||||
person_phone: Phone
|
||||
submit:
|
||||
acquired_media_release:
|
||||
create: Import Release
|
||||
update: Save Changes
|
||||
appearance_release:
|
||||
create: Import Release
|
||||
update: Save Changes
|
||||
bookmark:
|
||||
create: Create Note
|
||||
update: Update Note
|
||||
broadcast:
|
||||
create: Create Live Stream
|
||||
update: Save Changes
|
||||
contract_template:
|
||||
create: Create Release Template
|
||||
directory:
|
||||
create: Create Folder
|
||||
new_file: Upload Files
|
||||
update: Update Folder
|
||||
location_release:
|
||||
create: Import Release
|
||||
update: Save Changes
|
||||
material_release:
|
||||
create: Import Release
|
||||
update: Save Changes
|
||||
music_release:
|
||||
create: Import Music Release
|
||||
update: Save Changes
|
||||
talent_release:
|
||||
create: Import Release
|
||||
update: Save Changes
|
||||
unreleased_appearance:
|
||||
create: Create Issue/Concern
|
||||
update: Update Issue/Concern
|
||||
video:
|
||||
create: Upload Video
|
||||
update: Save Changes
|
||||
imports:
|
||||
form:
|
||||
actions:
|
||||
submit: Import
|
||||
index:
|
||||
cards: Cards
|
||||
heading: Import Releases
|
||||
list: List
|
||||
location_releases:
|
||||
create:
|
||||
notice: The location release has been created
|
||||
destroy:
|
||||
alert: The location release has been deleted
|
||||
edit:
|
||||
heading: Edit Location Release
|
||||
form:
|
||||
contract_and_rights:
|
||||
heading: 3 of 4 Contract & Exploitable Rights
|
||||
filming_info:
|
||||
heading: Filming Information
|
||||
location_details:
|
||||
heading: 1 of 4 Location Details
|
||||
photos:
|
||||
heading: 4 of 4 Photos
|
||||
signer_details:
|
||||
heading: 2 of 4 Signer Details
|
||||
index:
|
||||
actions:
|
||||
new: Import Release
|
||||
search: Search
|
||||
empty: Location Releases will appear here
|
||||
table_headers:
|
||||
address: Address
|
||||
notes: Notes
|
||||
signed_at: Date Signed
|
||||
tags: Tags
|
||||
location_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
no_photos: Needs Photo
|
||||
new:
|
||||
heading: Import Location Release
|
||||
update:
|
||||
notice: The location release has been updated
|
||||
material_releases:
|
||||
create:
|
||||
notice: The material release has been created
|
||||
destroy:
|
||||
alert: The material release has been deleted
|
||||
edit:
|
||||
heading: Edit Material Release (Products / Logos)
|
||||
form:
|
||||
contract_and_rights:
|
||||
heading: 3 of 4 Contract & Exploitable Rights
|
||||
material_details:
|
||||
heading: 1 of 3 Material Details
|
||||
photos:
|
||||
heading: 4 of 4 Photos
|
||||
signer_details:
|
||||
heading: 2 of 4 Signer Details
|
||||
index:
|
||||
actions:
|
||||
new: Import Release
|
||||
search: Search
|
||||
empty: Material Releases will appear here
|
||||
table_headers:
|
||||
notes: Notes
|
||||
signed_at: Date Signed
|
||||
tags: Tags
|
||||
material_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
no_photos: Needs Photo
|
||||
new:
|
||||
heading: Import Material Release (Products / Logos)
|
||||
update:
|
||||
notice: The material release has been updated
|
||||
music_releases:
|
||||
create:
|
||||
notice: The music release has been created
|
||||
destroy:
|
||||
alert: The music release has been deleted
|
||||
edit:
|
||||
heading: Edit Music Release
|
||||
form:
|
||||
composers:
|
||||
heading: 4 of 6 Composers
|
||||
contract_and_rights:
|
||||
heading: 3 of 6 Contract & Exploitable Rights
|
||||
files:
|
||||
heading: 2 of 6 Files
|
||||
music_details:
|
||||
heading: 1 of 6 Release Details
|
||||
publishers:
|
||||
heading: 5 of 6 Publishers
|
||||
signer_details:
|
||||
heading: 6 of 6 Signer Details
|
||||
index:
|
||||
actions:
|
||||
new: Import Release
|
||||
search: Search
|
||||
empty: Music Releases will appear here
|
||||
table_headers:
|
||||
composers_count: No. Composers
|
||||
file_infos_count: No. Files
|
||||
notes: Notes
|
||||
publishers_count: No. Publishers
|
||||
signed_at: Date Signed
|
||||
tags: Tags
|
||||
music_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
new:
|
||||
heading: Import Music Release
|
||||
update:
|
||||
notice: The music release has been updated
|
||||
password_resets:
|
||||
create:
|
||||
notice: Check your email for password reset instructions
|
||||
edit:
|
||||
notice: This password reset URL has expired or is invalid. Try again by clicking "Forgot your password?" below
|
||||
submit: Save New Password
|
||||
title: Password Reset
|
||||
new:
|
||||
submit: Reset Password
|
||||
title: Password Reset
|
||||
update:
|
||||
alert: New password can't be blank
|
||||
notice: Your password has been reset. You may sign in using your new password now.
|
||||
photos:
|
||||
edit:
|
||||
heading: Add Photos
|
||||
update:
|
||||
notice: The release has been updated
|
||||
profiles:
|
||||
form:
|
||||
submit: Update Profile
|
||||
update:
|
||||
notice: Profile has been updated successfully
|
||||
project_memberships:
|
||||
create:
|
||||
alert: User could not be invited to the project.
|
||||
notice: User has been invited to the project.
|
||||
destroy:
|
||||
alert: User has been removed from the project.
|
||||
form:
|
||||
submit: Send Invite
|
||||
index:
|
||||
heading: Team
|
||||
invitation:
|
||||
heading: Invite New Member
|
||||
team_roster:
|
||||
heading:
|
||||
one: 1 Team Member
|
||||
other: '%{count} Team Members'
|
||||
zero: No Team Members
|
||||
project_membership:
|
||||
actions:
|
||||
remove: Remove
|
||||
confirm: Are you sure you want to remove this user from the project?
|
||||
projects:
|
||||
destroy:
|
||||
alert: The project has been deleted
|
||||
edit:
|
||||
heading: Edit Project
|
||||
empty_projects:
|
||||
action: Create Your First Project
|
||||
heading: Welcome
|
||||
member_message: We are excited to help you organize and automate your media projects. Click on a project you are invited to and get started.
|
||||
message: We are excited to help you organize and automate your media projects. Click below to create your first project and get started.
|
||||
form:
|
||||
confirm_delete:
|
||||
one: >
|
||||
"WARNING: Are you sure you want to permanently delete this project? Deleting this project will result in all release templates and all signed appearance, location, and material release contracts to be deleted. There is 1 release in this project that will be deleted by pressing OK. If you do not wish to delete the project, press cancel."
|
||||
other: >
|
||||
"WARNING: Are you sure you want to permanently delete this project? Deleting this project will result in all release templates and all signed appearance, location, and material release contracts to be deleted. There are %{count} releases in this project that will be deleted by pressing OK. If you do not wish to delete the project, press cancel."
|
||||
features_settings:
|
||||
acquired_media_release: Acquired Media Releases (Footage & Stills)
|
||||
appearance_release: Appearance Releases
|
||||
label: Which release categories do you require for this project?
|
||||
location_release: Location Releases
|
||||
material_release: Material Releases (Products / Logos)
|
||||
music_release: Music Releases (Original Music)
|
||||
talent_release: Talent Releases
|
||||
index:
|
||||
actions:
|
||||
folder: Add Folder
|
||||
new: Create New Project
|
||||
heading: Open Projects
|
||||
new:
|
||||
heading: Create New Project
|
||||
project:
|
||||
actions:
|
||||
delete: Delete
|
||||
edit: Edit
|
||||
team: Team
|
||||
confirm_delete:
|
||||
one: >
|
||||
"WARNING: Are you sure you want to permanently delete this project? Deleting this project will result in all release templates and all signed appearance, talent, location, and material release contracts to be deleted. There is 1 release in this project that will be deleted by pressing OK. If you do not wish to delete the project, press cancel."
|
||||
other: >
|
||||
"WARNING: Are you sure you want to permanently delete this project? Deleting this project will result in all release templates and all signed appearance, talent, location, and material release contracts to be deleted. There are %{count} releases in this project that will be deleted by pressing OK. If you do not wish to delete the project, press cancel."
|
||||
team_member: Team Member
|
||||
show:
|
||||
acquired_media_release: Acquired Media Releases (%{count})
|
||||
appearance_release: Appearance Releases (%{count})
|
||||
downloads: Downloads
|
||||
location_release: Location Releases (%{count})
|
||||
material_release: Material Releases (%{count})
|
||||
music_release: Music Releases (%{count})
|
||||
report: Reports
|
||||
talent_release: Talent Releases (%{count})
|
||||
public:
|
||||
acquired_media_releases:
|
||||
new:
|
||||
acquired_media_info:
|
||||
heading: Acquired Media Information
|
||||
cancel: Cancel
|
||||
files:
|
||||
heading: File Information
|
||||
legal:
|
||||
heading: Legal
|
||||
personal_info:
|
||||
heading: Person Details
|
||||
personal_info:
|
||||
heading: Signer's Contact Information
|
||||
signature:
|
||||
heading: Signature
|
||||
appearance_releases:
|
||||
create:
|
||||
notice: Your release has been signed. Thank you!
|
||||
new:
|
||||
cancel: Cancel
|
||||
guardian_clause:
|
||||
heading: Guardian Clause
|
||||
guardian_info:
|
||||
heading: Guardian Information
|
||||
guardian_photo:
|
||||
heading: Guardian Photo
|
||||
instructions: >
|
||||
Lastly, it's time for guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese!
|
||||
instructions_html: >
|
||||
Congrats in appearing on <em>%{name}</em>. Below is the appearance release form. After scrolling down and reading the appearance release form, please enter your personal information, take a selfie photo, and press the "Submit Release" button.
|
||||
legal:
|
||||
heading: Legal
|
||||
personal_info:
|
||||
heading: Personal Information
|
||||
instructions: Now, enter your personal information.
|
||||
photo:
|
||||
camera_instructions_html: Click <em>Take Photo</em> to Turn ON Camera
|
||||
heading: Take a Photo
|
||||
instructions: >
|
||||
Lastly, it's time for you to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese!
|
||||
no_photo: No photo yet
|
||||
take_photo: Take Photo
|
||||
warning: If your photo appears sideways, it will be autocorrected when you submit your release.
|
||||
signature:
|
||||
heading: Sign Below
|
||||
location_releases:
|
||||
create:
|
||||
notice: Your release has been signed. Thank you!
|
||||
new:
|
||||
cancel: Cancel
|
||||
contact_info:
|
||||
heading: Signer Information
|
||||
filming_info:
|
||||
heading: Filming Information
|
||||
legal:
|
||||
heading: Legal
|
||||
location_info:
|
||||
heading: Location Information
|
||||
signature:
|
||||
heading: Sign Below
|
||||
material_releases:
|
||||
create:
|
||||
notice: Your release has been signed. Thank you!
|
||||
new:
|
||||
cancel: Cancel
|
||||
contact_info:
|
||||
heading: Signer's Contact Information
|
||||
legal:
|
||||
heading: Legal
|
||||
release_info:
|
||||
heading: Release Information
|
||||
signature:
|
||||
heading: Sign Below
|
||||
talent_releases:
|
||||
create:
|
||||
notice: Your release has been signed. Thank you!
|
||||
new:
|
||||
cancel: Cancel
|
||||
guardian_clause:
|
||||
heading: Guardian Clause
|
||||
guardian_info:
|
||||
heading: Guardian Information
|
||||
guardian_photo:
|
||||
camera_instructions_html: Click <em>Take Photo</em> to Turn ON Camera
|
||||
heading: Guardian Photo
|
||||
instructions: >
|
||||
Lastly, it's time for guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese!
|
||||
no_photo: No photo yet
|
||||
take_photo: Take Photo
|
||||
warning: If your photo appears sideways, it will be autocorrected when you submit your release.
|
||||
instructions_html: >
|
||||
Congrats in appearing on <em>%{name}</em>. Below is the talent release form. After scrolling down and reading the talent release form, please enter your personal information, take a selfie photo, and press the "Submit Release" button.
|
||||
legal:
|
||||
heading: Legal
|
||||
personal_info:
|
||||
heading: Personal Information
|
||||
instructions: Now, enter your personal information.
|
||||
photo:
|
||||
heading: Photos
|
||||
signature:
|
||||
heading: Signature
|
||||
release_template_imports:
|
||||
create:
|
||||
error: There was a problem with importing selected templates
|
||||
imported: Selected templates were imported with success
|
||||
new:
|
||||
actions:
|
||||
import: Import Selected Templates
|
||||
search: Search
|
||||
empty: Release Templates from other projects will appear here
|
||||
table_headers:
|
||||
release_type: Type of Release
|
||||
selection: Select Release
|
||||
report_downloads:
|
||||
download:
|
||||
failure: "Your download could not be generated."
|
||||
pending: "Your reports are being prepared for download. You will be notified when it's ready."
|
||||
success: "Your reports are ready. Download now, or retrieve later in the %{downloads_folder_link} folder. %{download_button}"
|
||||
reports:
|
||||
index:
|
||||
empty: Reports will appear here
|
||||
heading: Reports
|
||||
table_headers:
|
||||
report_name: Report name
|
||||
report_published_at: Published At
|
||||
video_name: Episode name
|
||||
video_number: Episode number
|
||||
report:
|
||||
actions:
|
||||
download: Download
|
||||
sessions:
|
||||
create:
|
||||
alert: "Email and/or Password is incorrect"
|
||||
new:
|
||||
forgot_password: Forgot your password?
|
||||
submit: Sign In
|
||||
title: Sign In
|
||||
shared:
|
||||
ago: ago
|
||||
back: Back
|
||||
cancel: Cancel
|
||||
clear: Clear
|
||||
close: Close
|
||||
csv: CSV
|
||||
deliver_me: Deliver
|
||||
direct_me: Direct
|
||||
disable_with: Loading...
|
||||
edit_me: Edit
|
||||
excel: Excel
|
||||
files: Files
|
||||
info_message:
|
||||
one: An EDL event was found. Data is shown below
|
||||
other: Multiple EDL events were found. Data for the first is shown below
|
||||
zero: No EDL events were found. Please enter manually
|
||||
me: Me
|
||||
print: Print
|
||||
release_me: Release
|
||||
search: Search
|
||||
submit_release: Submit Release
|
||||
submit_release_long: I have read and agree to the above
|
||||
suite: Suite
|
||||
tag_multiple_releases: Add Tag
|
||||
tag_multiple_releases_form:
|
||||
submit: Add
|
||||
tags:
|
||||
form:
|
||||
submit: Add
|
||||
talent_releases:
|
||||
create:
|
||||
notice: The talent release has been created
|
||||
destroy:
|
||||
alert: The talent release has been deleted
|
||||
edit:
|
||||
heading: Edit Talent Release
|
||||
form:
|
||||
contract_and_rights:
|
||||
heading: 2 of 3 Contract & Exploitable Rights
|
||||
photos:
|
||||
guardian_photo:
|
||||
heading: Guardian Photo
|
||||
heading: 3 of 3 Photos
|
||||
talent_details:
|
||||
heading: 1 of 3 Talent Details
|
||||
index:
|
||||
actions:
|
||||
new: Import Release
|
||||
search: Search
|
||||
empty: Talent Releases will appear here
|
||||
table_headers:
|
||||
notes: Notes
|
||||
signed_at: Date Signed
|
||||
tags: Tags
|
||||
new:
|
||||
heading: Import Talent Release
|
||||
talent_release:
|
||||
actions:
|
||||
manage: Manage
|
||||
update:
|
||||
notice: The talent release has been updated
|
||||
user_mailer:
|
||||
existing_account:
|
||||
subject: You've been added as a ME Suite Account Manager
|
||||
project_invitation:
|
||||
subject: You've been added to a project in the ME Suite
|
||||
welcome:
|
||||
subject: Welcome to BiG
|
||||
video_analyses:
|
||||
actions:
|
||||
create_bookmark: Create a Note
|
||||
create_edl_event: EDL Info
|
||||
create_graphics_element: Add to GFX Cue Sheet
|
||||
create_release_report: Report
|
||||
create_unreleased_appearance: Add Issue/Concern
|
||||
create:
|
||||
notice: Video and Audio analysis is re-run for the video
|
||||
edl_events:
|
||||
create:
|
||||
info_message:
|
||||
one: One EDL event for this timecode was found and is shown below
|
||||
other: Multiple EDL events for this timecode were found and are shown below
|
||||
zero: No EDL events for this timecode were found
|
||||
show:
|
||||
actions:
|
||||
create_release_report: Reports
|
||||
empty: Notes will appear here
|
||||
video:
|
||||
audio_only_edl_download: Download Audio Only EDL
|
||||
edl_download: Download EDL
|
||||
graphics_only_edl_download: Download Graphics Only EDL
|
||||
videos:
|
||||
create:
|
||||
notice: The video has been created
|
||||
edit:
|
||||
heading: Edit Video
|
||||
subheading: 2 of 2 Files
|
||||
index:
|
||||
actions:
|
||||
new: Upload New Video
|
||||
empty: Videos will appear here
|
||||
heading: Video Analysis
|
||||
table_headers:
|
||||
file: File
|
||||
reports: Reports
|
||||
upload_date: Upload Date
|
||||
turnaround_time_message: Please note, generating of reports can take up to 48 hours
|
||||
landing:
|
||||
adobe: Adobe Premiere
|
||||
avid: Avid
|
||||
heading: Upload Video
|
||||
instructions: What video editing system are you using?
|
||||
subheading: 1 of 2 Editing System
|
||||
new:
|
||||
heading: Upload Video
|
||||
subheading: 2 of 2 Files
|
||||
update:
|
||||
notice: The video has been updated
|
||||
video:
|
||||
actions:
|
||||
download: Download
|
||||
edit: Edit
|
||||
report: Report
|
||||
generating: Generating...
|
||||
184
config/locales/es.yml
Normal file
184
config/locales/es.yml
Normal file
@@ -0,0 +1,184 @@
|
||||
es:
|
||||
activerecord:
|
||||
attributes:
|
||||
appearance_release:
|
||||
guardian_address: Dirección del tutor legal
|
||||
guardian_name: Nómbre del tutor legal
|
||||
guardian_phone: Número de teléfono del tutor legal
|
||||
minor: Menor
|
||||
person_address: Dirección de la persona
|
||||
person_email: Dirección de correo electrónico de la persona
|
||||
person_name: Nómbre de la persona
|
||||
person_phone: Número de teléfono de la persona
|
||||
person_photo: Foto de la persona
|
||||
signature: Firma de la persona
|
||||
signed_on: Fecha
|
||||
project:
|
||||
client_name: Nómbre del cliente del proyecto
|
||||
description: Descripción del proyecto
|
||||
details: Detalles adicionales del proyecto
|
||||
name: Nómbre del proyecto de vídeo
|
||||
producer_address: Dirección del productor
|
||||
producer_name: Nómbre del productor
|
||||
models:
|
||||
appearance_release: Autorización de Aparacimiento
|
||||
appearance_releases:
|
||||
create:
|
||||
failed_import: Failed to create appearance release for files listed below (ES)
|
||||
no_attachments: Failed to import - no attachments (ES)
|
||||
form:
|
||||
photos:
|
||||
guardian_photo:
|
||||
heading: Guardian Photo (ES)
|
||||
person_photo:
|
||||
heading: Person Photo (ES)
|
||||
index:
|
||||
imported_appearance_release_missing_attachment: Person photo or contract missing for imported appearance release (ES)
|
||||
shared:
|
||||
imported_appearance_release_contract_name: Contrato Importado
|
||||
imported_appearance_release_headshot_name: Retrato Importado
|
||||
type_filter_actions:
|
||||
all_releases: All Releases (ES)
|
||||
complete_releases: Complete Releases (ES)
|
||||
incomplete_releases: Incomplete Releases (ES)
|
||||
blank_contracts:
|
||||
new:
|
||||
number_of_copies_label: Number of copies (ES)
|
||||
preview_heading: Contract template preview
|
||||
pdf:
|
||||
do_not_copy_warning: "Do not copy (ES)"
|
||||
serial_number_label: "Serial Number (ES)"
|
||||
contract_templates:
|
||||
blank_contracts:
|
||||
create:
|
||||
number_of_copies_invalid_notice: Please enter valid number greater than 0 (ES)
|
||||
contracts:
|
||||
photos:
|
||||
guardian_photo_heading: Guardian photo (ES)
|
||||
heading:
|
||||
one: Photo (ES)
|
||||
other: Photos (ES)
|
||||
minor_photos_heading:
|
||||
one: Minor photo (ES)
|
||||
other: Minor photos (ES)
|
||||
signature_page:
|
||||
heading: Página de Firma de Autorización de Aparacimiento
|
||||
instructions: Al firmar esta página de firma, a partir de la fecha indicada abajo, por la presente acepto, reconozco y acepto los términos y condiciones enumerados en esta autorización de aparacimiento.
|
||||
errors:
|
||||
messages:
|
||||
accepted: debe ser aceptado
|
||||
attached: no está conectado
|
||||
blank: no puede estar en blanco
|
||||
confirmation: no coincide con %{attribute}
|
||||
content_type: no es un formato de archivo válido
|
||||
empty: no puede estar vacío
|
||||
equal_to: debe ser igual a %{count}
|
||||
even: debe ser un número par
|
||||
exclusion: está reservado
|
||||
greater_than: debe ser mayor que %{count}
|
||||
greater_than_or_equal_to: debe ser mayor o igual que %{count}
|
||||
inclusion: no está incluido en la lista
|
||||
invalid: es inválido
|
||||
less_than: debe ser menor que %{count}
|
||||
less_than_or_equal_to: debe ser menor o igual que %{count}
|
||||
model_invalid: 'La validación falló: %{errors}'
|
||||
not_a_number: no es un número
|
||||
not_an_integer: debe ser un entero
|
||||
odd: debe ser un número non
|
||||
other_than:
|
||||
present: debe ser en blanco
|
||||
required: debe existir
|
||||
taken: ya ha sido tomado
|
||||
too_long:
|
||||
one: es demasiado largo (máximo 1 caracter)
|
||||
other: es demasiado largo (máximo %{count} caracteres)
|
||||
too_short:
|
||||
one: es demasiado corto (mínimo 1 caracter)
|
||||
other: es demasiado corto (mínimo %{count} caracteres)
|
||||
wrong_length:
|
||||
one: longitud errónea (debe ser de 1 caracter)
|
||||
other: longitud errónea (debe ser de %{count} caracteres)
|
||||
errors_helper:
|
||||
failure_message: "Los siguientes errores han impedido que se presente este %{model_name}:"
|
||||
helpers:
|
||||
label:
|
||||
appearance_release:
|
||||
guardian_address: Dirección del tutor legal
|
||||
guardian_name: Nómbre del tutor legal
|
||||
guardian_phone: Número de teléfono del tutor legal
|
||||
minor: El firmante es un menor
|
||||
person_address: Dirección
|
||||
person_email: Dirección de correo electrónico
|
||||
person_name: Nómbre
|
||||
person_phone: Número de teléfono
|
||||
project:
|
||||
client_name: Nómbre del cliente del proyecto
|
||||
description: Descripción del proyecto
|
||||
details: Detalles adicionales del proyecto
|
||||
name: Nómbre del proyecto de vídeo
|
||||
producer_address: Dirección del productor
|
||||
producer_name: Nómbre del productor
|
||||
placeholder:
|
||||
appearance_release:
|
||||
person_address: Calle, Número de apartamento, Ciudad, Estado, Código Postal
|
||||
person_email: jane.doe@example.com
|
||||
person_name: Jane Doe
|
||||
person_phone: 555-555-5555
|
||||
submit:
|
||||
appearance_release:
|
||||
create: Crear Autorización
|
||||
broadcast:
|
||||
create: Create Live Stream (ES)
|
||||
update: Save Changes (ES)
|
||||
create: 'Crear %{model}'
|
||||
update: 'Actualizar %{model}'
|
||||
public:
|
||||
appearance_releases:
|
||||
create:
|
||||
notice: La autorización está firmada. ¡Gracias!
|
||||
new:
|
||||
cancel: Cancelar
|
||||
guardian_clause:
|
||||
heading: Guardian Clause (ES)
|
||||
guardian_photo:
|
||||
heading: Guardian Photo (ES)
|
||||
instructions: (ES) Lastly, it's time for guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese! (ES)
|
||||
instructions_html: >
|
||||
Felicitaciones por aparecer en <em>%{name}</em>. La autorіzación aparece a continuación. Después de leer la autorización, por favor rellena tu información personal, toma una foto, y presiona la botón "Crear Autorización".
|
||||
legal:
|
||||
heading: Legal
|
||||
personal_info:
|
||||
heading: Información Personal
|
||||
instructions: Ahora, rellena su información personal.
|
||||
photo:
|
||||
camera_instructions_html: Haga clic en <em>Take Photo</em> para encender la cámara
|
||||
heading: Toma una Foto
|
||||
instructions: Por último, es hora de toma una foto. Por favor quítate el sombrero y las gafas del sol (las gafas regulares están bien), asegúrate de que eres la única persona en la foto, mira directamente a la cámera.
|
||||
no_photo: No hay foto todavía
|
||||
warning: Si su foto aparece de lado, se corregirá automáticamente cuando actualizar la autorización
|
||||
signature:
|
||||
clear: Despejar
|
||||
heading: Firma
|
||||
instructions: 'Firma Abajo:'
|
||||
talent_releases:
|
||||
new:
|
||||
guardian_clause:
|
||||
heading: Guardian Clause (ES)
|
||||
guardian_photo:
|
||||
camera_instructions_html: (ES) Click <em>Take Photo</em> to Turn ON Camera (ES)
|
||||
heading: Guardian Photo (ES)
|
||||
instructions: (ES) Lastly, it's time for guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese! (ES)
|
||||
no_photo: No hay foto todavía
|
||||
take_photo: Take Photo (ES)
|
||||
warning: (ES) If your photo appears sideways, it will be autocorrected when you submit your release. (ES)
|
||||
teams:
|
||||
show:
|
||||
choose_project: ¿Qué proyecto de la lista de abajo asistirá?
|
||||
welcome_html: Bienvenidos a la plataforma de firma autorizaciónes de <strong>%{name}</strong>
|
||||
shared:
|
||||
print: Print (ES)
|
||||
talent_releases:
|
||||
form:
|
||||
photos:
|
||||
guardian_photo:
|
||||
heading: Guardian Photo (ES)
|
||||
6
config/locales/loaf.en.yml
Normal file
6
config/locales/loaf.en.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
en:
|
||||
loaf:
|
||||
breadcrumbs:
|
||||
home: 'Home'
|
||||
errors:
|
||||
invalid_options: "Invalid option :%{invalid}. Valid options are: %{valid}, make sure these are the ones you are using."
|
||||
5
config/locales/oath.en.yml
Normal file
5
config/locales/oath.en.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
en:
|
||||
activerecord:
|
||||
attributes:
|
||||
user:
|
||||
password_digest: "Password"
|
||||
38
config/puma.rb
Normal file
38
config/puma.rb
Normal file
@@ -0,0 +1,38 @@
|
||||
# Puma can serve each request in a thread from an internal thread pool.
|
||||
# The `threads` method setting takes two numbers: a minimum and maximum.
|
||||
# Any libraries that use thread pools should be configured to match
|
||||
# the maximum value specified for Puma. Default is set to 5 threads for minimum
|
||||
# and maximum; this matches the default thread size of Active Record.
|
||||
#
|
||||
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
|
||||
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
|
||||
threads min_threads_count, max_threads_count
|
||||
|
||||
# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
|
||||
#
|
||||
port ENV.fetch("PORT") { 3000 }
|
||||
|
||||
# Specifies the `environment` that Puma will run in.
|
||||
#
|
||||
environment ENV.fetch("RAILS_ENV") { "development" }
|
||||
|
||||
# Specifies the `pidfile` that Puma will use.
|
||||
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
|
||||
|
||||
# Specifies the number of `workers` to boot in clustered mode.
|
||||
# Workers are forked web server processes. If using threads and workers together
|
||||
# the concurrency of the application would be max `threads` * `workers`.
|
||||
# Workers do not work on JRuby or Windows (both of which do not support
|
||||
# processes).
|
||||
#
|
||||
# workers ENV.fetch("WEB_CONCURRENCY") { 2 }
|
||||
|
||||
# Use the `preload_app!` method when specifying a `workers` number.
|
||||
# This directive tells Puma to first boot the application and load code
|
||||
# before forking the application. This takes advantage of Copy On Write
|
||||
# process behavior so workers use less memory.
|
||||
#
|
||||
# preload_app!
|
||||
|
||||
# Allow puma to be restarted by `rails restart` command.
|
||||
plugin :tmp_restart
|
||||
181
config/routes.rb
Normal file
181
config/routes.rb
Normal file
@@ -0,0 +1,181 @@
|
||||
require 'oath/constraints/signed_in'
|
||||
require 'sidekiq/web'
|
||||
|
||||
Rails.application.routes.draw do
|
||||
AVAILABLE_LOCALES_REGEX = /#{I18n.available_locales.join("|")}/
|
||||
|
||||
concern :confirmable do
|
||||
resources :video_release_confirmations, only: [:new, :create, :destroy]
|
||||
end
|
||||
concern :contractable do
|
||||
resource :contracts, only: [:show]
|
||||
end
|
||||
concern :notable do
|
||||
resources :notes, only: [:index, :new, :create]
|
||||
end
|
||||
concern :photoable do
|
||||
resource :photos, only: [:edit, :update]
|
||||
end
|
||||
concern :taggable do
|
||||
resources :acts_as_taggable_on_tags, only: [:new, :create, :destroy], controller: "tags"
|
||||
end
|
||||
concern :file_infoable do
|
||||
resource :file_infos, only: [:edit, :update]
|
||||
end
|
||||
|
||||
constraints AdminSignedInConstraint.new do
|
||||
namespace :admin do
|
||||
mount Sidekiq::Web => '/background_queue', as: :background_queue
|
||||
|
||||
resources :accounts, only: [:index, :new, :create, :edit, :update, :show]
|
||||
resources :users, only: [:index, :new, :create, :edit, :update, :destroy] do
|
||||
resource :masquerade, only: :create
|
||||
end
|
||||
|
||||
root to: "accounts#index", as: :signed_in_root
|
||||
end
|
||||
end
|
||||
|
||||
namespace :admin do
|
||||
resource :masquerade, only: :destroy
|
||||
end
|
||||
|
||||
scope "(:locale)", locale: AVAILABLE_LOCALES_REGEX do
|
||||
resource :account_session, only: [:update]
|
||||
resource :session, only: [:destroy]
|
||||
resource :account, only: [:new, :create, :update]
|
||||
resources :account_auths, only: [:index, :create, :update, :destroy]
|
||||
resources :projects, shallow: true do
|
||||
resources :acquired_media_releases, except: [:show], concerns: [:contractable, :notable, :file_infoable]
|
||||
resources :appearance_releases, except: [:show], concerns: [:contractable, :notable]
|
||||
resources :appearance_release_imports, only: [:create]
|
||||
resources :location_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
||||
resources :material_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
||||
resources :music_releases, except: [:show], concerns: [:contractable, :notable]
|
||||
resources :talent_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
||||
resources :contract_templates, only: [:index, :new, :create, :destroy] do
|
||||
resource :qr_codes, only: [:show], controller: "contract_templates/qr_codes"
|
||||
resource :blank_contracts, only: [:show, :new, :create], controller: "contract_templates/blank_contracts"
|
||||
end
|
||||
resource :release_template_imports, only: [:new, :create]
|
||||
resources :project_memberships, only: [:index, :create, :destroy]
|
||||
resources :reports, only: [:index]
|
||||
resource :contract_downloads, only: [:create]
|
||||
resources :downloads, only: [:index, :destroy]
|
||||
resource :report_downloads, only: [:create]
|
||||
resources :videos, only: [:index, :new, :create, :edit, :update] do
|
||||
collection do
|
||||
get :landing
|
||||
end
|
||||
resources :bookmarks, only: [:new, :create, :destroy, :edit, :update]
|
||||
resource :video_reports, only: [:show]
|
||||
resource :graphic_reports, only: [:show]
|
||||
resource :audio_reports, only: [:show]
|
||||
resource :issues_and_concerns_reports, only: [:show]
|
||||
resource :report_publications, only: [:create, :destroy], controller: "videos/report_publications"
|
||||
resource :video_analyses, only: [:create, :show] do
|
||||
resources :audio_confirmations, only: [:new, :create, :destroy], controller: "video_analyses/audio_confirmations"
|
||||
resources :unreleased_appearances, only: [:new, :create, :edit, :update, :destroy], controller: "video_analyses/unreleased_appearances"
|
||||
resources :edl_events, only: [:create], controller: "video_analyses/edl_events"
|
||||
resources :graphics_elements, only: [:new, :create, :edit, :update, :destroy], controller: "video_analyses/graphics_elements"
|
||||
resources :talent_releases, only: [:index], controller: "video_analyses/talent_releases"
|
||||
resources :appearance_releases, only: [:index], controller: "video_analyses/appearance_releases"
|
||||
resources :location_releases, only: [:index], controller: "video_analyses/location_releases"
|
||||
resources :music_releases, only: [:index], controller: "video_analyses/music_releases"
|
||||
resources :acquired_media_releases, only: [:index], controller: "video_analyses/acquired_media_releases"
|
||||
resources :material_releases, only: [:index], controller: "video_analyses/material_releases"
|
||||
end
|
||||
end
|
||||
end
|
||||
resources :projects, only: [] do
|
||||
resources :broadcasts, except: [:edit] do
|
||||
resource :zoom_meeting, only: [:show]
|
||||
end
|
||||
resources :directories, except: [:index] do
|
||||
member do
|
||||
get :new_file
|
||||
delete :destroy_file
|
||||
end
|
||||
end
|
||||
end
|
||||
resource :profile, only: [:show, :update]
|
||||
resources :videos, only: [] do
|
||||
resources :talent_releases, only: [], concerns: :confirmable
|
||||
resources :appearance_releases, only: [], concerns: :confirmable
|
||||
resources :location_releases, only: [], concerns: :confirmable
|
||||
resources :acquired_media_releases, only: [], concerns: :confirmable
|
||||
resources :music_releases, only: [], concerns: :confirmable
|
||||
resources :material_releases, only: [], concerns: :confirmable
|
||||
end
|
||||
|
||||
scope module: :public do
|
||||
resources :accounts, only: [] do
|
||||
resources :projects, only: [] do
|
||||
resources :contract_templates, only: [] do
|
||||
resources :talent_releases, only: [:new, :create]
|
||||
resources :appearance_releases, only: [:new, :create]
|
||||
resources :acquired_media_releases, only: [:new, :create]
|
||||
resources :location_releases, only: [:new, :create]
|
||||
resources :material_releases, only: [:new, :create]
|
||||
end
|
||||
end
|
||||
end
|
||||
resources :broadcasts, param: :token, only: [:show, :update] do
|
||||
resource :zoom_meeting, only: [:show]
|
||||
end
|
||||
end
|
||||
|
||||
RELEASES = [:acquired_media_releases, :appearance_releases, :talent_releases, :material_releases, :location_releases]
|
||||
ALL_RELEASES = RELEASES + [:music_releases]
|
||||
|
||||
ALL_RELEASES.each do |release|
|
||||
resources release, only: [], concerns: :taggable
|
||||
end
|
||||
|
||||
resources :bulk_taggings, only: [:new, :create]
|
||||
|
||||
namespace :api do
|
||||
scope 'v1' do
|
||||
get 'sync' => 'sync#index'
|
||||
post 'user_token' => 'user_token#create'
|
||||
resource :profiles, only: [:show]
|
||||
resources :projects, only: [:index] do
|
||||
resources :broadcasts, only: [:index, :show, :update]
|
||||
RELEASES.each do |release|
|
||||
resources release, only: [:index]
|
||||
end
|
||||
resources :contract_templates, only: [:index]
|
||||
end
|
||||
resources :contract_templates, only: [:show] do
|
||||
RELEASES.each do |release|
|
||||
resources release, controller: release, only: [:create]
|
||||
end
|
||||
end
|
||||
|
||||
(RELEASES - [:appearance_releases]).each do |release|
|
||||
resources release, only: [:show, :update] do
|
||||
resources :notes, controller: "notes", only: [:create, :index]
|
||||
end
|
||||
end
|
||||
|
||||
resources :appearance_releases, only: [:show] do
|
||||
resources :notes, controller: "notes", only: [:create, :index]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# TODO: what's the format on this? JSON only?
|
||||
resources :notifications, only: [:create]
|
||||
resources :stream_notifications, only: [:create]
|
||||
resources :zoom_notifications, only: [:create]
|
||||
get '/multipart_signatures', to: 'multipart_signatures#create', as: :multipart_signatures
|
||||
|
||||
get "cookies_disabled" => 'pages#show', id: "cookies_disabled", as: :cookies_disabled
|
||||
get "accountless_user" => 'pages#show', id: "accountless_user", as: :accountless_user
|
||||
|
||||
resource :session, only: [:new, :create]
|
||||
resources :password_resets, only: [:new, :create, :edit, :update]
|
||||
|
||||
root to: 'projects#index', as: :signed_in_root
|
||||
end
|
||||
end
|
||||
6
config/spring.rb
Normal file
6
config/spring.rb
Normal file
@@ -0,0 +1,6 @@
|
||||
Spring.watch(
|
||||
".ruby-version",
|
||||
".rbenv-vars",
|
||||
"tmp/restart.txt",
|
||||
"tmp/caching-dev.txt"
|
||||
)
|
||||
34
config/storage.yml
Normal file
34
config/storage.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
test:
|
||||
service: Disk
|
||||
root: <%= Rails.root.join("tmp/storage") %>
|
||||
|
||||
local:
|
||||
service: Disk
|
||||
root: <%= Rails.root.join("storage") %>
|
||||
|
||||
amazon:
|
||||
service: S3
|
||||
access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %>
|
||||
secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %>
|
||||
region: <%= ENV.fetch("AWS_REGION") { "us-east-1" } %>
|
||||
bucket: <%= ENV["AWS_BUCKET"] %>
|
||||
|
||||
# Remember not to checkin your GCS keyfile to a repository
|
||||
# google:
|
||||
# service: GCS
|
||||
# project: your_project
|
||||
# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
|
||||
# bucket: your_own_bucket
|
||||
|
||||
# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
|
||||
# microsoft:
|
||||
# service: AzureStorage
|
||||
# path: your_azure_storage_path
|
||||
# storage_account_name: your_account_name
|
||||
# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
|
||||
# container: your_container_name
|
||||
|
||||
# mirror:
|
||||
# service: Mirror
|
||||
# primary: local
|
||||
# mirrors: [ amazon, google, microsoft ]
|
||||
5
config/webpack/development.js
Normal file
5
config/webpack/development.js
Normal file
@@ -0,0 +1,5 @@
|
||||
process.env.NODE_ENV = process.env.NODE_ENV || 'development'
|
||||
|
||||
const environment = require('./environment')
|
||||
|
||||
module.exports = environment.toWebpackConfig()
|
||||
3
config/webpack/environment.js
Normal file
3
config/webpack/environment.js
Normal file
@@ -0,0 +1,3 @@
|
||||
const { environment } = require('@rails/webpacker')
|
||||
|
||||
module.exports = environment
|
||||
5
config/webpack/production.js
Normal file
5
config/webpack/production.js
Normal file
@@ -0,0 +1,5 @@
|
||||
process.env.NODE_ENV = process.env.NODE_ENV || 'production'
|
||||
|
||||
const environment = require('./environment')
|
||||
|
||||
module.exports = environment.toWebpackConfig()
|
||||
5
config/webpack/test.js
Normal file
5
config/webpack/test.js
Normal file
@@ -0,0 +1,5 @@
|
||||
process.env.NODE_ENV = process.env.NODE_ENV || 'development'
|
||||
|
||||
const environment = require('./environment')
|
||||
|
||||
module.exports = environment.toWebpackConfig()
|
||||
101
config/webpacker.yml
Normal file
101
config/webpacker.yml
Normal file
@@ -0,0 +1,101 @@
|
||||
# Note: You must restart bin/webpack-dev-server for changes to take effect
|
||||
|
||||
default: &default
|
||||
source_path: app/javascript
|
||||
source_entry_path: packs
|
||||
public_root_path: public
|
||||
public_output_path: packs
|
||||
cache_path: tmp/cache/webpacker
|
||||
check_yarn_integrity: false
|
||||
webpack_compile_output: false
|
||||
|
||||
# Additional paths webpack should lookup modules
|
||||
# ['app/assets', 'engine/foo/app/assets']
|
||||
resolved_paths: []
|
||||
|
||||
# Reload manifest.json on all requests so we reload latest compiled packs
|
||||
cache_manifest: false
|
||||
|
||||
# Extract and emit a css file
|
||||
extract_css: false
|
||||
|
||||
static_assets_extensions:
|
||||
- .jpg
|
||||
- .jpeg
|
||||
- .png
|
||||
- .gif
|
||||
- .tiff
|
||||
- .ico
|
||||
- .svg
|
||||
- .eot
|
||||
- .otf
|
||||
- .ttf
|
||||
- .woff
|
||||
- .woff2
|
||||
|
||||
extensions:
|
||||
- .mjs
|
||||
- .js
|
||||
- .sass
|
||||
- .scss
|
||||
- .css
|
||||
- .module.sass
|
||||
- .module.scss
|
||||
- .module.css
|
||||
- .png
|
||||
- .svg
|
||||
- .gif
|
||||
- .jpeg
|
||||
- .jpg
|
||||
|
||||
development:
|
||||
<<: *default
|
||||
compile: true
|
||||
|
||||
# Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules
|
||||
check_yarn_integrity: true
|
||||
|
||||
# Reference: https://webpack.js.org/configuration/dev-server/
|
||||
dev_server:
|
||||
https: false
|
||||
host: localhost
|
||||
port: 3035
|
||||
public: localhost:3035
|
||||
hmr: false
|
||||
# Inline should be set to true if using HMR
|
||||
inline: true
|
||||
overlay: true
|
||||
compress: true
|
||||
disable_host_check: true
|
||||
use_local_ip: false
|
||||
quiet: false
|
||||
headers:
|
||||
'Access-Control-Allow-Origin': '*'
|
||||
watch_options:
|
||||
ignored: '**/node_modules/**'
|
||||
|
||||
|
||||
test:
|
||||
<<: *default
|
||||
compile: true
|
||||
|
||||
# Compile test packs to a separate directory
|
||||
public_output_path: packs-test
|
||||
|
||||
review:
|
||||
<<: *default
|
||||
compile: false
|
||||
extract_css: true
|
||||
cache_manifest: true
|
||||
|
||||
production:
|
||||
<<: *default
|
||||
|
||||
# Production depends on precompilation of packs prior to booting for performance.
|
||||
compile: false
|
||||
|
||||
# Extract and emit a css file
|
||||
extract_css: true
|
||||
|
||||
# Cache manifest.json for performance
|
||||
cache_manifest: true
|
||||
Reference in New Issue
Block a user