j1-template 2024.1.5 → 2024.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) 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 +143 -182
  24. data/assets/themes/j1/adapter/js/algolia.js +61 -54
  25. data/assets/themes/j1/adapter/js/analytics.js +68 -52
  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 +44 -26
  29. data/assets/themes/j1/adapter/js/carousel.js +117 -92
  30. data/assets/themes/j1/adapter/js/chatbot.js +77 -35
  31. data/assets/themes/j1/adapter/js/clipboard.js +67 -49
  32. data/assets/themes/j1/adapter/js/comments.js +93 -70
  33. data/assets/themes/j1/adapter/js/cookieConsent.js +157 -159
  34. data/assets/themes/j1/adapter/js/customFunctions.js +52 -35
  35. data/assets/themes/j1/adapter/js/customModule.js +61 -50
  36. data/assets/themes/j1/adapter/js/docsearch.js +55 -34
  37. data/assets/themes/j1/adapter/js/dropdowns.js +66 -52
  38. data/assets/themes/j1/adapter/js/fab.js +124 -109
  39. data/assets/themes/j1/adapter/js/gallery.js +68 -49
  40. data/assets/themes/j1/adapter/js/gemini.js +961 -301
  41. data/assets/themes/j1/adapter/js/iconPicker.js +76 -54
  42. data/assets/themes/j1/adapter/js/iconPickerPage.js +279 -0
  43. data/assets/themes/j1/adapter/js/iframer.js +84 -63
  44. data/assets/themes/j1/adapter/js/j1.js +605 -542
  45. data/assets/themes/j1/adapter/js/lazyLoader.js +43 -24
  46. data/assets/themes/j1/adapter/js/lightbox.js +53 -52
  47. data/assets/themes/j1/adapter/js/logger.js +78 -66
  48. data/assets/themes/j1/adapter/js/lunr.js +684 -86
  49. data/assets/themes/j1/adapter/js/masonry.js +84 -68
  50. data/assets/themes/j1/adapter/js/masterslider.js +136 -137
  51. data/assets/themes/j1/adapter/js/mmenu.js +102 -66
  52. data/assets/themes/j1/adapter/js/navigator.js +291 -356
  53. data/assets/themes/j1/adapter/js/particles.js +62 -40
  54. data/assets/themes/j1/adapter/js/rangeSlider.js +66 -48
  55. data/assets/themes/j1/adapter/js/rouge.js +63 -44
  56. data/assets/themes/j1/adapter/js/rtable.js +56 -40
  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 +99 -97
  60. data/assets/themes/j1/adapter/js/slimSelect.js +288 -0
  61. data/assets/themes/j1/adapter/js/speak2me.js +124 -128
  62. data/assets/themes/j1/adapter/js/themeToggler.js +118 -97
  63. data/assets/themes/j1/adapter/js/{themer.js → themes.js} +144 -113
  64. data/assets/themes/j1/adapter/js/toccer.js +88 -54
  65. data/assets/themes/j1/adapter/js/translator.js +74 -70
  66. data/assets/themes/j1/adapter/js/waves.js +75 -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 +27 -21
  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/js-cookies/js/js.cookie.js +147 -0
  81. data/assets/themes/j1/modules/js-cookies/js/js.cookie.min.js +2 -0
  82. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-video.js +4 -4
  83. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-video.min.js +2 -10
  84. data/assets/themes/j1/modules/lunr/css/j1.css +12 -6
  85. data/assets/themes/j1/modules/lunr/css/j1.min.css +1 -1
  86. data/assets/themes/j1/modules/lunr/js/j1.js +46 -43
  87. data/assets/themes/j1/modules/lunr/js/j1.min.js +1 -1
  88. data/assets/themes/j1/modules/masterslider/js/masterslider.js +1 -1
  89. data/assets/themes/j1/modules/scroller/js/scroller.js +64 -74
  90. data/assets/themes/j1/modules/scroller/js/scroller.min.js +1 -1
  91. data/assets/themes/j1/modules/slick/slider/css/theme/uno.css +4 -4
  92. data/assets/themes/j1/modules/slick/slider/css/theme/uno.min.css +1 -1
  93. data/assets/themes/j1/modules/slimSelect/js/select.js +1865 -1821
  94. data/assets/themes/j1/modules/slimSelect/js/select.min.js +2 -1
  95. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +87 -89
  96. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
  97. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/player.min.js +5 -7
  98. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/v2.20.1/player.min.js +23 -0
  99. data/lib/j1/version.rb +1 -1
  100. data/lib/starter_web/Gemfile +2 -2
  101. data/lib/starter_web/README.md +5 -5
  102. data/lib/starter_web/_config.yml +1 -1
  103. data/lib/starter_web/_data/blocks/_panel.yml +775 -0
  104. data/lib/starter_web/_data/blocks/panel.yml +53 -53
  105. data/lib/starter_web/_data/j1_config.yml +3 -2
  106. data/lib/starter_web/_data/layouts/default.yml +0 -2
  107. data/lib/starter_web/_data/modules/_scroller.yml +102 -0
  108. data/lib/starter_web/_data/modules/carousel.yml +3 -3
  109. data/lib/starter_web/_data/modules/defaults/attics.yml +5 -5
  110. data/lib/starter_web/_data/modules/defaults/docsearch.yml +1 -1
  111. data/lib/starter_web/_data/modules/defaults/gemini.yml +204 -46
  112. data/lib/starter_web/_data/modules/defaults/{iconPicker.yml → icon_picker.yml} +6 -12
  113. data/lib/starter_web/_data/modules/defaults/lunr.yml +20 -5
  114. data/lib/starter_web/_data/modules/defaults/masterslider.yml +4 -4
  115. data/lib/starter_web/_data/modules/defaults/navigator.yml +20 -24
  116. data/lib/starter_web/_data/modules/defaults/particles.yml +3 -3
  117. data/lib/starter_web/_data/modules/defaults/slim_select.yml +54 -0
  118. data/lib/starter_web/_data/modules/defaults/{themer.yml → themes.yml} +10 -10
  119. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  120. data/lib/starter_web/_data/modules/gallery.yml +33 -38
  121. data/lib/starter_web/_data/modules/gemini.yml +42 -3
  122. data/lib/starter_web/_data/modules/{iconPicker.yml → icon_picker.yml} +31 -3
  123. data/lib/starter_web/_data/modules/lunr.yml +12 -1
  124. data/lib/starter_web/_data/modules/masonry.yml +37 -38
  125. data/lib/starter_web/_data/modules/masterslider.yml +78 -95
  126. data/lib/starter_web/_data/modules/navigator_menu.yml +12 -20
  127. data/lib/starter_web/_data/modules/particles.yml +3 -3
  128. data/lib/starter_web/_data/modules/scroller.yml +3 -3
  129. data/lib/starter_web/_data/modules/slim_select.yml +110 -0
  130. data/lib/starter_web/_data/modules/{themer.yml → themes.yml} +4 -4
  131. data/lib/starter_web/_data/resources.yml +83 -47
  132. data/lib/starter_web/_data/templates/feed.xml +1 -1
  133. data/lib/starter_web/_includes/attributes.asciidoc +354 -355
  134. data/lib/starter_web/_plugins/asciidoctor/gemini-ui-block.rb +1 -1
  135. data/lib/starter_web/_plugins/asciidoctor/slim-select-block.rb +45 -0
  136. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  137. data/lib/starter_web/collections/asciidoc_skeletons/simple-post/_posts/yyyy-mm-dd-your-post-name.asciidoc +5 -2
  138. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +3 -3
  139. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +9 -9
  140. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc +4 -4
  141. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +3 -2
  142. data/lib/starter_web/collections/posts/public/featured/_posts/2023-10-18-url-types.adoc +12 -12
  143. data/lib/starter_web/package.json +1 -1
  144. data/lib/starter_web/pages/public/about/features.adoc +1 -1
  145. data/lib/starter_web/pages/public/about/reporting_issues.adoc +1 -0
  146. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/attributes.asciidoc +44 -44
  147. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -0
  148. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/attributes.asciidoc +12 -12
  149. data/lib/starter_web/pages/public/blog/navigator/archive/allview.html +1 -1
  150. data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/attributes.asciidoc +42 -28
  151. data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/highlghter_rouge.adoc +1 -0
  152. data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/lunr_search.adoc +1 -0
  153. data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/present_audio_video.adoc +18 -2
  154. data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/present_images.adoc +43 -50
  155. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +6 -11
  156. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +4 -11
  157. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +5 -12
  158. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +5 -10
  159. data/lib/starter_web/pages/public/tools/previewer/_includes/attributes.asciidoc +10 -9
  160. data/lib/starter_web/pages/public/tools/previewer/preview_bootstrap_theme.adoc +77 -75
  161. metadata +52 -46
  162. data/lib/starter_web/pages/public/manuals/integrations/gemini/_includes/attributes.asciidoc +0 -47
  163. data/lib/starter_web/pages/public/manuals/integrations/gemini/_includes/documents/preview_google_adsense.asciidoc +0 -448
  164. data/lib/starter_web/pages/public/manuals/integrations/gemini/_includes/documents/readme +0 -0
  165. data/lib/starter_web/pages/public/manuals/integrations/gemini/_includes/tables/readme +0 -0
  166. data/lib/starter_web/pages/public/manuals/integrations/gemini/gemini.adoc +0 -525
  167. data/lib/starter_web/pages/public/manuals/integrations/gemini/security.asccidoc +0 -274
  168. data/lib/starter_web/pages/public/manuals/integrations/gemini/security.hrml +0 -560
  169. /data/lib/starter_web/pages/public/{legal/learn → learn}/bookshelf/article_previewer/viewer_biography.adoc +0 -0
  170. /data/lib/starter_web/pages/public/{legal/learn → learn}/bookshelf/article_previewer/viewer_fantasy.adoc +0 -0
  171. /data/lib/starter_web/pages/public/{legal/learn → learn}/bookshelf/article_previewer/viewer_romance.adoc +0 -0
  172. /data/lib/starter_web/pages/public/{legal/learn → learn}/bookshelf/jekyll_collections.adoc +0 -0
  173. /data/lib/starter_web/pages/public/{legal/learn → learn}/bookshelf/viewer_all_books.adoc +0 -0
  174. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/100_gistblock.asciidoc +0 -0
  175. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_bottom_info.asciidoc +0 -0
  176. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_bottom_left_warning.asciidoc +0 -0
  177. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_bottom_right_danger.asciidoc +0 -0
  178. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_central_success.asciidoc +0 -0
  179. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_full_height_left_info.asciidoc +0 -0
  180. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_full_height_right_success.asciidoc +0 -0
  181. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +0 -0
  182. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_top_info.asciidoc +0 -0
  183. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_top_left_info.asciidoc +0 -0
  184. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/410_top_right_success.asciidoc +0 -0
  185. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/419_advanced_modals_demo.asciidoc +0 -0
  186. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +0 -0
  187. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/themes_bootstrap.asciidoc +0 -0
  188. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/_includes/documents/themes_rouge.asciidoc +0 -0
  189. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/asciidoc_extensions.adoc +0 -0
  190. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/bootstrap_themes.adoc +0 -0
  191. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/icon_fonts.adoc +0 -0
  192. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/modal_extentions.adoc +0 -0
  193. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/responsive_tables.adoc +0 -0
  194. /data/lib/starter_web/pages/public/{legal/learn → learn}/roundtrip/typography.adoc +0 -0
  195. /data/lib/starter_web/pages/public/{legal/learn → learn}/where_to_go.adoc +0 -0
