j1-template 2024.1.5 → 2024.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_page.html +0 -34
  3. data/_includes/themes/j1/modules/searcher/generator.html +4 -1
  4. data/_includes/themes/j1/modules/searcher/procedures/topsearch.proc +59 -56
  5. data/assets/data/authclient.html +1 -8
  6. data/assets/data/banner.html +1 -7
  7. data/assets/data/fab.html +2 -13
  8. data/assets/data/footer.html +0 -3
  9. data/assets/data/galeries.html +2 -13
  10. data/assets/data/gemini-ui.html +74 -21
  11. data/assets/data/iframes.html +1 -4
  12. data/assets/data/masonry.html +1 -13
  13. data/assets/data/masterslider.html +10 -21
  14. data/assets/data/menu.html +6 -14
  15. data/assets/data/mmenu.html +6 -5
  16. data/assets/data/mmenu_toc.html +2 -1
  17. data/assets/data/panel.html +4 -11
  18. data/assets/data/particles.yml +8 -8
  19. data/assets/data/quicklinks.html +4 -23
  20. data/assets/data/rtext_resizer.html +3 -1
  21. data/assets/data/slick.html +9 -11
  22. data/assets/data/translator.html +0 -1
  23. data/assets/themes/j1/adapter/js/advertising.js +141 -172
  24. data/assets/themes/j1/adapter/js/algolia.js +61 -54
  25. data/assets/themes/j1/adapter/js/analytics.js +67 -47
  26. data/assets/themes/j1/adapter/js/asciidoctor.js +32 -20
  27. data/assets/themes/j1/adapter/js/attic.js +75 -69
  28. data/assets/themes/j1/adapter/js/bmd.js +195 -177
  29. data/assets/themes/j1/adapter/js/carousel.js +786 -761
  30. data/assets/themes/j1/adapter/js/chatbot.js +77 -35
  31. data/assets/themes/j1/adapter/js/clipboard.js +66 -49
  32. data/assets/themes/j1/adapter/js/comments.js +92 -70
  33. data/assets/themes/j1/adapter/js/cookieConsent.js +466 -462
  34. data/assets/themes/j1/adapter/js/customFunctions.js +52 -35
  35. data/assets/themes/j1/adapter/js/customModule.js +56 -46
  36. data/assets/themes/j1/adapter/js/docsearch.js +54 -34
  37. data/assets/themes/j1/adapter/js/dropdowns.js +65 -52
  38. data/assets/themes/j1/adapter/js/fab.js +123 -109
  39. data/assets/themes/j1/adapter/js/gallery.js +494 -476
  40. data/assets/themes/j1/adapter/js/gemini.js +933 -299
  41. data/assets/themes/j1/adapter/js/iconPicker.js +255 -235
  42. data/assets/themes/j1/adapter/js/iconPickerPage.js +279 -0
  43. data/assets/themes/j1/adapter/js/iframer.js +81 -61
  44. data/assets/themes/j1/adapter/js/j1.js +3285 -3222
  45. data/assets/themes/j1/adapter/js/lazyLoader.js +241 -222
  46. data/assets/themes/j1/adapter/js/lightbox.js +241 -241
  47. data/assets/themes/j1/adapter/js/logger.js +77 -66
  48. data/assets/themes/j1/adapter/js/lunr.js +688 -86
  49. data/assets/themes/j1/adapter/js/masonry.js +426 -411
  50. data/assets/themes/j1/adapter/js/masterslider.js +526 -527
  51. data/assets/themes/j1/adapter/js/mmenu.js +101 -66
  52. data/assets/themes/j1/adapter/js/navigator.js +291 -356
  53. data/assets/themes/j1/adapter/js/particles.js +61 -40
  54. data/assets/themes/j1/adapter/js/rangeSlider.js +65 -48
  55. data/assets/themes/j1/adapter/js/rouge.js +287 -269
  56. data/assets/themes/j1/adapter/js/rtable.js +309 -293
  57. data/assets/themes/j1/adapter/js/rtextResizer.js +57 -44
  58. data/assets/themes/j1/adapter/js/scroller.js +170 -133
  59. data/assets/themes/j1/adapter/js/slick.js +487 -485
  60. data/assets/themes/j1/adapter/js/slimSelect.js +290 -0
  61. data/assets/themes/j1/adapter/js/speak2me.js +124 -128
  62. data/assets/themes/j1/adapter/js/themeToggler.js +280 -260
  63. data/assets/themes/j1/adapter/js/{themer.js → themes.js} +145 -113
  64. data/assets/themes/j1/adapter/js/toccer.js +87 -54
  65. data/assets/themes/j1/adapter/js/translator.js +73 -70
  66. data/assets/themes/j1/adapter/js/waves.js +74 -58
  67. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +29 -11
  68. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +2 -2
  69. data/assets/themes/j1/core/js/template.js +474 -420
  70. data/assets/themes/j1/core/js/template.min.js +7 -7
  71. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  72. data/assets/themes/j1/modules/carousel/css/theme/uno.css +4 -4
  73. data/assets/themes/j1/modules/carousel/css/theme/uno.min.css +1 -1
  74. data/assets/themes/j1/modules/clipboard/js/clipboard.js +0 -1
  75. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +4 -4
  76. data/assets/themes/j1/modules/iconPicker/css/theme/uno.css +58 -0
  77. data/assets/themes/j1/modules/iconPicker/css/theme/uno.min.css +16 -0
  78. data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.0.js +493 -0
  79. data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.js +7 -7
  80. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-video.js +4 -4
  81. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-video.min.js +2 -10
  82. data/assets/themes/j1/modules/lunr/css/j1.css +12 -6
  83. data/assets/themes/j1/modules/lunr/css/j1.min.css +1 -1
  84. data/assets/themes/j1/modules/lunr/js/j1.js +46 -43
  85. data/assets/themes/j1/modules/lunr/js/j1.min.js +1 -1
  86. data/assets/themes/j1/modules/masterslider/js/masterslider.js +1 -1
  87. data/assets/themes/j1/modules/scroller/js/scroller.js +64 -74
  88. data/assets/themes/j1/modules/scroller/js/scroller.min.js +1 -1
  89. data/assets/themes/j1/modules/slick/slider/css/theme/uno.css +4 -4
  90. data/assets/themes/j1/modules/slick/slider/css/theme/uno.min.css +1 -1
  91. data/assets/themes/j1/modules/slimSelect/js/select.js +1865 -1821
  92. data/assets/themes/j1/modules/slimSelect/js/select.min.js +2 -1
  93. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +87 -89
  94. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
  95. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/player.min.js +5 -7
  96. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/v2.20.1/player.min.js +23 -0
  97. data/lib/j1/version.rb +1 -1
  98. data/lib/starter_web/Gemfile +2 -2
  99. data/lib/starter_web/README.md +5 -5
  100. data/lib/starter_web/_config.yml +1 -1
  101. data/lib/starter_web/_data/blocks/_panel.yml +775 -0
  102. data/lib/starter_web/_data/blocks/panel.yml +53 -53
  103. data/lib/starter_web/_data/j1_config.yml +3 -2
  104. data/lib/starter_web/_data/layouts/default.yml +0 -2
  105. data/lib/starter_web/_data/modules/_scroller.yml +102 -0
  106. data/lib/starter_web/_data/modules/carousel.yml +3 -3
  107. data/lib/starter_web/_data/modules/defaults/attics.yml +5 -5
  108. data/lib/starter_web/_data/modules/defaults/docsearch.yml +1 -1
  109. data/lib/starter_web/_data/modules/defaults/gemini.yml +204 -46
  110. data/lib/starter_web/_data/modules/defaults/{iconPicker.yml → icon_picker.yml} +6 -12
  111. data/lib/starter_web/_data/modules/defaults/lunr.yml +20 -5
  112. data/lib/starter_web/_data/modules/defaults/masterslider.yml +4 -4
  113. data/lib/starter_web/_data/modules/defaults/navigator.yml +20 -24
  114. data/lib/starter_web/_data/modules/defaults/particles.yml +3 -3
  115. data/lib/starter_web/_data/modules/defaults/slim_select.yml +54 -0
  116. data/lib/starter_web/_data/modules/defaults/{themer.yml → themes.yml} +171 -171
  117. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  118. data/lib/starter_web/_data/modules/gallery.yml +33 -38
  119. data/lib/starter_web/_data/modules/gemini.yml +42 -3
  120. data/lib/starter_web/_data/modules/{iconPicker.yml → icon_picker.yml} +31 -3
  121. data/lib/starter_web/_data/modules/lunr.yml +12 -1
  122. data/lib/starter_web/_data/modules/masonry.yml +37 -38
  123. data/lib/starter_web/_data/modules/masterslider.yml +78 -95
  124. data/lib/starter_web/_data/modules/navigator_menu.yml +12 -20
  125. data/lib/starter_web/_data/modules/particles.yml +3 -3
  126. data/lib/starter_web/_data/modules/scroller.yml +3 -3
  127. data/lib/starter_web/_data/modules/slim_select.yml +110 -0
  128. data/lib/starter_web/_data/modules/{themer.yml → themes.yml} +4 -4
  129. data/lib/starter_web/_data/resources.yml +57 -47
  130. data/lib/starter_web/_data/templates/feed.xml +1 -1
  131. data/lib/starter_web/_includes/attributes.asciidoc +354 -355
  132. data/lib/starter_web/_plugins/asciidoctor/gemini-ui-block.rb +1 -1
  133. data/lib/starter_web/_plugins/asciidoctor/slim-select-block.rb +45 -0
  134. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  135. data/lib/starter_web/collections/asciidoc_skeletons/simple-post/_posts/yyyy-mm-dd-your-post-name.asciidoc +5 -2
  136. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +3 -3
  137. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +9 -9
  138. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc +4 -4
  139. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +3 -2
  140. data/lib/starter_web/collections/posts/public/featured/_posts/2023-10-18-url-types.adoc +12 -12
  141. data/lib/starter_web/package.json +1 -1
  142. data/lib/starter_web/pages/public/about/features.adoc +1 -1
  143. data/lib/starter_web/pages/public/about/reporting_issues.adoc +1 -0
  144. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/attributes.asciidoc +44 -44
  145. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -0
  146. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/attributes.asciidoc +12 -12
  147. data/lib/starter_web/pages/public/blog/navigator/archive/allview.html +1 -1
  148. data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/attributes.asciidoc +42 -28
  149. data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/highlghter_rouge.adoc +1 -0
  150. data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/lunr_search.adoc +1 -0
  151. data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/present_audio_video.adoc +18 -2
  152. data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/present_images.adoc +500 -507
  153. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +6 -11
  154. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +4 -11
  155. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +5 -12
  156. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +5 -10
  157. data/lib/starter_web/pages/public/tools/previewer/_includes/attributes.asciidoc +10 -9
  158. data/lib/starter_web/pages/public/tools/previewer/preview_bootstrap_theme.adoc +77 -75
  159. metadata +50 -46
  160. data/lib/starter_web/pages/public/manuals/integrations/gemini/_includes/attributes.asciidoc +0 -47
  161. data/lib/starter_web/pages/public/manuals/integrations/gemini/_includes/documents/preview_google_adsense.asciidoc +0 -448
  162. data/lib/starter_web/pages/public/manuals/integrations/gemini/_includes/documents/readme +0 -0
  163. data/lib/starter_web/pages/public/manuals/integrations/gemini/_includes/tables/readme +0 -0
  164. data/lib/starter_web/pages/public/manuals/integrations/gemini/gemini.adoc +0 -525
  165. data/lib/starter_web/pages/public/manuals/integrations/gemini/security.asccidoc +0 -274
  166. data/lib/starter_web/pages/public/manuals/integrations/gemini/security.hrml +0 -560
  167. /data/lib/starter_web/pages/public/{legal/learn → learn}/bookshelf/article_previewer/viewer_biography.adoc +0 -0
  168. /data/lib/starter_web/pages/public/{legal/learn → learn}/bookshelf/article_previewer/viewer_fantasy.adoc +0 -0
  169. /data/lib/starter_web/pages/public/{legal/learn → learn}/bookshelf/article_previewer/viewer_romance.adoc +0 -0
  170. /data/lib/starter_web/pages/public/{legal/learn → learn}/bookshelf/jekyll_collections.adoc +0 -0
  171. /data/lib/starter_web/pages/public/{legal/learn → learn}/bookshelf/viewer_all_books.adoc +0 -0
  172. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/100_gistblock.asciidoc +0 -0
  173. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_bottom_info.asciidoc +0 -0
  174. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_bottom_left_warning.asciidoc +0 -0
  175. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_bottom_right_danger.asciidoc +0 -0
  176. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_central_success.asciidoc +0 -0
  177. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_full_height_left_info.asciidoc +0 -0
  178. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_full_height_right_success.asciidoc +0 -0
  179. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +0 -0
  180. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_top_info.asciidoc +0 -0
  181. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_top_left_info.asciidoc +0 -0
  182. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_top_right_success.asciidoc +0 -0
  183. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/419_advanced_modals_demo.asciidoc +0 -0
  184. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +0 -0
  185. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/themes_bootstrap.asciidoc +0 -0
  186. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/themes_rouge.asciidoc +0 -0
  187. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/asciidoc_extensions.adoc +0 -0
  188. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/bootstrap_themes.adoc +0 -0
  189. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/icon_fonts.adoc +0 -0
  190. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/modal_extentions.adoc +0 -0
  191. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/responsive_tables.adoc +0 -0
  192. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/typography.adoc +0 -0
  193. /data/lib/starter_web/pages/public/{legal/learn → learn}/where_to_go.adoc +0 -0
