j1-template 2023.0.13 → 2023.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/assets/data/banner.html +2 -2
- data/assets/themes/j1/adapter/js/advertising.js +21 -8
- data/assets/themes/j1/adapter/js/analytics.js +24 -8
- data/assets/themes/j1/adapter/js/carousel.js +10 -13
- data/assets/themes/j1/adapter/js/clipboard.js +8 -1
- data/assets/themes/j1/adapter/js/comments.js +193 -198
- data/assets/themes/j1/adapter/js/cookieConsent.js +27 -20
- data/assets/themes/j1/adapter/js/dropdowns.js +7 -10
- data/assets/themes/j1/adapter/js/fab.js +10 -17
- data/assets/themes/j1/adapter/js/framer.js +27 -31
- data/assets/themes/j1/adapter/js/j1.js +2 -0
- data/assets/themes/j1/adapter/js/justifiedGallery.js +15 -15
- data/assets/themes/j1/adapter/js/lightbox.js +25 -16
- data/assets/themes/j1/adapter/js/logger.js +13 -7
- data/assets/themes/j1/adapter/js/lunr.js +9 -11
- data/assets/themes/j1/adapter/js/masonry.js +9 -11
- data/assets/themes/j1/adapter/js/masterslider.js +28 -25
- data/assets/themes/j1/adapter/js/nbinteract.js +20 -15
- data/assets/themes/j1/adapter/js/particles.js +9 -7
- data/assets/themes/j1/adapter/js/rangeSlider.js +11 -13
- data/assets/themes/j1/adapter/js/rouge.js +1 -0
- data/assets/themes/j1/adapter/js/rtable.js +11 -13
- data/assets/themes/j1/adapter/js/scroller.js +18 -2
- data/assets/themes/j1/adapter/js/themer.js +23 -16
- data/assets/themes/j1/adapter/js/toccer.js +16 -20
- data/assets/themes/j1/adapter/js/translator.js +28 -30
- data/assets/themes/j1/adapter/js/waves.js +9 -7
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +2 -2
- data/lib/starter_web/_data/j1_config.yml +432 -432
- data/lib/starter_web/_data/modules/analytics.yml +2 -65
- data/lib/starter_web/_data/modules/comments.yml +11 -1
- data/lib/starter_web/_data/modules/defaults/analytics.yml +3 -3
- data/lib/starter_web/_data/modules/defaults/comments.yml +0 -25
- data/lib/starter_web/_data/modules/scroller.yml +1 -1
- data/lib/starter_web/_data/resources.yml +1 -1
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/about/site.adoc +76 -76
- data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +2 -2
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +2 -2
@@ -92,6 +92,7 @@ regenerate: true
|
|
92
92
|
{% assign production = true %}
|
93
93
|
{% endif %}
|
94
94
|
|
95
|
+
|
95
96
|
/*
|
96
97
|
# -----------------------------------------------------------------------------
|
97
98
|
# ~/assets/themes/j1/adapter/js/comments.js
|
@@ -122,14 +123,18 @@ j1.adapter.comments = (function (j1, window) {
|
|
122
123
|
var environment = '{{environment}}';
|
123
124
|
var date = new Date();
|
124
125
|
var timestamp_now = date.toISOString();
|
126
|
+
var cookie_names = j1.getCookieNames();
|
125
127
|
var comments_provider = '{{comments_provider}}';
|
126
128
|
var dqApiScript = document.createElement('script');
|
127
129
|
var hvApiScript = document.createElement('script');
|
128
130
|
var hvCallbackScript = document.createElement('script');
|
129
|
-
var providerID = '{{site_id}}';
|
130
|
-
var validProviderID = (providerID.includes('your')) ? false : true;
|
131
131
|
var comments_headline = '{{comments_headline}}';
|
132
|
-
var
|
132
|
+
var providerID;
|
133
|
+
var validProviderID;
|
134
|
+
var commentsDefaults;
|
135
|
+
var commentsSettings;
|
136
|
+
var commentsOptions;
|
137
|
+
var frontmatterOptions;
|
133
138
|
var user_consent;
|
134
139
|
var _this;
|
135
140
|
var logger;
|
@@ -146,224 +151,214 @@ var logText;
|
|
146
151
|
// -------------------------------------------------------------------------
|
147
152
|
init: function (options) {
|
148
153
|
|
149
|
-
{% if comments %}
|
150
|
-
// [INFO ] [j1.adapter.comments ] [ detected comments provider (j1_config): {{comments_provider}}} ]
|
151
|
-
// [INFO ] [j1.adapter.comments ] [ start processing load region head, layout: {{page.layout}} ]
|
152
|
-
|
153
|
-
// -----------------------------------------------------------------------
|
154
|
-
// Default module settings
|
155
|
-
// -----------------------------------------------------------------------
|
156
|
-
var settings = $.extend({
|
157
|
-
module_name: 'j1.adapter.comments',
|
158
|
-
generated: '{{site.time}}'
|
159
|
-
}, options);
|
160
|
-
|
161
154
|
// -----------------------------------------------------------------------
|
162
155
|
// Global variable settings
|
163
156
|
// -----------------------------------------------------------------------
|
164
157
|
|
165
|
-
// create settings object from frontmatter
|
166
|
-
|
158
|
+
// create settings object from frontmatter (page settings)
|
159
|
+
frontmatterOptions = options != null ? $.extend({}, options) : {};
|
167
160
|
|
168
|
-
//
|
169
|
-
|
170
|
-
|
161
|
+
// Load module DEFAULTS|CONFIG
|
162
|
+
commentsDefaults = $.extend({}, {{comments_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
|
163
|
+
commentsSettings = $.extend({}, {{comments_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
|
164
|
+
commentsOptions = $.extend(true, {}, commentsDefaults, commentsSettings, frontmatterOptions);
|
171
165
|
|
172
|
-
//
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
if (commentOptions.enabled) {
|
177
|
-
{% if site_id %}
|
166
|
+
// overload module config from page settings (frontmatter)
|
167
|
+
if (typeof commentsOptions.comments !== 'undefined' ) {
|
168
|
+
commentsOptions.enabled = (commentsOptions.comments) === 'true' ? true : false;
|
169
|
+
}
|
178
170
|
|
179
|
-
|
180
|
-
|
171
|
+
if (commentsOptions.enabled) {
|
172
|
+
// [INFO ] [j1.adapter.comments ] [ detected comments provider (j1_config): {{comments_provider}}} ]
|
173
|
+
// [INFO ] [j1.adapter.comments ] [ start processing load region head, layout: {{page.layout}} ]
|
181
174
|
|
182
|
-
|
183
|
-
|
184
|
-
|
175
|
+
// ---------------------------------------------------------------------
|
176
|
+
// Default module settings
|
177
|
+
// ---------------------------------------------------------------------
|
178
|
+
var settings = $.extend({
|
179
|
+
module_name: 'j1.adapter.comments',
|
180
|
+
generated: '{{site.time}}'
|
181
|
+
}, options);
|
185
182
|
|
186
|
-
|
187
|
-
|
183
|
+
_this = j1.adapter.comments;
|
184
|
+
logger = log4javascript.getLogger('j1.adapter.comments');
|
188
185
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
clearInterval(dependencies_met_page_ready);
|
193
|
-
return false;
|
194
|
-
}
|
186
|
+
// check the site ID to be used for a provider
|
187
|
+
providerID = (typeof commentsOptions.site_id == "number") ? commentsOptions.site_id.toString() : commentsOptions.hyvor.site_id;
|
188
|
+
validProviderID = (providerID.includes('your')) ? false : true;
|
195
189
|
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
logger.debug('\n' + 'state: ' + _this.getState());
|
200
|
-
logger.info('\n' + 'module is being initialized for provider: ' + comments_provider);
|
201
|
-
|
202
|
-
// place|remove initialization code
|
203
|
-
// -------------------------------------------------------------------
|
204
|
-
user_consent = j1.readCookie(cookie_names.user_consent);
|
205
|
-
if (user_consent.personalization) {
|
206
|
-
// enable Hyvor Talk
|
207
|
-
// -----------------------------------------------------------------
|
208
|
-
$('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
|
209
|
-
logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
|
210
|
-
logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on siteID: ' + providerID);
|
190
|
+
{% case comments_provider %}
|
191
|
+
{% when "hyvor" %}
|
192
|
+
// [INFO ] [j1.adapter.comments ] [ place provider: Hyvor Talk ]
|
211
193
|
|
212
|
-
|
213
|
-
|
214
|
-
// -----------------------------------------------------------------
|
215
|
-
hvApiScript.id = 'hyvor-embed';
|
216
|
-
hvApiScript.src = '//talk.hyvor.com/web-api/embed.js';
|
217
|
-
hvApiScript.async = true;
|
218
|
-
document.head.appendChild(hvApiScript);
|
194
|
+
var dependencies_met_page_ready = setInterval(function() {
|
195
|
+
if (j1.getState() == 'finished') {
|
219
196
|
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
hvCallbackScript.text += ' url: false,' + '\n';
|
227
|
-
hvCallbackScript.text += ' id: false' + '\n';
|
228
|
-
hvCallbackScript.text += ' };' + '\n';
|
229
|
-
document.head.appendChild(hvCallbackScript);
|
230
|
-
|
231
|
-
// add Hyvor Talk comment container
|
232
|
-
// NOTE: don't change the div id
|
233
|
-
// -----------------------------------------------------------------
|
234
|
-
$('#main-content').append('<div id="hyvor-talk-view"></div>');
|
197
|
+
if (!validProviderID) {
|
198
|
+
logger.warn('\n' + 'invalid site id detected for Hyvor Talk: ' + providerID);
|
199
|
+
logger.info('\n' + 'skip initialization for provider: ' + comments_provider);
|
200
|
+
clearInterval(dependencies_met_page_ready);
|
201
|
+
return false;
|
202
|
+
}
|
235
203
|
|
236
|
-
//
|
237
|
-
// -------------------------------------------------------------------
|
238
|
-
var dependencies_met_load_provider_finished = setInterval (function () {
|
239
|
-
if ($('#hyvor-talk-view').children().length) {
|
240
|
-
$('#hyvor-talk-iframe').prop('title', 'Hyvor comments iframe');
|
241
|
-
clearInterval(dependencies_met_load_provider_finished);
|
242
|
-
}
|
243
|
-
}, 25);
|
244
|
-
} else {
|
245
|
-
// disable Hyvor Talk
|
204
|
+
// initialize state flag, issue init message
|
246
205
|
// -----------------------------------------------------------------
|
247
|
-
|
248
|
-
logger.
|
206
|
+
_this.setState('started');
|
207
|
+
logger.debug('\n' + 'state: ' + _this.getState());
|
208
|
+
logger.info('\n' + 'module is being initialized for provider: ' + comments_provider);
|
249
209
|
|
250
|
-
// remove
|
210
|
+
// place|remove initialization code
|
251
211
|
// -----------------------------------------------------------------
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
212
|
+
user_consent = j1.readCookie(cookie_names.user_consent);
|
213
|
+
if (user_consent.personalization) {
|
214
|
+
// enable Hyvor Talk
|
215
|
+
// ---------------------------------------------------------------
|
216
|
+
$('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
|
217
|
+
logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
|
218
|
+
logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on siteID: ' + providerID);
|
219
|
+
|
220
|
+
// add Hyvor Talk Web API
|
221
|
+
// NOTE: don't change the script id
|
222
|
+
// ---------------------------------------------------------------
|
223
|
+
hvApiScript.id = 'hyvor-embed';
|
224
|
+
hvApiScript.src = '//talk.hyvor.com/web-api/embed.js';
|
225
|
+
hvApiScript.async = true;
|
226
|
+
document.head.appendChild(hvApiScript);
|
227
|
+
|
228
|
+
// add Hyvor Talk callback script
|
229
|
+
// ---------------------------------------------------------------
|
230
|
+
hvCallbackScript.id = 'hyvor-callback';
|
231
|
+
hvCallbackScript.text = '\n';
|
232
|
+
hvCallbackScript.text += 'var HYVOR_TALK_WEBSITE = "' + providerID + '"\n';
|
233
|
+
hvCallbackScript.text += 'var HYVOR_TALK_CONFIG = {' + '\n';
|
234
|
+
hvCallbackScript.text += ' url: false,' + '\n';
|
235
|
+
hvCallbackScript.text += ' id: false' + '\n';
|
236
|
+
hvCallbackScript.text += ' };' + '\n';
|
237
|
+
document.head.appendChild(hvCallbackScript);
|
238
|
+
|
239
|
+
// add Hyvor Talk comment container
|
240
|
+
// NOTE: don't change the div id
|
241
|
+
// ---------------------------------------------------------------
|
242
|
+
$('#main-content').append('<div id="hyvor-talk-view"></div>');
|
243
|
+
|
244
|
+
// add recommended title to the comments iframe for SEO optimization
|
245
|
+
// ---------------------------------------------------------------
|
246
|
+
var dependencies_met_load_provider_finished = setInterval (function () {
|
247
|
+
if ($('#hyvor-talk-view').children().length) {
|
248
|
+
$('#hyvor-talk-iframe').prop('title', 'Hyvor comments iframe');
|
249
|
+
clearInterval(dependencies_met_load_provider_finished);
|
250
|
+
}
|
251
|
+
}, 25);
|
252
|
+
} else {
|
253
|
+
// disable Hyvor Talk
|
254
|
+
// ---------------------------------------------------------------
|
255
|
+
logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
|
256
|
+
logger.warn('\n' + 'disable Hyvor Talk on site id: ' + providerID);
|
257
|
+
|
258
|
+
// remove Hyvor Talk resources
|
259
|
+
// ---------------------------------------------------------------
|
260
|
+
$('#leave-a-comment').remove();
|
261
|
+
$('#hyvor-embed').remove();
|
262
|
+
$('#hyvor-callback').remove();
|
263
|
+
$('#hyvor-talk-view').remove();
|
264
|
+
}
|
269
265
|
clearInterval(dependencies_met_page_ready);
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
// old Disqus Web API init
|
288
|
-
// -----------------------------------------------------------------
|
289
|
-
// var disqus_shortname = '{{site_id}}';
|
290
|
-
// // -----------------------------------------------------------------
|
291
|
-
// // RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE
|
292
|
-
// // SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
|
293
|
-
// // LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT:
|
294
|
-
// // https://disqus.com/admin/universalcode/#configuration-variables
|
295
|
-
// // -----------------------------------------------------------------
|
296
|
-
// //
|
297
|
-
// // var disqus_config = function () {
|
298
|
-
// // this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
|
299
|
-
// // Replace PAGE_IDENTIFIER with your page's unique
|
300
|
-
// // identifier variable
|
301
|
-
// // this.page.identifier = PAGE_IDENTIFIER;
|
302
|
-
// // };
|
303
|
-
// //
|
304
|
-
// // DON'T EDIT BELOW THIS LINE
|
305
|
-
// // -----------------------------------------------------------------
|
306
|
-
// (function() {
|
307
|
-
// var d = document,
|
308
|
-
// s = d.createElement('script');
|
309
|
-
// s.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
310
|
-
// s.setAttribute('data-timestamp', +new Date());
|
311
|
-
// (d.head || d.body).appendChild(s);
|
312
|
-
// })();
|
313
|
-
|
314
|
-
// add|initialize Disqus Web API
|
266
|
+
} // END if getState 'finished'
|
267
|
+
}, 25);
|
268
|
+
|
269
|
+
{% when "disqus" %}
|
270
|
+
// [INFO ] [j1.adapter.comments ] [ place provider: Disqus ]
|
271
|
+
var dependencies_met_page_ready = setInterval(function() {
|
272
|
+
if (j1.getState() == 'finished') {
|
273
|
+
|
274
|
+
if (!validProviderID) {
|
275
|
+
logger.warn('\n' + 'invalid short name detected for Disqus: ' + providerID);
|
276
|
+
logger.info('\n' + 'skip initialization for provider: ' + comments_provider);
|
277
|
+
clearInterval(dependencies_met_page_ready);
|
278
|
+
return;
|
279
|
+
}
|
280
|
+
|
281
|
+
// initialize state flag, issue init message
|
315
282
|
// -----------------------------------------------------------------
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
document.head.appendChild(dqApiScript);
|
283
|
+
_this.setState('started');
|
284
|
+
logger.debug('\n' + 'state: ' + _this.getState());
|
285
|
+
logger.info('\n' + 'module is being initialized for provider: ' + comments_provider);
|
320
286
|
|
321
|
-
//
|
287
|
+
// place|remove initialization code
|
322
288
|
// -----------------------------------------------------------------
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
289
|
+
user_consent = j1.readCookie(cookie_names.user_consent);
|
290
|
+
if (user_consent.personalization) {
|
291
|
+
$('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
|
292
|
+
logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
|
293
|
+
logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on short name: ' + providerID);
|
294
|
+
|
295
|
+
// old Disqus Web API init
|
296
|
+
// ---------------------------------------------------------------
|
297
|
+
// var disqus_shortname = '{{site_id}}';
|
298
|
+
// // ------------------------------------------------------------
|
299
|
+
// // RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE
|
300
|
+
// // SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
|
301
|
+
// // LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT:
|
302
|
+
// // https://disqus.com/admin/universalcode/#configuration-variables
|
303
|
+
// // ------------------------------------------------------------
|
304
|
+
// //
|
305
|
+
// // var disqus_config = function () {
|
306
|
+
// // this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
|
307
|
+
// // Replace PAGE_IDENTIFIER with your page's unique
|
308
|
+
// // identifier variable
|
309
|
+
// // this.page.identifier = PAGE_IDENTIFIER;
|
310
|
+
// // };
|
311
|
+
// //
|
312
|
+
// // DON'T EDIT BELOW THIS LINE
|
313
|
+
// // ------------------------------------------------------------
|
314
|
+
// (function() {
|
315
|
+
// var d = document,
|
316
|
+
// s = d.createElement('script');
|
317
|
+
// s.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
318
|
+
// s.setAttribute('data-timestamp', +new Date());
|
319
|
+
// (d.head || d.body).appendChild(s);
|
320
|
+
// })();
|
321
|
+
|
322
|
+
// add|initialize Disqus Web API
|
323
|
+
// ---------------------------------------------------------------
|
324
|
+
dqApiScript.id = 'dq-web-api';
|
325
|
+
dqApiScript.src = '//' + providerID + '.disqus.com/embed.js";'
|
326
|
+
dqApiScript.setAttribute("data-timestamp", '"' + timestamp_now + '"');
|
327
|
+
document.head.appendChild(dqApiScript);
|
328
|
+
|
329
|
+
// add Disqus comment container
|
330
|
+
// ---------------------------------------------------------------
|
331
|
+
$('#main-content').append('<div id="disqus_thread"></div>');
|
332
|
+
} else {
|
333
|
+
logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
|
334
|
+
logger.warn('\n' + 'disable comments provider' + ' {{comments_provider}} on short name: ' + providerID);
|
335
|
+
$('#leave-a-comment').remove();
|
336
|
+
$('#dq-web-api').remove();
|
337
|
+
$('#hdisqus_thread').remove();
|
338
|
+
}
|
331
339
|
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
clearInterval(dependencies_met_page_ready);
|
342
|
-
} // END if getState 'finished'
|
343
|
-
}, 25);
|
344
|
-
{% endcase %}
|
345
|
-
|
346
|
-
{% else %}
|
347
|
-
var dependencies_met_page_ready = setInterval(function() {
|
348
|
-
if (j1.getState() == 'finished') {
|
349
|
-
logger = log4javascript.getLogger('j1.adapter.comments');
|
350
|
-
logger.warn('\n' + 'provider or site ID for comment services wrong or not set');
|
351
|
-
clearInterval(dependencies_met_page_ready);
|
352
|
-
}
|
353
|
-
}, 25);
|
354
|
-
{% endif %}
|
355
|
-
} // END if 'commentOptions.comments'
|
356
|
-
|
357
|
-
{% else %}
|
358
|
-
var dependencies_met_page_ready = setInterval(function() {
|
359
|
-
if (j1.getState() == 'finished') {
|
360
|
-
logger = log4javascript.getLogger('j1.adapter.comments');
|
361
|
-
logger.info('\n' + 'comment services: disabled');
|
362
|
-
clearInterval(dependencies_met_page_ready);
|
363
|
-
}
|
364
|
-
}, 25);
|
365
|
-
{% endif %}
|
340
|
+
// add recommended title to the comments iframe for SEO optimization
|
341
|
+
// -----------------------------------------------------------------
|
342
|
+
// var dependencies_met_load_provider_finished = setInterval (function () {
|
343
|
+
// if ($('#disqus_thread').children().length) {
|
344
|
+
// $('#hyvor-talk-iframe').prop('title', 'Disqus comments iframe');
|
345
|
+
// clearInterval(dependencies_met_load_provider_finished);
|
346
|
+
// }
|
347
|
+
// }, 25);
|
366
348
|
|
349
|
+
clearInterval(dependencies_met_page_ready);
|
350
|
+
} // END if getState 'finished'
|
351
|
+
}, 25);
|
352
|
+
{% endcase %}
|
353
|
+
} else {
|
354
|
+
var dependencies_met_page_ready = setInterval(function() {
|
355
|
+
if (j1.getState() == 'finished') {
|
356
|
+
logger = log4javascript.getLogger('j1.adapter.comments');
|
357
|
+
logger.info('\n' + 'comment services: disabled');
|
358
|
+
clearInterval(dependencies_met_page_ready);
|
359
|
+
}
|
360
|
+
}, 25);
|
361
|
+
} // END if 'commentsOptions.comments'
|
367
362
|
|
368
363
|
}, // END init
|
369
364
|
|
@@ -90,7 +90,9 @@ j1.adapter.cookieConsent = (function (j1, window) {
|
|
90
90
|
var tracking_id = '{{tracking_id}}';
|
91
91
|
var tracking_id_valid = (tracking_id.includes('tracking-id')) ? false : true;
|
92
92
|
var expireCookiesOnRequiredOnly = ('{{cookie_options.expireCookiesOnRequiredOnly}}' === 'true') ? true: false;
|
93
|
-
var
|
93
|
+
var cookieConsentDefaults;
|
94
|
+
var cookieConsentSettings;
|
95
|
+
var cookieConsentOptions;
|
94
96
|
var _this;
|
95
97
|
var $modal;
|
96
98
|
var cookie_names;
|
@@ -149,6 +151,11 @@ j1.adapter.cookieConsent = (function (j1, window) {
|
|
149
151
|
contentLanguage = '{{site.language}}';
|
150
152
|
navigatorLanguage = navigator.language || navigator.userLanguage;
|
151
153
|
|
154
|
+
// Load module DEFAULTS|CONFIG
|
155
|
+
cookieConsentDefaults = $.extend({}, {{consent_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
|
156
|
+
cookieConsentSettings = $.extend({}, {{consent_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
|
157
|
+
cookieConsentOptions = $.extend(true, {}, cookieConsentDefaults, cookieConsentSettings);
|
158
|
+
|
152
159
|
// initialize state flag
|
153
160
|
_this.state = 'pending';
|
154
161
|
|
@@ -156,17 +163,17 @@ j1.adapter.cookieConsent = (function (j1, window) {
|
|
156
163
|
-------------------------------------------------------------------------- {% endcomment %}
|
157
164
|
// Load module DEFAULTS|CONFIG
|
158
165
|
/* eslint-disable */
|
159
|
-
moduleOptions = $.extend({}, {{consent_options | replace: '=>', ':' | replace: 'nil', '""'}});
|
166
|
+
// moduleOptions = $.extend({}, {{consent_options | replace: '=>', ':' | replace: 'nil', '""'}});
|
160
167
|
/* eslint-enable */
|
161
168
|
|
162
|
-
if (typeof settings !== 'undefined') {
|
163
|
-
|
164
|
-
}
|
169
|
+
// if (typeof settings !== 'undefined') {
|
170
|
+
// moduleOptions = $.extend({}, moduleOptions, settings);
|
171
|
+
// }
|
165
172
|
|
166
|
-
if (
|
167
|
-
|
168
|
-
} else if (
|
169
|
-
|
173
|
+
if (cookieConsentOptions.dialogLanguage === 'auto') {
|
174
|
+
cookieConsentOptions.dialogLanguage = navigatorLanguage;
|
175
|
+
} else if (cookieConsentOptions.dialogLanguage === 'content') {
|
176
|
+
cookieConsentOptions.dialogLanguage = contentLanguage;
|
170
177
|
}
|
171
178
|
|
172
179
|
// -----------------------------------------------------------------------
|
@@ -176,7 +183,7 @@ j1.adapter.cookieConsent = (function (j1, window) {
|
|
176
183
|
var same_site = '{{cookie_options.same_site}}';
|
177
184
|
var expires;
|
178
185
|
|
179
|
-
if (
|
186
|
+
if (cookieConsentOptions.enabled) {
|
180
187
|
expires = '{{cookie_options.expires}}';
|
181
188
|
} else {
|
182
189
|
// expire permanent cookies to session
|
@@ -216,23 +223,23 @@ j1.adapter.cookieConsent = (function (j1, window) {
|
|
216
223
|
_this.setState('started');
|
217
224
|
|
218
225
|
|
219
|
-
if (
|
226
|
+
if (cookieConsentOptions.enabled) {
|
220
227
|
logger.debug('\n' + 'state: ' + _this.getState());
|
221
228
|
logger.info('\n' + 'module is being initialized');
|
222
229
|
|
223
230
|
j1.cookieConsent = new CookieConsent ({
|
224
|
-
contentURL:
|
231
|
+
contentURL: cookieConsentOptions.contentURL, // dialog content (modals) for all supported languages
|
225
232
|
cookieName: cookie_names.user_consent, // name of the consent cookie
|
226
233
|
cookieStorageDays: expires, // lifetime of a cookie [0..365], 0: session cookie
|
227
234
|
cookieSameSite: same_site, // restrict consent cookie
|
228
235
|
cookieSecure: secure, // only sent to the server with an encrypted request over HTTPS
|
229
236
|
cookieDomain: domainAttribute, // set domain (hostname|domain)
|
230
|
-
dialogLanguage:
|
231
|
-
whitelisted:
|
232
|
-
reloadPageOnChange:
|
233
|
-
dialogContainerID:
|
234
|
-
xhrDataElement:
|
235
|
-
postSelectionCallback:
|
237
|
+
dialogLanguage: cookieConsentOptions.dialogLanguage, // language for the dialog (modal)
|
238
|
+
whitelisted: cookieConsentOptions.whitelisted, // pages NO cookie dialog is shown
|
239
|
+
reloadPageOnChange: cookieConsentOptions.reloadPageOnChange, // reload if setzings has changed
|
240
|
+
dialogContainerID: cookieConsentOptions.dialogContainerID, // container, the dialog modal is (dynamically) loaded
|
241
|
+
xhrDataElement: cookieConsentOptions.xhrDataElement, // container for all language-specific dialogs (modals)
|
242
|
+
postSelectionCallback: cookieConsentOptions.postSelectionCallback, // callback function, called after the user has made his selection
|
236
243
|
});
|
237
244
|
} else {
|
238
245
|
logger.warn('\n' + 'module is disabled');
|
@@ -351,7 +358,7 @@ j1.adapter.cookieConsent = (function (j1, window) {
|
|
351
358
|
j1.expireCookie({ name: cookie_names.user_consent });
|
352
359
|
j1.expireCookie({ name: cookie_names.user_translate });
|
353
360
|
}
|
354
|
-
if (
|
361
|
+
if (cookieConsentOptions.reloadPageOnChange) {
|
355
362
|
// reload current page (skip cache)
|
356
363
|
location.reload(true);
|
357
364
|
}
|
@@ -412,7 +419,7 @@ j1.adapter.cookieConsent = (function (j1, window) {
|
|
412
419
|
}
|
413
420
|
}
|
414
421
|
|
415
|
-
if (
|
422
|
+
if (cookieConsentOptions.reloadPageOnChange) {
|
416
423
|
// reload current page (skip cache)
|
417
424
|
location.reload(true);
|
418
425
|
}
|
@@ -83,9 +83,10 @@ j1.adapter.dropdowns = (function (j1, window) {
|
|
83
83
|
{% comment %} Set global variables
|
84
84
|
------------------------------------------------------------------------------ {% endcomment %}
|
85
85
|
var environment = '{{environment}}';
|
86
|
-
var moduleOptions = {};
|
87
86
|
var instances = [];
|
88
|
-
var
|
87
|
+
var dropdownsDefaults;
|
88
|
+
var dropdownsSettings;
|
89
|
+
var dropdownsOptions;
|
89
90
|
var _this;
|
90
91
|
var logger;
|
91
92
|
var logText;
|
@@ -118,20 +119,16 @@ j1.adapter.dropdowns = (function (j1, window) {
|
|
118
119
|
_this = j1.adapter.dropdowns;
|
119
120
|
logger = log4javascript.getLogger('j1.adapter.dropdowns');
|
120
121
|
|
122
|
+
// Load module DEFAULTS|CONFIG
|
123
|
+
dropdownsDefaults = $.extend({}, {{comments_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
|
124
|
+
dropdownsSettings = $.extend({}, {{comments_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
|
125
|
+
dropdownsOptions = $.extend(true, {}, dropdownsDefaults, dropdownsSettings);
|
121
126
|
|
122
127
|
// initialize state flag
|
123
128
|
_this.setState('started');
|
124
129
|
logger.debug('\n' + 'state: ' + _this.getState());
|
125
130
|
logger.info('\n' + 'module is being initialized');
|
126
131
|
|
127
|
-
// create settings object from frontmatterOptions
|
128
|
-
frontmatterOptions = options != null ? $.extend({}, options) : {};
|
129
|
-
moduleOptions = $.extend({}, {{dropdowns_options | replace: 'nil', 'null' | replace: '=>', ':' }});
|
130
|
-
|
131
|
-
if (typeof frontmatterOptions !== 'undefined') {
|
132
|
-
moduleOptions = $.extend({}, moduleOptions, frontmatterOptions);;
|
133
|
-
}
|
134
|
-
|
135
132
|
var dependencies_met_j1_finished = setInterval(function() {
|
136
133
|
if (j1.getState() == 'finished') {
|
137
134
|
var elms = document.querySelectorAll('.dropdowns');
|
@@ -90,6 +90,8 @@ j1.adapter.fab = (function (j1, window) {
|
|
90
90
|
var dclFinished = false;
|
91
91
|
var moduleOptions = {};
|
92
92
|
var cookie_names = j1.getCookieNames();
|
93
|
+
var fabDefaults;
|
94
|
+
var fabSettings;
|
93
95
|
var fabOptions;
|
94
96
|
var frontmatterOptions;
|
95
97
|
var user_state;
|
@@ -139,31 +141,22 @@ j1.adapter.fab = (function (j1, window) {
|
|
139
141
|
logger.info('\n' + 'set module state to: ' + _this.getState());
|
140
142
|
logger.info('\n' + 'module is being initialized');
|
141
143
|
|
142
|
-
// create settings object from
|
143
|
-
|
144
|
+
// create settings object from frontmatter (page settings)
|
145
|
+
frontmatterOptions = options != null ? $.extend({}, options) : {};
|
144
146
|
|
145
|
-
//
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
fabOptions = $.extend({}, {{fab_options | replace: 'nil', 'null' | replace: '=>', ':' }});
|
150
|
-
|
151
|
-
// Load (individual) frontmatter options (currently NOT used)
|
152
|
-
if (options != null) { frontmatterOptions = $.extend({}, options); }
|
153
|
-
|
154
|
-
if (typeof frontmatterOptions !== 'undefined') {
|
155
|
-
moduleOptions = $.extend({}, fabOptions, frontmatterOptions);
|
156
|
-
}
|
157
|
-
/* eslint-enable */
|
147
|
+
// Load module DEFAULTS|CONFIG
|
148
|
+
fabDefaults = $.extend({}, {{fab_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
|
149
|
+
fabSettings = $.extend({}, {{fab_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
|
150
|
+
fabOptions = $.extend(true, {}, fabDefaults, fabSettings, frontmatterOptions);
|
158
151
|
|
159
152
|
// save config settings into the FAB object for global access
|
160
153
|
//
|
161
|
-
_this['moduleOptions'] =
|
154
|
+
_this['moduleOptions'] = fabOptions;
|
162
155
|
|
163
156
|
var dependencies_met_navigator = setInterval(function() {
|
164
157
|
if (j1.adapter.navigator.getState() == 'finished') {
|
165
158
|
logger.debug('\n' + 'met dependencies for: navigator');
|
166
|
-
_this.fabLoader(
|
159
|
+
_this.fabLoader(fabOptions);
|
167
160
|
clearInterval(dependencies_met_navigator);
|
168
161
|
}
|
169
162
|
}, 25);
|