spina-conferences-primer_theme 0.3.3 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/spina_conferences_primer_theme_manifest.js +1 -2
  3. data/app/assets/stylesheets/spina/conferences/primer_theme/application.sass +27 -0
  4. data/app/controllers/spina/conferences/primer_theme/conferences/application_controller.rb +16 -0
  5. data/app/controllers/spina/conferences/primer_theme/conferences/conferences_controller.rb +72 -0
  6. data/app/controllers/spina/conferences/primer_theme/conferences/presentations_controller.rb +42 -0
  7. data/app/controllers/spina/conferences/primer_theme/journal/application_controller.rb +13 -0
  8. data/app/controllers/spina/conferences/primer_theme/journal/articles_controller.rb +56 -0
  9. data/app/controllers/spina/conferences/primer_theme/journal/issues_controller.rb +48 -0
  10. data/app/helpers/spina/conferences/primer_theme/application_helper.rb +4 -4
  11. data/app/views/conferences_primer_theme/pages/embedded_form.html.haml +9 -0
  12. data/app/views/conferences_primer_theme/pages/homepage.html.haml +3 -0
  13. data/app/views/layouts/spina/conferences/primer_theme/application.html.haml +2 -1
  14. data/app/views/layouts/spina/conferences/primer_theme/{conferences.html.haml → conferences/conferences.html.haml} +0 -0
  15. data/app/views/layouts/spina/conferences/primer_theme/{presentations.html.haml → conferences/presentations.html.haml} +0 -0
  16. data/app/views/layouts/spina/conferences/primer_theme/journal/articles.html.haml +2 -0
  17. data/app/views/layouts/spina/conferences/primer_theme/journal/issues.html.haml +2 -0
  18. data/app/views/spina/application/_footer.html.haml +17 -15
  19. data/app/views/spina/application/_mobile_navigation_item.html.haml +13 -12
  20. data/app/views/spina/application/_mobile_navigation_items.html.haml +1 -1
  21. data/app/views/spina/application/_navigation.html.haml +11 -9
  22. data/app/views/spina/application/_navigation_item.html.haml +12 -11
  23. data/app/views/spina/conferences/primer_theme/conferences/{_conference.html.haml → conferences/_conference.html.haml} +0 -0
  24. data/app/views/spina/conferences/primer_theme/conferences/{_event.html.haml → conferences/_event.html.haml} +0 -0
  25. data/app/views/spina/conferences/primer_theme/conferences/{_events.html.haml → conferences/_events.html.haml} +0 -0
  26. data/app/views/spina/conferences/primer_theme/conferences/{_header.html.haml → conferences/_header.html.haml} +0 -0
  27. data/app/views/spina/conferences/primer_theme/conferences/{_institution.html.haml → conferences/_institution.html.haml} +0 -0
  28. data/app/views/spina/conferences/primer_theme/conferences/{_institution_logo.html.haml → conferences/_institution_logo.html.haml} +0 -0
  29. data/app/views/spina/conferences/primer_theme/conferences/{_presentation.html.haml → conferences/_presentation.html.haml} +0 -0
  30. data/app/views/spina/conferences/primer_theme/conferences/{_presentation_type.html.haml → conferences/_presentation_type.html.haml} +1 -1
  31. data/app/views/spina/conferences/primer_theme/conferences/{_presentations.html.haml → conferences/_presentations.html.haml} +2 -2
  32. data/app/views/spina/conferences/primer_theme/conferences/{_submission_flash.html.haml → conferences/_submission_flash.html.haml} +0 -0
  33. data/app/views/spina/conferences/primer_theme/conferences/{index.html.haml → conferences/index.html.haml} +0 -0
  34. data/app/views/spina/conferences/primer_theme/conferences/{show.html.haml → conferences/show.html.haml} +3 -3
  35. data/app/views/spina/conferences/primer_theme/{kaminari → conferences/kaminari}/_gap.html.haml +0 -0
  36. data/app/views/spina/conferences/primer_theme/{kaminari → conferences/kaminari}/_next_page.html.haml +0 -0
  37. data/app/views/spina/conferences/primer_theme/{kaminari → conferences/kaminari}/_page.html.haml +0 -0
  38. data/app/views/spina/conferences/primer_theme/{kaminari → conferences/kaminari}/_paginator.html.haml +0 -0
  39. data/app/views/spina/conferences/primer_theme/{kaminari → conferences/kaminari}/_prev_page.html.haml +0 -0
  40. data/app/views/spina/conferences/primer_theme/{presentations → conferences/presentations}/_abstract.html.haml +0 -0
  41. data/app/views/spina/conferences/primer_theme/{presentations → conferences/presentations}/_attachment.html.haml +0 -0
  42. data/app/views/spina/conferences/primer_theme/{presentations → conferences/presentations}/_attachments.html.haml +0 -0
  43. data/app/views/spina/conferences/primer_theme/{presentations → conferences/presentations}/show.html.haml +0 -0
  44. data/app/views/spina/conferences/primer_theme/journal/articles/_authorship.html.haml +6 -0
  45. data/app/views/spina/conferences/primer_theme/journal/articles/show.html.haml +50 -0
  46. data/app/views/spina/conferences/primer_theme/journal/issues/_article.html.haml +15 -0
  47. data/app/views/spina/conferences/primer_theme/journal/issues/_issue.html.haml +17 -0
  48. data/app/views/spina/conferences/primer_theme/journal/issues/_issue_cover.html.haml +6 -0
  49. data/app/views/spina/conferences/primer_theme/journal/issues/index.html.haml +10 -0
  50. data/app/views/spina/conferences/primer_theme/journal/issues/show.html.haml +18 -0
  51. data/config/initializers/themes/conferences_primer_theme.rb +19 -2
  52. data/config/locales/en.yml +75 -54
  53. data/config/routes.rb +7 -1
  54. data/lib/spina/conferences/primer_theme.rb +3 -4
  55. data/lib/spina/conferences/primer_theme/version.rb +1 -1
  56. metadata +53 -40
  57. data/app/controllers/spina/conferences/primer_theme/application_controller.rb +0 -14
  58. data/app/controllers/spina/conferences/primer_theme/conferences_controller.rb +0 -70
  59. data/app/controllers/spina/conferences/primer_theme/presentations_controller.rb +0 -40
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c5db3e3aed2f1b2f312c664bfd6e9de742890e29b0dff5fc3245c071f4c88bc
4
- data.tar.gz: dee4c28ccc657664dba6746b1d6c5e31db5239a3e8e5a9c52e3f91a18aef3560
3
+ metadata.gz: b0f415891da36813f4af78fc54b98daf3e34d1b22853995c7887944757055c05
4
+ data.tar.gz: 6f8414d707ea3695ef12e342bb514f04fa667a5fa6f427a3679e9c465992527d
5
5
  SHA512:
