j1-template 2021.1.13 → 2021.1.18
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/blocks/footer/boxes/issue.proc +28 -5
- data/_includes/themes/j1/blocks/footer/boxes/legal_statements.proc +66 -23
- data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +0 -1
- data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +16 -1
- data/_includes/themes/j1/layouts/content_generator_blog_archive.html +197 -219
- data/_includes/themes/j1/layouts/content_generator_collection.html +4 -2
- data/_includes/themes/j1/layouts/content_generator_post.html +34 -24
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +30 -7
- data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +2 -2
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +27 -5
- data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
- data/_includes/themes/j1/procedures/posts/pager.proc +123 -0
- data/_layouts/default.html +2 -2
- data/assets/data/authclient.html +1 -0
- data/assets/data/banner.html +1 -0
- data/assets/data/carousel.json +1 -0
- data/assets/data/cookieconsent.html +1 -2
- data/assets/data/fam.html +1 -0
- data/assets/data/footer.html +1 -0
- data/assets/data/galleries.json +1 -0
- data/assets/data/gallery_customizer.html +1 -0
- data/assets/data/mdi_icons.json +1 -0
- data/assets/data/menu.html +2 -1
- data/assets/data/mmenu.html +1 -0
- data/assets/data/mmenu_sidebar.html +1 -0
- data/assets/data/mmenu_toc.html +21 -1
- data/assets/data/panel.html +29 -7
- data/assets/data/quicklinks.html +1 -0
- data/assets/data/themes.json +1 -0
- data/assets/data/twa_v1.json +1 -0
- data/assets/error_pages/HTTP204.html +17 -2
- data/assets/error_pages/HTTP400.html +17 -2
- data/assets/error_pages/HTTP401.html +17 -2
- data/assets/error_pages/HTTP403.html +17 -2
- data/assets/error_pages/HTTP404.html +17 -2
- data/assets/error_pages/HTTP444.html +17 -2
- data/assets/error_pages/HTTP500.html +17 -2
- data/assets/error_pages/HTTP501.html +17 -2
- data/assets/error_pages/HTTP502.html +17 -2
- data/assets/error_pages/HTTP503.html +17 -3
- data/assets/themes/j1/adapter/js/cookieConsent.js +9 -8
- data/assets/themes/j1/adapter/js/j1.js +137 -65
- data/assets/themes/j1/adapter/js/navigator.js +7 -0
- data/assets/themes/j1/adapter/js/themer.js +16 -26
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +21 -42
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
- data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +2 -288
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +60 -41
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +75 -57
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +4 -5
- data/lib/starter_web/_config.yml +7 -1
- data/lib/starter_web/_data/blocks/footer.yml +52 -20
- data/lib/starter_web/_data/blocks/panel.yml +4 -4
- data/lib/starter_web/_data/builder/blog_navigator.yml +9 -192
- data/lib/starter_web/_data/builder/defaults/blog_navigator.yml +389 -0
- data/lib/starter_web/_data/j1_config.yml +55 -39
- data/lib/starter_web/_data/locales/be.yml +269 -0
- data/lib/starter_web/_data/locales/cs.yml +218 -0
- data/lib/starter_web/_data/locales/da.yml +213 -0
- data/lib/starter_web/_data/locales/de.yml +222 -0
- data/lib/starter_web/_data/locales/el.yml +215 -0
- data/lib/starter_web/_data/locales/en.yml +215 -0
- data/lib/starter_web/_data/locales/es.yml +219 -0
- data/lib/starter_web/_data/locales/et.yml +207 -0
- data/lib/starter_web/_data/locales/fi.yml +211 -0
- data/lib/starter_web/_data/locales/fr.yml +219 -0
- data/lib/starter_web/_data/locales/hr.yml +240 -0
- data/lib/starter_web/_data/locales/hu.yml +196 -0
- data/lib/starter_web/_data/locales/it.yml +215 -0
- data/lib/starter_web/_data/locales/lv.yml +233 -0
- data/lib/starter_web/_data/locales/nl.yml +213 -0
- data/lib/starter_web/_data/locales/pl.yml +241 -0
- data/lib/starter_web/_data/locales/pt.yml +217 -0
- data/lib/starter_web/_data/locales/readme +4 -0
- data/lib/starter_web/_data/locales/ro.yml +209 -0
- data/lib/starter_web/_data/locales/ru.yml +269 -0
- data/lib/starter_web/_data/locales/sk.yml +211 -0
- data/lib/starter_web/_data/locales/sl.yml +209 -0
- data/lib/starter_web/_data/locales/sv.yml +207 -0
- data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +10 -10
- data/lib/starter_web/_data/modules/defaults/quicksearch.yml +6 -5
- data/lib/starter_web/_data/modules/defaults/themer.yml +1 -0
- data/lib/starter_web/_data/modules/quicksearch.yml +4 -1
- data/lib/starter_web/_data/modules/themer.yml +1 -0
- data/lib/starter_web/_data/plugins/defaults/paginator.yml +7 -6
- data/lib/starter_web/_data/plugins/paginator.yml +3 -0
- data/lib/starter_web/_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/_plugins/date-i18n.rb +67 -0
- data/lib/starter_web/_plugins/lunr_index.rb +5 -1
- data/lib/starter_web/assets/images/modules/attics/markus-spiske-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/matthew-dockery-1920x1280.jpg +0 -0
- data/lib/starter_web/collections/posts/public/featured/_posts/2020-01-01-about-cookies.adoc +1 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-01-site-generators.adoc +1 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-03-about-j1.adoc +1 -1
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +2 -2
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +2 -2
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +2 -2
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +2 -2
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +1 -1
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +1 -1
- data/lib/starter_web/index.html +5 -2
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/000_intro.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/100_chapter.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/200_chapter.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/900_references.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/100_chapter.asciidoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/200_chapter.asciidoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +2 -2
- data/lib/starter_web/pages/public/blog/navigator/archive.html +82 -17
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +92 -28
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +85 -20
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +98 -41
- data/lib/starter_web/pages/public/blog/navigator/index.html +2 -1
- data/lib/starter_web/pages/public/learn/quickstart.adoc +473 -0
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
- 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 +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +2 -2
- data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +118 -0
- data/lib/starter_web/pages/public/legal/de/100_impress.adoc +90 -0
- data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +322 -0
- data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +125 -0
- data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +8 -5
- data/lib/starter_web/pages/public/legal/en/200_impress.adoc +7 -5
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +10 -8
- data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +36 -18
- data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +3 -2
- data/lib/starter_web/pages/public/previewer/iframer.adoc +1 -1
- data/lib/starter_web/pages/public/previewer/rouge.adoc +1 -1
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +35 -4
- data/_includes/themes/j1/procedures/global/pager.proc +0 -79
- data/lib/starter_web/pages/public/cookieConsent.adoc +0 -96
@@ -1,4 +1,13 @@
|
|
1
1
|
---
|
2
|
+
date: 2021-01-01 00:00:00
|
3
|
+
description: >
|
4
|
+
Customized HTML error page
|
5
|
+
|
6
|
+
categories: [ Error page ]
|
7
|
+
tags: [ HTML, 501 ]
|
8
|
+
|
9
|
+
exclude_from_search: true
|
10
|
+
|
2
11
|
regenerate: false
|
3
12
|
permalink: /501.html
|
4
13
|
http_error: 501
|
@@ -43,8 +52,14 @@ sitemap: false
|
|
43
52
|
|
44
53
|
{% capture brand_image %}{{images_dir}}/{{brand_image_source}}{% endcapture %}
|
45
54
|
|
46
|
-
{%
|
47
|
-
|
55
|
+
{% comment %} language detection
|
56
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
57
|
+
{% if site.language == "en" %}
|
58
|
+
{% assign language = "en" %}
|
59
|
+
{% elsif site.language == "de"%}
|
60
|
+
{% assign language = "de" %}
|
61
|
+
{% else %}
|
62
|
+
{% assign language = "en" %}
|
48
63
|
{% endif %}
|
49
64
|
|
50
65
|
{% if language == 'en' %}
|
@@ -1,4 +1,13 @@
|
|
1
1
|
---
|
2
|
+
date: 2021-01-01 00:00:00
|
3
|
+
description: >
|
4
|
+
Customized HTML error page
|
5
|
+
|
6
|
+
categories: [ Error page ]
|
7
|
+
tags: [ HTML, 502 ]
|
8
|
+
|
9
|
+
exclude_from_search: true
|
10
|
+
|
2
11
|
regenerate: false
|
3
12
|
permalink: /502.html
|
4
13
|
http_error: 502
|
@@ -43,8 +52,14 @@ sitemap: false
|
|
43
52
|
|
44
53
|
{% capture brand_image %}{{images_dir}}/{{brand_image_source}}{% endcapture %}
|
45
54
|
|
46
|
-
{%
|
47
|
-
|
55
|
+
{% comment %} language detection
|
56
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
57
|
+
{% if site.language == "en" %}
|
58
|
+
{% assign language = "en" %}
|
59
|
+
{% elsif site.language == "de"%}
|
60
|
+
{% assign language = "de" %}
|
61
|
+
{% else %}
|
62
|
+
{% assign language = "en" %}
|
48
63
|
{% endif %}
|
49
64
|
|
50
65
|
{% if language == 'en' %}
|
@@ -1,4 +1,12 @@
|
|
1
|
-
---
|
1
|
+
---date: 2021-01-01 00:00:00
|
2
|
+
description: >
|
3
|
+
Customized HTML error page
|
4
|
+
|
5
|
+
categories: [ Error page ]
|
6
|
+
tags: [ HTML, 503 ]
|
7
|
+
|
8
|
+
exclude_from_search: true
|
9
|
+
|
2
10
|
regenerate: false
|
3
11
|
permalink: /503.html
|
4
12
|
http_error: 503
|
@@ -45,8 +53,14 @@ sitemap: false
|
|
45
53
|
|
46
54
|
{% capture brand_image %}{{images_dir}}/{{brand_image_source}}{% endcapture %}
|
47
55
|
|
48
|
-
{%
|
49
|
-
|
56
|
+
{% comment %} language detection
|
57
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
58
|
+
{% if site.language == "en" %}
|
59
|
+
{% assign language = "en" %}
|
60
|
+
{% elsif site.language == "de"%}
|
61
|
+
{% assign language = "de" %}
|
62
|
+
{% else %}
|
63
|
+
{% assign language = "en" %}
|
50
64
|
{% endif %}
|
51
65
|
|
52
66
|
{% if language == 'en' %}
|
@@ -39,7 +39,7 @@ regenerate: true
|
|
39
39
|
{% assign tracking_enabled = template_config.analytics.enabled %}
|
40
40
|
{% assign tracking_id = template_config.analytics.google.tracking_id %}
|
41
41
|
|
42
|
-
{% assign comment_provider
|
42
|
+
{% assign comment_provider = site.data.j1_config.comments.provider %}
|
43
43
|
|
44
44
|
{% comment %} Set config options
|
45
45
|
-------------------------------------------------------------------------------- {% endcomment %}
|
@@ -101,6 +101,7 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
|
|
101
101
|
var secure;
|
102
102
|
var logText;
|
103
103
|
var cookie_written;
|
104
|
+
var language;
|
104
105
|
|
105
106
|
// NOTE: RegEx for tracking_id: ^(G|UA|YT|MO)-[a-zA-Z0-9-]+$
|
106
107
|
// See: https://stackoverflow.com/questions/20411767/how-to-validate-google-analytics-tracking-id-using-a-javascript-function/20412153
|
@@ -129,6 +130,7 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
|
|
129
130
|
hostname = url.hostname;
|
130
131
|
domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
|
131
132
|
secure = (url.protocol.includes('https')) ? true : false;
|
133
|
+
language = "{{site.language}}";
|
132
134
|
|
133
135
|
// set domain used by cookies
|
134
136
|
if(domain !== 'localhost') {
|
@@ -171,10 +173,10 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
|
|
171
173
|
j1.cookieConsent = new BootstrapCookieConsent({
|
172
174
|
contentURL: moduleOptions.contentURL,
|
173
175
|
cookieName: moduleOptions.cookieName,
|
174
|
-
language:
|
176
|
+
language: language,
|
175
177
|
whitelisted: moduleOptions.whitelisted,
|
176
178
|
reloadPageOnChange: moduleOptions.reloadPageOnChange,
|
177
|
-
xhr_data_element: moduleOptions.xhr_data_element + '-' +
|
179
|
+
xhr_data_element: moduleOptions.xhr_data_element + '-' + language,
|
178
180
|
sameSite: moduleOptions.sameSite,
|
179
181
|
secure: secure,
|
180
182
|
postSelectionCallback: function () {j1.adapter.cookieConsent.cbCookie()}
|
@@ -263,11 +265,10 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
|
|
263
265
|
// logger.warn('\n' + 'tracking enabled, tracking id found: ' + tracking_id);
|
264
266
|
// }
|
265
267
|
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
}
|
268
|
+
logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
|
269
|
+
j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
270
|
+
logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
|
271
|
+
gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
271
272
|
|
272
273
|
if (user_agent.includes('iPad')) {
|
273
274
|
logger.warn('\n' + 'product detected : ' + platform.product);
|
@@ -41,41 +41,44 @@ regenerate: true
|
|
41
41
|
|
42
42
|
{% comment %} Set config files
|
43
43
|
-------------------------------------------------------------------------------- {% endcomment %}
|
44
|
-
{% assign blocks
|
45
|
-
{% assign modules
|
46
|
-
{% assign template_config
|
44
|
+
{% assign blocks = site.data.blocks %}
|
45
|
+
{% assign modules = site.data.modules %}
|
46
|
+
{% assign template_config = site.data.j1_config %}
|
47
47
|
|
48
48
|
{% comment %} Set config data
|
49
49
|
-------------------------------------------------------------------------------- {% endcomment %}
|
50
|
-
{% assign banner_config_defaults
|
51
|
-
{% assign banner_config_settings
|
52
|
-
{% assign panel_config_defaults
|
53
|
-
{% assign panel_config_settings
|
54
|
-
{% assign footer_config_defaults
|
55
|
-
{% assign toccer_defaults
|
56
|
-
|
57
|
-
{% assign themer_defaults
|
58
|
-
{% assign themer_settings
|
59
|
-
|
60
|
-
{% assign
|
61
|
-
|
62
|
-
|
63
|
-
{% assign
|
50
|
+
{% assign banner_config_defaults = blocks.defaults.banner.defaults %}
|
51
|
+
{% assign banner_config_settings = blocks.banner.settings %}
|
52
|
+
{% assign panel_config_defaults = blocks.defaults.panel.defaults %}
|
53
|
+
{% assign panel_config_settings = blocks.panel.settings %}
|
54
|
+
{% assign footer_config_defaults = blocks.defaults.footer.defaults %}
|
55
|
+
{% assign toccer_defaults = modules.defaults.toccer.defaults %}
|
56
|
+
|
57
|
+
{% assign themer_defaults = modules.defaults.themer.defaults %}
|
58
|
+
{% assign themer_settings = modules.themer.settings %}
|
59
|
+
|
60
|
+
{% assign tracking_enabled = template_config.analytics.enabled %}
|
61
|
+
{% assign tracking_id = template_config.analytics.google.tracking_id %}
|
62
|
+
|
63
|
+
{% assign authentication_defaults = modules.defaults.authentication.defaults %}
|
64
|
+
{% assign authentication_settings = modules.authentication.settings %}
|
64
65
|
|
65
66
|
{% comment %} Set config options
|
66
67
|
-------------------------------------------------------------------------------- {% endcomment %}
|
67
|
-
{% assign toccer_options
|
68
|
-
{% assign themer_options
|
68
|
+
{% assign toccer_options = toccer_defaults | merge: toccer_settings %}
|
69
|
+
{% assign themer_options = themer_defaults| merge: themer_settings %}
|
69
70
|
|
70
|
-
{% assign authentication_options
|
71
|
+
{% assign authentication_options = authentication_defaults | merge: authentication_settings %}
|
71
72
|
|
72
|
-
{% assign footer_id
|
73
|
-
{% assign footer_data_path
|
74
|
-
{% assign banner_data_path
|
75
|
-
{% assign panel_data_path
|
73
|
+
{% assign footer_id = footer_config_defaults.container-id %}
|
74
|
+
{% assign footer_data_path = footer_config_defaults.data_path %}
|
75
|
+
{% assign banner_data_path = banner_config_defaults.data_path %}
|
76
|
+
{% assign panel_data_path = panel_config_defaults.data_path %}
|
76
77
|
|
77
|
-
{% assign
|
78
|
-
{% assign
|
78
|
+
{% assign themer_enabled = modules.themer_options.enabled %}
|
79
|
+
{% assign themer_reloadPageOnChange = modules.themer_options.reloadPageOnChange %}
|
80
|
+
{% assign themer_hideOnReload = modules.themer_options.hideOnReload %}
|
81
|
+
{% assign comment_provider = template_config.comments.provider %}
|
79
82
|
|
80
83
|
{% comment %} Set variables
|
81
84
|
-------------------------------------------------------------------------------- {% endcomment %}
|
@@ -98,6 +101,24 @@ regenerate: true
|
|
98
101
|
{% assign production = true %}
|
99
102
|
{% endif %}
|
100
103
|
|
104
|
+
{% comment %} language detection
|
105
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
106
|
+
{% if site.language == "en" %}
|
107
|
+
{% assign language = "en" %}
|
108
|
+
{% elsif site.language == "de"%}
|
109
|
+
{% assign language = "de" %}
|
110
|
+
{% else %}
|
111
|
+
{% assign language = "en" %}
|
112
|
+
{% endif %}
|
113
|
+
|
114
|
+
{% if language == "en" %}
|
115
|
+
{% assign comments_headline = template_config.comments.comments_headline.en %}
|
116
|
+
{% endif %}
|
117
|
+
|
118
|
+
{% if language == "de" %}
|
119
|
+
{% assign comments_headline = template_config.comments.comments_headline.de %}
|
120
|
+
{% endif %}
|
121
|
+
|
101
122
|
/*
|
102
123
|
# -----------------------------------------------------------------------------
|
103
124
|
# ~/assets/themes/j1/adapter/js/j1_template.js
|
@@ -167,7 +188,7 @@ var j1 = (function () {
|
|
167
188
|
var themeCss;
|
168
189
|
var cssExtension = (environment === 'production')
|
169
190
|
? '.min.css'
|
170
|
-
: '.css'
|
191
|
+
: '.css'
|
171
192
|
|
172
193
|
// Pathes of J1 data files
|
173
194
|
var colors_data_path = '{{template_config.colors_data_path}}';
|
@@ -212,9 +233,8 @@ var j1 = (function () {
|
|
212
233
|
};
|
213
234
|
var user_state = {
|
214
235
|
'writer': 'j1.adapter',
|
215
|
-
'theme_css': '',
|
216
|
-
'theme_css': '',
|
217
236
|
'theme_name': '',
|
237
|
+
'theme_css': '',
|
218
238
|
'theme_author': '',
|
219
239
|
'theme_version': '{{template_version}}',
|
220
240
|
'session_active': false,
|
@@ -260,6 +280,9 @@ var j1 = (function () {
|
|
260
280
|
var date = new Date();
|
261
281
|
var timestamp_now = date.toISOString();
|
262
282
|
var curr_state = 'started';
|
283
|
+
var gaCookies = j1.findCookie('_ga');
|
284
|
+
var j1Cookies = j1.findCookie('j1');
|
285
|
+
var themerOptions = $.extend({}, {{themer_options | replace: '=>', ':' | replace: 'nil', '""' }});
|
263
286
|
|
264
287
|
// -----------------------------------------------------------------------
|
265
288
|
// options loader
|
@@ -300,26 +323,31 @@ var j1 = (function () {
|
|
300
323
|
user_state.last_session_ts = timestamp_now;
|
301
324
|
|
302
325
|
if (!user_consent.analyses || !user_consent.personalization) {
|
303
|
-
//
|
326
|
+
// rewrite consent|state cookies to session
|
327
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_consent);
|
304
328
|
cookie_written = j1.writeCookie({
|
305
329
|
name: cookie_names.user_consent,
|
306
330
|
data: user_consent,
|
307
331
|
samesite: 'Strict',
|
308
|
-
secure: secure
|
332
|
+
secure: secure,
|
333
|
+
expires: 0
|
309
334
|
});
|
310
335
|
if (!cookie_written) {
|
311
336
|
logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_consent);
|
312
337
|
}
|
338
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
|
313
339
|
cookie_written = j1.writeCookie({
|
314
340
|
name: cookie_names.user_state,
|
315
341
|
data: user_state,
|
316
342
|
samesite: 'Strict',
|
317
|
-
secure: secure
|
343
|
+
secure: secure,
|
344
|
+
expires: 0
|
318
345
|
});
|
319
346
|
if (!cookie_written) {
|
320
347
|
logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_consent);
|
321
348
|
}
|
322
349
|
} else {
|
350
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
|
323
351
|
cookie_written = j1.writeCookie({
|
324
352
|
name: cookie_names.user_state,
|
325
353
|
data: user_state,
|
@@ -332,9 +360,8 @@ var j1 = (function () {
|
|
332
360
|
}
|
333
361
|
}
|
334
362
|
} else {
|
335
|
-
// jadams, 2021-07-11: on beforeunload, a
|
336
|
-
|
337
|
-
logger.fatal('\n' + 'missing cookie detected: ' + cookie_names.user_state);
|
363
|
+
// jadams, 2021-07-11: on beforeunload, a user state cookie is expected
|
364
|
+
logger.error('\n' + 'missing cookie detected: ' + cookie_names.user_state);
|
338
365
|
}
|
339
366
|
}); // END beforeunload
|
340
367
|
|
@@ -351,7 +378,8 @@ var j1 = (function () {
|
|
351
378
|
name: cookie_names.user_session,
|
352
379
|
data: user_session,
|
353
380
|
samesite: 'Strict',
|
354
|
-
secure: secure
|
381
|
+
secure: secure,
|
382
|
+
expires: 0
|
355
383
|
});
|
356
384
|
if (!cookie_written) {
|
357
385
|
logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
|
@@ -376,22 +404,29 @@ var j1 = (function () {
|
|
376
404
|
// for what reason.
|
377
405
|
if (!user_state) {
|
378
406
|
logger.error('\n' + 'cookie not found: ' + cookie_names.user_state);
|
407
|
+
logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
|
408
|
+
j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
409
|
+
logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
|
410
|
+
gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
379
411
|
user_state = j1.readCookie(cookie_names.user_state);
|
380
412
|
user_state.session_active = true;
|
381
413
|
}
|
382
414
|
|
383
415
|
if (!user_consent.analyses || !user_consent.personalization) {
|
384
|
-
//
|
416
|
+
// rewrite consent|state cookies to session
|
417
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
|
385
418
|
cookie_written = j1.writeCookie({
|
386
419
|
name: cookie_names.user_state,
|
387
420
|
data: user_state,
|
388
421
|
samesite: 'Strict',
|
389
|
-
secure: secure
|
422
|
+
secure: secure,
|
423
|
+
expires: 0
|
390
424
|
});
|
391
425
|
if (!cookie_written) {
|
392
426
|
logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_state);
|
393
427
|
}
|
394
428
|
} else {
|
429
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
|
395
430
|
cookie_written = j1.writeCookie({
|
396
431
|
name: cookie_names.user_state,
|
397
432
|
data: user_state,
|
@@ -428,11 +463,13 @@ var j1 = (function () {
|
|
428
463
|
|
429
464
|
logger.info(logText);
|
430
465
|
logger.info('\n' + 'update user session cookie');
|
466
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_session);
|
431
467
|
cookie_written = j1.writeCookie({
|
432
468
|
name: cookie_names.user_session,
|
433
469
|
data: user_session,
|
434
470
|
samesite: 'Strict',
|
435
|
-
secure: secure
|
471
|
+
secure: secure,
|
472
|
+
expires: 0
|
436
473
|
});
|
437
474
|
|
438
475
|
if (!cookie_written) {
|
@@ -475,11 +512,13 @@ var j1 = (function () {
|
|
475
512
|
logText = '\n' + 'mode detected: ' + user_session.mode;
|
476
513
|
|
477
514
|
logger.info(logText);
|
515
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_session);
|
478
516
|
cookie_written = j1.writeCookie({
|
479
517
|
name: cookie_names.user_session,
|
480
518
|
data: user_session,
|
481
519
|
samesite: 'Strict',
|
482
|
-
secure: secure
|
520
|
+
secure: secure,
|
521
|
+
expires: 0
|
483
522
|
});
|
484
523
|
if (!cookie_written) {
|
485
524
|
logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
|
@@ -535,11 +574,13 @@ var j1 = (function () {
|
|
535
574
|
}
|
536
575
|
|
537
576
|
logger.info('\n' + 'update user session cookie');
|
577
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_session);
|
538
578
|
cookie_written = j1.writeCookie({
|
539
579
|
name: cookie_names.user_session,
|
540
580
|
data: user_session,
|
541
581
|
samesite: 'Strict',
|
542
|
-
secure: secure
|
582
|
+
secure: secure,
|
583
|
+
expires: 0
|
543
584
|
});
|
544
585
|
|
545
586
|
if (!cookie_written) {
|
@@ -557,11 +598,13 @@ var j1 = (function () {
|
|
557
598
|
// logger.info(logText);
|
558
599
|
|
559
600
|
user_session.timestamp = timestamp_now;
|
601
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_session);
|
560
602
|
cookie_written = j1.writeCookie({
|
561
603
|
name: cookie_names.user_session,
|
562
604
|
data: user_session,
|
563
605
|
samesite: 'Strict',
|
564
|
-
secure: secure
|
606
|
+
secure: secure,
|
607
|
+
expires: 0
|
565
608
|
});
|
566
609
|
if (!cookie_written) {
|
567
610
|
logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
|
@@ -906,11 +949,13 @@ var j1 = (function () {
|
|
906
949
|
user_session = j1.mergeData(user_session, data);
|
907
950
|
|
908
951
|
user_session.current_page = current_url.pathname;
|
952
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_session);
|
909
953
|
cookie_written = j1.writeCookie({
|
910
954
|
name: cookie_names.user_session,
|
911
955
|
data: user_session,
|
912
956
|
samesite: 'Strict',
|
913
|
-
secure: secure
|
957
|
+
secure: secure,
|
958
|
+
expires: 0
|
914
959
|
});
|
915
960
|
if (!cookie_written) {
|
916
961
|
logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
|
@@ -956,7 +1001,7 @@ var j1 = (function () {
|
|
956
1001
|
} else {
|
957
1002
|
if (comments) {
|
958
1003
|
logger.warn('\n' + 'enable comment provider: ' + comment_provider);
|
959
|
-
$('#main-content').append('<h2 id="leave-a-comment" class="mt-4">
|
1004
|
+
$('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
|
960
1005
|
if (comment_provider === 'disqus') {
|
961
1006
|
logger.info('\n' + 'load comment provider code: ' + comment_provider);
|
962
1007
|
$('#main-content').append('<div id="disqus_thread"></div>');
|
@@ -977,6 +1022,16 @@ var j1 = (function () {
|
|
977
1022
|
// display page
|
978
1023
|
$('#no_flicker').css('display', 'block');
|
979
1024
|
|
1025
|
+
// add recommended title to hyvor iframe for SEO optimization (if loadad)
|
1026
|
+
if (comment_provider === 'hyvor') {
|
1027
|
+
var dependencies_met_load_finished = setInterval (function () {
|
1028
|
+
if ($('#hyvor-talk-view').children().length) {
|
1029
|
+
$('#hyvor-talk-iframe').prop('title', 'Hyvor talk iframe');
|
1030
|
+
clearInterval(dependencies_met_load_finished);
|
1031
|
+
}
|
1032
|
+
}, 25);
|
1033
|
+
}
|
1034
|
+
|
980
1035
|
// NOTE: Placed tracking warning/info here because page may reloaded
|
981
1036
|
// after cookie consent selection
|
982
1037
|
if (user_consent.analyses) {
|
@@ -1081,7 +1136,7 @@ var j1 = (function () {
|
|
1081
1136
|
} else {
|
1082
1137
|
if (comments) {
|
1083
1138
|
logger.warn('\n' + 'enable comment provider: ' + comment_provider);
|
1084
|
-
$('#main-content').append('<h2 id="leave-a-comment" class="mt-4">
|
1139
|
+
$('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
|
1085
1140
|
if (comment_provider === 'disqus') {
|
1086
1141
|
logger.info('\n' + 'load comment provider code: ' + comment_provider);
|
1087
1142
|
$('#main-content').append('<div id="disqus_thread"></div>');
|
@@ -1102,6 +1157,16 @@ var j1 = (function () {
|
|
1102
1157
|
// display page
|
1103
1158
|
$('#no_flicker').css('display', 'block');
|
1104
1159
|
|
1160
|
+
// add recommended title to hyvor iframe for SEO optimization (if loadad)
|
1161
|
+
if (comment_provider === 'hyvor') {
|
1162
|
+
var dependencies_met_load_finished = setInterval (function () {
|
1163
|
+
if ($('#hyvor-talk-view').children().length) {
|
1164
|
+
$('#hyvor-talk-iframe').prop('title', 'Hyvor talk iframe');
|
1165
|
+
clearInterval(dependencies_met_load_finished);
|
1166
|
+
}
|
1167
|
+
}, 25);
|
1168
|
+
}
|
1169
|
+
|
1105
1170
|
// NOTE: Placed tracking warning/info here because page may reloaded
|
1106
1171
|
// after cookie consent selection
|
1107
1172
|
if (user_consent.analyses) {
|
@@ -1122,11 +1187,13 @@ var j1 = (function () {
|
|
1122
1187
|
$('#quickLinksSignInOutButton').css('display', 'none');
|
1123
1188
|
|
1124
1189
|
user_session.current_page = current_url.pathname;
|
1190
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_session);
|
1125
1191
|
cookie_written = j1.writeCookie({
|
1126
1192
|
name: cookie_names.user_session,
|
1127
1193
|
data: user_session,
|
1128
1194
|
samesite: 'Strict',
|
1129
|
-
secure: secure
|
1195
|
+
secure: secure,
|
1196
|
+
expires: 0
|
1130
1197
|
});
|
1131
1198
|
if (!cookie_written) {
|
1132
1199
|
logger.error('\n' + 'failed to write cookie: ' + cookie_names.user_session);
|
@@ -1501,6 +1568,14 @@ var j1 = (function () {
|
|
1501
1568
|
// https://developer.mozilla.org/de/docs/Web/HTTP/Headers/Set-Cookie/SameSite
|
1502
1569
|
// https://www.smarketer.de/blog/chrome-update-80-cookies/
|
1503
1570
|
// -------------------------------------------------------------------------
|
1571
|
+
// SESSION Cookies:
|
1572
|
+
// NOT putting an EXPIRES part in will create a session cookie.
|
1573
|
+
// -------------------------------------------------------------------------
|
1574
|
+
// REMOVING Cookies: Cookies get removed immediately, if the expires
|
1575
|
+
// part points to a PAST date (e.g. 01 Jan 1970 00:00:00 UTC).
|
1576
|
+
// -------------------------------------------------------------------------
|
1577
|
+
// MAX-AGE Cookies: To leave cookies for a specific time, set the expires
|
1578
|
+
// part into a FUTUTE date. FOR GDPR compliance, MAX-AGE is 365 days.
|
1504
1579
|
// TODO:
|
1505
1580
|
// Change attribute "Secure" to true, if HTTPS is used.
|
1506
1581
|
// Checks and config changes are to be done.
|
@@ -1517,25 +1592,27 @@ var j1 = (function () {
|
|
1517
1592
|
// must now also specify the Secure attribute (they require a secure
|
1518
1593
|
// context/HTTPS).
|
1519
1594
|
// -------------------------------------------------------------------------
|
1520
|
-
writeCookie: function (options /*name, data, [path, expires, samesite, http_only, secure]*/) {
|
1595
|
+
writeCookie: function (options /*name, data, [path, expires, domain, samesite, http_only, secure]*/) {
|
1596
|
+
var date = new Date();
|
1597
|
+
var timestamp_now = date.toISOString();
|
1598
|
+
var cookie_data = {};
|
1599
|
+
var data_json;
|
1600
|
+
var data_encoded;
|
1601
|
+
var expires;
|
1602
|
+
var stringifiedAttributes = '';
|
1603
|
+
|
1521
1604
|
var defaults = {
|
1522
1605
|
data: {},
|
1523
1606
|
name: '',
|
1524
1607
|
path: '/',
|
1525
1608
|
expires: 0,
|
1609
|
+
domain: 'localhost',
|
1526
1610
|
samesite: 'Strict',
|
1527
1611
|
http_only: false,
|
1528
1612
|
secure: false
|
1529
1613
|
};
|
1530
|
-
var settings = $.extend(defaults, options);
|
1531
1614
|
|
1532
|
-
var
|
1533
|
-
var timestamp_now = date.toISOString();
|
1534
|
-
var cookie_data = {};
|
1535
|
-
var data_json;
|
1536
|
-
var data_encoded;
|
1537
|
-
var expires;
|
1538
|
-
var stringifiedAttributes = '';
|
1615
|
+
var settings = $.extend(defaults, options);
|
1539
1616
|
|
1540
1617
|
cookie_data.timestamp = timestamp_now;
|
1541
1618
|
|
@@ -1550,26 +1627,21 @@ var j1 = (function () {
|
|
1550
1627
|
data_encoded = window.btoa(data_json);
|
1551
1628
|
}
|
1552
1629
|
|
1553
|
-
|
1554
|
-
stringifiedAttributes += '; ' + 'path=' + settings.path;
|
1555
|
-
// }
|
1630
|
+
stringifiedAttributes += '; ' + 'path=' + settings.path;
|
1556
1631
|
|
1557
1632
|
if (settings.expires > 0) {
|
1558
|
-
|
1559
|
-
stringifiedAttributes += '; ' + 'expires=' +
|
1633
|
+
date.setTime(date.getTime() + (settings.expires * 24 * 60 * 60 * 1000));
|
1634
|
+
stringifiedAttributes += '; ' + 'expires=' + date.toUTCString();
|
1560
1635
|
}
|
1561
1636
|
|
1562
|
-
|
1563
|
-
stringifiedAttributes += '; ' + 'SameSite=' + settings.samesite;
|
1564
|
-
// }
|
1637
|
+
stringifiedAttributes += '; ' + 'SameSite=' + settings.samesite;
|
1565
1638
|
|
1566
|
-
// stringify cookie attributes
|
1567
1639
|
if (settings.secure) {
|
1568
1640
|
stringifiedAttributes += '; ' + 'secure=' + settings.secure;
|
1569
|
-
// document.cookie = settings.name + '=' + content +'; path=' + settings.path + '; ' + 'SameSite=' + settings.samesite + '; secure';
|
1570
1641
|
}
|
1571
1642
|
|
1572
1643
|
// write the cookie
|
1644
|
+
// document.cookie = settings.name + '=' + content + '; path=' + settings.path + '; domain=' + settings.domain + '; ' + 'SameSite=' + settings.samesite + '; secure';
|
1573
1645
|
document.cookie = settings.name + '=' + data_encoded + stringifiedAttributes;
|
1574
1646
|
|
1575
1647
|
if (j1.existsCookie(settings.name)) {
|