j1-template 2021.1.9 → 2021.1.10

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 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