@@ -6,7 +6,7 @@ regenerate: true
6
6
 
7
7
  {% comment %}
8
8
  # -----------------------------------------------------------------------------
9
- # ~/assets/themes/j1/adapter/js/themer.js
9
+ # ~/assets/themes/j1/adapter/js/themes.js
10
10
  # Liquid template to adapt theme functions
11
11
  #
12
12
  # Product/Info:
@@ -43,14 +43,14 @@ regenerate: true
43
43
 
44
44
  {% comment %} Set config data
45
45
  -------------------------------------------------------------------------------- {% endcomment %}
46
- {% assign themer_defaults = modules.defaults.themer.defaults %}
47
- {% assign themer_settings = modules.themer.settings %}
46
+ {% assign themes_defaults = modules.defaults.themes.defaults %}
47
+ {% assign themes_settings = modules.themes.settings %}
48
48
  {% assign footer_defaults = blocks.defaults.footer.defaults %}
49
49
  {% assign footer_settings = blocks.footer.settings %}
50
50
 
51
51
  {% comment %} Set config options
52
52
  -------------------------------------------------------------------------------- {% endcomment %}
53
- {% assign themer_options = themer_defaults| merge: themer_settings %}
53
+ {% assign themes_options = themes_defaults| merge: themes_settings %}
54
54
  {% assign footer_options = footer_defaults | merge: footer_settings %}
