rails_app_generator 0.2.2 → 0.2.5

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.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/after_templates/addons/dotenv/_.rb +21 -0
  4. data/after_templates/addons/dotenv/app/controllers/home_controller.rb +7 -0
  5. data/after_templates/addons/dotenv/app/views/home/index.html.erb +10 -0
  6. data/after_templates/addons/dotenv/app/views/layouts/application.html.erb +19 -0
  7. data/after_templates/addons/lograge/_.rb +22 -0
  8. data/after_templates/addons/lograge/app/controllers/home_controller.rb +9 -0
  9. data/after_templates/addons/lograge/app/views/home/index.html.erb +11 -0
  10. data/after_templates/addons/lograge/app/views/layouts/application.html.erb +21 -0
  11. data/after_templates/addons/public_suffix/_.rb +23 -0
  12. data/after_templates/addons/public_suffix/app/controllers/home_controller.rb +7 -0
  13. data/after_templates/addons/public_suffix/app/views/home/index.html.erb +29 -0
  14. data/after_templates/addons/public_suffix/app/views/layouts/application.html.erb +23 -0
  15. data/after_templates/addons/rubocop/_.rb +29 -0
  16. data/after_templates/addons/rubocop/app/assets/images/cop-output.png +0 -0
  17. data/after_templates/addons/rubocop/app/controllers/home_controller.rb +21 -0
  18. data/after_templates/addons/rubocop/app/views/home/index.html.erb +46 -0
  19. data/after_templates/addons/rubocop/app/views/layouts/application.html.erb +19 -0
  20. data/after_templates/application/printspeak/_.rb +21 -27
  21. data/after_templates/application/printspeak/app/assets/stylesheets/application.bootstrap.scss +1 -1
  22. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/_global.scss +0 -0
  23. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/_variables.scss +0 -0
  24. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/components/_buttons.scss +0 -0
  25. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/components/_navbar.scss +0 -0
  26. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_contact.scss +0 -0
  27. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_footer.scss +0 -0
  28. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_masthead.scss +0 -0
  29. data/after_templates/application/printspeak/app/assets/stylesheets/page/sections/_pagehead.scss +52 -0
  30. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_portfolio.scss +0 -0
  31. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_team.scss +0 -0
  32. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/sections/_timeline.scss +0 -0
  33. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/styles.scss +1 -0
  34. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/variables/_colors.scss +0 -0
  35. data/after_templates/application/printspeak/app/assets/stylesheets/{home → page}/variables/_typography.scss +0 -0
  36. data/after_templates/application/printspeak/app/controllers/application_controller.rb +41 -0
  37. data/after_templates/application/printspeak/app/controllers/home_controller.rb +3 -3
  38. data/after_templates/application/printspeak/app/controllers/page_controller.rb +13 -0
  39. data/after_templates/application/printspeak/app/views/home/_body_end.html.erb +45 -0
  40. data/after_templates/application/printspeak/app/views/home/_modal.erb +23 -0
  41. data/after_templates/application/printspeak/app/views/home/_navbar.html.erb +14 -0
  42. data/after_templates/application/printspeak/app/views/home/index.html.erb +234 -283
  43. data/after_templates/application/printspeak/app/views/layouts/_body_end.html.erb +0 -0
  44. data/after_templates/application/printspeak/app/views/layouts/_footer.html.erb +2 -2
  45. data/after_templates/application/printspeak/app/views/layouts/_head.html.erb +0 -0
  46. data/after_templates/application/printspeak/app/views/layouts/application.html.erb +3 -3
  47. data/after_templates/application/printspeak/app/views/page/_navbar.html.erb +9 -0
  48. data/after_templates/application/printspeak/app/views/page/benefits.html.erb +28 -0
  49. data/after_templates/application/printspeak/app/views/page/privacy.html.erb +12 -0
  50. data/after_templates/application/printspeak/app/views/page/terms.html.erb +12 -0
  51. data/docs/last_run/app_generator_class.json +32 -0
  52. data/docs/last_run/app_generator_data.json +7 -4
  53. data/docs/last_run/rails_options_class.json +32 -0
  54. data/docs/last_run/rails_options_data.json +8 -4
  55. data/lib/rails_app_generator/addons/continuous_integration.rb +1 -0
  56. data/lib/rails_app_generator/addons/devise.rb +1 -0
  57. data/lib/rails_app_generator/addons/docker.rb +1 -0
  58. data/lib/rails_app_generator/addons/docker_compose.rb +1 -0
  59. data/lib/rails_app_generator/addons/dotenv.rb +2 -0
  60. data/lib/rails_app_generator/addons/factory_bot.rb +1 -0
  61. data/lib/rails_app_generator/addons/foreman.rb +1 -0
  62. data/lib/rails_app_generator/addons/generators.rb +1 -0
  63. data/lib/rails_app_generator/addons/lograge.rb +3 -1
  64. data/lib/rails_app_generator/addons/public_suffix.rb +33 -0
  65. data/lib/rails_app_generator/addons/rubocop.rb +4 -0
  66. data/lib/rails_app_generator/app_generator.rb +10 -2
  67. data/lib/rails_app_generator/rag_initializer.rb +15 -15
  68. data/lib/rails_app_generator/version.rb +1 -1
  69. data/package-lock.json +2 -2
  70. data/package.json +1 -1
  71. data/profiles/{default/printspeak.json → addons/dotenv.json} +4 -4
  72. data/profiles/addons/lograge.json +12 -0
  73. data/profiles/addons/public_suffix.json +12 -0
  74. data/profiles/addons/rubocop.json +12 -0
  75. data/profiles/application/printspeak.json +6 -4
  76. data/templates/addons/lograge/config/initializers/lograge.rb +9 -1
  77. data/templates/addons/rubocop/.rubocop.yml.erb +5 -2
  78. data/templates/thor_task/addon/addon.tt +1 -1
  79. data/templates/thor_task/profile/after_template.rb +17 -8
  80. metadata +49 -23
  81. data/after_templates/application/printspeak/app/views/layouts/_alerts.html.erb +0 -2
  82. data/after_templates/application/printspeak/app/views/page/_footer.html.erb +0 -184
  83. data/after_templates/application/printspeak/app/views/page/architecture.html.erb +0 -33
  84. data/after_templates/application/printspeak/app/views/page/blog.html.erb +0 -44
  85. data/after_templates/application/printspeak/app/views/page/page_controller.rb +0 -27
  86. data/after_templates/application/printspeak/app/views/page/readme.html.erb +0 -49
  87. data/profiles/printspeak.json +0 -12