6
- metadata.gz: 06c17c49c6d8c9946d275492b1c6d190f127ec7b126cd2df3b946cc5e39d003c1ceb6d8a5b939139db94d296bfcc206cea8565b2a36ac4bfd552a364690b1aee
7
- data.tar.gz: 27e5f2fbadb9d634c368c6b3d876062ed96a162f63271397064fbea3f894ef97394550d6bd5fcf23a4f27433d721a2bcb4b049e164e402f8b0c9d84748fa6c02
6
+ metadata.gz: 62789ffa15b959d63a2a6d7cef661fcc3870d3437ca4e23de0dc55496a597a054bdab0de720ba067b59eeb7685108079717b6c7c335139298f3ddf784b03ddf2
7
+ data.tar.gz: bcbb08ea4e23752dc6bb8c7d90111701cd0c65ddd1139c549c42fae19b33b75c2391086578a9db9352fa536a4829ac3ddbf675d8b047907251dd3b5e8ee6323e
@@ -1,8 +1,7 @@
1
1
  //= link_directory ../stylesheets/spina/conferences/primer_theme .css
2
2
  //= link_directory ../javascripts/spina/conferences/primer_theme .js
3
3
  //= link spina_admin_conferences_manifest.js
4
-
5
- //= link_directory ../../../node_modules/@primer/css/fonts .woff
4
+ //= link spina_admin_journal_manifest.js
6
5
 
7
6
  //= link @github/details-dialog-element/dist/index.js
8
7
  //= link @github/include-fragment-element/dist/index.js
