j1-template 2021.1.10 → 2021.1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/assets/error_pages/HTTP204.html +3 -0
  3. data/assets/error_pages/HTTP400.html +3 -0
  4. data/assets/error_pages/HTTP401.html +3 -0
  5. data/assets/error_pages/HTTP403.html +3 -0
  6. data/assets/error_pages/HTTP404.html +3 -0
  7. data/assets/error_pages/HTTP500.html +3 -0
  8. data/assets/error_pages/HTTP501.html +3 -0
  9. data/assets/error_pages/HTTP502.html +3 -0
  10. data/assets/error_pages/HTTP503.html +3 -0
  11. data/assets/themes/j1/adapter/js/cookieConsent.js +18 -8
  12. data/assets/themes/j1/adapter/js/j1.js +93 -39
  13. data/assets/themes/j1/adapter/js/navigator.js +5 -2
  14. data/assets/themes/j1/adapter/js/themer.js +137 -92
  15. data/assets/themes/j1/core/js/template.js +24 -4
  16. data/assets/themes/j1/core/js/template.js.map +1 -1
  17. data/assets/themes/j1/core/js/template.min.js +24 -4
  18. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  19. data/lib/j1/version.rb +1 -1
  20. data/lib/starter_web/Gemfile +1 -1
  21. data/lib/starter_web/_config.yml +1 -1
  22. data/lib/starter_web/_data/resources.yml +0 -4
  23. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  24. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  25. data/lib/starter_web/package.json +1 -1
  26. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  27. data/lib/starter_web/utilsrv/package.json +1 -1
  28. metadata +2 -7
  29. data/assets/themes/j1/adapter/js/themer.1.js +0 -326
  30. data/assets/themes/j1/modules/util/js/js.cookie.js +0 -163
  31. data/assets/themes/j1/modules/util/js/lite-url.js +0 -203
  32. data/assets/themes/j1/modules/util/js/lite-url.min.js +0 -7
  33. data/assets/themes/j1/modules/util/js/platform.js +0 -1260
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae5b79c95e56c200832abdfc497c3ed788f54303351ea239554c9fbad3fa7f48
4
- data.tar.gz: db7b40a09194fc449699ff6f4a21a4b432c7fd2a94e05cff88c598ef6e2ab175
3
+ metadata.gz: ba0049ab0e94c95a9a018bcfd485017fea420fa379da4b1f12ce215c89c1d676
4
+ data.tar.gz: 38de2ce546ad64659c125a022632518aededd6e6dafe65794c0579ad83d8d3d6
5
5
  SHA512:
6
- metadata.gz: 4315042ef6c11323174b561b7c28bf4ea98fe317b35cfe2ad58ed3856fe3c09a929aa5e2cdb3bd2f9e600c3d6b250a3a21b65e33cd6423e0f22901cc1cdf1961
7
- data.tar.gz: 9783b9f09b8e669fb94dc49fe0cae9f5cb23d822591a4371d8f70eee2dadafaaf57c25968b33a0a2d00f3141fcc73ddcd9093402adb72dd2bb09c683aa1fa0c3
6
+ metadata.gz: ffb6164751999c219ba0bf7ec54387bdb91e7b10437aff3a0094a182788072d43ef6f5707a5a30534cd5facd3ad705fe26e0061915b0c96b7354df9f4bf44607
7
+ data.tar.gz: bd7db4c0aeab051515f80412cd4a83a418496464d3f597a6e00e801e969a2b89e5c3a519b9032928c1539d2f6bab086efd7383641c3796d8c77ce66bcedbbdbe
@@ -51,12 +51,14 @@ sitemap: false
51
51
 
52
52
  {% if language == 'en' %}
53
53
  {% assign title = "No Content" %}
54
+ {% assign back_url_text = "Back Home" %}
54
55
  {% assign reason = "The request processed successfully. <br/> This page has been disabled for technical reasons." %}
55
56
  {% assign contact_issue = "Technical Contact" %}
56
57
  {% endif %}
57
58
 
58
59
  {% if language == 'de' %}
59
60
  {% assign title = "Keine Daten" %}
61
+ {% assign back_url_text = "Zurück zur Startseite" %}
60
62
  {% assign reason = "Die Anfrage wurde erfolgreich durchgeführt. <br/>. Diese Seite ist jedoch zurzeit aus technischen Gründen nicht verfügbar." %}