55
55
  {% assign footer = 'active_footer' %}
56
56
  {% assign footer_id = footer_options.active_footer %}
@@ -74,20 +74,20 @@ regenerate: true
74
74
 
75
75
  /*
76
76
  # -----------------------------------------------------------------------------
77
- # ~/assets/themes/j1/adapter/js/themer.js
78
- # JS Adapter for J1 themer (bootstrapThemeSwitcher)
77
+ # ~/assets/themes/j1/adapter/js/themes.js
78
+ # JS Adapter for J1 themes (ThemeSwitcher)
79
79
  #
80
80
  # Product/Info:
81
81
  # https://jekyll.one
82
- # https://github.com/jguadagno/bootstrapThemeSwitcher
82
+ # https://github.com/jguadagno/ThemeSwitcher
83
83
  #
84
84
  # Copyright (C) 2023, 2024 Juergen Adams
85
85
  # Copyright (C) 2014 Joseph Guadagno
86
86
  #
87
87
  # J1 Template is licensed under the MIT License.
88
88
  # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
89
- # bootstrapThemeSwitcher is licensed under the MIT License.
90
- # For details, see https://github.com/jguadagno/bootstrapThemeSwitcher/blob/master/LICENSE
89
+ # ThemeSwitcher is licensed under the MIT License.
90
+ # For details, see https://github.com/jguadagno/ThemeSwitcher/blob/master/LICENSE
91
91
  # -----------------------------------------------------------------------------
92
92
  # NOTE:
93
93
  # Setup of theme loaders for local_themes|remote_themes moved
@@ -105,11 +105,10 @@ regenerate: true
105
105
  // -----------------------------------------------------------------------------
106
106
 
107
107
  'use strict';
108
- j1.adapter.themer = (function (j1, window) {
108
+ j1.adapter.themes = (function (j1, window) {
109
109
 
110
- // ---------------------------------------------------------------------------
111
- // globals
112
- // ---------------------------------------------------------------------------
110
+ {% comment %} Set global variables
111
+ ------------------------------------------------------------------------------ {% endcomment %}
113
112
  var environment = '{{environment}}';
114
113
  var development = (environment.includes('dev') ? true : false);
115
114
  var url = new liteURL(window.location.href);
@@ -117,7 +116,7 @@ j1.adapter.themer = (function (j1, window) {
117
116
  var user_state = {};
118
117
  var user_consent = {};
119
118
  var cookie_names = j1.getCookieNames();
120
- var user_state_detected = false;
119
+ //var user_state_detected = false;
121
120
  var styleLoaded = false;
122
121
  var id = 'default';
123
122
  var state = 'not_started';
@@ -128,15 +127,13 @@ j1.adapter.themer = (function (j1, window) {
128
127
  var default_theme_css_name = default_theme_name.toLowerCase();
129
128
  var default_theme_css = '{{asset_path}}/{{theme_base}}/' + default_theme_css_name + '/bootstrap' + cssExtension;
130
129
  var interval_count = 0;
130
+
131
131
  var user_state_cookie;
132
132
  var theme_css_html;
133
- var _this;
134
- var logger;
135
- var logText;
136
133
  var cookie_written;
137
- var themerDefaults;
138
- var themerSettings;
139
- var themerOptions;
134
+ var themesDefaults;
135
+ var themesSettings;
136
+ var themesOptions;
140
137
  var max_count;
141
138
  var j1Cookies;
142
139
  var gaCookies;
@@ -144,6 +141,17 @@ j1.adapter.themer = (function (j1, window) {
144
141
  var baseUrl;
145
142
  var error_page;
146
143
 
144
+ var _this;
145
+ var logger;
146
+ var logText;
147
+
148
+ // date|time
149
+ var startTime;
150
+ var endTime;
151
+ var startTimeModule;
152
+ var endTimeModule;
153
+ var timeSeconds;
154
+
147
155
  // ---------------------------------------------------------------------------
148
156
  // helper functions
149
157
  // ---------------------------------------------------------------------------
@@ -152,7 +160,7 @@ j1.adapter.themer = (function (j1, window) {
152
160
  var sheets = document.styleSheets, stylesheet = sheets[(sheets.length - 1)];
153
161
 
154
162
  // find CSS file 'styleSheetName' in document
155
- for(var i in document.styleSheets) {
163
+ for (var i in document.styleSheets) {
156
164
  if(sheets[i].href && sheets[i].href.indexOf(styleSheet) > -1) {
157
165
  return true;
158
166
  }
@@ -163,8 +171,8 @@ j1.adapter.themer = (function (j1, window) {
163
171
  // see: https://stackoverflow.com/questions/4301968/checking-a-url-in-jquery-javascript
164
172
  // see: https://stackoverflow.com/questions/16481598/prevent-unhandled-jquery-ajax-error
165
173
  //
166
- var urlExists = function(url, callback) {
167
- if ( ! $.isFunction(callback)) {
174
+ var urlExists = function (url, callback) {
175
+ if ( ! $.isFunction (callback)) {
168
176
  throw Error('Not a valid callback');
169
177
  }
170
178
 
@@ -189,40 +197,35 @@ j1.adapter.themer = (function (j1, window) {
189
197
  // Default module settings
190
198
  // -----------------------------------------------------------------------
191
199
  var settings = $.extend({
192
- module_name: 'j1.adapter.themer',
200
+ module_name: 'j1.adapter.themes',
193
201
  generated: '{{site.time}}'
194
202
  }, options);
195
203
 
196
204
  // -----------------------------------------------------------------------
197
205
  // Global variable settings
198
206
  // -----------------------------------------------------------------------
199
- _this = j1.adapter.themer;
200
- logger = log4javascript.getLogger('j1.adapter.themer');
207
+ _this = j1.adapter.themes;
208
+ logger = log4javascript.getLogger('j1.adapter.themes');
201
209
 
202
210
  // Load module DEFAULTS|CONFIG
203
- themerDefaults = $.extend({}, {{themer_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
204
- themerSettings = $.extend({}, {{themer_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
205
- themerOptions = $.extend(true, {}, themerDefaults, themerSettings);
206
-
207
- max_count = themerOptions.retries;
208
- url = new liteURL(window.location.href);
209
- baseUrl = url.origin;
210
- error_page = url.origin + '/204.html';
211
- j1Cookies = j1.findCookie('j1');
212
- gaCookies = j1.findCookie('__g');
211
+ themesDefaults = $.extend({}, {{themes_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
212
+ themesSettings = $.extend({}, {{themes_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
213
+ themesOptions = $.extend(true, {}, themesDefaults, themesSettings);
213
214
 
214
- // initialize state flag
215
- _this.state = 'started';
216
- logger.debug('\n' + 'state: ' + _this.getState());
215
+ max_count = themesOptions.retries;
216
+ url = new liteURL(window.location.href);
217
+ baseUrl = url.origin;
218
+ error_page = url.origin + '/204.html';
219
+ j1Cookies = j1.findCookie('j1');
220
+ gaCookies = j1.findCookie('__g');
217
221
 
218
- // hide page until 'theme' is loaded
219
- $('#no_flicker').hide();
220
222
 
221
223
  // jadams, 2023-06-10: Added to optimze 'CLS' of a page load.
222
224
  // Find conterpart (show) in the j1.adapter
223
225
  // hide content|footer until 'page' is loaded
224
- $('#content').hide();
225
- $('.{{footer}}').hide();
226
+ //
227
+ // $('#content').hide();
228
+ // $('.{{footer}}').hide();
226
229
 
227
230
  // jadams, 2021-07-25: problem seems NOT an timing issue on the iPad
228
231
  // platform. (General) Dependency should be REMOVED!!!
@@ -230,70 +233,91 @@ j1.adapter.themer = (function (j1, window) {
230
233
  //
231
234
  // jadams, 2021-07-11: added dependecy on the user state cookie
232
235
  // Found timing issues testing mobile devices (iPad)
233
- var dependencies_met_user_state_available = setInterval (function () {
234
- user_state_detected = j1.existsCookie(cookie_names.user_state);
236
+ //
237
+
238
+ // -----------------------------------------------------------------------
239
+ // module initializer
240
+ // -----------------------------------------------------------------------
241
+ var dependencies_met_page_ready = setInterval (() => {
242
+ var pageState = $('#content').css("display");
243
+ // var pageState = $('#no_flicker').css("display");
244
+ var pageVisible = (pageState === 'block') ? true : false;
245
+ var j1CoreFinished = (j1.getState() === 'finished') ? true : false;
246
+ var atticFinished = (j1.adapter.attic.getState() === 'finished') ? true: false;
247
+ // var userStateDetected = j1.existsCookie(cookie_names.user_state);
235
248
 
236
249
  // counter how often the check should be done for the existence
237
250
  // of the user state cookie
238
- interval_count += 1;
239
- if (user_state_detected) {
240
- user_state = j1.readCookie(cookie_names.user_state);
241
- user_consent = j1.readCookie(cookie_names.user_consent);
242
-
243
- logger.debug('\n' + 'cookie ' + cookie_names.user_state + ' successfully loaded after: ' + interval_count * 25 + ' ms');
244
-
245
- // initial theme data
246
- if (user_state.theme_css === '') {
247
- user_state.theme_name = default_theme_name;
248
- user_state.theme_css = default_theme_css;
249
- user_state.theme_author = default_theme_author;
250
- user_state.theme_author_url = default_theme_author_url;
251
-
252
- cookie_written = j1.writeCookie({
253
- name: cookie_names.user_state,
254
- data: user_state,
255
- secure: secure,
256
- expires: 365
257
- });
258
-
259
- if (!cookie_written) {
260
- logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_consent);
261
- }
262
- }
251
+ // interval_count += 1;
263
252
 
264
- // set the theme switcher state
265
- user_state.theme_switcher = themerOptions.enabled;
266
- if (themerOptions.enabled) {
253
+ if (pageVisible && j1CoreFinished) {
254
+ startTimeModule = Date.now();
255
+
256
+ user_state = j1.readCookie(cookie_names.user_state);
257
+ user_consent = j1.readCookie(cookie_names.user_consent);
258
+
259
+ _this.setState('started');
260
+ logger.debug('\n' + 'state: ' + _this.getState());
261
+ logger.info('\n' + 'module is being initialized');
262
+
263
+ // hide page until 'theme' is loaded
264
+ logger.info('\n' + 'hide page until theme is loaded');
265
+ $('#no_flicker').hide();
266
+
267
+ // logger.info('\n' + 'cookie ' + cookie_names.user_state + ' successfully loaded after: ' + interval_count * 25 + ' ms');
268
+
269
+ // initial theme data
270
+ if (user_state.theme_css === '') {
271
+ user_state.theme_name = default_theme_name;
272
+ user_state.theme_css = default_theme_css;
273
+ user_state.theme_author = default_theme_author;
274
+ user_state.theme_author_url = default_theme_author_url;
275
+
276
+ cookie_written = j1.writeCookie({
277
+ name: cookie_names.user_state,
278
+ data: user_state,
279
+ secure: secure,
280
+ expires: 365
281
+ });
282
+
283
+ if (!cookie_written) {
284
+ logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_consent);
285
+ }
286
+ } // END if user_state theme_css === ''
287
+
288
+ // set the theme switcher state
289
+ user_state.theme_switcher = themesOptions.enabled;
290
+ if (themesOptions.enabled) {
267
291
  // enable BS ThemeSwitcher
268
- logger.info('\n' + 'themes detected as: ' + themerOptions.enabled);
292
+ logger.info('\n' + 'themes detected as: ' + themesOptions.enabled);
269
293
  logger.info('\n' + 'remote themes are being initialized');
270
294
 
271
295
  /* eslint-disable */