@@ -5,6 +5,28 @@
5
5
  @import "@primer/octicons"
6
6
  @import spina/conferences/primer_theme/custom_variables
7
7
 
8
+ @font-face
9
+ font-family: Inter
10
+ font-style: normal
11
+ font-weight: $font-weight-normal
12
+ src: local("Inter"), local("Inter-Regular"), asset-url("@primer/css/fonts/Inter-Regular.woff") format("woff")
13
+ font-display: swap
14
+
15
+
16
+ @font-face
17
+ font-family: Inter
18
+ font-style: normal
19
+ font-weight: $font-weight-semibold
20
+ src: local("Inter Medium"), local("Inter-Medium"), asset-url("@primer/css/fonts/Inter-Medium.woff") format("woff")
21
+ font-display: swap
22
+
23
+ @font-face
24
+ font-family: Inter
25
+ font-style: normal
26
+ font-weight: $font-weight-bold
27
+ src: local("Inter Bold"), local("Inter-Bold"), asset-url("@primer/css/fonts/Inter-Bold.woff") format("woff")
28
+ font-display: swap
29
+
8
30
  .admin
9
31
  @import "spina/admin_editing"
10
32
  #admin_bar
@@ -15,3 +37,8 @@
15
37
 
16
38
  address
17
39
  font-style: normal
