j1-template 2022.0.4 → 2022.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/_layouts/default.html +34 -75
- data/assets/error_pages/HTTP444.html +4 -4
- data/assets/error_pages/HTTP445.html +3 -3
- data/assets/error_pages/HTTP446.html +110 -0
- data/assets/themes/j1/adapter/js/cookieConsent.js +53 -25
- data/assets/themes/j1/adapter/js/j1.js +81 -196
- data/assets/themes/j1/adapter/js/themer.js +0 -1
- data/assets/themes/j1/adapter/js/translator.js +107 -56
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +6 -0
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
- data/assets/themes/j1/core/js/template.js +5 -6
- data/assets/themes/j1/core/js/template.min.js +1 -1
- data/assets/themes/j1/core/js/template.min.js.map +1 -1
- data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +29 -13
- data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +0 -1
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
- data/assets/themes/j1/modules/translator/js/translator.js +98 -63
- data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/_config.yml +2 -3
- data/lib/starter_web/_data/modules/cookies.yml +30 -0
- data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +3 -3
- data/lib/starter_web/_data/modules/defaults/cookies.yml +103 -0
- data/lib/starter_web/_data/modules/navigator_menu.yml +10 -1
- data/lib/starter_web/_includes/attributes.asciidoc +6 -1
- data/lib/starter_web/_plugins/lunr_index.rb +1 -1
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/_test_pages/google-translate-tester.1.adoc +0 -2
- data/lib/starter_web/pages/_test_pages/google-translate-tester.4.adoc +0 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +1 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +1 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +1 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +1 -1
- data/lib/starter_web/pages/public/blog/navigator/archive.html +1 -1
- data/lib/starter_web/pages/public/blog/navigator/index.html +1 -1
- data/lib/starter_web/pages/public/learn/quickstart.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +1 -1
- data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +2 -12
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +2 -12
- data/lib/starter_web/pages/public/manuals/dropdown-help.adoc +1 -1
- data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +1 -1
- data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +1 -1
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +5 -2
@@ -35,6 +35,9 @@ regenerate: true
|
|
35
35
|
|
36
36
|
{% comment %} Set config data
|
37
37
|
-------------------------------------------------------------------------------- {% endcomment %}
|
38
|
+
{% assign cookie_defaults = modules.defaults.cookies.defaults %}
|
39
|
+
{% assign cookie_settings = modules.cookies.settings %}
|
40
|
+
|
38
41
|
{% assign translator_defaults = modules.defaults.translator.defaults %}
|
39
42
|
{% assign translator_settings = modules.translator.settings %}
|
40
43
|
{% assign tracking_enabled = template_config.analytics.enabled %}
|
@@ -42,6 +45,7 @@ regenerate: true
|
|
42
45
|
{% comment %} Set config options
|
43
46
|
-------------------------------------------------------------------------------- {% endcomment %}
|
44
47
|
{% assign translator_options = translator_defaults | merge: translator_settings %}
|
48
|
+
{% assign cookie_options = cookie_defaults | merge: cookie_settings %}
|
45
49
|
|
46
50
|
{% assign production = false %}
|
47
51
|
{% if environment == 'prod' or environment == 'production' %}
|
@@ -95,6 +99,7 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
95
99
|
var hostname;
|
96
100
|
var domain;
|
97
101
|
var cookie_domain;
|
102
|
+
var domain_enabled;
|
98
103
|
var secure;
|
99
104
|
var logText;
|
100
105
|
var cookie_written;
|
@@ -111,10 +116,17 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
111
116
|
|
112
117
|
// ---------------------------------------------------------------------------
|
113
118
|
// setCookie()
|
114
|
-
// writes a
|
119
|
+
// writes a FLAT cookie (not using an encoded JSON string)
|
115
120
|
// ---------------------------------------------------------------------------
|
116
121
|
function setCookie(options /*cName, cValue, expDays*/) {
|
117
|
-
var
|
122
|
+
var date = new Date();
|
123
|
+
var timestamp_now = date.toISOString()
|
124
|
+
var url = new liteURL(window.location.href);
|
125
|
+
var baseUrl = url.origin;;
|
126
|
+
var hostname = url.hostname;
|
127
|
+
var domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
|
128
|
+
var domain_enabled = '{{cookie_options.domain}}';
|
129
|
+
var defaults = {};
|
118
130
|
var settings;
|
119
131
|
var document_cookie;
|
120
132
|
var stringifiedAttributes = '';
|
@@ -123,8 +135,8 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
123
135
|
name: '',
|
124
136
|
path: '/',
|
125
137
|
expires: 0,
|
126
|
-
domain:
|
127
|
-
samesite: '
|
138
|
+
domain: true,
|
139
|
+
samesite: 'Lax',
|
128
140
|
http_only: false,
|
129
141
|
secure: false
|
130
142
|
};
|
@@ -137,6 +149,13 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
137
149
|
stringifiedAttributes += '; ' + 'expires=' + date.toUTCString();
|
138
150
|
}
|
139
151
|
|
152
|
+
if (domain != hostname) {
|
153
|
+
settings.domain = domain_enabled ? '.' + domain : hostname;
|
154
|
+
} else {
|
155
|
+
settings.domain = hostname;
|
156
|
+
}
|
157
|
+
stringifiedAttributes += '; ' + 'domain=' + settings.domain;
|
158
|
+
|
140
159
|
stringifiedAttributes += '; ' + 'SameSite=' + settings.samesite;
|
141
160
|
|
142
161
|
if (settings.secure) {
|
@@ -168,7 +187,7 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
168
187
|
baseUrl = url.origin;
|
169
188
|
hostname = url.hostname;
|
170
189
|
domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
|
171
|
-
|
190
|
+
domain_enabled = '{{cookie_options.domain}}';
|
172
191
|
secure = (url.protocol.includes('https')) ? true : false;
|
173
192
|
navigator_language = navigator.language || navigator.userLanguage; // userLanguage for MS IE compatibility
|
174
193
|
translation_language = navigator_language.split('-')[0];
|
@@ -188,23 +207,8 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
188
207
|
'translationLanguage': translation_language,
|
189
208
|
};
|
190
209
|
|
191
|
-
// load|initialize user translate cookie
|
192
|
-
if (j1.existsCookie(cookie_names.user_translate)) {
|
193
|
-
user_translate = j1.readCookie(cookie_names.user_translate);
|
194
|
-
} else {
|
195
|
-
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_translate);
|
196
|
-
cookie_written = j1.writeCookie({
|
197
|
-
name: cookie_names.user_translate,
|
198
|
-
data: user_translate,
|
199
|
-
samesite: 'Strict',
|
200
|
-
secure: secure,
|
201
|
-
expires: 365
|
202
|
-
});
|
203
|
-
}
|
204
|
-
|
205
210
|
// initialize state flag
|
206
211
|
_this.state = 'pending';
|
207
|
-
// _this.settings.languageList = '/assets/data/ms_select.json';
|
208
212
|
|
209
213
|
// -----------------------------------------------------------------------
|
210
214
|
// Default module settings
|
@@ -229,7 +233,30 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
229
233
|
// initializer
|
230
234
|
// -----------------------------------------------------------------------
|
231
235
|
var dependencies_met_page_ready = setInterval (function (options) {
|
232
|
-
|
236
|
+
var expires = '{{cookie_options.expires}}';
|
237
|
+
var same_site = '{{cookie_options.same_site}}';
|
238
|
+
user_consent = j1.readCookie(cookie_names.user_consent);
|
239
|
+
|
240
|
+
// set domain used by cookies
|
241
|
+
if (domain != hostname) {
|
242
|
+
cookie_domain = domain_enabled ? '.' + domain : hostname;
|
243
|
+
} else {
|
244
|
+
cookie_domain = hostname;
|
245
|
+
}
|
246
|
+
|
247
|
+
// load|initialize user translate cookie
|
248
|
+
if (j1.existsCookie(cookie_names.user_translate)) {
|
249
|
+
user_translate = j1.readCookie(cookie_names.user_translate);
|
250
|
+
} else {
|
251
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_translate);
|
252
|
+
cookie_written = j1.writeCookie({
|
253
|
+
name: cookie_names.user_translate,
|
254
|
+
data: user_translate,
|
255
|
+
samesite: 'Strict',
|
256
|
+
secure: secure,
|
257
|
+
expires: 365
|
258
|
+
});
|
259
|
+
}
|
233
260
|
|
234
261
|
if ( j1.getState() === 'finished' ) {
|
235
262
|
_this.setState('started');
|
@@ -257,16 +284,28 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
257
284
|
}
|
258
285
|
}
|
259
286
|
|
260
|
-
//
|
261
|
-
user_translate
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
287
|
+
// load|set user translate cookie
|
288
|
+
user_translate = j1.readCookie(cookie_names.user_translate);
|
289
|
+
if (!user_consent.analysis || !user_consent.personalization) {
|
290
|
+
// disable translation service
|
291
|
+
user_translate.translationEnabled = false;
|
292
|
+
cookie_written = j1.writeCookie({
|
293
|
+
name: cookie_names.user_translate,
|
294
|
+
data: user_translate,
|
295
|
+
secure: secure
|
296
|
+
});
|
297
|
+
|
298
|
+
// expire permanent cookie to session
|
299
|
+
j1.expireCookie({ name: cookie_names.user_translate });
|
300
|
+
} else {
|
301
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_translate);
|
302
|
+
cookie_written = j1.writeCookie({
|
303
|
+
name: cookie_names.user_translate,
|
304
|
+
data: user_translate,
|
305
|
+
secure: secure,
|
306
|
+
expires: 365
|
307
|
+
});
|
308
|
+
}
|
270
309
|
|
271
310
|
if (moduleOptions.dialogLanguage === 'auto') {
|
272
311
|
moduleOptions.dialogLanguage = '{{contentLanguage}}';
|
@@ -274,7 +313,11 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
274
313
|
|
275
314
|
j1.translator = new Translator({
|
276
315
|
contentURL: moduleOptions.contentURL, // dialog content (modals) for all supported languages
|
277
|
-
cookieName:
|
316
|
+
cookieName: cookie_names.user_translate, // name of the translator cookie
|
317
|
+
cookieStorageDays: expires, // lifetime of a cookie [0..365], 0: session cookie
|
318
|
+
cookieSameSite: same_site, // restrict consent cookie
|
319
|
+
cookieDomain: cookie_domain, // set domain (hostname|domain)
|
320
|
+
cookieSecure: secure, // set
|
278
321
|
cookieConsentName: moduleOptions.cookieConsentName, // the name of the Cookie Consent Cookie (secondary data)
|
279
322
|
disableLanguageSelector: moduleOptions.disableLanguageSelector, // disable language dropdown for translation in dialog (modal)
|
280
323
|
dialogContainerID: moduleOptions.dialogContainerID, // dest container, the dialog modal is loaded (dynamically)
|
@@ -288,7 +331,7 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
288
331
|
});
|
289
332
|
|
290
333
|
// enable|disable translation (after callback)
|
291
|
-
if (
|
334
|
+
if (user_translate.analysis && user_translate.personalization && user_translate.translationEnabled) {
|
292
335
|
if (moduleOptions.translatorName === 'google') {
|
293
336
|
head.appendChild(script);
|
294
337
|
if ($('google_translate_element')) {
|
@@ -304,12 +347,9 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
304
347
|
}
|
305
348
|
}
|
306
349
|
|
307
|
-
//
|
308
|
-
//
|
309
|
-
//
|
310
|
-
// logger.info('\n' + 'call default action');
|
311
|
-
// j1.translator.showDialog();
|
312
|
-
// });
|
350
|
+
// -------------------------------------------------------------------
|
351
|
+
// NOTE: Click events moved to Navigator (core)
|
352
|
+
// -------------------------------------------------------------------
|
313
353
|
|
314
354
|
_this.setState('finished');
|
315
355
|
logger.info('\n' + 'state: ' + _this.getState());
|
@@ -376,35 +416,37 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
376
416
|
|
377
417
|
// -------------------------------------------------------------------------
|
378
418
|
// cbGoogle()
|
379
|
-
// Called by the translator CORE module after the user made
|
380
|
-
// selection for a translation|language
|
419
|
+
// Called by the translator CORE module after the user has made
|
420
|
+
// the selection for a translation|language
|
381
421
|
// -------------------------------------------------------------------------
|
382
422
|
cbGoogle: function () {
|
383
423
|
var logger = log4javascript.getLogger('j1.adapter.translator.cbGoogle');
|
384
424
|
var cookie_names = j1.getCookieNames();
|
385
|
-
var user_state = j1.readCookie(cookie_names.user_state);
|
386
425
|
var user_consent = j1.readCookie(cookie_names.user_consent);
|
387
426
|
var user_translate = j1.readCookie(cookie_names.user_translate);
|
388
427
|
var msDropdown = document.getElementById('dropdownJSON').msDropdown;
|
428
|
+
var url = new liteURL(window.location.href);
|
429
|
+
var baseUrl = url.origin;;
|
430
|
+
var hostname = url.hostname;
|
431
|
+
var domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
|
432
|
+
var domain_enabled = '{{cookie_options.domain}}';
|
433
|
+
var same_site = '{{cookie_options.same_site}}';
|
434
|
+
|
389
435
|
var selectedTranslationLanguage;
|
390
436
|
var srcLang;
|
391
437
|
var destLang;
|
392
438
|
var transCode;
|
393
439
|
|
394
|
-
selectedTranslationLanguage = msDropdown.value;
|
395
|
-
logger.info('\n' + 'selected translation language: ' + selectedTranslationLanguage);
|
396
440
|
|
397
|
-
//
|
398
|
-
|
399
|
-
|
441
|
+
// set domain used by cookies
|
442
|
+
if (domain != hostname) {
|
443
|
+
cookie_domain = domain_enabled ? '.' + domain : hostname;
|
444
|
+
} else {
|
445
|
+
cookie_domain = hostname;
|
446
|
+
}
|
400
447
|
|
401
|
-
|
402
|
-
|
403
|
-
data: user_consent,
|
404
|
-
samesite: 'Strict',
|
405
|
-
secure: secure,
|
406
|
-
expires: 365
|
407
|
-
});
|
448
|
+
selectedTranslationLanguage = msDropdown.value;
|
449
|
+
logger.info('\n' + 'selected translation language: ' + selectedTranslationLanguage);
|
408
450
|
|
409
451
|
// set content language
|
410
452
|
if (moduleOptions.contentLanguage === 'auto') {
|
@@ -430,8 +472,17 @@ j1.adapter['translator'] = (function (j1, window) {
|
|
430
472
|
Cookies.remove('googtrans', { domain: hostname });
|
431
473
|
Cookies.remove('googtrans');
|
432
474
|
|
433
|
-
//
|
434
|
-
|
475
|
+
// -----------------------------------------------------------------------
|
476
|
+
// NOTE: googtrans cookie will be rewritten (by Google!?) for
|
477
|
+
// attributes 'SameSite' and potentially 'Domain'. This results
|
478
|
+
// for 'SameSite' in an empty field!
|
479
|
+
// -----------------------------------------------------------------------
|
480
|
+
|
481
|
+
// write the googtrans cookie (w/o DOMAIN?!)
|
482
|
+
Cookies.set('googtrans', transCode, {
|
483
|
+
Domain: cookie_domain,
|
484
|
+
sameSite: 'Lax'
|
485
|
+
});
|
435
486
|
|
436
487
|
// reload current page (skip cache)
|
437
488
|
location.reload(true);
|
@@ -8557,6 +8557,12 @@ table tr.even, table tr.alt, table tr:nth-of-type(even) {
|
|
8557
8557
|
color: #bdbdbd;
|
8558
8558
|
border-bottom: 1px dotted #424242 !important; }
|
8559
8559
|
|
8560
|
+
.series-exerpt {
|
8561
|
+
color: #e0e0e0; }
|
8562
|
+
|
8563
|
+
.series-navigation ul li a {
|
8564
|
+
background-color: #e0e0e0; }
|
8565
|
+
|
8560
8566
|
/*
|
8561
8567
|
# -----------------------------------------------------------------------------
|
8562
8568
|
# ~/100_template_css/scss/theme_uno_dark/extentions/_tags.scss
|