61
63
  {% assign contact_issue = "Technischer Kontakt" %}
62
64
  {% endif %}
@@ -80,6 +82,7 @@ sitemap: false
80
82
  <div class="cover attic">
81
83
  <h1>{{title}} <small>{{page.http_error}}</small></h1>
82
84
  <p class="lead">{{reason}}</p>
85
+ <div><a href="/">{{back_url_text}}</a></div>
83
86
  </div>
84
87
  <footer>
85
88
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
@@ -48,12 +48,14 @@ sitemap: false
48
48
 
49
49
  {% if language == 'en' %}
50
50
  {% assign title = "Bad Request" %}
51
+ {% assign back_url_text = "Back Home" %}
51
52
  {% assign reason = "The server cannot process the request. <br/> Something had happenend that is perceived to be a client error." %}
52
53
  {% assign contact_issue = "Technical Contact" %}
53
54
  {% endif %}
54
55
 
55
56
  {% if language == 'de' %}
56
57
  {% assign title = "Anfrage ungültig" %}
58
+ {% assign back_url_text = "Zurück zur Startseite" %}
57
59
  {% assign reason = "Die Nachricht war fehlerhaft aufgebaut. <br/> Der Webserver konnte die gewünschte Anfrages des Browsers nicht bearbeiten. Die Nachricht war fehlerhaft aufgebaut." %}
58
60
  {% assign contact_issue = "Technischer Kontakt" %}
59
61
  {% endif %}
@@ -77,6 +79,7 @@ sitemap: false
77
79
  <div class="cover attic">
78
80
  <h1>{{title}} <small>{{page.http_error}}</small></h1>
79
81
  <p class="lead">{{reason}}</p>
82
+ <div><a href="/">{{back_url_text}}</a></div>
80
83
  </div>
81
84
  <footer>
82
85
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
@@ -48,12 +48,14 @@ sitemap: false
48
48
 
49
49
  {% if language == 'en' %}
50
50
  {% assign title = "Unauthorized" %}
51
+ {% assign back_url_text = "Back Home" %}
51
52
  {% assign reason = "Not authorized. <br/> The requested resource requires an authentication." %}
52
53
  {% assign contact_issue = "Technical Contact" %}
53
54
  {% endif %}
54
55
 
55
56
  {% if language == 'de' %}
56
57
  {% assign title = "Keine Authorisierung" %}
58
+ {% assign back_url_text = "Zurück zur Startseite" %}
57
59
  {% assign reason = "Keine Authorisierung. <br/> Die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden." %}
58
60
  {% assign contact_issue = "Technischer Kontakt" %}
59
61
  {% endif %}
@@ -77,6 +79,7 @@ sitemap: false
77
79
  <div class="cover attic">
78
80
  <h1>{{title}} <small>{{page.http_error}}</small></h1>
79
81
  <p class="lead">{{reason}}</p>
82
+ <div><a href="/">{{back_url_text}}</a></div>
80
83
  </div>
81
84
  <footer>
82
85
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
@@ -48,12 +48,14 @@ sitemap: false
48
48
 
49
49
  {% if language == 'en' %}
50
50
  {% assign title = "Access Denied" %}
51
+ {% assign back_url_text = "Back Home" %}
51
52
  {% assign reason = "Access rejected. <br/> The requested resource requires an authentication." %}
52
53
  {% assign contact_issue = "Technical Contact" %}
53
54
  {% endif %}
54
55
 
55
56
  {% if language == 'de' %}
56
57
  {% assign title = "Zugriff verweigert" %}
58
+ {% assign back_url_text = "Zurück zur Startseite" %}
57
59
  {% assign reason = "Anfrage zurückgewiesen. <br/> Die Anfrage wurde mangels Berechtigung des Clients nicht durchgeführt." %}
58
60
  {% assign contact_issue = "Technischer Kontakt" %}
59
61
  {% endif %}
@@ -77,6 +79,7 @@ sitemap: false
77
79
  <div class="cover attic">
78
80
  <h1>{{title}} <small>{{page.http_error}}</small></h1>
79
81
  <p class="lead">{{reason}}</p>
82
+ <div><a href="/">{{back_url_text}}</a></div>
80
83
  </div>