40
+
41
+ #form_frame
42
+ border: none
43
+ width: 100%
44
+ height: 70vh
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spina
4
+ module Conferences
5
+ module PrimerTheme
6
+ module Conferences
7
+ # Base class from which controllers inherit
8
+ class ApplicationController < Spina::ApplicationController
9
+ def cookies_info
10
+ render partial: 'cookies'
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spina
4
+ module Conferences
5
+ module PrimerTheme
6
+ module Conferences
7
+ # User-facing controller for conferences, serving both html and ics
8
+ class ConferencesController < ApplicationController
9
+ before_action :set_conference, :set_tab, :set_presentation_type, :set_presentations, :set_breadcrumb, only: :show
10
+ before_action :set_metadata
11
+
12
+ def index
13
+ @conferences = Admin::Conferences::Conference.sorted.includes(institutions: [:logo])
14
+ respond_to do |format|
15
+ format.html
16
+ format.ics { render body: @conferences.to_ics }
17
+ end
18
+ end
19
+
20
+ def show
21
+ add_breadcrumb @conference.name
22
+ respond_to do |format|
23
+ format.html
24
+ format.ics { render body: @conference.to_ics }
25
+ end
26
+ end
27
+
28
+ private
29
+
30
+ def set_conference
31
+ @conference = Admin::Conferences::Conference.includes(:events, :institutions,
32
+ presentation_types: [:translations],
33
+ presentations: [session: [:room], presenters: [:institution]])
34
+ .find(params[:id])
35
+ @conference.view_context = view_context
36
+ rescue ActiveRecord::RecordNotFound
37
+ send_file Rails.root.join('public/404.html'), type: 'text/html; charset=utf-8', status: 404
38
+ end
39
+
40
+ def set_tab
41
+ @tab = params[:tab] || 'information'
42
+ end
43
+
44
+ def set_presentation_type
45
+ if params[:presentation_type].present?
46
+ @presentation_type = @conference.presentation_types
47
+ .includes(presentations: [session: [:room], presenters: [:institution]])
48
+ .find(params[:presentation_type])
49
+ end
50
+ end
51
+
52
+ def set_presentations
53
+ @presentations = if @presentation_type.present?
54
+ @presentation_type.presentations.page(params[:page]).per(15)
55
+ else
56
+ @conference.presentations.page(params[:page]).per(15)
57
+ end
58
+ end
59
+
60
+ def set_breadcrumb
61
+ add_breadcrumb Admin::Conferences::Conference.model_name.human.pluralize, frontend_conferences_path
62
+ end
63
+
64
+ def set_metadata
65
+ @title = @conference.present? ? @conference.name : Admin::Conferences::Conference.model_name.human(count: 0)
66
+ @description = @conference.present? && @conference.has_content?(:text) ? helpers.strip_tags(@conference.content(:text)) : ''
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spina
4
+ module Conferences
5
+ module PrimerTheme
6
+ module Conferences
7
+ # User-facing controller for presentations, serving both html and ics
8
+ class PresentationsController < ApplicationController
9
+ before_action :set_presentation, :set_conference, :set_breadcrumb
10
+
11
+ def show
12
+ add_breadcrumb @presentation.name
13
+ respond_to do |format|
14
+ format.html
15
+ format.ics { head :not_found }
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def set_presentation
22
+ @presentation = Admin::Conferences::Presentation.includes(:presenters, attachments: [attachment_type: [:translations]])
23
+ .find(params[:id])
24
+ rescue ActiveRecord::RecordNotFound
25
+ send_file Rails.root.join('public/404.html'), type: 'text/html; charset=utf-8', status: 404
26
+ end
27
+
28
+ def set_conference
29
+ @conference = Admin::Conferences::Conference.find(params[:conference_id]) if params[:conference_id].present?
30
+ end
31
+
32
+ def set_breadcrumb
33
+ return if @conference.blank?
34
+
35
+ add_breadcrumb Admin::Conferences::Conference.model_name.human.pluralize, frontend_conferences_path
36
+ add_breadcrumb @conference.name, frontend_conference_path(@conference)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spina
4
+ module Conferences
5
+ module PrimerTheme
6
+ module Journal
7
+ # Base class from which controllers related to the journal plugin inherit
8
+ class ApplicationController < Spina::ApplicationController
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spina
4
+ module Conferences
5
+ module PrimerTheme
6
+ module Journal
7
+ # User-facing controller for journal articles
8
+ class ArticlesController < ApplicationController
9
+ before_action :set_article, :set_issue, :set_journal, :set_breadcrumb, :set_metadata, :require_admin_for_invisible_article
10
+
11
+ def show
12
+ add_breadcrumb @article.title
13
+ end
14
+
15
+ private
16
+
17
+ def set_article
18
+ @article = Admin::Journal::Article.includes(affiliations: [:institution]).find(params[:id])
19
+ rescue ActiveRecord::RecordNotFound
20
+ send_file Rails.root.join('public/404.html'), type: 'text/html; charset=utf-8', status: 404
21
+ end
22
+
23
+ def set_issue
24
+ @issue = Admin::Journal::Issue.includes(:volume, :articles).find(params[:issue_id])
25
+ rescue ActiveRecord::RecordNotFound
26
+ send_file Rails.root.join('public/404.html'), type: 'text/html; charset=utf-8', status: 404
27
+ end
28
+
29
+ def set_journal
30
+ @journal = @issue.volume.journal
31
+ end
32
+
33
+ def set_breadcrumb
34
+ return if @issue.blank?
35
+
36
+ add_breadcrumb @journal.name, frontend_issues_path
37
+ add_breadcrumb Admin::Journal::Issue.model_name.human.pluralize, frontend_issues_path
38
+ add_breadcrumb t('spina.conferences.primer_theme.journal.volume_issue', volume_number: @issue.volume.number, issue_number: @issue.number),
39
+ frontend_issue_path(@issue.id)
40
+ end
41
+
42
+ def set_metadata
43
+ @title = @article.title
44
+ @description = @article.content(:abstract).try(:to_plain_text)
45
+ end
46
+
47
+ def require_admin_for_invisible_article
48
+ raise ActiveRecord::RecordNotFound unless current_spina_user.present? || @article.visible?
49
+ rescue ActiveRecord::RecordNotFound # TODO: proper 404 handler
50
+ send_file Rails.root.join('public/404.html'), type: 'text/html; charset=utf-8', status: 404
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spina
4
+ module Conferences
5
+ module PrimerTheme
6
+ module Journal
7
+ # User-facing controller for journal issues
8
+ class IssuesController < ApplicationController
9
+ before_action :set_journal
10
+ before_action :set_issue, :set_breadcrumb, only: :show
11
+ before_action :set_metadata
12
+
13
+ def index
14
+ # having multiple journals is not currently allowed anyway
15
+ @issues = Admin::Journal::Issue.sorted_desc
16
+ end
17
+
18
+ def show
19
+ @articles = current_spina_user.present? ? @issue.articles : @issue.articles.visible
20
+ add_breadcrumb t('spina.conferences.primer_theme.journal.volume_issue', volume_number: @issue.volume.number, issue_number: @issue.number)
21
+ end
22
+
23
+ private
24
+
25
+ def set_journal
26
+ @journal = Admin::Journal::Journal.instance
27
+ end
28
+
29
+ def set_issue
30
+ @issue = Admin::Journal::Issue.includes(:volume, :articles).find(params[:id])
31
+ rescue ActiveRecord::RecordNotFound
32
+ send_file Rails.root.join('public/404.html'), type: 'text/html; charset=utf-8', status: 404
33
+ end
34
+
35
+ def set_breadcrumb
36
+ add_breadcrumb @journal.name, frontend_issues_path
37
+ add_breadcrumb Admin::Journal::Issue.model_name.human.pluralize, frontend_issues_path
38
+ end
39
+
40
+ def set_metadata
41
+ @title = @journal.name
42
+ @description = ActionView::Base.full_sanitizer.sanitize(@journal.content(:description))
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -25,10 +25,10 @@ module Spina
25
25
 
