ama_layout 10.2.0 → 11.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +45 -0
  3. data/Dangerfile +19 -0
  4. data/ama_layout.gemspec +1 -1
  5. data/app/assets/javascripts/ama_layout/desktop/foundation-custom.js +1 -0
  6. data/app/helpers/ama_layout_breadcrumb_helper.rb +7 -1
  7. data/app/helpers/ama_layout_content_helper.rb +28 -17
  8. data/app/helpers/ama_layout_partial_helper.rb +11 -0
  9. data/app/views/ama_layout/{_alert.html.erb → v2/_alert.html.erb} +0 -0
  10. data/app/views/ama_layout/{_applogo.html.erb → v2/_applogo.html.erb} +0 -0
  11. data/app/views/ama_layout/{_breadcrumbs.html.erb → v2/_breadcrumbs.html.erb} +0 -0
  12. data/app/views/ama_layout/{_custom_nav_links.html.erb → v2/_custom_nav_links.html.erb} +0 -0
  13. data/app/views/ama_layout/{_custom_sidebar.html.erb → v2/_custom_sidebar.html.erb} +0 -0
  14. data/app/views/ama_layout/v2/_font.html.erb +1 -0
  15. data/app/views/ama_layout/{_footer.html.erb → v2/_footer.html.erb} +0 -0
  16. data/app/views/ama_layout/{_main_nav_item.html.erb → v2/_main_nav_item.html.erb} +0 -0
  17. data/app/views/ama_layout/{_main_top_nav_item.html.erb → v2/_main_top_nav_item.html.erb} +0 -0
  18. data/app/views/ama_layout/{_member_links.html.erb → v2/_member_links.html.erb} +0 -0
  19. data/app/views/ama_layout/{_mobile_links.html.erb → v2/_mobile_links.html.erb} +0 -0
  20. data/app/views/ama_layout/{_mobile_notification_icon.html.erb → v2/_mobile_notification_icon.html.erb} +0 -0
  21. data/app/views/ama_layout/{_notice.html.erb → v2/_notice.html.erb} +0 -0
  22. data/app/views/ama_layout/{_notices.html.erb → v2/_notices.html.erb} +0 -0
  23. data/app/views/ama_layout/{_notification.html.erb → v2/_notification.html.erb} +0 -0
  24. data/app/views/ama_layout/{_notification_icon.html.erb → v2/_notification_icon.html.erb} +0 -0
  25. data/app/views/ama_layout/{_notification_sidebar.html.erb → v2/_notification_sidebar.html.erb} +1 -1
  26. data/app/views/ama_layout/{_sidebar.html.erb → v2/_sidebar.html.erb} +0 -0
  27. data/app/views/ama_layout/{_sign_out_link.html.erb → v2/_sign_out_link.html.erb} +0 -0
  28. data/app/views/ama_layout/{_siteheader.html.erb → v2/_siteheader.html.erb} +0 -0
  29. data/app/views/ama_layout/{_sub_nav.html.erb → v2/_sub_nav.html.erb} +0 -0
  30. data/app/views/ama_layout/{_sub_nav_item.html.erb → v2/_sub_nav_item.html.erb} +0 -0
  31. data/app/views/ama_layout/{_success.html.erb → v2/_success.html.erb} +0 -0
  32. data/app/views/ama_layout/{_top_nav.html.erb → v2/_top_nav.html.erb} +0 -0
  33. data/app/views/ama_layout/{_top_sub_nav.html.erb → v2/_top_sub_nav.html.erb} +0 -0
  34. data/app/views/ama_layout/{_top_sub_nav_item.html.erb → v2/_top_sub_nav_item.html.erb} +0 -0
  35. data/app/views/ama_layout/v3/_alert.html.erb +5 -0
  36. data/app/views/ama_layout/v3/_applogo.html.erb +3 -0
  37. data/app/views/ama_layout/v3/_breadcrumbs.html.erb +3 -0
  38. data/app/views/ama_layout/v3/_custom_nav_links.html.erb +0 -0
  39. data/app/views/ama_layout/v3/_custom_sidebar.html.erb +1 -0
  40. data/app/views/ama_layout/v3/_font.html.erb +2 -0
  41. data/app/views/ama_layout/v3/_footer.html.erb +69 -0
  42. data/app/views/ama_layout/v3/_main_nav_item.html.erb +6 -0
  43. data/app/views/ama_layout/v3/_main_top_nav_item.html.erb +4 -0
  44. data/app/views/ama_layout/v3/_member_links.html.erb +6 -0
  45. data/app/views/ama_layout/v3/_mobile_links.html.erb +22 -0
  46. data/app/views/ama_layout/v3/_mobile_notification_icon.html.erb +4 -0
  47. data/app/views/ama_layout/v3/_notice.html.erb +5 -0
  48. data/app/views/ama_layout/v3/_notices.html.erb +3 -0
  49. data/app/views/ama_layout/v3/_notification.html.erb +10 -0
  50. data/app/views/ama_layout/v3/_notification_icon.html.erb +6 -0
  51. data/app/views/ama_layout/v3/_notification_sidebar.html.erb +22 -0
  52. data/app/views/ama_layout/v3/_sidebar.html.erb +8 -0
  53. data/app/views/ama_layout/v3/_sign_out_link.html.erb +3 -0
  54. data/app/views/ama_layout/v3/_siteheader.html.erb +37 -0
  55. data/app/views/ama_layout/v3/_sub_nav.html.erb +3 -0
  56. data/app/views/ama_layout/v3/_sub_nav_item.html.erb +3 -0
  57. data/app/views/ama_layout/v3/_success.html.erb +5 -0
  58. data/app/views/ama_layout/v3/_top_nav.html.erb +16 -0
  59. data/app/views/ama_layout/v3/_top_sub_nav.html.erb +3 -0
  60. data/app/views/ama_layout/v3/_top_sub_nav_item.html.erb +3 -0
  61. data/config.ru +1 -1
  62. data/lib/ama_layout/ama_layout_view.rb +6 -0
  63. data/lib/ama_layout/decorators/agent/navigation_decorator.rb +5 -3
  64. data/lib/ama_layout/decorators/navigation_decorator.rb +8 -8
  65. data/lib/ama_layout/draper_replacement.rb +6 -0
  66. data/lib/ama_layout/moneris.rb +10 -1
  67. data/lib/ama_layout/moneris/{textbox.txt → v2/textbox.txt} +0 -0
  68. data/lib/ama_layout/moneris/v3/textbox.txt +58 -0
  69. data/lib/ama_layout/version.rb +1 -1
  70. data/spec/ama_layout/decorators/moneris_decorator_spec.rb +4 -4
  71. data/spec/ama_layout/moneris_spec.rb +22 -3
  72. data/spec/helpers/ama_layout_content_helper_spec.rb +64 -62
  73. data/spec/spec_helper.rb +3 -1
  74. metadata +68 -37
  75. data/.travis.yml +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73978f07a8d61a3fba94acf5992e67550c0f2cf5de1cc631c8c77a683c57073d