81
84
  <footer>
82
85
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
@@ -48,12 +48,14 @@ sitemap: false
48
48
 
49
49
  {% if language == 'en' %}
50
50
  {% assign title = "Page not found" %}
51
+ {% assign back_url_text = "Back Home" %}
51
52
  {% assign reason = "The page you requested could not found. <br/> Sorry about that, this shoud not happen." %}
52
53
  {% assign contact_issue = "Technical Contact" %}
53
54
  {% endif %}
54
55
 
55
56
  {% if language == 'de' %}
56
57
  {% assign title = "Seite nicht gefunden" %}
58
+ {% assign back_url_text = "Zurück zur Startseite" %}
57
59
  {% assign reason = "Die angeforderte Seite konnte nicht gefunden werden. <br/> Wir bitten um Entschuldigung, dass sollte nicht passieren." %}
58
60
  {% assign contact_issue = "Technischer Kontakt" %}
59
61
  {% endif %}
@@ -77,6 +79,7 @@ sitemap: false
77
79
  <div class="cover attic">
78
80
  <h1>{{title}} <small>{{page.http_error}}</small></h1>
79
81
  <p class="lead">{{reason}}</p>
82
+ <div><a href="/">{{back_url_text}}</a></div>
80
83
  </div>
81
84
  <footer>
82
85
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
@@ -48,12 +48,14 @@ sitemap: false
48
48
 
49
49
  {% if language == 'en' %}
50
50
  {% assign title = "Internal Server Error" %}
51
+ {% assign back_url_text = "Back Home" %}
51
52
  {% assign reason = "An unexpected condition was encountered. <br/> Our service team has been dispatched to bring it back online." %}
52
53
  {% assign contact_issue = "Technical Contact" %}
53
54
  {% endif %}
54
55
 
55
56
  {% if language == 'de' %}
56
57
  {% assign title = "Interner Server Fehler" %}
58
+ {% assign back_url_text = "Zurück zur Startseite" %}
57
59
  {% assign reason = "Es ist ein unerwartete Serverfehler aufgetreten. <br/> Das Service Team ist bemüht den Dienst wiederherzustellen." %}
58
60
  {% assign contact_issue = "Technischer Kontakt" %}
59
61
  {% endif %}
@@ -77,6 +79,7 @@ sitemap: false
77
79
  <div class="cover attic">
78
80
  <h1>{{title}} <small>{{page.http_error}}</small></h1>
79
81
  <p class="lead">{{reason}}</p>
82
+ <div><a href="/">{{back_url_text}}</a></div>
80
83
  </div>
81
84
  <footer>
82
85
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
@@ -48,12 +48,14 @@ sitemap: false
48
48
 
49
49
  {% if language == 'en' %}
50
50
  {% assign title = "Not Implemented" %}
51
+ {% assign back_url_text = "Back Home" %}
51
52
  {% assign reason = "Unknown request type. <br/> The Webserver cannot recognize the request method." %}
52
53
  {% assign contact_issue = "Technical Contact" %}
53
54
  {% endif %}
54
55
 
55
56
  {% if language == 'de' %}
56
57
  {% assign title = "Nicht verfügbar" %}
58
+ {% assign back_url_text = "Zurück zur Startseite" %}
57
59
  {% assign reason = "Unbekannter Anfragetyp. <br/> Die Funktionalität, um die Anfrage zu bearbeiten, wird von diesem Server nicht bereitgestellt." %}
58
60
  {% assign contact_issue = "Technischer Kontakt" %}
59
61
  {% endif %}
@@ -77,6 +79,7 @@ sitemap: false
77
79
  <div class="cover attic">
78
80
  <h1>{{title}} <small>{{page.http_error}}</small></h1>
79
81
  <p class="lead">{{reason}}</p>
82
+ <div><a href="/">{{back_url_text}}</a></div>
80
83
  </div>
81
84
  <footer>
82
85
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
@@ -48,12 +48,14 @@ sitemap: false
48
48
 
49
49
  {% if language == 'en' %}
50
50
  {% assign title = "Service currently unavailable" %}
51
+ {% assign back_url_text = "Back Home" %}
51
52
  {% assign reason = "We&#39;ve got some trouble with our backend upstream cluster. <br/> Our service team has been dispatched to bring it back online." %}
