Skip to content

Commit 5591a92

Browse files
feat(settings): Simplifies Config (#409)
* feat(settings): Simplifies Config * Resolves Hound issues * Update app/views/manage/configs/index.html.haml Co-authored-by: Peter Kos <pkos91@icloud.com> * design: Increases the font-weight and reorganizes the page * fix: Hound issues Co-authored-by: Peter Kos <pkos91@icloud.com>
1 parent e43618f commit 5591a92

File tree

2 files changed

+189
-55
lines changed

2 files changed

+189
-55
lines changed

app/controllers/manage/configs_controller.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ class Manage::ConfigsController < Manage::ApplicationController
66

77
def index
88
@config = HackathonConfig.get_all
9+
@basics = ['name', 'event_start_date', 'digital_hackathon'].freeze
10+
@questionnaire_settings = ['accepting_questionnaires', 'last_day_to_apply', 'auto_late_waitlist', 'disabled_fields'].freeze
11+
@styling = ['default_page_title', 'homepage_url', 'logo_asset', 'email_banner_asset', 'favicon_asset', 'custom_css'].freeze
12+
@communications = ['email_from', 'disclaimer_message', 'thanks_for_applying_message', 'thanks_for_rsvp_message', 'questionnaires_closed_message', 'bus_captain_notes']
13+
@legal = ['agreement_pdf_asset'].freeze
914
respond_with(HackathonConfig.get_all)
1015
end
1116

app/views/manage/configs/index.html.haml

Lines changed: 184 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,54 @@
22

33
.row
44
.col-lg-6.mb-3
5-
- @config.each_key do |key|
6-
- value = @config[key]
7-
.card.mb-3
8-
.card-body
5+
.card.mb-3
6+
.card-body
7+
%h4.card-title.font-weight-bold
8+
The Basics
9+
%h6.card-subtitle.mb-2.text-muted
10+
Core information about your hackathon.
11+
- @basics.each_entry do |key|
12+
- value = HackathonConfig[key]
13+
%hr
14+
%p.mb-1
15+
= link_to edit_manage_config_path(key), class: 'icon-space-r' do
16+
%span.fa.fa-pencil
17+
%b
18+
= t("simple_form.labels.hackathon_config.#{key}")
19+
%p.text-muted= t("simple_form.hints.hackathon_config.#{key}").html_safe
20+
- if value.nil? || value == ''
21+
%p.mb-0
22+
%span.badge.badge-secondary Not set
23+
- else
24+
%pre.mb-0= value
25+
- if value.is_a?(String)
26+
- images = ['.ico', '.jpg', '.jpeg', '.png', '.gif', '.svg'].freeze
27+
- links = ['http://', 'https://'].freeze
28+
- if value.end_with?(*images)
29+
%br
30+
= image_tag value, style: 'max-height: 100px;', class: 'img-thumbnail img-template'
31+
- elsif value.start_with?(*links)
32+
%br
33+
= link_to value, target: 'blank' do
34+
%span
35+
%span.fa.fa-external-link.icon-space-r-half
36+
Open link
37+
.card.mb-3
38+
.card-body
39+
%h4.card-title.font-weight-bold
40+
Applying to
41+
= HackathonConfig['name']
42+
%h6.card-subtitle.mb-2.text-muted
43+
Configuring questionnaires for your hackathon.
44+
- @questionnaire_settings.each_entry do |key|
45+
- value = HackathonConfig[key]
46+
%hr
947
%p.mb-1
1048
= link_to edit_manage_config_path(key), class: 'icon-space-r' do
1149
%span.fa.fa-pencil
1250
%b
1351
= t("simple_form.labels.hackathon_config.#{key}")
14-
&nbsp;
15-
%small
16-
%code= key
1752
%p.text-muted= t("simple_form.hints.hackathon_config.#{key}").html_safe
18-
- if key == 'custom_css'
19-
%p
20-
= link_to enter_theming_editor_manage_configs_path do
21-
%span.fa.fa-paint-brush.icon-space-r-half
22-
Interactive editor
2353
- if key == 'disabled_fields'
2454
- cleaned_value = value
2555
- cleaned_value = cleaned_value.join(' ') if cleaned_value.is_a?(Array)
@@ -45,49 +75,148 @@
4575
%span
4676
%span.fa.fa-external-link.icon-space-r-half
4777
Open link
48-
49-
.col-lg-6.mb-3
5078
.card.mb-3
5179
.card-body
52-
%h5.card-title Environment Variables
80+
%h4.card-title.font-weight-bold
81+
Styling for
82+
= HackathonConfig['name']
5383
%h6.card-subtitle.mb-2.text-muted
54-
Environment variables are configured on the production server.
55-
= render 'docs_link', title: 'Environment variable documentation', url: 'https://coderit.org/hackathon-manager/docs/deployment-environment-variables'
56-
%hr
57-
= render 'config_row', name: 'AWS S3 Bucket for Resumes', key: 'AWS_BUCKET'
58-
= render 'config_row', name: 'AWS S3 Region', key: 'AWS_REGION'
59-
= render 'config_row', name: 'AWS S3 Access Key ID', key: 'AWS_ACCESS_KEY_ID'
60-
= render 'config_row', name: 'AWS S3 Secret Access Key', key: 'AWS_SECRET_ACCESS_KEY', secret: true
61-
= render 'config_row', name: 'AWS S3 Endpoint', key: 'AWS_ENDPOINT', required: false
62-
%hr
63-
= render 'config_row', name: 'Domain Name', key: 'HM_DOMAIN_NAME'
64-
= render 'config_row', name: 'Domain Protocol', key: 'HM_DOMAIN_PROTOCOL', default: 'https'
65-
%hr
66-
= render 'config_row', name: 'MyMLH Application ID', key: 'MLH_KEY'
67-
= render 'config_row', name: 'MyMLH Secret', key: 'MLH_SECRET', secret: true
68-
%hr
69-
= render 'config_row', name: 'Rollbar Access Token', key: 'ROLLBAR_ACCESS_TOKEN', secret: true, required: false
70-
%hr
71-
= render 'config_row', name: 'Time Zone', key: 'TIME_ZONE', default: 'UTC', required: false
72-
%hr
73-
%p.mb-0
74-
%b Email Provider
75-
- if Rails.application.config.action_mailer.delivery_method == :smtp
76-
%p
77-
%span.badge.badge-secondary SendGrid
78-
%span.badge.badge-success SMTP
79-
%br
80-
%small
81-
%i To switch to SendGrid, unset the <code>SMTP_ADDRESS</code> environment variable
82-
= render 'config_row', name: 'SMTP Address', key: 'SMTP_ADDRESS'
83-
= render 'config_row', name: 'SMTP Port', key: 'SMTP_PORT', default: 587
84-
= render 'config_row', name: 'SMTP Username', key: 'SMTP_USER_NAME', secret: true
85-
= render 'config_row', name: 'SMTP Password', key: 'SMTP_PASSWORD', secret: true
86-
- else
87-
%p
88-
%span.badge.badge-success SendGrid
89-
%span.badge.badge-secondary SMTP
90-
%br
91-
%small
92-
%i To switch to SMTP, set the <code>SMTP_ADDRESS</code> environment variable
93-
= render 'config_row', name: 'SendGrid API Key', key: 'SENDGRID_API_KEY', secret: true
84+
Matching your hackathon's style.
85+
- @styling.each_entry do |key|
86+
- value = HackathonConfig[key]
87+
%hr
88+
%p.mb-1
89+
= link_to edit_manage_config_path(key), class: 'icon-space-r' do
90+
%span.fa.fa-pencil
91+
%b
92+
= t("simple_form.labels.hackathon_config.#{key}")
93+
%p.text-muted= t("simple_form.hints.hackathon_config.#{key}").html_safe
94+
- if key == 'custom_css'
95+
%p
96+
= link_to enter_theming_editor_manage_configs_path do
97+
%span.fa.fa-paint-brush.icon-space-r-half
98+
Interactive editor
99+
- if value.nil? || value == ''
100+
%p.mb-0
101+
%span.badge.badge-secondary Not set
102+
- else
103+
%pre.mb-0= value
104+
- if value.is_a?(String)
105+
- images = ['.ico', '.jpg', '.jpeg', '.png', '.gif', '.svg'].freeze
106+
- links = ['http://', 'https://'].freeze
107+
- if value.end_with?(*images)
108+
%br
109+
= image_tag value, style: 'max-height: 100px;', class: 'img-thumbnail img-template'
110+
- elsif value.start_with?(*links)
111+
%br
112+
= link_to value, target: 'blank' do
113+
%span
114+
%span.fa.fa-external-link.icon-space-r-half
115+
Open link
116+
.card.mb-3
117+
.card-body
118+
%h4.card-title.font-weight-bold
119+
Legal
120+
%h6.card-subtitle.mb-2.text-muted
121+
Agreements for your hackers.
122+
- @legal.each_entry do |key|
123+
- value = HackathonConfig[key]
124+
%hr
125+
%p.mb-1
126+
= link_to edit_manage_config_path(key), class: 'icon-space-r' do
127+
%span.fa.fa-pencil
128+
%b
129+
= t("simple_form.labels.hackathon_config.#{key}")
130+
%p.text-muted= t("simple_form.hints.hackathon_config.#{key}").html_safe
131+
%pre.mb-0= value
132+
- if value.is_a?(String)
133+
- images = ['.ico', '.jpg', '.jpeg', '.png', '.gif', '.svg'].freeze
134+
- links = ['http://', 'https://'].freeze
135+
- if value.end_with?(*images)
136+
%br
137+
= image_tag value, style: 'max-height: 100px;', class: 'img-thumbnail img-template'
138+
- elsif value.start_with?(*links)
139+
%br
140+
= link_to value, target: 'blank' do
141+
%span
142+
%span.fa.fa-external-link.icon-space-r-half
143+
Open link
144+
.col-lg-6
145+
.card.mb-3
146+
.card-body
147+
%h4.card-title.font-weight-bold
148+
Communications
149+
%h6.card-subtitle.mb-2.text-muted
150+
Get the word out.
151+
- @communications.each_entry do |key|
152+
- value = HackathonConfig[key]
153+
%hr
154+
%p.mb-1
155+
= link_to edit_manage_config_path(key), class: 'icon-space-r' do
156+
%span.fa.fa-pencil
157+
%b
158+
= t("simple_form.labels.hackathon_config.#{key}")
159+
%p.text-muted= t("simple_form.hints.hackathon_config.#{key}").html_safe
160+
- if value.nil? || value == ''
161+
%p.mb-0
162+
%span.badge.badge-secondary Not set
163+
- else
164+
%pre.mb-0= value
165+
- if value.is_a?(String)
166+
- images = ['.ico', '.jpg', '.jpeg', '.png', '.gif', '.svg'].freeze
167+
- links = ['http://', 'https://'].freeze
168+
- if value.end_with?(*images)
169+
%br
170+
= image_tag value, style: 'max-height: 100px;', class: 'img-thumbnail img-template'
171+
- elsif value.start_with?(*links)
172+
%br
173+
= link_to value, target: 'blank' do
174+
%span
175+
%span.fa.fa-external-link.icon-space-r-half
176+
Open link
177+
.mb-3
178+
.card.mb-3
179+
.card-body
180+
%h4.card-title.font-weight-bold
181+
Environment Variables
182+
%h6.card-subtitle.mb-2.text-muted
183+
Environment variables are configured on the production server.
184+
= render 'docs_link', title: 'Environment variable documentation', url: 'https://coderit.org/hackathon-manager/docs/deployment-environment-variables'
185+
%hr
186+
= render 'config_row', name: 'AWS S3 Bucket for Resumes', key: 'AWS_BUCKET'
187+
= render 'config_row', name: 'AWS S3 Region', key: 'AWS_REGION'
188+
= render 'config_row', name: 'AWS S3 Access Key ID', key: 'AWS_ACCESS_KEY_ID'
189+
= render 'config_row', name: 'AWS S3 Secret Access Key', key: 'AWS_SECRET_ACCESS_KEY', secret: true
190+
= render 'config_row', name: 'AWS S3 Endpoint', key: 'AWS_ENDPOINT', required: false
191+
%hr
192+
= render 'config_row', name: 'Domain Name', key: 'HM_DOMAIN_NAME'
193+
= render 'config_row', name: 'Domain Protocol', key: 'HM_DOMAIN_PROTOCOL', default: 'https'
194+
%hr
195+
= render 'config_row', name: 'My MLH Application ID', key: 'MLH_KEY'
196+
= render 'config_row', name: 'My MLH Secret', key: 'MLH_SECRET', secret: true
197+
%hr
198+
= render 'config_row', name: 'Rollbar Access Token', key: 'ROLLBAR_ACCESS_TOKEN', secret: true, required: false
199+
%hr
200+
= render 'config_row', name: 'Time Zone', key: 'TIME_ZONE', default: 'UTC', required: false
201+
%hr
202+
%p.mb-0
203+
%b Email Provider
204+
- if Rails.application.config.action_mailer.delivery_method == :smtp
205+
%p
206+
%span.badge.badge-secondary SendGrid
207+
%span.badge.badge-success SMTP
208+
%br
209+
%small
210+
%i To switch to SendGrid, unset the <code>SMTP_ADDRESS</code> environment variable
211+
= render 'config_row', name: 'SMTP Address', key: 'SMTP_ADDRESS'
212+
= render 'config_row', name: 'SMTP Port', key: 'SMTP_PORT', default: 587
213+
= render 'config_row', name: 'SMTP Username', key: 'SMTP_USER_NAME', secret: true
214+
= render 'config_row', name: 'SMTP Password', key: 'SMTP_PASSWORD', secret: true
215+
- else
216+
%p
217+
%span.badge.badge-success SendGrid
218+
%span.badge.badge-secondary SMTP
219+
%br
220+
%small
221+
%i To switch to SMTP, set the <code>SMTP_ADDRESS</code> environment variable
222+
= render 'config_row', name: 'SendGrid API Key', key: 'SENDGRID_API_KEY', secret: true

0 commit comments

Comments
 (0)