@@ -1,321 +1,272 @@
1
- <header class="masthead">
2
- <div class="container">
3
- <div class="masthead-subheading">Welcome To Print Speak!</div>
4
- <div class="masthead-heading text-uppercase">we make it easier for you to</div><a class="btn btn-primary btn-xl text-uppercase" href="#services">grow your business</a>
1
+ <header class="masthead">
2
+ <div class="container">
3
+ <div class="masthead-subheading">Welcome To Print Speak!</div>
4
+ <div class="masthead-heading text-uppercase">we make it easier for you to</div><%= link_to "grow your business", page_benefits_path, class: "btn btn-primary btn-xl text-uppercase" %>
5
5
 
6
+ </div>
7
+ </header><!-- Services-->
8
+ <section class="page-section" id="services">
9
+ <div class="container">
10
+ <div class="text-center">
11
+ <h2 class="section-heading text-uppercase">What does it do?</h2>
12
+ <h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
6
13
  </div>
7
- </header><!-- Services-->
8
- <section class="page-section" id="services">
9
- <div class="container">
10
- <div class="text-center">
11
- <h2 class="section-heading text-uppercase">What does it do?</h2>
12
- <h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
14
+ <div class="row text-center">
15
+ <div class="col-md-4"><span class="fa-stack fa-4x"><i class="fas fa-circle fa-stack-2x text-primary"></i><i class="fas fa-shopping-cart fa-stack-1x fa-inverse"></i></span>
16
+ <h4 class="my-3">Delivers</h4>
17
+ <p class="text-muted">It delivers key business data in a format that is easy to understand and, more importantly, easy to act upon.</p>
13
18
  </div>
14
- <div class="row text-center">
15
- <div class="col-md-4"><span class="fa-stack fa-4x"><i class="fas fa-circle fa-stack-2x text-primary"></i><i class="fas fa-shopping-cart fa-stack-1x fa-inverse"></i></span>
16
- <h4 class="my-3">Delivers</h4>
17
- <p class="text-muted">It delivers key business data in a format that is easy to understand and, more importantly, easy to act upon.</p>
18
- </div>
19
- <div class="col-md-4"><span class="fa-stack fa-4x"><i class="fas fa-circle fa-stack-2x text-primary"></i><i class="fas fa-laptop fa-stack-1x fa-inverse"></i></span>
20
- <h4 class="my-3">Identifies</h4>
21
- <p class="text-muted">It identifies insights from within your data and prompts actions that enable you to increase sales and customer retention.</p>
22
- </div>
23
- <div class="col-md-4"><span class="fa-stack fa-4x"><i class="fas fa-circle fa-stack-2x text-primary"></i><i class="fas fa-lock fa-stack-1x fa-inverse"></i></span>
24
- <h4 class="my-3">Automates</h4>
25
- <p class="text-muted">It enables you to automate a number of core customer service and marketing activities that will drive enquiries and sales conversions.</p>
26
- </div>
19
+ <div class="col-md-4"><span class="fa-stack fa-4x"><i class="fas fa-circle fa-stack-2x text-primary"></i><i class="fas fa-laptop fa-stack-1x fa-inverse"></i></span>
20
+ <h4 class="my-3">Identifies</h4>
21
+ <p class="text-muted">It identifies insights from within your data and prompts actions that enable you to increase sales and customer retention.</p>
27
22
  </div>