52
53
  {% assign contact_issue = "Technical Contact" %}
53
54
  {% endif %}
54
55
 
55
56
  {% if language == 'de' %}
56
57
  {% assign title = "Dienst zurzeit nicht verfügbar" %}
58
+ {% assign back_url_text = "Zurück zur Startseite" %}
57
59
  {% assign reason = "Der Server konnte seine Funktion als Gateway oder Proxy nicht erfüllen. <br/> Das Service Team ist bemüht den Dienst wiederherzustellen." %}
58
60
  {% assign contact_issue = "Technischer Kontakt" %}
59
61
  {% endif %}
@@ -77,6 +79,7 @@ sitemap: false
77
79
  <div class="cover attic">
78
80
  <h1>{{title}} <small>{{page.http_error}}</small></h1>
79
81
  <p class="lead">{{reason}}</p>
82
+ <div><a href="/">{{back_url_text}}</a></div>
80
83
  </div>
81
84
  <footer>
82
85
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
@@ -50,12 +50,14 @@ sitemap: false
50
50
 
51
51
  {% if language == 'en' %}
52
52
  {% assign title = "Service currently unavailable" %}
53
+ {% assign back_url_text = "Back Home" %}
53
54
  {% assign reason = "The server is temporarily unavailable. <br/> Please try again later." %}
54
55
  {% assign contact_issue = "Technical Contact" %}
55
56
  {% endif %}
56
57
 
57
58
  {% if language == 'de' %}
58
59
  {% assign title = "Dienst zurzeit nicht verfügbar" %}
60
+ {% assign back_url_text = "Zurück zur Startseite" %}
59
61
  {% assign reason = "Der Server steht temporär nicht zur Verfügung. <br/> Bitte versuchen Sie es später nocheinmal." %}
60
62
  {% assign contact_issue = "Technischer Kontakt" %}
61
63
  {% endif %}
@@ -79,6 +81,7 @@ sitemap: false
79
81
  <div class="cover attic">
80
82
  <h1>{{title}} <small>{{page.http_error}}</small></h1>
81
83
  <p class="lead">{{reason}}</p>
84
+ <div><a href="/">{{back_url_text}}</a></div>
82
85
  </div>
83
86
  <footer>
84
87
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
@@ -91,6 +91,7 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
91
91
  var user_cookie;
92
92
  var logger;
93
93
  var logText;
94
+ var cookie_written;
94
95
 
95
96
  // NOTE: RegEx for tracking_id: ^(G|UA|YT|MO)-[a-zA-Z0-9-]+$
96
97
  // See: https://stackoverflow.com/questions/20411767/how-to-validate-google-analytics-tracking-id-using-a-javascript-function/20412153
@@ -214,8 +215,10 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
214
215
  // -------------------------------------------------------------------------
215
216
  cbCookie: function () {
216
217
  var gaCookies = j1.findCookie('_ga');
217
- var user_state = j1.readCookie('j1.user.state');
218
- var user_consent = j1.readCookie('j1.user.consent');
218
+ var j1Cookies = j1.findCookie('j1');
219
+ var cookie_names = j1.getCookieNames();
220
+ var user_state = j1.readCookie(cookie_names.user_state);
221
+ var user_consent = j1.readCookie(cookie_names.user_consent);
219
222
  var json = JSON.stringify(user_consent);
220
223
  var user_agent = platform.ua;
221
224
 
@@ -227,8 +230,7 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
227
230
  $('#quickLinksCookieButton').css('display', 'block');
228
231
  }
229
232
 
230
- // jadams, 2021-07-11: moded to j1 adapter (displayPage)
231
- //
233
+ // jadams, 2021-07-11: moved to j1 adapter (displayPage)
232
234
  // NOTE: Warning needs to be moved to another module
233
235
  // because page is reloaded after selection
234
236
  //
@@ -241,6 +243,7 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
241
243
  // for development only
242
244
  if (environment === 'development') {
243
245
  gaCookies.forEach(item => console.log('cookieConsent: ' + item));
246
+ j1Cookies.forEach(item => console.log('cookieConsent: ' + item));
244
247
  }
245
248
 
