jekyll-theme-marketing 0.5.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (232) hide show
  1. checksums.yaml +5 -5
  2. data/{LICENSE.txt → LICENSE} +1 -1
  3. data/README.md +6 -1
  4. data/_includes/components/analytics/google.js +13 -0
  5. data/_includes/components/assets/file-downloads.html +15 -0
  6. data/_includes/components/breadcrumbs/bootstrap.html +35 -0
  7. data/_includes/components/breadcrumbs/bootstrap.js +11 -0
  8. data/_includes/components/bullets/fontawesome.html +4 -0
  9. data/_includes/components/cards/bootstrap-h.html +20 -0
  10. data/_includes/components/cards/bootstrap-v.html +16 -0
  11. data/_includes/components/contact-cards/phone-card.html +6 -0
  12. data/_includes/components/contact-cards/phone-directory.html +22 -0
  13. data/_includes/components/copyrights/progressive.html +19 -0
  14. data/_includes/components/exchange-rates/progressive.html +6 -0
  15. data/_includes/{body/header/exchange-rates/usd.html → components/exchange-rates/progressive.js} +1 -6
  16. data/_includes/components/filters/isotope.html +32 -0
  17. data/_includes/components/filters/isotope.js +47 -0
  18. data/_includes/components/firebase/sdk.html +17 -0
  19. data/_includes/components/firebase/special-offers.html +28 -0
  20. data/_includes/components/firebase/ui.html +15 -0
  21. data/_includes/components/firebase/ui.js +33 -0
  22. data/_includes/{head/fonts.html → components/fonts/google.html} +0 -0
  23. data/_includes/components/footers/progressive/custom-item.liquid +1 -0
  24. data/_includes/components/footers/progressive/custom-title.liquid +1 -0
  25. data/_includes/components/footers/progressive/footer.html +43 -0
  26. data/_includes/components/footers/progressive/top.html +27 -0
  27. data/_includes/components/forms/formspree.html +59 -0
  28. data/_includes/components/forms/formspree.js +35 -0
  29. data/_includes/components/forms/google-forms.css +5 -0
  30. data/_includes/components/forms/google-forms.html +76 -0
  31. data/_includes/components/forms/google-forms.js +31 -0
  32. data/_includes/components/generators/pdf/special-offers.html +51 -0
  33. data/_includes/components/icons/bootstrap.html +14 -0
  34. data/_includes/components/icons/progressive.html +29 -0
  35. data/_includes/components/icons/progressive.js +5 -0
  36. data/_includes/components/info-cards/card-deck.html +16 -0
  37. data/_includes/components/info-cards/progressive.html +20 -0
  38. data/_includes/components/info-cards/search-results.html +38 -0
  39. data/_includes/components/jumbotron/bootstrap.html +5 -0
  40. data/_includes/components/lang-switchers/two-langs.html +27 -0
  41. data/_includes/components/login/progressive.html +89 -0
  42. data/_includes/components/logos/motorola.html +3 -0
  43. data/_includes/components/logos/progressive.html +3 -0
  44. data/_includes/components/maps/google-maps.html +2 -0
  45. data/_includes/components/maps/google-maps.js +96 -0
  46. data/_includes/components/maps/image-map.html +21 -0
  47. data/_includes/components/megamenu/progressive.html +35 -0
  48. data/_includes/{head/meta.html → components/meta/progressive.html} +5 -1
  49. data/_includes/components/modals/bootstrap.html +124 -0
  50. data/_includes/components/modals/bootstrap.js +26 -0
  51. data/_includes/components/nav-items/bootstrap.html +23 -0
  52. data/_includes/components/nav-tabs/product-nav-tab.html +48 -0
  53. data/_includes/components/nav-tabs/product-nav-tab.js +38 -0
  54. data/_includes/components/navbars/bootstrap.html +16 -0
  55. data/_includes/components/navbars/common.liquid +14 -0
  56. data/_includes/components/navbars/progressive.html +33 -0
  57. data/_includes/components/navbars/progressive.js +18 -0
  58. data/_includes/components/panels/brands.html +12 -0
  59. data/_includes/{body → components}/product-cards/3d-space.html +5 -5
  60. data/_includes/components/product-cards/featured-product.html +15 -0
  61. data/_includes/components/product-cards/product-details.html +48 -0
  62. data/_includes/components/product-cards/product-generals.html +54 -0
  63. data/_includes/components/product-cards/progressive.html +57 -0
  64. data/_includes/components/scripts/body.js +41 -0
  65. data/_includes/components/scripts/head.js +14 -0
  66. data/_includes/components/scroll-to-tops/progressive.html +3 -0
  67. data/_includes/components/search-engines/lunr.html +19 -0
  68. data/_includes/components/search-engines/lunr.js +119 -0
  69. data/_includes/components/searchbars/progressive.html +14 -0
  70. data/_includes/components/sidenavs/material/dependencies.html +2 -2
  71. data/_includes/components/sliders/bootstrap.html +37 -0
  72. data/_includes/components/sliders/lightslider.html +35 -0
  73. data/_includes/components/sliders/lightslider.js +12 -0
  74. data/_includes/components/sliders/revolution-slider.html +67 -0
  75. data/_includes/components/social-media/facebook.html +18 -0
  76. data/_includes/components/social-media/progressive.html +9 -0
  77. data/_includes/components/spinners/bootstrap.html +5 -0
  78. data/_includes/components/stylesheets/progressive.html +47 -0
  79. data/_includes/components/timelines/9.html +27 -0
  80. data/_includes/components/topbars/progressive.html +36 -0
  81. data/_includes/components/topbars/progressive.js +5 -0
  82. data/_includes/components/videos/background.html +22 -0
  83. data/_includes/components/videos/youtube.html +23 -0
  84. data/_includes/components/zendesk/script.js +9 -0
  85. data/_includes/pages/footer/grupopv/our-offices.js +22 -0
  86. data/_layouts/default.html +30 -12
  87. data/_layouts/grid.html +34 -28
  88. data/_layouts/page.html +4 -48
  89. data/_layouts/product.html +29 -174
  90. data/_sass/common/_common.scss +32 -0
  91. data/_sass/components/breadcrumbs/_bootstrap.scss +2 -3
  92. data/_sass/components/contact-cards/_location.scss +14 -0
  93. data/_sass/components/contact-cards/_phone-card.scss +17 -0
  94. data/_sass/components/footers/_vg_progressive.scss +72 -0
  95. data/_sass/components/forms/_formspree.scss +5 -0
  96. data/_sass/components/forms/_google-forms.scss +29 -0
  97. data/_sass/components/icons/bootstrap.scss +21 -0
  98. data/_sass/components/info-cards/_card-deck.scss +12 -0
  99. data/_sass/components/info-cards/search-results.scss +9 -0
  100. data/_sass/components/jumbotron/bootstrap.scss +5 -0
  101. data/_sass/components/lang-switchers/_toogle-lang.scss +0 -1
  102. data/_sass/components/login/progressive.scss +13 -0
  103. data/_sass/components/logos/progressive.scss +12 -0
  104. data/_sass/components/maps/google-maps.scss +13 -0
  105. data/_sass/components/megamenu/progressive.scss +9 -0
  106. data/_sass/components/nav-items/bootstrap.scss +26 -0
  107. data/_sass/components/navbars/bootstrap.scss +8 -0
  108. data/_sass/components/navbars/progressive.scss +94 -0
  109. data/_sass/components/product-cards/_3d-space.scss +12 -12
  110. data/_sass/components/product-cards/_product-details.scss +6 -0
  111. data/_sass/components/product-cards/_product-generals.scss +13 -0
  112. data/_sass/components/product-cards/_progressive.scss +30 -0
  113. data/_sass/components/product-cards/featured-product.scss +12 -0
  114. data/_sass/components/searchbars/progressive.scss +8 -0
  115. data/_sass/components/sidenavs/_material.scss +160 -0
  116. data/_sass/components/sliders/_lightslider.scss +33 -0
  117. data/_sass/components/social-media/_progressive.scss +25 -0
  118. data/_sass/components/timelines/9.scss +152 -0
  119. data/_sass/components/videos/background.scss +22 -0
  120. data/_sass/grupopv/_navbar.scss +22 -0
  121. data/_sass/layouts/_404.scss +39 -0
  122. data/_sass/layouts/_default.scss +3 -0
  123. data/_sass/layouts/_page.scss +70 -0
  124. data/_sass/layouts/_product.scss +56 -0
  125. data/assets/css/main.min.scss +88 -0
  126. data/assets/img/common/favicon.png +0 -0
  127. data/assets/js/firebase/firebase-account-controller.js +42 -0
  128. data/assets/js/firebase/firebase-login.js +4 -4
  129. data/assets/js/firebase/firebase-sdk.js +19 -0
  130. data/assets/js/firebase/firebase-special-offers.js +41 -0
  131. data/assets/node_modules/@fortawesome/fontawesome-free-brands/index.js +1221 -0
  132. data/assets/node_modules/@fortawesome/fontawesome-free-regular/index.js +489 -0
  133. data/assets/node_modules/@fortawesome/fontawesome-free-solid/index.js +2013 -0
  134. data/assets/node_modules/@fortawesome/fontawesome/index.js +1823 -0
  135. data/assets/node_modules/@fortawesome/fontawesome/styles.css +345 -0
  136. data/assets/node_modules/bootstrap/dist/css/bootstrap.min.css +5 -3
  137. data/assets/node_modules/bootstrap/dist/css/bootstrap.min.css.map +1 -0
  138. data/assets/node_modules/bootstrap/dist/js/bootstrap.min.js +6 -5
  139. data/assets/node_modules/bootstrap/dist/js/bootstrap.min.js.map +1 -0
  140. data/assets/node_modules/bootstrap/scss/_badge.scss +54 -0
  141. data/assets/node_modules/bootstrap/scss/_buttons.scss +139 -0
  142. data/assets/node_modules/bootstrap/scss/_functions.scss +134 -0
  143. data/assets/node_modules/bootstrap/scss/_nav.scss +120 -0
  144. data/assets/node_modules/bootstrap/scss/_reboot.scss +482 -0
  145. data/assets/node_modules/bootstrap/scss/_variables.scss +1143 -0
  146. data/assets/node_modules/bootstrap/scss/mixins/_background-variant.scss +22 -0
  147. data/assets/node_modules/bootstrap/scss/mixins/_badge.scss +17 -0
  148. data/assets/node_modules/bootstrap/scss/mixins/_border-radius.scss +63 -0
  149. data/assets/node_modules/bootstrap/scss/mixins/_box-shadow.scss +20 -0
  150. data/assets/node_modules/bootstrap/scss/mixins/_breakpoints.scss +123 -0
  151. data/assets/node_modules/bootstrap/scss/mixins/_buttons.scss +110 -0
  152. data/assets/node_modules/bootstrap/scss/mixins/_deprecate.scss +10 -0
  153. data/assets/node_modules/bootstrap/scss/mixins/_gradients.scss +45 -0
  154. data/assets/node_modules/bootstrap/scss/mixins/_hover.scss +37 -0
  155. data/assets/node_modules/bootstrap/scss/mixins/_text-emphasis.scss +17 -0
  156. data/assets/node_modules/bootstrap/scss/mixins/_text-hide.scss +11 -0
  157. data/assets/node_modules/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  158. data/assets/node_modules/bootstrap/scss/mixins/_transition.scss +16 -0
  159. data/assets/node_modules/bootstrap/scss/utilities/_background.scss +19 -0
  160. data/assets/node_modules/bootstrap/scss/utilities/_text.scss +72 -0
  161. data/assets/node_modules/bootstrap/scss/vendor/_rfs.scss +204 -0
  162. data/assets/node_modules/firebase/firebase-app.js +2 -0
  163. data/assets/node_modules/firebase/firebase-app.js.map +1 -0
  164. data/assets/node_modules/firebase/firebase-auth.js +2 -0
  165. data/assets/node_modules/firebase/firebase-auth.js.map +1 -0
  166. data/assets/node_modules/firebase/firebase-firestore.js +2 -0
  167. data/assets/node_modules/firebase/firebase-firestore.js.map +1 -0
  168. data/assets/node_modules/flag-icon-css/flags/1x1/br.svg +41 -41
  169. data/assets/node_modules/flag-icon-css/flags/1x1/mx.svg +371 -378
  170. data/assets/node_modules/flag-icon-css/flags/1x1/us.svg +2 -2
  171. data/assets/node_modules/flag-icon-css/sass/_flag-icon-list.scss +265 -249
  172. data/assets/node_modules/flag-icon-css/sass/_variables.scss +1 -1
  173. data/assets/node_modules/flag-icon-css/sass/flag-icon.scss +3 -4
  174. data/assets/node_modules/isotope-layout/dist/isotope.pkgd.min.js +12 -0
  175. data/assets/node_modules/jquery.stellar/jquery.stellar.min.js +9 -0
  176. data/assets/node_modules/jquery/dist/jquery.min.js +2 -0
  177. data/assets/node_modules/jquery/dist/jquery.min.map +1 -0
  178. data/assets/node_modules/jspdf/dist/jspdf.min.js +149 -88
  179. data/assets/node_modules/lightslider/dist/css/lightslider.min.css +3 -0
  180. data/assets/node_modules/lightslider/dist/img/controls.png +0 -0
  181. data/assets/node_modules/lightslider/dist/js/lightslider.min.js +4 -0
  182. data/assets/node_modules/lunr/lunr.min.js +6 -0
  183. data/assets/node_modules/vue/dist/vue.min.js +3 -3
  184. data/assets/vendors/revolution-slider/assets/coloredbg.png +0 -0
  185. data/assets/vendors/revolution-slider/assets/shadow3.png +0 -0
  186. data/assets/vendors/revolution-slider/css/settings.css +1480 -0
  187. data/assets/vendors/revolution-slider/font/revicons.svg +54 -0
  188. data/assets/vendors/revolution-slider/font/revicons.woff +0 -0
  189. data/assets/vendors/revolution-slider/js/jquery.themepunch.revolution.min.js +11 -0
  190. data/assets/vendors/revolution-slider/js/jquery.themepunch.tools.min.js +138 -0
  191. data/assets/vendors/revolution-slider/js/settings.js +110 -0
  192. data/assets/vendors/themeforest/fonts/social-icons.eot +0 -0
  193. data/assets/vendors/themeforest/fonts/social-icons.svg +403 -0
  194. data/assets/vendors/themeforest/fonts/social-icons.ttf +0 -0
  195. data/assets/vendors/themeforest/fonts/social-icons.woff +0 -0
  196. data/assets/vendors/themeforest/progressive/css/animate.css +1582 -0
  197. data/assets/vendors/themeforest/progressive/css/base.css +278 -0
  198. data/assets/vendors/themeforest/progressive/css/buttons.css +272 -0
  199. data/assets/vendors/themeforest/progressive/css/cms.css +289 -0
  200. data/assets/vendors/themeforest/progressive/css/responsive.css +2111 -0
  201. data/assets/vendors/themeforest/progressive/css/social-icons.css +130 -0
  202. data/assets/vendors/themeforest/progressive/css/style.css +9521 -0
  203. data/assets/vendors/themeforest/progressive/images/svg/loader.svg +34 -0
  204. data/assets/vendors/themeforest/progressive/js/jquery.appear.js +150 -0
  205. data/assets/vendors/themeforest/progressive/js/main.js +2176 -0
  206. metadata +189 -40
  207. data/_includes/body/footer.html +0 -0
  208. data/_includes/body/footer/buttons.html +0 -40
  209. data/_includes/body/header.html +0 -0
  210. data/_includes/body/header/logo.html +0 -5
  211. data/_includes/body/header/search-contact-phone-buttons.html +0 -29
  212. data/_includes/body/header/top-bar.html +0 -20
  213. data/_includes/body/scripts.html +0 -41
  214. data/_includes/head/firebase/sdk.html +0 -4
  215. data/_includes/head/google-analytics.html +0 -0
  216. data/_includes/head/scripts.html +0 -9
  217. data/_includes/head/style.html +0 -50
  218. data/_sass/components/navbars/_vg_progressive.scss +0 -44
  219. data/_sass/layouts/_grid.scss +0 -13
  220. data/assets/css/main.scss +0 -23
  221. data/assets/js/bootstrap/nav-tabs.js +0 -36
  222. data/assets/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +0 -229
  223. data/assets/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  224. data/assets/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  225. data/assets/node_modules/flag-icon-css/sass/_flag-icon-more.scss +0 -7
  226. data/assets/node_modules/font-awesome/css/font-awesome.min.css +0 -4
  227. data/assets/node_modules/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  228. data/assets/node_modules/font-awesome/fonts/fontawesome-webfont.svg +0 -2671
  229. data/assets/node_modules/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  230. data/assets/node_modules/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  231. data/assets/node_modules/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  232. data/assets/node_modules/jquery/dist/cdn/jquery.min.js +0 -4
