j1-template 2020.0.7 → 2020.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (341) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/ads/ad.html +64 -0
  3. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +1 -1
  4. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +3 -2
  5. data/_includes/themes/j1/layouts/content_generator_collection.html +3 -1
  6. data/_includes/themes/j1/layouts/content_generator_page.html +3 -1
  7. data/_includes/themes/j1/layouts/content_generator_post.html +12 -11
  8. data/_includes/themes/j1/layouts/layout_metadata_generator.html +141 -4
  9. data/_includes/themes/j1/modules/connectors/ad/custom-provider.html +6 -9
  10. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +9 -6
  11. data/_includes/themes/j1/modules/connectors/ads +3 -6
  12. data/_includes/themes/j1/modules/navigator/generator.html +6 -6
  13. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +10 -5
  14. data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
  15. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +7 -7
  16. data/_layouts/default.html +18 -8
  17. data/assets/data/authclient.html +19 -8
  18. data/assets/data/banner.html +24 -23
  19. data/assets/data/carousel.json +31 -21
  20. data/assets/data/cookie_consent.html +81 -52
  21. data/assets/data/footer.html +15 -5
  22. data/assets/data/galleries.json +91 -81
  23. data/assets/data/gallery_customizer.html +20 -10
  24. data/assets/data/mdi_icons.json +56 -1
  25. data/assets/data/menu.html +14 -6
  26. data/assets/data/mmenu.html +47 -93
  27. data/assets/data/mmenu_sidebar.html +41 -44
  28. data/assets/data/mmenu_toc.html +20 -3
  29. data/assets/data/panel.html +35 -22
  30. data/assets/data/quicklinks.html +15 -3
  31. data/assets/data/{search.yml → search.json} +44 -14
  32. data/assets/data/ssm.html +30 -14
  33. data/assets/data/themes.json +17 -6
  34. data/assets/data/twa_v1.json +7035 -6978
  35. data/assets/themes/j1/adapter/js/algolia.js +34 -15
  36. data/assets/themes/j1/adapter/js/attic.js +66 -45
  37. data/assets/themes/j1/adapter/js/carousel.js +43 -22
  38. data/assets/themes/j1/adapter/js/clipboard.js +232 -0
  39. data/assets/themes/j1/adapter/js/cookie_consent.js +21 -4
  40. data/assets/themes/j1/adapter/js/framer.js +18 -3
  41. data/assets/themes/j1/adapter/js/gallery_customizer.js +27 -10
  42. data/assets/themes/j1/adapter/js/j1.js +349 -759
  43. data/assets/themes/j1/adapter/js/{justified_gallery.js → jf_gallery.js} +64 -38
  44. data/assets/themes/j1/adapter/js/lightbox.js +20 -3
  45. data/assets/themes/j1/adapter/js/logger.js +23 -6
  46. data/assets/themes/j1/adapter/js/mdb.js +167 -0
  47. data/assets/themes/j1/adapter/js/mmenu.js +29 -11
  48. data/assets/themes/j1/adapter/js/navigator.js +126 -139
  49. data/assets/themes/j1/adapter/js/searcher.js +22 -4
  50. data/assets/themes/j1/adapter/js/ssm.js +96 -63
  51. data/assets/themes/j1/adapter/js/themer.js +35 -52
  52. data/assets/themes/j1/adapter/js/toccer.js +69 -158
  53. data/assets/themes/j1/core/css/theme_extensions.css +120 -1230
  54. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  55. data/assets/themes/j1/core/css/uno.css +253 -1275
  56. data/assets/themes/j1/core/css/uno.min.css +1 -1
  57. data/assets/themes/j1/core/css/vendor.css +7 -57
  58. data/assets/themes/j1/core/css/vendor.min.css +2 -2
  59. data/assets/themes/j1/core/js/template.js +16 -86
  60. data/assets/themes/j1/core/js/template.js.map +1 -1
  61. data/assets/themes/j1/core/js/template.min.js +1 -1
  62. data/assets/themes/j1/extensions/bsDatepicker/css/datepicker.css +203 -0
  63. data/assets/themes/j1/extensions/bsDatepicker/css/theme/uno.css +235 -0
  64. data/assets/themes/j1/extensions/bsDatepicker/js/datepicker.js +509 -0
  65. data/assets/themes/j1/extensions/bsDatepicker/less/datepicker.less +122 -0
  66. data/assets/themes/j1/extensions/bsThemeSwitcher/js/switcher.js +425 -0
  67. data/assets/themes/j1/extensions/bsThemeSwitcher/js/switcher.min.js +20 -0
  68. data/assets/themes/j1/extensions/clipboard/LICENSE +20 -0
  69. data/assets/themes/j1/extensions/clipboard/css/theme/uno.css +52 -0
  70. data/assets/themes/j1/extensions/clipboard/css/theme/uno.min.css +52 -0
  71. data/assets/themes/j1/extensions/clipboard/js/clipboard.js +975 -0
  72. data/assets/themes/j1/extensions/clipboard/js/clipboard.min.js +7 -0
  73. data/assets/themes/j1/extensions/{iconify → iconifyAPI}/js/iconify.min.js +0 -0
  74. data/assets/themes/j1/extensions/iframeResizer/LICENSE +21 -0
  75. data/assets/themes/j1/extensions/iframeResizer/examples/frame.absolute.html +127 -0
  76. data/assets/themes/j1/extensions/iframeResizer/examples/frame.content.html +157 -0
  77. data/assets/themes/j1/extensions/iframeResizer/examples/frame.hover.html +68 -0
  78. data/assets/themes/j1/extensions/iframeResizer/examples/frame.nested.html +100 -0
  79. data/assets/themes/j1/extensions/iframeResizer/examples/frame.textarea.html +45 -0
  80. data/assets/themes/j1/extensions/iframeResizer/examples/frame.tolerance.html +113 -0
  81. data/assets/themes/j1/extensions/iframeResizer/examples/index.html +83 -0
  82. data/assets/themes/j1/extensions/iframeResizer/examples/two.html +88 -0
  83. data/assets/themes/j1/extensions/iframeResizer/js/client/iframeResizer.contentWindow.js +1288 -0
  84. data/assets/themes/j1/extensions/iframeResizer/js/client/iframeResizer.contentWindow.map +1 -0
  85. data/assets/themes/j1/extensions/iframeResizer/js/client/iframeResizer.contentWindow.min.js +10 -0
  86. data/assets/themes/j1/extensions/iframeResizer/js/iframeResizer.js +1390 -0
  87. data/assets/themes/j1/extensions/iframeResizer/js/iframeResizer.map +1 -0
  88. data/assets/themes/j1/extensions/iframeResizer/js/iframeResizer.min.js +9 -0
  89. data/assets/themes/j1/extensions/jqMouseWheel/README.md +76 -0
  90. data/assets/themes/j1/extensions/jqMouseWheel/js/jquery.mousewheel.js +221 -0
  91. data/assets/themes/j1/extensions/jqMouseWheel/js/jquery.mousewheel.min.js +9 -0
  92. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/LICENSE +0 -0
  93. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/README.md +0 -0
  94. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/css/justifiedGallery.css +0 -0
  95. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/css/justifiedGallery.min.css +0 -0
  96. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/css/theme/uno.css +0 -0
  97. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/js/justifiedGallery.3.7.0.js +0 -0
  98. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/js/justifiedGallery.js +0 -0
  99. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/js/justifiedGallery.min.js +0 -0
  100. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/less/.csslintrc +0 -0
  101. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/less/justifiedGallery.less +0 -0
  102. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v4.0.0/css/justifiedGallery.css +0 -0
  103. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v4.0.0/css/justifiedGallery.min.css +0 -0
  104. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v4.0.0/css/theme/uno.css +0 -0
  105. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v4.0.0/js/jquery.justifiedGallery.js +0 -0
  106. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v4.0.0/js/jquery.justifiedGallery.min.js +0 -0
  107. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/css/justifiedGallery.css +0 -0
  108. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/css/justifiedGallery.min.css +0 -0
  109. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/css/theme/uno.css +0 -0
  110. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/css/theme/uno.min.css +0 -0
  111. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/js/justifiedGallery.js +0 -0
  112. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/js/justifiedGallery.min.js +0 -0
  113. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lg-fb-comment-box.css +0 -0
  114. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lg-fb-comment-box.min.css +0 -0
  115. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lg-transitions.css +0 -0
  116. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lg-transitions.min.css +0 -0
  117. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lightgallery.css +0 -0
  118. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lightgallery.min.css +0 -0
  119. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/fonts/lg.eot +0 -0
  120. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/fonts/lg.svg +0 -0
  121. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/fonts/lg.ttf +0 -0
  122. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/fonts/lg.woff +0 -0
  123. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/img/loading.gif +0 -0
  124. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/img/video-play.png +0 -0
  125. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/img/vimeo-play.png +0 -0
  126. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/img/youtube-play.png +0 -0
  127. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/animation-w.png +0 -0
  128. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/customize-w.png +0 -0
  129. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/dynamic-w.png +0 -0
  130. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/facebook-icon.svg +0 -0
  131. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/googleplus-icon.svg +0 -0
  132. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/html5-w.png +0 -0
  133. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/linked-in.png +0 -0
  134. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/module-w.png +0 -0
  135. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/play-button.png +0 -0
  136. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/responsive-w.png +0 -0
  137. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/thumb-w.png +0 -0
  138. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/touch-w.png +0 -0
  139. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/twitter-icon.svg +0 -0
  140. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/twitter.png +0 -0
  141. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/video1-w.png +0 -0
  142. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/zoom-w.png +0 -0
  143. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/zoom.png +0 -0
  144. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/uno.css +1 -1
  145. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/uno.min.css +1 -1
  146. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/core/lightgallery.js +0 -0
  147. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/core/lightgallery.min.js +0 -0
  148. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/j1/j1-video.js +0 -0
  149. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/j1/j1-video.min.js +0 -0
  150. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-autoplay.js +0 -0
  151. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-autoplay.min.js +0 -0
  152. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-fullscreen.js +0 -0
  153. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-fullscreen.min.js +0 -0
  154. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-hash.js +0 -0
  155. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-hash.min.js +0 -0
  156. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-pager.js +0 -0
  157. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-pager.min.js +0 -0
  158. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-share.js +0 -0
  159. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-share.min.js +0 -0
  160. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-thumbnail.js +0 -0
  161. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-thumbnail.min.js +0 -0
  162. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-video.js +0 -0
  163. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-video.min.js +0 -0
  164. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-zoom.js +0 -0
  165. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-zoom.min.js +0 -0
  166. data/assets/themes/j1/extensions/lightbox/LICENSE +22 -0
  167. data/assets/themes/j1/extensions/lightbox/css/lightbox.css +224 -0
  168. data/assets/themes/j1/extensions/lightbox/css/lightbox.min.css +21 -0
  169. data/assets/themes/j1/extensions/lightbox/css/theme/uno.css +25 -0
  170. data/assets/themes/j1/extensions/lightbox/css/theme/uno.min.css +26 -0
  171. data/{lib/starter_web/assets/images/modules/lightbox → assets/themes/j1/extensions/lightbox/images}/close.png +0 -0
  172. data/{lib/starter_web/assets/images/modules/lightbox → assets/themes/j1/extensions/lightbox/images}/loading.gif +0 -0
  173. data/{lib/starter_web/assets/images/modules/lightbox → assets/themes/j1/extensions/lightbox/images}/next.png +0 -0
  174. data/{lib/starter_web/assets/images/modules/lightbox → assets/themes/j1/extensions/lightbox/images}/prev.png +0 -0
  175. data/assets/themes/j1/extensions/lightbox/js/lightbox.js +583 -0
  176. data/assets/themes/j1/extensions/lightbox/js/lightbox.min.js +35 -0
  177. data/assets/themes/j1/extensions/mmenuLight/css/mmenu.css +392 -0
  178. data/assets/themes/j1/extensions/mmenuLight/css/mmenu.min.css +393 -0
  179. data/assets/themes/j1/extensions/mmenuLight/css/theme/uno.css +170 -0
  180. data/assets/themes/j1/extensions/mmenuLight/css/theme/uno.min.css +169 -0
  181. data/assets/themes/j1/extensions/mmenuLight/js/mmenu.js +30 -0
  182. data/assets/themes/j1/extensions/noUISlider/LICENSE +13 -0
  183. data/assets/themes/j1/extensions/noUISlider/css/nouislider.css +260 -0
  184. data/assets/themes/j1/extensions/noUISlider/css/nouislider.min.css +1 -0
  185. data/assets/themes/j1/extensions/noUISlider/js/nouislider.js +2312 -0
  186. data/assets/themes/j1/extensions/noUISlider/js/nouislider.min.js +3 -0
  187. data/assets/themes/j1/extensions/twemoji/js/LICENSE +21 -0
  188. data/assets/themes/j1/extensions/twemoji/js/picker/LICENSE +21 -0
  189. data/assets/themes/j1/extensions/twemoji/js/picker/twemoji-picker.js +21 -0
  190. data/assets/themes/j1/extensions/twemoji/js/picker/twemoji-picker.min.js +21 -0
  191. data/assets/themes/j1/extensions/twemoji/js/twemoji.js +590 -0
  192. data/assets/themes/j1/extensions/twemoji/js/twemoji.min.js +25 -0
  193. data/lib/j1/version.rb +1 -1
  194. data/lib/starter_web/Gemfile +7 -1
  195. data/lib/starter_web/_config.yml +9 -8
  196. data/lib/starter_web/_data/_defaults/resources.yml +13 -13
  197. data/lib/starter_web/_data/blocks/banner.yml +21 -29
  198. data/lib/starter_web/_data/blocks/footer.yml +10 -3
  199. data/lib/starter_web/_data/blocks/panel.yml +13 -13
  200. data/lib/starter_web/_data/layouts/default.yml +10 -0
  201. data/lib/starter_web/_data/layouts/home.yml +7 -7
  202. data/lib/starter_web/_data/layouts/page.yml +15 -16
  203. data/lib/starter_web/_data/modules/advertising.yml +48 -0
  204. data/lib/starter_web/_data/modules/attics.yml +2 -38
  205. data/lib/starter_web/_data/modules/cookie_consent.yml +3 -95
  206. data/lib/starter_web/_data/modules/defaults/attics.yml +16 -15
  207. data/lib/starter_web/_data/modules/defaults/cookie_consent.yml +75 -12
  208. data/lib/starter_web/_data/modules/defaults/jekyll_search.yml +9 -9
  209. data/lib/starter_web/_data/modules/defaults/navigator.yml +56 -21
  210. data/lib/starter_web/_data/modules/defaults/ssm.yml +3 -3
  211. data/lib/starter_web/_data/modules/defaults/toccer.yml +4 -8
  212. data/lib/starter_web/_data/modules/jekyll_search.yml +3 -21
  213. data/lib/starter_web/_data/modules/navigator.yml +1 -1
  214. data/lib/starter_web/_data/modules/navigator_menu.yml +4 -0
  215. data/lib/starter_web/_data/modules/ssm.yml +10 -1
  216. data/lib/starter_web/_data/modules/themer.yml +2 -3
  217. data/lib/starter_web/_data/modules/toccer.yml +7 -12
  218. data/lib/starter_web/_data/resources.yml +240 -112
  219. data/lib/starter_web/_data/template_settings.yml +109 -6
  220. data/lib/starter_web/_plugins/asciidoctor-extensions/fab-icon-inline.rb +1 -1
  221. data/lib/starter_web/_plugins/asciidoctor-extensions/fas-icon-inline.rb +2 -2
  222. data/lib/starter_web/_plugins/asciidoctor-extensions/iconify-icon-inline.rb +2 -2
  223. data/lib/starter_web/_plugins/asciidoctor-extensions/mdi-icon-inline.rb +2 -2
  224. data/lib/starter_web/_plugins/asciidoctor-extensions/twitter-emoji-inline.rb +2 -2
  225. data/lib/starter_web/_plugins/minifyJS.rb +54 -0
  226. data/lib/starter_web/_plugins/{uglify.rb → minifyJSON.rb} +15 -9
  227. data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.jpg +0 -0
  228. data/lib/starter_web/assets/images/modules/attics/alex-holyoake-1920x1280.jpg +0 -0
  229. data/lib/starter_web/assets/images/modules/attics/anaya-katlego-1920x1280.jpg +0 -0
  230. data/lib/starter_web/assets/images/modules/attics/antonella-lombardi-1920x1280.jpg +0 -0
  231. data/lib/starter_web/assets/images/modules/attics/antonino-visalli-1920x1280.jpg +0 -0
  232. data/lib/starter_web/assets/images/modules/attics/banner/library-1920x800-bw.jpg +0 -0
  233. data/lib/starter_web/assets/images/modules/attics/banner/signpost-1920x800-bw.jpg +0 -0
  234. data/lib/starter_web/assets/images/modules/attics/banner/water-journal-1280x600.jpg +0 -0
  235. data/lib/starter_web/assets/images/modules/attics/banner/write-1280x600-bw.jpg +0 -0
  236. data/lib/starter_web/assets/images/modules/attics/brandon-mowinkel-1920x1280.jpg +0 -0
  237. data/lib/starter_web/assets/images/modules/attics/building-blocks-1920x1280-bw.jpg +0 -0
  238. data/lib/starter_web/assets/images/modules/attics/cookies-1920x1200-bw.jpg +0 -0
  239. data/lib/starter_web/assets/images/modules/attics/daniel-jensen-1920x1280.jpg +0 -0
  240. data/lib/starter_web/assets/images/modules/attics/giammarco-boscaro-1920x1280.jpg +0 -0
  241. data/lib/starter_web/assets/images/modules/attics/go-up-1920x1280-bw.jpg +0 -0
  242. data/lib/starter_web/assets/images/modules/attics/ian-schneider-1920x1280.jpg +0 -0
  243. data/lib/starter_web/assets/images/modules/attics/ideas-start-here-1920x1280-bw.jpg +0 -0
  244. data/lib/starter_web/assets/images/modules/attics/jason-rosewell-1920x1280.jpg +0 -0
  245. data/lib/starter_web/assets/images/modules/attics/jessica-ruscello-1920x1280.jpg +0 -0
  246. data/lib/starter_web/assets/images/modules/attics/lianhao-1920x1280.jpg +0 -0
  247. data/lib/starter_web/assets/images/modules/attics/library-1920x1280-bw.jpg +0 -0
  248. data/lib/starter_web/assets/images/modules/attics/matthaeus-1920x1280.jpg +0 -0
  249. data/lib/starter_web/assets/images/modules/attics/nousnou-iwasaki-1920x1280.jpg +0 -0
  250. data/lib/starter_web/assets/images/modules/attics/premium-1920x1280-bw.jpg +0 -0
  251. data/lib/starter_web/assets/images/modules/attics/robert-v-ruggiero-1920x1280.jpg +0 -0
  252. data/lib/starter_web/assets/images/modules/attics/romain-vignes-1920x1280.jpg +0 -0
  253. data/lib/starter_web/assets/images/modules/attics/runner-1920x1200-bw.jpg +0 -0
  254. data/lib/starter_web/assets/images/modules/attics/spider-web-1920x1200-bw.jpg +0 -0
  255. data/lib/starter_web/assets/images/modules/attics/the-place-1920x1280-bw.jpg +0 -0
  256. data/lib/starter_web/assets/images/modules/attics/welcome-1920x1280-bw.jpg +0 -0
  257. data/lib/starter_web/assets/images/modules/carousel/cats/cat-1.jpg +0 -0
  258. data/lib/starter_web/assets/images/modules/carousel/mega_cities/andreas-brucker_b.jpg +0 -0
  259. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  260. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  261. data/lib/starter_web/assets/images/modules/carousel/mega_cities/luca-bravo_b.jpg +0 -0
  262. data/lib/starter_web/assets/images/modules/carousel/mega_cities/thomas-tucker_b.jpg +0 -0
  263. data/lib/starter_web/assets/images/modules/gallery/mega_cities/banter-snaps_b.jpg +0 -0
  264. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  265. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2-bw.jpg +0 -0
  266. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  267. data/lib/starter_web/assets/images/modules/gallery/mega_cities/emmad-mazhari_b.jpg +0 -0
  268. data/lib/starter_web/assets/images/modules/gallery/mega_cities/ethan-brooke_b.jpg +0 -0
  269. data/lib/starter_web/assets/images/modules/gallery/mega_cities/federico-rizzarelli_b.jpg +0 -0
  270. data/lib/starter_web/assets/images/modules/gallery/mega_cities/gints-gailis_b.jpg +0 -0
  271. data/lib/starter_web/assets/images/modules/gallery/mega_cities/johan-mouchet_b.jpg +0 -0
  272. data/lib/starter_web/assets/images/modules/gallery/mega_cities/luca-bravo_b.jpg +0 -0
  273. data/lib/starter_web/assets/images/modules/gallery/mega_cities/oskars-sylwan_b.jpg +0 -0
  274. data/lib/starter_web/assets/images/modules/gallery/mega_cities/steven-diaz_b.jpg +0 -0
  275. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker-bw.jpg +0 -0
  276. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker_b.jpg +0 -0
  277. data/lib/starter_web/index.html +9 -8
  278. data/lib/starter_web/package.json +1 -1
  279. data/lib/starter_web/pages/public/clear_button.adoc +121 -0
  280. data/lib/starter_web/pages/public/learn/examples/floating_ad.adoc +221 -0
  281. data/lib/starter_web/pages/public/learn/{floating_sidebar.adoc → examples/floating_div.adoc} +60 -50
  282. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/parts.asciidoc +1 -1
  283. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +9 -4
  284. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour_api.adoc +2 -2
  285. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_table_3_column.asciidoc +1 -1
  286. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/419_advanced_modals_html.asciidoc +5 -5
  287. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
  288. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +8 -3
  289. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +35 -44
  290. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +1 -1
  291. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +39 -39
  292. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_table_3_column.asciidoc +1 -1
  293. data/lib/starter_web/pages/public/learn/whats_up.adoc +1 -0
  294. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +54 -48
  295. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +1 -1
  296. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +1 -1
  297. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/120_relative_sizes.asciidoc +1 -41
  298. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/200_rotate.asciidoc +1 -1
  299. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/300_flip.asciidoc +1 -1
  300. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +1 -1
  301. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +1 -1
  302. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +1 -1
  303. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/600_md_color_palette.asciidoc +1 -1
  304. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +1 -1
  305. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +1 -1
  306. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +1 -1
  307. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +1 -1
  308. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/200_rotate.asciidoc +1 -1
  309. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/300_flip.asciidoc +1 -1
  310. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +1 -1
  311. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +672 -863
  312. data/lib/starter_web/pages/public/previewer/iframer.adoc +15 -14
  313. data/lib/starter_web/pages/public/previewer/justified_gallery.html +1 -1
  314. data/lib/starter_web/pages/public/previewer/mdb_preview/000_includes/attributes.asciidoc +69 -0
  315. data/lib/starter_web/pages/public/previewer/mdb_preview/000_includes/documents/100_buttons.asciidoc +170 -0
  316. data/lib/starter_web/pages/public/previewer/mdb_preview/mdb_previewer.adoc +52 -0
  317. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +1 -1
  318. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +2 -2
  319. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  320. data/lib/starter_web/utilsrv/package.json +1 -1
  321. metadata +148 -105
  322. data/assets/data/colors.json +0 -42
  323. data/assets/data/font_sizes.json +0 -42
  324. data/assets/data/messages.yml +0 -131
  325. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.absolute.html +0 -86
  326. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.content.html +0 -58
  327. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.hover.html +0 -51
  328. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.nested.html +0 -68
  329. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.textarea.html +0 -46
  330. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.tolerance.html +0 -79
  331. data/assets/themes/j1/extensions/iframe_resizer/examples/index.html +0 -70
  332. data/assets/themes/j1/extensions/iframe_resizer/examples/two.html +0 -71
  333. data/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.js +0 -1104
  334. data/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.map +0 -1
  335. data/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.min.js +0 -10
  336. data/assets/themes/j1/extensions/log4javascript/log4javascript.js +0 -5826
  337. data/assets/themes/j1/extensions/log4javascript/log4javascript.min.js +0 -266
  338. data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.png +0 -0
  339. data/lib/starter_web/assets/images/modules/attics/mae-mu-Vf9gbsLZyf0-unsplash.jpg +0 -0
  340. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280-v.jpg +0 -0
  341. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280.jpg +0 -0
