j1-template 2022.0.12 → 2022.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/assets/themes/j1/adapter/js/advertising.js +61 -32
  3. data/assets/themes/j1/adapter/js/algolia.js +9 -9
  4. data/assets/themes/j1/adapter/js/analytics.js +46 -24
  5. data/assets/themes/j1/adapter/js/asciidoctor.js +9 -9
  6. data/assets/themes/j1/adapter/js/attic.js +9 -1
  7. data/assets/themes/j1/adapter/js/bmd.js +9 -10
  8. data/assets/themes/j1/adapter/js/carousel.js +9 -9
  9. data/assets/themes/j1/adapter/js/clipboard.js +8 -8
  10. data/assets/themes/j1/adapter/js/comments.js +31 -10
  11. data/assets/themes/j1/adapter/js/cookieConsent.js +70 -78
  12. data/assets/themes/j1/adapter/js/fab.js +10 -10
  13. data/assets/themes/j1/adapter/js/framer.js +59 -58
  14. data/assets/themes/j1/adapter/js/j1.js +139 -92
  15. data/assets/themes/j1/adapter/js/justifiedGallery.js +11 -10
  16. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +9 -9
  17. data/assets/themes/j1/adapter/js/lightbox.js +11 -4
  18. data/assets/themes/j1/adapter/js/logger.js +10 -3
  19. data/assets/themes/j1/adapter/js/mmenu.js +9 -9
  20. data/assets/themes/j1/adapter/js/navigator.js +9 -9
  21. data/assets/themes/j1/adapter/js/quicksearch.js +9 -9
  22. data/assets/themes/j1/adapter/js/rouge.js +9 -9
  23. data/assets/themes/j1/adapter/js/rtable.js +9 -9
  24. data/assets/themes/j1/adapter/js/rtextResizer.js +9 -9
  25. data/assets/themes/j1/adapter/js/scroller.js +12 -7
  26. data/assets/themes/j1/adapter/js/themer.js +11 -2
  27. data/assets/themes/j1/adapter/js/toccer.js +9 -9
  28. data/assets/themes/j1/adapter/js/translator.js +13 -16
  29. data/assets/themes/j1/modules/advertising/js/google/adInitializer.js +14 -4
  30. data/lib/j1/version.rb +1 -1
  31. data/lib/starter_web/Gemfile +1 -1
  32. data/lib/starter_web/_config.yml +1 -1
  33. data/lib/starter_web/_data/layouts/home.ads.yml +262 -0
  34. data/lib/starter_web/_data/layouts/home.no-ads.yml +262 -0
  35. data/lib/starter_web/_data/layouts/home.yml +1 -1
  36. data/lib/starter_web/_data/modules/advertising.yml +1 -2
  37. data/lib/starter_web/_data/modules/analytics.yml +1 -1
  38. data/lib/starter_web/_data/modules/cookies.yml +0 -2
  39. data/lib/starter_web/_data/modules/defaults/advertising.yml +0 -1
  40. data/lib/starter_web/_data/modules/defaults/comments.yml +4 -4
  41. data/lib/starter_web/_data/modules/defaults/cookies.yml +104 -36
  42. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  43. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  44. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +1 -1
  45. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +1 -1
  46. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.ads.asciidoc +1 -1
  47. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.comments.asciidoc +1 -1
  48. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +1 -1
  49. data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-03-about-j1.adoc +1 -1
  50. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +1 -1
  51. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +1 -1
  52. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +1 -1
  53. data/lib/starter_web/index.html +0 -3
  54. data/lib/starter_web/package.json +1 -1
  55. data/lib/starter_web/pages/public/manuals/dropdown-help.adoc +23 -2
  56. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +100 -166
  57. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  58. data/lib/starter_web/utilsrv/package.json +1 -1
  59. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c037151437cd15323621e862ab96516d0949d4de2d6126a7fd7b2b1ce61ea9f