@@ -0,0 +1,5 @@
1
+ <script>
2
+ jQuery(document).ready(function(){
3
+ jQuery("body").addClass("hidden-top");
4
+ });
5
+ </script>
@@ -0,0 +1,22 @@
1
+ <div data-component="videos/background">
2
+ <div id="cm-video-bg" class="full-width-box background-image-available">
3
+ <div class="fwb-bg fwb-video my-4 my-sm-0" style="background-image: url('https://s3-us-west-2.amazonaws.com/grupopv-public/assets/components/videos/background/{{ include.background }}');">
4
+ <video autoplay muted loop>
5
+ <source src="https://s3-us-west-2.amazonaws.com/grupopv-public/assets/components/videos/background/{{ include.video }}" type="video/mp4">
6
+ </video>
7
+ </div>
8
+ <div class="container-fluid">
9
+ <div class="row">
10
+ <div class="white text-center col">
11
+ <div class="title-box text-center title-white">
12
+ <h1 class="title">{{ include.title }}</h1>
13
+ </div>
14
+ <p>
15
+ {{ include.desc }}
16
+ </p>
17
+ <a href="{{ include.href | relative_url }}" class="btn btn-primary">{{ include.button }}</a>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </div>
@@ -0,0 +1,23 @@
1
+ {% if include.params.videos or page.resources.videos %}
2
+ {% assign ids = include.params.videos | default: page.resources.videos | split: ", " %}
3
+ <div class="row">
4
+ {% for id in ids %}
5
+ <div class="col-lg-6">
6
+ <iframe
7
+ id="ytplayer"
8
+ type="text/html"
9
+ width="100%"
10
+ height="350"
11
+ class="my-3"
12
+ src="https://www.youtube.com/embed/{{ id }}?rel=0&modestbranding=1"
13
+ frameborder="0"
14
+ gesture="media"
15
+ allow="encrypted-media"
16
+ allowfullscreen>
17
+ </iframe>
18
+ </div>
19
+ {% endfor %}
20
+ </div>
21
+ {% else %}
22
+ <p>{{ site.data.i18n.common.product-layout[site.lang].videos-empty }}</p>
23
+ {% endif %}
@@ -0,0 +1,9 @@
1
+ <!--Start of Zendesk Chat Script-->
2
+ <script type="text/javascript">
3
+ window.$zopim||(function(d,s){var z=$zopim=function(c){z._.push(c)},$=z.s=
4
+ d.createElement(s),e=d.getElementsByTagName(s)[0];z.set=function(o){z.set.
5
+ _.push(o)};z._=[];z.set._=[];$.async=!0;$.setAttribute("charset","utf-8");
6
+ $.src="https://v2.zopim.com/?{{ site.zendesk }}";z.t=+new Date;$.
7
+ type="text/javascript";e.parentNode.insertBefore($,e)})(document,"script");
8
+ </script>
9
+ <!--End of Zendesk Chat Script-->
@@ -0,0 +1,22 @@
1
+ <script>
2
+ function getLatlng(id) {
3
+ address = document.getElementById(id);
4
+ url = address.children[1].children[4].getAttribute('src');
5
+
6
+ address.setAttribute(
7
+ 'data-coordinates',
8
+ url
9
+ .replace(/^.*!3d/,'')
10
+ .replace(/![23]m[23].*/,'')
11
+ + ', ' +
12
+ url
13
+ .replace(/^.*!2d/,'')
14
+ .replace(/!3d.*/,'')
15
+ );
16
+ }
17
+
18
+ var iframes_count = document.querySelectorAll(".branch-info").length;
19
+ for (i = 1; i <= iframes_count; i++) {
20
+ getLatlng('branch-' + i + '-info');
21
+ }
22
+ </script>
@@ -4,13 +4,19 @@
4
4
 