@@ -0,0 +1,232 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/themes/j1/adapter/js/clipboard.js
10
+ # Liquid template to adapt Clipboard for J1 Template
11
+ #
12
+ # Product/Info:
13
+ # https://jekyll.one
14
+ #
15
+ # Copyright (C) 2020 Juergen Adams
16
+ #
17
+ # J1 Template is licensed under the MIT License.
18
+ # For details, see https://jekyll.one
19
+ # -----------------------------------------------------------------------------
20
+ # Test data:
21
+ # {{ liquid_var | debug }}
22
+ # -----------------------------------------------------------------------------
23
+ # NOTE:
24
+ # -----------------------------------------------------------------------------
25
+ {% endcomment %}
26
+
27
+ {% comment %} Set config files
28
+ -------------------------------------------------------------------------------- {% endcomment %}
29
+ {% assign site_config = site %}
30
+
31
+
32
+ {% comment %} Set config data
33
+ -------------------------------------------------------------------------------- {% endcomment %}
34
+ {% assign environment = site_config.environment %}
35
+
36
+
37
+ {% assign production = false %}
38
+ {% if environment == 'prod' or environment == 'production' %}
39
+ {% assign production = true %}
40
+ {% endif %}
41
+
42
+ /*
43
+ # -----------------------------------------------------------------------------
44
+ # ~/assets/themes/j1/adapter/js/clipboard.js
45
+ # JS Adapter for Clipboard
46
+ #
47
+ # Product/Info:
48
+ # {{site.data.template_settings.theme_author_url}}
49
+ #
50
+ # Copyright (C) 2020 Juergen Adams
51
+ #
52
+ # J1 Template is licensed under the MIT License.
53
+ # For details, see {{site.data.template_settings.theme_author_url}}
54
+ # -----------------------------------------------------------------------------
55
+ # NOTE:
56
+ # -----------------------------------------------------------------------------
57
+ # Adapter generated: {{site.time}}
58
+ # -----------------------------------------------------------------------------
59
+ */
60
+
61
+ // -----------------------------------------------------------------------------
62
+ // ESLint shimming
63
+ // -----------------------------------------------------------------------------
64
+ /* eslint indent: "off" */
65
+ // -----------------------------------------------------------------------------
66
+ 'use strict';
67
+
68
+ j1.adapter['clipboard'] = (function (j1, window) {
69
+
70
+ // ---------------------------------------------------------------------------
71
+ // globals
72
+ // ---------------------------------------------------------------------------
73
+ var environment = '{{environment}}';
74
+ var moduleOptions = {};
75
+ var logger;
76
+ var logText;
77
+ var _this;
78
+ var clipboardJS;
79
+
80
+ // ---------------------------------------------------------------------------
81
+ // main object
82
+ // ---------------------------------------------------------------------------
83
+ return {
84
+
85
+ // -------------------------------------------------------------------------
86
+ // module initializer
87
+ // -------------------------------------------------------------------------
88
+ init: function (options) {
89
+ // initialize state flag
90
+ j1.adapter.clipboard.state = 'pending';
91
+
92
+ // -----------------------------------------------------------------------
93
+ // defaults
94
+ // -----------------------------------------------------------------------
95
+ var settings = $.extend({
96
+ module_name: 'j1.adapter.clipboard',
97
+ generated: '{{site.time}}'
98
+ }, options);
99
+
100
+ // -----------------------------------------------------------------------
101
+ // globals
102
+ // -----------------------------------------------------------------------
103
+ _this = j1.adapter.clipboard;
104
+ logger = log4javascript.getLogger('j1.adapter.clipboard');
105
+ logText = 'initialization: started';
106
+ logger.info(logText);
107
+
108
+ // initialize ClipboardJS if page is loaded
109
+ var dependencies_met_j1_finished = setInterval(function() {
110
+ if ( j1.getState() == 'finished' ) {
111
+ logText = 'create clipboard';
112
+ logger.info(logText);
113
+
114
+ clipboardJS = new ClipboardJS('.btn-clipboard', {
115
+ target: function target(trigger) {
116
+ return trigger.parentNode.nextElementSibling;
117
+ }
118
+ });
119
+
120
+ _this.initClipButtons();
121
+ _this.initEventHandler(clipboardJS);
122
+
123
+ clearInterval(dependencies_met_j1_finished);
124
+ logText = 'initialization: finished';
125
+ logger.info(logText);
126
+ }
127
+ }, 25); // END dependencies_met_j1_finished
128
+ },
129
+
130
+ // -------------------------------------------------------------------------
131
+ // initClipboard
132
+ // Create copy-to-clipboard for all pages
133
+ // -------------------------------------------------------------------------
134
+ initClipButtons: function () {
135
+ // insert copy to clipboard button before all elements having a
136
+ // class of ".highlight" assigned to (e.g. Asciidoc source blocks)
137
+ $('.highlight').each(function () {
138
+ // Check if no clipboard should be applied
139
+ var isNoClip = $(this).closest('.noclip');
140
+ if ( isNoClip.length == 0) {
141
+ var btnHtml = '<div class="j1-clipboard"><span class="btn-clipboard j1-tooltip" data-toggle="tooltip" data-placement="left" title="Copy to clipboard">Copy</span></div>';
142
+ $(this).before(btnHtml);
143
+ $('.btn-clipboard').tooltip();
144
+ }
145
+ });
146
+ }, // END initClipboard
147
+
148
+ // -------------------------------------------------------------------------
149
+ // Event handler
150
+ // -------------------------------------------------------------------------
151
+ initEventHandler: function (clipboard) {
152
+ // Manage clipboard events
153
+ clipboard.on('success', function (e) {
154
+ $(e.trigger).attr('title', 'copied!').tooltip('_fixTitle').tooltip('show').attr('title', 'Copy to clipboard').tooltip('_fixTitle');
155
+ var logger = log4javascript.getLogger('j1.initClipboard');
156
+ var logText = 'initialization copy-to-clipboard sucessfull';
157
+ logger.debug(logText);
158
+ /* Cleanup clipped data for trailing numbers */
159
+ var splitted = e.text.split('\n');
160
+ var concat;
161
+ var i;
162
+ for (i=0; i<splitted.length; i++) {
163
+ concat += splitted[i].replace(/^\s+\d+/, '');
164
+ }
165
+ e.clearSelection();
166
+ });
167
+ clipboard.on('error', function (e) {
168
+ var fallbackMsg = /Mac/i.test(navigator.userAgent) ? 'press \u2318 to copy' : 'press ctrl-c to copy';
169
+ logger = log4javascript.getLogger('j1.initClipboard');
170
+ logText = 'initialization copy-to-clipboard failed, fallback used.';
171
+ logger.warn(logText);
172
+ $(e.trigger).attr('title', fallbackMsg).tooltip('_fixTitle').tooltip('show').attr('title', 'copy to clipboard').tooltip('_fixTitle');
173
+ });
174
+ },
175
+
176
+ // -------------------------------------------------------------------------
177
+ // messageHandler
178
+ // Manage messages (paylods) send from other J1 modules
179
+ // -------------------------------------------------------------------------
180
+ messageHandler: function (sender, message) {
181
+ // var json_message = JSON.stringify(message, undefined, 2); // multiline
182
+ var json_message = JSON.stringify(message);
183
+
184
+ logText = 'received message from ' + sender + ': ' + json_message;
185
+ logger.debug(logText);
186
+
187
+ // -----------------------------------------------------------------------
188
+ // Process commands|actions
189
+ // -----------------------------------------------------------------------
190
+ if (message.type === 'command' && message.action === 'module_initialized') {
191
+ //
192
+ // Place handling of command|action here
193
+ //
194
+ logger.info(message.text);
195
+ }
196
+ if (message.type === 'command' && message.action === 'status') {
197
+ logger.info('messageHandler: received - ' + message.action);
198
+ }
199
+
200
+ //
201
+ // Place handling of other command|action here
202
+ //
203
+
204
+ return true;
205
+ }, // END messageHandler
206
+
207
+ // -------------------------------------------------------------------------
208
+ // setState
209
+ // Set the current (processing) state of the module
210
+ // -------------------------------------------------------------------------
211
+ setState: function (stat) {
212
+ j1.adapter.clipboard.state = stat;
213
+ }, // END setState
214
+
215
+ // -------------------------------------------------------------------------
216
+ // getState
217
+ // Returns the current (processing) state of the module
218
+ // -------------------------------------------------------------------------
219
+ getState: function () {
220
+ return j1.adapter.clipboard.state;
221
+ } // END state
222
+
223
+ }; // END return
224
+ })(j1, window);
225
+
226
+ {% endcapture %}
227
+ {% if production %}
228
+ {{ cache | minifyJS }}
229
+ {% else %}
230
+ {{ cache | strip_empty_lines }}
231
+ {% endif %}
232
+ {% assign cache = nil %}
@@ -1,5 +1,5 @@
1
1
  ---
