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.
- 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 +143 -182
- data/assets/themes/j1/adapter/js/algolia.js +61 -54
- data/assets/themes/j1/adapter/js/analytics.js +68 -52
- 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 +44 -26
- data/assets/themes/j1/adapter/js/carousel.js +117 -92
- data/assets/themes/j1/adapter/js/chatbot.js +77 -35
- data/assets/themes/j1/adapter/js/clipboard.js +67 -49
- data/assets/themes/j1/adapter/js/comments.js +93 -70
- data/assets/themes/j1/adapter/js/cookieConsent.js +157 -159
- data/assets/themes/j1/adapter/js/customFunctions.js +52 -35
- data/assets/themes/j1/adapter/js/customModule.js +61 -50
- data/assets/themes/j1/adapter/js/docsearch.js +55 -34
- data/assets/themes/j1/adapter/js/dropdowns.js +66 -52
- data/assets/themes/j1/adapter/js/fab.js +124 -109
- data/assets/themes/j1/adapter/js/gallery.js +68 -49
- data/assets/themes/j1/adapter/js/gemini.js +961 -301
- data/assets/themes/j1/adapter/js/iconPicker.js +76 -54
- data/assets/themes/j1/adapter/js/iconPickerPage.js +279 -0
- data/assets/themes/j1/adapter/js/iframer.js +84 -63
- data/assets/themes/j1/adapter/js/j1.js +605 -542
- data/assets/themes/j1/adapter/js/lazyLoader.js +43 -24
- data/assets/themes/j1/adapter/js/lightbox.js +53 -52
- data/assets/themes/j1/adapter/js/logger.js +78 -66
- data/assets/themes/j1/adapter/js/lunr.js +684 -86
- data/assets/themes/j1/adapter/js/masonry.js +84 -68
- data/assets/themes/j1/adapter/js/masterslider.js +136 -137
- data/assets/themes/j1/adapter/js/mmenu.js +102 -66
- data/assets/themes/j1/adapter/js/navigator.js +291 -356
- data/assets/themes/j1/adapter/js/particles.js +62 -40
- data/assets/themes/j1/adapter/js/rangeSlider.js +66 -48
- data/assets/themes/j1/adapter/js/rouge.js +63 -44
- data/assets/themes/j1/adapter/js/rtable.js +56 -40
- 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 +99 -97
- data/assets/themes/j1/adapter/js/slimSelect.js +288 -0
- data/assets/themes/j1/adapter/js/speak2me.js +124 -128
- data/assets/themes/j1/adapter/js/themeToggler.js +118 -97
- data/assets/themes/j1/adapter/js/{themer.js → themes.js} +144 -113
- data/assets/themes/j1/adapter/js/toccer.js +88 -54
- data/assets/themes/j1/adapter/js/translator.js +74 -70
- data/assets/themes/j1/adapter/js/waves.js +75 -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 +27 -21
- 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/js-cookies/js/js.cookie.js +147 -0
- data/assets/themes/j1/modules/js-cookies/js/js.cookie.min.js +2 -0
- 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} +10 -10
- 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 +83 -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 +43 -50
- 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 +52 -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,64 @@ 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
|
-
|
107
|
-
var
|
108
|
-
var
|
109
|
-
var
|
110
|
-
var
|
111
|
-
var
|
112
|
-
var
|
113
|
-
var
|
114
|
-
var
|
115
|
-
var
|
116
|
-
var
|
117
|
-
var
|
118
|
-
var
|
119
|
-
var
|
120
|
-
var
|
121
|
-
var
|
122
|
-
var
|
123
|
-
var
|
124
|
-
|
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
|
+
|
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
|
-
//
|
137
|
+
// main
|
129
138
|
// ---------------------------------------------------------------------------
|
130
139
|
return {
|
131
140
|
|
132
141
|
// -------------------------------------------------------------------------
|
133
|
-
// init()
|
134
142
|
// adapter initializer
|
135
143
|
// -------------------------------------------------------------------------
|
136
|
-
init:
|
144
|
+
init: (options) => {
|
137
145
|
|
138
146
|
// -----------------------------------------------------------------------
|
139
|
-
//
|
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
|
-
//
|
155
|
+
// global variable settings
|
148
156
|
// -----------------------------------------------------------------------
|
149
|
-
logger
|
150
|
-
_this
|
151
|
-
cookie_names
|
152
|
-
user_consent
|
153
|
-
url
|
154
|
-
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
|
-
//
|
174
|
-
//
|
175
|
-
|
176
|
-
|
177
|
-
var
|
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 (
|
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
|
-
|
189
|
-
|
190
|
-
|
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
|
-
|
204
|
-
|
205
|
-
}
|
212
|
+
|
213
|
+
logger.debug('\n' + 'state: ' + _this.getState());
|
206
214
|
|
207
215
|
if (user_consent.personalization) {
|
208
|
-
|
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
|
-
|
214
|
-
|
215
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
242
|
-
setTimeout(function () {
|
239
|
+
setTimeout(() => {
|
243
240
|
var ads_found = (document.getElementsByClassName('adsbygoogle').length > 0) ? true : false;
|
244
241
|
if (ads_found > 0) {
|
245
|
-
|
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
|
-
|
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
|
-
|
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 (
|
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
|
-
|
270
|
-
|
271
|
-
logger.info(logText);
|
272
|
-
}
|
259
|
+
logText = '\n' + 'tracking protection: disabled';
|
260
|
+
logger.info(logText);
|
273
261
|
} else {
|
274
|
-
|
275
|
-
|
276
|
-
logger.debug(logText);
|
277
|
-
}
|
262
|
+
logText = '\n' + 'tracking protection: enabled';
|
263
|
+
logger.debug(logText);
|
278
264
|
|
279
265
|
if (showErrorPageOnBlocked) {
|
280
|
-
|
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
|
-
|
296
|
-
|
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(
|
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
|
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
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
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:
|
346
|
+
ad_initializer: () => {
|
371
347
|
|
372
|
-
var dependencies_met_page_visible = setInterval (
|
373
|
-
var
|
374
|
-
var
|
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 (
|
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(
|
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
|
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
|
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
|
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
|
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
|
425
|
-
|
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
|
-
|
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
|
-
|
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,
|
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
|
-
|
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:
|
452
|
+
ad_monitor: () => {
|
486
453
|
$('.adsbygoogle').attrchange({
|
487
|
-
trackValues:
|
488
|
-
callback:
|
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
|
-
|
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:
|
521
|
+
check_tracking_protection: () => {
|
557
522
|
var logger = log4javascript.getLogger('j1.adapter.advertising.monitor.tracking');
|
558
523
|
|
559
|
-
|
560
|
-
|
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(
|
529
|
+
checkTrackingProtection.promise = new Promise((resolve, reject) => {
|
567
530
|
|
568
|
-
var time
|
569
|
-
var img
|
570
|
-
img.onload
|
571
|
-
img.onerror =
|
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
|
-
|
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:
|
558
|
+
messageHandler: (sender, message) => {
|
598
559
|
var json_message = JSON.stringify(message, undefined, 2);
|
599
560
|
|
600
|
-
|
601
|
-
|
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:
|
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:
|
597
|
+
getState: () => {
|
637
598
|
return _this.state;
|
638
599
|
} // END getState
|
639
600
|
|