5
5
  <head>
6
6
 
7
- {% seo %}
8
- {% include head/meta.html %}
9
- {% include head/scripts.html %}
10
- {% include head/firebase/sdk.html %}
11
- {% include head/fonts.html %}
12
- {% include head/style.html %}
13
- {% include head/google-analytics.html %}
7
+ {% if site.title == 'Grupo PV' %}
8
+ {% seo %}
9
+ {% else %}
10
+ <title>{{ page.title }}</title>
11
+ {% seo title=false %}
12
+ {% endif %}
13
+
14
+ {% include components/meta/progressive.html %}
15
+ {% include components/scripts/head.js %}
16
+ {% include components/firebase/sdk.html %}
17
+ {% include components/fonts/google.html %}
18
+ {% include components/stylesheets/progressive.html %}
19
+ {% include components/analytics/google.js %}
14
20
 
15
21
  </head>
16
22
 
@@ -18,13 +24,25 @@
18
24
 
19
25
  <div class="page-box">
20
26
  <div class="page-box-content">
21
- {% include body/header.html %}
22
- {{ content }}
27
+
28
+ {% include components/topbars/progressive.html %} <!-- end top-bar -->
29
+
30
+ <header class="header header-two">
31
+ <div class="header-wrapper">
32
+
33
+ {% include components/navbars/progressive.html %} <!-- end progressive-navbar -->
34
+ {% include components/navbars/bootstrap.html %} <!-- end bootstrap-navbar -->
35
+
36
+ </div>
37
+ </header> <!-- end header -->
38
+
39
+ {{ content }} <!-- end content -->
40
+
23
41
  </div>
