j1-template 2021.1.9 → 2021.1.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97a2ffad558d631cb06dbbac5033bbd4acd2a0fd98d7008418521e49c012e463
4
- data.tar.gz: 853ef7944411765e0c17fa317a313ce32a1d0942b64fc6a210add62929eb1a78
3
+ metadata.gz: ae5b79c95e56c200832abdfc497c3ed788f54303351ea239554c9fbad3fa7f48
4
+ data.tar.gz: db7b40a09194fc449699ff6f4a21a4b432c7fd2a94e05cff88c598ef6e2ab175
5
5
  SHA512:
6
- metadata.gz: 3f16a6a99c5c13cee200aa184bb54804f1d7f4f41f32bf301198d44a896c70ebadc5aa7aa148f5a99d135aef24d4367f215f76943c1d65983be35863a10326e4
7
- data.tar.gz: 4a29e5243834485b4c7a35174777614e6e31ff17a20b24619069772c60c6cc9ca9b27faf66fec5ce91a4de9de065a7405bc38ce20360d635147aa1c7cf835506
6
+ metadata.gz: 4315042ef6c11323174b561b7c28bf4ea98fe317b35cfe2ad58ed3856fe3c09a929aa5e2cdb3bd2f9e600c3d6b250a3a21b65e33cd6423e0f22901cc1cdf1961
7
+ data.tar.gz: 9783b9f09b8e669fb94dc49fe0cae9f5cb23d822591a4371d8f70eee2dadafaaf57c25968b33a0a2d00f3141fcc73ddcd9093402adb72dd2bb09c683aa1fa0c3
@@ -51,7 +51,7 @@ sitemap: false
51
51
 
52
52
  {% if language == 'en' %}
53
53
  {% assign title = "No Content" %}
54
- {% assign reason = "The request processed successfully. <br/> he page has been disabled for technical reasons." %}
54
+ {% assign reason = "The request processed successfully. <br/> This page has been disabled for technical reasons." %}
55
55
  {% assign contact_issue = "Technical Contact" %}
56
56
  {% endif %}
57
57
 
@@ -28,14 +28,16 @@ regenerate: true
28
28
  {% comment %} Set config files
29
29
  -------------------------------------------------------------------------------- {% endcomment %}
30
30
  {% assign environment = site.environment %}
31
+ {% assign blocks = site.data.blocks %}
31
32
  {% assign modules = site.data.modules %}
33
+ {% assign template_config = site.data.j1_config %}
32
34
 
33
35
  {% comment %} Set config data
34
36
  -------------------------------------------------------------------------------- {% endcomment %}
35
37
  {% assign consent_defaults = modules.defaults.cookieconsent.defaults %}
36
38
  {% assign consent_settings = modules.cookieconsent.settings %}
37
- {% assign tracking_enabled = site.data.j1_config.analytics.enabled %}
38
- {% assign tracking_id = site.data.j1_config.analytics.google.tracking_id %}
39
+ {% assign tracking_enabled = template_config.analytics.enabled %}
40
+ {% assign tracking_id = template_config.analytics.google.tracking_id %}
39
41
 
40
42
  {% comment %} Set config options
41
43
  -------------------------------------------------------------------------------- {% endcomment %}
@@ -225,20 +227,25 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
225
227
  $('#quickLinksCookieButton').css('display', 'block');
226
228
  }
227
229
 
230
+ // jadams, 2021-07-11: moded to j1 adapter (displayPage)
231
+ //
228
232
  // NOTE: Warning needs to be moved to another module
229
233
  // because page is reloaded after selection
230
234
  //