28
- </div>
29
- </section><!-- Portfolio Grid-->
30
- <section class="page-section bg-light" id="portfolio">
31
- <div class="container">
32
- <div class="text-center">
33
- <h2 class="section-heading text-uppercase">Portfolio</h2>
34
- <h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
23
+ <div class="col-md-4"><span class="fa-stack fa-4x"><i class="fas fa-circle fa-stack-2x text-primary"></i><i class="fas fa-lock fa-stack-1x fa-inverse"></i></span>
24
+ <h4 class="my-3">Automates</h4>
25
+ <p class="text-muted">It enables you to automate a number of core customer service and marketing activities that will drive enquiries and sales conversions.</p>
35
26
  </div>
36
- <div class="row">
37
- <div class="col-lg-4 col-sm-6 mb-4">
38
- <!-- Portfolio item 1-->
39
- <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal1">
40
- <div class="portfolio-hover">
41
- <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
42
- </div><%= image_tag 'portfolio/alphagraphics', alt: 'icon', class: "img-fluid" %>
43
- </a>
44
- <div class="portfolio-caption">
45
- <div class="portfolio-caption-heading">Threads</div>
46
- <div class="portfolio-caption-subheading text-muted">Illustration</div>
47
- </div>
27
+ </div>
28
+ </div>
29
+ </section><!-- Portfolio Grid-->
30
+ <section class="page-section bg-light" id="portfolio">
31
+ <div class="container">
32
+ <div class="text-center">
33
+ <h2 class="section-heading text-uppercase">Portfolio</h2>
34
+ <h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
35
+ </div>
36
+ <div class="row">
37
+ <div class="col-lg-4 col-sm-6 mb-4">
38
+ <!-- Portfolio item 1-->
39
+ <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal1">
40
+ <div class="portfolio-hover">
41
+ <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
42
+ </div><%= image_tag 'portfolio/alphagraphics', alt: 'icon', class: "img-fluid" %>
43
+ </a>
44
+ <div class="portfolio-caption">
45
+ <div class="portfolio-caption-heading">Threads</div>
46
+ <div class="portfolio-caption-subheading text-muted">Illustration</div>
48
47
  </div>
49
48
  </div>
50
- <div class="col-lg-4 col-sm-6 mb-4">
51
- <!-- Portfolio item 2-->
52
- <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal2">
53
- <div class="portfolio-hover">
54
- <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
55
- </div><%= image_tag 'portfolio/kwikkopy', alt: 'icon', class: "img-fluid" %>
56
- </a>
57
- <div class="portfolio-caption">
58
- <div class="portfolio-caption-heading">Explore</div>
59
- <div class="portfolio-caption-subheading text-muted">Graphic Design</div>
60
- </div>
49
+ </div>
50
+ <div class="col-lg-4 col-sm-6 mb-4">
51
+ <!-- Portfolio item 2-->
52
+ <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal2">
53
+ <div class="portfolio-hover">
54
+ <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
55
+ </div><%= image_tag 'portfolio/kwikkopy', alt: 'icon', class: "img-fluid" %>
56
+ </a>
57
+ <div class="portfolio-caption">
58
+ <div class="portfolio-caption-heading">Explore</div>
59
+ <div class="portfolio-caption-subheading text-muted">Graphic Design</div>
61
60
  </div>
62
61
  </div>
63
- <div class="col-lg-4 col-sm-6 mb-4">
64
- <!-- Portfolio item 3-->
65
- <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal3">
66
- <div class="portfolio-hover">
67
- <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
68
- </div><%= image_tag 'portfolio/3', alt: 'icon', class: "img-fluid" %>
69
- </a>
70
- <div class="portfolio-caption">
71
- <div class="portfolio-caption-heading">Finish</div>
72
- <div class="portfolio-caption-subheading text-muted">Identity</div>
73
- </div>
62
+ </div>
63
+ <div class="col-lg-4 col-sm-6 mb-4">
64
+ <!-- Portfolio item 3-->
65
+ <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal3">
66
+ <div class="portfolio-hover">
67
+ <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
68
+ </div><%= image_tag 'portfolio/3', alt: 'icon', class: "img-fluid" %>
69
+ </a>
70
+ <div class="portfolio-caption">
71
+ <div class="portfolio-caption-heading">Finish</div>
72
+ <div class="portfolio-caption-subheading text-muted">Identity</div>
74
73
  </div>