24
- </div>
42
+ </div> <!-- end page-box -->
25
43
 
26
- {% include body/footer.html %}
27
- {% include body/scripts.html %}
44
+ {% include components/footers/progressive/footer.html %} <!-- end footer -->
45
+ {% include components/scripts/body.js %} <!-- end scripts -->
28
46
 
29
47
  </body>
30
48
 
@@ -1,34 +1,40 @@
1
1
  ---
2
2
  layout: page
3
3
  ---
4
- <div class="container" data-layout="grid">
4
+ <script src="{{ '/assets/node_modules/isotope-layout/dist/isotope.pkgd.min.js' | relative_url }}"></script>
5
+
6
+ <div class="container-fluid" data-layout="grid">
5
7
  <div class="row">
6
- {% assign collections = site.collections | where: "label", page.collection %}
7
- {% for collection in collections %}
8
- {% assign docs = collection.docs | where: "menu-father", page.menu-name %}
9
- {% for doc in docs %}
10
- {% assign url-size = doc.url | size | minus: 2 %}
11
- {% assign i18n-id = doc.url | slice: 1,url-size | replace: '/', '-' | remove_first: collection.label | remove_first: '-' %}
12
- {% assign i18n-title = site.data.i18n.catalog[collection.label][site.lang][i18n-id].title %}
13
- {% if doc.i18n[site.lang].description %}
14
- {% assign i18n-description = doc.i18n[site.lang].description %}
15
- {% else %}
16
- {% assign i18n-description = site.data.i18n.catalog[collection.label][site.lang][i18n-id].desc %}
17
- {% endif %}
18
- <div class="col-xs-12 col-sm-4 col-md-3">
19
- <div>
20
- <a {% if doc.menu-name or collection.products.detail or doc.menu-name %}{{ doc.url | prepend: 'href="' | append: '"' }}{% endif %}>
21
- <img id="{{ i18n-id }}" class="product-image" src="{{ doc.image }}" alt="{% if i18n-title %}{{ i18n-title }}{% else %}{{ doc.title }}{% endif %}" />
22
- </a>
23
- </div>
24
- <div class="product-model">
25
- <a id="{{ i18n-id }}" {% if doc.menu-name or collection.products.detail or doc.menu-name %}{{ doc.url | prepend: 'href="' | append: '"' }}{% endif %}>{% if i18n-title %}{{ i18n-title }}{% else %}{{ doc.title }}{% endif %}</a>
26
- </div>
27
- <div class="product-brand">{{ doc.brand }} {{ doc.commercial }}</div>
28
- <div id="{{ i18n-id }}" class="product-description">{% if i18n-description %}{{ i18n-description }}{% else %}{{ doc.description }}{% endif %}</div>
29
- <div class="product-price"><span class="label label-primary">{% if doc.price %}{{ doc.price | prepend: '$ ' }}{% endif %}{% assign doc-price-size = doc.price | downcase | split: '.' | last | size %}{% if doc-price-size == 1 %}{{ "0" }}{% endif %}{% if doc.currency %}{{ doc.currency | prepend: ' ' }}{% endif %}</span></div>
30
- </div>
31
- {% endfor %}
32
- {% endfor %}
8
+
9
+ <div class="col-4 col-md-3 col-xl-2">
10
+ {% include components/filters/isotope.html %}
11
+ </div>
12
+
13
+ <div class="col-8 col-md-9 col-xl-10">
14
+ <div class="row grid">
15
+ {% assign collections = site.collections | where: "label", page.collection %}
16
+ {% for collection in collections %}
17
+ {% assign docs = collection.docs | where: "menu-father", page.menu-name %}
18
+ {% for doc in docs %}
19
+ {% assign url-size = doc.url | size | minus: 2 %}
20
+ {% assign i18n-id = doc.url | slice: 1,url-size | replace: '/', '-' | remove_first: collection.label | remove_first: '-' %}
21
+ {% assign i18n-title = site.data.i18n.catalog[collection.label][site.lang][i18n-id].title %}
22
+ {% if site.links.product[i18n-id].disabled == null %}
23
+ {% if doc.i18n[site.lang].description %}
24
+ {% assign i18n-description = doc.i18n[site.lang].description %}
25
+ {% else %}
26
+ {% assign i18n-description = site.data.i18n.catalog[collection.label][site.lang][i18n-id].desc %}
27
+ {% endif %}
28
+ {% include components/product-cards/progressive.html %}
29
+ {% endif %}
30
+ {% endfor %}
31
+ {% endfor %}
32
+ </div>
33
+ </div>
34
+
33
35
  </div>