@@ -27,8 +27,8 @@ regenerate: true
27
27
 
28
28
  {% comment %} Set global settings
29
29
  -------------------------------------------------------------------------------- {% endcomment %}
30
- {% assign environment = site.environment %}
31
- {% assign asset_path = "/assets/themes/j1" %}
30
+ {% assign environment = site.environment %}
31
+ {% assign asset_path = "/assets/themes/j1" %}
32
32
 
33
33
  {% comment %} Process YML config data
34
34
  ================================================================================ {% endcomment %}
@@ -87,56 +87,64 @@ regenerate: true
87
87
  /* eslint indent: "off" */
88
88
  // -----------------------------------------------------------------------------
89
89
  'use strict';
90
- j1.adapter.advertising = (function (j1, window) {
91
-
92
- {% comment %} Set global variables
93
- -------------------------------------------------------------------------------- {% endcomment %}
94
- var environment = '{{environment}}';
95
- var production = (environment.includes('prod') ? true : false);
96
- var development = (environment.includes('dev') ? true : false);
97
- var date = new Date();
98
- var timestamp_now = date.toISOString();
99
- var gasScript = document.createElement('script');
100
- var gasDiv = document.createElement('div');
101
- var gasIns = document.createElement('ins');
102
- var adInitializerScript = document.createElement('script');
103
- var advertisingProvider = 'Google Adsense';
104
- var state = 'not_started';
105
- var layout;
106
- var advertisingDefaults;
107
- var advertisingSettings;
108
- var advertisingOptions;
109
- var frontmatterOptions;
110
- var autoHideOnUnfilled;
111
- var addBorderOnUnfilled;
112
- var checkTrackingProtection;
113
- var showErrorPageOnBlocked;
114
- var adInitializerScriptText;
115
- var tracking_protection;
116
- var url;
117
- var baseUrl;
118
- var hostname;
119
- var cookie_names;
120
- var user_consent;
121
- var publisherID;
122
- var validpublisherID;
123
- var _this;
124
- var logger;
125
- var logText;
90
+ j1.adapter.advertising = ((j1, window) => {
91
+
92
+ {% comment %} Set global variables
93
+ ----------------------------------------------------------------------------- {% endcomment %}
94
+ var environment = '{{environment}}';
95
+ var production = (environment.includes('prod') ? true : false);
96
+ var development = (environment.includes('dev') ? true : false);
97
+ var date = new Date();
98
+ var timestamp_now = date.toISOString();
99
+ var gasScript = document.createElement('script');
100
+ var gasDiv = document.createElement('div');
101
+ var gasIns = document.createElement('ins');
102
+ var adInitializerScript = document.createElement('script');
103
+ var advertisingProvider = 'Google Adsense';
104
+ var state = 'not_started';
105
+ var layout;
106
+
107
+ var advertisingDefaults;
108
+ var advertisingSettings;
109
+ var advertisingOptions;
110
+ var frontmatterOptions;
111
+ var autoHideOnUnfilled;
112
+ var addBorderOnUnfilled;
113
+ var checkTrackingProtection;
114
+ var showErrorPageOnBlocked;
115
+ var adInitializerScriptText;
116
+ var tracking_protection;
117
+ var url;
118
+ var baseUrl;
119
+ var hostname;
120
+ var cookie_names;
121
+ var user_consent;
122
+ var publisherID;
123
+ var validpublisherID;
124
+
125
+ var _this;
126
+ var logger;
127
+ var logText;
128
+
129
+ // date|time
130
+ var startTime;
131
+ var endTime;
132
+ var startTimeModule;
133
+ var endTimeModule;
134
+ var timeSeconds;
126
135
 
127
136
  // ---------------------------------------------------------------------------
128
- // Main object
137
+ // main
129
138
  // ---------------------------------------------------------------------------
130
139
  return {
131
140
 
132
141
  // -------------------------------------------------------------------------
133
- // init()
134
142
  // adapter initializer
135
143
  // -------------------------------------------------------------------------
136
- init: function (options) {
144
+ init: (options) => {
137
145
 
138
146
  // -----------------------------------------------------------------------
139
- // Default module settings
147
+ // default module settings
140
148
  // -----------------------------------------------------------------------
141
149
  var settings = $.extend({
142
150
  module_name: 'j1.adapter.advertising',
@@ -144,14 +152,14 @@ var logText;
144
152
  }, options);
145
153
 
146
154
  // -----------------------------------------------------------------------
147
- // Global variable settings
155
+ // global variable settings
148
156
  // -----------------------------------------------------------------------
149
- logger = log4javascript.getLogger('j1.adapter.advertising');
150
- _this = j1.adapter.advertising;
151
- cookie_names = j1.getCookieNames();
152
- user_consent = j1.readCookie(cookie_names.user_consent);
153
- url = new liteURL(window.location.href);
154
- hostname = url.hostname;
157
+ logger = log4javascript.getLogger('j1.adapter.advertising');
158
+ _this = j1.adapter.advertising;
159
+ cookie_names = j1.getCookieNames();
160
+ user_consent = j1.readCookie(cookie_names.user_consent);
161
+ url = new liteURL(window.location.href);
162
+ hostname = url.hostname;
155
163
 
156
164
  // create settings object from frontmatter
157
165
  //
@@ -170,13 +178,16 @@ var logText;
170
178
  checkTrackingProtection = advertisingOptions.google.checkTrackingProtection;
171
179
  showErrorPageOnBlocked = advertisingOptions.google.showErrorPageOnBlocked;
172
180
 
173
- // run initialization on 'contentVisible'
174
- //
175
- var dependencies_met_page_ready = setInterval (function (options) {
176
- var contentState = $('#content').css("display");
177
- var contentVisible = (contentState == 'block') ? true: false;
181
+ // -----------------------------------------------------------------------
182
+ // module initializer
183
+ // -----------------------------------------------------------------------
184
+ var dependencies_met_page_ready = setInterval (() => {
185
+ var pageState = $('#content').css("display");
186
+ var pageVisible = (pageState === 'block') ? true: false;
187
+ var j1CoreFinished = (j1.getState() === 'finished') ? true : false;
178
188
 
179
- if (j1.getState() === 'finished' && contentVisible) {
189
+ if (j1CoreFinished && pageVisible) {
190
+ startTimeModule = Date.now();
180
191
 
181
192
  {% comment %} detect|load code if 'advertising' is 'enabled'
182
193
  ------------------------------------------------------------------------ {% endcomment %}
@@ -185,10 +196,9 @@ var logText;
185
196
  _this.ad_initializer();
186
197
 
187
198
  if (!validpublisherID) {
188
- if (development) {
189
- logger.warn('\n' + 'invalid publisher id: ' + publisherID);
190
- logger.info('\n' + 'module disabled' );
191
- }
199
+ logger.warn('\n' + 'invalid publisher id: ' + publisherID);
200
+ logger.info('\n' + 'module disabled' );
201
+
192
202
  clearInterval(dependencies_met_page_ready);
193
203
  return false;
194
204
  }
@@ -198,88 +208,62 @@ var logText;
198
208
  // [INFO ] [j1.adapter.advertising ] [ place provider: Google Adsense ]
199
209
 
200
210
  // initialize state flag
201
- //
202
211
  _this.setState('started');
203
- if (development) {
204
- logger.debug('\n' + 'state: ' + _this.getState());
205
- }
212
+
213
+ logger.debug('\n' + 'state: ' + _this.getState());
206
214
 
207
215
  if (user_consent.personalization) {
208
- if (development) {
209
- logger.info('\n' + 'adsense api is being initialized');
210
- }
216
+ logger.info('\n' + 'adsense api is being initialized');
211
217
 
212
218
  if (!validpublisherID) {
213
- if (development) {
214
- logger.debug('\n' + 'invalid publisherID detected for Google Adsense: ' + publisherID);
215
- logger.info('\n' + 'skip initialization for provider: ' + advertisingProvider);
216
- }
219
+ logger.debug('\n' + 'invalid publisherID detected for Google Adsense: ' + publisherID);
220
+ logger.info('\n' + 'skip initialization for provider: ' + advertisingProvider);
221
+
217
222
  return false;
218
223
  } else {
219
- if (development) {
220
- logger.info('\n' + 'use publisherID for Google Adsense: ' + publisherID);
221
- }
224
+ logger.info('\n' + 'use publisherID for Google Adsense: ' + publisherID);
222
225
  }
223
226
 
224
227
  // add Google Adsense API dynamically in head section loaded async
225
- //
226
- if (development) {
227
- logger.info('\n' + 'add Google AdsenseAPI in section: head');
228
- }
228
+ logger.info('\n' + 'add Google AdsenseAPI in section: head');
229
229
 
230
230
  gasScript.async = true;
231
231
  gasScript.id = 'gas-api';
232
232
  gasScript.src = '//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
233
233
  gasScript.setAttribute('data-ad-client', publisherID);
234
- document.head.appendChild(gasScript);
235
234
 
236
- if (development) {
237
- logger.info('\n' + 'adsense api initialized');
238
- }
235
+ document.head.appendChild(gasScript);
236
+ logger.info('\n' + 'adsense api initialized');
239
237
 
240
238
  // setup monitor for state changes on all ads configured
241
- //
242
- setTimeout(function () {
239
+ setTimeout(() => {
243
240
  var ads_found = (document.getElementsByClassName('adsbygoogle').length > 0) ? true : false;
244
241
  if (ads_found > 0) {
245
- if (development) {
246
- logger.info('\n' + 'setup Google Ad monitoring');
247
- }
242
+ logger.info('\n' + 'setup Google Ad monitoring');
248
243
  _this.ad_monitor();
249
244
  } else {
250
- if (development) {
251
- logger.warn('\n' + 'no initialized Google Ads found in page');
252
- }
245
+ logger.warn('\n' + 'no initialized Google Ads found in page');
253
246
  }
254
247
  }, 1000);
255
248
 
256
249
  // run protection check
257
- //
258
250
  if (checkTrackingProtection) {
259
- if (development) {
260
- logger.debug('\n' + 'run checks for tracking protection');
261
- }
251
+ logger.debug('\n' + 'run checks for tracking protection');
262
252
 
263
253
  _this.check_tracking_protection();
264
- var dependencies_met_tracking_check_ready = setInterval (function (options) {
254
+ var dependencies_met_tracking_check_ready = setInterval (() => {
265
255
  if (typeof tracking_protection !== 'undefined' ) {
266
256
  var browser_tracking_feature = navigator.DoNotTrack;
267
257
 
268
258
  if (!tracking_protection && !browser_tracking_feature) {
269
- if (development) {
270
- logText = '\n' + 'tracking protection: disabled';
271
- logger.info(logText);
272
- }
259
+ logText = '\n' + 'tracking protection: disabled';
260
+ logger.info(logText);
273
261
  } else {
274
- if (development) {
275
- logText = '\n' + 'tracking protection: enabled';
276
- logger.debug(logText);
277
- }
262
+ logText = '\n' + 'tracking protection: enabled';
263
+ logger.debug(logText);
278
264
 
279
265
  if (showErrorPageOnBlocked) {
280
- if (development) {
281
- logger.error('\n' + 'redirect to error page (blocked content): HTML-447');
282
- }
266
+ logger.error('\n' + 'redirect to error page (blocked content): HTML-447');
283
267
  // redirect to error page: blocked content
284
268
  window.location.href = '/447.html';
285
269
  }
@@ -287,22 +271,21 @@ var logText;
287
271
  }
288
272
 
289
273
  clearInterval(dependencies_met_tracking_check_ready);
290
- }, 10);
274
+ }, 10); // END dependencies_met_tracking_check_ready
291
275
  } else {
292
276
  // no protection check enabled
293
277
  _this.setState('finished');
278
+ logger.debug('\n' + 'state: ' + _this.getState());
279
+ logger.info('\n' + 'initializing module: finished');
294
280
 
295
- if (development) {
296
- logger.debug('\n' + 'state: ' + _this.getState());
297
- logger.info('\n' + 'module initialized successfully');
298
- }
281
+ endTimeModule = Date.now();
282
+ logger.info('\n' + 'module initializing time: ' + (endTimeModule-startTimeModule) + 'ms');
299
283
 
300
284
  clearInterval(dependencies_met_tracking_check_ready);
301
- }
285
+ } // END if checkTrackingProtection
302
286
 
303
287
  } else {
304
288
  // user consent on personalization "false"
305
- //
306
289
  if (production) {
307
290
  console.debug('cookies for personalization rejected');
308
291
  console.debug('initialization of module advertising skipped');
@@ -312,20 +295,13 @@ var logText;
312
295
  }
313
296
 
314
297
  // if consent is rejected, detect and remove Adsense cookies
315
- //
316
298
  var gasCookies = j1.findCookie('__g');
317
- gasCookies.forEach(function (item) {
299
+ gasCookies.forEach((item) => {
318
300
  // remove Google Ad cookies
319
- //
320
- if (hostname == 'localhost') {
321
- j1.removeCookie({ name: item, domain: false, secure: false });
322
- } else {
323
- j1.removeCookie({ name: item, domain: '.' + hostname, secure: false });
324
- }
301
+ j1.removeCookie({ name: item });
325
302
  });
326
303
 
327
304
  // manage tracking protection
328
- //
329
305
  if (checkTrackingProtection) {
330
306
  if (!user_consent.personalization) {
331
307
  if (development) {
@@ -343,7 +319,7 @@ var logText;
343
319
  }
344
320
  }
345
321
 
346
- } // END if user_consent.personalization
322
+ } // END if user_consent = personalization
347
323
 
348
324
  {% when "custom" %}
349
325
  // [INFO ] [j1.adapter.advertising ] [ place provider: Custom Provider ]
@@ -351,11 +327,11 @@ var logText;
351
327
  // [INFO ] [j1.adapter.advertising ] [ end processing ]
352
328
  {% else %}
353
329
  var ads_found = document.getElementsByClassName('adsbygoogle').length;
354
- if (development) {
355
- logger = log4javascript.getLogger('j1.adapter.advertising');
356
- logger.debug('\n' + 'found ads in page: #' + ads_found);
357
- logger.debug('\n' + 'no ads initialized, advertising disabled');
358
- }
330
+
331
+ logger = log4javascript.getLogger('j1.adapter.advertising');
332
+ logger.debug('\n' + 'found ads in page: #' + ads_found);
333
+ logger.debug('\n' + 'no ads initialized, advertising disabled');
334
+
359
335
  {% endif %} // END if 'advertising'
360
336
 
361
337
  clearInterval(dependencies_met_page_ready);
@@ -367,31 +343,32 @@ var logText;
367
343
  // ad_initializer()
368
344
  // initialze all ad units in a page (ins elements)
369
345
  // -------------------------------------------------------------------------
370
- ad_initializer: function () {
346
+ ad_initializer: () => {
371
347
 
372
- var dependencies_met_page_visible = setInterval (function (options) {
373
- var contentState = $('#content').css("display");
374
- var contentVisible = (contentState == 'block') ? true: false;
348
+ var dependencies_met_page_visible = setInterval (() => {
349
+ var pageState = $('#content').css("display");
350
+ var pageVisible = (pageState === 'block') ? true: false;
351
+ var j1CoreFinished = (j1.getState() === 'finished') ? true : false;
375
352
  var ads_found = (document.getElementsByClassName('adsbygoogle').length > 0) ? true : false;
376
353
  var ads_initialized = 0;
377
354
  var ad_containers;
378
355
 
379
- if (j1.getState() === 'finished' && contentVisible && ads_found) {
356
+ if (j1CoreFinished && pageVisible && ads_found) {
357
+
380
358
  if (!validpublisherID) {
381
359
  // skip setup processes
382
- //
383
360
  clearInterval(dependencies_met_page_visible);
361
+
384
362
  return false;
385
363
  }
386
364
 
387
365
  // create|loading adverting for containers enabled
388
- //
389
366
  ad_containers = advertisingOptions.google.ads;
390
- ad_containers.forEach(function (ad) {
367
+ ad_containers.forEach((ad) => {
391
368
  if (user_consent.personalization) {
392
369
  var currentDiv = document.getElementById(ad.id);
393
370
 
394
- if (currentDiv !== null && ad.enabled && ad.layout == layout) {
371
+ if (currentDiv !== null && ad.enabled && ad.layout === layout) {
395
372
  var ins = document.createElement('ins');
396
373
 
397
374
  currentDiv.appendChild(ins);
@@ -405,15 +382,15 @@ var logText;
405
382
  document.getElementById(insID).setAttribute('data-ad-slot', ad.slot);
406
383
  document.getElementById(insID).setAttribute('data-ad-format', ad.ad_format);
407
384
 
408
- if (ad.ad_layout == 'display') {
385
+ if (ad.ad_layout === 'display') {
409
386
  document.getElementById(insID).setAttribute('data-full-width-responsive', ad.ad_responsive);
410
387
  }
411
388
 
412
- // if (ad.ad_layout == 'in-article') {
389
+ // if (ad.ad_layout === 'in-article') {
413
390
  // document.getElementById(insID).setAttribute('data-ad-format', ad.ad_format);
414
391
  // }
415
392
 
416
- if (ad.ad_layout == 'multiplex') {
393
+ if (ad.ad_layout === 'multiplex') {
417
394
  document.getElementById(insID).setAttribute('data-matched-content-ui-typ', ad.ui_type);
418
395
  document.getElementById(insID).setAttribute('data-matched-content-columns-num', ad.ui_columns);
419
396
  document.getElementById(insID).setAttribute('data-matched-content-rows-num', ad.ui_rows);
@@ -421,25 +398,19 @@ var logText;
421
398
 
422
399
  ads_initialized ++;
423
400
  } else {
424
- if (ad.layout == layout) {
425
- if (development) {
426
- logger.warn('\n' + 'ad disabled on id ' + ad.id + ' for slot: ' + ad.slot);
427
- }
401
+ if (ad.layout === layout) {
402
+ logger.warn('\n' + 'ad disabled on id ' + ad.id + ' for slot: ' + ad.slot);
428
403
  }
429
404
  }
430
405
  } else {
431
- if (development) {
432
- logger.warn('\n' + 'skipped add settings on all ad containers');
433
- }
406
+ logger.warn('\n' + 'skipped add settings on all ad containers');
434
407
  } // END if user_consent.personalization
435
408
 
436
409
  });
437
410
  // END loading adverting containers
438
411
 
439
412
  if (ads_initialized > 0) {
440
- if (development) {
441
- logger.info('\n' + 'ads enabled found in page (total): ' + ads_initialized);
442
- }
413
+ logger.info('\n' + 'ads enabled found in page (total): ' + ads_initialized);
443
414
 
444
415
  var google_ads = document.getElementsByClassName('adsbygoogle');
445
416
  var counter = document.getElementsByClassName('adsbygoogle').length;
@@ -452,7 +423,7 @@ var logText;
452
423
  //
453
424
  counter--;
454
425
 
455
- [].forEach.call(google_ads, function() {
426
+ [].forEach.call(google_ads, () => {
456
427
  // skip last element in google_ads (adsbygoogle-noablate)
457
428
  if (counter > 0) {
458
429
  (adsbygoogle = window.adsbygoogle || []).push({});
@@ -460,17 +431,13 @@ var logText;
460
431
  counter --;
461
432
  });
462
433
  } else {
463
- if (development) {
464
- logger.warn('\n' + 'no ads found in page for layout: ' + layout);
465
- }
434
+ logger.warn('\n' + 'no ads found in page for layout: ' + layout);
466
435
  } // END if ads_initialized
467
436
 
468
437
  clearInterval(dependencies_met_page_visible);
469
438
  } // END contentVisible|ads_found
470
-
471
439
  }, 10); // END dependencies_met_page_visible
472
-
473
- }, // END ad_initializer
440
+ }, // END init
474
441
 
475
442
  // -------------------------------------------------------------------------
476
443
  // ad_monitor()
@@ -482,10 +449,10 @@ var logText;
482
449
  // NOTE: Skip ad containers with class 'adsbygoogle-noablate'
483
450
  //
484
451
  // -------------------------------------------------------------------------
485
- ad_monitor: function () {
452
+ ad_monitor: () => {
486
453
  $('.adsbygoogle').attrchange({
487
- trackValues: true,
488
- callback: function (event) {
454
+ trackValues: true,
455
+ callback: (event) => {
489
456
  var elm = event.target.dataset;
490
457
  var elm_classes = event.target.className;
491
458
  var validAdContainer = (elm_classes.includes('adsbygoogle-noablate')) ? false : true;
@@ -510,9 +477,7 @@ var logText;
510
477
  $('.adsbygoogle').hide();
511
478
  }
512
479
  } else if (event.newValue === 'filled') {
513
- if (development) {
514
- logger.info('\n' + 'detected ad on slot ' + elm.adSlot + ' in state: ' + event.newValue);
515
- }
480
+ logger.info('\n' + 'detected ad on slot ' + elm.adSlot + ' in state: ' + event.newValue);
516
481
  } else {
517
482
  var filled = (event.newValue.includes('display') ? true : false);
518
483
  var unfilled = (event.newValue.includes('dotted') ? true : false);
@@ -553,22 +518,20 @@ var logText;
553
518
  // See for more details:
554
519
  // https://stackoverflow.com/questions/33959324/how-to-detect-if-a-user-is-using-tracking-protection-in-firefox-42
555
520
  // -------------------------------------------------------------------------
556
- check_tracking_protection: function () {
521
+ check_tracking_protection: () => {
557
522
  var logger = log4javascript.getLogger('j1.adapter.advertising.monitor.tracking');
558
523
 
559
- if (development) {
560
- logText = '\n' + 'check for trackingprotection';
561
- logger.info(logText);
562
- }
524
+ logText = '\n' + 'check for trackingprotection';
525
+ logger.info(logText);
563
526
 
564
527
  function checkTrackingProtection() {
565
528
  if (!checkTrackingProtection.promise) {
566
- checkTrackingProtection.promise = new Promise(function(resolve, reject) {
529
+ checkTrackingProtection.promise = new Promise((resolve, reject) => {
567
530
 
568
- var time = Date.now();
569
- var img = new Image();
570
- img.onload = resolve;
571
- img.onerror = function() {
531
+ var time = Date.now();
532
+ var img = new Image();
533
+ img.onload = resolve;
534
+ img.onerror = () => {
572
535
  if ((Date.now() - time) < 50) {
573
536
  reject(new Error("Rejected."));
574
537
  } else {
@@ -580,9 +543,7 @@ var logText;
580
543
  tracking_protection = false;
581
544
  }).catch(e => {
582
545
  tracking_protection = true;
583
- if (development) {
584
- logger.debug('\n' + 'detection details: ' + e);
585
- }
546
+ logger.debug('\n' + 'detection details: ' + e);
586
547
  });
587
548
  }
588
549
  }
@@ -594,21 +555,21 @@ var logText;
594
555
  // messageHandler()
595
556
  // manage messages send from other J1 modules
596
557
  // -------------------------------------------------------------------------
597
- messageHandler: function (sender, message) {
558
+ messageHandler: (sender, message) => {
598
559
  var json_message = JSON.stringify(message, undefined, 2);
599
560
 
600
- if (development) {
601
- logText = '\n' + 'received message from ' + sender + ': ' + json_message;
602
- logger.debug(logText);
603
- }
561
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
562
+ logger.debug(logText);
604
563
 
605
564
  // -----------------------------------------------------------------------
606
565
  // Process commands|actions
607
566
  // -----------------------------------------------------------------------
608
567
  if (message.type === 'command' && message.action === 'module_initialized') {
568
+
609
569
  //
610
570
  // Place handling of command|action here
611
571
  //
572
+
612
573
  if (development) {
613
574
  logger.info('\n' + message.text);
614
575
  }
@@ -625,7 +586,7 @@ var logText;
625
586
  // setState()
626
587
  // Sets the current (processing) state of the module
627
588
  // -------------------------------------------------------------------------
628
- setState: function (stat) {
589
+ setState: (stat) => {
629
590
  _this.state = stat;
630
591
  }, // END setState
631
592
 
@@ -633,7 +594,7 @@ var logText;
633
594
  // getState()
634
595
  // Returns the current (processing) state of the module
635
596
  // -------------------------------------------------------------------------
636
- getState: function () {
597
+ getState: () => {
637
598
  return _this.state;
638
599
  } // END getState
639
600