75
74
  </div>
76
- <div class="col-lg-4 col-sm-6 mb-4 mb-lg-0">
77
- <!-- Portfolio item 4-->
78
- <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal4">
79
- <div class="portfolio-hover">
80
- <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
81
- </div><%= image_tag 'portfolio/brochure-transformed', alt: 'icon', class: "img-fluid" %>
82
- </a>
83
- <div class="portfolio-caption">
84
- <div class="portfolio-caption-heading">Lines</div>
85
- <div class="portfolio-caption-subheading text-muted">Branding</div>
86
- </div>
75
+ </div>
76
+ <div class="col-lg-4 col-sm-6 mb-4 mb-lg-0">
77
+ <!-- Portfolio item 4-->
78
+ <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal4">
79
+ <div class="portfolio-hover">
80
+ <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
81
+ </div><%= image_tag 'portfolio/brochure-transformed', alt: 'icon', class: "img-fluid" %>
82
+ </a>
83
+ <div class="portfolio-caption">
84
+ <div class="portfolio-caption-heading">Lines</div>
85
+ <div class="portfolio-caption-subheading text-muted">Branding</div>
87
86
  </div>
88
87
  </div>
89
- <div class="col-lg-4 col-sm-6 mb-4 mb-sm-0">
90
- <!-- Portfolio item 5-->
91
- <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal5">
92
- <div class="portfolio-hover">
93
- <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
94
- </div><%= image_tag 'portfolio/5', alt: 'icon', class: "img-fluid" %>
95
- </a>
96
- <div class="portfolio-caption">
97
- <div class="portfolio-caption-heading">Southwest</div>
98
- <div class="portfolio-caption-subheading text-muted">Website Design</div>
99
- </div>
88
+ </div>
89
+ <div class="col-lg-4 col-sm-6 mb-4 mb-sm-0">
90
+ <!-- Portfolio item 5-->
91
+ <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal5">
92
+ <div class="portfolio-hover">
93
+ <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
94
+ </div><%= image_tag 'portfolio/5', alt: 'icon', class: "img-fluid" %>
95
+ </a>
96
+ <div class="portfolio-caption">
97
+ <div class="portfolio-caption-heading">Southwest</div>
98
+ <div class="portfolio-caption-subheading text-muted">Website Design</div>
100
99
  </div>
101
100
  </div>
102
- <div class="col-lg-4 col-sm-6">
103
- <!-- Portfolio item 6-->
104
- <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal6">
105
- <div class="portfolio-hover">
106
- <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
107
- </div><%= image_tag 'portfolio/6', alt: 'icon', class: "img-fluid" %>
108
- </a>
109
- <div class="portfolio-caption">
110
- <div class="portfolio-caption-heading">Window</div>
111
- <div class="portfolio-caption-subheading text-muted">Photography</div>
112
- </div>
101
+ </div>
102
+ <div class="col-lg-4 col-sm-6">
103
+ <!-- Portfolio item 6-->
104
+ <div class="portfolio-item"><a class="portfolio-link" data-bs-toggle="modal" href="#portfolioModal6">
105
+ <div class="portfolio-hover">
106
+ <div class="portfolio-hover-content"><i class="fas fa-plus fa-3x"></i></div>
107
+ </div><%= image_tag 'portfolio/6', alt: 'icon', class: "img-fluid" %>
108
+ </a>
109
+ <div class="portfolio-caption">
110
+ <div class="portfolio-caption-heading">Window</div>
111
+ <div class="portfolio-caption-subheading text-muted">Photography</div>
113
112
  </div>
114
113
  </div>
115
114
  </div>
116
115
  </div>
117
- </section><!-- About-->
118
- <section class="page-section" id="about">
119
- <div class="container">
120
- <div class="text-center">
121
- <h2 class="section-heading text-uppercase">About</h2>
122
- <h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
123
- </div>
124
- <ul class="timeline">
125
- <li>
126
- <div class="timeline-image"><%= image_tag "about/1.jpg", class: "rounded-circle img-fluid", alt: "..." %></div>
127
- <div class="timeline-panel">
128
- <div class="timeline-heading">
129
- <h4>2009-2011</h4>
130
- <h4 class="subheading">Our Humble Beginnings</h4>
131
- </div>
132
- <div class="timeline-body">
133
- <p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
134
- </div>
116
+ </div>
117
+ </section><!-- About-->
118
+ <section class="page-section" id="about">
119
+ <div class="container">
120
+ <div class="text-center">
121
+ <h2 class="section-heading text-uppercase">About</h2>
122
+ <h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
123
+ </div>
124
+ <ul class="timeline">
125
+ <li>
126
+ <div class="timeline-image"><%= image_tag "about/1.jpg", class: "rounded-circle img-fluid", alt: "..." %></div>
127
+ <div class="timeline-panel">
128
+ <div class="timeline-heading">
129
+ <h4>2009-2011</h4>
130
+ <h4 class="subheading">Our Humble Beginnings</h4>
135
131
  </div>