34
36
  </div> <!-- /container -->
37
+
38
+ <script type="text/javascript">
39
+ {% include components/filters/isotope.js %}
40
+ </script>
@@ -2,7 +2,7 @@
2
2
  layout: default
3
3
  ---
4
4
  {% if page.layout == "product" %}
5
- {% assign class = 'hide' %}
5
+ {% assign class = 'd-none' %}
6
6
  {% else %}
7
7
  {% assign url-size = page.url | size | minus: 2 %}
8
8
  {% assign i18n-id = page.url | slice: 1,url-size | replace: '/', '-' | remove_first: page.collection | remove_first: '-' %}
@@ -16,54 +16,10 @@ layout: default
16
16
  {% endif %}
17
17
  {% endif %}
18
18
 
19
- <nav class="breadcrumb-component" aria-label="breadcrumb">
20
- <ol id="breadcrumb" class="breadcrumb">
21
- {% for level in (-1..page.categories.size) %}
22
- {% if forloop.first %}
23
- <li class="breadcrumb-item home"><a href="{{ '/' | relative_url }}"><span class="glyphicon glyphicon-home"></span></a></li>
24
- <li class="breadcrumb-item ellipsis hidden-xs hidden-sm hidden-md hidden-lg">...</li>
25
- {% if page.menu-father %}
26
- <li class="breadcrumb-item {{ page.collection }}"><a href="{{ page.collection | prepend: '/' | relative_url }}">{% if site.data.i18n.catalog[page.collection][site.lang][page.collection].title %}{{ site.data.i18n.catalog[page.collection][site.lang][page.collection].title }}{% else %}{{ page.collection | capitalize }}{% endif %}</a></li>
27
- {% endif %}
28
- {% elsif forloop.last %}
29
- <li class="breadcrumb-item {{ i18n-id }} active" aria-current="page">{% if i18n-title %}{{ i18n-title }}{% else %}{{ page.title }}{% endif %}</li>
30
- {% else %}
31
- {% assign cat-num = forloop.index %}
32
- {% assign url-size = page.url | size | minus: 2 %}
33
- {% assign sections = page.url | slice: 1,url-size | split : '/' %}
34
- {% capture level-url %}
35
- {% for section in sections %}
36
- {% if forloop.index > cat-num %} {% break %} {% endif %}
37
- {{ section | append: '/' }}
38
- {% endfor %}
39
- {% endcapture %}
40
- {% assign level-url = level-url | strip_newlines | replace: ' ', '' | relative_url %}
41
- {% assign level-url-size = level-url | size | minus: 2 %}
42
- {% assign level-i18n-id = level-url | slice: 1,level-url-size | replace: '/', '-' | remove_first: page.collection | remove_first: '-' %}
43
- {% assign level-i18n-title = site.data.i18n.catalog[page.collection][site.lang][level-i18n-id].title %}
44
- {% assign page-commercial-downcase = page.commercial | downcase | replace: ' ', '-' %}
45
- {% unless page.categories[level] == page-commercial-downcase %}
46
- <li class="breadcrumb-item {{ level-i18n-id }}"><a href="{{ level-url }}">{% if level-i18n-title %}{{ level-i18n-title }}{% else %}{{ page.categories[level] | replace: '-', ' ' | capitalize }}{% endif %}</a></li>
47
- {% endunless %}
48
- {% endif %}
49
- {% endfor %}
50
- </ol>
51
- </nav>
19
+ {% include components/breadcrumbs/bootstrap.html %}
52
20
 