4
- data.tar.gz: 4d70c7d408321ada5b32579b811c42c2758fec708878f6d839174239632889f8
3
+ metadata.gz: 4f1cafe13f11508c2bba1a30585af76cd2cf2ed917c746dfcdf12f646792b981
4
+ data.tar.gz: 06c239b5297206fde2f28b3f21046712a2f7beca6c8e8111583e2d50339aee0c
5
5
  SHA512:
6
- metadata.gz: 8262cafb8ec127d6ec93d2d39f8ec0d5826f6b3dca61314472af7b88506304f5c54024bee15ccc4a782d7baaeae0a0e39de3e9253b0cb6869d3618e63ea70d67
7
- data.tar.gz: 2da79d073c80ab3a76a8787b443e2d08b6a4bb3d8ef9ff119efb78ac3659b4a27acecab3925bc5f1527f4f2f6c2134f2524174010146c3cf5a28808fd86fa75d
6
+ metadata.gz: 3ece2178ed2e520a8d842411b9000ba5b95f3fe8f2c57aa97b0c568eddde3f5df6ab6533cead28d1ecb4ad560d11d2a5808ce8c6f4e5c1d6caf391811ea18b87
7
+ data.tar.gz: 3e5b29d8ee062cfc81dacccd6f74db3180878fbe3d22f41060256f4275b66c5dc640a500a8a2128663591fb5aed72fa3a1ab2b86c9ebec361518bc6649a78784
@@ -89,6 +89,8 @@ j1.adapter.advertising = (function (j1, window) {
89
89
  {% comment %} Set global variables
90
90
  -------------------------------------------------------------------------------- {% endcomment %}
91
91
  var environment = '{{environment}}';
92
+ var date = new Date();
93
+ var timestamp_now = date.toISOString();
92
94
  var gadScript = document.createElement('script');
93
95
  var adInitializerScript = document.createElement('script');
94
96
  var autoHideOnUnfilled = {{advertising_options.google.autoHideOnUnfilled}};
@@ -102,14 +104,18 @@ var baseUrl;
102
104
  var hostname;
103
105
  var cookie_names;
104
106
  var user_consent;
105
- var domain;
106
- var domainAttribute;
107
- var cookie_option_domain;
108
- var cookie_domain;
107
+ var advertisingProvider;
108
+ var providerID;
109
+ var validProviderID;
109
110
  var _this;
110
111
  var logger;
111
112
  var logText;
112
113
 
114
+ // var domain;
115
+ // var domainAttribute;
116
+ // var cookie_option_domain;
117
+ // var cookie_domain;
118
+
113
119
  // ---------------------------------------------------------------------------
114
120
  // Main object
115
121
  // ---------------------------------------------------------------------------
@@ -125,38 +131,57 @@ var logText;
125
131
  // [INFO ] [j1.adapter.advertising ] [ detected advertising provider (j1_config): {{advertising_provider}}} ]
126
132
  // [INFO ] [j1.adapter.advertising ] [ start processing load region head, layout: {{page.layout}} ]
127
133
 
134
+ // -----------------------------------------------------------------------
135
+ // Default module settings
136
+ // -----------------------------------------------------------------------
137
+ var settings = $.extend({
138
+ module_name: 'j1.adapter.advertising',
139
+ generated: '{{site.time}}'
140
+ }, options);
141
+
142
+ // -----------------------------------------------------------------------
143
+ // Global variable settings
144
+ // -----------------------------------------------------------------------
128
145
  cookie_names = j1.getCookieNames();
129
146
  user_consent = j1.readCookie(cookie_names.user_consent);
130
147
  url = new liteURL(window.location.href);
131
- baseUrl = url.origin;
132
148
  hostname = url.hostname;
133
- domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
134
- cookie_option_domain = '{{cookie_options.domain}}';
135
-
136
- // set domain used by cookies
137
- if (cookie_option_domain == 'auto') {
138
- domainAttribute = domain ;
139
- } else {
140
- domainAttribute = hostname;
141
- }
149
+
150
+ // domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
151
+ // cookie_option_domain = '{{cookie_options.domain}}';
152
+
153
+ // // set domain used by cookies
154
+ // if (cookie_option_domain == 'auto') {
155
+ // domainAttribute = domain ;
156
+ // } else {
157
+ // domainAttribute = hostname;
158
+ // }
142
159
 
143
160
  {% case advertising_provider %}
144
161
  {% when "google" %}
145
162
  // [INFO ] [j1.adapter.advertising ] [ place provider: Google Adsense ]
163
+
146
164
  _this = j1.adapter.advertising;
147
165
  logger = log4javascript.getLogger('j1.adapter.advertising.google');
166
+
148
167
  // initialize state flag
149
168
  _this.setState('started');
150
169
  logger.info('\n' + 'state: ' + _this.getState());
151
170
  logger.info('\n' + 'module is being initialized');
152
- // default module settings
153
- var settings = $.extend({
154
- module_name: 'j1.adapter.advertising',
155
- generated: '2021-12-18 18:55:38 +0000'
156
- }, options);
157
171
 
158
172
  var dependencies_met_page_ready = setInterval(function() {
159
173
  if (j1.getState() == 'finished') {
174
+
175
+ providerID = '{{advertising_options.google.publisherID}}';
176
+ advertisingProvider = 'Google Adsense';
177
+ validProviderID = (providerID.includes('your')) ? false : true;
178
+ if (!validProviderID) {
179
+ logger.warn('\n' + 'invalid publisherID detected for Google Adsense: ' + providerID);
180
+ logger.info('\n' + 'skip initialization for provider: ' + advertisingProvider);
181
+ clearInterval(dependencies_met_page_ready);
182
+ return false;
183
+ }
184
+
160
185
  if (user_consent.personalization) {
161
186
  // place all ads configured for the page
162
187
  // NOTE: currently NOT implemented/used
@@ -217,22 +242,26 @@ var logText;
217
242
  }
218
243
  clearInterval(dependencies_met_page_ready);
219
244
  } else {
220
- var gaCookies = j1.findCookie('_ga');
245
+ // manage GAD cookies if no consent is given|rejected
246
+ // -----------------------------------------------------------------
247
+ var gasCookies = j1.findCookie('__ga');
221
248
  logger.warn('\n' + 'consent on cookies disabled for personalization');
222
249
  logger.warn('\n' + 'initialization of module advertising skipped');
223
250
 
224
- // jadams, 2021-12-19: remove cookies on invalid GAD config
225
- // or left cookies from previous session
226
- // -----------------------------------------------------------------
227
- j1.removeCookie({ name: '__gads' });
228
-
229
- // jadams, 2021-12-19: delete cookies in loop doesn't work
230
- // gaCookies.forEach(function (item) {
231
- // logger.warn('\n' + 'delete GAD cookie: ' + item);
232
- // // j1.removeCookie({ name: item, domain: domainAttribute });
233
- // // j1.removeCookie({ name: item });
234
- // });
251
+ // remove cookies on invalid GAS config or left from a previous
252
+ // session/page view if they exists
253
+ // ---------------------------------------------------------------------
254
+ gasCookies.forEach(function (item) {
255
+ // Remove cookies from Google Ads
256
+ if (hostname == 'localhost') {
257
+ j1.removeCookie({ name: item, domain: false, secure: false });
258
+ } else {
259
+ j1.removeCookie({ name: item, domain: '.' + hostname, secure: false });
260
+ }
261
+ });
235
262
 
263
+ // manage tracking protection
264
+ // -----------------------------------------------------------------
236
265
  if (checkTrackingProtection) {
237
266
  if (!user_consent.personalization) {
238
267
  logText = '\n' + 'consent on cookies disabled for personalization';
@@ -270,7 +299,7 @@ var logText;
270
299
 
271
300
  // -------------------------------------------------------------------------
272
301
  // monitor_ads()
273
- // monitor for state changes on the ad
302
+ // monitor for state changes on the ad placed in pages (if any)
274
303
  // -------------------------------------------------------------------------
275
304
  monitor_ads: function () {
276
305
 
@@ -98,15 +98,6 @@ j1.adapter.algolia = (function (j1, window) {
98
98
  // -------------------------------------------------------------------------
99
99
  init: function (options) {
100
100
 
101
- // -----------------------------------------------------------------------
102
- // globals
103
- // -----------------------------------------------------------------------
104
- _this = j1.adapter.algolia;
105
- logger = log4javascript.getLogger('j1.adapter.algolia');
106
-
107
- // initialize state flag
108
- _this.state = 'pending';
109
-
110
101
  // -----------------------------------------------------------------------
111
102
  // Default module settings
112
103
  // -----------------------------------------------------------------------
@@ -115,6 +106,15 @@ j1.adapter.algolia = (function (j1, window) {
115
106
  generated: '{{site.time}}'
116
107
  }, options);
117
108
 
109
+ // -----------------------------------------------------------------------
110
+ // Global variable settings
111
+ // -----------------------------------------------------------------------
112
+ _this = j1.adapter.algolia;
113
+ logger = log4javascript.getLogger('j1.adapter.algolia');
114
+
115
+ // initialize state flag
116
+ _this.state = 'pending';
117
+
118
118
  _this.setState('started');
119
119
  logger.info('\n' + 'state: ' + _this.getState());
120
120
  logger.info('\n' + 'module is being initialized');
@@ -85,12 +85,17 @@ j1.adapter.analytics = (function (j1, window) {
85
85
 
86
86
  {% comment %} Set global variables
87
87
  -------------------------------------------------------------------------------- {% endcomment %}
88
- var environment = '{{environment}}';
89
- var gaScript = document.createElement('script');
90
- var trackingID = '{{analytics_options.google.trackingID}}';
91
- var optInOut = {{analytics_options.google.optInOut}};
92
- var anonymizeIP = {{analytics_options.google.anonymizeIP}};
93
- var cookie_names = j1.getCookieNames();
88
+ var url = new liteURL(window.location.href);
89
+ var hostname = url.hostname;
90
+ var environment = '{{environment}}';
91
+ var gaScript = document.createElement('script');
92
+ var providerID = '{{analytics_options.google.trackingID}}';
93
+ var validProviderID = (providerID.includes('your')) ? false : true;
94
+ var optInOut = {{analytics_options.google.optInOut}};
95
+ var anonymizeIP = {{analytics_options.google.anonymizeIP}};
96
+ var cookie_names = j1.getCookieNames();
97
+ var date = new Date();
98
+ var timestamp_now = date.toISOString();
94
99
  var gaCookies;
95
100
  var user_consent;
96
101
  var gaExists;
@@ -116,24 +121,37 @@ var logText;
116
121
  {% case analytics_provider %}
117
122
  {% when "google" %}
118
123
  // [INFO ] [j1.adapter.analytics ] [ place provider: Google Adsense ]
124
+
125
+ // -----------------------------------------------------------------------
126
+ // Default module settings
127
+ // -----------------------------------------------------------------------
128
+ var settings = $.extend({
129
+ module_name: 'j1.adapter.analytics',
130
+ generated: '{{site.time}}'
131
+ }, options);
132
+
133
+ // -----------------------------------------------------------------------
134
+ // Global variable settings
135
+ // -----------------------------------------------------------------------
119
136
  _this = j1.adapter.analytics;
120
137
  logger = log4javascript.getLogger('j1.adapter.analytics.google');
138
+
121
139
  // initialize state flag
122
140
  _this.setState('started');
123
141
  logger.info('\n' + 'state: ' + _this.getState());
124
142
  logger.info('\n' + 'module is being initialized');
125
- // default module settings
126
- var settings = $.extend({
127
- module_name: 'j1.adapter.analytics',
128
- generated: '2021-12-18 18:55:38 +0000'
129
- }, options);
130
143
 
131
- // remove all ga cookies left from a previous session/page view
132
- // -----------------------------------------------------------------------
144
+ // remove cookies on invalid GA config or left from a previous
145
+ // session/page view if they exists
146
+ // ---------------------------------------------------------------------
133
147
  gaCookies = j1.findCookie('_ga');
134
148
  gaCookies.forEach(function (item) {
135
- logger.warn('\n' + 'delete GA cookie: ' + item);
136
- j1.removeCookie({ name: item });
149
+ logger.warn('\n' + 'delete cookie created by Google Analytics: ' + item);
150
+ if (hostname == 'localhost') {
151
+ j1.removeCookie({ name: item, domain: false, secure: false });
152
+ } else {
153
+ j1.removeCookie({ name: item, domain: '.' + hostname, secure: false });
154
+ }
137
155
  });
138
156
 
139
157
  var dependencies_met_page_ready = setInterval(function() {
@@ -143,23 +161,27 @@ var logText;
143
161
  if (!gaExists) {
144
162
  // add ga api dynamically in the head section
145
163
  // -----------------------------------------------------------------
146
- logger.info('\n' + 'add ga api dynamically in section: head');
164
+ logger.info('\n' + 'Google Analytics API added in section: head');
147
165
  gaScript.async = true;
148
166
  gaScript.id = 'google-tag-manager';
149
- gaScript.src = '//www.googletagmanager.com/gtag/js?id={{analytics_options.google.trackingID}}';
167
+ gaScript.src = '//www.googletagmanager.com/gtag/js?id=' + providerID;
150
168
  document.head.appendChild(gaScript);
151
169
  }
152
170
 
153
171
  user_consent = j1.readCookie(cookie_names.user_consent);
154
172
  if (user_consent.analysis) {
155
- logger.info('\n' + 'user consent on analytics: ' + user_consent.analysis);
156
- logger.info('\n' + 'enable: GA');
157
- GTagOptIn.register(trackingID);
158
- GTagOptIn.optIn();
173
+ if (validProviderID) {
174
+ logger.info('\n' + 'user consent on analytics: ' + user_consent.analysis);
175
+ logger.info('\n' + 'enable Google Analytics on ID: ' + providerID);
176
+ GTagOptIn.register(providerID);
177
+ GTagOptIn.optIn();
178
+ } else {
179
+ logger.warn('\n' + 'invalid trackig id detected for Google Analytics: ' + providerID);
180
+ }
159
181
  } else {
160
182
  logger.info('\n' + 'user consent on analytics: ' + user_consent.analysis);
161
- logger.warn('\n' + 'disable: GA');
162
- GTagOptIn.register(trackingID);
183
+ logger.warn('\n' + 'disable Google Analytics on ID: ' + providerID);
184
+ GTagOptIn.register(providerID);
163
185
  GTagOptIn.optOut();
164
186
  }
165
187
  clearInterval(dependencies_met_page_ready);
@@ -174,7 +196,7 @@ var logText;
174
196
  var dependencies_met_page_ready = setInterval(function() {
175
197
  if (j1.getState() == 'finished') {
176
198
  logger = log4javascript.getLogger('j1.adapter.analytics.google');
177
- logger.info('\n' + 'ga: disabled');
199
+ logger.info('\n' + 'Google Analytics: disabled');
178
200
  clearInterval(dependencies_met_page_ready);
179
201
  }
180
202
  }, 25);
@@ -69,7 +69,15 @@ j1.adapter.asciidoctor = (function (j1, window) {
69
69
  init: function (options) {
70
70
 
71
71
  // -----------------------------------------------------------------------
72
- // globals
72
+ // Default module settings
73
+ // -----------------------------------------------------------------------
74
+ var settings = $.extend({
75
+ module_name: 'j1.adapter.rtable',
76
+ generated: '{{site.time}}'
77
+ }, options);
78
+
79
+ // -----------------------------------------------------------------------
80
+ // Global variable settings
73
81
  // -----------------------------------------------------------------------
74
82
  _this = j1.adapter.asciidoctor;
75
83
  logger = log4javascript.getLogger('j1.adapter.asciidoctor');
@@ -79,14 +87,6 @@ j1.adapter.asciidoctor = (function (j1, window) {
79
87
  logger.info('\n' + 'state: ' + _this.getState());
80
88
  logger.info('\n' + 'module is being initialized');
81
89
 
82
- // -----------------------------------------------------------------------
83
- // Default module settings
84
- // -----------------------------------------------------------------------
85
- var settings = $.extend({
86
- module_name: 'j1.adapter.rtable',
87
- generated: '{{site.time}}'
88
- }, options);
89
-
90
90
  // -----------------------------------------------------------------------
91
91
  // asciidoctor initializer
92
92
  // -----------------------------------------------------------------------
@@ -102,7 +102,15 @@ j1.adapter.attic = (function (j1, window) {
102
102
  init: function (options) {
103
103
 
104
104
  // -----------------------------------------------------------------------
105
- // globals
105
+ // Default module settings
106
+ // -----------------------------------------------------------------------
107
+ var settings = $.extend({
108
+ module_name: 'j1.adapter.attic',
109
+ generated: '{{site.time}}'
110
+ }, options);
111
+
112
+ // -----------------------------------------------------------------------
113
+ // Global variable settings
106
114
  // -----------------------------------------------------------------------
107
115
  _this = j1.adapter.attic;
108
116
  logger = log4javascript.getLogger('j1.adapter.attic');
@@ -69,7 +69,15 @@ j1.adapter.bmd = (function (j1, window) {
69
69
  init: function (options) {
70
70
 
71
71
  // -----------------------------------------------------------------------
72
- // globals
72
+ // Default module settings
73
+ // -----------------------------------------------------------------------
74
+ var settings = $.extend({
75
+ module_name: 'j1.adapter.bmd',
76
+ generated: '{{site.time}}'
77
+ }, options);
78
+
79
+ // -----------------------------------------------------------------------
80
+ // Global variable settings
73
81
  // -----------------------------------------------------------------------
74
82
  _this = j1.adapter.bmd;
75
83
  logger = log4javascript.getLogger('j1.adapter.bmd');
@@ -78,15 +86,6 @@ j1.adapter.bmd = (function (j1, window) {
78
86
  _this.setState('started');
79
87
  logger.info('\n' + 'state: ' + _this.getState());
80
88
  logger.info('\n' + 'module is being initialized');
81
-
82
- // -----------------------------------------------------------------------
83
- // Default module settings
84
- // -----------------------------------------------------------------------
85
- var settings = $.extend({
86
- module_name: 'j1.adapter.bmd',
87
- generated: '{{site.time}}'
88
- }, options);
89
-
90
89
  // -----------------------------------------------------------------------
91
90
  // BMD initializer
92
91
  // -----------------------------------------------------------------------
@@ -99,15 +99,6 @@ j1.adapter.carousel = (function (j1, window) {
99
99
  // -------------------------------------------------------------------------
100
100
  init: function (options) {
101
101
 
102
- // -----------------------------------------------------------------------
103
- // globals
104
- // -----------------------------------------------------------------------
105
- _this = j1.adapter.carousel;
106
- logger = log4javascript.getLogger('j1.adapter.carousel');
107
-
108
- // initialize state flag
109
- _this.state = 'pending';
110
-
111
102
  // -----------------------------------------------------------------------
112
103
  // Default module settings
113
104
  // -----------------------------------------------------------------------
@@ -116,6 +107,15 @@ j1.adapter.carousel = (function (j1, window) {
116
107
  generated: '{{site.time}}'
117
108
  }, options);
118
109
 
110
+ // -----------------------------------------------------------------------
111
+ // Global variable settings
112
+ // -----------------------------------------------------------------------
113
+ _this = j1.adapter.carousel;
114
+ logger = log4javascript.getLogger('j1.adapter.carousel');
115
+
116
+ // initialize state flag
117
+ _this.state = 'pending';
118
+
119
119
  {% comment %} Load module config from yml data
120
120
  -------------------------------------------------------------------------- {% endcomment %}
121
121
  // Load module DEFAULTS|CONFIG
@@ -89,20 +89,20 @@ j1.adapter.clipboard = (function (j1, window) {
89
89
  init: function (options) {
90
90
 
91
91
  // -----------------------------------------------------------------------
92
- // globals
93
- // -----------------------------------------------------------------------
94
- _this = j1.adapter.clipboard;
95
- language = '{{site.language}}';
96
- logger = log4javascript.getLogger('j1.adapter.clipboard');
97
-
98
- // -----------------------------------------------------------------------
99
- // defaults
92
+ // Default module settings
100
93
  // -----------------------------------------------------------------------
101
94
  var settings = $.extend({
102
95
  module_name: 'j1.adapter.clipboard',
103
96
  generated: '{{site.time}}'
104
97
  }, options);
105
98
 
99
+ // -----------------------------------------------------------------------
100
+ // Global variable settings
101
+ // -----------------------------------------------------------------------
102
+ _this = j1.adapter.clipboard;
103
+ language = '{{site.language}}';
104
+ logger = log4javascript.getLogger('j1.adapter.clipboard');
105
+
106
106
  // initialize state flag
107
107
  _this.state = 'started';
108
108
  logText = '\n' + 'initialization: started';
@@ -124,7 +124,8 @@ var comments_provider = '{{comments_provider}}';
124
124
  var dqApiScript = document.createElement('script');
125
125
  var hvApiScript = document.createElement('script');
126
126
  var hvCallbackScript = document.createElement('script');
127
- var siteID = '{{site_id}}';
127
+ var providerID = '{{site_id}}';
128
+ var validProviderID = (providerID.includes('your')) ? false : true;
128
129
  var comments_headline = '{{comments_headline}}';
129
130
  var cookie_names = j1.getCookieNames();
130
131
  var user_consent;
@@ -147,13 +148,18 @@ var logText;
147
148
  // [INFO ] [j1.adapter.comments ] [ detected comments provider (j1_config): {{comments_provider}}} ]
148
149
  // [INFO ] [j1.adapter.comments ] [ start processing load region head, layout: {{page.layout}} ]
149
150
 
150
- // default module settings
151
- // ----------------------------------------------------------------------
151
+ // -----------------------------------------------------------------------
152
+ // Default module settings
153
+ // -----------------------------------------------------------------------
152
154
  var settings = $.extend({
153
155
  module_name: 'j1.adapter.comments',
154
- generated: '2021-12-18 18:55:38 +0000'
156
+ generated: '{{site.time}}'
155
157
  }, options);
156
158
 
159
+ // -----------------------------------------------------------------------
160
+ // Global variable settings
161
+ // -----------------------------------------------------------------------
162
+
157
163
  {% if site_id %}
158
164
 
159
165
  _this = j1.adapter.comments;
@@ -162,9 +168,17 @@ var logText;
162
168
  {% case comments_provider %}
163
169
  {% when "hyvor" %}
164
170
  // [INFO ] [j1.adapter.comments ] [ place provider: Hyvor Talk ]
171
+
165
172
  var dependencies_met_page_ready = setInterval(function() {
166
173
  if (j1.getState() == 'finished') {
167
174
 
175
+ if (!validProviderID) {
176
+ logger.warn('\n' + 'invalid site id detected for Hyvor Talk: ' + providerID);
177
+ logger.info('\n' + 'skip initialization for provider: ' + comments_provider);
178
+ clearInterval(dependencies_met_page_ready);
179
+ return false;
180
+ }
181
+
168
182
  // initialize state flag, issue init message
169
183
  // -------------------------------------------------------------------
170
184
  _this.setState('started');
@@ -179,7 +193,7 @@ var logText;
179
193
  // -----------------------------------------------------------------
180
194
  $('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
181
195
  logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
182
- logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
196
+ logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on siteID: ' + providerID);
183
197
 
184
198
  // add Hyvor Talk Web API
185
199
  // NOTE: don't change the script id
@@ -193,7 +207,7 @@ var logText;
193
207
  // -----------------------------------------------------------------
194
208
  hvCallbackScript.id = 'hyvor-callback';
195
209
  hvCallbackScript.text = '\n';
196
- hvCallbackScript.text += 'var HYVOR_TALK_WEBSITE = ' + siteID + '\n';
210
+ hvCallbackScript.text += 'var HYVOR_TALK_WEBSITE = ' + providerID + '\n';
197
211
  hvCallbackScript.text += 'var HYVOR_TALK_CONFIG = {' + '\n';
198
212
  hvCallbackScript.text += ' url: false,' + '\n';
199
213
  hvCallbackScript.text += ' id: false' + '\n';
@@ -217,7 +231,7 @@ var logText;
217
231
  // disable Hyvor Talk
218
232
  // -----------------------------------------------------------------
219
233
  logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
220
- logger.warn('\n' + 'disable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
234
+ logger.warn('\n' + 'disable Hyvor Talk on site id: ' + providerID);
221
235
 
222
236
  // remove Hyvor Talk resources
223
237
  // -----------------------------------------------------------------
@@ -235,6 +249,13 @@ var logText;
235
249
  var dependencies_met_page_ready = setInterval(function() {
236
250
  if (j1.getState() == 'finished') {
237
251
 
252
+ if (!validProviderID) {
253
+ logger.warn('\n' + 'invalid short name detected for Disqus: ' + providerID);
254
+ logger.info('\n' + 'skip initialization for provider: ' + comments_provider);
255
+ clearInterval(dependencies_met_page_ready);
256
+ return;
257
+ }
258
+
238
259
  // initialize state flag, issue init message
239
260
  // -------------------------------------------------------------------
240
261
  _this.setState('started');
@@ -247,7 +268,7 @@ var logText;
247
268
  if (user_consent.personalization) {
248
269
  $('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
249
270
  logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
250
- logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
271
+ logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on short name: ' + providerID);
251
272
 
252
273
  // old Disqus Web API init
253
274
  // -----------------------------------------------------------------
@@ -279,7 +300,7 @@ var logText;
279
300
  // add|initialize Disqus Web API
280
301
  // -----------------------------------------------------------------
281
302
  dqApiScript.id = 'dq-web-api';
282
- dqApiScript.src = '//' + siteID + '.disqus.com/embed.js";'
303
+ dqApiScript.src = '//' + providerID + '.disqus.com/embed.js";'
283
304
  dqApiScript.setAttribute("data-timestamp", '"' + timestamp_now + '"');
284
305
  document.head.appendChild(dqApiScript);
285
306
 
@@ -288,7 +309,7 @@ var logText;
288
309
  $('#main-content').append('<div id="disqus_thread"></div>');
289
310
  } else {
290
311
  logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
291
- logger.warn('\n' + 'disable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
312
+ logger.warn('\n' + 'disable comments provider' + ' {{comments_provider}} on short name: ' + providerID);
292
313
  $('#leave-a-comment').remove();
293
314
  $('#dq-web-api').remove();
294
315
  $('#hdisqus_thread').remove();