136
- </li>
137
- <li class="timeline-inverted">
138
- <div class="timeline-image"><%= image_tag "about/2.jpg", class: "rounded-circle img-fluid", alt: "..." %></div>
139
- <div class="timeline-panel">
140
- <div class="timeline-heading">
141
- <h4>March 2011</h4>
142
- <h4 class="subheading">An Agency is Born</h4>
143
- </div>
144
- <div class="timeline-body">
145
- <p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
146
- </div>
132
+ <div class="timeline-body">
133
+ <p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
147
134
  </div>
148
- </li>
149
- <li>
150
- <div class="timeline-image"><%= image_tag "about/3.jpg", class: "rounded-circle img-fluid", alt: "..." %></div>
151
- <div class="timeline-panel">
152
- <div class="timeline-heading">
153
- <h4>December 2015</h4>
154
- <h4 class="subheading">Transition to Full Service</h4>
155
- </div>
156
- <div class="timeline-body">
157
- <p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
158
- </div>
135
+ </div>
136
+ </li>
137
+ <li class="timeline-inverted">
138
+ <div class="timeline-image"><%= image_tag "about/2.jpg", class: "rounded-circle img-fluid", alt: "..." %></div>
139
+ <div class="timeline-panel">
140
+ <div class="timeline-heading">
141
+ <h4>March 2011</h4>
142
+ <h4 class="subheading">An Agency is Born</h4>
159
143
  </div>
160
- </li>
161
- <li class="timeline-inverted">
162
- <div class="timeline-image"><%= image_tag "about/4.jpg", class: "rounded-circle img-fluid", alt: "..." %></div>
163
- <div class="timeline-panel">
164
- <div class="timeline-heading">
165
- <h4>July 2020</h4>
166
- <h4 class="subheading">Phase Two Expansion</h4>
167
- </div>
168
- <div class="timeline-body">
169
- <p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
170
- </div>
144
+ <div class="timeline-body">
145
+ <p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
171
146
  </div>
172
- </li>
173
- <li class="timeline-inverted">
174
- <div class="timeline-image">
175
- <h4>Be Part<br />Of Our<br />Story!</h4>
147
+ </div>
148
+ </li>
149
+ <li>
150
+ <div class="timeline-image"><%= image_tag "about/3.jpg", class: "rounded-circle img-fluid", alt: "..." %></div>
151
+ <div class="timeline-panel">
152
+ <div class="timeline-heading">
153
+ <h4>December 2015</h4>
154
+ <h4 class="subheading">Transition to Full Service</h4>
176
155
  </div>
177
- </li>
178
- </ul>
179
- </div>
180
- </section><!-- Team-->
181
- <section class="page-section bg-light" id="team">
182
- <div class="container">
183
- <div class="text-center">
184
- <h2 class="section-heading text-uppercase">Our Amazing Team</h2>
185
- <h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
186
- </div>
187
- <div class="row">
188
- <div class="col-lg-4">
189
- <div class="team-member"><%= image_tag "team/1.jpg", class: "mx-auto rounded-circle", alt: "..." %>
190
- <h4>Parveen Anand</h4>
191
- <p class="text-muted">Lead Designer</p><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Parveen Anand Twitter Profile"><i class="fab fa-twitter"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Parveen Anand Facebook Profile"><i class="fab fa-facebook-f"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Parveen Anand LinkedIn Profile"><i class="fab fa-linkedin-in"></i></a>
156
+ <div class="timeline-body">
157
+ <p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
192
158
  </div>
193
159
  </div>
194
- <div class="col-lg-4">
195
- <div class="team-member"><%= image_tag "team/2.jpg", class: "mx-auto rounded-circle", alt: "..." %>
196
- <h4>Diana Petersen</h4>
197
- <p class="text-muted">Lead Marketer</p><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Diana Petersen Twitter Profile"><i class="fab fa-twitter"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Diana Petersen Facebook Profile"><i class="fab fa-facebook-f"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Diana Petersen LinkedIn Profile"><i class="fab fa-linkedin-in"></i></a>
160
+ </li>
161
+ <li class="timeline-inverted">
162
+ <div class="timeline-image"><%= image_tag "about/4.jpg", class: "rounded-circle img-fluid", alt: "..." %></div>
163
+ <div class="timeline-panel">
164
+ <div class="timeline-heading">
165
+ <h4>July 2020</h4>
166
+ <h4 class="subheading">Phase Two Expansion</h4>
198
167
  </div>