53
- <script>
54
- var items = $('#breadcrumb > li.breadcrumb-item');
55
- if (items.length > 3){
56
- if (items.length > 4) $('li.breadcrumb-item.ellipsis').removeClass('hidden-xs');
57
- if (items.length > 5) $('li.breadcrumb-item.ellipsis').removeClass('hidden-sm');
58
- items.each(function( index ) {
59
- if (index > 1 && index < items.length-3) $(this).addClass('hidden-sm');
60
- if (index > 1 && index < items.length) if (index != items.length-2) $(this).addClass('hidden-xs');
61
- });
62
- }
63
- </script>
64
-
65
- <h2 id="{{ i18n-id }}" class="post {{ class }}">{% if i18n-title %}{{ i18n-title }}{% else %}{{ page.title }}{% endif %}</h2>
66
- <h3 id="{{ i18n-id }}" class="post {{ class }}">{% if i18n-subtitle %}{{ i18n-subtitle }}{% else %}{{ page.subtitle }}{% endif %}</h3>
21
+ <h2 id="{{ i18n-id }}" class="post text-muted {{ class }}">{% if i18n-title %}{{ i18n-title }}{% else %}{{ page.title }}{% endif %}</h2>
22
+ <h3 id="{{ i18n-id }}" class="post text-muted {{ class }}">{% if i18n-subtitle %}{{ i18n-subtitle }}{% else %}{{ page.subtitle }}{% endif %}</h3>
67
23
 
68
24
  <div class="post">
69
25
  <div id="sign-in-content"></div>
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  layout: page
3
- tabs: [description, downloads, videos, special-offers]
3
+ tabs:
4
+ - { name: description, component: product-cards/product-details }
5
+ - { name: downloads, component: assets/file-downloads }
6
+ - { name: videos, component: videos/youtube }
7
+ - { name: special-offers, component: generators/pdf/special-offers }
4
8
  special-offers:
5
9
  format: letter
6
10
  orientation: portrait
@@ -10,181 +14,32 @@ special-offers:
10
14
  margin: 0.25
11
15
  dpi: 300
12
16
  ---
13
- <script src="/assets/node_modules/jspdf/dist/jspdf.min.js"></script>
14
17
  {% assign url-size = page.url | size | minus: 2 %}
15
18
  {% assign i18n-id = page.url | slice: 1,url-size | replace: '/', '-' | remove_first: page.collection | remove_first: '-' %}
