j1_template 2019.4.8 → 2019.4.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (403) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/footer/boxes/about_box.proc +46 -0
  3. data/_includes/themes/j1/{modules/footers/boxes/about_box.proc → blocks/footer/boxes/about_box.proc.org} +0 -0
  4. data/_includes/themes/j1/{modules/footers → blocks/footer}/boxes/contacts_box.proc +1 -1
  5. data/_includes/themes/j1/blocks/footer/boxes/issue.proc +38 -0
  6. data/_includes/themes/j1/{modules/footers → blocks/footer}/boxes/legal_statements.proc +1 -12
  7. data/_includes/themes/j1/{modules/footers → blocks/footer}/boxes/links_box.proc +11 -4
  8. data/_includes/themes/j1/{modules/footers → blocks/footer}/boxes/news_box.proc +8 -2
  9. data/_includes/themes/j1/{modules/footers → blocks/footer}/boxes/social_media_icons.proc +1 -1
  10. data/_includes/themes/j1/{modules/footers/footer_light_generator.html → blocks/footer/generator.html} +7 -7
  11. data/_includes/themes/j1/layouts/_unused/layout_module_generator.html.org +49 -0
  12. data/_includes/themes/j1/layouts/{layout_theme_generator.html → _unused/layout_theme_generator.html} +0 -0
  13. data/_includes/themes/j1/layouts/{layout_theme_generator.new.html → _unused/layout_theme_generator.new.html} +0 -0
  14. data/_includes/themes/j1/layouts/{layout_theme_generator.org.html → _unused/layout_theme_generator.org.html} +0 -0
  15. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +20 -9
  16. data/_includes/themes/j1/layouts/content_generator_page.html +8 -13
  17. data/_includes/themes/j1/layouts/layout_module_generator.html +11 -13
  18. data/_includes/themes/j1/modules/{headers/master_header_generator.html → attics/generator.html} +35 -36
  19. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +2 -1
  20. data/_includes/themes/j1/procedures/global/{_get_page_path.proc.new → _unused/_get_page_path.proc.new} +0 -0
  21. data/_includes/themes/j1/procedures/global/{_get_page_path.proc.org → _unused/_get_page_path.proc.org} +0 -0
  22. data/_includes/themes/j1/procedures/global/set_base_vars_folders.proc +37 -0
  23. data/_includes/themes/j1/procedures/global/setup.proc +37 -45
  24. data/_includes/themes/j1/procedures/layouts/_unused/module_writer.proc.org +309 -0
  25. data/_includes/themes/j1/procedures/layouts/content_writer.proc +2 -1
  26. data/_includes/themes/j1/procedures/layouts/default_writer.proc +1 -1
  27. data/_includes/themes/j1/procedures/layouts/module_writer.proc +222 -153
  28. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +6 -9
  29. data/_layouts/default.html +35 -30
  30. data/lib/j1/templates/posts/0000-00-00-welcome-to-j1-template.adoc.erb +14 -5
  31. data/lib/j1/version.rb +1 -1
  32. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.before_merge_added.rb +1 -1
  33. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.new.rb +1 -1
  34. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.no_cookie.mgmt.rb +1 -1
  35. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.ok.rb +1 -1
  36. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.org.2.rb +1 -1
  37. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.org.rb +1 -1
  38. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.update.web_cookie.rb +1 -1
  39. data/lib/j1_app/j1_auth_manager/_views/auth_manager_ui.erb +234 -0
  40. data/lib/j1_app/j1_auth_manager/auth_manager.rb +1 -1
  41. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +9 -8
  42. data/lib/starter_web/Gemfile +22 -24
  43. data/lib/starter_web/_cc_test_data/_config.yml +1 -1
  44. data/lib/starter_web/_cc_test_data/_data/blocks/banner.yml +2 -2
  45. data/lib/starter_web/_cc_test_data/_data/blocks/defaults/banner.yml +1 -1
  46. data/lib/starter_web/_cc_test_data/_data/layouts/app.yml +2 -2
  47. data/lib/starter_web/_cc_test_data/_data/layouts/blog_archive.yml +2 -2
  48. data/lib/starter_web/_cc_test_data/_data/layouts/collection.yml +2 -2
  49. data/lib/starter_web/_cc_test_data/_data/layouts/home.yml +2 -2
  50. data/lib/starter_web/_cc_test_data/_data/layouts/page.yml +2 -2
  51. data/lib/starter_web/_cc_test_data/_data/layouts/post.yml +2 -2
  52. data/lib/starter_web/_cc_test_data/_data/layouts/raw.yml +2 -2
  53. data/lib/starter_web/_cc_test_data/_data/resources.yml +2 -2
  54. data/lib/starter_web/_config.yml +1 -1
  55. data/lib/starter_web/_data/_defaults/resources.yml +1 -1
  56. data/lib/starter_web/_data/_old_configs/j1_resources.org.yml +2 -2
  57. data/lib/starter_web/_data/_old_configs/j1_resources.yml +1 -1
  58. data/lib/starter_web/_data/blocks/_unused/banner.new.yml +297 -0
  59. data/lib/starter_web/_data/blocks/_unused/banner.org.yml +297 -0
  60. data/lib/starter_web/_data/blocks/_unused/panel.new.yml +348 -0
  61. data/lib/starter_web/_data/blocks/_unused/panel.org.yml +331 -0
  62. data/lib/starter_web/_data/blocks/banner.yml +27 -31
  63. data/lib/starter_web/_data/blocks/defaults/banner.yml +1 -1
  64. data/lib/starter_web/_data/blocks/footer.yml +9 -7
  65. data/lib/starter_web/_data/blocks/panel.yml +62 -52
  66. data/lib/starter_web/_data/layouts/app.yml +2 -2
  67. data/lib/starter_web/_data/layouts/blog_archive.yml +2 -2
  68. data/lib/starter_web/_data/layouts/collection.yml +2 -2
  69. data/lib/starter_web/_data/layouts/default.yml +8 -8
  70. data/lib/starter_web/_data/layouts/home.yml +5 -5
  71. data/lib/starter_web/_data/layouts/page.yml +2 -2
  72. data/lib/starter_web/_data/layouts/post.yml +2 -2
  73. data/lib/starter_web/_data/layouts/raw.yml +2 -2
  74. data/lib/starter_web/_data/modules/_old_configs/defaults/banner.yml +1 -1
  75. data/lib/starter_web/_data/modules/_old_configs/j1_banner.yml +1 -1
  76. data/lib/starter_web/_data/modules/_old_configs/j1_header.yml +1 -1
  77. data/lib/starter_web/_data/modules/attics.yml +220 -0
  78. data/lib/starter_web/_data/modules/defaults/attics.yml +220 -0
  79. data/lib/starter_web/_data/modules/defaults/log4javascript.yml +0 -16
  80. data/lib/starter_web/_data/modules/defaults/navigator.yml +3 -3
  81. data/lib/starter_web/_data/modules/defaults/{theme_switcher.yml → themer.yml} +27 -27
  82. data/lib/starter_web/_data/modules/defaults/toccer.yml +40 -40
  83. data/lib/starter_web/_data/modules/log4javascript.yml +0 -16
  84. data/lib/starter_web/_data/modules/navigator_menu.yml +48 -35
  85. data/lib/starter_web/_data/modules/{theme_switcher.yml → themer.yml} +27 -48
  86. data/lib/starter_web/_data/modules/toccer.yml +3 -3
  87. data/lib/starter_web/_data/resources.yml +86 -60
  88. data/lib/starter_web/_data/template_settings.yml +1 -1
  89. data/lib/starter_web/_plugins/filters.rb +10 -0
  90. data/lib/starter_web/assets/_data/_temp/_banner.html +421 -0
  91. data/lib/starter_web/assets/_data/_temp/_panel.html +585 -0
  92. data/lib/starter_web/assets/{data → _data}/_temp/banner.case.snippet.html.asciidoc +0 -0
  93. data/lib/starter_web/assets/{data → _data}/_temp/banner.new.html.asciidoc +0 -0
  94. data/lib/starter_web/assets/{data → _data}/_temp/banner.with.defaults.html.asciidoc +0 -0
  95. data/lib/starter_web/assets/_data/_temp/footer.html.new +228 -0
  96. data/lib/starter_web/assets/_data/_temp/footer.html.org +234 -0
  97. data/lib/starter_web/assets/{data → _data}/_temp/footer.old.html +0 -0
  98. data/lib/starter_web/assets/{data → _data}/_temp/footer_new.html +0 -0
  99. data/lib/starter_web/assets/{data → _data}/_temp/footer_old.html +0 -0
  100. data/lib/starter_web/assets/{data → _data}/_temp/menu.old.html +0 -0
  101. data/lib/starter_web/assets/{data → _data}/_temp/panel.new.html +0 -0
  102. data/lib/starter_web/assets/{data → _data}/_temp/panel.old.html +0 -0
  103. data/lib/starter_web/assets/{data → _data}/_temp/panel.org.html +0 -0
  104. data/lib/starter_web/assets/_data/animate.json +120 -0
  105. data/lib/starter_web/assets/_data/ascii_code_table.json +1794 -0
  106. data/lib/starter_web/assets/_data/authclient.html +365 -0
  107. data/lib/starter_web/assets/_data/banner.html +431 -0
  108. data/lib/starter_web/assets/_data/carousel.json +110 -0
  109. data/lib/starter_web/assets/_data/colors.json +43 -0
  110. data/lib/starter_web/assets/_data/cookie_consent.html +225 -0
  111. data/lib/starter_web/assets/_data/countries.json +974 -0
  112. data/lib/starter_web/assets/_data/font_sizes.json +43 -0
  113. data/lib/starter_web/assets/_data/fontawesome_icons.json +5525 -0
  114. data/lib/starter_web/assets/_data/footer.html +239 -0
  115. data/lib/starter_web/assets/_data/galleries.json +160 -0
  116. data/lib/starter_web/assets/_data/mdi_icons.json +14641 -0
  117. data/lib/starter_web/assets/_data/menu.html +469 -0
  118. data/lib/starter_web/assets/_data/messages.yml +130 -0
  119. data/lib/starter_web/assets/_data/objects.json +458 -0
  120. data/lib/starter_web/assets/_data/panel.html +501 -0
  121. data/lib/starter_web/assets/_data/panel.new.html +498 -0
  122. data/lib/starter_web/assets/_data/quicklinks.html +178 -0
  123. data/lib/starter_web/assets/_data/search.yml +131 -0
  124. data/lib/starter_web/assets/_data/sidebar.html +261 -0
  125. data/lib/starter_web/assets/_data/themes.json +59 -0
  126. data/lib/starter_web/assets/_data/twa_v1.json +6978 -0
  127. data/lib/starter_web/assets/_data/twa_v2.json +12812 -0
  128. data/lib/starter_web/assets/_data/webhook.html +190 -0
  129. data/lib/starter_web/assets/data/_unused/_banner.html +421 -0
  130. data/lib/starter_web/assets/data/_unused/_panel.html +585 -0
  131. data/lib/starter_web/assets/data/_unused/banner.case.snippet.html.asciidoc +91 -0
  132. data/lib/starter_web/assets/data/_unused/banner.new.html.asciidoc +559 -0
  133. data/lib/starter_web/assets/data/_unused/banner.with.defaults.html.asciidoc +547 -0
  134. data/lib/starter_web/assets/data/_unused/footer.html.new +228 -0
  135. data/lib/starter_web/assets/data/_unused/footer.html.org +234 -0
  136. data/lib/starter_web/assets/data/_unused/footer.old.html +231 -0
  137. data/lib/starter_web/assets/data/_unused/footer_new.html +226 -0
  138. data/lib/starter_web/assets/data/_unused/footer_old.html +222 -0
  139. data/lib/starter_web/assets/data/_unused/menu.old.html +462 -0
  140. data/lib/starter_web/assets/data/_unused/panel.new.html +498 -0
  141. data/lib/starter_web/assets/data/_unused/panel.old.html +597 -0
  142. data/lib/starter_web/assets/data/_unused/panel.org.html +597 -0
  143. data/lib/starter_web/assets/data/authclient.html +6 -6
  144. data/lib/starter_web/assets/data/banner.html +92 -82
  145. data/lib/starter_web/assets/data/cookie_consent.html +11 -43
  146. data/lib/starter_web/assets/data/footer.html +16 -11
  147. data/lib/starter_web/assets/data/menu.html +19 -20
  148. data/lib/starter_web/assets/data/messages.yml +20 -19
  149. data/lib/starter_web/assets/data/panel.html +196 -280
  150. data/lib/starter_web/assets/data/webhook.html +4 -4
  151. data/lib/starter_web/assets/images/articles/img2.jpg +0 -0
  152. data/lib/starter_web/assets/images/articles/img3.jpg +0 -0
  153. data/lib/starter_web/assets/images/articles/img7.jpg +0 -0
  154. data/lib/starter_web/assets/images/attics/banner/admin-dashboard-bootstrap-1280x800-bw.jpg +0 -0
  155. data/lib/starter_web/assets/images/attics/banner/docker-1280x600-bw.jpg +0 -0
  156. data/lib/starter_web/assets/images/attics/banner/jekyll.1200x600-bw.jpg +0 -0
  157. data/lib/starter_web/assets/images/attics/banner/library-1920x800-bw.jpg +0 -0
  158. data/lib/starter_web/assets/images/attics/banner/signpost-1920x800-bw.jpg +0 -0
  159. data/lib/starter_web/assets/images/attics/banner/water-journal-1280x600.jpg +0 -0
  160. data/lib/starter_web/assets/images/attics/banner/write-1280x600-bw.jpg +0 -0
  161. data/lib/starter_web/assets/images/attics/building-blocks-1920x1280-bw.jpg +0 -0
  162. data/lib/starter_web/assets/images/attics/cookies-1920x1200-bw.jpg +0 -0
  163. data/lib/starter_web/assets/images/attics/go-up-1920x1280-bw.jpg +0 -0
  164. data/lib/starter_web/assets/images/attics/ideas-start-here-1920x1280-bw.jpg +0 -0
  165. data/lib/starter_web/assets/images/attics/library-1920x1280-bw.jpg +0 -0
  166. data/lib/starter_web/assets/images/attics/premium-1920x1280-bw.jpg +0 -0
  167. data/lib/starter_web/assets/images/attics/runner-1920x1200-bw.jpg +0 -0
  168. data/lib/starter_web/assets/images/attics/spider-web-1920x1200-bw.jpg +0 -0
  169. data/lib/starter_web/assets/images/attics/the-place-1920x1280-bw.jpg +0 -0
  170. data/lib/starter_web/assets/images/attics/welcome-1920x1280-bw.jpg +0 -0
  171. data/lib/starter_web/assets/images/icons/j1/favicon.ico +0 -0
  172. data/lib/starter_web/assets/images/icons/j1/j1-256x256.png +0 -0
  173. data/lib/starter_web/assets/images/icons/j1/j1-32x32.ico +0 -0
  174. data/lib/starter_web/assets/images/icons/j1/j1-512x512.png +0 -0
  175. data/lib/starter_web/assets/images/icons/j1/j1-64x64.png +0 -0
  176. data/lib/starter_web/assets/images/icons/j1/j1..ico +0 -0
  177. data/lib/starter_web/assets/images/icons/j1/scalable/j1.svg +37 -47
  178. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/get-started-1920x1280-bw.jpg +0 -0
  179. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/{130_layout_inheritance.png → intro/130_layout_inheritance.png} +0 -0
  180. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/{content_inheritance.png → intro/content_inheritance.png} +0 -0
  181. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/{content_inheritance_thumb.png → intro/content_inheritance_thumb.png} +0 -0
  182. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/{html_layout.png → intro/html_layout.png} +0 -0
  183. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/{j1-quickstart-windows.png → intro/j1-quickstart-windows.png} +0 -0
  184. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/j1-template-theme.jpg +0 -0
  185. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/{j1_layout.png → intro/j1_layout.png} +0 -0
  186. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/{jekyll-minima-theme.png → intro/jekyll-minima-theme.png} +0 -0
  187. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/{lane_inheritance.png → intro/lane_inheritance.png} +0 -0
  188. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/{layout_inheritance.png → intro/layout_inheritance.png} +0 -0
  189. data/lib/starter_web/assets/images/pages/log_expert/image_020.png +0 -0
  190. data/lib/starter_web/assets/images/pages/roundtrip/bootstrap-1920x1000-bw.jpg +0 -0
  191. data/lib/starter_web/assets/images/pages/roundtrip/cards-1920x1280-bw.jpg +0 -0
  192. data/lib/starter_web/assets/images/pages/roundtrip/emojies-1920x1280-bw.jpg +0 -0
  193. data/lib/starter_web/assets/images/pages/roundtrip/icon-fonts-1920x1280-bw.jpg +0 -0
  194. data/lib/starter_web/assets/images/pages/roundtrip/images-1920x1280-bw.jpg +0 -0
  195. data/lib/starter_web/assets/images/pages/roundtrip/puzzle-1920x1280-bw.jpg +0 -0
  196. data/lib/starter_web/assets/images/pages/roundtrip/tables-1920x1280-bw.jpg +0 -0
  197. data/lib/starter_web/assets/images/pages/roundtrip/themes-1920x1280-bw.jpg +0 -0
  198. data/lib/starter_web/assets/images/pages/roundtrip/typography-1920x1280-bw.jpg +0 -0
  199. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/back2top.org.js +17 -19
  200. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/cookie_consent.org.js +1 -1
  201. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/masterheader.org.js +20 -20
  202. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/navigator.new.kapott.1.js +1 -1
  203. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/navigator.new.kapott.2.js +5 -5
  204. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/navigator.plus.old.func.js +980 -0
  205. data/lib/starter_web/assets/themes/j1/adapter/js/{octokit.app_only.js → _unused/octokit.app_only.js} +1 -1
  206. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/octokit.old.js +1 -1
  207. data/lib/starter_web/assets/themes/j1/adapter/js/{switcher.js → _unused/switcher.js} +55 -0
  208. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/template.new-1.js +1 -1
  209. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/template.new.js +4 -4
  210. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/template.old.js +5 -5
  211. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/template.org.js +1 -1
  212. data/lib/starter_web/assets/themes/j1/adapter/js/_unused/themer.css_load_check.js +360 -0
  213. data/lib/starter_web/assets/themes/j1/adapter/js/algolia.js +29 -24
  214. data/lib/starter_web/assets/themes/j1/adapter/js/{master_header.js → attic.js} +242 -213
  215. data/lib/starter_web/assets/themes/j1/adapter/js/back2top.js +38 -36
  216. data/lib/starter_web/assets/themes/j1/adapter/js/bootstrap_gallery.js +33 -33
  217. data/lib/starter_web/assets/themes/j1/adapter/js/carousel.js +35 -30
  218. data/lib/starter_web/assets/themes/j1/adapter/js/cookie_bar.js +24 -19
  219. data/lib/starter_web/assets/themes/j1/adapter/js/cookie_consent.js +89 -72
  220. data/lib/starter_web/assets/themes/j1/adapter/js/custom.js +31 -26
  221. data/lib/starter_web/assets/themes/j1/adapter/js/example.js +28 -22
  222. data/lib/starter_web/assets/themes/j1/adapter/js/framer.js +23 -18
  223. data/lib/starter_web/assets/themes/j1/adapter/js/justified_gallery.js +22 -18
  224. data/lib/starter_web/assets/themes/j1/adapter/js/lightbox.js +23 -18
  225. data/lib/starter_web/assets/themes/j1/adapter/js/logger.js +21 -18
  226. data/lib/starter_web/assets/themes/j1/adapter/js/navigator.js +344 -446
  227. data/lib/starter_web/assets/themes/j1/adapter/js/octokit.js +99 -98
  228. data/lib/starter_web/assets/themes/j1/adapter/js/scroller.js +19 -15
  229. data/lib/starter_web/assets/themes/j1/adapter/js/searcher.js +27 -30
  230. data/lib/starter_web/assets/themes/j1/adapter/js/stickybits.js +21 -15
  231. data/lib/starter_web/assets/themes/j1/adapter/js/themer.js +350 -0
  232. data/lib/starter_web/assets/themes/j1/adapter/js/toccer.js +59 -58
  233. data/lib/starter_web/assets/themes/j1/core/css/globals.css +14545 -0
  234. data/lib/starter_web/assets/themes/j1/core/css/globals.min.css +1 -0
  235. data/lib/starter_web/assets/themes/j1/core/css/globals.scss +28 -0
  236. data/lib/starter_web/assets/themes/j1/core/css/theme_extensions.css +283 -315
  237. data/lib/starter_web/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  238. data/lib/starter_web/assets/themes/j1/core/css/uno.css +283 -315
  239. data/lib/starter_web/assets/themes/j1/core/css/uno.min.css +1 -1
  240. data/lib/starter_web/assets/themes/j1/core/css/vendor.css +211 -181
  241. data/lib/starter_web/assets/themes/j1/core/css/vendor.min.css +2 -2
  242. data/lib/starter_web/assets/themes/j1/{adapter/js/template.js → core/js/_unused/j1.flicker_timeout.js} +261 -192
  243. data/lib/starter_web/assets/themes/j1/core/js/j1.js +1792 -0
  244. data/lib/starter_web/assets/themes/j1/core/js/template.js +7 -7
  245. data/lib/starter_web/assets/themes/j1/core/js/template.js.map +1 -1
  246. data/lib/starter_web/assets/themes/j1/core/js/template.min.js +1 -1
  247. data/lib/starter_web/collections/posts/private/series/_posts/2018-11-01-docker-using-shared-folders.adoc +7 -9
  248. data/lib/starter_web/collections/posts/protected/wikipedia/_posts/2016-11-20-minneapolis.adoc +0 -1
  249. data/lib/starter_web/collections/posts/protected/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +0 -1
  250. data/lib/starter_web/collections/posts/protected/wikipedia/_posts/2016-11-26-columbia-river.adoc +0 -1
  251. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +123 -26
  252. data/lib/starter_web/collections/posts/public/featured/_posts/000_includes/unsplash-badge.asciidoc +31 -0
  253. data/lib/starter_web/collections/posts/public/featured/_posts/{2018-06-01-top-open-source-static-site-generators.adoc → 2019-05-01-top-open-source-static-site-generators.adoc} +24 -13
  254. data/lib/starter_web/collections/posts/public/featured/_posts/{2019-04-22-about-cookies.adoc → 2019-06-01-about-cookies.adoc} +28 -9
  255. data/lib/starter_web/collections/posts/public/jekyll/_posts/2018-05-01-confusion-about-base-url.adoc +6 -2
  256. data/lib/starter_web/index.html +20 -26
  257. data/lib/starter_web/package.json +6 -5
  258. data/lib/starter_web/pages/private/bookshelf/100_whats_up.adoc +12 -7
  259. data/lib/starter_web/pages/private/bookshelf/200_book_shelf_biography.adoc +3 -3
  260. data/lib/starter_web/pages/private/bookshelf/300_book_shelf_fantasy.adoc +3 -3
  261. data/lib/starter_web/pages/private/bookshelf/400_book_shelf_romance.adoc +3 -3
  262. data/lib/starter_web/pages/private/docs/gh_webhooks/manage_webhook_from_gh.adoc +1 -1
  263. data/lib/starter_web/pages/private/docs/platform/platform.adoc +2 -2
  264. data/lib/starter_web/pages/private/pen/jquery/deferred_try_catch.adoc +1 -1
  265. data/lib/starter_web/pages/protected/previewer/justified_gallery.html +5 -6
  266. data/lib/starter_web/pages/protected/previewer/mdi_icons_preview.adoc +3 -8
  267. data/lib/starter_web/pages/protected/previewer/twitter_emoji_preview.adoc +7 -8
  268. data/lib/starter_web/pages/public/about/{quick_search.adoc → _unused/site_search.adoc} +4 -4
  269. data/lib/starter_web/pages/public/about/about_site.adoc +5 -4
  270. data/lib/starter_web/pages/public/about/become_a_patron.adoc +10 -9
  271. data/lib/starter_web/pages/public/blog/navigator/archive.html +7 -8
  272. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +6 -7
  273. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +8 -8
  274. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +7 -8
  275. data/lib/starter_web/pages/public/blog/navigator/index.html +7 -8
  276. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +1 -1
  277. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +1 -1
  278. data/lib/starter_web/pages/public/panels/service_panel/01_core.adoc +2 -2
  279. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +36 -26
  280. data/lib/starter_web/pages/public/start/_unused/_roundtrip/000_includes/attributes.asciidoc +95 -0
  281. data/lib/starter_web/pages/public/start/_unused/_roundtrip/000_includes/documents/100_gistblock.asciidoc +27 -0
  282. data/lib/starter_web/pages/public/start/_unused/_roundtrip/000_includes/documents/410_extended_modals_html.asciidoc +928 -0
  283. data/lib/starter_web/pages/public/start/_unused/_roundtrip/000_includes/documents/420_responsive_tables.asciidoc +203 -0
  284. data/lib/starter_web/pages/public/start/_unused/_roundtrip/000_whats_up.adoc +63 -0
  285. data/lib/starter_web/pages/public/start/_unused/_roundtrip/100_present_images.adoc +305 -0
  286. data/lib/starter_web/pages/public/start/_unused/_roundtrip/100_present_videos.adoc +159 -0
  287. data/lib/starter_web/pages/public/start/_unused/_roundtrip/200_typography.adoc +517 -0
  288. data/lib/starter_web/pages/public/start/_unused/_roundtrip/300_icon_fonts.adoc +328 -0
  289. data/lib/starter_web/pages/public/start/_unused/_roundtrip/400_asciidoc_extensions.adoc +577 -0
  290. data/lib/starter_web/pages/public/start/_unused/_roundtrip/410_bs_modals_extentions.adoc +465 -0
  291. data/lib/starter_web/pages/public/start/_unused/_roundtrip/420_responsive_tables_extensions.adoc +268 -0
  292. data/lib/starter_web/pages/public/start/_unused/_roundtrip/500_themes.adoc +81 -0
  293. data/lib/starter_web/pages/public/start/_unused/_roundtrip/800_whats_next.adoc +73 -0
  294. data/lib/starter_web/pages/public/start/_unused/_roundtrip/_unused/600_cards.adoc +770 -0
  295. data/lib/starter_web/pages/public/start/_unused/_roundtrip/_unused/710_search_engine.adoc +195 -0
  296. data/lib/starter_web/pages/public/start/_unused/_roundtrip/_unused/720_google_custom_search.adoc +41 -0
  297. data/lib/starter_web/pages/public/start/_unused/bmd_examples/100_bmd_landing_page.asciidoc +2 -2
  298. data/lib/starter_web/pages/public/start/_unused/change_me_first.adoc +139 -0
  299. data/lib/starter_web/pages/public/start/downloads/quickstarter/100_linux_starter.adoc +2 -2
  300. data/lib/starter_web/pages/public/start/downloads/quickstarter/200_macos_starter.adoc +1 -1
  301. data/lib/starter_web/pages/public/start/downloads/quickstarter/300_windows_starter.adoc +1 -1
  302. data/lib/starter_web/pages/public/start/downloads/quickstarter/quickstart.adoc +3 -3
  303. data/lib/starter_web/pages/public/start/kickstarter/web_in_a_day/000_includes/attributes.asciidoc +8 -8
  304. data/lib/starter_web/pages/public/start/kickstarter/web_in_a_day/100_introduction.adoc +22 -14
  305. data/lib/starter_web/pages/public/start/kickstarter/web_in_a_day/110_preparations.adoc +3 -3
  306. data/lib/starter_web/pages/public/start/kickstarter/web_in_a_day/120_getting_started.adoc +3 -3
  307. data/lib/starter_web/pages/public/start/roundtrip/000_includes/attributes.asciidoc +2 -0
  308. data/lib/starter_web/pages/public/start/roundtrip/000_includes/documents/410_extended_modals_html.asciidoc +928 -0
  309. data/lib/starter_web/pages/public/start/roundtrip/000_whats_up.adoc +63 -0
  310. data/lib/starter_web/pages/public/start/roundtrip/100_present_images.adoc +15 -103
  311. data/lib/starter_web/pages/public/start/roundtrip/100_present_videos.adoc +159 -0
  312. data/lib/starter_web/pages/public/start/roundtrip/200_typography.adoc +16 -15
  313. data/lib/starter_web/pages/public/start/roundtrip/300_icon_fonts.adoc +9 -8
  314. data/lib/starter_web/pages/public/start/roundtrip/400_asciidoc_extensions.adoc +13 -8
  315. data/lib/starter_web/pages/public/start/roundtrip/410_bs_modals_extentions.adoc +12 -936
  316. data/lib/starter_web/pages/public/start/roundtrip/420_responsive_tables_extensions.adoc +25 -29
  317. data/lib/starter_web/pages/public/start/roundtrip/500_themes.adoc +17 -14
  318. data/lib/starter_web/pages/public/start/roundtrip/800_whats_next.adoc +73 -0
  319. data/lib/starter_web/pages/public/start/roundtrip/_unused/600_cards.adoc +5 -5
  320. data/lib/starter_web/pages/public/start/roundtrip/_unused/710_search_engine.adoc +1 -1
  321. data/lib/starter_web/pages/public/start/roundtrip/_unused/720_google_custom_search.adoc +2 -2
  322. data/lib/starter_web/pages/public/start/whats_next.adoc +76 -0
  323. data/lib/starter_web/pages/public/start/whats_up.adoc +13 -11
  324. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  325. data/lib/starter_web/utilsrv/package.json +1 -1
  326. metadata +274 -120
  327. data/_includes/themes/j1/modules/navigator/generator.olde.html +0 -192
  328. data/lib/starter_web/_data/modules/defaults/header.yml +0 -221
  329. data/lib/starter_web/_data/modules/header.yml +0 -221
  330. data/lib/starter_web/assets/images/animated/1_ZrgWTM-NmdhJFac8T7-4Rg.gif +0 -0
  331. data/lib/starter_web/assets/images/animated/2049.gif +0 -0
  332. data/lib/starter_web/assets/images/carousel/katarina/katarina-1.jpg +0 -0
  333. data/lib/starter_web/assets/images/carousel/katarina/katarina-2.jpg +0 -0
  334. data/lib/starter_web/assets/images/carousel/katarina/katarina-3.jpg +0 -0
  335. data/lib/starter_web/assets/images/carousel/katarina/katarina-4.jpg +0 -0
  336. data/lib/starter_web/assets/images/carousel/katarina/katarina-5.jpg +0 -0
  337. data/lib/starter_web/assets/images/icons/j1/j1.ico +0 -0
  338. data/lib/starter_web/assets/images/icons/j1/scalable/j1v2.svg +0 -2034
  339. data/lib/starter_web/assets/images/master_header/aaron-burden-1280x600.png +0 -0
  340. data/lib/starter_web/assets/images/master_header/admin-bootstrap.jpg +0 -0
  341. data/lib/starter_web/assets/images/master_header/admin-dashboard-bootstrap-1280x600.png +0 -0
  342. data/lib/starter_web/assets/images/master_header/chuttersnap-1280x800.png +0 -0
  343. data/lib/starter_web/assets/images/master_header/clark-tibbs-do-something-1280x600.png +0 -0
  344. data/lib/starter_web/assets/images/master_header/clark-tibbs-do-something-1920x900.png +0 -0
  345. data/lib/starter_web/assets/images/master_header/docker_banner_l-1280x500.png +0 -0
  346. data/lib/starter_web/assets/images/master_header/docker_banner_r-1280x500.png +0 -0
  347. data/lib/starter_web/assets/images/master_header/homehead-default-1280x600.png +0 -0
  348. data/lib/starter_web/assets/images/master_header/homehead-default-1920x800.png +0 -0
  349. data/lib/starter_web/assets/images/master_header/ideas-start-here-1280x900.png +0 -0
  350. data/lib/starter_web/assets/images/master_header/ideas-start-here-1920x1200.png +0 -0
  351. data/lib/starter_web/assets/images/master_header/maarten-van-den-heuvel-1280x600.png +0 -0
  352. data/lib/starter_web/assets/images/master_header/pagehead-default-1280x500.png +0 -0
  353. data/lib/starter_web/assets/images/master_header/pagehead-default-1920x600.png +0 -0
  354. data/lib/starter_web/assets/images/master_header/stefan-stefancik-1280x800.png +0 -0
  355. data/lib/starter_web/assets/images/master_header/tables-1920.jpg +0 -0
  356. data/lib/starter_web/assets/images/master_header/water-journal-1280x600.png +0 -0
  357. data/lib/starter_web/assets/images/master_header/whats-up-1920x1200.png +0 -0
  358. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/j1-template-theme.png +0 -0
  359. data/lib/starter_web/assets/images/pages/roundtrip/bootstrap-modals.jpg +0 -0
  360. data/lib/starter_web/assets/images/pages/roundtrip/cards-1920.jpg +0 -0
  361. data/lib/starter_web/assets/images/pages/roundtrip/icon-fonts-1920.jpg +0 -0
  362. data/lib/starter_web/assets/images/pages/roundtrip/meeting.jpg +0 -0
  363. data/lib/starter_web/assets/images/pages/roundtrip/oleg-magni-1920x1280.png +0 -0
  364. data/lib/starter_web/assets/images/pages/roundtrip/package.json +0 -125
  365. data/lib/starter_web/assets/images/pages/roundtrip/puzzle-1280x600.jpg +0 -0
  366. data/lib/starter_web/assets/images/pages/roundtrip/readme_1280x600.png +0 -0
  367. data/lib/starter_web/assets/images/pages/roundtrip/readme_1920x1000.png +0 -0
  368. data/lib/starter_web/assets/images/pages/roundtrip/theme-1920.jpg +0 -0
  369. data/lib/starter_web/assets/images/pages/roundtrip/typography-1920.jpg +0 -0
  370. data/lib/starter_web/assets/images/public/aaron-burden-1280x600.png +0 -0
  371. data/lib/starter_web/assets/images/public/admin-bootstrap.jpg +0 -0
  372. data/lib/starter_web/assets/images/public/admin-dashboard-bootstrap-1280x600.png +0 -0
  373. data/lib/starter_web/assets/images/public/cat-5.jpg +0 -0
  374. data/lib/starter_web/assets/images/public/cat-6.jpg +0 -0
  375. data/lib/starter_web/assets/images/public/cat-7.jpg +0 -0
  376. data/lib/starter_web/assets/images/public/cat-8.jpg +0 -0
  377. data/lib/starter_web/assets/images/public/chuttersnap-1280x800.png +0 -0
  378. data/lib/starter_web/assets/images/public/clark-tibbs-do-something-1280x600.png +0 -0
  379. data/lib/starter_web/assets/images/public/clark-tibbs-do-something-1920x900.png +0 -0
  380. data/lib/starter_web/assets/images/public/docker_banner_l-1280x500.png +0 -0
  381. data/lib/starter_web/assets/images/public/docker_banner_r-1280x500.png +0 -0
  382. data/lib/starter_web/assets/images/public/homehead-default-1280x600.png +0 -0
  383. data/lib/starter_web/assets/images/public/homehead-default-1920x800.png +0 -0
  384. data/lib/starter_web/assets/images/public/ideas-start-here-1280x900.png +0 -0
  385. data/lib/starter_web/assets/images/public/ideas-start-here-1920x1200.png +0 -0
  386. data/lib/starter_web/assets/images/public/image_01.jpg +0 -0
  387. data/lib/starter_web/assets/images/public/image_02.jpg +0 -0
  388. data/lib/starter_web/assets/images/public/image_03.jpg +0 -0
  389. data/lib/starter_web/assets/images/public/image_04.jpg +0 -0
  390. data/lib/starter_web/assets/images/public/katarina-1.jpg +0 -0
  391. data/lib/starter_web/assets/images/public/katarina-2.jpg +0 -0
  392. data/lib/starter_web/assets/images/public/katarina-3.jpg +0 -0
  393. data/lib/starter_web/assets/images/public/katarina-4.jpg +0 -0
  394. data/lib/starter_web/assets/images/public/katarina-5.jpg +0 -0
  395. data/lib/starter_web/assets/images/public/maarten-van-den-heuvel-1280x600.png +0 -0
  396. data/lib/starter_web/assets/images/public/pagehead-default-1280x500.png +0 -0
  397. data/lib/starter_web/assets/images/public/pagehead-default-1920x600.png +0 -0
  398. data/lib/starter_web/assets/images/public/stefan-stefancik-1280x800.png +0 -0
  399. data/lib/starter_web/assets/images/public/tables-1920.jpg +0 -0
  400. data/lib/starter_web/assets/images/public/water-journal-1280x600.png +0 -0
  401. data/lib/starter_web/collections/posts/public/featured/_posts/2018-07-01-what-is-a-static-site.adoc +0 -140
  402. data/lib/starter_web/pages/public/start/change_me_first.adoc +0 -67
  403. data/screenshot.png +0 -0