199
- </div>
200
- <div class="col-lg-4">
201
- <div class="team-member"><%= image_tag "team/3.jpg", class: "mx-auto rounded-circle", alt: "..." %>
202
- <h4>Larry Parker</h4>
203
- <p class="text-muted">Lead Developer</p><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Larry Parker Twitter Profile"><i class="fab fa-twitter"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Larry Parker Facebook Profile"><i class="fab fa-facebook-f"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Larry Parker LinkedIn Profile"><i class="fab fa-linkedin-in"></i></a>
168
+ <div class="timeline-body">
169
+ <p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
204
170
  </div>
205
171
  </div>
172
+ </li>
173
+ <li class="timeline-inverted">
174
+ <div class="timeline-image">
175
+ <h4>Be Part<br />Of Our<br />Story!</h4>
176
+ </div>
177
+ </li>
178
+ </ul>
179
+ </div>
180
+ </section><!-- Team-->
181
+ <section class="page-section bg-light" id="team">
182
+ <div class="container">
183
+ <div class="text-center">
184
+ <h2 class="section-heading text-uppercase">Our Amazing Team</h2>
185
+ <h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
186
+ </div>
187
+ <div class="row">
188
+ <div class="col-lg-4">
189
+ <div class="team-member"><%= image_tag "team/1.jpg", class: "mx-auto rounded-circle", alt: "..." %>
190
+ <h4>Parveen Anand</h4>
191
+ <p class="text-muted">Lead Designer</p><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Parveen Anand Twitter Profile"><i class="fab fa-twitter"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Parveen Anand Facebook Profile"><i class="fab fa-facebook-f"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Parveen Anand LinkedIn Profile"><i class="fab fa-linkedin-in"></i></a>
192
+ </div>
206
193
  </div>
207
- <div class="row">
208
- <div class="col-lg-8 mx-auto text-center">
209
- <p class="large text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut eaque, laboriosam veritatis, quos non quis ad perspiciatis, totam corporis ea, alias ut unde.</p>
194
+ <div class="col-lg-4">
195
+ <div class="team-member"><%= image_tag "team/2.jpg", class: "mx-auto rounded-circle", alt: "..." %>
196
+ <h4>Diana Petersen</h4>
197
+ <p class="text-muted">Lead Marketer</p><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Diana Petersen Twitter Profile"><i class="fab fa-twitter"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Diana Petersen Facebook Profile"><i class="fab fa-facebook-f"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Diana Petersen LinkedIn Profile"><i class="fab fa-linkedin-in"></i></a>
210
198
  </div>
211
199
  </div>
212
- </div>
213
- </section><!-- Clients-->
214
- <div class="py-5">
215
- <div class="container">
216
- <div class="row align-items-center">
217
- <div class="col-md-3 col-sm-6 my-3"><a href="#!"><%= image_tag "logos/microsoft.svg", class: "img-fluid img-brand d-block mx-auto", alt: "...", aria_label: "Microsoft Logo" %></a></div>
218
- <div class="col-md-3 col-sm-6 my-3"><a href="#!"><%= image_tag "logos/google.svg", class: "img-fluid img-brand d-block mx-auto", alt: "...", aria_label: "Google Logo" %></a></div>
219
- <div class="col-md-3 col-sm-6 my-3"><a href="#!"><%= image_tag "logos/facebook.svg", class: "img-fluid img-brand d-block mx-auto", alt: "...", aria_label: "Facebook Logo" %></a></div>
220
- <div class="col-md-3 col-sm-6 my-3"><a href="#!"><%= image_tag "logos/ibm.svg", class: "img-fluid img-brand d-block mx-auto", alt: "...", aria_label: "IBM Logo" %></a></div>
200
+ <div class="col-lg-4">
201
+ <div class="team-member"><%= image_tag "team/3.jpg", class: "mx-auto rounded-circle", alt: "..." %>
202
+ <h4>Larry Parker</h4>
203
+ <p class="text-muted">Lead Developer</p><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Larry Parker Twitter Profile"><i class="fab fa-twitter"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Larry Parker Facebook Profile"><i class="fab fa-facebook-f"></i></a><a class="btn btn-dark btn-social mx-2" href="#!" aria-label="Larry Parker LinkedIn Profile"><i class="fab fa-linkedin-in"></i></a>
204
+ </div>
221
205
  </div>
222
206
  </div>