246
249
  if (user_agent.includes('iPad')) {
@@ -269,16 +272,23 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
269
272
 
270
273
  if (!user_consent.analyses || !user_consent.personalization) {
271
274
  // expire consent|state cookies to session
272
- j1.writeCookie({
273
- name: 'j1.user.state',
275
+ cookie_written = j1.writeCookie({
276
+ name: cookie_names.user_state,
274
277
  data: user_state,
275
278
  samesite: 'Strict'
276
279
  });
277
- j1.writeCookie({
278
- name: 'j1.user.consent',
280
+ if (!cookie_written) {
281
+ logger.error('failed to write cookie: ' + cookie_names.user_state);
282
+ }
283
+
284
+ cookie_written = j1.writeCookie({
285
+ name: cookie_names.user_consent,
279
286
  data: user_consent,
280
287
  samesite: 'Strict'
281
288
  });
289
+ if (!cookie_written) {
290
+ logger.error('failed to write cookie: ' + cookie_names.user_consent);
291
+ }
282
292
  }
283
293
 
284
294
  if (moduleOptions.reloadPageOnChange) {
@@ -136,6 +136,7 @@ var j1 = (function () {
136
136
  var last_pager_url;
137
137
  var app_detected;
138
138
  var user_session_detected;
139
+ var cookie_written;
139
140
 
140
141
  // Translatior settings (currently NOT supported)
141
142
  // var translation_enabled = {{template_config.translation.enabled}};
@@ -173,7 +174,7 @@ var j1 = (function () {
173
174
  };
174
175
  var user_session = {
175
176
  'mode': 'web',
176
- 'writer': 'web',
177
+ 'writer': 'j1.adapter',
177
178
  'locale': navigator.language || navigator.userLanguage,
178
179
  'user_name': '{{template_config.user.user_name}}',
179
180
  'provider': '{{template_config.user.provider}}',
@@ -189,10 +190,12 @@ var j1 = (function () {
189
190
  'last_pager': '/pages/public/blog/navigator/'
190
191
  };
191
192
  var user_state = {
193
+ 'writer': 'j1.adapter',
194
+ 'theme_css': '',
192
195
  'theme_css': '',
193
196
  'theme_name': '',
194
197
  'theme_author': '',
195
- 'theme_version': '{{site.version}}',
198
+ 'theme_version': '{{template_version}}',
196
199
  'session_active': false,
197
200
  'last_session_ts': ''
198
201
  };
@@ -266,30 +269,44 @@ var j1 = (function () {
266
269
  var url;
267
270
  var baseUrl;
268
271
 
269
- user_state.session_active = false;
270
- user_state.last_session_ts = timestamp_now;
272
+ if (user_state) {
273
+ user_state.session_active = false;
274
+ user_state.last_session_ts = timestamp_now;
271
275
 
272
- if (!user_consent.analyses || !user_consent.personalization) {
273
- // expire consent|state cookies to session
274
- j1.writeCookie({
275
- name: cookie_names.user_consent,
276
- data: user_state,
277
- samesite: 'Strict'
278
- });
279
- j1.writeCookie({
280
- name: cookie_names.user_state,
281
- data: user_state,
282
- samesite: 'Strict'
283
- });
276
+ if (!user_consent.analyses || !user_consent.personalization) {
277
+ // expire consent|state cookies to session
278
+ cookie_written = j1.writeCookie({
279
+ name: cookie_names.user_consent,
280
+ data: user_state,
281
+ samesite: 'Strict'
282
+ });
283
+ if (!cookie_written) {
284
+ logger.error('failed to write cookie: ' + cookie_names.user_consent);
285
+ }
286
+ cookie_written = j1.writeCookie({
287
+ name: cookie_names.user_state,
288
+ data: user_state,
289
+ samesite: 'Strict'
290
+ });
291
+ if (!cookie_written) {
292
+ logger.error('failed to write cookie: ' + cookie_names.user_consent);
293
+ }
294
+ } else {
295
+ cookie_written = j1.writeCookie({
296
+ name: cookie_names.user_state,
297
+ data: user_state,
298
+ samesite: 'Strict',
299
+ expires: 365
300
+ });
301
+ if (!cookie_written) {
302
+ logger.error('failed to write cookie: ' + cookie_names.user_state);
303
+ }
304
+ }
284
305
  } else {
285
- j1.writeCookie({
286
- name: cookie_names.user_state,
287
- data: user_state,
288
- samesite: 'Strict',
289
- expires: 365
290
- });
306
+ // jadams, 2021-07-11: on beforeunload, a vaild state cookie
307
+ // is expected
308
+ logger.fatal('missing cookie detected for: ' + cookie_names.user_state);
291
309
  }
292
-
293
310
  }); // END beforeunload
294
311
 
295
312
  // -----------------------------------------------------------------------
@@ -301,45 +318,57 @@ var j1 = (function () {
301
318
  user_consent = j1.readCookie(cookie_names.user_consent);
302
319
  user_session = j1.existsCookie(cookie_names.user_session)
303
320
  ? j1.readCookie(cookie_names.user_session)
304
- : j1.writeCookie({
321
+ : cookie_written = j1.writeCookie({
305
322
  name: cookie_names.user_session,
306
323
  data: user_session,
307
324
  samesite: 'Strict'
308
325
  });
326
+ if (!cookie_written) {
327
+ logger.error('failed to write cookie: ' + cookie_names.user_session);
328
+ }
309
329
 
310
330
  user_state = j1.existsCookie(cookie_names.user_state)
311
331
  ? j1.readCookie(cookie_names.user_state)
312
- : j1.writeCookie({
332
+ : cookie_written = j1.writeCookie({
313
333
  name: cookie_names.user_state,
314
334
  data: user_state,
315
335
  samesite: 'Strict',
316
336
  expires: 365
317
337
  });
338
+ if (!cookie_written) {
339
+ logger.error('failed to write cookie: ' + cookie_names.user_state);
340
+ }
318
341
 
319
342
  // jadams, 2021-07-11: Found situation that user_state NOT initialized
320
343
  // correctly (user_state == false).
321
344
  // TODO: Check if/why user state (cookie NOT created?) NOT initialized
322
345
  // for what reason.
323
346
  if (!user_state) {
324
- logger.warn('user session cookie NOT found');
347
+ logger.warn('cookie not found: ' + cookie_names.user_state);
325
348
  user_state = j1.readCookie(cookie_names.user_state);
326
349
  user_state.session_active = true;
327
350
  }
328
351
 
329
352
  if (!user_consent.analyses || !user_consent.personalization) {
330
353
  // expire consent|state cookies to session
331
- j1.writeCookie({
354
+ cookie_written = j1.writeCookie({
332
355
  name: cookie_names.user_state,
333
356
  data: user_state,
334
357
  samesite: 'Strict'
335
358
  });
359
+ if (!cookie_written) {
360
+ logger.error('failed to write cookie: ' + cookie_names.user_state);
361
+ }
336
362
  } else {
337
- j1.writeCookie({
363
+ cookie_written = j1.writeCookie({
338
364
  name: cookie_names.user_state,
339
365
  data: user_state,
340
366
  samesite: 'Strict',
341
367
  expires: 365
342
368
  });
369
+ if (!cookie_written) {
370
+ logger.error('failed to write cookie: ' + cookie_names.user_state);
371
+ }
343
372
  }
344
373
 
345
374
  // detect middleware (mode 'app') and update user session cookie
@@ -366,11 +395,16 @@ var j1 = (function () {
366
395
 
367
396
  logger.info(logText);
368
397
  logger.info('update user session cookie');
369
- j1.writeCookie({
398
+ cookie_written = j1.writeCookie({
370
399
  name: cookie_names.user_session,
371
400
  data: user_session,
372
401
  samesite: 'Strict'
373
402
  });
403
+
404
+ if (!cookie_written) {
405
+ logger.error('failed to write cookie: ' + cookie_names.user_session);
406
+ }
407
+
374
408
  j1.setState(curr_state);
375
409
  logger.info('state: ' + j1.getState());
376
410
 
@@ -407,16 +441,20 @@ var j1 = (function () {
407
441
  logText = 'mode detected: ' + user_session.mode;
408
442
 
409
443
  logger.info(logText);
410
- j1.writeCookie({
444
+ cookie_written = j1.writeCookie({
411
445
  name: cookie_names.user_session,
412
446
  data: user_session,
413
447
  samesite: 'Strict'
414
448
  });
449
+ if (!cookie_written) {
450
+ logger.error('failed to write cookie: ' + cookie_names.user_session);
451
+ }
452
+
415
453
  j1.setState(curr_state);
416
454
  logger.info('state: ' + j1.getState());
417
455
  }, detectTimeout);
418
456
  });
419
- } else { // app mode
457
+ } else { // web mode
420
458
  state = 'started';
421
459
  logger.info('state: ' + state);
422
460
  logger.info('page is being initialized');
@@ -462,12 +500,16 @@ var j1 = (function () {
462
500
  }
463
501
 
464
502
  logger.info('update user session cookie');
465
- j1.writeCookie({
503
+ cookie_written = j1.writeCookie({
466
504
  name: cookie_names.user_session,
467
505
  data: user_session,
468
506
  samesite: 'Strict'
469
507
  });
470
508
 
509
+ if (!cookie_written) {
510
+ logger.error('failed to write cookie: ' + cookie_names.user_session);
511
+ }
512
+
471
513
  // NOTE: asynchronous calls should be rewitten to xhrData
472
514
  // initialize page resources for blocks
473
515
  j1.initBanner(settings);
@@ -479,11 +521,14 @@ var j1 = (function () {
479
521
  logger.info(logText);
480
522
 
481
523
  user_session.timestamp = timestamp_now;
482
- j1.writeCookie({
524
+ cookie_written = j1.writeCookie({
483
525
  name: cookie_names.user_session,
484
526
  data: user_session,
485
527
  samesite: 'Strict'
486
528
  });
529
+ if (!cookie_written) {
530
+ logger.error('failed to write cookie: ' + cookie_names.user_session);
531
+ }
487
532
 
488
533
  // -----------------------------------------------------------------------
489
534
  // additional BS helpers from j1.core
@@ -800,11 +845,14 @@ var j1 = (function () {
800
845
  user_session = j1.mergeData(user_session, data);
801
846
 
802
847
  user_session.current_page = current_url.pathname;
803
- j1.writeCookie({
848
+ cookie_written = j1.writeCookie({
804
849
  name: cookie_names.user_session,
805
850
  data: user_session,
806
851
  samesite: 'Strict'
807
852
  });
853
+ if (!cookie_written) {
854
+ logger.error('failed to write cookie: ' + cookie_names.user_session);
855
+ }
808
856
 
809
857
  providerPermissions = user_session.provider_permissions;
810
858
  categoryAllowed = providerPermissions.includes(user_session.page_permission);
@@ -933,11 +981,14 @@ var j1 = (function () {
933
981
  $('#quickLinksSignInOutButton').css('display', 'none');
934
982
 
935
983
  user_session.current_page = current_url.pathname;
936
- j1.writeCookie({
984
+ cookie_written = j1.writeCookie({
937
985
  name: cookie_names.user_session,
938
986
  data: user_session,
939
987
  samesite: 'Strict'
940
988
  });
989
+ if (!cookie_written) {
990
+ logger.error('failed to write cookie: ' + cookie_names.user_session);
991
+ }
941
992
 
942
993
  // show|hide translator icon (currently NOT supported)
943
994
  // if (translation_enabled) {
@@ -1262,14 +1313,17 @@ var j1 = (function () {
1262
1313
 
1263
1314
  // -------------------------------------------------------------------------
1264
1315
  // findCookie()
1265
- // Search for cookies (names) in the page header that matches
1266
- // a given regex string. Returns all names found as an array.
1316
+ // Search for cookies (names) in the page header that matches a given
1317
+ // name. Cookie name can be give as full name, like 'j1.user.state', or
1318
+ // as partials like 'j1'
1319
+ // Returns all names found as an array.
1267
1320
  // -------------------------------------------------------------------------
1268
1321
  // See: https://stackoverflow.com/questions/52287989/javascript-cookie-remove-or-delete-with-regex-regular-expression
1269
1322
  // -------------------------------------------------------------------------
1270
- findCookie: function (regex) {
1323
+ findCookie: function (name) {
1271
1324
  var r=[];
1272
- document.cookie.replace(new RegExp(regex + "[^= ]*", "g"), function(a){ r.push(a.trim()); });
1325
+
1326
+ document.cookie.replace(new RegExp(name + '[^= ]*', 'g'), function(a){ r.push(a.trim()); });
1273
1327
  return r;
1274
1328
  }, // END findCookie
1275
1329