272
296
  // load list of remote themes
273
- $('#remote_themes').bootstrapThemeSwitcher.defaults = {
274
- debug: themerOptions.debug,
275
- saveToCookie: themerOptions.saveToCookie,
276
- cssThemeLink: themerOptions.cssThemeLink,
277
- cookieThemeName: themerOptions.cookieThemeName,
278
- cookieDefaultThemeName: themerOptions.cookieDefaultThemeName,
279
- cookieThemeCss: themerOptions.cookieThemeCss,
280
- cookieThemeExtensionCss: themerOptions.cookieThemeExtensionCss,
281
- cookieExpiration: themerOptions.cookieExpiration,
282
- cookiePath: themerOptions.cookiePath,
283
- defaultCssFile: themerOptions.defaultCssFile,
284
- bootswatchApiUrl: themerOptions.bootswatchApiUrl,
285
- bootswatchApiVersion: themerOptions.bootswatchApiVersion,
286
- loadFromBootswatch: themerOptions.loadFromBootswatch,
287
- localFeed: themerOptions.localThemes,
288
- excludeBootswatch: themerOptions.excludeBootswatch,
289
- includeBootswatch: themerOptions.includeBootswatch,
290
- skipIncludeBootswatch: themerOptions.skipIncludeBootswatch
297
+ $('#remote_themes').ThemeSwitcher.defaults = {
298
+ debug: themesOptions.debug,
299
+ saveToCookie: themesOptions.saveToCookie,
300
+ cssThemeLink: themesOptions.cssThemeLink,
301
+ cookieThemeName: themesOptions.cookieThemeName,
302
+ cookieDefaultThemeName: themesOptions.cookieDefaultThemeName,
303
+ cookieThemeCss: themesOptions.cookieThemeCss,
304
+ cookieThemeExtensionCss: themesOptions.cookieThemeExtensionCss,
305
+ cookieExpiration: themesOptions.cookieExpiration,
306
+ cookiePath: themesOptions.cookiePath,
307
+ defaultCssFile: themesOptions.defaultCssFile,
308
+ bootswatchApiUrl: themesOptions.bootswatchApiUrl,
309
+ bootswatchApiVersion: themesOptions.bootswatchApiVersion,
310
+ loadFromBootswatch: themesOptions.loadFromBootswatch,
311
+ localFeed: themesOptions.localThemes,
312
+ excludeBootswatch: themesOptions.excludeBootswatch,
313
+ includeBootswatch: themesOptions.includeBootswatch,
314
+ skipIncludeBootswatch: themesOptions.skipIncludeBootswatch
291
315
  };
292
316
  /* eslint-enable */
293
317
  } else {
294
318
  logger.debug('\n' + 'themes detected as: disabled');
295
319
  logger.debug('\n' + 'no remote themes are available');
296
- }
320
+ } // END if themesOptions enabled
297
321
 