223
- </div><!-- Contact-->
224
- <section class="page-section" id="contact">
225
- <div class="container">
226
- <div class="text-center">
227
- <h2 class="section-heading text-uppercase">Contact Us</h2>
228
- <h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
207
+ <div class="row">
208
+ <div class="col-lg-8 mx-auto text-center">
209
+ <p class="large text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut eaque, laboriosam veritatis, quos non quis ad perspiciatis, totam corporis ea, alias ut unde.</p>
229
210
  </div>
230
-
231
- <form id="contactForm" data-sb-form-api-token="API_TOKEN">
232
- <div class="row align-items-stretch mb-5">
233
- <div class="col-md-6">
234
- <div class="form-group">
235
- <!-- Name input--><input class="form-control" id="name" type="text" placeholder="Your Name *" data-sb-validations="required" />
236
- <div class="invalid-feedback" data-sb-feedback="name:required">A name is required.</div>
237
- </div>
238
- <div class="form-group">
239
- <!-- Email address input--><input class="form-control" id="email" type="email" placeholder="Your Email *" data-sb-validations="required,email" />
240
- <div class="invalid-feedback" data-sb-feedback="email:required">An email is required.</div>
241
- <div class="invalid-feedback" data-sb-feedback="email:email">Email is not valid.</div>
242
- </div>
243
- <div class="form-group mb-md-0">
244
- <!-- Phone number input--><input class="form-control" id="phone" type="tel" placeholder="Your Phone *" data-sb-validations="required" />
245
- <div class="invalid-feedback" data-sb-feedback="phone:required">A phone number is required.</div>
246
- </div>
211
+ </div>
212
+ </div>
213
+ </section><!-- Clients-->
214
+ <div class="py-5">
215
+ <div class="container">
216
+ <div class="row align-items-center">
217
+ <div class="col-md-3 col-sm-6 my-3"><a href="#!"><%= image_tag "logos/microsoft.svg", class: "img-fluid img-brand d-block mx-auto", alt: "...", aria_label: "Microsoft Logo" %></a></div>
218
+ <div class="col-md-3 col-sm-6 my-3"><a href="#!"><%= image_tag "logos/google.svg", class: "img-fluid img-brand d-block mx-auto", alt: "...", aria_label: "Google Logo" %></a></div>
219
+ <div class="col-md-3 col-sm-6 my-3"><a href="#!"><%= image_tag "logos/facebook.svg", class: "img-fluid img-brand d-block mx-auto", alt: "...", aria_label: "Facebook Logo" %></a></div>
220
+ <div class="col-md-3 col-sm-6 my-3"><a href="#!"><%= image_tag "logos/ibm.svg", class: "img-fluid img-brand d-block mx-auto", alt: "...", aria_label: "IBM Logo" %></a></div>
221
+ </div>
222
+ </div>
223
+ </div><!-- Contact-->
224
+ <section class="page-section" id="contact">
225
+ <div class="container">
226
+ <div class="text-center">
227
+ <h2 class="section-heading text-uppercase">Contact Us</h2>
228
+ <h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
229
+ </div>
230
+
231
+ <form id="contactForm" data-sb-form-api-token="API_TOKEN">
232
+ <div class="row align-items-stretch mb-5">
233
+ <div class="col-md-6">
234
+ <div class="form-group">
235
+ <!-- Name input--><input class="form-control" id="name" type="text" placeholder="Your Name *" data-sb-validations="required" />
236
+ <div class="invalid-feedback" data-sb-feedback="name:required">A name is required.</div>
247
237
  </div>
248
- <div class="col-md-6">
249
- <div class="form-group form-group-textarea mb-md-0">
250
- <!-- Message input--><textarea class="form-control" id="message" placeholder="Your Message *" data-sb-validations="required"></textarea>
251
- <div class="invalid-feedback" data-sb-feedback="message:required">A message is required.</div>
252
- </div>
238
+ <div class="form-group">
239
+ <!-- Email address input--><input class="form-control" id="email" type="email" placeholder="Your Email *" data-sb-validations="required,email" />
240
+ <div class="invalid-feedback" data-sb-feedback="email:required">An email is required.</div>
241
+ <div class="invalid-feedback" data-sb-feedback="email:email">Email is not valid.</div>
253
242
  </div>
254
- </div><!-- Submit success message-->
255
- <!---->
256
- <!-- This is what your users will see when the form-->
257
- <!-- has successfully submitted-->
258
- <div class="d-none" id="submitSuccessMessage">
259
- <div class="text-center text-white mb-3">
260
- <div class="fw-bolder">Form submission successful!</div>To activate this form, sign up at<br /><a href="https://startbootstrap.com/solution/contact-forms">https://startbootstrap.com/solution/contact-forms</a>
243
+ <div class="form-group mb-md-0">
244
+ <!-- Phone number input--><input class="form-control" id="phone" type="tel" placeholder="Your Phone *" data-sb-validations="required" />
245
+ <div class="invalid-feedback" data-sb-feedback="phone:required">A phone number is required.</div>
261
246
  </div>