4
- data.tar.gz: e3a091b1fe12892692030978d6177b82b2f97e7b9d74dd194d6ef16bf4393dd8
3
+ metadata.gz: 2380a06aed2f7aa03a93d129962439dcb40e36dbd29870b356b4308b8ef8d1df
4
+ data.tar.gz: 181133840c55714b18ed396c428e88b093cb297b394513e66023a8aab0e5553b
5
5
  SHA512:
6
- metadata.gz: 72527275f72c009638c64245e007afaa0d09ba60a290e7443ef705d7c0c50ca941ef221120068d2541a822fd0247669adeb35a0e5a9b582eb63cc65473c9bef2
7
- data.tar.gz: 14ad982d3feebf69f7d0c4797f26c5b10a8dc24d31076f863248adf785fab7e0d0192c86e14f5e49100243164fb28c4c9f7f609ac355397fd3dc9b77d77dfdb7
6
+ metadata.gz: 98282959ce339f20eacebc6a175b811ffa992e08f5ebdcd64dbd680c9abc43a11f006b56eda955fcc93aa0ebedcc253f9132fe0f39c3f4869b21713d4031b93a
7
+ data.tar.gz: c29d771ba792377d347f70b2aad220be5860f0ab7c6d278698e1fb4142137e2f2786c777bdeb2c7b5ae51d8d3278916de04acb76cdf2f0b1ce0b069347533859
@@ -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
@@ -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
@@ -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', '~> 1.17.3'
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: 'ama_layout/breadcrumbs'
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["logged_in_meta"]
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
- "activepage" if path.include?(request.fullpath) || path.include?(request.url)
23
+ 'activepage' if path.include?(request.fullpath) || path.include?(request.url)
18
24
  end
19
25
 
20
26
  def active_domain(domain)
21
- "active" if request.url.include?(domain)
27
+ 'active' if request.url.include?(domain)
22
28
  end
23
29
 
24
30
  def renew_or_join_path(logged_in)
25
- return "" if logged_in
26
- link_to("Become a Member", "http://www.ama.ab.ca/membership/join-ama-online", target: "_blank")
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 "" if logged_in
31
- link_to("Gift Membership", "http://www.ama.ab.ca/membership-rewards/ama-gift-membership", target: "_blank")
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 "" unless logged_in
36
- render partial: "ama_layout/dropdown_menu", locals: { logged_in: logged_in, greeting: greeting }
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 "" unless logged_in
41
- render partial: "ama_layout/tablet_menu", locals: { logged_in: logged_in, greeting: greeting }
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 "" unless logged_in
46
- render "ama_layout/tablet_signout"
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: "ama_layout/notice", locals: { message: notice } if notice
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: "ama_layout/alert", locals: { message: alert } if alert
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: "ama_layout/success", locals: { message: success } if success
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
@@ -0,0 +1 @@
1
+ <link href="//fonts.googleapis.com/css?family=Open+Sans:400italic,400,700" rel="stylesheet" type="text/css">
@@ -8,7 +8,7 @@
8
8
  <div class="row column">