16
- {% if page.i18n[site.lang].title %}
17
- {% assign i18n-title = page.i18n[site.lang].title %}
18
- {% else %}
19
- {% assign i18n-title = site.data.i18n.catalog[page.collection][site.lang][i18n-id].title %}
20
- {% endif %}
21
- {% if page.i18n[site.lang].description %}
22
- {% assign i18n-description = page.i18n[site.lang].description %}
23
- {% else %}
24
- {% assign i18n-description = site.data.i18n.catalog[page.collection][site.lang][i18n-id].desc %}
25
- {% endif %}
26
- <div class="container">
27
- <div class="row">
28
- <div id="product-images" class="col-xs-12 col-sm-12 col-md-4">
29
- <div class="product-images">
30
- <ul id="lightSlider">
31
- {% if page.resources.product-images.quantity %}
32
- {% assign images-count = page.resources.product-images.quantity %}
33
- {% else %}
34
- {% assign images-count = 1 %}
35
- {% endif %}
36
- {% for product-image in (1..images-count) %}
37
- {% assign page-categories-size = page.categories | size %}
38
- {% if page-categories-size >= 1 %}
39
- {% assign page-categories = page.categories | join: "/" | append: "/" %}
40
- {% endif %}
41
- {% if forloop.index == 1 %}
42
- {% assign image-num = '' %}
43
- {% elsif forloop.index < 10 %}
44
- {% assign image-num = forloop.index | prepend: "_0" %}
45
- {% else %}
46
- {% assign image-num = forloop.index | prepend: "_" %}
47
- {% endif %}
48
- {% capture product-image-url %}
49
- {{ site.amazon-s3 }}/assets/img/catalog/thumbnails/{{ page.collection }}/{{ page-categories }}{% if page.resources.product-images.model %}{{ page.resources.product-images.model | downcase }}{% else %}{{ page.title | downcase }}{% endif %}{{ image-num | append: ".png" }}
50
- {% endcapture %}
51
- <li data-thumb="{{ product-image-url }}">
52
- <img src="{{ product-image-url }}" class="img-center" alt="{% if i18n-title %}{{ i18n-title }}{% else %}{{ page.title }}{% endif %}" />
53
- </li>
54
- {% endfor %}
55
- </ul>
19
+ {% if site.links.product[i18n-id].disabled == null %}
20
+ <script src="{{ '/assets/node_modules/jspdf/dist/jspdf.min.js' | relative_url }}"></script>
21
+ {% if page.i18n[site.lang].title %}
22
+ {% assign i18n-title = page.i18n[site.lang].title %}
23
+ {% else %}
24
+ {% assign i18n-title = site.data.i18n.catalog[page.collection][site.lang][i18n-id].title %}
25
+ {% endif %}
26
+ {% if page.i18n[site.lang].description %}
27
+ {% assign i18n-description = page.i18n[site.lang].description %}
28
+ {% else %}
29
+ {% assign i18n-description = site.data.i18n.catalog[page.collection][site.lang][i18n-id].desc %}
30
+ {% endif %}
31
+ <div class="container">
32
+ <div class="row">
33
+ <div id="product-images" class="col-xs-12 col-sm-12 col-md-4">
34
+ {% include components/sliders/lightslider.html %}
56
35
  </div>
36
+ {% include components/product-cards/product-generals.html %}
57
37
  </div>
58
- <div id="product-generals" class="col-xs-12 col-sm-12 col-md-8">
59
- <h3 id="{{ i18n-id }}" class="product-description">{% if i18n-description %}{{ i18n-description }}{% else %}{{ page.description }}{% endif %}</h3>
60
- <p id="{{ i18n-id }}" class="product-model">{{ site.data.i18n.common.product-layout[site.lang].model }}: <strong>{% if i18n-title %}{{ i18n-title }}{% else %}{{ page.title }}{% endif %}</strong></p>
61
- <p id="{{ i18n-id }}" class="product-brand">{{ site.data.i18n.common.product-layout[site.lang].brand }}: <strong>{{ page.brand }}</strong></p>
62
- <p id="{{ i18n-id }}" class="product-commercial {% unless page.commercial %}{{ 'hide' }}{% endunless %}">{{ site.data.i18n.common.product-layout[site.lang].commercial }}: <strong>{{ page.commercial }}</strong></p>
63
- <div id="{{ i18n-id }}" class="product-price"><span class="label label-primary">{% if page.price %}{{ page.price | prepend: '$ ' }}{% endif %}{% assign price-size = page.price | downcase | split: '.' | last | size %}{% if price-size == 1 %}{{ "0" }}{% endif %}{% if page.currency %}{{ page.currency | prepend: ' ' }}{% endif %}</span></div>
38
+ <div>
39
+ {% include components/nav-tabs/product-nav-tab.html tabs=layout.tabs %}
64
40
  </div>