2
- regenerate: false
2
+ regenerate: true
3
3
  ---
4
4
 
5
5
  {% capture cache %}
@@ -31,6 +31,10 @@ regenerate: false
31
31
  {% assign environment = site.environment %}
32
32
  {% assign template_version = site.version %}
33
33
 
34
+ {% assign production = false %}
35
+ {% if environment == 'prod' or environment == 'production' %}
36
+ {% assign production = true %}
37
+ {% endif %}
34
38
 
35
39
  {% comment %} Process YML config data
36
40
  ================================================================================ {% endcomment %}
@@ -66,6 +70,12 @@ regenerate: false
66
70
  # Adapter generated: {{site.time}}
67
71
  # -----------------------------------------------------------------------------
68
72
  */
73
+
74
+ // -----------------------------------------------------------------------------
75
+ // ESLint shimming
76
+ // -----------------------------------------------------------------------------
77
+ /* eslint indent: "off" */
78
+ // -----------------------------------------------------------------------------
69
79
  'use strict';
70
80
 
71
81
  j1.adapter['cookie_consent'] = (function (j1, window) {
@@ -126,7 +136,9 @@ j1.adapter['cookie_consent'] = (function (j1, window) {
126
136
  // -----------------------------------------------------------------------
127
137
  // options loader
128
138
  // -----------------------------------------------------------------------
139
+ /* eslint-disable */
129
140
  moduleOptions = $.extend({}, {{consent_options | replace: '=>', ':' | replace: 'nil', '""'}});
141
+ /* eslint-enable */
130
142
 
131
143
  if (typeof options !== 'undefined') {
132
144
  moduleOptions = j1.mergeData(moduleOptions, settings);
@@ -163,8 +175,9 @@ j1.adapter['cookie_consent'] = (function (j1, window) {
163
175
  // ---------------------------------------------------------------------
164
176
  // data loader
165
177
  // ---------------------------------------------------------------------
166
- logger.info('loading html data for modals');
167
- $.when (j1.xhrData('j1.adapter.cookie_consent', moduleOptions, 'data_loaded'))
178
+ $.when (
179
+ j1.xhrData('j1.adapter.cookie_consent', moduleOptions, 'data_loaded')
180
+ )
168
181
  .then (function (success) {
169
182
  if (success) {
170
183
  logger.info('loading data completed');
@@ -265,5 +278,9 @@ j1.adapter['cookie_consent'] = (function (j1, window) {
265
278
  })(j1, window);
266
279
 
267
280
  {% endcapture %}
268
- {{ cache | strip_empty_lines }}
281
+ {% if production %}
282
+ {{ cache | minifyJS }}
283
+ {% else %}
284
+ {{ cache | strip_empty_lines }}
285
+ {% endif %}
269
286
  {% assign cache = nil %}
@@ -1,5 +1,5 @@
1
1
  ---
2
- regenerate: false
2
+ regenerate: true
3
3
  ---
4
4
 
5
5
  {% capture cache %}
@@ -49,6 +49,10 @@ regenerate: false
49
49
  -------------------------------------------------------------------------------- {% endcomment %}
50
50
  {% assign framer_options = framer_defaults | merge: framer_settings %}
51
51
 
52
+ {% assign production = false %}
53
+ {% if environment == 'prod' or environment == 'production' %}
54
+ {% assign production = true %}
55
+ {% endif %}
52
56
 
53
57
  /*
54
58
  # -----------------------------------------------------------------------------
@@ -71,6 +75,12 @@ regenerate: false
71
75
  # Adapter generated: {{site.time}}
72
76
  # -----------------------------------------------------------------------------
73
77
  */
78
+
79
+ // -----------------------------------------------------------------------------
80
+ // ESLint shimming
81
+ // -----------------------------------------------------------------------------
82
+ /* eslint indent: "off" */
83
+ // -----------------------------------------------------------------------------
74
84
  'use strict';
75
85
 
76
86
  {% comment %} Main
@@ -112,8 +122,9 @@ j1.adapter['framer'] = (function (j1, window) {
112
122
  {% comment %} Load module config from yml data
113
123
  -------------------------------------------------------------------------- {% endcomment %}
114
124
  // Load module DEFAULTS|CONFIG
115
- //
125
+ /* eslint-disable */
116
126
  moduleOptions = $.extend({}, {{framer_options | replace: '=>', ':' | replace: 'nil', '""'}});
127
+ /* eslint-enable */
117
128
 
118
129
  if (typeof settings !== 'undefined') {
119
130
  moduleOptions = j1.mergeData(moduleOptions, settings);
@@ -204,5 +215,9 @@ j1.adapter['framer'] = (function (j1, window) {
204
215
  })(j1, window);
205
216
 
206
217
  {% endcapture %}
207
- {{ cache | strip_empty_lines }}
218
+ {% if production %}
219
+ {{ cache | minifyJS }}
220
+ {% else %}
221
+ {{ cache | strip_empty_lines }}
222
+ {% endif %}
208
223
  {% assign cache = nil %}
@@ -1,5 +1,5 @@
1
1
  ---
2
- regenerate: false
2
+ regenerate: true
3
3
  ---
4
4
 
5
5
  {% capture cache %}
@@ -70,6 +70,11 @@ regenerate: false
70
70
  {% assign customizer_title = customizer_options.title %}
71
71
  {% assign gallery_rowHeight = customizer_options.gallery_settings.rowHeight %}
72
72
 
73
+ {% assign production = false %}
74
+ {% if environment == 'prod' or environment == 'production' %}
75
+ {% assign production = true %}
76
+ {% endif %}
77
+
73
78
  /*
74
79
  # -----------------------------------------------------------------------------
75
80
  # ~/assets/themes/j1/adapter/js/gallery_customizer.js
@@ -86,6 +91,12 @@ regenerate: false
86
91
  # Adapter generated: {{site.time}}
87
92
  # -----------------------------------------------------------------------------
88
93
  */
94
+
95
+ // -----------------------------------------------------------------------------
96
+ // ESLint shimming
97
+ // -----------------------------------------------------------------------------
98
+ /* eslint indent: "off" */
99
+ // -----------------------------------------------------------------------------
89
100
  'use strict';
90
101
 
91
102
  {% comment %} Main
@@ -108,7 +119,7 @@ j1.adapter['gallery_customizer'] = (function (j1, window) {
108
119
  // See: https://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string
109
120
  //
110
121
  var args = Array.prototype.slice.call(arguments, 2);
111
- var namespaces = functionName.split(".");
122
+ var namespaces = functionName.split('.');
112
123
  var func = namespaces.pop();
113
124
  for(var i = 0; i < namespaces.length; i++) {
114
125
  context = context[namespaces[i]];
@@ -138,8 +149,10 @@ j1.adapter['gallery_customizer'] = (function (j1, window) {
138
149
 
139
150
  {% comment %} Load gallery config from yml data
140
151
  -------------------------------------------------------------------------- {% endcomment %}
152
+ /* eslint-disable */
141
153
  galleryOptions = $.extend({}, {{gallery_options | replace: '=>', ':' | replace: 'nil', '""'}});
142
154
  customizerOptions = $.extend({}, {{customizer_options | replace: '=>', ':' | replace: 'nil', '""'}});
155
+ /* eslint-enable */
143
156
 
144
157
  {% comment %} Set global variables
145
158
  -------------------------------------------------------------------------- {% endcomment %}
@@ -186,7 +199,7 @@ j1.adapter['gallery_customizer'] = (function (j1, window) {
186
199
  if ($formId.length) {
187
200
  var timerid;
188
201
 
189
- $("input[name='rowHeight']").on('input', function (e) {
202
+ $('input[name="rowHeight"]').on('input', function (e) {
190
203
  var value = $(this).val();
191
204
 
192
205
  if (value < imageHeightMin) { return false; }
@@ -272,7 +285,7 @@ j1.adapter['gallery_customizer'] = (function (j1, window) {
272
285
  });
273
286
 
274
287
  $('input:checkbox[name="random"]').on('click', function (e) {
275
- var value = $(this).is(":checked");
288
+ var value = $(this).is(':checked');
276
289
 
277
290
  $instance.justifiedGallery({randomize: value});
278
291
  if(environment === 'development') {
@@ -300,7 +313,7 @@ j1.adapter['gallery_customizer'] = (function (j1, window) {
300
313
  });
301
314
 
302
315
  $('input:checkbox[name="hide_last_row"]').on('click', function (e) {
303
- var value = $(this).is(":checked");
316
+ var value = $(this).is(':checked');
304
317
 
305
318
  if (value == true) {
306
319
  value = 'hide';
@@ -322,10 +335,10 @@ j1.adapter['gallery_customizer'] = (function (j1, window) {
322
335
  $('#rowHeightMax').val(customizerOptions.gallery_settings.maxRowHeight);
323
336
  $('#margins').val(customizerOptions.gallery_settings.margins);
324
337
  $('#border').val(customizerOptions.gallery_settings.border);
325
- $('input:checkbox[name="captions"]').val("on").filter('[value="on"]').prop('checked', customizerOptions.gallery_settings.captions);
326
- $('input:checkbox[name="random"]').val("off").filter('[value="off"]').prop('checked', customizerOptions.gallery_settings.randomize);
327
- $('input:checkbox[name="justify_last_row"]').val("on").filter('[value="on"]').prop('checked', customizerOptions.gallery_settings.justifyLastRow);
328
- $('input:checkbox[name="hide_last_row"]').val("off").filter('[value="off"]').prop('checked', customizerOptions.gallery_settings.hideLastRow);
338
+ $('input:checkbox[name="captions"]').val('on').filter('[value="on"]').prop('checked', customizerOptions.gallery_settings.captions);
339
+ $('input:checkbox[name="random"]').val('off').filter('[value="off"]').prop('checked', customizerOptions.gallery_settings.randomize);
340
+ $('input:checkbox[name="justify_last_row"]').val('on').filter('[value="on"]').prop('checked', customizerOptions.gallery_settings.justifyLastRow);
341
+ $('input:checkbox[name="hide_last_row"]').val('off').filter('[value="off"]').prop('checked', customizerOptions.gallery_settings.hideLastRow);
329
342
 
330
343
  $instance.justifiedGallery({
331
344
  rowHeight: customizerOptions.gallery_settings.rowHeight,
@@ -423,5 +436,9 @@ j1.adapter['gallery_customizer'] = (function (j1, window) {
423
436
  })(j1, window);
424
437
 
425
438
  {% endcapture %}
426
- {{ cache | strip_empty_lines }}
439
+ {% if production %}
440
+ {{ cache | minifyJS }}
441
+ {% else %}
442
+ {{ cache | strip_empty_lines }}
443
+ {% endif %}
427
444
  {% assign cache = nil %}
@@ -1,5 +1,5 @@
1
1
  ---
2
- regenerate: true
2
+ regenerate: true
3
3
  ---
4
4
 
5
5
  {% capture cache %}
@@ -17,8 +17,6 @@ regenerate: true
17
17
  # J1 Template is licensed under the MIT License.
18
18
  # For details, see https://jekyll.one
19
19
  # -----------------------------------------------------------------------------
20
- # TODO: jadams, 2019-01-20: Isolate drawer, switch from BME code
21
- # -----------------------------------------------------------------------------
22
20
  # Test data:
23
21
  # {{ liquid_var | debug }}
24
22
  # -----------------------------------------------------------------------------
@@ -43,12 +41,15 @@ regenerate: true
43
41
 
44
42
  {% comment %} Set config files
45
43
  -------------------------------------------------------------------------------- {% endcomment %}
44
+ {% assign site_config = site %}
46
45
  {% assign template_config = site.data.template_settings %}
47
46
  {% assign blocks = site.data.blocks %}
48
47
  {% assign modules = site.data.modules %}
49
48
 
50
49
  {% comment %} Set config data
51
50
  -------------------------------------------------------------------------------- {% endcomment %}
51
+ {% assign environment = site_config.environment %}
52
+
52
53
  {% assign banner_config_defaults = blocks.defaults.banner.defaults %}
53
54
  {% assign banner_config_settings = blocks.banner.settings %}
54
55
  {% assign panel_config_defaults = blocks.defaults.panel.defaults %}
@@ -76,6 +77,11 @@ regenerate: true
76
77
 
77
78
  {% assign hideOnReload = modules.themer_options.hideOnReload %}
78
79
 
80
+ {% assign production = false %}
81
+ {% if environment == 'prod' or environment == 'production' %}
82
+ {% assign production = true %}
83
+ {% endif %}
84
+
79
85
  /*
80
86
  # -----------------------------------------------------------------------------
81
87
  # ~/assets/themes/j1/adapter/js/j1_template.js
@@ -96,6 +102,14 @@ regenerate: true
96
102
  # Adapter generated: {{site.time}}
97
103
  # -----------------------------------------------------------------------------
98
104
  */
105
+
106
+ // -----------------------------------------------------------------------------
107
+ // ESLint shimming
108
+ // -----------------------------------------------------------------------------
109
+ /* eslint indent: "off" */
110
+ /* eslint quotes: "off" */
111
+ /* eslint semi: "off" */
112
+ // -----------------------------------------------------------------------------
99
113
  'use strict';
100
114
 
101
115
  var j1 = (function () {
@@ -121,7 +135,7 @@ var j1 = (function () {
121
135
  var user_session_detected;
122
136
 
123
137
  // Connector settings
124
- var translation_enabled = {{template_config.translation.enabled}}
138
+ var translation_enabled = {{template_config.translation.enabled}};
125
139
 
126
140
  // Theme information
127
141
  var themeName;
@@ -155,7 +169,7 @@ var j1 = (function () {
155
169
  'app_session': '{{template_config.cookies.app_session}}',
156
170
  'user_session': '{{template_config.cookies.user_session}}',
157
171
  'user_state': '{{template_config.cookies.user_state}}'
158
- }
172
+ };
159
173
 
160
174
  // user SESSION cookie (initial values)
161
175
  var user_session = {
@@ -202,7 +216,7 @@ var j1 = (function () {
202
216
  // See: https://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string
203
217
  //
204
218
  var args = Array.prototype.slice.call(arguments, 2);
205
- var namespaces = functionName.split(".");
219
+ var namespaces = functionName.split('.');
206
220
  var func = namespaces.pop();
207
221
  for(var i = 0; i < namespaces.length; i++) {
208
222
  context = context[namespaces[i]];
@@ -216,7 +230,8 @@ var j1 = (function () {
216
230
  return {
217
231
 
218
232
  // -------------------------------------------------------------------------
219
- // Initializer
233
+ // init()
234
+ // initializer
220
235
  // -------------------------------------------------------------------------
221
236
  init: function (options) {
222
237
 
@@ -224,7 +239,7 @@ var j1 = (function () {
224
239
  // global var (function)
225
240
  // -----------------------------------------------------------------------
226
241
  var logger = log4javascript.getLogger('j1.init');
227
- var url = new parseURL(window.location.href)
242
+ var url = new parseURL(window.location.href);
228
243
  var baseUrl = url.origin;
229
244
  var epoch = Math.floor(Date.now()/1000);
230
245
  var timestamp_now = moment.unix(epoch).format('YYYY-MM-DD HH:mm:ss');
@@ -241,39 +256,11 @@ var j1 = (function () {
241
256
  options
242
257
  );
243
258
 
244
- // catch senseless detect url 404 errors (middleware /status)
245
- // See: https://stackoverflow.com/questions/4687235/jquery-get-or-post-to-catch-page-load-error-eg-404
246
- $.ajaxSetup({
247
- // called on `$.get()`, `$.post()`, `$.ajax()`
248
- statusCode : {
249
- // raised on response status code 404
250
- 404 : function (jqxhr, textStatus, errorThrown) {
251
- var interval_count = 0;
252
- var max_count = 10;
253
- var dependencies_met_logger = setInterval(function() {
254
- interval_count += 1;
255
- if ( j1.adapter.logger.getState() == 'finished' ) {
256
- var logger = log4javascript.getLogger('j1.init');
257
- clearInterval(dependencies_met_logger);
258
- if(jqxhr.responseText.indexOf('GET /status') > -1) {
259
- logger.info('no middleware found on url /status: ignored');
260
- logger.info('continue on mode: web');
261
- }
262
- if (interval_count > max_count) {
263
- logger.warn('dependency check failed for module: logger');
264
- logger.warn('continue on initializer unchecked');
265
- j1.adapter.navigator.init();
266
- }
267
- }
268
- }, 25);
269
- }
270
- }
271
- });
272
-
273
259
  // -----------------------------------------------------------------------
274
- // Session ON_CLOSE event
275
- // Update user STATE cookie|Remove user SESSION cookie on window CLOSE
276
- // See: https://stackoverflow.com/questions/3888902/detect-browser-or-tab-closing
260
+ // session ON_CLOSE event
261
+ // wrapup if ALL browser windows get closed. Update user STATE
262
+ // cookie on window CLOSE.
263
+ // see: https://stackoverflow.com/questions/3888902/detect-browser-or-tab-closing
277
264
  // -----------------------------------------------------------------------
278
265
  window.addEventListener('beforeunload', function (event) {
279
266
  var cookie_names = j1.getCookieNames();
@@ -289,23 +276,15 @@ var j1 = (function () {
289
276
  user_state.session_active = false;
290
277
  user_state.last_session_ts = timestamp_now;
291
278
 
292
- // DANGEROUS (??): delete user session in browser using MULTI_TAB!
293
- // if (j1.existsCookie(cookie_names.user_session)) {
294
- // var bla = cookie_names.user_session;
295
- // j1.deleteCookie(cookie_names.user_session)
296
- // }
297
-
298
279
  j1.writeCookie({
299
280
  name: cookie_user_state_name,
300
281
  data: user_state,
301
282
  expires: 365
302
283
  });
303
-
304
-
305
284
  });
306
285
 
307
286
  // -----------------------------------------------------------------------
308
- // Initialize|Load (existing) user cookies
287
+ // initialize|load (existing) user cookies
309
288
  // -----------------------------------------------------------------------
310
289
  user_session.created = timestamp_now;
311
290
  user_session.timestamp = timestamp_now;
@@ -332,7 +311,7 @@ var j1 = (function () {
332
311
  expires: 365
333
312
  });
334
313
 
335
- // Detect middleware (mode 'app') and update user session cookie
314
+ // detect middleware (mode 'app') and update user session cookie
336
315
  // -----------------------------------------------------------------------
337
316
  // if (user_session.mode === 'na' || user_session.mode === 'app') {
338
317
  if (user_session.mode === 'na') {
@@ -342,7 +321,10 @@ var j1 = (function () {
342
321
 
343
322
  baseUrl = url.origin;
344
323
 
345
- $.when ($.ajax(ep_status))
324
+ // see: https://stackoverflow.com/questions/3709597/wait-until-all-jquery-ajax-requests-are-done
325
+ $.when (
326
+ $.ajax(ep_status)
327
+ )
346
328
  .then(function(data) {
347
329
  var logger = log4javascript.getLogger('j1.init');
348
330
  user_session = j1.readCookie(cookie_names.user_session);
@@ -386,153 +368,84 @@ var j1 = (function () {
386
368
  logger.info('page is being initialized');
387
369
  }
388
370
 
371
+ state = 'started';
372
+ logger.info('state: ' + state);
373
+ logger.info('page is being initialized');
374
+
375
+ if ( settings.scrollbar === 'false' ) {
376
+ $('body').addClass('hide-scrollbar');
377
+ $('html').addClass('hide-scrollbar-moz');
378
+ }
379
+
380
+ logger.info('read user state from cookie');
381
+ user_session = j1.readCookie(cookie_names.user_session);
382
+
383
+ // process|update user state cookie
384
+ themeName = user_session.theme_name;
385
+ themeCss = user_session.theme_css;
386
+ themeExtensionCss = user_session.theme_extension_css;
387
+
388
+ // save last page access
389
+ // see: https://stackoverflow.com/questions/3528324/how-to-get-the-previous-url-in-javascript
390
+ // see: https://developer.mozilla.org/de/docs/Web/API/Window/history
391
+ //
392
+ user_session.timestamp = timestamp_now;
393
+ referrer = new parseURL(document.referrer);
394
+ current_page = window.location.pathname;
395
+ user_session.requested_page = current_page;
396
+ user_session.previous_page = referrer.search === '' ?
397
+ (referrer.pathname === '' ? current_page : referrer.pathname) :
398
+ (user_session.previous_page === '' || user_session.previous_page === 'na'
399
+ ? '/'
400
+ : user_session.previous_page
401
+ );
402
+
403
+ // calculate last 'pager' if any
404
+ if (rePager.test(user_session.previous_page)) {
405
+ last_pager = user_session.previous_page;
406
+ user_session.last_pager = last_pager;
407
+ } else {
408
+ last_pager = user_session.last_pager;
409
+ }
410
+
411
+ logger.info('update user session cookie');
412
+ j1.writeCookie({
413
+ name: cookie_names.user_session,
414
+ data: user_session
415
+ });
416
+
389
417
  {% comment %} Deferred data loads
390
418
  See: https://stackoverflow.com/questions/3709597/wait-until-all-jquery-ajax-requests-are-done
391
419
  Load J1 Template data objects 'asychronously'
392
420
  -------------------------------------------------------------------------- {% endcomment %}
421
+ // initialize page resources for global modules
422
+ // (asynchronous, should be rewitten to xhrData)
423
+ j1.initBanner(settings);
424
+ j1.initPanel(settings);
425
+ j1.initFooter(settings);
426
+
427
+ state = 'running';
428
+ logger.info('state: ' + state);
429
+ logger.info(logText);
430
+
431
+ user_session.timestamp = timestamp_now;
432
+ j1.writeCookie({
433
+ name: cookie_names.user_session,
434
+ data: user_session
435
+ });
393
436
 
394
437
  // -----------------------------------------------------------------------
395
- // data loader (should be rewitten to xhrData() )
438
+ // additional BS helpers from j1.core
396
439
  // -----------------------------------------------------------------------
397
- $.when (
398
- j1.getColorData(colors_data_path),
399
- j1.getFontSizeData(font_size_data_path),
400
- j1.getMessageCatalog(message_catalog_data_path))
401
- .done (function(colorData, fontSizes, messageCatalog, runtime) {
402
- j1.colors = colorData[0];
403
- j1.fonts = fontSizes[0];
404
-
405
- // set logger for callback|anonymous
406
- //
407
- var logger = log4javascript.getLogger('j1.init');
408
-
409
- logText = j1.getMessage('info', 'getState', 'text');
410
- logText = logText + j1.getMessage('info', 'getState', 'data_objects');
411
- logText = logText + j1.getMessage('info', 'getState', 'finished');
412
- j1.logger('j1.init', 'info', logText);
413
-
414
- logText = j1.getMessage('info', 'setState', 'text');
415
- logText = logText + j1.getMessage('info', 'setState', 'started');
416
- j1.logger('j1.init', 'info', logText);
417
- executeFunctionByName('j1.setState', window, state);
418
-
419
- // set logger for callback|anonymous
420
- var logger = log4javascript.getLogger('j1.init');
421
-
422
- if ( settings.scrollbar === 'false' ) {
423
- $('body').addClass( 'hide-scrollbar' )
424
- $('html').addClass( 'hide-scrollbar-moz' )
425
- }
426
-
427
- logger.info('read user state from cookie');
428
- user_session = j1.readCookie(cookie_names.user_session);
429
-
430
- // process|update UserState
431
- //
432
- themeName = user_session.theme_name;
433
- themeCss = user_session.theme_css;
434
- themeExtensionCss = user_session.theme_extension_css;
435
-
436
- // save last page access
437
- // See: https://stackoverflow.com/questions/3528324/how-to-get-the-previous-url-in-javascript
438
- // See: https://developer.mozilla.org/de/docs/Web/API/Window/history
439
- //
440
- user_session.timestamp = timestamp_now;
441
- referrer = new parseURL(document.referrer);
442
- current_page = window.location.pathname;
443
- user_session.requested_page = current_page;
444
- user_session.previous_page = referrer.search === '' ?
445
- (referrer.pathname === '' ? current_page : referrer.pathname) :
446
- (user_session.previous_page === '' || user_session.previous_page === 'na'
447
- ? '/'
448
- : user_session.previous_page
449
- );
450
-
451
- // calculate last 'pager' if any
452
- //
453
- if (rePager.test(user_session.previous_page)) {
454
- last_pager = user_session.previous_page;
455
- user_session.last_pager = last_pager;
456
- } else {
457
- last_pager = user_session.last_pager;
458
- }
440
+ j1.core.bsFormClearButton();
459
441
 
460
- logger.info('update user session cookie');
461
- j1.writeCookie({
462
- name: cookie_names.user_session,
463
- data: user_session
464
- });
465
-
466
- // ---------------------------------------------------------------------
467
- // Initialize page resources for global modules (sequential asynchronous)
468
- // (should be rewitten to xhrData() )
469
- // ---------------------------------------------------------------------
470
- $.when (
471
- j1.initBanner(settings),
472
- j1.initPanel(settings),
473
- j1.initFooter(settings) )
474
- .then (function (initBanner_response, initPanel_response, initFooter_response) {
475
- var logger = log4javascript.getLogger('j1.init');
476
-
477
- // Wait for LAST thenable (footer) in chain finishes
478
- var footerLoaded = setInterval(function() {
479
- if ( j1.getState() == 'footer_loaded') {
480
- // clear interval checking
481
- clearInterval(footerLoaded);
482
- logger.info('loading data completed');
483
-
484
- // Continue to run initializers
485
- //
486
- state = j1.getMessage('info', 'setState', 'running');
487
- logText = j1.getMessage('info', 'setState', 'text');
488
- logText = logText + j1.getMessage('info', 'setState', 'running');
489
- j1.logger('j1.init', 'info', logText);
490
-
491
- user_session.timestamp = timestamp_now;
492
- j1.writeCookie({
493
- name: cookie_names.user_session,
494
- data: user_session
495
- });
496
-
497
- // ---------------------------------------------------------------
498
- // Finalize|Display page (sequential asynchronous)
499
- // NOTE:
500
- // jadams 2019-01-20: for MDB, enabled only drawer, switch
501
- // and ripples
502
- // ---------------------------------------------------------------
503
- $.when (
504
- j1.initMDB(settings),
505
- j1.initClipboard(settings))
506
- .then (function () {
507
- j1.displayPage();
508
- })
509
- .catch(function(error) {
510
- var logger = log4javascript.getLogger('j1.init');
511
- json_data = JSON.stringify(error, undefined, 2);
512
- logText = 'deferred: ' + json_data;
513
- logger.error(logText);
514
- });
515
- }
516
- }, 25); // END 'footerLoaded'
517
- }) // END load global modules
518
- .catch(function(error) {
519
- var logger = log4javascript.getLogger('j1.init');
520
- json_data = JSON.stringify(error, undefined, 2);
521
- logText = 'deferred: ' + json_data;
522
- logger.error(logText);
523
- });
524
- }) // END load global data objects
525
- .catch(function(error) {
526
- var logger = log4javascript.getLogger('j1.init');
527
- json_data = JSON.stringify(error, undefined, 2);
528
- logText = 'deferred: ' + json_data;
529
- logger.error(logText);
530
- });
442
+ // finalize and display page
443
+ j1.displayPage();
531
444
 
532
445
  }, // END init
533
446
 
534
447
  // -------------------------------------------------------------------------
535
- // initBanner
448
+ // initBanner()
536
449
  // AJAX fetcher to load and place all banner used for a page
537
450
  // -------------------------------------------------------------------------
538
451
  initBanner: function (options) {
@@ -581,30 +494,14 @@ var j1 = (function () {
581
494
  {% assign key = item[0] %}
582
495
  {% assign value = item[1] %}
583
496
 
584
- {% if key and debug %} item:value {{key}}:{{value}} {% endif %}
497
+ {% if key and debug %} item:value {{key}}:{{value}} {% endif %}
585
498
 
586
499
  {% if key == 'id' %} {% assign id = value %} {% endif %}
587
500
  {% if key == 'enabled' %} {% assign enabled = value %} {% endif %}
588
- {% if key == 'background_color_1' %} {% assign background_color_1 = value %} {% endif %}
589
- {% if key == 'background_color_2' %} {% assign background_color_2 = value %} {% endif %}
590
501
  {% endfor %}
591
502
  {% endfor %}
592
503
 
593
504
  {% if id and enabled %}
594
- {% comment %} Add CSS styles for current banner to section <HEAD>
595
- -------------------------------------------------------------------- {% endcomment %}
596
- {% if background_color_1 and background_color_2 %}
597
- var banner_backround_style = '';
598
- // Initialze banner background gradient/colors
599
- banner_backround_style += "<style> .{{id}}-background { ";
600
- banner_backround_style += "background-image: -webkit-gradient(linear, left top, left bottom, from( " +j1.setColorData('{{background_color_1}}')+ " ), to( " +j1.setColorData('{{background_color_2}}')+ " ));";
601
- banner_backround_style += "background-image: -webkit-linear-gradient(top, " +j1.setColorData('{{background_color_1}}')+ " 0%, " +j1.setColorData('{{background_color_2}}')+ " 100%);";
602
- banner_backround_style += "background-image: -o-linear-gradient(top, " +j1.setColorData('{{background_color_1}}')+ " 0%, " +j1.setColorData('{{background_color_2}}')+ " 100%);";
603
- banner_backround_style += "background-image: linear-gradient(to bottom, " +j1.setColorData('{{background_color_1}}')+ " 0%, " +j1.setColorData('{{background_color_2}}')+ " 100%);";
604
- banner_backround_style += 'filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="' +j1.setColorData('{{background_color_1}}')+ '", endColorstr="' +j1.setColorData('{{background_color_2}}')+ '", GradientType=0); ';
605
- banner_backround_style += "} </style>";
606
- $('head').append( banner_backround_style );
607
- {% endif %}
608
505
 
609
506
  {% comment %} Register current banner
610
507
  -------------------------------------------------------------------- {% endcomment %}
@@ -617,8 +514,6 @@ var j1 = (function () {
617
514
  ---------------------------------------------------------------------- {% endcomment %}
618
515
  {% assign id = nil %}
619
516
  {% assign enabled = nil %}
620
- {% assign background_color_1 = nil %}
621
- {% assign background_color_2 = nil %}
622
517
  {% assign banner_config = nil %}
623
518
 
624
519
  {% endfor %} {% comment %} END banner_config {% endcomment %}
@@ -650,7 +545,7 @@ var j1 = (function () {
650
545
  }, // END initBanner
651
546
 
652
547
  // -------------------------------------------------------------------------
653
- // initPanel
548
+ // initPanel()
654
549
  // AJAX fetcher to load and place all panel used for a page
655
550
  // -------------------------------------------------------------------------
656
551
  // ToDo:
@@ -723,7 +618,7 @@ var j1 = (function () {
723
618
 
724
619
  if ( panel.length ) {
725
620
  for (var i in panel) {
726
- var id = "#" + panel[i];
621
+ var id = '#' + panel[i];
727
622
  var selector = $(id);
728
623
  if ( selector.length ) {
729
624
  logText = 'loading panel on id: ' +panel[i];
@@ -741,7 +636,7 @@ var j1 = (function () {
741
636
  }, // END initPanel
742
637
 
743
638
  // -------------------------------------------------------------------------
744
- // initFooter
639
+ // initFooter()
745
640
  // AJAX fetcher to load and place the footer used for a page
746
641
  // -------------------------------------------------------------------------
747
642
  initFooter: function ( options ) {
@@ -759,7 +654,7 @@ var j1 = (function () {
759
654
 
760
655
  state = 'footer_loaded';
761
656
  logger.info('set state for module ' + mod + ': ' + state);
762
- executeFunctionByName(mod + '.setState', window, state)
657
+ executeFunctionByName(mod + '.setState', window, state);
763
658
 
764
659
  logText = 'initialization finished';
765
660
  logger.info(logText);
@@ -787,77 +682,20 @@ var j1 = (function () {
787
682
  return true;
788
683
  }, // END initFooter
789
684
 
790
- // -------------------------------------------------------------------------
791
- // initClipboard
792
- // Create copy-to-clipboard for all pages
793
- // -------------------------------------------------------------------------
794
- initClipboard: function ( options ) {
795
- var logger = log4javascript.getLogger('j1.initClipboard');
796
-
797
- logText = 'initialization started';
798
- logger.info(logText);
799
-
800
- // insert copy to clipboard button before all elements having a
801
- // class of ".highlight" assigned to (e.g. Asciidoc source blocks)
802
- $('.highlight').each(function () {
803
- // Check if no clipboard should be applied
804
- var isNoClip = $(this).closest('.noclip');
805
- if ( isNoClip.length == 0) {
806
- var btnHtml = '<div class="j1-clipboard"><span class="btn-clipboard j1-tooltip" data-toggle="tooltip" data-placement="left" title="Copy to clipboard">Copy</span></div>';
807
- var bumms = $(this).closest('.noclip');
808
- $(this).before(btnHtml);
809
- $('.btn-clipboard').tooltip();
810
- }
811
- });
812
- var clipboard = new Clipboard( '.btn-clipboard', {
813
- target: function target(trigger) {
814
- return trigger.parentNode.nextElementSibling;
815
- }
816
- });
817
-
818
- // Manage clipboard events
819
- clipboard.on('success', function (e) {
820
- $(e.trigger).attr('title', 'copied!').tooltip('_fixTitle').tooltip('show').attr('title', 'Copy to clipboard').tooltip('_fixTitle');
821
- var logger = log4javascript.getLogger('j1.initClipboard');
822
- var logText = 'initialization copy-to-clipboard sucessfull';
823
- logger.debug(logText);
824
- /* Cleanup clipped data for trailing numbers */
825
- var splitted = e.text.split('\n');
826
- var concat;
827
- var i;
828
- for (i=0; i<splitted.length; i++) {
829
- concat += splitted[i].replace(/^\s+\d+/, '');
830
- }
831
- e.clearSelection();
832
- });
833
- clipboard.on('error', function (e) {
834
- var fallbackMsg = /Mac/i.test(navigator.userAgent) ? 'press \u2318 to copy' : 'press ctrl-c to copy';
835
- logger = log4javascript.getLogger('j1.initClipboard');
836
- logText = 'initialization copy-to-clipboard failed, fallback used.';
837
- logger.warn(logText);
838
- $(e.trigger).attr('title', fallbackMsg).tooltip('_fixTitle').tooltip('show').attr('title', 'copy to clipboard').tooltip('_fixTitle');
839
- });
840
-
841
- logText = 'initialization finished';
842
- logger.info(logText);
843
-
844
- return true;
845
- }, // END initClipboard
846
-
847
685
  // -------------------------------------------------------------------------
848
686
  // displayPage
849
- // Show the page after timeout of {{hideOnReload}} ms
687
+ // show the page after timeout of {{flickerTimeout}} ms
850
688
  // -------------------------------------------------------------------------
851
689
  // NOTE:
852
690
  // jadams, 2019-08-21: for unknown reason, the user state data
853
- // (read from cookie) seems not coorect (or loaded too late).
691
+ // (read from cookie) seems not correct (or loaded too late).
854
692
  // To make correct data sure for APP mode, a status request is done
855
693
  // to load the current state from the middleware (skipped in WEB mode)
856
694
  // -------------------------------------------------------------------------
857
695
  displayPage: function (options) {
858
696
  var logger = log4javascript.getLogger('j1.displayPage');
859
697
  var flickerTimeout = {{template_config.flicker_timeout}};
860
- var url = new parseURL(window.location.href)
698
+ var url = new parseURL(window.location.href);
861
699
  var baseUrl = url.origin;
862
700
  var ep_status = baseUrl + '/status' + '?page=' + window.location.pathname;
863
701
  var user_session = j1.readCookie(cookie_names.user_session);
@@ -869,7 +707,6 @@ var j1 = (function () {
869
707
  var appDetected;
870
708
  var categoryAllowed;
871
709
 
872
-
873
710
  logger.info('finalize page');
874
711
  j1.setCss();
875
712
 
@@ -892,7 +729,8 @@ var j1 = (function () {
892
729
  providerPermissions = user_session.provider_permissions;
893
730
  categoryAllowed = providerPermissions.includes(user_session.page_permission);
894
731
 
895
- // Make sure that protected pages are ALWAYS checked for permissions
732
+ // check protected pages (applies for APP only)
733
+ // make sure that protected pages are ALWAYS checked for permissions
896
734
  // -------------------------------------------------------------------
897
735
  if (
898
736
  j1.authEnabled() &&
@@ -910,10 +748,14 @@ var j1 = (function () {
910
748
  }
911
749
  } // END check protected pages
912
750
 
751
+ // show the page delayed
913
752
  setTimeout (function() {
914
- // Display page
753
+ // display page
915
754
  $('#no_flicker').css('display', 'block');
916
755
 
756
+ // bind MDB services to current page
757
+ j1.initMDB();
758
+
917
759
  // show|hide cookie icon
918
760
  if (user_state.cookies_accepted === 'accepted') {
919
761
  // show cookie icon
@@ -942,19 +784,19 @@ var j1 = (function () {
942
784
  if (user_session.authenticated === 'true') {
943
785
  // set signout
944
786
  logger.info('show signout icon');
945
- $('#navLinkSignInOut').attr("data-target","#modalOmniSignOut");
946
- $('#iconSignInOut').removeClass( "mdi-login" ).addClass( "mdi-logout" );
787
+ $('#navLinkSignInOut').attr('data-target','#modalOmniSignOut');
788
+ $('#iconSignInOut').removeClass('mdi-login').addClass('mdi-logout');
947
789
  } else {
948
790
  // set signin
949
791
  logger.info('show signin icon');
950
- $('#navLinkSignInOut').attr("data-target","#modalOmniSignIn");
951
- $('#iconSignInOut').removeClass( "mdi-logout" ).addClass( "mdi-login" );
792
+ $('#navLinkSignInOut').attr('data-target','#modalOmniSignIn');
793
+ $('#iconSignInOut').removeClass('mdi-logout').addClass('mdi-login');
952
794
  }
953
795
  logger.info('authentication detected as: ' + user_session.authenticated);
954
796
  $('#quickLinksSignInOutButton').css('display', 'block');
955
797
  }
956
798
 
957
- // If the page requested contains an anchor element,
799
+ // if the page requested contains an anchor element,
958
800
  // do a smooth scroll to
959
801
  j1.scrollTo();
960
802
 
@@ -981,89 +823,90 @@ var j1 = (function () {
981
823
  logger.info(logText);
982
824
 
983
825
  }, flickerTimeout);
984
- });
985
- // END APP mode
986
- } else {
987
- // web mode
826
+ }); // END APP mode
827
+ } else { // web mode
828
+ // show the page delayed
988
829
  setTimeout (function() {
989
- // Display page
830
+ // display page
990
831
  $('#no_flicker').css('display', 'block');
991
- logger.info('mode detected: web');
992
- logger.info('hide signin icon');
993
- $('#quickLinksSignInOutButton').css('display', 'none');
832
+ logger.info('mode detected: web');
833
+ logger.info('hide signin icon');
834
+ $('#quickLinksSignInOutButton').css('display', 'none');
994
835
 
995
- user_session.current_page = current_url.pathname;
996
- j1.writeCookie({
836
+ user_session.current_page = current_url.pathname;
837
+ j1.writeCookie({
997
838
  name: cookie_names.user_session,
998
839
  data: user_session
999
- });
1000
-
1001
- // show|hide translator icon
1002
- if (translation_enabled) {
1003
- logger.info('translator detected: google');
1004
- logger.info('initialize language selector');
1005
- $('.goog-te-combo').addClass('form-control');
1006
- }
1007
-
1008
- // show|hide cookie icon
1009
- if (user_state.cookies_accepted === 'accepted') {
1010
- // Display cookie icon
1011
- logText = 'show cookie icon';
1012
- logger.info(logText);
1013
- $('#quickLinksCookieButton').css('display', 'block');
1014
- } else {
1015
- logText = 'hide cookie icon';
1016
- logger.info(logText);
1017
- // Display cookie icon
1018
- $('#quickLinksCookieButton').css('display', 'none');
1019
- }
840
+ });
1020
841
 
1021
- // If the page requested contains an anchor element,
1022
- // do a smooth scroll to
1023
- j1.scrollTo();
842
+ // show|hide translator icon
843
+ if (translation_enabled) {
844
+ logger.info('translator detected: google');
845
+ logger.info('initialize language selector');
846
+ $('.goog-te-combo').addClass('form-control');
847
+ }
1024
848
 
1025
- if (user_session.previous_page !== user_session.current_page) {
1026
- logText = 'page change detected';
1027
- logger.info(logText);
1028
- logText = 'previous page: ' + user_session.previous_page;
1029
- logger.info(logText);
1030
- logText = 'current page: ' + user_session.current_page;
1031
- logger.info(logText);
1032
- }
849
+ // show|hide cookie icon
850
+ if (user_state.cookies_accepted === 'accepted') {
851
+ // Display cookie icon
852
+ logText = 'show cookie icon';
853
+ logger.info(logText);
854
+ $('#quickLinksCookieButton').css('display', 'block');
855
+ } else {
856
+ logText = 'hide cookie icon';
857
+ logger.info(logText);
858
+ // Display cookie icon
859
+ $('#quickLinksCookieButton').css('display', 'none');
860
+ }
1033
861
 
1034
- // update sidebar for changed consent|theme data
1035
- logger.info('update sidebar');
1036
- user_state = j1.readCookie(cookie_names.user_state);
1037
- current_user_data = j1.mergeData(user_session, user_state);
1038
- j1.core.navigator.updateSidebar(current_user_data);
862
+ // If the page requested contains an anchor element,
863
+ // do a smooth scroll to
864
+ j1.scrollTo();
1039
865
 
1040
- // Set|Log status
1041
- state = 'finished';
1042
- logText = 'state: ' + state;
866
+ if (user_session.previous_page !== user_session.current_page) {
867
+ logText = 'page change detected';
1043
868
  logger.info(logText);
1044
- logText = 'page finalized successfully';
869
+ logText = 'previous page: ' + user_session.previous_page;
1045
870
  logger.info(logText);
871
+ logText = 'current page: ' + user_session.current_page;
872
+ logger.info(logText);
873
+ }
874
+
875
+ // update sidebar for changed consent|theme data
876
+ logger.info('update sidebar');
877
+ user_state = j1.readCookie(cookie_names.user_state);
878
+ current_user_data = j1.mergeData(user_session, user_state);
879
+ j1.core.navigator.updateSidebar(current_user_data);
880
+
881
+ // set|log status
882
+ state = 'finished';
883
+ logText = 'state: ' + state;
884
+ logger.info(logText);
885
+ logText = 'page finalized successfully';
886
+ logger.info(logText);
1046
887
 
1047
- }, flickerTimeout);
888
+ }, flickerTimeout);
1048
889
  } // END WEB mode
1049
890
  }, // END displayPage
1050
891
 
1051
892
  // -------------------------------------------------------------------------
1052
- // Initialize BS Material Design
893
+ // initMDB()
894
+ // initialize page for MDB
1053
895
  // -------------------------------------------------------------------------
1054
- // ToDo:
1055
896
  initMDB: function (options) {
1056
- var logger;
1057
-
1058
- logger = log4javascript.getLogger('j1.initMDB');
1059
- logText = 'material design is being started';
1060
- logger.info(logText);
897
+ var dependencies_met_bmd = setInterval(function() {
898
+ if ( j1.adapter.mdb.getState() == 'finished' ) {
899
+ var logger = log4javascript.getLogger('j1.initMDB');
900
+ logText = 'initializing MDB for current page: started';
901
+ logger.info(logText);
1061
902
 
1062
- $('body').bootstrapMaterialDesign();
1063
- //new WOW().init();
903
+ $('body').bootstrapMaterialDesign();
1064
904
 
1065
- var logText = 'initializing material design finished';
1066
- logger.info(logText);
905
+ logText = 'initializing MDB for current page: finished';
906
+ logger.info(logText);
907
+ clearInterval(dependencies_met_bmd);
908
+ }
909
+ }, 25);
1067
910
  }, // END initMDB
1068
911
 
1069
912
  // -------------------------------------------------------------------------
@@ -1071,9 +914,10 @@ var j1 = (function () {
1071
914
  // -------------------------------------------------------------------------
1072
915
 
1073
916
  // -------------------------------------------------------------------------
1074
- // Merge two objects (properties) and returns the resulting object
1075
- // TODO: Improve comment, give synopsis and example
1076
- // See: https://stackoverflow.com/questions/43109229/merge-default-options-containing-object-with-json-object
917
+ // mergeData()
918
+ // merge two objects (properties) and returns the resulting object
919
+ // see: https://stackoverflow.com/questions/43109229/merge-default-options-containing-object-with-json-object
920
+ // TODO: Improve comment, give synopsis and example
1077
921
  // -------------------------------------------------------------------------
1078
922
  mergeData: function () {
1079
923
  var a = [].slice.call(arguments), o = a.shift();
@@ -1087,39 +931,43 @@ var j1 = (function () {
1087
931
  }, // END mergeData
1088
932
 
1089
933
  // -------------------------------------------------------------------------
1090
- // returns the last vistited page
934
+ // getPrevPage()
935
+ // returns the last vistited page
1091
936
  // -------------------------------------------------------------------------
1092
937
  getPrevPage: function () {
1093
938
  return previous_page;
1094
939
  }, // END getPrevPage
1095
940
 
1096
941
  // -------------------------------------------------------------------------
1097
- // returns the preferred language taken form window.navigator
1098
- // See:
1099
- // https://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference
942
+ // getLanguage()
943
+ // returns the preferred language taken form window.navigator
944
+ // See:
945
+ // https://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference
1100
946
  // -------------------------------------------------------------------------
1101
947
  getLanguage: function () {
1102
948
  var language = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage);
1103
949
  }, // END getLanguage
1104
950
 
1105
951
  // -------------------------------------------------------------------------
1106
- // returns the template version taken from site config (_config.yml)
952
+ // getTemplateVersion()
953
+ // returns the template version taken from site config (_config.yml)
1107
954
  // -------------------------------------------------------------------------
1108
955
  getTemplateVersion: function () {
1109
956
  return '{{template_version}}';
1110
957
  }, // END getTemplateVersion
1111
958
 
1112
959
  // -------------------------------------------------------------------------
960
+ // scrollTo()
1113
961
  // Scrolls smooth to any anchor referenced by an page URL on
1114
962
  // e.g. a page reload. Values for delay|offset are taken from
1115
963
  // TOCCER module
1116
964
  // -------------------------------------------------------------------------
1117
965
  scrollTo: function () {
1118
- var anchor = window.location.href.split("#")[1];
966
+ var anchor = window.location.href.split('#')[1];
1119
967
  var anchor_id = '#' + anchor;
1120
968
  var selector;
1121
969
 
1122
- if (anchor_id) {
970
+ if (anchor && anchor_id) {
1123
971
  // scroll only, if an anchor is given with URL
1124
972
  selector = $(anchor_id);
1125
973
  if (selector.length) {
@@ -1130,7 +978,9 @@ var j1 = (function () {
1130
978
  });
1131
979
  } else {
1132
980
  // scroll the page one pixel back and forth (trigger)
1133
- // to get the right position for the Toccer
981
+ // to get the right position for the Toccer and adjust the
982
+ // Navigator to display the (tranparent) navbar correctly
983
+ //
1134
984
  $(window).scrollTop($(window).scrollTop()+1);
1135
985
  $(window).scrollTop($(window).scrollTop()-1);
1136
986
  } // END if anchor_id
@@ -1138,18 +988,18 @@ var j1 = (function () {
1138
988
  }, // END scrollTo
1139
989
 
1140
990
  // -------------------------------------------------------------------------
1141
- // authEnabled:
991
+ // authEnabled()
1142
992
  // Returns the state of the authentication module
1143
993
  // -------------------------------------------------------------------------
1144
994
  authEnabled: function () {
1145
- var logger = log4javascript.getLogger('j1.authentication');
1146
- var authEnabled = {{authentication_options.j1_auth.enabled}}
995
+ var logger = log4javascript.getLogger('j1.authentication');
996
+ var authEnabled = {{authentication_options.j1_auth.enabled}};
1147
997
 
1148
998
  return authEnabled;
1149
999
  }, // END authEnabled
1150
1000
 
1151
1001
  // -------------------------------------------------------------------------
1152
- // appDetected:
1002
+ // appDetected()
1153
1003
  // Returns true if a web session cookie exists
1154
1004
  // -------------------------------------------------------------------------
1155
1005
  appDetected: function () {
@@ -1168,7 +1018,7 @@ var j1 = (function () {
1168
1018
  }, // END appDetected
1169
1019
 
1170
1020
  // -------------------------------------------------------------------------
1171
- // xhrData:
1021
+ // xhrData()
1172
1022
  // Load data asychronously using XHR on a DIV container
1173
1023
  // specified (from options: xhr_data_path)
1174
1024
  // -------------------------------------------------------------------------
@@ -1197,27 +1047,28 @@ var j1 = (function () {
1197
1047
  };
1198
1048
  };
1199
1049
 
1200
- var id = "#" + options.xhr_container_id;
1050
+ var id = '#' + options.xhr_container_id;
1201
1051
  var selector = $(id);
1202
1052
 
1203
1053
  if ( selector.length ) {
1204
- var modal_html_data_path = options.xhr_data_path + " > *";
1054
+ var modal_html_data_path = options.xhr_data_path + ' > *';
1205
1055
  selector.load( modal_html_data_path, cb_load_closure( mod, id ) );
1206
1056
  return true;
1207
1057
  } else {
1208
- logText = "data not loaded"
1058
+ logText = 'data not loaded';
1209
1059
  logger.warn(logText);
1210
1060
  // Set processing state to 'finished' to complete module load
1211
1061
  state = 'finished';
1212
1062
  logger.info('state: ' + state);
1213
- executeFunctionByName(mod + '.setState', window, state)
1063
+ executeFunctionByName(mod + '.setState', window, state);
1214
1064
  return false;
1215
1065
  }
1216
1066
  }, // END xhrData
1217
1067
 
1218
1068
  // -------------------------------------------------------------------------
1219
- // xhrApi: XMLHttpRequest (XHR) based async server API request
1220
- // Request an REST API at 'url', using verb 'type' of response type 'type'
1069
+ // xhrApi:()
1070
+ // XMLHttpRequest (XHR) based async server API request
1071
+ // Request an REST API at 'url', using verb 'type' of response type 'type'
1221
1072
  // -------------------------------------------------------------------------
1222
1073
  xhrApi: function (url, request_type, data_type) {
1223
1074
  var logger = log4javascript.getLogger('j1.xhrApi');
@@ -1244,236 +1095,7 @@ var j1 = (function () {
1244
1095
  }, // END xhrApi
1245
1096
 
1246
1097
  // -------------------------------------------------------------------------
1247
- // fetchAPI: Fetch (Promise) based async request
1248
- // Returns the current git state collected from /git endpoint
1249
- // -------------------------------------------------------------------------
1250
- fetchAPI: function (params, cbData) {
1251
- var logger = log4javascript.getLogger('j1.fetchAPI');
1252
- var cbData = cbData;
1253
- var parameters = params == '' ? 'all' : params;
1254
- var url = 'http://localhost:41001/gut';
1255
-
1256
- async function callAPI() {
1257
- const URL = url;
1258
- const fetchResult = fetch(URL)
1259
- const response = await fetchResult;
1260
-
1261
- if (response.ok) {
1262
- const jsonData = await response.json();
1263
- json_data = JSON.stringify(jsonData, undefined, 2);
1264
- logText = 'response from fetch received: ' + json_data;
1265
- logger.info(logText);
1266
- //console.log(jsonData);
1267
- } else {
1268
- throw Error(response.statusText);
1269
- // logger.error("Fetch request failed: " + response.statusText);
1270
- }
1271
- }
1272
- callAPI();
1273
-
1274
- return true;
1275
- }, // END fetchAPI
1276
-
1277
- // -------------------------------------------------------------------------
1278
- // getRuntimeData: Returns the j1_runtime data object
1279
- //
1280
- // -------------------------------------------------------------------------
1281
- getRuntimeData: function (data_path) {
1282
- var logger = log4javascript.getLogger('j1.getRuntimeData');
1283
- var logText;
1284
-
1285
- return $.ajax({
1286
- url: data_path,
1287
- success: function (contents) {
1288
- logText = 'data loaded successfully';
1289
- logger.info(logText);
1290
- state = 'runtime_data_loaded_success';
1291
- logger.info('state: ' + state);
1292
- executeFunctionByName('j1.setState', window, state);
1293
- },
1294
- error: function (err) {
1295
- logText = 'runtime data not loaded: ' + err;
1296
- logger.warn(logText);
1297
- state = 'runtime_data_loaded_failed';
1298
- logger.info('state: ' + state);
1299
- executeFunctionByName('j1.setState', window, state)
1300
- return false;
1301
- }
1302
- });
1303
-
1304
- }, // END getRuntimeData
1305
-
1306
- // -------------------------------------------------------------------------
1307
- // getColorData: Returns the j1_colors object
1308
- // Load color definitions from colors_data_path
1309
- // -------------------------------------------------------------------------
1310
- getColorData: function (data_path) {
1311
- var logger = log4javascript.getLogger('j1.getColorData');
1312
- var j1_colors = {};
1313
-
1314
- return $.ajax({
1315
- url: data_path,
1316
- success: function (data) {
1317
- var logText = "color data loaded successfully"
1318
- logger.info(logText);
1319
- state = 'color_data_loaded_success';
1320
- logger.info('state: ' + state);
1321
- executeFunctionByName('j1.setState', window, state);
1322
-
1323
- if (typeof data == 'string') {
1324
- j1_colors = JSON.parse(data);
1325
- }
1326
- if (typeof data == 'object') {
1327
- j1_colors = data;
1328
- }
1329
- },
1330
- error: function (data) {
1331
- var logText = "color data not loaded"
1332
- logger.warn(logText);
1333
- state = 'color_data_loaded_failed';
1334
- logger.info('state: ' + state);
1335
- executeFunctionByName('j1.setState', window, state)
1336
- return false;
1337
- }
1338
- });
1339
-
1340
- }, // END getColorData
1341
-
1342
- // -------------------------------------------------------------------------
1343
- // setColorData:
1344
- //
1345
- // -------------------------------------------------------------------------
1346
- setColorData: function (color) {
1347
-
1348
- if ( typeof color != 'undefined' ) {
1349
- var reHex = /^#[A-Fa-f0-9]+$/;
1350
- var reRGBA = /^rgba/;
1351
- var isHex = color.match(reHex);
1352
- var isRGBA = color.match(reRGBA);
1353
-
1354
- if ( typeof j1.colors[color] != 'undefined' ) {
1355
- return j1.colors[color];
1356
- } else if (isHex) {
1357
- return color;
1358
- } else if (isRGBA) {
1359
- return color;
1360
- } else {
1361
- return false;
1362
- }
1363
- } else {
1364
- return false;
1365
- }
1366
-
1367
- }, // END setColorData
1368
-
1369
- // -------------------------------------------------------------------------
1370
- // getFontSizeData: Returns the j1_font_sizes object
1371
- // Load loadFontSize definitions from font_size_data_path
1372
- // -------------------------------------------------------------------------
1373
- getFontSizeData: function (data_path) {
1374
- var logger = log4javascript.getLogger('j1.getFontSizeData');
1375
- var j1_font_sizes = {};
1376
-
1377
- return $.ajax({
1378
- url: data_path,
1379
- success: function (data) {
1380
- var logText = "font size data loaded successfully"
1381
- logger.info(logText);
1382
- state = 'fontsize_data_loaded_success';
1383
- logger.info('state: ' + state);
1384
- executeFunctionByName('j1.setState', window, state);
1385
-
1386
- if (typeof data == 'string') {
1387
- j1_font_sizes = JSON.parse(data);
1388
- }
1389
- if (typeof data == 'object') {
1390
- j1_font_sizes = data;
1391
- }
1392
- },
1393
- error: function (data) {
1394
- var logText = "font size data not loaded"
1395
- logger.warn(logText);
1396
- state = 'fontsize_data_loaded_failed';
1397
- logger.info('state: ' + state);
1398
- executeFunctionByName('j1.setState', window, state)
1399
- return false;
1400
- }
1401
- });
1402
-
1403
- }, // END getFontSizeData
1404
-
1405
- // -------------------------------------------------------------------------
1406
- // getFontSize: Returns the CSS value for a 'logical' fontsize
1407
- // out of the j1_font_sizes object
1408
- // -------------------------------------------------------------------------
1409
- setFontSize: function (size) {
1410
-
1411
- if ( typeof size != 'undefined' ) {
1412
- var reCSS = /\bpx\b|\brem\b|\bem\b|\%|\binherit\b|\binitial\b|\bunset\b/;
1413
- var isCSS = size.match(reCSS);
1414
-
1415
- // if ( typeof j1_font_sizes[size] != "undefined" ) {
1416
- if ( typeof j1.fonts[size] != "undefined" ) {
1417
- return j1.fonts[size];
1418
- } else if (isCSS) {
1419
- return size;
1420
- } else {
1421
- return false;
1422
- }
1423
- } else {
1424
- return false;
1425
- }
1426
-
1427
- }, // END getFontSize
1428
-
1429
- // -------------------------------------------------------------------------
1430
- // loadMessageCatalog
1431
- // Loads the message catalog object
1432
- // -------------------------------------------------------------------------
1433
- getMessageCatalog: function (data_path /*, request_type, data_type*/) {
1434
- var logger = log4javascript.getLogger('j1.loadMessageCatalog');
1435
- var message_catalog = {};
1436
- var type = typeof request_type == 'undefined' || request_type == '' ? 'GET' : request_type;
1437
- var data_type = typeof data_type == 'undefined' || data_type == '' ? 'text' : data_type;
1438
- var messageData;
1439
- var logBase;
1440
- var logText;
1441
- var property;
1442
-
1443
- return $.ajax({
1444
- url: data_path,
1445
- type: type,
1446
- dataType: data_type,
1447
- success: function (data) {
1448
- messageData = yaml.safeLoad(data);
1449
- for (property in messageData) {
1450
- if (messageData.hasOwnProperty(property)) {
1451
- message_catalog[property] = {};
1452
- messageData[property].forEach((element) => {
1453
- var key = Object.keys(element)[0];
1454
- var value = element[Object.keys(element)[0]];
1455
- message_catalog[property][key] = value;
1456
- });
1457
- }
1458
- }
1459
- j1.messages = message_catalog;
1460
- logBase = message_catalog.info.getData.message
1461
- logText = logBase.text + logBase.message_catalog + logBase.finished;
1462
- logger.info(logText);
1463
- },
1464
- error: function(data) {
1465
- var json_data = JSON.stringify(data, undefined, 2);
1466
- logBase = message_catalog.error.getData.message;
1467
- logText = logBase.text + logBase.xhr + ': ' + json_data
1468
- logger.error(logText);
1469
- }
1470
- });
1471
-
1472
- }, // END getMessageCatalog
1473
-
1474
- // -------------------------------------------------------------------------
1475
- // readCookie:
1476
- //
1098
+ // readCookie()
1477
1099
  // -------------------------------------------------------------------------
1478
1100
  readCookie: function (name) {
1479
1101
  var data;
@@ -1495,7 +1117,7 @@ var j1 = (function () {
1495
1117
  }, // END readCookie
1496
1118
 
1497
1119
  // -------------------------------------------------------------------------
1498
- // writeCookie:
1120
+ // writeCookie()
1499
1121
  // Write 'data' to a cookie 'name'. If not exists, the cookie gets
1500
1122
  // created. Returns 'true' if cookie was written, otherwise 'false'.
1501
1123
  //
@@ -1527,8 +1149,8 @@ var j1 = (function () {
1527
1149
  Cookies.set(settings.name, data_encoded);
1528
1150
  }
1529
1151
  } else {
1530
- cookie_data = settings.data
1531
- data_json = JSON.stringify( settings.data );
1152
+ cookie_data = settings.data;
1153
+ data_json = JSON.stringify(settings.data);
1532
1154
  data_encoded = window.btoa(data_json);
1533
1155
  if (settings.expires > 0) {
1534
1156
  Cookies.set(settings.name, data_encoded, { expires: settings.expires });
@@ -1573,13 +1195,13 @@ var j1 = (function () {
1573
1195
  // -------------------------------------------------------------------------
1574
1196
  deleteCookie: function (options) {
1575
1197
  var name = options;
1576
- var all_cookies = document.cookie.split("; ");
1198
+ var all_cookies = document.cookie.split('; ');
1577
1199
 
1578
1200
  if ( name === 'all' ) {
1579
1201
  for (var c = 0; c < all_cookies.length; c++) {
1580
- var d = window.location.hostname.split(".");
1202
+ var d = window.location.hostname.split('.');
1581
1203
  while (d.length > 0) {
1582
- var cookieBase = encodeURIComponent(all_cookies[c].split(";")[0].split("=")[0]) + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=' + d.join('.') + ' ;path=';
1204
+ var cookieBase = encodeURIComponent(all_cookies[c].split(';')[0].split('=')[0]) + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=' + d.join('.') + ' ;path=';
1583
1205
  var p = location.pathname.split('/');
1584
1206
  document.cookie = cookieBase + '/';
1585
1207
  while (p.length > 0) {
@@ -1590,7 +1212,7 @@ var j1 = (function () {
1590
1212
  }
1591
1213
  }
1592
1214
  } else {
1593
- document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
1215
+ document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
1594
1216
  }
1595
1217
 
1596
1218
  return true;
@@ -1601,8 +1223,8 @@ var j1 = (function () {
1601
1223
  // -------------------------------------------------------------------------
1602
1224
  existsCookie: function (name) {
1603
1225
  var dc = document.cookie;
1604
- var prefix = name + "=";
1605
- var begin = dc.indexOf("; " + prefix);
1226
+ var prefix = name + '=';
1227
+ var begin = dc.indexOf('; ' + prefix);
1606
1228
  var end = dc.length; // default to end of the string
1607
1229
  var cookieExists = false;
1608
1230
  var cookieContent = '';
@@ -1620,8 +1242,8 @@ var j1 = (function () {
1620
1242
 
1621
1243
  // if ";" is found somewhere after the prefix position then "end" is
1622
1244
  // that position, otherwise it defaults to the end of the string
1623
- if (dc.indexOf(";", begin) !== -1) {
1624
- end = dc.indexOf(";", begin);
1245
+ if (dc.indexOf(';', begin) !== -1) {
1246
+ end = dc.indexOf(';', begin);
1625
1247
  }
1626
1248
 
1627
1249
  cookieContent = decodeURI(dc.substring(begin + prefix.length, end) ).replace(/"/g, '');
@@ -1643,63 +1265,68 @@ var j1 = (function () {
1643
1265
  resolveMacros: function (user_data) {
1644
1266
  var logger = log4javascript.getLogger('j1.resolveMacros');
1645
1267
 
1646
- if (Object.keys(user_data).length) {
1647
- $('[id^=macro-]').each(function() {
1268
+ var sidebarLoaded = setInterval(function() {
1269
+ if ($('#sidebar_mmenu').length) {
1270
+ if (Object.keys(user_data).length) {
1271
+ $('[id^=macro-]').each(function() {
1648
1272
 
1649
- $('#macro-provider').each(function() {
1650
- var $this = $(this);
1651
- var $html = $this.html();
1652
- $this.html($html.replace('??provider', user_data.provider));
1653
- this.href = this.href.replace(/.*\/??provider-site-url/, user_data.provider_site_url);
1654
- });
1655
- $('#macro-user-name').each(function() {
1656
- var $this = $(this);
1657
- var $html = $this.html();
1658
- $this.html($html.replace('??user-name', user_data.user_name));
1659
- this.href = this.href.replace(/.*\/??provider_member_url/, user_data.provider_member_url);
1660
- });
1661
- $('#macro-provider-permissions').each(function() {
1662
- var $this = $(this);
1663
- var $html = $this.html();
1664
- $this.html($html.replace('??provider-permissions', user_data.provider_permissions));
1665
- this.href = this.href.replace(/.*\/??provider_member_url/, user_data.provider_member_url);
1666
- });
1667
- $('#macro-provider-membership').each(function() {
1668
- var $this = $(this);
1669
- var $html = $this.html();
1670
- $this.html($html.replace('??provider-membership', user_data.provider_membership));
1671
- this.href = this.href.replace(/.*\/??provider_member_url/, user_data.provider_member_url);
1672
- });
1673
- $('#macro-cookie-state').each(function() {
1674
- var $this = $(this);
1675
- var $html = $this.html();
1676
- $this.html($html.replace('??cookie-state', user_data.cookies_accepted));
1677
- this.href = this.href.replace(/.*\/??provider_privacy_url/, user_data.provider_privacy_url);
1678
- });
1679
- $('#macro-theme-name').each(function() {
1680
- var $this = $(this);
1681
- var $html = $this.html();
1682
- $this.html($html.replace('??theme-name', user_data.theme_name));
1683
- });
1684
- $('#macro-theme-author').each(function() {
1685
- var $this = $(this);
1686
- var $html = $this.html();
1687
- $this.html($html.replace('??theme-author', user_data.theme_author));
1688
- this.href = this.href.replace(/.*\/??theme-author-url/, user_data.theme_author_url);
1689
- });
1690
- $('#macro-theme-version').each(function() {
1691
- var $this = $(this);
1692
- var $html = $this.html();
1693
- $this.html($html.replace('??theme-version', user_data.theme_version));
1694
- });
1695
-
1696
- });
1697
- return true;
1698
- } else {
1699
- logger.error('no user data provided');
1700
- return false;
1701
- }
1273
+ $('#macro-provider').each(function() {
1274
+ var $this = $(this);
1275
+ var $html = $this.html();
1276
+ $this.html($html.replace('??provider', user_data.provider));
1277
+ this.href = this.href.replace(/.*\/??provider-site-url/, user_data.provider_site_url);
1278
+ });
1279
+ $('#macro-user-name').each(function() {
1280
+ var $this = $(this);
1281
+ var $html = $this.html();
1282
+ $this.html($html.replace('??user-name', user_data.user_name));
1283
+ this.href = this.href.replace(/.*\/??provider_member_url/, user_data.provider_member_url);
1284
+ });
1285
+ $('#macro-provider-permissions').each(function() {
1286
+ var $this = $(this);
1287
+ var $html = $this.html();
1288
+ $this.html($html.replace('??provider-permissions', user_data.provider_permissions));
1289
+ this.href = this.href.replace(/.*\/??provider_member_url/, user_data.provider_member_url);
1290
+ });
1291
+ $('#macro-provider-membership').each(function() {
1292
+ var $this = $(this);
1293
+ var $html = $this.html();
1294
+ $this.html($html.replace('??provider-membership', user_data.provider_membership));
1295
+ this.href = this.href.replace(/.*\/??provider_member_url/, user_data.provider_member_url);
1296
+ });
1297
+ $('#macro-cookie-state').each(function() {
1298
+ var $this = $(this);
1299
+ var $html = $this.html();
1300
+ $this.html($html.replace('??cookie-state', user_data.cookies_accepted));
1301
+ this.href = this.href.replace(/.*\/??provider_privacy_url/, user_data.provider_privacy_url);
1302
+ });
1303
+ $('#macro-theme-name').each(function() {
1304
+ var $this = $(this);
1305
+ var $html = $this.html();
1306
+ $this.html($html.replace('??theme-name', user_data.theme_name));
1307
+ });
1308
+ $('#macro-theme-author').each(function() {
1309
+ var $this = $(this);
1310
+ var $html = $this.html();
1311
+ $this.html($html.replace('??theme-author', user_data.theme_author));
1312
+ this.href = this.href.replace(/.*\/??theme-author-url/, user_data.theme_author_url);
1313
+ });
1314
+ $('#macro-theme-version').each(function() {
1315
+ var $this = $(this);
1316
+ var $html = $this.html();
1317
+ $this.html($html.replace('??theme-version', user_data.theme_version));
1318
+ });
1702
1319
 
1320
+ });
1321
+ clearInterval(sidebarLoaded);
1322
+ return true;
1323
+ } else {
1324
+ logger.error('no user data provided');
1325
+ clearInterval(sidebarLoaded);
1326
+ return false;
1327
+ }
1328
+ }
1329
+ }, 25); // END 'sidebarLoaded'
1703
1330
  }, // END resolveMacros
1704
1331
 
1705
1332
  // -------------------------------------------------------------------------
@@ -1709,48 +1336,54 @@ var j1 = (function () {
1709
1336
  updateMacros: function (user_data) {
1710
1337
  var logger = log4javascript.getLogger('j1.updateMacros');
1711
1338
 
1712
- if (Object.keys(user_data).length) {
1713
- $('[id^=macro-]').each(function() {
1339
+ var sidebarLoaded = setInterval(function() {
1340
+ if ($('#sidebar_mmenu').length) {
1714
1341
 
1715
- $('#macro-provider').each(function() {
1716
- var $this = $(this);
1717
- var $html = $this.html();
1718
- $this.html($html.replace(/Provider:.*/, 'Provider: ' + user_data.provider));
1719
- $('#macro-provider').attr("href", user_data.provider_site_url);
1720
- });
1721
- $('#macro-user-name').each(function() {
1722
- var $this = $(this);
1723
- var $html = $this.html();
1724
- $this.html($html.replace(/User:.*/, 'User: ' + user_data.user_name));
1725
- $('#macro-user-name').attr("href", user_data.provider_member_url);
1726
- });
1727
- $('#macro-provider-permissions').each(function() {
1728
- var $this = $(this);
1729
- var $html = $this.html();
1730
- // $this.html($html.replace(/public|protected|private|blocked/, user_data.provider_permissions));
1731
- $this.html($html.replace(/public.*|protected.*|private.*|blocked.*/, user_data.provider_permissions));
1732
- $('#macro-provider-permissions').attr("href", user_data.provider_member_url);
1733
- });
1734
- $('#macro-provider-membership').each(function() {
1735
- var $this = $(this);
1736
- var $html = $this.html();
1737
- $this.html($html.replace(/guest|member/, user_data.provider_membership));
1738
- $('#macro-provider-membership').attr("href", user_data.provider_member_url);
1739
- });
1740
- $('#macro-cookie-state').each(function() {
1741
- var $this = $(this);
1742
- var $html = $this.html();
1743
- $this.html($html.replace(/accepted|declined|pending/, user_data.cookies_accepted));
1744
- $('#macro-cookie-state').attr("href", user_data.provider_privacy_url);
1745
- });
1342
+ if (Object.keys(user_data).length) {
1343
+ $('[id^=macro-]').each(function() {
1746
1344
 
1747
- });
1748
- return true;
1749
- } else {
1750
- logger.error('no user data provided');
1751
- return false;
1752
- }
1345
+ $('#macro-provider').each(function() {
1346
+ var $this = $(this);
1347
+ var $html = $this.html();
1348
+ $this.html($html.replace(/Provider:.*/, 'Provider: ' + user_data.provider));
1349
+ $('#macro-provider').attr('href', user_data.provider_site_url);
1350
+ });
1351
+ $('#macro-user-name').each(function() {
1352
+ var $this = $(this);
1353
+ var $html = $this.html();
1354
+ $this.html($html.replace(/User:.*/, 'User: ' + user_data.user_name));
1355
+ $('#macro-user-name').attr('href', user_data.provider_member_url);
1356
+ });
1357
+ $('#macro-provider-permissions').each(function() {
1358
+ var $this = $(this);
1359
+ var $html = $this.html();
1360
+ // $this.html($html.replace(/public|protected|private|blocked/, user_data.provider_permissions));
1361
+ $this.html($html.replace(/public.*|protected.*|private.*|blocked.*/, user_data.provider_permissions));
1362
+ $('#macro-provider-permissions').attr('href', user_data.provider_member_url);
1363
+ });
1364
+ $('#macro-provider-membership').each(function() {
1365
+ var $this = $(this);
1366
+ var $html = $this.html();
1367
+ $this.html($html.replace(/guest|member/, user_data.provider_membership));
1368
+ $('#macro-provider-membership').attr('href', user_data.provider_member_url);
1369
+ });
1370
+ $('#macro-cookie-state').each(function() {
1371
+ var $this = $(this);
1372
+ var $html = $this.html();
1373
+ $this.html($html.replace(/accepted|declined|pending/, user_data.cookies_accepted));
1374
+ $('#macro-cookie-state').attr('href', user_data.provider_privacy_url);
1375
+ });
1753
1376
 
1377
+ });
1378
+ clearInterval(sidebarLoaded);
1379
+ return true;
1380
+ } else {
1381
+ logger.error('no user data provided');
1382
+ clearInterval(sidebarLoaded);
1383
+ return false;
1384
+ }
1385
+ }
1386
+ }, 25); // END 'sidebarLoaded'
1754
1387
  }, // END updateMacros
1755
1388
 
1756
1389
  // -------------------------------------------------------------------------
@@ -1758,7 +1391,7 @@ var j1 = (function () {
1758
1391
  // Get a log message from the log message catalog object
1759
1392
  // -------------------------------------------------------------------------
1760
1393
  getMessage: function (level, message, property) {
1761
- var message = j1.messages[level][message]["message"][property];
1394
+ var message = j1.messages[level][message]['message'][property];
1762
1395
 
1763
1396
  return message;
1764
1397
  }, // END getMessage
@@ -1775,49 +1408,6 @@ var j1 = (function () {
1775
1408
  return true;
1776
1409
  }, // END logger
1777
1410
 
1778
- // -------------------------------------------------------------------------
1779
- // getBaseUrl
1780
- // -------------------------------------------------------------------------
1781
- // getBaseUrl: function () {
1782
- // var myUrl = window.location.href;
1783
- // var ua = platform.name.toLowerCase();
1784
- // var reURL = new RegExp('(http[s]?:\/\/)?([^\/]+)(.*)');
1785
- // var baseUrl;
1786
- // //var reGroups;
1787
- //
1788
- // // NOTE: named capture groups NOT supported by FF + IE11
1789
- // // if ( ua === 'chrome' ) {
1790
- // // reURL = new RegExp('(?<prot>http[s]?:\/\/)?(?<host>[^\/]+)(?<path>.*)');
1791
- // // reGroups = myUrl.match(reURL).groups;
1792
- // // baseUrl = reGroups.prot + reGroups.host;
1793
- // // } else {
1794
- // // reURL = new RegExp('(http[s]?:\/\/)?([^\/]+)(.*)');
1795
- // // myUrl.match(reURL);
1796
- // // baseUrl = RegExp.$1 + RegExp.$2 + RegExp.$3;
1797
- // // }
1798
- //
1799
- // myUrl.match(reURL);
1800
- // // baseUrl = RegExp.$1 + RegExp.$2 + RegExp.$3;
1801
- // baseUrl = RegExp.$1 + RegExp.$2;
1802
- //
1803
- // return baseUrl;
1804
- // }, // END getBaseUrl
1805
-
1806
- // -------------------------------------------------------------------------
1807
- // getPath
1808
- // See: https://stackoverflow.com/questions/27745/getting-parts-of-a-url-regex
1809
- // -------------------------------------------------------------------------
1810
- // getPath: function ( myUrl ) {
1811
- // var url = new parseURL(myUrl)
1812
- // // var reURL = new RegExp('(http[s]?:\/\/)?([^\/]+)(.*)');
1813
- // // var path;
1814
- // //
1815
- // // myUrl.match(reURL);
1816
- // path = url.path;
1817
- //
1818
- // return path;
1819
- // }, // END getPath
1820
-
1821
1411
  // -------------------------------------------------------------------------
1822
1412
  // Send message
1823
1413
  // -------------------------------------------------------------------------
@@ -1829,12 +1419,12 @@ var j1 = (function () {
1829
1419
  if ( receiver === 'j1' ) {
1830
1420
  logText = 'send message from ' + sender + ' to' + receiver + ': ' + json_message;
1831
1421
  logger.debug(logText);
1832
- executeFunctionByName('j1' + '.messageHandler', window, sender, message)
1422
+ executeFunctionByName('j1' + '.messageHandler', window, sender, message);
1833
1423
  } else {
1834
1424
  logText = 'send message from ' + sender + ' to ' + receiver + ': ' + json_message;
1835
1425
  logger.debug(logText);
1836
1426
  //executeFunctionByName('j1.' + receiver + '.messageHandler', window, sender, message)
1837
- executeFunctionByName(receiver + '.messageHandler', window, sender, message)
1427
+ executeFunctionByName(receiver + '.messageHandler', window, sender, message);
1838
1428
  }
1839
1429
 
1840
1430
  }, // END sendMessage
@@ -1939,19 +1529,18 @@ var j1 = (function () {
1939
1529
  // -----------------------------------------------------------------------
1940
1530
  $('head').append('<style>.btn-viewer:hover { background-color: ' +bg_primary+ ' !important; }</style>');
1941
1531
 
1942
- // clipboard
1943
- // -----------------------------------------------------------------------
1944
- $('head').append('<style>.btn-clipboard:hover { background-color: ' +bg_primary+ ' !important; }</style>');
1945
-
1946
1532
  // extended modals
1947
1533
  // -----------------------------------------------------------------------
1948
- var tabs_pills_link_color_active = j1.setColorData('md_blue'); // j1.getStyleValue('btn-info', 'background-color');
1949
- var tabs_pills_link_color_hover = j1.setColorData('md_gray_300'); // j1.getStyleValue('btn-secondary', 'background-color');
1534
+ // var tabs_pills_link_color_active = j1.setColorData('md_blue'); // j1.getStyleValue('btn-info', 'background-color');
1535
+ // var tabs_pills_link_color_hover = j1.setColorData('md_gray_300'); // j1.getStyleValue('btn-secondary', 'background-color');
1536
+
1537
+ // var tabs_pills_link_color_active = 'mdi-blue';
1538
+ // var tabs_pills_link_color_hover = 'mdi-gray-300';
1950
1539
 
1951
1540
  // nav module
1952
1541
  // -----------------------------------------------------------------------
1953
- $('head').append('<style>.nav-link:hover { background-color: ' +tabs_pills_link_color_hover+ ' !important; }</style>');
1954
- $('head').append('<style>.nav-link.active { background-color: ' +tabs_pills_link_color_active+ ' !important; }</style>');
1542
+ // $('head').append('<style>.nav-link:hover { background-color: ' +tabs_pills_link_color_hover+ ' !important; }</style>');
1543
+ // $('head').append('<style>.nav-link.active { background-color: ' +tabs_pills_link_color_active+ ' !important; }</style>');
1955
1544
 
1956
1545
  return true;
1957
1546
  }, // END setCss
@@ -1990,14 +1579,13 @@ var j1 = (function () {
1990
1579
  // getUserAgent
1991
1580
  // Return the name of the web browser
1992
1581
  // -------------------------------------------------------------------------
1993
- checkUserAgent: function (ua_name) {
1582
+ checkUserAgent: function () {
1994
1583
  if (navigator.userAgent.search(ua_name) >= 0) {
1995
1584
  return true;
1996
1585
  } else {
1997
1586
  return false;
1998
1587
  }
1999
1588
  }, // END checkUserAgent
2000
-
2001
1589
  // -------------------------------------------------------------------------
2002
1590
  // Return always true (for testing purposes)
2003
1591
  // -------------------------------------------------------------------------
@@ -2021,16 +1609,18 @@ var j1 = (function () {
2021
1609
  window.home();
2022
1610
  } else if (document.all) {
2023
1611
  // for IE
2024
- window.location.href = "about:home";
1612
+ window.location.href = 'about:home';
2025
1613
  } else {
2026
- window.location.href = "about:blank";
1614
+ window.location.href = 'about:blank';
2027
1615
  }
2028
1616
  } // END gohome
2029
-
2030
- } // END j1 (return)
1617
+ }; // END j1 (return)
2031
1618
  }) (j1, window);
2032
1619
 
2033
1620
  {% endcapture %}
2034
-
2035
- {{ cache | strip_empty_lines }}
1621
+ {% if production %}
1622
+ {{ cache | minifyJS }}
1623
+ {% else %}
1624
+ {{ cache | strip_empty_lines }}
1625
+ {% endif %}
2036
1626
  {% assign cache = nil %}