spina-conferences-primer_theme 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +33 -0
- data/Rakefile +36 -0
- data/app/assets/config/spina_conferences_primer_theme_manifest.js +8 -0
- data/app/assets/javascripts/spina/conferences/primer_theme/application.js +8 -0
- data/app/assets/javascripts/spina/conferences/primer_theme/controllers/slideshow_controller.es6 +68 -0
- data/app/assets/stylesheets/spina/conferences/primer_theme/_admin.sass +4 -0
- data/app/assets/stylesheets/spina/conferences/primer_theme/_custom.sass +0 -0
- data/app/assets/stylesheets/spina/conferences/primer_theme/_github.sass +2 -0
- data/app/assets/stylesheets/spina/conferences/primer_theme/_primer.sass +4 -0
- data/app/assets/stylesheets/spina/conferences/primer_theme/_turbolinks.sass +3 -0
- data/app/assets/stylesheets/spina/conferences/primer_theme/application.sass +13 -0
- data/app/controllers/spina/conferences/primer_theme/application_controller.rb +14 -0
- data/app/controllers/spina/conferences/primer_theme/conferences_controller.rb +55 -0
- data/app/controllers/spina/conferences/primer_theme/presentations_controller.rb +39 -0
- data/app/helpers/spina/conferences/primer_theme/application_helper.rb +64 -0
- data/app/helpers/spina/conferences/primer_theme/asset_helper.rb +48 -0
- data/app/helpers/spina/conferences/primer_theme/navigations_helper.rb +24 -0
- data/app/views/conferences_primer_theme/pages/about.html.haml +17 -0
- data/app/views/conferences_primer_theme/pages/committee.html.haml +9 -0
- data/app/views/conferences_primer_theme/pages/homepage.html.haml +6 -0
- data/app/views/conferences_primer_theme/pages/information.html.haml +6 -0
- data/app/views/conferences_primer_theme/pages/show.html.haml +2 -0
- data/app/views/layouts/conferences_primer_theme/application.html.haml +5 -0
- data/app/views/layouts/spina/conferences/primer_theme/application.html.haml +36 -0
- data/app/views/layouts/spina/conferences/primer_theme/conferences.html.haml +4 -0
- data/app/views/layouts/spina/conferences/primer_theme/presentations.html.haml +4 -0
- data/app/views/spina/application/_cookies.html.haml +14 -0
- data/app/views/spina/application/_current_conference_alert.html.haml +4 -0
- data/app/views/spina/application/_footer.html.haml +24 -0
- data/app/views/spina/application/_image_collection.html.haml +19 -0
- data/app/views/spina/application/_list_item.html.haml +1 -0
- data/app/views/spina/application/_logo.html.haml +1 -0
- data/app/views/spina/application/_mobile_navigation_item.html.haml +2 -0
- data/app/views/spina/application/_navigation.html.haml +12 -0
- data/app/views/spina/application/_navigation_item.html.haml +1 -0
- data/app/views/spina/application/_text.html.haml +1 -0
- data/app/views/spina/conferences/primer_theme/conferences/_conference.html.haml +16 -0
- data/app/views/spina/conferences/primer_theme/conferences/_conference.ics.erb +3 -0
- data/app/views/spina/conferences/primer_theme/conferences/_event.html.haml +12 -0
- data/app/views/spina/conferences/primer_theme/conferences/_event.ics.erb +3 -0
- data/app/views/spina/conferences/primer_theme/conferences/_events.html.haml +15 -0
- data/app/views/spina/conferences/primer_theme/conferences/_information.html.haml +4 -0
- data/app/views/spina/conferences/primer_theme/conferences/_institution.html.haml +6 -0
- data/app/views/spina/conferences/primer_theme/conferences/_institution_logo.html.haml +3 -0
- data/app/views/spina/conferences/primer_theme/conferences/_presentation.html.haml +14 -0
- data/app/views/spina/conferences/primer_theme/conferences/_presentation.ics.erb +3 -0
- data/app/views/spina/conferences/primer_theme/conferences/_presentation_type.html.haml +6 -0
- data/app/views/spina/conferences/primer_theme/conferences/_presentations.html.haml +29 -0
- data/app/views/spina/conferences/primer_theme/conferences/_sponsor.html.haml +9 -0
- data/app/views/spina/conferences/primer_theme/conferences/_sponsors.html.haml +6 -0
- data/app/views/spina/conferences/primer_theme/conferences/_tab.html.haml +1 -0
- data/app/views/spina/conferences/primer_theme/conferences/index.html.haml +21 -0
- data/app/views/spina/conferences/primer_theme/conferences/index.ics.erb +3 -0
- data/app/views/spina/conferences/primer_theme/conferences/show.html.haml +67 -0
- data/app/views/spina/conferences/primer_theme/conferences/show.ics.erb +5 -0
- data/app/views/spina/conferences/primer_theme/presentations/_abstract.html.haml +1 -0
- data/app/views/spina/conferences/primer_theme/presentations/_attachment.html.haml +6 -0
- data/app/views/spina/conferences/primer_theme/presentations/_attachments.html.haml +4 -0
- data/app/views/spina/conferences/primer_theme/presentations/show.html.haml +16 -0
- data/app/views/spina/pages/_committee_bio.html.haml +29 -0
- data/app/views/spina/pages/_committee_bios.html.haml +5 -0
- data/app/views/spina/pages/_constitution.html.haml +11 -0
- data/app/views/spina/pages/_contact.html.haml +4 -0
- data/app/views/spina/pages/_homepage_content.html.haml +15 -0
- data/app/views/spina/pages/_jumbotron.html.haml +2 -0
- data/app/views/spina/pages/_minutes.html.haml +8 -0
- data/app/views/spina/pages/_minutes_entry.html.haml +11 -0
- data/app/views/spina/pages/_partner_societies.html.haml +9 -0
- data/app/views/spina/pages/_partner_society.html.haml +25 -0
- data/config/initializers/assets.rb +13 -0
- data/config/initializers/themes/conferences_primer_theme.rb +247 -0
- data/config/locales/en.yml +149 -0
- data/config/routes.rb +11 -0
- data/lib/spina/conferences/primer_theme.rb +17 -0
- data/lib/spina/conferences/primer_theme/breadcrumbs/builder.rb +34 -0
- data/lib/spina/conferences/primer_theme/engine.rb +13 -0
- data/lib/spina/conferences/primer_theme/version.rb +9 -0
- data/lib/tasks/spina/conferences/primer_theme_tasks.rake +6 -0
- metadata +388 -0
@@ -0,0 +1,5 @@
|
|
1
|
+
<%= calendar name: @conference.name do -%>
|
2
|
+
<%= render partial: 'conference', object: @conference, cached: true -%>
|
3
|
+
<%= render partial: 'presentation', collection: @conference.presentations, cached: true -%>
|
4
|
+
<%= render partial: 'event', collection: @conference.events, cached: true -%>
|
5
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
.markdown-body.my-4= abstract.html_safe
|
@@ -0,0 +1,6 @@
|
|
1
|
+
- cache [attachment, attachment.attachment] do
|
2
|
+
- unless attachment.attachment.blank?
|
3
|
+
= render Primer::ButtonComponent.new(tag: :a, group_item: true,
|
4
|
+
href: main_app.rails_blob_path(attachment.attachment.file, disposition: :attachment)) do
|
5
|
+
= render Primer::OcticonComponent.new(icon: 'download')
|
6
|
+
= attachment.name
|
@@ -0,0 +1,16 @@
|
|
1
|
+
- cache [@presentation, @presentation.presenters, @presentation.attachments.collect(&:attachment)] do
|
2
|
+
- cache [@presentation, @presentation.presenters] do
|
3
|
+
%h1.mb-1.mb-md-2= @presentation.title
|
4
|
+
%ul.text-gray-dark.list-style-none.d-flex.flex-column.flex-sm-row.flex-wrap
|
5
|
+
%li.mr-sm-3.mb-1
|
6
|
+
= octicon @presentation.presenters.many? ? 'people' : 'person'
|
7
|
+
%address.d-inline= @presentation.presenters.collect(&:full_name_and_institution).to_sentence
|
8
|
+
%li.mr-sm-3.mb-1
|
9
|
+
= octicon 'clock'
|
10
|
+
= time_tag @presentation.start_datetime, format: :short
|
11
|
+
%li.mb-1
|
12
|
+
= octicon 'location'
|
13
|
+
%address.d-inline= t :'.room_and_institution', room: @presentation.session.room_name, institution: @presentation.room.institution.name
|
14
|
+
|
15
|
+
= render partial: 'attachments', object: @presentation.attachments
|
16
|
+
= render partial: 'abstract', object: @presentation.abstract
|
@@ -0,0 +1,29 @@
|
|
1
|
+
.d-flex.flex-column.flex-md-row.flex-items-start
|
2
|
+
- cache partable_for(:profile_picture, parent: committee_bio) do
|
3
|
+
- if committee_bio.has_content?(:profile_picture) && committee_bio.content(:profile_picture).persisted?
|
4
|
+
= render Primer::AvatarComponent.new(src: src(committee_bio.content(:profile_picture).file, resize_to_fill: [150, 150]),
|
5
|
+
srcset: srcset(committee_bio.content(:profile_picture).file,
|
6
|
+
variant: { resize_to_limit: [150, 150] }),
|
7
|
+
draggable: false, alt: committee_bio.content(:name), size: 150, mr: [nil, nil, 3, nil],
|
8
|
+
mb: [3, nil, 0, nil])
|
9
|
+
.flex-auto
|
10
|
+
.d-flex.flex-column.flex-md-row.mb-1
|
11
|
+
- cache partable_for(:name, :role, parent: committee_bio) do
|
12
|
+
- if committee_bio.has_content?(:name) && committee_bio.has_content?(:role)
|
13
|
+
%h3.flex-auto= t :'.name_and_role', name: committee_bio.content(:name), role: committee_bio.content(:role)
|
14
|
+
- elsif committee_bio.has_content?(:name)
|
15
|
+
%h3.flex-auto= committee_bio.content(:name)
|
16
|
+
.BtnGroup.mt-1.mt-md-0.ml-md-1{ aria: { label: t(:'.contact_buttons') } }
|
17
|
+
- cache partable_for(:twitter_profile, parent: committee_bio) do
|
18
|
+
- if committee_bio.has_content?(:twitter_profile)
|
19
|
+
= render Primer::ButtonComponent.new(tag: :a, href: committee_bio.content(:twitter_profile), group_item: true) do
|
20
|
+
= render Primer::OcticonComponent.new(icon: 'link-external')
|
21
|
+
= t(:'.twitter')
|
22
|
+
- cache partable_for(:facebook_profile, parent: committee_bio) do
|
23
|
+
- if committee_bio.has_content?(:facebook_profile)
|
24
|
+
= render Primer::ButtonComponent.new(tag: :a, href: committee_bio.content(:facebook_profile), group_item: true) do
|
25
|
+
= render Primer::OcticonComponent.new(icon: 'link-external')
|
26
|
+
= t(:'.facebook')
|
27
|
+
- cache partable_for(:bio, parent: committee_bio) do
|
28
|
+
- if committee_bio.has_content?(:bio)
|
29
|
+
.text-gray-light= committee_bio.content(:bio).try(:html_safe)
|
@@ -0,0 +1,5 @@
|
|
1
|
+
- if committee_bios.structure_items.any?
|
2
|
+
%ul{ class: dom_class(committee_bios), id: dom_id(committee_bios) }
|
3
|
+
= render partial: 'committee_bio', collection: committee_bios.structure_items.sorted_by_structure, layout: 'list_item', cached: true
|
4
|
+
- else
|
5
|
+
= render Primer::BlankslateComponent.new(title: t(:'.no_bios'), icon: 'file')
|
@@ -0,0 +1,11 @@
|
|
1
|
+
= render Primer::SubheadComponent.new do |component|
|
2
|
+
= component.slot(:heading) { t :'.title' }
|
3
|
+
|
4
|
+
- if constitution.present?
|
5
|
+
.py-1.d-flex.flex-items-center
|
6
|
+
.flex-auto.pr-1= t :'.uploaded', date: l(constitution.created_at.to_date, format: :long)
|
7
|
+
= render Primer::ButtonComponent.new(tag: :a, href: main_app.rails_blob_path(constitution, disposition: :attachment), ml: 2) do
|
8
|
+
= render Primer::OcticonComponent.new(icon: 'desktop-download')
|
9
|
+
= t(:'.download')
|
10
|
+
- else
|
11
|
+
= render Primer::BlankslateComponent.new(title: t(:'.no_constitution'), icon: 'law')
|
@@ -0,0 +1,15 @@
|
|
1
|
+
.py-3.py-lg-6
|
2
|
+
- if latest_conference.present? && latest_conference.finish_date >= Date.today
|
3
|
+
.text-shadow-dark
|
4
|
+
%h1.h000-mktg.lh-condensed-ultra= conference.name
|
5
|
+
%address.f2-light= conference.institutions.collect(&:name).to_sentence
|
6
|
+
%time.f2-light= t(:'.dates_html', start_date: time_tag(conference.start_date, format: :day_and_month),
|
7
|
+
finish_date: time_tag(conference.finish_date, format: :day_and_month))
|
8
|
+
.markdown-body.my-4= content(:text).try(:html_safe)
|
9
|
+
.d-block.mt-4
|
10
|
+
= link_to t('.more_info'), frontend_conference_path(conference), class: %w[btn-mktg btn-large-mktg btn-primary-mktg f3]
|
11
|
+
- else
|
12
|
+
.text-shadow-dark
|
13
|
+
%h1.h000-mktg.lh-condensed-ultra= Spina::Account.first.name
|
14
|
+
.markdown-body.my-4= content(:text).try(:html_safe)
|
15
|
+
|
@@ -0,0 +1,8 @@
|
|
1
|
+
= render Primer::SubheadComponent.new do |component|
|
2
|
+
= component.slot(:heading) { t :'.title' }
|
3
|
+
|
4
|
+
- if minutes.present? && minutes.structure_items.any?
|
5
|
+
%ul{ class: dom_class(minutes), id: dom_id(minutes) }= render partial: 'minutes_entry',
|
6
|
+
collection: minutes.structure_items.sorted_by_structure, cached: true
|
7
|
+
- else
|
8
|
+
= render Primer::BlankslateComponent.new(title: t(:'.no_minutes'), icon: 'file')
|
@@ -0,0 +1,11 @@
|
|
1
|
+
%li.list-style-none.py-1.d-flex.flex-items-center
|
2
|
+
- cache partable_for(:date, parent: minutes_entry) do
|
3
|
+
.flex-auto= minutes_entry.has_content?(:date) ? t(:'.minutes_html', date: time_tag(minutes_entry.content(:date))) : t(:'.no_date')
|
4
|
+
- cache partable_for(:attachment, parent: minutes_entry) do
|
5
|
+
- if minutes_entry.has_content?(:attachment) && minutes_entry.content(:attachment).persisted?
|
6
|
+
= render Primer::ButtonComponent.new(tag: :a, ml: 2,
|
7
|
+
href: main_app.rails_blob_path(minutes_entry.content(:attachment), disposition: :attachment)) do
|
8
|
+
= render Primer::OcticonComponent.new(icon: 'desktop-download')
|
9
|
+
= t(:'.download')
|
10
|
+
- else
|
11
|
+
.text-small.text-gray= t :'.no_file'
|
@@ -0,0 +1,9 @@
|
|
1
|
+
= render Primer::SubheadComponent.new do |component|
|
2
|
+
= component.slot(:heading) { t :'.title' }
|
3
|
+
|
4
|
+
- if partner_societies.structure_items.any?
|
5
|
+
%ul{ class: dom_class(partner_societies), id: dom_id(partner_societies) }
|
6
|
+
= render partial: 'partner_society', collection: partner_societies.structure_items.sorted_by_structure,
|
7
|
+
layout: 'list_item', cached: true
|
8
|
+
- else
|
9
|
+
= render Primer::BlankslateComponent.new(title: t(:'.no_societies'), icon: 'organization')
|
@@ -0,0 +1,25 @@
|
|
1
|
+
.d-flex.flex-column.flex-md-row-reverse.flex-items-start
|
2
|
+
.flex-auto
|
3
|
+
%h3.d-flex.flex-wrap.mb-1
|
4
|
+
- cache partable_for(:name, parent: partner_society) do
|
5
|
+
- if partner_society.has_content? :name
|
6
|
+
.flex-auto= partner_society.content(:name)
|
7
|
+
.BtnGroup.mt-1.mt-sm-0{ aria: { label: t(:'.contact_buttons') } }
|
8
|
+
- cache partable_for(:website, parent: partner_society) do
|
9
|
+
- if partner_society.has_content? :website
|
10
|
+
= render Primer::ButtonComponent.new(tag: :a, href: partner_society.content(:website), group_item: true) do
|
11
|
+
= render Primer::OcticonComponent.new(icon: 'browser')
|
12
|
+
= t(:'.website')
|
13
|
+
- cache partable_for(:email_address, parent: partner_society) do
|
14
|
+
- if partner_society.has_content? :email_address
|
15
|
+
= render Primer::ButtonComponent.new(tag: :a, href: "mailto:#{partner_society.content(:email_address)}", group_item: true) do
|
16
|
+
= render Primer::OcticonComponent.new(icon: 'mail')
|
17
|
+
= t(:'.email')
|
18
|
+
- cache partable_for(:description, parent: partner_society) do
|
19
|
+
- if partner_society.has_content? :description
|
20
|
+
.text-gray= render partial: 'text', object: partner_society.content(:description)
|
21
|
+
- cache partable_for(:logo, parent: partner_society) do
|
22
|
+
- if partner_society.has_content?(:logo) && partner_society.content(:logo).persisted?
|
23
|
+
= image_tag(main_app.url_for(partner_society.content(:logo).file.variant(resize_to_limit: [200, 150])),
|
24
|
+
srcset: srcset(partner_society.content(:logo).file, variant: { resize_to_limit: [200, 150] }), size: nil,
|
25
|
+
alt_description: partner_society.content(:name), draggable: false, class: %w[mt-4 mt-md-0 mr-md-4])
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Be sure to restart your server when you modify this file.
|
4
|
+
|
5
|
+
# Add additional assets to the asset load path.
|
6
|
+
# Rails.application.config.assets.paths << Emoji.images_path
|
7
|
+
# Add Yarn node_modules folder to the asset load path.
|
8
|
+
Rails.application.config.assets.paths << Spina::Conferences::PrimerTheme::Engine.root.join('node_modules')
|
9
|
+
|
10
|
+
# Precompile additional assets.
|
11
|
+
# application.js, application.css, and all non-JS/CSS in the app/assets
|
12
|
+
# folder are already added.
|
13
|
+
# Rails.application.config.assets.precompile += %w( admin.js admin.css )
|
@@ -0,0 +1,247 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
::Spina::Theme.register do |theme| # rubocop:disable Metrics/BlockLength
|
4
|
+
theme.name = 'conferences_primer_theme'
|
5
|
+
theme.title = 'Conferences Primer theme'
|
6
|
+
|
7
|
+
theme.page_parts = [{
|
8
|
+
name: 'text',
|
9
|
+
title: 'Text',
|
10
|
+
partable_type: 'Spina::Text'
|
11
|
+
}, {
|
12
|
+
name: 'gallery',
|
13
|
+
title: 'Gallery',
|
14
|
+
partable_type: 'Spina::ImageCollection'
|
15
|
+
}, {
|
16
|
+
name: 'constitution',
|
17
|
+
title: 'Constitution',
|
18
|
+
partable_type: 'Spina::Attachment'
|
19
|
+
}, {
|
20
|
+
name: 'slides',
|
21
|
+
title: 'Slides',
|
22
|
+
partable_type: 'Spina::Attachment'
|
23
|
+
}, {
|
24
|
+
name: 'handout',
|
25
|
+
title: 'Handout',
|
26
|
+
partable_type: 'Spina::Attachment'
|
27
|
+
}, {
|
28
|
+
name: 'poster',
|
29
|
+
title: 'Poster',
|
30
|
+
partable_type: 'Spina::Attachment'
|
31
|
+
}, {
|
32
|
+
name: 'partner_societies',
|
33
|
+
title: 'Partner societies',
|
34
|
+
partable_type: 'Spina::Structure'
|
35
|
+
}, {
|
36
|
+
name: 'minutes',
|
37
|
+
title: 'Minutes',
|
38
|
+
partable_type: 'Spina::Structure'
|
39
|
+
}, {
|
40
|
+
name: 'contact',
|
41
|
+
title: 'Contact',
|
42
|
+
partable_type: 'Spina::Text'
|
43
|
+
}, {
|
44
|
+
name: 'socials',
|
45
|
+
title: 'Socials',
|
46
|
+
partable_type: 'Spina::Structure'
|
47
|
+
}, {
|
48
|
+
name: 'meetings',
|
49
|
+
title: 'Meetings',
|
50
|
+
partable_type: 'Spina::Structure'
|
51
|
+
}, {
|
52
|
+
name: 'submission_url',
|
53
|
+
title: 'Submission URL',
|
54
|
+
partable_type: 'Spina::Admin::Conferences::UrlPart'
|
55
|
+
}, {
|
56
|
+
name: 'submission_date',
|
57
|
+
title: 'Submission date',
|
58
|
+
partable_type: 'Spina::Admin::Conferences::DatePart'
|
59
|
+
}, {
|
60
|
+
name: 'submission_text',
|
61
|
+
title: 'Submission text',
|
62
|
+
partable_type: 'Spina::Line'
|
63
|
+
}, {
|
64
|
+
name: 'committee_bios',
|
65
|
+
title: 'Committee bios',
|
66
|
+
partable_type: 'Spina::Structure'
|
67
|
+
}, {
|
68
|
+
name: 'sponsors',
|
69
|
+
title: 'Sponsors',
|
70
|
+
partable_type: 'Spina::Structure'
|
71
|
+
}]
|
72
|
+
|
73
|
+
theme.layout_parts = [{
|
74
|
+
name: 'current_conference_alert',
|
75
|
+
title: 'Alert',
|
76
|
+
partable_type: 'Spina::Line'
|
77
|
+
}, {
|
78
|
+
name: 'github_url',
|
79
|
+
title: 'GitHub URL',
|
80
|
+
partable_type: 'Spina::Line'
|
81
|
+
}]
|
82
|
+
|
83
|
+
theme.structures = [{
|
84
|
+
name: 'partner_societies',
|
85
|
+
structure_parts: [{
|
86
|
+
name: 'name',
|
87
|
+
title: 'Name',
|
88
|
+
partable_type: 'Spina::Line'
|
89
|
+
}, {
|
90
|
+
name: 'logo',
|
91
|
+
title: 'Logo',
|
92
|
+
partable_type: 'Spina::Image'
|
93
|
+
}, {
|
94
|
+
name: 'description',
|
95
|
+
title: 'Description',
|
96
|
+
partable_type: 'Spina::Text'
|
97
|
+
}, {
|
98
|
+
name: 'website',
|
99
|
+
title: 'Website',
|
100
|
+
partable_type: 'Spina::Admin::Conferences::UrlPart'
|
101
|
+
}, {
|
102
|
+
name: 'email_address',
|
103
|
+
title: 'Email address',
|
104
|
+
partable_type: 'Spina::Admin::Conferences::EmailAddressPart'
|
105
|
+
}]
|
106
|
+
}, {
|
107
|
+
name: 'minutes',
|
108
|
+
structure_parts: [{
|
109
|
+
name: 'date',
|
110
|
+
title: 'Date',
|
111
|
+
partable_type: 'Spina::Admin::Conferences::DatePart'
|
112
|
+
}, {
|
113
|
+
name: 'attachment',
|
114
|
+
title: 'Attachment',
|
115
|
+
partable_type: 'Spina::Attachment'
|
116
|
+
}]
|
117
|
+
}, {
|
118
|
+
name: 'socials',
|
119
|
+
structure_parts: [{
|
120
|
+
name: 'name',
|
121
|
+
title: 'Name',
|
122
|
+
partable_type: 'Spina::Line'
|
123
|
+
}, {
|
124
|
+
name: 'start_time',
|
125
|
+
title: 'Time',
|
126
|
+
partable_type: 'Spina::Admin::Conferences::TimePart'
|
127
|
+
}, {
|
128
|
+
name: 'location',
|
129
|
+
title: 'Location',
|
130
|
+
partable_type: 'Spina::Line'
|
131
|
+
}, {
|
132
|
+
name: 'description',
|
133
|
+
title: 'Description',
|
134
|
+
partable_type: 'Spina::Text'
|
135
|
+
}]
|
136
|
+
}, {
|
137
|
+
name: 'meetings',
|
138
|
+
structure_parts: [{
|
139
|
+
name: 'name',
|
140
|
+
title: 'Name',
|
141
|
+
partable_type: 'Spina::Line'
|
142
|
+
}, {
|
143
|
+
name: 'start_time',
|
144
|
+
title: 'Time',
|
145
|
+
partable_type: 'Spina::Admin::Conferences::TimePart'
|
146
|
+
}, {
|
147
|
+
name: 'location',
|
148
|
+
title: 'Location',
|
149
|
+
partable_type: 'Spina::Line'
|
150
|
+
}, {
|
151
|
+
name: 'description',
|
152
|
+
title: 'Description',
|
153
|
+
partable_type: 'Spina::Text'
|
154
|
+
}]
|
155
|
+
}, {
|
156
|
+
name: 'committee_bios',
|
157
|
+
structure_parts: [{
|
158
|
+
name: 'name',
|
159
|
+
title: 'Name',
|
160
|
+
partable_type: 'Spina::Line'
|
161
|
+
}, {
|
162
|
+
name: 'role',
|
163
|
+
title: 'Role',
|
164
|
+
partable_type: 'Spina::Line'
|
165
|
+
}, {
|
166
|
+
name: 'bio',
|
167
|
+
title: 'Bio',
|
168
|
+
partable_type: 'Spina::Text'
|
169
|
+
}, {
|
170
|
+
name: 'profile_picture',
|
171
|
+
title: 'Profile picture',
|
172
|
+
partable_type: 'Spina::Image'
|
173
|
+
}, {
|
174
|
+
name: 'facebook_profile',
|
175
|
+
title: 'Facebook profile',
|
176
|
+
partable_type: 'Spina::Admin::Conferences::UrlPart'
|
177
|
+
}, {
|
178
|
+
name: 'twitter_profile',
|
179
|
+
title: 'Twitter profile',
|
180
|
+
partable_type: 'Spina::Admin::Conferences::UrlPart'
|
181
|
+
}]
|
182
|
+
}, {
|
183
|
+
name: 'sponsors',
|
184
|
+
structure_parts: [{
|
185
|
+
name: 'name',
|
186
|
+
title: 'Name',
|
187
|
+
partable_type: 'Spina::Line'
|
188
|
+
}, {
|
189
|
+
name: 'logo',
|
190
|
+
title: 'Logo',
|
191
|
+
partable_type: 'Spina::Image'
|
192
|
+
}, {
|
193
|
+
name: 'website',
|
194
|
+
title: 'Website',
|
195
|
+
partable_type: 'Spina::Admin::Conferences::UrlPart'
|
196
|
+
}]
|
197
|
+
}]
|
198
|
+
|
199
|
+
theme.view_templates = [{
|
200
|
+
name: 'homepage',
|
201
|
+
title: 'Homepage',
|
202
|
+
page_parts: %w[gallery text]
|
203
|
+
}, {
|
204
|
+
name: 'information',
|
205
|
+
title: 'Information',
|
206
|
+
description: 'Contains general information',
|
207
|
+
page_parts: %w[text]
|
208
|
+
}, {
|
209
|
+
name: 'committee',
|
210
|
+
title: 'Committee',
|
211
|
+
description: 'Contains committee bios',
|
212
|
+
page_parts: %w[text committee_bios]
|
213
|
+
}, {
|
214
|
+
name: 'about',
|
215
|
+
title: 'About',
|
216
|
+
description: 'Contains information about the society',
|
217
|
+
page_parts: %w[text constitution minutes partner_societies contact]
|
218
|
+
}, {
|
219
|
+
name: 'show',
|
220
|
+
title: 'Blank',
|
221
|
+
description: 'Blank template',
|
222
|
+
page_parts: []
|
223
|
+
}]
|
224
|
+
|
225
|
+
theme.custom_pages = [{
|
226
|
+
name: 'homepage',
|
227
|
+
title: 'Homepage',
|
228
|
+
deletable: false,
|
229
|
+
view_template: 'homepage'
|
230
|
+
}, {
|
231
|
+
name: 'about',
|
232
|
+
title: 'About',
|
233
|
+
deletable: false,
|
234
|
+
view_template: 'about'
|
235
|
+
}]
|
236
|
+
|
237
|
+
theme.navigations = [{
|
238
|
+
name: 'main',
|
239
|
+
label: 'Main navigation',
|
240
|
+
auto_add_pages: true
|
241
|
+
}, {
|
242
|
+
name: 'footer',
|
243
|
+
label: 'Footer'
|
244
|
+
}]
|
245
|
+
|
246
|
+
theme.plugins = ['conferences']
|
247
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
# Files in the config/locales directory are used for internationalization
|
2
|
+
# and are automatically loaded by Rails. If you want to use locales other
|
3
|
+
# than English, add the necessary files in this directory.
|
4
|
+
#
|
5
|
+
# To use the locales, use `I18n.t`:
|
6
|
+
#
|
7
|
+
# I18n.t 'hello'
|
8
|
+
#
|
9
|
+
# In views, this is aliased to just `t`:
|
10
|
+
#
|
11
|
+
# <%= t(:'hello') %>
|
12
|
+
#
|
13
|
+
# To use a different locale, set it with `I18n.locale`:
|
14
|
+
#
|
15
|
+
# I18n.locale = :es
|
16
|
+
#
|
17
|
+
# This would use the information in config/locales/es.yml.
|
18
|
+
#
|
19
|
+
# The following keys must be escaped otherwise they will not be retrieved by
|
20
|
+
# the default I18n backend:
|
21
|
+
#
|
22
|
+
# true, false, on, off, yes, no
|
23
|
+
#
|
24
|
+
# Instead, surround them with single quotes.
|
25
|
+
#
|
26
|
+
# en:
|
27
|
+
# 'true': 'foo'
|
28
|
+
#
|
29
|
+
# To learn more, please read the Rails Internationalization guide
|
30
|
+
# available at http://guides.rubyonrails.org/i18n.html.
|
31
|
+
|
32
|
+
en:
|
33
|
+
layouts:
|
34
|
+
spina:
|
35
|
+
conferences:
|
36
|
+
primer_theme:
|
37
|
+
application:
|
38
|
+
title: "%{title} — %{suffix}"
|
39
|
+
|
40
|
+
spina:
|
41
|
+
show: Show
|
42
|
+
|
43
|
+
application:
|
44
|
+
cookies:
|
45
|
+
title: About cookies
|
46
|
+
purpose: We use cookies for security, functionality, and analytics purposes.
|
47
|
+
no_advertising: We do not use Google Analytics Advertising features.
|
48
|
+
used:
|
49
|
+
rails_html: We use the %{cookie} cookie to track sessions.
|
50
|
+
google_analytics_html: Google Analytics sets the %{cookies} cookies for analytics purposes.
|
51
|
+
footer:
|
52
|
+
copyright: © %{name} %{year}
|
53
|
+
find_on_github: Find us on GitHub
|
54
|
+
cookies: About cookies
|
55
|
+
image_collection:
|
56
|
+
previous: Previous
|
57
|
+
next: Next
|
58
|
+
|
59
|
+
pages:
|
60
|
+
homepage_content:
|
61
|
+
more_info: More info
|
62
|
+
dates_html: "%{start_date}–%{finish_date}"
|
63
|
+
committee_bios:
|
64
|
+
no_bios: No bios added.
|
65
|
+
committee_bio:
|
66
|
+
twitter: Twitter
|
67
|
+
facebook: Facebook
|
68
|
+
name_and_role: "%{name}, %{role}"
|
69
|
+
contact_buttons: Contact buttons
|
70
|
+
constitution:
|
71
|
+
title: Constitution
|
72
|
+
uploaded: Uploaded %{date}
|
73
|
+
download: Download
|
74
|
+
no_constitution: No constitution uploaded.
|
75
|
+
contact:
|
76
|
+
title: Contact
|
77
|
+
minutes:
|
78
|
+
title: Minutes
|
79
|
+
no_minutes: No minutes added.
|
80
|
+
minutes_entry:
|
81
|
+
minutes_html: Minutes for %{date}
|
82
|
+
download: Download
|
83
|
+
no_file: No file uploaded.
|
84
|
+
no_date: No date specified.
|
85
|
+
partner_societies:
|
86
|
+
title: Partner societies
|
87
|
+
no_societies: No societies added.
|
88
|
+
partner_society:
|
89
|
+
website: Website
|
90
|
+
email: Email
|
91
|
+
contact_buttons: Contact buttons
|
92
|
+
|
93
|
+
conferences:
|
94
|
+
primer_theme:
|
95
|
+
conferences:
|
96
|
+
index:
|
97
|
+
subscribe: Subscribe
|
98
|
+
no_conferences: No conferences have been added.
|
99
|
+
search: Search
|
100
|
+
no_matching_conferences: No matching conferences.
|
101
|
+
show:
|
102
|
+
dates_html: "%{start_date}–%{finish_date}"
|
103
|
+
submit_by_html: Submit abstracts by %{date}
|
104
|
+
submit_abstract: Submit an abstract
|
105
|
+
information: Information
|
106
|
+
presentations: Presentations
|
107
|
+
events: Events
|
108
|
+
subscribe: Subscribe
|
109
|
+
locations: "%{institutions}, %{cities}"
|
110
|
+
tabs:
|
111
|
+
information: Information
|
112
|
+
presentations: Presentations
|
113
|
+
events: Events
|
114
|
+
presentations:
|
115
|
+
all_presentation_types: All
|
116
|
+
results: Results
|
117
|
+
search: Search
|
118
|
+
no_matching_presentations: No matching presentations.
|
119
|
+
no_presentations: No presentations.
|
120
|
+
presentation_type:
|
121
|
+
results: Results
|
122
|
+
events:
|
123
|
+
search: Search
|
124
|
+
no_matching_events: No matching events.
|
125
|
+
no_events: No events.
|
126
|
+
event:
|
127
|
+
times_html: "%{start_time}–%{finish_time}"
|
128
|
+
information:
|
129
|
+
no_information: No information.
|
130
|
+
sponsors:
|
131
|
+
title: Sponsors
|
132
|
+
conference:
|
133
|
+
dates_html: "%{start_date}–%{finish_date}"
|
134
|
+
locations: "%{institutions}, %{cities}"
|
135
|
+
presentations:
|
136
|
+
show:
|
137
|
+
room_and_institution: "%{room}, %{institution}"
|
138
|
+
|
139
|
+
languages:
|
140
|
+
en-GB: British English
|
141
|
+
|
142
|
+
time:
|
143
|
+
formats:
|
144
|
+
time: "%H:%M"
|
145
|
+
|
146
|
+
date:
|
147
|
+
formats:
|
148
|
+
date: "%d"
|
149
|
+
day_and_month: "%d/%m"
|