298
322
  // validate theme to be loaded
299
323
  urlExists(user_state.theme_css, function(success) {
@@ -340,62 +364,70 @@ j1.adapter.themer = (function (j1, window) {
340
364
  location.reload(true);
341
365
  }
342
366
  });
343
- clearInterval(dependencies_met_user_state_available);
367
+
368
+ clearInterval(dependencies_met_page_ready);
344
369
  }
345
- }, 10); // END dependencies_met_user_state_available
370
+ }, 10); // END dependencies_met_page_ready
346
371
 
347
372
  // set final module state if theme loaded
348
- var dependencies_met_theme_applied = setInterval (function () {
373
+ var dependencies_met_theme_applied = setInterval (() => {
349
374
  user_state = j1.readCookie(cookie_names.user_state);
350
375
  styleLoaded = styleSheetLoaded(user_state.theme_css);
351
376
 
352
377
  if (styleLoaded) {
353
378
  // show page (theme is loaded)
354
- $('#no_flicker').show();
355
-
356
379
  logger.info('\n' + 'theme loaded successfully: ' + user_state.theme_name);
357
380
  logger.debug('\n' + 'theme CSS loaded: ' + user_state.theme_css);
381
+ logger.info('\n' + 'show page on theme loaded');
382
+ $('#no_flicker').show();
358
383
 
359
384
  _this.setState('finished');
360
-
361
385
  logger.debug('\n' + 'state: ' + _this.getState());
362
- logger.info('\n' + 'module initialized successfully');
386
+ logger.info('\n' + 'initializing module finished');
363
387
 
364
- clearInterval(dependencies_met_theme_applied);
365
- }
388
+ endTimeModule = Date.now();
389
+ logger.info('\n' + 'module initializing time: ' + (endTimeModule-startTimeModule) + 'ms');
366
390
 
391
+ clearInterval(dependencies_met_theme_applied);
392
+ } // ENF if styleLoaded
367
393
  }, 10); // END dependencies_met_theme_applied
368
394
 
369
395
  }, // END init
