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