9
9
  <%= navigation.notifications_heading %>
10
10
  </div>
11
- <%= render partial: 'ama_layout/notification', collection: notifications %>
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">
@@ -0,0 +1,5 @@
1
+ <div class="row">
2
+ <div class="large-12">
3
+ <div class="error_notification"><span><%= message.html_safe %></span></div>
4
+ </div>
5
+ </div>
@@ -0,0 +1,3 @@
1
+ <section class="grid-12">
2
+ <h2><%= link_to(Rails.configuration.site_name, root_path(utm_campaign: "logged-in-#{logged_in.present?}", utm_source: utm_source, utm_medium: "link")) %></h2>
3
+ </section>
@@ -0,0 +1,3 @@
1
+ <ul class="breadcrumbs row column">
2
+ <%= render_breadcrumbs builder: AmaLayout::BreadcrumbBuilder %>
3
+ </ul>
@@ -0,0 +1 @@
1
+ <%= navigation.sidebar %>
@@ -0,0 +1,2 @@
1
+ <link href="//fonts.googleapis.com/css?family=Open+Sans:400italic,400,700" rel="stylesheet" type="text/css">
2
+ <link href="//fonts.googleapis.com/css2?family=Lato:wght@400;900&display=swap" rel="stylesheet" type="text/css">
@@ -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,6 @@
1
+ <li class="side-nav__item">
2
+ <%= link_to nav_item.text, nav_item.link,
3
+ target: nav_item.target, alt: nav_item.alt,
4
+ class: 'side-nav__link' %>
5
+ <%= nav_item.sidebar_sub_nav %>
6
+ </li>
@@ -0,0 +1,4 @@
1
+ <li class="has-submenu <%= nav_item.sub_nav_class %>">
2
+ <%= link_to nav_item.text, nav_item.link, class: 'show-for-small-only' %>
3
+ <%= nav_item.top_sub_nav %>
4
+ </li>
@@ -0,0 +1,6 @@
1
+ <li class="small-text">
2
+ <%= link_to 'Update Address', "#{Rails.configuration.youraccount_site}/membership_update/new" %>
3
+ </li>
4
+ <li class="small-text">
5
+ <%= link_to 'Manage Credit Cards', "#{Rails.configuration.gatekeeper_site}/members/credit_cards" %>
6
+ </li>
@@ -0,0 +1,22 @@
1
+ <div class="off-canvas position-left" id="offCanvasLeft" data-off-canvas>
2
+ <h2 class="side-nav__header">Online Account</h2>
3
+ <div class="side-nav__content">
4
+ <ul class="side-nav__list">
5
+ <li class="side-nav__item">
6
+ <%= link_to 'Sign In', "#{Rails.configuration.gatekeeper_site}/login", class: 'side-nav__link' %>
7
+ </li>
8
+ <li class="side-nav__item">
9
+ <a class="side-nav__link" href="<%= Rails.configuration.amaabca_site %>">AMA Website</a>
10
+ </li>
11
+ <li class="side-nav__item">
12
+ <a class="side-nav__link" href="http://amaroadreports.ca/">AMA Road Reports</a>
13
+ </li>
14
+ <li class="side-nav__item">
15
+ <a class="side-nav__link" href="<%= Rails.configuration.amaabca_site %>/knowledge-base/articles" target="_blank">Help</a>
16
+ </li>
17
+ <li class="side-nav__item">
18
+ <a class="side-nav__link" href="<%= Rails.configuration.amaabca_site %>/membership/contact-us--centre-locations-hours-and-contact-information">Contact Us</a>
19
+ </li>
20
+ </ul>
21
+ </div>
22
+ </div>
@@ -0,0 +1,4 @@
1
+ <a href="#" data-toggle="offCanvasRight" data-notifications-toggle>
2
+ <i class="fa fa-2x fa-bell notification__icon"></i>
3
+ <%= navigation.notification_badge %>
4
+ </a>
@@ -0,0 +1,5 @@
1
+ <div class="row">
2
+ <div class="large-12">
3
+ <div class="notice_notification"><span><%= message.html_safe %></span></div>
4
+ </div>
5
+ </div>
@@ -0,0 +1,3 @@
1
+ <%= notice(flash[:notice]) %>
2
+ <%= alert(flash[:alert]) %>
3
+ <%= success_message(flash[:success]) %>
@@ -0,0 +1,10 @@
1
+ <div class="row <%= notification.active_class %>">
2
+ <div class="small-2 column">
3
+ <%= notification.icon %>
4
+ </div>
5
+ <div class="small-10 column">
6
+ <p class="bold"><%= notification.header %></p>
7
+ <p><%= sanitize notification.content, scrubber: AmaLayout::NotificationScrubber.new %></p>
8
+ <p class="micetype"><%= notification.created_at %></p>
9
+ </div>
10
+ </div>