j1-template 2021.1.10 → 2021.1.11

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