diff --git a/app/controllers/manage/configs_controller.rb b/app/controllers/manage/configs_controller.rb
index 150c0b177..ea9fb5b08 100644
--- a/app/controllers/manage/configs_controller.rb
+++ b/app/controllers/manage/configs_controller.rb
@@ -6,6 +6,11 @@ class Manage::ConfigsController < Manage::ApplicationController
def index
@config = HackathonConfig.get_all
+ @basics = ['name', 'event_start_date', 'digital_hackathon'].freeze
+ @questionnaire_settings = ['accepting_questionnaires', 'last_day_to_apply', 'auto_late_waitlist', 'disabled_fields'].freeze
+ @styling = ['default_page_title', 'homepage_url', 'logo_asset', 'email_banner_asset', 'favicon_asset', 'custom_css'].freeze
+ @communications = ['email_from', 'disclaimer_message', 'thanks_for_applying_message', 'thanks_for_rsvp_message', 'questionnaires_closed_message', 'bus_captain_notes']
+ @legal = ['agreement_pdf_asset'].freeze
respond_with(HackathonConfig.get_all)
end
diff --git a/app/views/manage/configs/index.html.haml b/app/views/manage/configs/index.html.haml
index e54f9fa87..8d24afee2 100644
--- a/app/views/manage/configs/index.html.haml
+++ b/app/views/manage/configs/index.html.haml
@@ -2,24 +2,54 @@
.row
.col-lg-6.mb-3
- - @config.each_key do |key|
- - value = @config[key]
- .card.mb-3
- .card-body
+ .card.mb-3
+ .card-body
+ %h4.card-title.font-weight-bold
+ The Basics
+ %h6.card-subtitle.mb-2.text-muted
+ Core information about your hackathon.
+ - @basics.each_entry do |key|
+ - value = HackathonConfig[key]
+ %hr
+ %p.mb-1
+ = link_to edit_manage_config_path(key), class: 'icon-space-r' do
+ %span.fa.fa-pencil
+ %b
+ = t("simple_form.labels.hackathon_config.#{key}")
+ %p.text-muted= t("simple_form.hints.hackathon_config.#{key}").html_safe
+ - if value.nil? || value == ''
+ %p.mb-0
+ %span.badge.badge-secondary Not set
+ - else
+ %pre.mb-0= value
+ - if value.is_a?(String)
+ - images = ['.ico', '.jpg', '.jpeg', '.png', '.gif', '.svg'].freeze
+ - links = ['http://', 'https://'].freeze
+ - if value.end_with?(*images)
+ %br
+ = image_tag value, style: 'max-height: 100px;', class: 'img-thumbnail img-template'
+ - elsif value.start_with?(*links)
+ %br
+ = link_to value, target: 'blank' do
+ %span
+ %span.fa.fa-external-link.icon-space-r-half
+ Open link
+ .card.mb-3
+ .card-body
+ %h4.card-title.font-weight-bold
+ Applying to
+ = HackathonConfig['name']
+ %h6.card-subtitle.mb-2.text-muted
+ Configuring questionnaires for your hackathon.
+ - @questionnaire_settings.each_entry do |key|
+ - value = HackathonConfig[key]
+ %hr
%p.mb-1
= link_to edit_manage_config_path(key), class: 'icon-space-r' do
%span.fa.fa-pencil
%b
= t("simple_form.labels.hackathon_config.#{key}")
-
- %small
- %code= key
%p.text-muted= t("simple_form.hints.hackathon_config.#{key}").html_safe
- - if key == 'custom_css'
- %p
- = link_to enter_theming_editor_manage_configs_path do
- %span.fa.fa-paint-brush.icon-space-r-half
- Interactive editor
- if key == 'disabled_fields'
- cleaned_value = value
- cleaned_value = cleaned_value.join(' ') if cleaned_value.is_a?(Array)
@@ -45,49 +75,148 @@
%span
%span.fa.fa-external-link.icon-space-r-half
Open link
-
- .col-lg-6.mb-3
.card.mb-3
.card-body
- %h5.card-title Environment Variables
+ %h4.card-title.font-weight-bold
+ Styling for
+ = HackathonConfig['name']
%h6.card-subtitle.mb-2.text-muted
- Environment variables are configured on the production server.
- = render 'docs_link', title: 'Environment variable documentation', url: 'https://coderit.org/hackathon-manager/docs/deployment-environment-variables'
- %hr
- = render 'config_row', name: 'AWS S3 Bucket for Resumes', key: 'AWS_BUCKET'
- = render 'config_row', name: 'AWS S3 Region', key: 'AWS_REGION'
- = render 'config_row', name: 'AWS S3 Access Key ID', key: 'AWS_ACCESS_KEY_ID'
- = render 'config_row', name: 'AWS S3 Secret Access Key', key: 'AWS_SECRET_ACCESS_KEY', secret: true
- = render 'config_row', name: 'AWS S3 Endpoint', key: 'AWS_ENDPOINT', required: false
- %hr
- = render 'config_row', name: 'Domain Name', key: 'HM_DOMAIN_NAME'
- = render 'config_row', name: 'Domain Protocol', key: 'HM_DOMAIN_PROTOCOL', default: 'https'
- %hr
- = render 'config_row', name: 'MyMLH Application ID', key: 'MLH_KEY'
- = render 'config_row', name: 'MyMLH Secret', key: 'MLH_SECRET', secret: true
- %hr
- = render 'config_row', name: 'Rollbar Access Token', key: 'ROLLBAR_ACCESS_TOKEN', secret: true, required: false
- %hr
- = render 'config_row', name: 'Time Zone', key: 'TIME_ZONE', default: 'UTC', required: false
- %hr
- %p.mb-0
- %b Email Provider
- - if Rails.application.config.action_mailer.delivery_method == :smtp
- %p
- %span.badge.badge-secondary SendGrid
- %span.badge.badge-success SMTP
- %br
- %small
- %i To switch to SendGrid, unset the SMTP_ADDRESS
environment variable
- = render 'config_row', name: 'SMTP Address', key: 'SMTP_ADDRESS'
- = render 'config_row', name: 'SMTP Port', key: 'SMTP_PORT', default: 587
- = render 'config_row', name: 'SMTP Username', key: 'SMTP_USER_NAME', secret: true
- = render 'config_row', name: 'SMTP Password', key: 'SMTP_PASSWORD', secret: true
- - else
- %p
- %span.badge.badge-success SendGrid
- %span.badge.badge-secondary SMTP
- %br
- %small
- %i To switch to SMTP, set the SMTP_ADDRESS
environment variable
- = render 'config_row', name: 'SendGrid API Key', key: 'SENDGRID_API_KEY', secret: true
+ Matching your hackathon's style.
+ - @styling.each_entry do |key|
+ - value = HackathonConfig[key]
+ %hr
+ %p.mb-1
+ = link_to edit_manage_config_path(key), class: 'icon-space-r' do
+ %span.fa.fa-pencil
+ %b
+ = t("simple_form.labels.hackathon_config.#{key}")
+ %p.text-muted= t("simple_form.hints.hackathon_config.#{key}").html_safe
+ - if key == 'custom_css'
+ %p
+ = link_to enter_theming_editor_manage_configs_path do
+ %span.fa.fa-paint-brush.icon-space-r-half
+ Interactive editor
+ - if value.nil? || value == ''
+ %p.mb-0
+ %span.badge.badge-secondary Not set
+ - else
+ %pre.mb-0= value
+ - if value.is_a?(String)
+ - images = ['.ico', '.jpg', '.jpeg', '.png', '.gif', '.svg'].freeze
+ - links = ['http://', 'https://'].freeze
+ - if value.end_with?(*images)
+ %br
+ = image_tag value, style: 'max-height: 100px;', class: 'img-thumbnail img-template'
+ - elsif value.start_with?(*links)
+ %br
+ = link_to value, target: 'blank' do
+ %span
+ %span.fa.fa-external-link.icon-space-r-half
+ Open link
+ .card.mb-3
+ .card-body
+ %h4.card-title.font-weight-bold
+ Legal
+ %h6.card-subtitle.mb-2.text-muted
+ Agreements for your hackers.
+ - @legal.each_entry do |key|
+ - value = HackathonConfig[key]
+ %hr
+ %p.mb-1
+ = link_to edit_manage_config_path(key), class: 'icon-space-r' do
+ %span.fa.fa-pencil
+ %b
+ = t("simple_form.labels.hackathon_config.#{key}")
+ %p.text-muted= t("simple_form.hints.hackathon_config.#{key}").html_safe
+ %pre.mb-0= value
+ - if value.is_a?(String)
+ - images = ['.ico', '.jpg', '.jpeg', '.png', '.gif', '.svg'].freeze
+ - links = ['http://', 'https://'].freeze
+ - if value.end_with?(*images)
+ %br
+ = image_tag value, style: 'max-height: 100px;', class: 'img-thumbnail img-template'
+ - elsif value.start_with?(*links)
+ %br
+ = link_to value, target: 'blank' do
+ %span
+ %span.fa.fa-external-link.icon-space-r-half
+ Open link
+ .col-lg-6
+ .card.mb-3
+ .card-body
+ %h4.card-title.font-weight-bold
+ Communications
+ %h6.card-subtitle.mb-2.text-muted
+ Get the word out.
+ - @communications.each_entry do |key|
+ - value = HackathonConfig[key]
+ %hr
+ %p.mb-1
+ = link_to edit_manage_config_path(key), class: 'icon-space-r' do
+ %span.fa.fa-pencil
+ %b
+ = t("simple_form.labels.hackathon_config.#{key}")
+ %p.text-muted= t("simple_form.hints.hackathon_config.#{key}").html_safe
+ - if value.nil? || value == ''
+ %p.mb-0
+ %span.badge.badge-secondary Not set
+ - else
+ %pre.mb-0= value
+ - if value.is_a?(String)
+ - images = ['.ico', '.jpg', '.jpeg', '.png', '.gif', '.svg'].freeze
+ - links = ['http://', 'https://'].freeze
+ - if value.end_with?(*images)
+ %br
+ = image_tag value, style: 'max-height: 100px;', class: 'img-thumbnail img-template'
+ - elsif value.start_with?(*links)
+ %br
+ = link_to value, target: 'blank' do
+ %span
+ %span.fa.fa-external-link.icon-space-r-half
+ Open link
+ .mb-3
+ .card.mb-3
+ .card-body
+ %h4.card-title.font-weight-bold
+ Environment Variables
+ %h6.card-subtitle.mb-2.text-muted
+ Environment variables are configured on the production server.
+ = render 'docs_link', title: 'Environment variable documentation', url: 'https://coderit.org/hackathon-manager/docs/deployment-environment-variables'
+ %hr
+ = render 'config_row', name: 'AWS S3 Bucket for Resumes', key: 'AWS_BUCKET'
+ = render 'config_row', name: 'AWS S3 Region', key: 'AWS_REGION'
+ = render 'config_row', name: 'AWS S3 Access Key ID', key: 'AWS_ACCESS_KEY_ID'
+ = render 'config_row', name: 'AWS S3 Secret Access Key', key: 'AWS_SECRET_ACCESS_KEY', secret: true
+ = render 'config_row', name: 'AWS S3 Endpoint', key: 'AWS_ENDPOINT', required: false
+ %hr
+ = render 'config_row', name: 'Domain Name', key: 'HM_DOMAIN_NAME'
+ = render 'config_row', name: 'Domain Protocol', key: 'HM_DOMAIN_PROTOCOL', default: 'https'
+ %hr
+ = render 'config_row', name: 'My MLH Application ID', key: 'MLH_KEY'
+ = render 'config_row', name: 'My MLH Secret', key: 'MLH_SECRET', secret: true
+ %hr
+ = render 'config_row', name: 'Rollbar Access Token', key: 'ROLLBAR_ACCESS_TOKEN', secret: true, required: false
+ %hr
+ = render 'config_row', name: 'Time Zone', key: 'TIME_ZONE', default: 'UTC', required: false
+ %hr
+ %p.mb-0
+ %b Email Provider
+ - if Rails.application.config.action_mailer.delivery_method == :smtp
+ %p
+ %span.badge.badge-secondary SendGrid
+ %span.badge.badge-success SMTP
+ %br
+ %small
+ %i To switch to SendGrid, unset the SMTP_ADDRESS
environment variable
+ = render 'config_row', name: 'SMTP Address', key: 'SMTP_ADDRESS'
+ = render 'config_row', name: 'SMTP Port', key: 'SMTP_PORT', default: 587
+ = render 'config_row', name: 'SMTP Username', key: 'SMTP_USER_NAME', secret: true
+ = render 'config_row', name: 'SMTP Password', key: 'SMTP_PASSWORD', secret: true
+ - else
+ %p
+ %span.badge.badge-success SendGrid
+ %span.badge.badge-secondary SMTP
+ %br
+ %small
+ %i To switch to SMTP, set the SMTP_ADDRESS
environment variable
+ = render 'config_row', name: 'SendGrid API Key', key: 'SENDGRID_API_KEY', secret: true