@@ -0,0 +1,980 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/themes/j1/adapter/js/navigator.js
10
+ # Liquid template to adapt Navigator Core functions
11
+ #
12
+ # Product/Info:
13
+ # https://jekyll.one
14
+ #
15
+ # Copyright (C) 2019 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
+ # JSON pretty print
26
+ # Example: var str = JSON.stringify(obj, null, 2); // spacing level = 2
27
+ # See: https://stackoverflow.com/questions/4810841/how-can-i-pretty-print-json-using-javascript
28
+ # -----------------------------------------------------------------------------
29
+ {% endcomment %}
30
+
31
+ {% comment %} Liquid procedures
32
+ -------------------------------------------------------------------------------- {% endcomment %}
33
+ {% capture select_color %}themes/{{site.template.name}}/procedures/global/select_color.proc{% endcapture %}
34
+
35
+ {% comment %} Set global settings
36
+ -------------------------------------------------------------------------------- {% endcomment %}
37
+ {% assign environment = site.environment %}
38
+ {% assign brand_image_height = site.brand.image_height %}
39
+
40
+
41
+ {% comment %} Process YML config data
42
+ ================================================================================ {% endcomment %}
43
+
44
+ {% comment %} Set config files
45
+ -------------------------------------------------------------------------------- {% endcomment %}
46
+ {% assign site_config = site %}
47
+ {% assign template_config = site.data.template_settings %}
48
+ {% assign blocks = site.data.blocks %}
49
+ {% assign modules = site.data.modules %}
50
+
51
+ {% assign auth_manager_config = site.j1_auth %}
52
+ {% assign template_config = site.data.template_settings %}
53
+ {% assign navigator_defaults = site.data.modules.defaults.navigator.defaults %}
54
+ {% assign navigator_settings = site.data.modules.navigator.settings %}
55
+
56
+ {% comment %} Set config data
57
+ -------------------------------------------------------------------------------- {% endcomment %}
58
+ {% assign nav_bar_defaults = navigator_defaults.nav_bar %}
59
+ {% assign nav_bar_settings = navigator_settings.nav_bar %}
60
+ {% assign nav_menu_defaults = navigator_defaults.nav_menu %}
61
+ {% assign nav_menu_settings = navigator_settings.nav_menu %}
62
+
63
+ {% assign nav_quicklinks_defaults = navigator_defaults.nav_quicklinks %}
64
+ {% assign nav_quicklinks_settings = navigator_settings.nav_quicklinks %}
65
+ {% assign nav_topsearch_defaults = navigator_defaults.nav_topsearch %}
66
+ {% assign nav_topsearch_settings = navigator_settings.nav_topsearch %}
67
+ {% assign nav_sidebar_defaults = navigator_defaults.nav_sidebar %}
68
+ {% assign nav_sidebar_settings = navigator_settings.nav_sidebar %}
69
+ {% assign nav_authclient_defaults = navigator_defaults.nav_authclient %}
70
+ {% assign nav_authclient_settings = navigator_settings.nav_authclient %}
71
+
72
+ {% comment %} Set config options
73
+ -------------------------------------------------------------------------------- {% endcomment %}
74
+ {% assign nav_bar_options = nav_bar_defaults | merge: nav_bar_settings %}
75
+ {% assign nav_menu_options = nav_menu_defaults | merge: nav_menu_settings %}
76
+ {% assign quicklinks_options = nav_quicklinks_defaults | merge: nav_quicklinks_settings %}
77
+ {% assign topsearch_options = nav_topsearch_defaults | merge: nav_topsearch_settings %}
78
+ {% assign sidebar_options = nav_sidebar_defaults | merge: nav_sidebar_settings %}
79
+ {% assign authclient_options = nav_authclient_defaults | merge: nav_authclient_settings %}
80
+
81
+ {% assign nav_bar_id = navigator_defaults.nav_bar.id %}
82
+ {% assign nav_menu_id = navigator_defaults.nav_menu.id %}
83
+ {% assign nav_sidebar_id = navigator_defaults.nav_sidebar.id %}
84
+ {% assign nav_quicklinks_id = navigator_defaults.nav_quicklinks.id %}
85
+ {% assign nav_navbar_media_breakpoint = navigator_defaults.nav_bar.media_breakpoint %}
86
+ {% assign authclient_modals_id = navigator_defaults.nav_authclient.xhr_container_id %}
87
+
88
+ {% if nav_bar_options.dropdown_animate_duration != null %}
89
+ {% assign animate_duration = nav_bar_options.dropdown_animate_duration %}
90
+ {% else %}
91
+ {% assign animate_duration = 1 %}
92
+ {% endif %}
93
+
94
+ {% comment %}
95
+ --------------------------------------------------------------------------------
96
+ Set|Overload Liquid vars hardwired to NOT break the (MD) style
97
+ ToDo: Remove configuration from j1_navigator.yml
98
+ -------------------------------------------------------------------------------- {% endcomment %}
99
+ {% assign dropdown_border_height = "3" %}
100
+
101
+ /*
102
+ # -----------------------------------------------------------------------------
103
+ # ~/assets/themes/j1/adapter/js/navigator.js
104
+ # JS Adapter for J1 Navigator
105
+ #
106
+ # Product/Info:
107
+ # {{site.data.template_settings.theme_author_url}}
108
+ #
109
+ # Copyright (C) 2019 Juergen Adams
110
+ #
111
+ # J1 Template is licensed under the MIT License.
112
+ # For details, see {{site.data.template_settings.theme_author_url}}
113
+ # -----------------------------------------------------------------------------
114
+ # NOTE: For AJAX (XHR) loads see
115
+ # https://stackoverflow.com/questions/3709597/wait-until-all-jquery-ajax-requests-are-done
116
+ # -----------------------------------------------------------------------------
117
+ # NOTE: For getStyleValue helper see
118
+ # https://stackoverflow.com/questions/16965515/how-to-get-a-style-attribute-from-a-css-class-by-javascript-jquery
119
+ # -----------------------------------------------------------------------------
120
+ # Adapter generated: {{site.time}}
121
+ # -----------------------------------------------------------------------------
122
+ */
123
+ 'use strict';
124
+
125
+ j1.adapter['navigator'] = (function (j1, window) {
126
+
127
+ // ---------------------------------------------------------------------------
128
+ // globals loader
129
+ // ---------------------------------------------------------------------------
130
+ var environment = '{{environment}}';
131
+ var state = 'not_started';
132
+ var dclFinished = false;
133
+ var moduleOptions = {};
134
+
135
+ var nav_menu_id = '{{nav_menu_id}}';
136
+ var nav_quicklinks_id = '{{nav_quicklinks_id}}';
137
+ var nav_sidebar_id = '{{nav_sidebar_id}}';
138
+ var authclient_modals_id = '{{authclient_modals_id}}';
139
+
140
+ var colors_data_path = '{{template_config.colors_data_path}}';
141
+ var font_size_data_path = '{{template_config.font_size_data_path}}';
142
+ var nav_menu_data_path = '{{nav_menu_options.data_path}}';
143
+ var nav_quicklinks_data_path = '{{quicklinks_options.data_path}}';
144
+ var nav_sidebar_data_path = '{{sidebar_options.data_path}}';
145
+ var authclient_modals_data_path = '{{authclient_options.xhr_data_path}}';
146
+
147
+ var cookie_names = j1.getCookieNames();
148
+ const cookie_user_session_name = cookie_names.user_session;
149
+
150
+ var user_state = {};
151
+ var user_state_merged = {};
152
+ var session_state = {};
153
+
154
+ var j1_colors = {};
155
+ var j1_font_sizes = {};
156
+
157
+ var authClientEnabled;
158
+ var appDetected;
159
+ var json_data;
160
+ var _this;
161
+ var logger;
162
+ var logText;
163
+
164
+
165
+ // ---------------------------------------------------------------------------
166
+ // Helper functions
167
+ // ---------------------------------------------------------------------------
168
+
169
+ // getStyleValue
170
+ // returns the value of a style from a css class definition
171
+ // example: getStyleValue('bg-primary', 'background-color')
172
+ // ---------------------------------------------------------------------------
173
+ function getStyleValue(className, style) {
174
+ var elementId = 'test-' + className,
175
+ testElement = document.getElementById(elementId),
176
+ val;
177
+
178
+ if (testElement === null) {
179
+ testElement = document.createElement('div');
180
+ testElement.className = className;
181
+ testElement.style.display = 'none';
182
+ document.body.appendChild(testElement);
183
+ }
184
+ val = $(testElement).css(style);
185
+ document.body.removeChild(testElement);
186
+
187
+ return val;
188
+ }
189
+
190
+
191
+ // ---------------------------------------------------------------------------
192
+ // main object
193
+ // ---------------------------------------------------------------------------
194
+ return {
195
+
196
+ // -------------------------------------------------------------------------
197
+ // module initializer
198
+ // -------------------------------------------------------------------------
199
+ init: function (options) {
200
+
201
+ // -----------------------------------------------------------------------
202
+ // defaults loader
203
+ // -----------------------------------------------------------------------
204
+ var settings = $.extend({
205
+ module_name: 'j1.adapter.navigator',
206
+ generated: '{{site.time}}'
207
+ }, options );
208
+ _this = j1.adapter.navigator;
209
+ logger = log4javascript.getLogger('j1.adapter.navigator');
210
+
211
+ // -----------------------------------------------------------------------
212
+ // options loader
213
+ // -----------------------------------------------------------------------
214
+ var authConfig = {};
215
+ var navDefaults = {};
216
+ var navBarConfig = {};
217
+ var navMenuConfig = {};
218
+ var navQuicklinksConfig = {};
219
+ var navTopsearchConfig = {};
220
+ var navSidebarConfig = {};
221
+ var navAuthClientConfig = {};
222
+ var navBarOptions = {};
223
+ var navMenuOptions = {};
224
+ var navQuicklinksOptions = {};
225
+ var navTopsearchOptions = {};
226
+ var navSidebarOptions = {};
227
+ var navAuthClientOptions = {};
228
+
229
+ navDefaults = $.extend({}, {{navigator_defaults | replace: '=>', ':' }});
230
+ navBarConfig = $.extend({}, {{nav_bar_options | replace: '=>', ':' }});
231
+ navMenuConfig = $.extend({}, {{nav_menu_options | replace: '=>', ':' }});
232
+ navQuicklinksConfig = $.extend({}, {{quicklinks_options | replace: '=>', ':' }});
233
+ navTopsearchConfig = $.extend({}, {{topsearch_options | replace: '=>', ':' }});
234
+ navSidebarConfig = $.extend({}, {{sidebar_options | replace: '=>', ':' }});
235
+ navAuthClientConfig = $.extend({}, {{authclient_options | replace: '=>', ':' }});
236
+
237
+ authConfig = $.extend({}, {{auth_manager_config | replace: '=>', ':' }});
238
+ authClientEnabled = authConfig.enabled;
239
+
240
+ // Merge|Overload module CONFIG by DEFAULTS
241
+ //
242
+ navBarOptions = j1.mergeData(navBarConfig, navDefaults.nav_bar);
243
+ navMenuOptions = j1.mergeData(navMenuConfig, navDefaults.nav_menu);
244
+ navQuicklinksOptions = j1.mergeData(navQuicklinksConfig, navDefaults.nav_quicklinks);
245
+ navTopsearchOptions = j1.mergeData(navTopsearchConfig, navDefaults.nav_topsearch);
246
+ navSidebarOptions = j1.mergeData(navSidebarConfig, navDefaults.nav_sidebar);
247
+ navAuthClientConfig = j1.mergeData(navAuthClientConfig, navDefaults.nav_authclient);
248
+
249
+ // save config settings into the navigator object for global access
250
+ //
251
+ j1.adapter.navigator['navDefaults'] = navDefaults;
252
+ j1.adapter.navigator['navBarOptions'] = navBarOptions;
253
+ j1.adapter.navigator['navMenuOptions'] = navMenuOptions;
254
+ j1.adapter.navigator['navQuicklinksOptions'] = navQuicklinksOptions;
255
+ j1.adapter.navigator['navTopsearchOptions'] = navTopsearchOptions;
256
+ j1.adapter.navigator['navSidebarOptions'] = navSidebarOptions;
257
+ j1.adapter.navigator['navAuthClientConfig'] = navAuthClientConfig;
258
+
259
+ // Load (individual) frontmatter options (currently NOT used)
260
+ if ( options != null ) { var frontmatterOptions = $.extend({}, options) }
261
+
262
+ logger.info('mode detected as: ' + j1.getMode());
263
+ _this.setState('started');
264
+ logger.info('state: ' + _this.getState());
265
+ logger.info('module is being initialized');
266
+
267
+ // -----------------------------------------------------------------------
268
+ // data loader
269
+ // -----------------------------------------------------------------------
270
+ logger.info('run deferred data load (AJAX)');
271
+ $.when(
272
+ j1.xhrDATA ( // sidebar
273
+ 'j1.adapter.navigator', {
274
+ xhr_container_id: navSidebarOptions.xhr_container_id,
275
+ xhr_data_path: navSidebarOptions.xhr_data_path },
276
+ 'sideBarLoaded'),
277
+ j1.xhrDATA ( // quicklinks
278
+ 'j1.adapter.navigator', {
279
+ xhr_container_id: navQuicklinksOptions.xhr_container_id,
280
+ xhr_data_path: navQuicklinksOptions.xhr_data_path },
281
+ 'quicklinksLoaded'),
282
+ j1.xhrDATA ( // authclient
283
+ 'j1.adapter.navigator', {
284
+ xhr_container_id: navAuthClientConfig.xhr_container_id,
285
+ xhr_data_path: navAuthClientConfig.xhr_data_path },
286
+ 'authclientModalsLoaded'
287
+ ),
288
+ j1.xhrDATA ( // menubar
289
+ 'j1.adapter.navigator', {
290
+ xhr_container_id: navMenuOptions.xhr_container_id,
291
+ xhr_data_path: navMenuOptions.xhr_data_path },
292
+ 'data_loaded'
293
+ ))
294
+ .done (function (sideBar, quickLinks, authclient, menuBar) {
295
+ logger.info('deferred (AJAX) data load finished');
296
+ logger.info('initialize navigator core');
297
+
298
+ // Detect|Set J1 App status
299
+ appDetected = j1.appDetected();
300
+ authClientEnabled = j1.authClientEnabled();
301
+ logger.info('application status detected: ' + appDetected);
302
+
303
+ // ---------------------------------------------------------------------
304
+ // core initializer
305
+ // ---------------------------------------------------------------------
306
+ var dependencies_core = setInterval (function () {
307
+ if (
308
+ _this.getState() === 'data_loaded' &&
309
+ j1.adapter.themer.getState() === 'finished') {
310
+
311
+ var dependencies_core1 = setInterval (function() {
312
+ if (typeof j1.colors !== 'undefined') {
313
+ j1.core.navigator.init (
314
+ _this.navDefaults,
315
+ _this.navMenuOptions);
316
+
317
+ // Initialize theme selectors for J1Theme Switcher
318
+ $('#ThemeList').bootstrapThemeSwitcher({localFeed: ''}); // Load from Bootswatch API
319
+ $('#ThemeSelect').bootstrapThemeSwitcher(); // Load from localFeed
320
+ logText = 'ThemeSwitcher Feeds loaded successfully';
321
+ logger.info(logText);
322
+ _this.setState('initialized');
323
+ clearInterval(dependencies_core1);
324
+ }
325
+ }, 25); // END 'core initialized'
326
+
327
+ // -----------------------------------------------------------------
328
+ // event handler + css styles
329
+ // -----------------------------------------------------------------
330
+ var dependencies_events_css = setInterval(function() {
331
+ if (_this.getState() === 'initialized') {
332
+ logger.info('initialize navigator core');
333
+ j1.core.navigator.eventHandler();
334
+
335
+ logger.info('apply CSS styles');
336
+ _this.setCss(
337
+ navBarOptions, navMenuOptions,
338
+ navQuicklinksOptions, navTopsearchOptions,
339
+ navSidebarOptions );
340
+
341
+ // Update sidebar
342
+ logger.info('Update sidebar');
343
+ j1.core.navigator.updateSidebar();
344
+ clearInterval(dependencies_events_css);
345
+ }
346
+ }, 25); // END 'core initialized'
347
+
348
+ _this.setState() === 'finished';
349
+ clearInterval(dependencies_core);
350
+ }
351
+ }, 25); // END 'dependencies_events_css'
352
+
353
+ }); // END 'core initializer'
354
+
355
+ // -----------------------------------------------------------------------
356
+ // Reset on resize (should moved to core)
357
+ // -----------------------------------------------------------------------
358
+ $(window).on('resize', function() {
359
+
360
+ j1.core.navigator.manageDropdownMenu(navDefaults, navMenuOptions);
361
+ $('.top-search').slideUp();
362
+ setTimeout(function(){
363
+ j1.core.navigator.navbarSticky();
364
+ }, 500);
365
+
366
+ // Toggle Bars
367
+ $('button.navigator.navbar-toggler').each( function() {
368
+ $('.mdi', this).removeClass('mdi-close');
369
+ $('.mdi', this).addClass('mdi-menu');
370
+ $(this).removeClass('fixed');
371
+ });
372
+ $('.navbar-collapse').removeClass('in');
373
+ $('.navbar-collapse').removeClass('on');
374
+ $('.navbar-collapse').removeClass('bounceIn');
375
+ });
376
+
377
+ return true;
378
+ }, // END init
379
+
380
+ // -------------------------------------------------------------------------
381
+ // load the Menu bar
382
+ // -------------------------------------------------------------------------
383
+ // loadMenuBar: function (defaultOptions, menuOptions) {
384
+ // var navDefaultOptions = defaultOptions;
385
+ // var navMenuOptions = menuOptions;
386
+ //
387
+ // var logger = log4javascript.getLogger('j1.adapter.navigator.loadMenuBar');
388
+ // var logText = 'Load MenuBar';
389
+ // logger.info(logText);
390
+ //
391
+ // // closure to pass additional data (e.g. div #id)
392
+ // // to AJAX load callback (id)
393
+ // // See: http://stackoverflow.com/questions/939032/jquery-pass-more-parameters-into-callback
394
+ // var cb_load_closure = function(id, navMenuOptions) {
395
+ // return function (responseTxt, statusTxt, xhr) {
396
+ // if (statusTxt === 'success') {
397
+ // j1.core.navigator.init(navDefaultOptions, navMenuOptions);
398
+ // // Initialize theme selectors for J1Theme Switcher
399
+ // $('#ThemeList').bootstrapThemeSwitcher({localFeed: ''}); // Load from Bootswatch API
400
+ // $('#ThemeSelect').bootstrapThemeSwitcher(); // Load from localFeed
401
+ // logText = 'ThemeSwitcher Feeds on ID ' +id+ ' loaded successfully';
402
+ // logger.info(logText);
403
+ // var logText = 'MenuBar on ID ' +id+ ' loaded successfully';
404
+ // logger.info(logText);
405
+ // state = 'finished';
406
+ // logger.info('state: ' + state); // Set|Log status
407
+ // logger.info('module initialized successfully');
408
+ // logger.info(logText);
409
+ // _this.setState(state);
410
+ // }
411
+ // if (statusTxt === 'error') {
412
+ // // Set processing to 'finished' to display page
413
+ // state = 'finished';
414
+ // logger.error('state: ' + state);
415
+ // logText = 'MenuBar on ID ' +id+ ' loading failed. Error: ' + xhr.status + ': ' + xhr.statusText;
416
+ // logger.error(logText);
417
+ // _this.setState(state);
418
+ // }
419
+ // };
420
+ // };
421
+ //
422
+ // var id = "#" + menuOptions.xhr_container_id;
423
+ // var selector = $(id);
424
+ //
425
+ // if ( selector.length ) {
426
+ // var menu_data_path = menuOptions.xhr_data_path + " > *";
427
+ // selector.load( menu_data_path, cb_load_closure( id, navMenuOptions ) );
428
+ // }
429
+ //
430
+ // return true;
431
+ // }, // END loadMenuBar
432
+
433
+ // -------------------------------------------------------------------------
434
+ // load the Sidebar
435
+ // -------------------------------------------------------------------------
436
+ // loadSideBar: function (options) {
437
+ // var loadSideBarOptions = options;
438
+ //
439
+ // var logger = log4javascript.getLogger('j1.adapter.navigator.loadSideBar');
440
+ // var logText = 'Load SideBar';
441
+ // logger.info(logText);
442
+ //
443
+ // var cb_load_closure = function( id ) {
444
+ // return function ( responseTxt, statusTxt, xhr ) {
445
+ // if (statusTxt === 'success') {
446
+ // logText = 'Sidebar on ID ' +id+ ' loaded successfully';
447
+ // logger.info(logText);
448
+ // // Set processing to 'finished' to display page
449
+ // // state = 'sidebar_loaded';
450
+ // // logger.info('state: ' + state); // Set|Log status
451
+ // }
452
+ // if (statusTxt === 'error') {
453
+ // // state = 'failed';
454
+ // // logger.error('state: ' + state);
455
+ // logText = 'Loading Sidebar on ID ' +id+ ' failed. Error: ' + xhr.status + ': ' + xhr.statusText;
456
+ // logger.error(logText);
457
+ // }
458
+ // };
459
+ // };
460
+ //
461
+ // var id = '#' + nav_sidebar_id;
462
+ // var selector = $(id);
463
+ //
464
+ // if (selector.length) {
465
+ // var sidebar_data_path = nav_sidebar_data_path;
466
+ // selector.load(sidebar_data_path, cb_load_closure(id));
467
+ // }
468
+ //
469
+ // return true;
470
+ // }, // END loadSideBar
471
+
472
+ // -------------------------------------------------------------------------
473
+ // load the QuickLinks bar
474
+ // -------------------------------------------------------------------------
475
+ // loadQuickLinks: function (options) {
476
+ // var quickLinkOptions = options;
477
+ //
478
+ // var logger = log4javascript.getLogger('j1.adapter.navigator.loadQuickLinks');
479
+ // logText = 'Load QuickLinks';
480
+ // logger.info(logText);
481
+ //
482
+ // // closure to pass additional data (e.g. div #id)
483
+ // var cb_load_closure = function(id) {
484
+ // return function (responseTxt, statusTxt, xhr) {
485
+ // if (statusTxt === 'success') {
486
+ // logText = 'QuickLinks on ID ' +id+ ' loaded successfully';
487
+ // logger.info(logText);
488
+ // // Set processing to 'finished' to display page
489
+ // // state = 'quicklinks_loaded';
490
+ // // logger.info('state: ' + state); // Set|Log status
491
+ // }
492
+ // if (statusTxt === 'error') {
493
+ // // state = 'failed';
494
+ // // logger.error('state: ' + state);
495
+ // logText = 'Loading QuickLinks on ID ' +id+ ' failed. Error: ' + xhr.status + ': ' + xhr.statusText;
496
+ // logger.error(logText);
497
+ // }
498
+ // };
499
+ // };
500
+ //
501
+ // var id = '#' + nav_quicklinks_id;
502
+ // var selector = $(id);
503
+ //
504
+ // if (selector.length) {
505
+ // var quicklinks_data_path = nav_quicklinks_data_path;
506
+ // selector.load(quicklinks_data_path, cb_load_closure(id));
507
+ // }
508
+ //
509
+ // return true;
510
+ // }, // END loadQuickLinks
511
+
512
+ // -------------------------------------------------------------------------
513
+ // load the modals used by J1AuthClient
514
+ // -------------------------------------------------------------------------
515
+ // loadAuthClientModals: function (authConfig) {
516
+ //
517
+ // var cb_load_closure = function(id) {
518
+ // return function (responseTxt, statusTxt, xhr) {
519
+ // if (statusTxt === 'success') {
520
+ // logText = 'Modals on ID ' +id+ ' loaded successfully';
521
+ // _this.initAuthClient(authConfig);
522
+ // // logger.info(logText);
523
+ // // state = 'finished';
524
+ // // logger.info('state: ' + state);
525
+ // }
526
+ // if (statusTxt === 'error') {
527
+ // // state = 'failed';
528
+ // // logger.error('state: ' + state);
529
+ // var logText = 'Modals on ID ' +id+ ' loading failed. Error: ' + xhr.status + ': ' + xhr.statusText;
530
+ // logger.error(logText);
531
+ // }
532
+ // };
533
+ // };
534
+ //
535
+ // var id = '#' + authclient_modals_id;
536
+ // var selector = $(id);
537
+ //
538
+ // if (selector.length) {
539
+ // var modals_data_path = authclient_modals_data_path + ' > *';
540
+ // selector.load(modals_data_path, cb_load_closure(id));
541
+ // } else {
542
+ // logText = 'AuthClient Modals not loaded';
543
+ // logger.info(logText);
544
+ // // Set processing to 'finished' to display page
545
+ // // state = 'finished';
546
+ // // logger.info('state: ' + state);
547
+ // }
548
+ //
549
+ // return true;
550
+ // }, // END loadAuthClientModals
551
+
552
+ // -------------------------------------------------------------------------
553
+ // Initialize JS portion for the dialogs (modals) used by J1AuthClient
554
+ // NOTE: Currently cookie|sidebar updates NOT processed at the NAV module
555
+ // All updates on Cookies are managed by Cookie Consent.
556
+ // To be considered to re-add cookie updates for the auth state
557
+ // -------------------------------------------------------------------------
558
+ initAuthClient: function(auth_config) {
559
+ var user_state;
560
+
561
+ user_state = j1.readCookie(cookie_user_session_name);
562
+
563
+ logger = log4javascript.getLogger('j1.adapter.navigator.initAuthClient');
564
+ state = 'initialize';
565
+ logText = 'state: ' + state;
566
+ logger.info(logText);
567
+
568
+ _this.modalEventHandler(auth_config);
569
+
570
+ if (j1.appDetected() && j1.authClientEnabled()) {
571
+ // Toggle/Set SignIn/SignOut icon|link in QuickLinks
572
+ // See: https://stackoverflow.com/questions/13524107/how-to-set-data-attributes-in-html-elements
573
+ if (user_state.authenticated === 'true') {
574
+ // Set SignOut
575
+ $('#navLinkSignInOut').attr('data-target', '#modalOmniSignOut');
576
+ $('#iconSignInOut').removeClass('mdi-login').addClass('mdi-logout');
577
+ } else {
578
+ // Set SignIn
579
+ $('#navLinkSignInOut').attr('data-target', '#modalOmniSignIn');
580
+ $('#iconSignInOut').removeClass('mdi-logout').addClass('mdi-login');
581
+ }
582
+ }
583
+
584
+ // Set|Log status
585
+ state = 'initialized';
586
+ logText = 'state: ' + state;
587
+ logger.info(logText);
588
+
589
+ return true;
590
+ }, // END initAuthClient
591
+
592
+ // -------------------------------------------------------------------------
593
+ // EventHandler for J1 AuthClient
594
+ // Manage button click events for all BS Modals
595
+ // See: https://www.nickang.com/add-event-listener-for-loop-problem-in-javascript/
596
+ // -------------------------------------------------------------------------
597
+ modalEventHandler: function ( options ) {
598
+
599
+ var authConfig = options;
600
+ var route;
601
+ var provider;
602
+ var provider_url;
603
+ var allowed_users;
604
+ var logText;
605
+
606
+ var signIn = {
607
+ provider: authConfig.providers.activated[0],
608
+ users: authConfig.providers[authConfig.providers["activated"][0]]["users"],
609
+ do: false
610
+ }
611
+
612
+ var signOut = {
613
+ provider: authConfig.providers.activated[0],
614
+ providerSignOut: false,
615
+ do: false
616
+ }
617
+
618
+ var logger = log4javascript.getLogger("j1.adapter.navigator.EventHandler"); // Setup logger
619
+
620
+ logText = "Initialize button click events";
621
+ logger.info(logText);
622
+
623
+ // var dependencies_reached = setInterval(function() {
624
+ // if ( j1.adapter.navigator.getState() === 'finished' ) {
625
+
626
+ // Manage button click events for modal "signInOutButton"
627
+ // -------------------------------------------------------------------
628
+ $('ul.nav-pills > li').click(function (e) {
629
+ e.preventDefault();
630
+ // jadams, 2019-07-30: To be checked if needed
631
+ signIn.provider = $(this).text().trim();
632
+ signIn.provider = signIn.provider.toLowerCase();
633
+ signIn.allowed_users = signIn.users.toString();
634
+ });
635
+
636
+ $("a.btn").click(function() {
637
+ if (this.id === "signInButton") {
638
+ signIn.do = true;
639
+ } else {
640
+ signIn.do = false;
641
+ }
642
+ if (this.id === "signOutButton") {
643
+ signOut.do = true;
644
+ } else {
645
+ signOut.do = false;
646
+ }
647
+ });
648
+
649
+ $('input:checkbox[name="providerSignOut"]').on('click', function (e) {
650
+ e.stopPropagation();
651
+ signOut.providerSignOut = $('input:checkbox[name="providerSignOut"]').is(":checked");
652
+ if( environment == "development" ) {
653
+ logText = "Provider signout set to: " + signOut.providerSignOut;
654
+ logger.info( logText );
655
+ }
656
+ });
657
+
658
+ // Manage pre events on modal "modalOmniSignIn"
659
+ // -------------------------------------------------------------------
660
+ $("#modalOmniSignOut").on('show.bs.modal', function() {
661
+ var modal = $(this);
662
+ logger.info('Place current user data');
663
+ user_state = j1.readCookie(cookie_user_session_name);
664
+ modal.find('.user-info').text('You are signed in to provider: ' + user_state.provider);
665
+ }); // END SHOW modalOmniSignOut
666
+
667
+ // Manage post events on modal "modalOmniSignIn"
668
+ // -------------------------------------------------------------------
669
+ $("#modalOmniSignIn").on('hidden.bs.modal', function() {
670
+ if (signIn.do == true) {
671
+ provider = signIn.provider.toLowerCase();
672
+ allowed_users = signIn.users.toString();
673
+ logText = 'Provider detected: ' + provider;
674
+ logger.info(logText);
675
+ var route = '/authentication?request=signin&provider=' +provider+ '&allowed_users=' +allowed_users;
676
+ logText = 'Call middleware for route ' +route+ ' for signin';
677
+ logger.info(logText);
678
+ window.location.href = route;
679
+ } else {
680
+ provider = signIn.provider.toLowerCase();
681
+ logText = 'Provider detected: ' + provider;
682
+ logger.info(logText);
683
+ logText = 'Login for ' +provider+ " declined";
684
+ logger.info(logText);
685
+ }
686
+ }); // END post events "modalOmniSignIn"
687
+
688
+ // Manage post events on modal "modalOmniSignOut"
689
+ // -------------------------------------------------------------------
690
+ $("#modalOmniSignOut").on('hidden.bs.modal', function() {
691
+ if (signOut.do == true) {
692
+ logger.info('Load active provider from cookie: ' + cookie_user_session_name);
693
+
694
+ user_state = j1.readCookie(cookie_user_session_name);
695
+ provider = user_state.provider;
696
+ provider_url = user_state.provider_site_url;
697
+
698
+ logText = 'Provider detected: ' + provider;
699
+ logger.info(logText);
700
+ logText = 'Initiate signout for ' +provider;
701
+ logger.info(logText);
702
+ // var route = '/authentication?request=signout&provider=' + provider + '&provider_signout=' + signOut.providerSignOut + '&provider_url=' + provider_url;
703
+ var route = '/authentication?request=signout&provider=' + provider + '&provider_signout=' + signOut.providerSignOut; // + '/logout/';
704
+ logText = 'Call middleware: ' +route;
705
+ logger.info(logText);
706
+ window.location.href = route;
707
+ } else {
708
+ provider = signOut.provider.toLowerCase();
709
+ logText = 'Provider detected: ' + provider;
710
+ logger.info(logText);
711
+ logText = 'SignOut for ' +provider+ " declined";
712
+ logger.info(logText);
713
+ }
714
+ }); // END post events "modalSignOut"
715
+
716
+ logText = "Initialize events finished";
717
+ logger.info(logText);
718
+
719
+ // clear interval checking
720
+ // clearInterval(dependencies_reached);
721
+ //
722
+ // } // END Manage cookie consent dialog
723
+ // }, 50); // END setInterval
724
+
725
+ return true;
726
+ }, // END modalEventHandler
727
+
728
+ // -------------------------------------------------------------------------
729
+ // Set dynamic CSS styles
730
+ // -------------------------------------------------------------------------
731
+ setCss: function ( navBarOptions, navMenuOptions, navQuicklinksOptions, navTopsearchOptions, navSidebarOptions ) {
732
+
733
+ // BS4 media breakpoints
734
+ var gridBreakpoint_lg = '992px';
735
+ var gridBreakpoint_md = '768px';
736
+ var gridBreakpoint_sm = '576px';
737
+
738
+ {% comment %} Resolve symbolic font sizes
739
+ -------------------------------------------------------------------------- {% endcomment %}
740
+
741
+ {% comment %} Set|Resolve navMenuOptions
742
+ -------------------------------------------------------------------------- {% endcomment %}
743
+ navMenuOptions.dropdown_font_size = j1.setFontSize(navMenuOptions.dropdown_font_size);
744
+ navMenuOptions.megamenu_font_size = j1.setFontSize(navMenuOptions.megamenu_font_size);
745
+
746
+
747
+ {% comment %} Resolve symbolic color names
748
+ -------------------------------------------------------------------------- {% endcomment %}
749
+
750
+ {% comment %} Set|Resolve navBarOptions
751
+ -------------------------------------------------------------------------- {% endcomment %}
752
+ navBarOptions.background_color_full = j1.setColorData(navBarOptions.background_color_full);
753
+ // navBarOptions.background_color_collapsed = j1.setColorData(navBarOptions.background_color_collapsed);
754
+ // navBarOptions.background_color_scrolled = j1.setColorData(navBarOptions.background_color_scrolled);
755
+
756
+ {% comment %} Set|Resolve navMenuOptions
757
+ -------------------------------------------------------------------------- {% endcomment %}
758
+ navMenuOptions.menu_item_color = j1.setColorData(navMenuOptions.menu_item_color);
759
+ navMenuOptions.menu_item_color_hover = j1.setColorData(navMenuOptions.menu_item_color_hover);
760
+ navMenuOptions.menu_item_dropdown_color = j1.setColorData(navMenuOptions.menu_item_dropdown_color);
761
+ navMenuOptions.dropdown_item_color = j1.setColorData(navMenuOptions.dropdown_item_color);
762
+ navMenuOptions.dropdown_background_color_hover = j1.setColorData(navMenuOptions.dropdown_background_color_hover);
763
+ navMenuOptions.dropdown_background_color_active = j1.setColorData(navMenuOptions.dropdown_background_color_active);
764
+ navMenuOptions.dropdown_border_color = j1.setColorData(navMenuOptions.dropdown_border_color);
765
+
766
+ {% comment %} Set|Resolve navQuicklinksOptions
767
+ -------------------------------------------------------------------------- {% endcomment %}
768
+ navQuicklinksOptions.icon_color = j1.setColorData(navQuicklinksOptions.icon_color);
769
+ navQuicklinksOptions.icon_color_hover = j1.setColorData(navQuicklinksOptions.icon_color_hover);
770
+ navQuicklinksOptions.background_color = j1.setColorData(navQuicklinksOptions.background_color);
771
+
772
+ {% comment %} Set|Resolve navTopsearchOptions
773
+ -------------------------------------------------------------------------- {% endcomment %}
774
+ navTopsearchOptions.input_color = j1.setColorData(navTopsearchOptions.input_color);
775
+ navTopsearchOptions.background_color = j1.setColorData(navTopsearchOptions.background_color);
776
+
777
+ {% comment %} Set|Resolve navSidebarOptions
778
+ -------------------------------------------------------------------------- {% endcomment %}
779
+ navSidebarOptions.background_color = j1.setColorData(navSidebarOptions.background_color);
780
+
781
+ {% comment %} Set dymanic styles
782
+ -------------------------------------------------------------------------- {% endcomment %}
783
+
784
+ {% comment %} navBar styles
785
+ -------------------------------------------------------------------------- {% endcomment %}
786
+ // var bg_scrolled = getStyleValueFromStyleSheet(navBarOptions.background_color_scrolled, 'background-color', 'bootstrap');
787
+ // var bg_collapsed = getStyleValueFromStyleSheet(navBarOptions.background_color_collapsed, 'background-color', 'bootstrap');
788
+
789
+ var bg_scrolled = getStyleValue('bg-primary', 'background-color');
790
+ var bg_collapsed = bg_scrolled;
791
+
792
+ $('head').append('<style>.mdi-bg-primary {color: ' +bg_scrolled+ ';}</style>');
793
+
794
+ // Size of brand image
795
+ $('head').append("<style>.navbar-brand > img { height: {{brand_image_height}}px !important; }</style>");
796
+ // Navbar transparent-light (light)
797
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator.navbar-transparent.light { background-color: " +navBarOptions.background_color_full+ " !important; border-bottom: solid 0px !important; } }</style>");
798
+
799
+ // $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator.navbar-scrolled.light { background-color: " +navBarOptions.background_color_scrolled+ " !important; } }</style>");
800
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator.navbar-scrolled.light { background-color: " +bg_scrolled+ " !important; } }</style>");
801
+
802
+
803
+ /* Navbar media-queries, LARGE Window|Desktop (>= 1024) */
804
+ /* jadams: Oversized menu bar fixed by: overflow: hidden */
805
+ // $('head').append("<style>@media (max-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator { background-color: " +navBarOptions.background_color_collapsed+ " !important; overflow: hidden; } }</style>");
806
+ $('head').append("<style>@media (max-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator { background-color: " +bg_collapsed+ " !important; overflow: hidden; } }</style>");
807
+ //$('head').append("<style>@media (max-width: 1023px) { row { margin-left: 0 !important; margin-right: 0 !important; } }</style>");
808
+
809
+ {% comment %} navQuicklinks styles
810
+ -------------------------------------------------------------------------- {% endcomment %}
811
+ $('head').append("<style>.attr-nav> ul > li > a { color: " +navQuicklinksOptions.icon_color+ " !important; }</style>");
812
+ $('head').append("<style>.attr-nav> ul > li > a:hover { color: " +navQuicklinksOptions.icon_color_hover+ " !important; }</style>");
813
+
814
+ {% comment %} navMenu styles
815
+ -------------------------------------------------------------------------- {% endcomment %}
816
+
817
+ // TODO: Check if this style is needed for MENU item (hover)
818
+ //$('head').append("<style>nav.navbar.navbar-transparent ul.nav > li > a:hover,nav.navbar.no-background ul.nav > li > a:hover,nav.navbar ul.nav li.scroll.active > a,nav.navbar.navbar-dark ul.nav li.dropdown ul.dropdown-menu > li > a:hover,nav.navbar ul.nav li.dropdown.on > a,nav.navbar-dark ul.nav li.dropdown.on > a { color: " +navMenuOptions.menu_item_color_hover+ " !important; }</style>");
819
+ //
820
+ //$('head').append("<style>.dropdown-menu > .active > a { background-color: " +navMenuOptions.dropdown_background_color_active+ " !important; }</style>");
821
+ // Remove background for anchor
822
+ $('head').append("<style>.dropdown-menu > .active > a { background-color: transparent !important; }</style>");
823
+ // hover menu-item|menu-sub-item
824
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator .dropdown-item:focus, nav.navbar.navigator .dropdown-item:hover, nav.navbar.navigator .nav-sub-item:focus, nav.navbar.navigator .nav-sub-item:hover { background: " +navMenuOptions.dropdown_background_color_hover+ " !important; } }</style>");
825
+ // $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu > li a:hover { color: " +navMenuOptions.menu_item_color_hover+ " !important; background: " +navMenuOptions.dropdown_background_color_hover+ " !important; } }</style>");
826
+
827
+ // 1st dropdown, limit height
828
+ // TODO: overflow needs to be managed correctly (not static)
829
+ //$('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu { max-height: " +navMenuOptions.dropdown_menu_height_max+ "em; overflow: hidden } }</style>");
830
+
831
+ // Limit dropdown item width
832
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator ul.nav.navbar-right .dropdown-menu .dropdown-menu { left: -" +navMenuOptions.dropdown_item_width+ "em !important; } }</style>");
833
+
834
+ // Limit last (2nd) dropdown in height (nav.navbar.navigator li.dropdown ul.dropdown-menu ul.dropdown-menu)
835
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu ul.dropdown-menu { top: -" +navMenuOptions.dropdown_border_top+ "px !important; max-height: " +navMenuOptions.dropdown_menu_height_max+ "em !important; } }</style>");
836
+
837
+ // Set dropdown item colors
838
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator ul.nav > li > a { color: " +navMenuOptions.menu_item_color+ " !important; } }</style>");
839
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator ul.nav > li > a:hover { color: " +navMenuOptions.menu_item_color_hover+ " !important; } }</style>");
840
+
841
+ // Dropdown menu styles
842
+ //$('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu { animation-duration: " +navMenuOptions.dropdown_animate_duration+ "s !important; color: " +navMenuOptions.dropdown_border_color+ "; width: " +navMenuOptions.dropdown_item_width+ "px; border-top: solid " +navMenuOptions.dropdown_border_height+ "px; left: 1rem; top: calc( 90px + " +navMenuOptions.dropdown_border_height+ "px ); } }</style>");
843
+ //$('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu { animation-duration: " +navMenuOptions.dropdown_animate_duration+ "s !important; color: " +navMenuOptions.dropdown_border_color+ "; width: " +navMenuOptions.dropdown_item_width+ "em; border-top: solid " +navMenuOptions.dropdown_border_height+ "px; left: 1em; } }</style>");
844
+ // jadams, 2017-11-30: removed left padding from dropdown mwenu (for new j1nav style based on Navigator|Slate)
845
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu { animation-duration: " +navMenuOptions.dropdown_animate_duration+ "s !important; color: " +navMenuOptions.dropdown_border_color+ " !important; width: " +navMenuOptions.dropdown_item_width+ "emm!important; border-top: solid " +navMenuOptions.dropdown_border_top+ "px !important; border-radius: " +navMenuOptions.dropdown_border_radius+ "px !important; left: 0; } }</style>");
846
+
847
+ {% if dropdown_style == 'raised' %}
848
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu { box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2) !important; } }</style>");
849
+ {% endif %}
850
+
851
+ // jadams,2017-11-22: stop configure dropdown_font_size
852
+ //$('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown li.dropdown.nav-item.nav-sub-item { color: " +navMenuOptions.dropdown_item_color+ "; font-size: " +navMenuOptions.dropdown_font_size+ "; font-weight: 400; } }</style>");
853
+ // $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu > li > a { color: " +navMenuOptions.dropdown_item_color+ "; font-size: " +navMenuOptions.dropdown_font_size+ "; font-weight: 400; display: inline-flex; align-items: center;} }</style>");
854
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu > li > a { color: " +navMenuOptions.dropdown_item_color+ " !important; font-size: " +navMenuOptions.dropdown_font_size+ " !important; font-weight: 400; } }</style>");
855
+ $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator ul.dropdown-menu.megamenu-content .content ul.menu-col li a { color: " +navMenuOptions.dropdown_item_color+ " !important; font-size: " +navMenuOptions.megamenu_font_size+ " !important; font-weight: 400; } }</style>");
856
+
857
+ // dropdown-menu item padding
858
+ // jadams, 2017-11-22: moved item padding to nav|dropdown-item based on font-site (rel|em)
859
+ {% if dropdown_item_style == 'raised' %}
860
+ //$('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu > li > a { padding: " +navMenuOptions.dropdown_padding_y+ "px " +navMenuOptions.dropdown_padding_x+ "px; box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); } }</style>");
861
+ {% else %}
862
+ //$('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator li.dropdown ul.dropdown-menu > li > a { padding: " +navMenuOptions.dropdown_padding_y+ "px " +navMenuOptions.dropdown_padding_x+ "px; } }</style>");
863
+ // blödsinn $('head').append("<style>@media (min-width: " +gridBreakpoint_lg+ " ) { nav.navbar.navigator .dropdown .nav-item { padding-top: " +navMenuOptions.dropdown_item_padding+ "px; padding-bottom: " +navMenuOptions.dropdown_item_padding+ "px; } }</style>");
864
+ {% endif %}
865
+
866
+ {% comment %} navQuicklinks styles
867
+ -------------------------------------------------------------------------- {% endcomment %}
868
+
869
+ {% comment %} navTopSearch Styles
870
+ -------------------------------------------------------------------------- {% endcomment %}
871
+ $('head').append("<style>.top-search { background-color: " +navTopsearchOptions.background_color+ " !important; }</style>");
872
+ $('head').append("<style>.top-search .input-group-addon { color: " +navTopsearchOptions.input_color+ " !important; }</style>");
873
+ $('head').append("<style>.top-search .input.form-control { color: " +navTopsearchOptions.input_color+ " !important; }</style>");
874
+
875
+ {% comment %} navSidebar styles
876
+ -------------------------------------------------------------------------- {% endcomment %}
877
+ $('head').append("<style>.side { background-color: " +navSidebarOptions.background_color+ " !important; }</style>");
878
+
879
+ return true;
880
+ }, // END setCss
881
+
882
+ // -------------------------------------------------------------------------
883
+ // delay all dropdown menu to open for "delay" time
884
+ // http://jsfiddle.net/AndreasPizsa/NzvKC/
885
+ // -------------------------------------------------------------------------
886
+ delayShowMenu: function () {
887
+
888
+ var theTimer = 0;
889
+ var theElement = null;
890
+
891
+ var logger = log4javascript.getLogger("j1.adapter.navigator");
892
+ logText = "entered delayShowMenu"
893
+ logger.info(logText);
894
+
895
+ $('#navigator_nav_menu')
896
+ .find('li.dropdown.nav-item')
897
+ .on('mouseenter', function (inEvent) {
898
+ theElement = $(this);
899
+ if (theElement) theElement.removeClass('open');
900
+ //if (theElement) theElement.css("display", "none");
901
+ //window.clearTimeout(theTimer);
902
+
903
+ //theTimer = window.setTimeout(function () {
904
+ setTimeout(function () {
905
+ theElement.addClass('open');
906
+ //theElement.css("display", "block");
907
+ //window.clearTimeout(theTimer);
908
+ }, {{menuOpenDelay}});
909
+ })
910
+ .on('mousemove', function (inEvent) {
911
+ if (theElement.hasClass('open')) return true;
912
+ //window.clearTimeout(theTimer);
913
+ //theTimer = window.setTimeout(function () {
914
+ setTimeout(function () {
915
+ theElement.addClass('open');
916
+ //window.clearTimeout(theTimer);
917
+ }, {{menuOpenDelay}});
918
+ })
919
+ .on('mouseleave', function (inEvent) {
920
+ //window.clearTimeout(theTimer);
921
+ theElement = $(this);
922
+ //theTimer = window.setTimeout(function () {
923
+ setTimeout(function () {
924
+ theElement.removeClass('open');
925
+ //window.clearTimeout(theTimer);
926
+ }, {{menuOpenDelay}});
927
+ });
928
+
929
+ return true;
930
+ }, // END delayShowMenu
931
+
932
+ // -------------------------------------------------------------------------
933
+ // messageHandler: MessageHandler for J1 NAV module
934
+ // Manage messages (paylods) send from other J1 modules
935
+ // -------------------------------------------------------------------------
936
+ messageHandler: function ( sender, message ) {
937
+ var json_message = JSON.stringify(message, undefined, 2);
938
+
939
+ logText = 'Received message from ' + sender + ': ' + json_message;
940
+ logger.debug(logText);
941
+
942
+ // -----------------------------------------------------------------------
943
+ // Process commands|actions
944
+ // -----------------------------------------------------------------------
945
+ if ( message.type === 'command' && message.action === 'module_initialized' ) {
946
+ _this.setState('finished');
947
+ logger.info(message.text);
948
+ }
949
+ if ( message.type === 'command' && message.action === 'status' ) {
950
+ logger.info('messageHandler: received - ' + message.action);
951
+ }
952
+
953
+ //
954
+ // Place handling of other command|action here
955
+ //
956
+
957
+ return true;
958
+ }, // END messageHandler
959
+
960
+ // -------------------------------------------------------------------------
961
+ // Set the current (processing) state of the module
962
+ // -------------------------------------------------------------------------
963
+ setState: function ( stat ) {
964
+ state = stat;
965
+ }, // END setState
966
+
967
+ // -------------------------------------------------------------------------
968
+ // Returns the current (processing) state of the module
969
+ // -------------------------------------------------------------------------
970
+ getState: function () {
971
+ return state;
972
+ } // END state
973
+
974
+ }; // END return
975
+ })(j1, window);
976
+
977
+ {% endcapture %}
978
+
979
+ {{ cache | strip_empty_lines }}
980
+ {% assign cache = nil %}