231
- if (tracking_enabled && !tracking_id_valid) {
232
- logger.warn('tracking enabled, but invalid tracking id found: ' + tracking_id);
235
+ // if (tracking_enabled && !tracking_id_valid) {
236
+ // logger.error('tracking enabled, but invalid tracking id found: ' + tracking_id);
237
+ // } else {
238
+ // logger.warn('tracking enabled, tracking id found: ' + tracking_id);
239
+ // }
240
+
241
+ // for development only
242
+ if (environment === 'development') {
243
+ gaCookies.forEach(item => console.log('cookieConsent: ' + item));
233
244
  }
234
245
 
235
- // local adapter
236
-
237
- // for debugging
238
- // gaCookies.forEach(item => console.log('cookieConsent: ' + item));
239
-
240
246
  if (user_agent.includes('iPad')) {
241
247
  logger.warn('Product detected : ' + platform.product);
248
+ logger.warn('Skip deleting (unwanted) cookies for this platform');
242
249
  }
243
250
 
244
251
  // Manage Google Analytics OptIn/Out
@@ -41,9 +41,9 @@ regenerate: true
41
41
 
42
42
  {% comment %} Set config files
43
43
  -------------------------------------------------------------------------------- {% endcomment %}
44
- {% assign template_config = site.data.j1_config %}
45
44
  {% assign blocks = site.data.blocks %}
46
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 %}
@@ -56,6 +56,8 @@ regenerate: true
56
56
  {% assign toccer_settings = modules.toccer.settings %}
57
57
  {% assign themer_defaults = modules.defaults.themer.defaults %}
58
58
  {% assign themer_settings = modules.themer.settings %}
59
+ {% assign tracking_enabled = template_config.analytics.enabled %}
60
+ {% assign tracking_id = template_config.analytics.google.tracking_id %}
59
61
 
60
62
  {% assign authentication_defaults = modules.defaults.authentication.defaults %}
61
63
  {% assign authentication_settings = modules.authentication.settings %}