262
- </div><!-- Submit error message-->
263
- <!---->
264
- <!-- This is what your users will see when there is-->
265
- <!-- an error submitting the form-->
266
- <div class="d-none" id="submitErrorMessage">
267
- <div class="text-center text-danger mb-3">Error sending message!</div>
268
- </div><!-- Submit Button-->
269
- <div class="text-center"><button class="btn btn-primary btn-xl text-uppercase disabled" id="submitButton" type="submit">Send Message</button></div>
270
- </form>
271
- </div>
272
- </section>
273
-
274
-
275
- <script>
276
- window.addEventListener('DOMContentLoaded', event => {
277
-
278
- // Navbar shrink function
279
- var navbarShrink = function () {
280
- const navbarCollapsible = document.body.querySelector('#mainNav');
281
- if (!navbarCollapsible) {
282
- return;
283
- }
284
- if (window.scrollY === 0) {
285
- navbarCollapsible.classList.remove('navbar-shrink')
286
- } else {
287
- navbarCollapsible.classList.add('navbar-shrink')
288
- }
289
-
290
- };
291
-
292
- // Shrink the navbar
293
- navbarShrink();
294
-
295
- // Shrink the navbar when page is scrolled
296
- document.addEventListener('scroll', navbarShrink);
297
-
298
- // Activate Bootstrap scrollspy on the main nav element
299
- const mainNav = document.body.querySelector('#mainNav');
300
- if (mainNav) {
301
- new bootstrap.ScrollSpy(document.body, {
302
- target: '#mainNav',
303
- offset: 74,
304
- });
305
- };
306
-
307
- // Collapse responsive navbar when toggler is visible
308
- const navbarToggler = document.body.querySelector('.navbar-toggler');
309
- const responsiveNavItems = [].slice.call(
310
- document.querySelectorAll('#navbarResponsive .nav-link')
311
- );
312
- responsiveNavItems.map(function (responsiveNavItem) {
313
- responsiveNavItem.addEventListener('click', () => {
314
- if (window.getComputedStyle(navbarToggler).display !== 'none') {
315
- navbarToggler.click();
316
- }
317
- });
318
- });
319
-
320
- });
321
- </script>
247
+ </div>
248
+ <div class="col-md-6">
249
+ <div class="form-group form-group-textarea mb-md-0">
250
+ <!-- Message input--><textarea class="form-control" id="message" placeholder="Your Message *" data-sb-validations="required"></textarea>
251
+ <div class="invalid-feedback" data-sb-feedback="message:required">A message is required.</div>
252
+ </div>
253
+ </div>
254
+ </div><!-- Submit success message-->
255
+ <!---->
256
+ <!-- This is what your users will see when the form-->
257
+ <!-- has successfully submitted-->
258
+ <div class="d-none" id="submitSuccessMessage">
259
+ <div class="text-center text-white mb-3">
260
+ <div class="fw-bolder">Form submission successful!</div>To activate this form, sign up at<br /><a href="https://startbootstrap.com/solution/contact-forms">https://startbootstrap.com/solution/contact-forms</a>
261
+ </div>
262
+ </div><!-- Submit error message-->
263
+ <!---->
264
+ <!-- This is what your users will see when there is-->
265
+ <!-- an error submitting the form-->
266
+ <div class="d-none" id="submitErrorMessage">
267
+ <div class="text-center text-danger mb-3">Error sending message!</div>
268
+ </div><!-- Submit Button-->
269
+ <div class="text-center"><button class="btn btn-primary btn-xl text-uppercase disabled" id="submitButton" type="submit">Send Message</button></div>
270
+ </form>
271
+ </div>
272
+ </section>
@@ -8,8 +8,8 @@
8
8
  <a class="btn btn-dark btn-social mx-2" href="#!" aria-label="LinkedIn"><i class="fab fa-linkedin-in"></i></a>
9
9
  </div>
10
10
  <div class="col-lg-4 text-lg-end">
11
- <a class="link-dark text-decoration-none me-3" href="#!">Privacy Policy</a>
12
- <a class="link-dark text-decoration-none" href="#!">Terms of Use</a>
11
+ <%= link_to "Privacy Policy", page_privacy_path, class: "link-dark text-decoration-none me-3" %>
12
+ <%= link_to "Terms of Use", page_terms_path, class: "link-dark text-decoration-none" %>
13
13
  </div>
14
14
  </div>
15
15
  </div>