370
396
 
371
397
  // -------------------------------------------------------------------------
372
- // messageHandler
373
- // Manage messages send from other J1 modules
398
+ // messageHandler()
399
+ // manage messages send from other J1 modules
374
400
  // -------------------------------------------------------------------------
375
- messageHandler: function (sender, message) {
401
+ messageHandler: (sender, message) => {
376
402
  var json_message = JSON.stringify(message, undefined, 2);
377
403
 
378
404
  logText = '\n' + 'received message from ' + sender + ': ' + json_message;
379
- logger.info(logText);
405
+ logger.debug(logText);
380
406
 
381
407
  // -----------------------------------------------------------------------
382
- // Process commands|actions
408
+ // process commands|actions
383
409
  // -----------------------------------------------------------------------
384
410
  if (message.type === 'command' && message.action === 'module_initialized') {
385
- logger.info('\n' + message.text);
386
411
 
387
412
  //
388
- // Place handling of other command|action here
413
+ // place handling of command|action here
389
414
  //
390
415
 
416
+ logger.info('\n' + message.text);
391
417
  }
418
+
419
+ //
420
+ // place handling of other command|action here
421
+ //
422
+
423
+ return true;
392
424
  }, // END messageHandler
393
425
 
394
426
  // -------------------------------------------------------------------------
395
427
  // setState()
396
- // Sets the current (processing) state of the module
428
+ // sets the current (processing) state of the module
397
429
  // -------------------------------------------------------------------------
398
- setState: function (stat) {
430
+ setState: (stat) => {
399
431
  _this.state = stat;
400
432
  }, // END setState
401
433
 
@@ -403,11 +435,11 @@ j1.adapter.themer = (function (j1, window) {
403
435
  // getState()
404
436
  // Returns the current (processing) state of the module
405
437
  // -------------------------------------------------------------------------
406
- getState: function () {
438
+ getState: () => {
407
439
  return _this.state;
408
440
  } // END getState
409
441
 
410
- }; // END return
442
+ }; // END main (return)
411
443
  })(j1, window);
412
444
 
413
445
  {% endcapture %}