@@ -122,6 +124,11 @@ var j1 = (function () {
122
124
  var state = 'not_started';
123
125
  var mode = 'not_detected';
124
126
 
127
+ // Tracking information (GA)
128
+ var tracking_enabled = ('{{tracking_enabled}}' === 'true') ? true: false;
129
+ var tracking_id = '{{tracking_id}}';
130
+ var tracking_id_valid = (tracking_id.includes('tracking-id')) ? false : true;
131
+
125
132
  var current_user_data;
126
133
  var current_page;
127
134
  var previous_page;
@@ -157,14 +164,13 @@ var j1 = (function () {
157
164
  var baseUrl;
158
165
  var referrer;
159
166
 
167
+ // initial cookie values
160
168
  var cookie_names = {
161
169
  'app_session': '{{template_config.cookies.app_session}}',
162
170
  'user_session': '{{template_config.cookies.user_session}}',
163
171
  'user_state': '{{template_config.cookies.user_state}}',
164
172
  'user_consent': '{{template_config.cookies.user_consent}}'
165
173
  };
166
-
167
- // user SESSION cookie (initial values)
168
174
  var user_session = {
169
175
  'mode': 'web',
170
176
  'writer': 'web',
@@ -182,7 +188,6 @@ var j1 = (function () {
182
188
  'previous_page': 'na',
183
189
  'last_pager': '/pages/public/blog/navigator/'
184
190
  };
185
-
186
191
  var user_state = {
187
192
  'theme_css': '',
188
193
  'theme_name': '',
@@ -191,8 +196,7 @@ var j1 = (function () {
191
196
  'session_active': false,
192
197
  'last_session_ts': ''
193
198
  };
194
-
195
- var user_consent;
199
+ var user_consent = {};
196
200
 
197
201
  // ---------------------------------------------------------------------------
198
202
  // helper functions
@@ -223,12 +227,12 @@ var j1 = (function () {
223
227
  // -----------------------------------------------------------------------
224
228
  // global var (function)
225
229
  // -----------------------------------------------------------------------
226
- var logger = log4javascript.getLogger('j1.init');
227
- var url = new liteURL(window.location.href);
228
- var baseUrl = url.origin;
229
- var date = new Date();
230
- var timestamp_now = date.toISOString();
231
- var curr_state = 'started';
230
+ var logger = log4javascript.getLogger('j1.init');
231
+ var url = new liteURL(window.location.href);
232
+ var baseUrl = url.origin;
233
+ var date = new Date();
234
+ var timestamp_now = date.toISOString();
235
+ var curr_state = 'started';
232
236
 
233
237
  // -----------------------------------------------------------------------
234
238
  // options loader
@@ -312,7 +316,15 @@ var j1 = (function () {
312
316
  expires: 365
313
317
  });
314
318
 
315
- user_state.session_active = true;
319
+ // jadams, 2021-07-11: Found situation that user_state NOT initialized
320
+ // correctly (user_state == false).
321
+ // TODO: Check if/why user state (cookie NOT created?) NOT initialized
322
+ // for what reason.
323
+ if (!user_state) {
324
+ logger.warn('user session cookie NOT found');
325
+ user_state = j1.readCookie(cookie_names.user_state);
326
+ user_state.session_active = true;
327
+ }
316
328
 
317
329
  if (!user_consent.analyses || !user_consent.personalization) {
318
330
  // expire consent|state cookies to session
@@ -821,6 +833,15 @@ var j1 = (function () {
821
833
  // display page
822
834
  $('#no_flicker').css('display', 'block');
823
835
 
836
+ // NOTE: Placed tracking warning/info here because page may reloaded
837
+ // after cookie consent selection
838
+ //
839
+ if (tracking_enabled && !tracking_id_valid) {
840
+ logger.error('tracking enabled, but invalid tracking id found: ' + tracking_id);
841
+ } else {
842
+ logger.warn('tracking enabled, tracking id found: ' + tracking_id);
843
+ }
844
+
824
845
  // show|hide cookie icon (should MOVED to Cookiebar ???)
825
846
  if (j1.existsCookie(cookie_names.user_consent)) {
826
847
  // Display cookie icon
@@ -898,6 +919,15 @@ var j1 = (function () {
898
919
  // display page
899
920
  $('#no_flicker').css('display', 'block');
900
921
 
922
+ // NOTE: Placed tracking warning/info here because page may reloaded
923
+ // after cookie consent selection
924
+ //
925
+ if (tracking_enabled && !tracking_id_valid) {
926
+ logger.error('tracking enabled, but invalid tracking id found: ' + tracking_id);
927
+ } else {
928
+ logger.warn('tracking enabled, tracking id found: ' + tracking_id);
929
+ }
930
+
901
931
  logger.info('mode detected: web');
902
932
  logger.info('hide signin icon');
903
933
  $('#quickLinksSignInOutButton').css('display', 'none');
@@ -24,278 +24,4 @@
24
24
  # outside of J1 Template!
25
25
  # -----------------------------------------------------------------------------
26
26
  */
27
- 'use strict';
28
-
29
- // -----------------------------------------------------------------------------
30
- // ESLint shimming
31
- // -----------------------------------------------------------------------------
32
- /* eslint indent: "off" */
33
- /* eslint no-unused-vars: "off" */
34
- /* eslint no-undef: "off" */
35
- /* eslint no-redeclare: "off" */
36
- /* eslint indent: "off" */
37
- /* eslint JSUnfilteredForInLoop: "off" */
38
- // -----------------------------------------------------------------------------
39
-
40
- function BootstrapCookieConsent(props) {
41
- var logText;
42
- var current_page;
43
- var whitelisted;
44
- var logger = log4javascript.getLogger('j1.core.bsCookieConsent');
45
- var modalId = "bccs-modal"
46
- var self = this
47
- var detailedSettingsShown = false
48
-
49
- logger.info('Initializing core module: started');
50
- logger.info('state: started');
51
-
52
- this.props = {
53
- autoShowDialog: true, // disable autoShowModal on the privacy policy and legal notice pages, to make these pages readable
54
- language: navigator.language, // the language, in which the modal is shown
55
- languages: ["en", "de"], // supported languages (in ./content/), defaults to first in array
56
- contentURL: "./content", // this URL must contain the dialogs content in the needed languages
57
- cookieName: "cookie-consent-settings", // the name of the cookie in which the configuration is stored as JSON
58
- cookieStorageDays: 365, // the duration the cookie configuration is stored on the client
59
- postSelectionCallback: undefined, // callback function, called after the user has made his selection
60
- whitelisted: [], // pages NO consent modal page is issued
61
- xhr_data_element: "" // container for the language-specific consent modal taken from /assets/data/cookieconsent.html
62
- }
63
-
64
- for (var property in props) {
65
- this.props[property] = props[property];
66
- }
67
-
68
- this.language = this.props.language
69
- if (this.language.indexOf("-") !== -1) {
70
- this.language = this.language.split("-")[0];
71
- }
72
-
73
- if (!this.props.languages.includes(this.language)) {
74
- this.language = this.props.languages[0]; // fallback on default language
75
- }
76
-
77
- var Cookie = {
78
- set: function (name, value, days) {
79
- var value_encoded = window.btoa(value);
80
- var expires = "";
81
- if (days) {
82
- var date = new Date();
83
- date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
84
- expires = "; expires=" + date.toUTCString();
85
- }
86
- document.cookie = name + "=" + (value_encoded || "") + expires + "; Path=/; SameSite=Strict;";
87
- },
88
- get: function (name) {
89
- var nameEQ = name + "=";
90
- var ca = document.cookie.split(';');
91
- for (var i = 0; i < ca.length; i++) {
92
- var c = ca[i];
93
- while (c.charAt(0) === ' ') {
94
- c = c.substring(1, c.length);
95
- }
96
- if (c.indexOf(nameEQ) === 0) {
97
- var value_encoded = c.substring(nameEQ.length, c.length);
98
- var value = window.atob(value_encoded);
99
- return value;
100
- }
101
- }
102
- return undefined
103
- }
104
- }
105
-
106
- var Events = {
107
- documentReady: function (onDocumentReady) {
108
- if (document.readyState !== 'loading') {
109
- onDocumentReady();
110
- } else {
111
- document.addEventListener('DOMContentLoaded', onDocumentReady);
112
- }
113
- }
114
- }
115
-
116
- function showDialog(options) {
117
- Events.documentReady(function () {
118
-
119
- self.modal = document.getElementById(modalId);
120
- if (!self.modal) {
121
- logger.info('Load consent modal');
122
- self.modal = document.createElement("div");
123
- self.modal.id = modalId;
124
- self.modal.setAttribute("class", "modal fade");
125
- self.modal.setAttribute("tabindex", "-1");
126
- self.modal.setAttribute("role", "dialog");
127
- self.modal.setAttribute("aria-labelledby", modalId);
128
- document.body.append(self.modal);
129
- self.$modal = $(self.modal);
130
-
131
- if (self.props.postSelectionCallback) {
132
- self.$modal.on("hidden.bs.modal", function () {
133
- self.props.postSelectionCallback();
134
- });
135
- }
136
-
137
- // load modal content
138
- //
139
- var templateUrl = self.props.contentURL + '/' + 'index.html';
140
- $.get(templateUrl)
141
- .done(function (data) {
142
- logger.info('Loading Consent modal: successfully');
143
- self.modal.innerHTML = data;
144
- self.modal.innerHTML = $('#' + self.props.xhr_data_element).eq(0).html();
145
-
146
- $(self.modal).modal({
147
- backdrop: "static",
148
- keyboard: false
149
- });
150
-
151
- self.$buttonDoNotAgree = $("#bccs-buttonDoNotAgree");
152
- self.$buttonAgree = $("#bccs-buttonAgree");
153
- self.$buttonSave = $("#bccs-buttonSave");
154
- self.$buttonAgreeAll = $("#bccs-buttonAgreeAll");
155
-
156
- logger.info('Load/Initialze options from cookie');
157
-
158
- updateButtons();
159
- updateOptionsFromCookie();
160
-
161
- $("#bccs-options").on("hide.bs.collapse", function () {
162
- detailedSettingsShown = false;
163
- updateButtons();
164
- }).on("show.bs.collapse", function () {
165
- detailedSettingsShown = true;
166
- updateButtons();
167
- });
168
-
169
- logger.info('Initialze event handler');
170
-
171
- self.$buttonDoNotAgree.click(function () {
172
- doNotAgree();
173
- });
174
- self.$buttonAgree.click(function () {
175
- agreeAll();
176
- });
177
- self.$buttonSave.click(function () {
178
- $("#bccs-options").collapse('hide');
179
- saveSettings();
180
- updateOptionsFromCookie();
181
- });
182
- self.$buttonAgreeAll.click(function () {
183
- $("#bccs-options").collapse('hide');
184
- agreeAll();
185
- updateOptionsFromCookie();
186
- });
187
- })
188
- .fail(function () {
189
- logger.error('Loading Consent modal: failed');
190
- logger.info('Probably no `contentURL` set');
191
- })
192
- } else {
193
- self.$modal.modal("show")
194
- }
195
- }.bind(this))
196
- }
197
-
198
- function updateOptionsFromCookie() {
199
- var settings = self.getSettings();
200
- if (settings) {
201
- for (var setting in settings) {
202
- var $checkbox = self.$modal.find("#bccs-options .bccs-option[data-name='" + setting + "'] input[type='checkbox']");
203
- $checkbox.prop("checked", settings[setting]);
204
- }
205
- }
206
- }
207
-
208
- function updateButtons() {
209
- if (detailedSettingsShown) {
210
- self.$buttonDoNotAgree.hide();
211
- self.$buttonAgree.hide();
212
- self.$buttonSave.show();
213
- self.$buttonAgreeAll.show();
214
- } else {
215
- self.$buttonDoNotAgree.show();
216
- self.$buttonAgree.show();
217
- self.$buttonSave.hide();
218
- self.$buttonAgreeAll.hide();
219
- }
220
- }
221
-
222
- function gatherOptions(setAllExceptNecessary) {
223
- var $options = self.$modal.find("#bccs-options .bccs-option");
224
- var options = {};
225
- for (var i = 0; i < $options.length; i++) {
226
- var option = $options[i];
227
- var name = option.getAttribute("data-name");
228
- if (name === "necessary") {
229
- options[name] = true;
230
- } else if (setAllExceptNecessary === undefined) {
231
- var $checkbox = $(option).find("input[type='checkbox']");
232
- options[name] = $checkbox.prop("checked");
233
- } else {
234
- options[name] = !!setAllExceptNecessary;
235
- }
236
- }
237
- return options
238
- }
239
-
240
- function agreeAll() {
241
- Cookie.set(self.props.cookieName, JSON.stringify(gatherOptions(true)), self.props.cookieStorageDays);
242
- self.$modal.modal("hide");
243
- }
244
-
245
- function doNotAgree() {
246
- Cookie.set(self.props.cookieName, JSON.stringify(gatherOptions(false)), self.props.cookieStorageDays);
247
- logger.warn('delete cookie: j1.user.consent');
248
- // j1.deleteCookie('j1.user.consent');
249
- j1.deleteCookie('all');
250
- self.$modal.modal('hide')
251
- j1.goHome();
252
- }
253
-
254
- function saveSettings() {
255
- Cookie.set(self.props.cookieName, JSON.stringify(gatherOptions()), self.props.cookieStorageDays);
256
- self.$modal.modal("hide");
257
- }
258
-
259
- // call consent dialog if no cookie found (except pages whitelisted)
260
- //
261
- whitelisted = (this.props.whitelisted.indexOf(window.location.pathname) > -1);
262
- if (Cookie.get(this.props.cookieName) === undefined && this.props.autoShowDialog && !whitelisted) {
263
- showDialog();
264
- }
265
-
266
- // API functions
267
- // ---------------------------------------------------------------------------
268
-
269
- logger.info('Initializing core module finished');
270
- logger.info('state: finished');
271
-
272
- // show the consent dialog (modal)
273
- // ---------------------------------------------------------------------------
274
- this.showDialog = function () {
275
- whitelisted = (this.props.whitelisted.indexOf(window.location.pathname) > -1);
276
- if (!whitelisted) {
277
- showDialog();
278
- }
279
- }
280
-
281
- // collect settings from consent cookie
282
- // ---------------------------------------------------------------------------
283
- this.getSettings = function (optionName) {
284
- var cookie = Cookie.get(self.props.cookieName);
285
- if (cookie) {
286
- var settings = JSON.parse(Cookie.get(self.props.cookieName));
287
- if (optionName === undefined) {
288
- return settings;
289
- } else {
290
- if (settings) {
291
- return settings[optionName];
292
- } else {
293
- return false;
294
- }
295
- }
296
- } else {
297
- return undefined;
298
- }
299
- } // END getSettings
300
-
301
- } // END BootstrapCookieConsent
27
+ "use strict";function BootstrapCookieConsent(c){var g;var e;var q;var r=log4javascript.getLogger("j1.core.bsCookieConsent");var p="bccs-modal";var l=this;var n=false;r.info("Initializing core module: started");r.info("state: started");this.props={autoShowDialog:true,language:navigator.language,languages:["en","de"],contentURL:"./content",cookieName:"cookie-consent-settings",cookieStorageDays:365,postSelectionCallback:undefined,whitelisted:[],xhr_data_element:""};for(var d in c){this.props[d]=c[d]}this.language=this.props.language;if(this.language.indexOf("-")!==-1){this.language=this.language.split("-")[0]}if(!this.props.languages.includes(this.language)){this.language=this.props.languages[0]}var f={set:function(u,v,x){var w=window.btoa(v);var s="";if(x){var t=new Date();t.setTime(t.getTime()+(x*24*60*60*1000));s="; expires="+t.toUTCString()}document.cookie=u+"="+(w||"")+s+"; Path=/; SameSite=Strict;"},get:function(t){var w=t+"=";var s=document.cookie.split(";");for(var u=0;u<s.length;u++){var y=s[u];while(y.charAt(0)===" "){y=y.substring(1,y.length)}if(y.indexOf(w)===0){var x=y.substring(w.length,y.length);var v=window.atob(x);return v}}return undefined}};var k={documentReady:function(s){if(document.readyState!=="loading"){s()}else{document.addEventListener("DOMContentLoaded",s)}}};function j(s){k.documentReady(function(){l.modal=document.getElementById(p);if(!l.modal){r.info("Load consent modal");l.modal=document.createElement("div");l.modal.id=p;l.modal.setAttribute("class","modal fade");l.modal.setAttribute("tabindex","-1");l.modal.setAttribute("role","dialog");l.modal.setAttribute("aria-labelledby",p);document.body.append(l.modal);l.$modal=$(l.modal);if(l.props.postSelectionCallback){l.$modal.on("hidden.bs.modal",function(){l.props.postSelectionCallback()})}var t=l.props.contentURL+"/index.html";$.get(t).done(function(u){r.info("Loading Consent modal: successfully");l.modal.innerHTML=u;l.modal.innerHTML=$("#"+l.props.xhr_data_element).eq(0).html();$(l.modal).modal({backdrop:"static",keyboard:false});l.$buttonDoNotAgree=$("#bccs-buttonDoNotAgree");l.$buttonAgree=$("#bccs-buttonAgree");l.$buttonSave=$("#bccs-buttonSave");l.$buttonAgreeAll=$("#bccs-buttonAgreeAll");r.info("Load/Initialze options from cookie");i();h();$("#bccs-options").on("hide.bs.collapse",function(){n=false;i()}).on("show.bs.collapse",function(){n=true;i()});r.info("Initialze event handler");l.$buttonDoNotAgree.click(function(){b()});l.$buttonAgree.click(function(){m()});l.$buttonSave.click(function(){$("#bccs-options").collapse("hide");o();h()});l.$buttonAgreeAll.click(function(){$("#bccs-options").collapse("hide");m();h()})}).fail(function(){r.error("Loading Consent modal: failed");r.info("Probably no `contentURL` set")})}else{l.$modal.modal("show")}}.bind(this))}function h(){var u=l.getSettings();if(u){for(var t in u){var s=l.$modal.find("#bccs-options .bccs-option[data-name='"+t+"'] input[type='checkbox']");s.prop("checked",u[t])}}}function i(){if(n){l.$buttonDoNotAgree.hide();l.$buttonAgree.hide();l.$buttonSave.show();l.$buttonAgreeAll.show()}else{l.$buttonDoNotAgree.show();l.$buttonAgree.show();l.$buttonSave.hide();l.$buttonAgreeAll.hide()}}function a(t){var s=l.$modal.find("#bccs-options .bccs-option");var v={};for(var w=0;w<s.length;w++){var y=s[w];var u=y.getAttribute("data-name");if(u==="necessary"){v[u]=true}else{if(t===undefined){var x=$(y).find("input[type='checkbox']");v[u]=x.prop("checked")}else{v[u]=!!t}}}return v}function m(){f.set(l.props.cookieName,JSON.stringify(a(true)),l.props.cookieStorageDays);l.$modal.modal("hide")}function b(){f.set(l.props.cookieName,JSON.stringify(a(false)),l.props.cookieStorageDays);r.warn("delete cookie: j1.user.consent");j1.deleteCookie("all");l.$modal.modal("hide");j1.goHome()}function o(){f.set(l.props.cookieName,JSON.stringify(a()),l.props.cookieStorageDays);l.$modal.modal("hide")}q=(this.props.whitelisted.indexOf(window.location.pathname)>-1);if(f.get(this.props.cookieName)===undefined&&this.props.autoShowDialog&&!q){j()}r.info("Initializing core module finished");r.info("state: finished");this.showDialog=function(){q=(this.props.whitelisted.indexOf(window.location.pathname)>-1);if(!q){j()}};this.getSettings=function(t){var s=f.get(l.props.cookieName);if(s){var u=JSON.parse(f.get(l.props.cookieName));if(t===undefined){return u}else{if(u){return u[t]}else{return false}}}else{return undefined}}};
data/lib/j1/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module J1
2
- VERSION = '2021.1.9'
2
+ VERSION = '2021.1.10'
3
3
  end
@@ -54,7 +54,7 @@ gem 'jekyll', '~> 4.2'
54
54
 
55
55
  # Theme Rubies, default: J1 Template (NOT used for the development system)
56
56
  #
57
- gem 'j1-template', '~> 2021.1.9'
57
+ gem 'j1-template', '~> 2021.1.10'
58
58
 
59
59
  # ------------------------------------------------------------------------------
60
60
  # PRODUCTION: Gem needed for the Jekyll and J1 prod environment
@@ -53,7 +53,7 @@ environment: production
53
53
  # ------------------------------------------------------------------------------
54
54
  # Sets the build version of J1 Template Gem
55
55
  #
56
- version: 2021.1.9
56
+ version: 2021.1.10
57
57
 
58
58
  # version
59
59
  # ------------------------------------------------------------------------------
@@ -0,0 +1,119 @@
1
+ # ------------------------------------------------------------------------------
2
+ # ~/_data/private.yml
3
+ # The private.yml file is used to set sensitive private data used by
4
+ # J1 components to configure security and authentication settings
5
+ #
6
+ # Product/Info:
7
+ # https://jekyll.one
8
+ #
9
+ # Copyright (C) 2019 Juergen Adams
10
+ #
11
+ # J1 Template is licensed under the MIT License.
12
+ # See: https://github.com/jekyll-one-org/j1_template/blob/master/LICENSE
13
+ # ------------------------------------------------------------------------------
14
+ # NOTE:
15
+ # As this file contains very confidential data, a productive private.yml
16
+ # file should ALWAYS be excluded from ANY source published to the public
17
+ # (e.g. a repo at Github)
18
+ # ------------------------------------------------------------------------------
19
+
20
+
21
+ # ==============================================================================
22
+ # GLOBAL settings
23
+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24
+ global:
25
+
26
+ # used by J1 to encrypt cookies
27
+ session_secret: <your-secret-string>
28
+
29
+
30
+ # ==============================================================================
31
+ # MODULE settings
32
+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33
+ modules:
34
+
35
+ # J1 Webhook
36
+ # NOTE:
37
+ # ----------------------------------------------------------------------------
38
+ webhook:
39
+
40
+ comment:
41
+ name: <your-config-name>
42
+ user: <your-gh-user>
43
+ repo: <your-gh-repo>
44
+ server_url: <your-gh-webhook-url>
45
+
46
+ secret: <your-gh-secret> # secret used at GH Webhooks
47
+ payload_url: <your-payload-url> # payload url (e.g channel at smee.io)
48
+
49
+
50
+ # ==============================================================================
51
+ # # J1 Utility Server
52
+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53
+ util_srv:
54
+
55
+ oauth:
56
+
57
+ # GH OAuth settings used for J1 Control Center (NetlifyCMS) for the
58
+ # external OAuth client (base_url)
59
+ # --------------------------------------------------------------------------
60
+ comment:
61
+ name: <your-config-name>
62
+ user: <your-gh-user>
63
+ user_url: <your-user-url>
64
+ strategy: members
65
+ members: all
66
+
67
+ site_url: http://localhost:41010
68
+ site_redirect_url: http://localhost:41010/auth/github/callback
69
+ client_scope: repo, user
70
+ client_id: <your-client-id>
71
+ client_secret: <your-client-secret>
72
+
73
+
74
+ # ==============================================================================
75
+ # MIDDLEWARE settings
76
+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77
+ middleware:
78
+
79
+ # OAuth settings (J1 Auth Client)
80
+ # ----------------------------------------------------------------------------
81
+ oauth:
82
+
83
+ # --------------------------------------------------------------------------
84
+ # DISQUS credentials
85
+ # ==========================================================================
86
+ disqus:
87
+
88
+ # J1 Auth client (mode APP, development system)
89
+ # ------------------------------------------------------------------------
90
+ comment:
91
+ name: <your-disqus-config-name>
92
+ user: <your-disqus-user>
93
+
94
+ client_url: http://localhost:41010
95
+ client_redirect_url: http://localhost:41010/auth/disqus/callback
96
+ client_id: <your-disqus-client-id>
97
+ client_secret: <your-disqus-client-secret>
98
+
99
+ # --------------------------------------------------------------------------
100
+ # GITHUB credentials
101
+ # ==========================================================================
102
+ github:
103
+
104
+ # J1 Auth client (mode APP, development system)
105
+ # ------------------------------------------------------------------------
106
+ comment:
107
+ name: <your-gh-config-name>
108
+ user: <your-gh-user>
109
+ org: <your-gh-org>
110
+ strategy: members
111
+ members: all
112
+
113
+ client_url: http://localhost:41010
114
+ client_redirect_url: http://localhost:41010/auth/github/callback
115
+ client_id: <your-gh-client-id>
116
+ client_secret: <your-gh-client-secret>
117
+
118
+ # ------------------------------------------------------------------------------
119
+ # END
@@ -27,7 +27,7 @@ defaults:
27
27
  enabled: false
28
28
 
29
29
  autoShowDialog: true # show consent dialog if NO consent cookie found
30
- language: de # language of the modal is shown. Default: navigator.language
30
+ language: en # language of the modal is shown. Default: navigator.language
31
31
  languages: [en, de] # supported languages, defaults to FIRST language defined by languages
32
32
  contentURL: /assets/data/cookieconsent # dialogs content for all languages
33
33
  cookieName: j1.user.consent # name of the consent cookie
@@ -412,7 +412,7 @@ end::tables[]
412
412
  // -----------------------------------------------------------------------------
413
413
  tag::products[]
414
414
  :j1--license: MIT License
415
- :j1--version: 2021.1.9
415
+ :j1--version: 2021.1.10
416
416
  :j1--site-name: Jekyll One
417
417
  end::products[]
418
418
 
@@ -360,6 +360,6 @@ end
360
360
 
361
361
  module Jekyll
362
362
  module J1LunrSearch
363
- VERSION = '2021.1.9'
363
+ VERSION = '2021.1.10'
364
364
  end
365
365
  end
@@ -42,7 +42,7 @@ tmp/
42
42
  # Never publish your sensitive personal and/or OAuth
43
43
  # data to any repo - not to public, not to any private.
44
44
  # ------------------------------------------------------------------------------
45
- private.yml
45
+ # private.yml
46
46
 
47
47
 
48
48
  # Unneeded files for the generated site
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": true,
3
3
  "name": "j1_starter",
4
- "version": "2021.1.9",
4
+ "version": "2021.1.10",
5
5
  "description": "J1 Template Starter Web",
6
6
  "homepage": "https://your.site",
7
7
  "author": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": true,
3
3
  "name": "utls",
4
- "version": "2021.1.9",
4
+ "version": "2021.1.10",
5
5
  "description": "J1 Template Utility Server",
6
6
  "homepage": "https://jekyll.one",
7
7
  "author": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": true,
3
3
  "name": "utls",
4
- "version": "2021.1.9",
4
+ "version": "2021.1.10",
5
5
  "description": "J1 Template Utility Server",
6
6
  "homepage": "https://jekyll.one",
7
7
  "author": {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: j1-template
3
3
  version: !ruby/object:Gem::Version
4
- version: 2021.1.9
4
+ version: 2021.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - juergen_jekyll_one
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-10 00:00:00.000000000 Z
11
+ date: 2021-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -890,6 +890,7 @@ files:
890
890
  - lib/starter_web/_data/_defaults/colors.yml
891
891
  - lib/starter_web/_data/_defaults/font_sizes.yml
892
892
  - lib/starter_web/_data/_defaults/j1_config.yml
893
+ - lib/starter_web/_data/_defaults/private.default.yml
893
894
  - lib/starter_web/_data/_defaults/resources.yml
894
895
  - lib/starter_web/_data/apps/carousel.yml
895
896
  - lib/starter_web/_data/apps/defaults/carousel.yml