26
26
  def calendar(name:)
27
27
  Icalendar::Calendar.new
28
- .tap { |calendar| calendar.x_wr_calname = name }
29
- .tap { |calendar| yield(calendar) }
30
- .tap(&:publish)
31
- .then(&:to_ical)
28
+ .tap { |calendar| calendar.x_wr_calname = name }
29
+ .tap { |calendar| yield(calendar) }
30
+ .tap(&:publish)
31
+ .then(&:to_ical)
32
32
  end
33
33
  end
34
34
  end
@@ -0,0 +1,9 @@
1
+ - cache current_page do
2
+ = render(Primer::HeadingComponent.new) { current_page.title }
3
+
4
+ - if content(:text).present?
5
+ = render(Primer::MarkdownComponent.new(mt: 4)) { content.html(:text) }
6
+
7
+ - if content(:embed_url).present?
8
+ = render Primer::BoxComponent.new(mt: 4, col: 12) do
9
+ %iframe#form_frame{ src: content(:embed_url), allowfullscreen: true }
@@ -27,5 +27,8 @@
27
27
  - if current_conference.present? && current_conference.finish_date >= Date.today
28
28
  = link_to t('.more_info'), frontend_conference_path(current_conference),
29
29
  class: %w[btn-mktg btn-large-mktg btn-primary-mktg f3 mt-4]
30
+ - else
31
+ = link_to t('.more_info'), Spina::Page.find_by(name: 'about').materialized_path,
32
+ class: %w[btn-mktg btn-large-mktg btn-primary-mktg f3 mt-4]
30
33
  %div{ style: 'text-shadow: 0 1px 1px rgba(var(--color-scale-black), 0.25), 0 1px 25px rgba(var(--color-scale-black), 0.75);' }
31
34
  = render(Primer::MarkdownComponent.new(my: 4)) { content(:text).try(:html_safe) }
@@ -25,7 +25,8 @@
25
25
  - if current_spina_user.present?
26
26
  .admin= render 'spina/shared/admin_bar'
27
27
  %header= render 'navigation'
28
- = render 'current_conference_alert'
28
+ - unless local_assigns[:hide_alert]
29
+ = render 'current_conference_alert'
29
30
  - if content_for? :flash
30
31
  .flash-messages= yield :flash
31
32
  %main