65
- </div>
66
- <div class="row">
67
-
68
- <ul class="nav nav-tabs nav-justified">
69
- {% for tab in layout.tabs %}
70
- <li role="presentation" {% if forloop.first == true %}class="active"{% endif %}{% if site.original and tab == 'special-offers' %}class="hide"{% endif %}><a data-toggle="tab" href="#{{ tab| downcase | replace: ' ', '-' }}">{{ site.data.i18n.common.product-layout[site.lang][tab] }}</a></li>
71
- {% endfor %}
72
- </ul>
73
-
74
- <div class="tab-content">
75
- {% for tab in layout.tabs %}
76
- <div id="{{ tab | downcase | replace: ' ', '-' }}" class="tab-pane fade {% if forloop.first == true %}in active{% endif %}">
77
- <div class="container">
78
- {% case forloop.index %}
79
-
80
- {% when 1 %}
81
- <p>
82
- {% for resource in page.resources.spec-sheets.catalog %}
83
- <img src="{{ site.amazon-s3 }}{{ resource }}" alt="{{ page.title }}" class="img-center">
84
- {% endfor %}
85
- </p>
86
- {{ page.i18n[site.lang].detailed_desc | default: page.detailed_desc }}
87
- {{ content }}
88
-
89
- {% when 2 %}
90
- {% if page.resources.downloads %}
91
- {% for resource in page.resources.downloads %}
92
- {% assign i18n-resource-text = page.i18n[site.lang].resources.downloads[forloop.index0].text %}
93
- <p>
94
- <a class="btn btn-primary btn-sm" href="{{ site.amazon-s3 }}{{ resource.link }}">
95
- <strong><span class="glyphicon glyphicon-download-alt"></span> {{ site.data.i18n.common.product-layout[site.lang].download }}</strong>
96
- </a>
97
- <span class="product-downloads">
98
- {% if i18n-resource-text %}{{ i18n-resource-text }}{% else %}{{ resource.text }}{% endif %}
99
- </span>
100
- </p>
101
- {% endfor %}
102
- {% else %}
103
- <p>{{ site.data.i18n.common.product-layout[site.lang].downloads-empty }}</p>
104
- {% endif %}
105
-
106
- {% when 3 %}
107
- {% if page.resources.videos %}
108
- {% assign ids = page.resources.videos | split: ", " %}
109
- {% for id in ids %}
110
- <div class="col-xs-12 col-sm-12 col-md-6">
111
- <iframe
112
- id="ytplayer"
113
- type="text/html"
114
- width="100%"
115
- height="350"
116
- src="https://www.youtube.com/embed/{{ id }}?rel=0&modestbranding=1"
117
- frameborder="0"
118
- gesture="media"
119
- allow="encrypted-media"
120
- allowfullscreen>
121
- </iframe>
122
- </div>
123
- {% endfor %}
124
- {% else %}
125
- <p>{{ site.data.i18n.common.product-layout[site.lang].videos-empty }}</p>
126
- {% endif %}
127
-
128
- {% else %}
129
- {% if page.resources.special-offers.quantity > 0 %}
130
- {% unless site.original %}
131
- <p>
132
- {% for resource in (1..page.resources.special-offers.quantity) %}
133
- {% assign page-categories-size = page.categories | size %}
134
- {% if page-categories-size >= 1 %}
135
- {% assign page-categories = page.categories | join: "/" | append: "/" %}
136
- {% endif %}
137
- {% if forloop.index == 1 %}
138
- {% assign image-num = '' %}
139
- {% elsif forloop.index < 10 %}
140
- {% assign image-num = forloop.index | prepend: "_0" %}
141
- {% else %}
142
- {% assign image-num = forloop.index | prepend: "_" %}
143
- {% endif %}
144
- <div class="marketing-theme content-right">
145
- <a class="btn btn-primary btn-sm" onclick="specialOffersPDF{{ forloop.index }}();">
146
- <strong><span class="glyphicon glyphicon-download-alt"></span> {{ site.data.i18n.common.product-layout[site.lang].download }}</strong>
147
- </a>
148
- </div>
149
- <div id="special-offers-{{ forloop.index }}">
150
- <img id="special-offers-promo{{ forloop.index }}" src="/img/special-offers/{{ page.collection }}/{{ page-categories }}{% if page.resources.special-offers.model %}{{ page.resources.special-offers.model | downcase }}{% else %}{{ page.title | downcase }}{% endif %}{{ image-num | append: '.png' }}" alt="{{ page.title }}" title="{{ page.title }}">
151
- <img id="special-offers-data{{ forloop.index }}" src="/img/special-offers/customers/{{ site.domain | replace:'.',' ' | truncatewords: 1,"" }}.png" alt="{{ page.title }}" title="{{ page.title }}">
152
- <canvas id="special-offers-promoCanvas{{ forloop.index }}" class="hide" width="{{ layout.special-offers.width | times: layout.special-offers.dpi }}" height="{{ layout.special-offers.height | times: layout.special-offers.dpi }}"></canvas>
153
- <canvas id="special-offers-dataCanvas{{ forloop.index }}" class="hide" width="{{ layout.special-offers.width | times: layout.special-offers.dpi }}" height="{{ layout.special-offers.height | minus: 10.5 | times: layout.special-offers.dpi | times: -1 }}"></canvas>
154
- </div>
155
- <script>
156
- function specialOffersPDF{{ forloop.index }}(){
157
- var doc = new jsPDF({
158
- orientation: '{{ layout.special-offers.orientation }}',
159
- unit: '{{ layout.special-offers.unit }}',
160
- format: '{{ layout.special-offers.format }}'
161
- })
162
- var promo = document.getElementById("special-offers-promo{{ forloop.index }}");
163
- var promoCanvas = document.getElementById("special-offers-promoCanvas{{ forloop.index }}");
164
- var data = document.getElementById("special-offers-data{{ forloop.index }}");
165
- var dataCanvas = document.getElementById("special-offers-dataCanvas{{ forloop.index }}");
166
- promoCanvas.getContext("2d").drawImage(promo, 0, 0);
167
- dataCanvas.getContext("2d").drawImage(data, 0, 0);
168
- doc.addImage(promoCanvas.toDataURL(), 'PNG', {{ layout.special-offers.margin }}, {{ layout.special-offers.margin }}, {{ layout.special-offers.width }}, {{ layout.special-offers.height }},'promoImg','FAST')
169
- doc.addImage(dataCanvas.toDataURL(), 'PNG', {{ layout.special-offers.margin }}, {{ layout.special-offers.margin }} + {{ layout.special-offers.height }}, {{ layout.special-offers.width }}, {{ 11 | minus: layout.special-offers.margin | minus: layout.special-offers.margin }} - {{ layout.special-offers.height }},'dataImg','FAST')
170
- doc.save('{{ page.title }}.pdf')
171
- }
172
- </script>
173
- {% endfor %}
174
- </p>
175
- {% endunless %}
176
- {% else %}
177
- <p>{{ site.data.i18n.common.product-layout[site.lang].special-offers-empty }}</p>
178
- {% endif %}
179
-
180
- {% endcase %}
181
-
182
- </div>
183
- </div>
184
- {% endfor %}
185
- </div>
186
-
187
- </div>
188
- </div> <!-- /container -->
189
- <script src="/js/sliders/lightslider.js"></script>
190
- <script src="/assets/js/bootstrap/nav-tabs.js"></script>
41
+ </div> <!-- /container -->
42
+ {% include components/nav-tabs/product-nav-tab.js %}
43
+ {% else %}
44
+ <script type="text/javascript">window.location.href = "/"</script>
45
+ {% endif %}