ama_layout 10.0.1 → 11.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +45 -0
- data/Dangerfile +19 -0
- data/ama_layout.gemspec +1 -1
- data/app/assets/javascripts/ama_layout/desktop/foundation-custom.js +1 -0
- data/app/helpers/ama_layout_breadcrumb_helper.rb +7 -1
- data/app/helpers/ama_layout_content_helper.rb +28 -17
- data/app/helpers/ama_layout_partial_helper.rb +11 -0
- data/app/views/ama_layout/{_alert.html.erb → v2/_alert.html.erb} +0 -0
- data/app/views/ama_layout/{_applogo.html.erb → v2/_applogo.html.erb} +0 -0
- data/app/views/ama_layout/{_breadcrumbs.html.erb → v2/_breadcrumbs.html.erb} +0 -0
- data/app/views/ama_layout/{_custom_nav_links.html.erb → v2/_custom_nav_links.html.erb} +0 -0
- data/app/views/ama_layout/{_custom_sidebar.html.erb → v2/_custom_sidebar.html.erb} +0 -0
- data/app/views/ama_layout/v2/_font.html.erb +1 -0
- data/app/views/ama_layout/v2/_font_awesome_pro_kit.html.erb +3 -0
- data/app/views/ama_layout/{_footer.html.erb → v2/_footer.html.erb} +0 -0
- data/app/views/ama_layout/{_main_nav_item.html.erb → v2/_main_nav_item.html.erb} +0 -0
- data/app/views/ama_layout/{_main_top_nav_item.html.erb → v2/_main_top_nav_item.html.erb} +0 -0
- data/app/views/ama_layout/{_manage_credit_card_link.html.erb → v2/_member_links.html.erb} +3 -0
- data/app/views/ama_layout/{_mobile_links.html.erb → v2/_mobile_links.html.erb} +0 -0
- data/app/views/ama_layout/{_mobile_notification_icon.html.erb → v2/_mobile_notification_icon.html.erb} +0 -0
- data/app/views/ama_layout/{_notice.html.erb → v2/_notice.html.erb} +0 -0
- data/app/views/ama_layout/{_notices.html.erb → v2/_notices.html.erb} +0 -0
- data/app/views/ama_layout/{_notification.html.erb → v2/_notification.html.erb} +0 -0
- data/app/views/ama_layout/{_notification_icon.html.erb → v2/_notification_icon.html.erb} +0 -0
- data/app/views/ama_layout/{_notification_sidebar.html.erb → v2/_notification_sidebar.html.erb} +1 -1
- data/app/views/ama_layout/{_sidebar.html.erb → v2/_sidebar.html.erb} +0 -0
- data/app/views/ama_layout/{_sign_out_link.html.erb → v2/_sign_out_link.html.erb} +0 -0
- data/app/views/ama_layout/{_siteheader.html.erb → v2/_siteheader.html.erb} +0 -0
- data/app/views/ama_layout/{_sub_nav.html.erb → v2/_sub_nav.html.erb} +0 -0
- data/app/views/ama_layout/{_sub_nav_item.html.erb → v2/_sub_nav_item.html.erb} +0 -0
- data/app/views/ama_layout/{_success.html.erb → v2/_success.html.erb} +0 -0
- data/app/views/ama_layout/{_top_nav.html.erb → v2/_top_nav.html.erb} +2 -5
- data/app/views/ama_layout/{_top_sub_nav.html.erb → v2/_top_sub_nav.html.erb} +0 -0
- data/app/views/ama_layout/{_top_sub_nav_item.html.erb → v2/_top_sub_nav_item.html.erb} +0 -0
- data/app/views/ama_layout/v3/_alert.html.erb +5 -0
- data/app/views/ama_layout/v3/_applogo.html.erb +3 -0
- data/app/views/ama_layout/v3/_breadcrumbs.html.erb +3 -0
- data/app/views/ama_layout/v3/_custom_nav_links.html.erb +0 -0
- data/app/views/ama_layout/v3/_custom_sidebar.html.erb +1 -0
- data/app/views/ama_layout/v3/_font.html.erb +2 -0
- data/app/views/ama_layout/v3/_font_awesome_pro_kit.html.erb +3 -0
- data/app/views/ama_layout/v3/_footer.html.erb +69 -0
- data/app/views/ama_layout/v3/_main_nav_item.html.erb +6 -0
- data/app/views/ama_layout/v3/_main_top_nav_item.html.erb +4 -0
- data/app/views/ama_layout/v3/_member_links.html.erb +6 -0
- data/app/views/ama_layout/v3/_mobile_links.html.erb +19 -0
- data/app/views/ama_layout/v3/_mobile_notification_icon.html.erb +4 -0
- data/app/views/ama_layout/v3/_notice.html.erb +5 -0
- data/app/views/ama_layout/v3/_notices.html.erb +3 -0
- data/app/views/ama_layout/v3/_notification.html.erb +10 -0
- data/app/views/ama_layout/v3/_notification_icon.html.erb +6 -0
- data/app/views/ama_layout/v3/_notification_sidebar.html.erb +22 -0
- data/app/views/ama_layout/v3/_sidebar.html.erb +8 -0
- data/app/views/ama_layout/v3/_sign_out_link.html.erb +3 -0
- data/app/views/ama_layout/v3/_siteheader.html.erb +37 -0
- data/app/views/ama_layout/v3/_sub_nav.html.erb +3 -0
- data/app/views/ama_layout/v3/_sub_nav_item.html.erb +3 -0
- data/app/views/ama_layout/v3/_success.html.erb +5 -0
- data/app/views/ama_layout/v3/_top_nav.html.erb +16 -0
- data/app/views/ama_layout/v3/_top_sub_nav.html.erb +3 -0
- data/app/views/ama_layout/v3/_top_sub_nav_item.html.erb +3 -0
- data/config.ru +1 -1
- data/lib/ama_layout/ama_layout_view.rb +6 -0
- data/lib/ama_layout/decorators/agent/navigation_decorator.rb +5 -3
- data/lib/ama_layout/decorators/navigation_decorator.rb +9 -9
- data/lib/ama_layout/draper_replacement.rb +6 -0
- data/lib/ama_layout/moneris.rb +10 -1
- data/lib/ama_layout/moneris/{textbox.txt → v2/textbox.txt} +0 -0
- data/lib/ama_layout/moneris/v3/textbox.txt +62 -0
- data/lib/ama_layout/navigation.yml +2 -2
- data/lib/ama_layout/version.rb +1 -1
- data/spec/ama_layout/decorators/moneris_decorator_spec.rb +10 -7
- data/spec/ama_layout/decorators/navigation_decorator_spec.rb +8 -7
- data/spec/ama_layout/moneris_spec.rb +22 -3
- data/spec/helpers/ama_layout_content_helper_spec.rb +64 -62
- data/spec/spec_helper.rb +3 -1
- metadata +65 -33
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03e53085e8cb2eed558a7102d1c76d075f1fad6220c91f686df0905d4e3d4094
|
4
|
+
data.tar.gz: fd44ddfbb30f32d000f4871281558588f870542159639e44c5d3263bc446d75d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55aaeaf994dc4421c7d6b3b821561f9b7679f1f9d06096ca4446a7908aea46a100f11aac1631091625c08e1afa133c30cd16f973e4272f6bda109c2128da4669
|
7
|
+
data.tar.gz: 492f0b0d4347e47dcc4b8b2d4fbd5f1a262bcdb1493dd182c850558d6340dd9c342a211e2fc2a177da8c590371a19df5d8076b20dc37c19f4a9ee32d1ddbb30f
|
@@ -0,0 +1,45 @@
|
|
1
|
+
name: CI
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
branches:
|
5
|
+
- master
|
6
|
+
pull_request:
|
7
|
+
branches:
|
8
|
+
- master
|
9
|
+
jobs:
|
10
|
+
build:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
services:
|
13
|
+
redis:
|
14
|
+
image: redis
|
15
|
+
ports:
|
16
|
+
- '6379:6379'
|
17
|
+
options: --entrypoint redis-server
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v2
|
20
|
+
- name: Use Node.js 10.13.0
|
21
|
+
uses: actions/setup-node@v1
|
22
|
+
with:
|
23
|
+
node-version: '10.13.0'
|
24
|
+
- name: Set up Ruby 2.5
|
25
|
+
uses: ruby/setup-ruby@v1
|
26
|
+
with:
|
27
|
+
ruby-version: '2.5.1'
|
28
|
+
bundler: '1.17.3'
|
29
|
+
- name: Install Bundler
|
30
|
+
run: gem install bundler -v '~> 1.17.3'
|
31
|
+
- name: Install Danger
|
32
|
+
run: gem install danger -v 7.0.1
|
33
|
+
- name: Execute Danger
|
34
|
+
env:
|
35
|
+
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
36
|
+
run: danger
|
37
|
+
- name: Install sqlite3
|
38
|
+
run: sudo apt-get install libsqlite3-dev
|
39
|
+
- name: Install Ruby Dependencies
|
40
|
+
run: |
|
41
|
+
bundle _1.17.3_ --version
|
42
|
+
bundle _1.17.3_ config set path 'vendor/bundle'
|
43
|
+
bundle _1.17.3_ install --jobs 4 --retry 3
|
44
|
+
- name: Run Tests
|
45
|
+
run: bundle _1.17.3_ exec rake
|
data/Dangerfile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
unless github.pr_author.include?('dependabot')
|
4
|
+
# Link to any relevant VSTS tickets(old or new domain) or OpsGenie alerts
|
5
|
+
urls = %w[
|
6
|
+
https://amaabca.visualstudio.com
|
7
|
+
https://dev.azure.com
|
8
|
+
https://app.opsgenie.com
|
9
|
+
]
|
10
|
+
unless urls.any? { |url| github.pr_body.include?(url) }
|
11
|
+
fail 'Please provide a VSTS, ADO link or OPSGENIE link in the Pull Request description 💩'
|
12
|
+
end
|
13
|
+
|
14
|
+
# Do not let 'binding.pry' get into master by accident
|
15
|
+
fail 'A binding.pry was committed 💩' if system 'grep -r binding.pry . --exclude=Dangerfile --exclude-dir=vendor'
|
16
|
+
|
17
|
+
# Do not let 'debugger' get into master by accident
|
18
|
+
fail 'A debugger was committed 💩' if system 'grep -r debugger . --exclude=Dangerfile --exclude-dir=vendor'
|
19
|
+
end
|
data/ama_layout.gemspec
CHANGED
@@ -38,7 +38,7 @@ Gem::Specification.new do |spec|
|
|
38
38
|
spec.add_dependency 'foundation-rails', '<= 6.4.3.0'
|
39
39
|
spec.add_dependency 'rails', '>= 4.2'
|
40
40
|
spec.add_dependency 'redis-rails'
|
41
|
-
spec.add_development_dependency 'bundler'
|
41
|
+
spec.add_development_dependency 'bundler'
|
42
42
|
spec.add_development_dependency 'combustion'
|
43
43
|
spec.add_development_dependency 'factory_bot'
|
44
44
|
spec.add_development_dependency 'pry'
|
@@ -8,6 +8,7 @@
|
|
8
8
|
//= require foundation.util.timer.js
|
9
9
|
//= require foundation.util.triggers.js
|
10
10
|
//= require foundation.abide.js
|
11
|
+
//= require foundation.accordionMenu.js
|
11
12
|
//= require foundation.accordion.js
|
12
13
|
//= require foundation.drilldown.js
|
13
14
|
//= require foundation.dropdown.js
|
@@ -1,5 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'ama_layout_partial_helper'
|
4
|
+
|
1
5
|
module AmaLayoutBreadcrumbHelper
|
6
|
+
include AmaLayoutPartialHelper
|
7
|
+
|
2
8
|
def show_breadcrumbs
|
3
|
-
render partial: '
|
9
|
+
render partial: ama_layout_partial('breadcrumbs')
|
4
10
|
end
|
5
11
|
end
|
@@ -1,10 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'ama_layout_partial_helper'
|
4
|
+
|
1
5
|
module AmaLayoutContentHelper
|
6
|
+
include AmaLayoutPartialHelper
|
7
|
+
|
2
8
|
def greeting
|
3
|
-
cookies[
|
9
|
+
cookies['logged_in_meta']
|
4
10
|
end
|
5
11
|
|
6
12
|
def utm_source
|
7
|
-
Rails.configuration.site_name.downcase.gsub(/\W/,
|
13
|
+
Rails.configuration.site_name.downcase.gsub(/\W/, '')
|
8
14
|
end
|
9
15
|
|
10
16
|
def active_section(nav_item)
|
@@ -14,47 +20,52 @@ module AmaLayoutContentHelper
|
|
14
20
|
end
|
15
21
|
|
16
22
|
def active_page(*path)
|
17
|
-
|
23
|
+
'activepage' if path.include?(request.fullpath) || path.include?(request.url)
|
18
24
|
end
|
19
25
|
|
20
26
|
def active_domain(domain)
|
21
|
-
|
27
|
+
'active' if request.url.include?(domain)
|
22
28
|
end
|
23
29
|
|
24
30
|
def renew_or_join_path(logged_in)
|
25
|
-
return
|
26
|
-
|
31
|
+
return '' if logged_in
|
32
|
+
|
33
|
+
link_to('Become a Member', 'http://www.ama.ab.ca/membership/join-ama-online', target: '_blank')
|
27
34
|
end
|
28
35
|
|
29
36
|
def gift_or_pricing_path(logged_in)
|
30
|
-
return
|
31
|
-
|
37
|
+
return '' if logged_in
|
38
|
+
|
39
|
+
link_to('Gift Membership', 'http://www.ama.ab.ca/membership-rewards/ama-gift-membership', target: '_blank')
|
32
40
|
end
|
33
41
|
|
34
42
|
def dropdown_menu(logged_in, greeting)
|
35
|
-
return
|
36
|
-
|
43
|
+
return '' unless logged_in
|
44
|
+
|
45
|
+
render partial: ama_layout_partial('dropdown_menu'), locals: { logged_in: logged_in, greeting: greeting }
|
37
46
|
end
|
38
47
|
|
39
48
|
def tablet_menu(logged_in, greeting)
|
40
|
-
return
|
41
|
-
|
49
|
+
return '' unless logged_in
|
50
|
+
|
51
|
+
render partial: ama_layout_partial('tablet_menu'), locals: { logged_in: logged_in, greeting: greeting }
|
42
52
|
end
|
43
53
|
|
44
54
|
def tablet_signout(logged_in)
|
45
|
-
return
|
46
|
-
|
55
|
+
return '' unless logged_in
|
56
|
+
|
57
|
+
render ama_layout_partial('tablet_signout')
|
47
58
|
end
|
48
59
|
|
49
60
|
def notice(notice)
|
50
|
-
render partial:
|
61
|
+
render partial: ama_layout_partial('notice'), locals: { message: notice } if notice
|
51
62
|
end
|
52
63
|
|
53
64
|
def alert(alert)
|
54
|
-
render partial:
|
65
|
+
render partial: ama_layout_partial('alert'), locals: { message: alert } if alert
|
55
66
|
end
|
56
67
|
|
57
68
|
def success_message(success)
|
58
|
-
render partial:
|
69
|
+
render partial: ama_layout_partial('success'), locals: { message: success } if success
|
59
70
|
end
|
60
71
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AmaLayoutPartialHelper
|
4
|
+
def ama_layout_partial(partial)
|
5
|
+
"ama_layout/#{ama_layout_partial_version}/#{partial}"
|
6
|
+
end
|
7
|
+
|
8
|
+
def ama_layout_partial_version
|
9
|
+
@ama_layout_partial_version ||= Rails.configuration.stylesheet_resolver.version
|
10
|
+
end
|
11
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
<link href="//fonts.googleapis.com/css?family=Open+Sans:400italic,400,700" rel="stylesheet" type="text/css">
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/app/views/ama_layout/{_notification_sidebar.html.erb → v2/_notification_sidebar.html.erb}
RENAMED
@@ -8,7 +8,7 @@
|
|
8
8
|
<div class="row column">
|
9
9
|
<%= navigation.notifications_heading %>
|
10
10
|
</div>
|
11
|
-
<%= render partial: '
|
11
|
+
<%= render partial: ama_layout_partial('notification'), collection: notifications %>
|
12
12
|
<div class="row column">
|
13
13
|
<p class="mt1">Did You Know?</p>
|
14
14
|
<div class="section-content">
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<%= link_to navigation.display_name_text, '#', class: 'link--no-underline' %>
|
3
3
|
<ul class="submenu menu vertical">
|
4
4
|
<li class="bold">
|
5
|
-
<%= link_to 'Account Settings', "#{Rails.configuration.gatekeeper_site}/
|
5
|
+
<%= link_to 'Account Settings', "#{Rails.configuration.gatekeeper_site}/account_settings" %>
|
6
6
|
</li>
|
7
7
|
<li class="small-text">
|
8
8
|
<%= link_to 'Change Email/Password', "#{Rails.configuration.gatekeeper_site}/user/edit" %>
|
@@ -10,10 +10,7 @@
|
|
10
10
|
<li class="small-text">
|
11
11
|
<%= link_to 'Email Subscriptions', "#{Rails.configuration.youraccount_site}/subscriptions" %>
|
12
12
|
</li>
|
13
|
-
|
14
|
-
<%= link_to 'Update Address', "#{Rails.configuration.youraccount_site}/membership_update/new" %>
|
15
|
-
</li>
|
16
|
-
<%= navigation.manage_credit_card_link %>
|
13
|
+
<%= navigation.member_links %>
|
17
14
|
<%= navigation.sign_out_link %>
|
18
15
|
</ul>
|
19
16
|
</li>
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= navigation.sidebar %>
|
@@ -0,0 +1,69 @@
|
|
1
|
+
<footer class="page-footer">
|
2
|
+
<div class="page-footer__container">
|
3
|
+
<div class="page-footer__col">
|
4
|
+
<div class="page-footer__col-header">
|
5
|
+
About Us
|
6
|
+
</div>
|
7
|
+
<ul class="link-list">
|
8
|
+
<li class="link-list__item">
|
9
|
+
<%= link_to "About AMA", "https://ama.ab.ca/about-ama/", class: "link-list__link--white" %>
|
10
|
+
</li>
|
11
|
+
<li class="link-list__item">
|
12
|
+
<%= link_to "Careers", "http://careers.ama.ab.ca/", class: "link-list__link--white" %>
|
13
|
+
</li>
|
14
|
+
<li class="link-list__item">
|
15
|
+
<%= link_to "Media Inquiries", "http://news.ama.ab.ca/", class: "link-list__link--white" %>
|
16
|
+
</li>
|
17
|
+
</ul>
|
18
|
+
</div>
|
19
|
+
<div class="page-footer__col">
|
20
|
+
<div class="page-footer__col-header">
|
21
|
+
Get in Touch
|
22
|
+
</div>
|
23
|
+
<ul class="link-list">
|
24
|
+
<li class="link-list__item">
|
25
|
+
<%= link_to "Contact Us", "https://ama.ab.ca/about-ama/contact-us/", class: "link-list__link--white" %>
|
26
|
+
</li>
|
27
|
+
<li class="link-list__item">
|
28
|
+
<%= link_to "Locations", "https://ama.ab.ca/centre-locations-hours/", class: "link-list__link--white" %>
|
29
|
+
</li>
|
30
|
+
<li class="link-list__item">
|
31
|
+
<%= link_to "Social Media", "https://ama.ab.ca/about-ama/social-media/", class: "link-list__link--white" %>
|
32
|
+
</li>
|
33
|
+
</ul>
|
34
|
+
</div>
|
35
|
+
<div class="page-footer__col">
|
36
|
+
<div class="page-footer__col-header">
|
37
|
+
Quick Links
|
38
|
+
</div>
|
39
|
+
<ul class="link-list">
|
40
|
+
<li class="link-list__item">
|
41
|
+
<%= link_to "Blog", "https://ama.ab.ca/blog/", class: "link-list__link--white" %>
|
42
|
+
</li>
|
43
|
+
<li class="link-list__item">
|
44
|
+
<%= link_to "Knowledge Base", "https://ama.ab.ca/knowledge-base/", class: "link-list__link--white" %>
|
45
|
+
</li>
|
46
|
+
<li class="link-list__item">
|
47
|
+
<%= link_to "Email Newsletters", "https://youraccount.ama.ab.ca/subscriptions", class: "link-list__link--white" %>
|
48
|
+
</li>
|
49
|
+
<li class="link-list__item">
|
50
|
+
<%= link_to "Site Map", "https://ama.ab.ca/about-ama/site-map/", class: "link-list__link--white" %>
|
51
|
+
</li>
|
52
|
+
</ul>
|
53
|
+
</div>
|
54
|
+
<div class="page-footer__col">
|
55
|
+
<div class="page-footer__col-header">
|
56
|
+
Interesting Fine Print
|
57
|
+
</div>
|
58
|
+
<ul class="link-list">
|
59
|
+
<li class="link-list__item">
|
60
|
+
<%= link_to "Privacy Policy", "https://ama.ab.ca/about-ama/privacy-policy/", class: "link-list__link--white" %>
|
61
|
+
</li>
|
62
|
+
<li class="link-list__item">
|
63
|
+
<%= link_to "Terms & Conditions", "https://ama.ab.ca/about-ama/terms-conditions/", class: "link-list__link--white" %>
|
64
|
+
</li>
|
65
|
+
</ul>
|
66
|
+
</div>
|
67
|
+
</div>
|
68
|
+
<div class="racetrack"></div>
|
69
|
+
</footer>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<div class="m-side-nav__content off-canvas position-left" id="offCanvasLeft" data-off-canvas>
|
2
|
+
<ul class="m-side-nav__list vertical menu drilldown" data-drilldown>
|
3
|
+
<li class="side-nav__item">
|
4
|
+
<%= link_to 'Sign In', "#{Rails.configuration.gatekeeper_site}/login", class: 'side-nav__link' %>
|
5
|
+
</li>
|
6
|
+
<li class="m-side-nav__item">
|
7
|
+
<%= link_to 'AMA Website', Rails.configuration.amaabca_site, class: 'm-side-nav__link' %>
|
8
|
+
</li>
|
9
|
+
<li class="m-side-nav__item">
|
10
|
+
<%= link_to 'AMA Road Reports', 'https://roadreports.ama.ab.ca', class: 'm-side-nav__link' %>
|
11
|
+
</li>
|
12
|
+
<li class="m-side-nav__item">
|
13
|
+
<%= link_to 'Help', "#{Rails.configuration.amaabca_site}/knowledge-base/articles", class: 'm-side-nav__link' %>
|
14
|
+
</li>
|
15
|
+
<li class="m-side-nav__item">
|
16
|
+
<%= link_to 'Contact Us', "#{Rails.configuration.amaabca_site}/membership/contact-us--centre-locations-hours-and-contact-information", class: 'm-side-nav__link' %>
|
17
|
+
</li>
|
18
|
+
</ul>
|
19
|
+
</div>
|