@@ -0,0 +1,2 @@
1
+ = render template: 'layouts/spina/conferences/primer_theme/application',
2
+ locals: { author: current_account.name, description: @description, title: @title, seo_title: @title, hide_alert: true }
@@ -0,0 +1,2 @@
1
+ = render template: 'layouts/spina/conferences/primer_theme/application',
2
+ locals: { author: current_account.name, description: @description, title: @title, seo_title: @title, hide_alert: true }
@@ -1,15 +1,17 @@
1
- = render Primer::FlexComponent.new(direction: [:column, nil, :row_reverse, nil], align_items: :center) do
2
- = render Primer::FlexComponent.new(direction: [:column, :row, nil, nil], mb: [4, nil, 0, nil], flex: :auto) do
3
- %ul.list-style-none.flex-auto.mb-2.mb-sm-0.mr-sm-2
4
- - footer_navigation_items.each do |item|
5
- - cache item do
6
- %li
7
- = render Primer::ButtonComponent.new(tag: :a, href: item.materialized_path, variant: :small) { item.menu_title }
8
- = render 'footer_content'
9
- - if current_account.has_content? :github_url
10
- = render Primer::ButtonComponent.new(tag: :a, href: current_account.content(:github_url), button_type: :outline, variant: :small,
11
- display: :inline_block) do
12
- = render Primer::OcticonComponent.new('mark-github')
13
- = t :'.find_on_github'
14
- = render(Primer::TextComponent.new(tag: :small, color: :text_secondary, mr: [nil, 2, nil, nil], font_size: 6, flex_grow: 0)) do
15
- = t :'.copyright', name: Spina::Account.first.name, year: Date.today.year
1
+ - cache [footer_navigation_items, current_account] do
2
+ = render Primer::FlexComponent.new(direction: [:column, nil, :row_reverse, nil], align_items: :center) do
3
+ = render Primer::FlexComponent.new(direction: [:column, :row, nil, nil], mb: [4, nil, 0, nil], flex: :auto) do
4
+ - cache footer_navigation_items do
5
+ %ul.list-style-none.flex-auto.mb-2.mb-sm-0.mr-sm-2
6
+ - footer_navigation_items.each do |item|
7
+ - cache item do
8
+ %li
9
+ = render Primer::ButtonComponent.new(tag: :a, href: item.materialized_path, variant: :small) { item.menu_title }
10
+ = render 'footer_content'
11
+ - if current_account.has_content? :github_url
12
+ = render Primer::ButtonComponent.new(tag: :a, href: current_account.content(:github_url), button_type: :outline, variant: :small,
13
+ display: :inline_block) do
14
+ = render Primer::OcticonComponent.new('mark-github')
15
+ = t :'.find_on_github'
16
+ = render(Primer::TextComponent.new(tag: :small, color: :text_secondary, mr: [nil, 2, nil, nil], font_size: 6, flex_grow: 0)) do
17
+ = t :'.copyright', name: current_account.name, year: Date.today.year
@@ -1,12 +1,13 @@
1
- .Header-item.mr-0.border-top.border-white-fade-15.flex-column.flex-items-stretch
2
- - if navigation_item.has_children?
3
- %details.details-reset
4
- %summary.Header-link.py-2
5
- = navigation_item.menu_title
6
- = render Primer::OcticonComponent.new('chevron-down')
7
- %ul.list-style-none
8
- - navigation_item.children.each do |child|
9
- %li= link_to child.menu_title, child.materialized_path, class: %w[d-block py-2 pl-3 border-top border-white-fade color-text-white]
10
- - elsif navigation_item.is_root?
11
- = link_to navigation_item.menu_title, navigation_item.materialized_path,
12
- class: %w[Header-link py-2]
1
+ - cache navigation_item do
2
+ .Header-item.mr-0.border-top.border-white-fade-15.flex-column.flex-items-stretch
3
+ - if navigation_item.has_children?
4
+ %details.details-reset
5
+ %summary.Header-link.py-2
6
+ = navigation_item.menu_title
7
+ = render Primer::OcticonComponent.new('chevron-down')
8
+ %ul.list-style-none
9
+ - navigation_item.children.each do |child|
10
+ %li= link_to child.menu_title, child.materialized_path, class: %w[d-block py-2 pl-3 border-top border-white-fade color-text-white]
11
+ - elsif navigation_item.is_root?
12
+ = link_to navigation_item.menu_title, navigation_item.materialized_path,
13
+ class: %w[Header-link py-2]
@@ -1,3 +1,3 @@
1
1
  %nav.d-flex.flex-column.flex-self-stretch
2
2
  = render partial: 'mobile_navigation_item', collection: main_navigation_items, cached: true, as: :navigation_item
3
- .Header-item.mr-0.border-top.border-white-fade-15= link_to 'Conferences', frontend_conferences_url, class: %w[Header-link py-2 py-lg-0]
3
+ .Header-item.mr-0.border-top.border-white-fade-15= link_to 'Conferences', frontend_conferences_path, class: %w[Header-link py-2 py-lg-0]