j1-template 2021.1.11 → 2021.1.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/footer/boxes/issue.proc +28 -5
  3. data/_includes/themes/j1/blocks/footer/boxes/legal_statements.proc +66 -23
  4. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +0 -1
  5. data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +16 -1
  6. data/_includes/themes/j1/layouts/content_generator_app.html +1 -1
  7. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +197 -219
  8. data/_includes/themes/j1/layouts/content_generator_collection.html +4 -2
  9. data/_includes/themes/j1/layouts/content_generator_page.html +4 -1
  10. data/_includes/themes/j1/layouts/content_generator_post.html +31 -23
  11. data/_includes/themes/j1/layouts/content_generator_raw.html +1 -1
  12. data/_includes/themes/j1/layouts/layout_metadata_generator.html +55 -0
  13. data/_includes/themes/j1/modules/connectors/comment/commento.html +31 -0
  14. data/_includes/themes/j1/modules/connectors/comment/custom-provider.html +7 -8
  15. data/_includes/themes/j1/modules/connectors/comment/disqus.html +12 -54
  16. data/_includes/themes/j1/modules/connectors/comment/facebook.html +7 -8
  17. data/_includes/themes/j1/modules/connectors/comment/hyvor.html +33 -0
  18. data/_includes/themes/j1/modules/connectors/comment/just-comments.html +31 -0
  19. data/_includes/themes/j1/modules/connectors/comments +3 -0
  20. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +27 -5
  21. data/_includes/themes/j1/procedures/posts/pager.proc +123 -0
  22. data/_layouts/default.html +52 -1
  23. data/assets/data/cookieconsent.html +0 -2
  24. data/assets/data/disqus.js +81 -0
  25. data/assets/data/hyvor.js +72 -0
  26. data/assets/data/menu.html +1 -1
  27. data/assets/data/mmenu_toc.html +20 -1
  28. data/assets/data/panel.html +28 -7
  29. data/assets/error_pages/HTTP204.html +2 -1
  30. data/assets/error_pages/HTTP400.html +2 -1
  31. data/assets/error_pages/HTTP401.html +2 -1
  32. data/assets/error_pages/HTTP403.html +2 -1
  33. data/assets/error_pages/HTTP404.html +2 -1
  34. data/assets/error_pages/HTTP444.html +93 -0
  35. data/assets/error_pages/HTTP500.html +2 -1
  36. data/assets/error_pages/HTTP501.html +2 -1
  37. data/assets/error_pages/HTTP502.html +2 -1
  38. data/assets/error_pages/HTTP503.html +2 -1
  39. data/assets/themes/j1/adapter/js/algolia.js +10 -10
  40. data/assets/themes/j1/adapter/js/asciidoctor.js +6 -6
  41. data/assets/themes/j1/adapter/js/attic.js +17 -17
  42. data/assets/themes/j1/adapter/js/bmd.js +6 -6
  43. data/assets/themes/j1/adapter/js/carousel.js +10 -10
  44. data/assets/themes/j1/adapter/js/clipboard.js +10 -10
  45. data/assets/themes/j1/adapter/js/cookieConsent.js +58 -47
  46. data/assets/themes/j1/adapter/js/fam.js +34 -34
  47. data/assets/themes/j1/adapter/js/framer.js +6 -6
  48. data/assets/themes/j1/adapter/js/j1.js +520 -252
  49. data/assets/themes/j1/adapter/js/justifiedGallery.js +11 -11
  50. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +19 -19
  51. data/assets/themes/j1/adapter/js/lightbox.js +6 -6
  52. data/assets/themes/j1/adapter/js/logger.js +7 -7
  53. data/assets/themes/j1/adapter/js/mmenu.js +25 -25
  54. data/assets/themes/j1/adapter/js/navigator.js +55 -48
  55. data/assets/themes/j1/adapter/js/quicksearch.js +6 -6
  56. data/assets/themes/j1/adapter/js/rouge.js +7 -7
  57. data/assets/themes/j1/adapter/js/rtable.js +6 -6
  58. data/assets/themes/j1/adapter/js/themer.js +43 -47
  59. data/assets/themes/j1/adapter/js/toccer.js +9 -9
  60. data/assets/themes/j1/modules/backstretch/js/backstretch.js +3 -3
  61. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +35 -23
  62. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +2 -2
  63. data/assets/themes/j1/modules/lunrSearch/js/quicksearch.js +1 -1
  64. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +74 -55
  65. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +75 -57
  66. data/lib/j1/version.rb +3 -3
  67. data/lib/starter_web/Gemfile +4 -5
  68. data/lib/starter_web/_config.yml +42 -24
  69. data/lib/starter_web/_data/blocks/footer.yml +52 -20
  70. data/lib/starter_web/_data/blocks/panel.yml +4 -4
  71. data/lib/starter_web/_data/builder/blog_navigator.yml +9 -192
  72. data/lib/starter_web/_data/builder/defaults/blog_navigator.yml +389 -0
  73. data/lib/starter_web/_data/j1_config.yml +24 -10
  74. data/lib/starter_web/_data/locales/be.yml +269 -0
  75. data/lib/starter_web/_data/locales/cs.yml +218 -0
  76. data/lib/starter_web/_data/locales/da.yml +213 -0
  77. data/lib/starter_web/_data/locales/de.yml +222 -0
  78. data/lib/starter_web/_data/locales/el.yml +215 -0
  79. data/lib/starter_web/_data/locales/en.yml +215 -0
  80. data/lib/starter_web/_data/locales/es.yml +219 -0
  81. data/lib/starter_web/_data/locales/et.yml +207 -0
  82. data/lib/starter_web/_data/locales/fi.yml +211 -0
  83. data/lib/starter_web/_data/locales/fr.yml +219 -0
  84. data/lib/starter_web/_data/locales/hr.yml +240 -0
  85. data/lib/starter_web/_data/locales/hu.yml +196 -0
  86. data/lib/starter_web/_data/locales/it.yml +215 -0
  87. data/lib/starter_web/_data/locales/lv.yml +233 -0
  88. data/lib/starter_web/_data/locales/nl.yml +213 -0
  89. data/lib/starter_web/_data/locales/pl.yml +241 -0
  90. data/lib/starter_web/_data/locales/pt.yml +217 -0
  91. data/lib/starter_web/_data/locales/readme +4 -0
  92. data/lib/starter_web/_data/locales/ro.yml +209 -0
  93. data/lib/starter_web/_data/locales/ru.yml +269 -0
  94. data/lib/starter_web/_data/locales/sk.yml +211 -0
  95. data/lib/starter_web/_data/locales/sl.yml +209 -0
  96. data/lib/starter_web/_data/locales/sv.yml +207 -0
  97. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +11 -10
  98. data/lib/starter_web/_data/modules/defaults/themer.yml +1 -0
  99. data/lib/starter_web/_data/modules/themer.yml +1 -0
  100. data/lib/starter_web/_data/plugins/defaults/paginator.yml +7 -6
  101. data/lib/starter_web/_data/plugins/paginator.yml +3 -0
  102. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  103. data/lib/starter_web/_plugins/date-i18n.rb +67 -0
  104. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  105. data/lib/starter_web/assets/images/modules/attics/markus-spiske-1920x1280.jpg +0 -0
  106. data/lib/starter_web/assets/images/modules/attics/matthew-dockery-1920x1280.jpg +0 -0
  107. data/lib/starter_web/collections/posts/public/featured/_posts/2020-01-01-about-cookies.adoc +1 -1
  108. data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-01-site-generators.adoc +1 -1
  109. data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-03-about-j1.adoc +1 -1
  110. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +2 -2
  111. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +2 -2
  112. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +2 -2
  113. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +2 -2
  114. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +1 -1
  115. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +1 -1
  116. data/lib/starter_web/index.html +3 -3
  117. data/lib/starter_web/package.json +1 -1
  118. data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.adoc +3 -0
  119. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +3 -0
  120. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +3 -0
  121. data/lib/starter_web/pages/public/blog/navigator/archive.html +80 -12
  122. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +94 -26
  123. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +81 -12
  124. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +95 -37
  125. data/lib/starter_web/pages/public/blog/navigator/index.html +4 -0
  126. data/lib/starter_web/pages/public/cookieConsent.adoc +3 -0
  127. data/lib/starter_web/pages/public/learn/quickstart.adoc +473 -0
  128. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +0 -1
  129. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +2 -1
  130. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +0 -2
  131. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +0 -2
  132. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +0 -1
  133. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +0 -1
  134. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +0 -1
  135. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +0 -1
  136. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +0 -1
  137. data/lib/starter_web/pages/public/learn/where_to_go.adoc +0 -1
  138. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +116 -0
  139. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +94 -0
  140. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +320 -0
  141. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +123 -0
  142. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +3 -1
  143. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +3 -1
  144. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +81 -20
  145. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +34 -16
  146. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  147. data/lib/starter_web/utilsrv/package.json +1 -1
  148. metadata +41 -4
  149. data/_includes/themes/j1/procedures/global/pager.proc +0 -79
  150. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.org.asciidoc +0 -244
@@ -210,8 +210,8 @@ j1.adapter['navigator'] = (function (j1, window) {
210
210
 
211
211
  // initialize state flag
212
212
  _this.setState('started');
213
- logger.info('state: ' + _this.getState());
214
- logger.info('module is being initialized');
213
+ logger.info('\n' + 'state: ' + _this.getState());
214
+ logger.info('\n' + 'module is being initialized');
215
215
 
216
216
  // -----------------------------------------------------------------------
217
217
  // defaults
@@ -249,6 +249,9 @@ j1.adapter['navigator'] = (function (j1, window) {
249
249
  var themes_count;
250
250
  var max_count = 100;
251
251
 
252
+ var gaCookies = j1.findCookie('_ga');
253
+ var j1Cookies = j1.findCookie('j1');
254
+
252
255
  navDefaults = $.extend({}, {{navigator_defaults | replace: '=>', ':' }});
253
256
  navBarConfig = $.extend({}, {{nav_bar_options | replace: '=>', ':' }});
254
257
  navMenuConfig = $.extend({}, {{nav_menu_options | replace: '=>', ':' }});
@@ -298,19 +301,19 @@ j1.adapter['navigator'] = (function (j1, window) {
298
301
  // -----------------------------------------------------------------------
299
302
  // data loader
300
303
  // -----------------------------------------------------------------------
301
- j1.xhrData({
304
+ j1.loadHTML({
302
305
  xhr_container_id: navQuicklinksOptions.xhr_container_id,
303
306
  xhr_data_path: navQuicklinksOptions.xhr_data_path,
304
307
  xhr_data_element: navQuicklinksOptions.xhr_data_element },
305
308
  'j1.adapter.navigator',
306
309
  null);
307
- j1.xhrData({
310
+ j1.loadHTML({
308
311
  xhr_container_id: navAuthClientConfig.xhr_container_id,
309
312
  xhr_data_path: navAuthClientConfig.xhr_data_path,
310
313
  xhr_data_element: navAuthClientConfig.xhr_data_element },
311
314
  'j1.adapter.navigator',
312
315
  null);
313
- j1.xhrData({
316
+ j1.loadHTML({
314
317
  xhr_container_id: navMenuOptions.xhr_container_id,
315
318
  xhr_data_path: navMenuOptions.xhr_data_path,
316
319
  xhr_data_element: navMenuOptions.xhr_data_element },
@@ -321,21 +324,21 @@ j1.adapter['navigator'] = (function (j1, window) {
321
324
  if (j1.xhrDOMState['#'+navQuicklinksOptions.xhr_container_id] === 'success' &&
322
325
  j1.xhrDOMState['#'+navAuthClientConfig.xhr_container_id] === 'success' &&
323
326
  j1.xhrDOMState['#'+navMenuOptions.xhr_container_id] === 'success' ) {
324
- // continue if all AJAX loads (xhrData) has finished
327
+ // continue if all AJAX loads (loadHTML) has finished
325
328
  _this.setState('processing');
326
- logger.info('status: ' + _this.getState());
327
- logger.info('initialize navigator core');
329
+ logger.info('\n' + 'status: ' + _this.getState());
330
+ logger.info('\n' + 'initialize navigator core');
328
331
 
329
332
  // Detect|Set J1 App status
330
333
  appDetected = j1.appDetected();
331
334
  authClientEnabled = j1.authEnabled();
332
- logger.info('application status detected: ' + appDetected);
335
+ logger.info('\n' + 'application status detected: ' + appDetected);
333
336
 
334
337
  j1.core.navigator.init (_this.navDefaults, _this.navMenuOptions);
335
338
 
336
339
  // load themes (to menu) if themer is enabled|finished
337
340
  if (themerEnabled) {
338
- logText = 'theme switcher: enabled';
341
+ logText = '\n' + 'theme switcher: enabled';
339
342
  logger.info(logText);
340
343
 
341
344
  // detect j1 user state cookie
@@ -345,17 +348,21 @@ j1.adapter['navigator'] = (function (j1, window) {
345
348
  if (user_state_detected) {
346
349
  user_state = j1.readCookie(cookie_user_state_name);
347
350
  } else {
348
- logger.error('cookie not found: j1.user.state');
351
+ logger.error('\n' + 'cookie not found: j1.user.state');
352
+ logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
353
+ j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
354
+ logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
355
+ gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
349
356
  }
350
357
 
351
358
  // jadams, 2021-07-03: wait until navigator CORE get finished
352
359
  var dependencies_met_page_finished = setInterval(function() {
353
360
  if (j1.adapter.navigator.getState() == 'core_initialized') {
354
- logText = 'load themes';
361
+ logText = '\n' + 'load themes';
355
362
  logger.info(logText);
356
363
 
357
364
  // load LOCAL themes from JSON data
358
- logText = 'load local themes (json file)';
365
+ logText = '\n' + 'load local themes (json file)';
359
366
  logger.info(logText);
360
367
  $('#local_themes').bootstrapThemeSwitcher({
361
368
  localFeed: themerOptions.localThemes
@@ -378,16 +385,16 @@ j1.adapter['navigator'] = (function (j1, window) {
378
385
  interval_count += 1;
379
386
  themes_count = document.getElementById("remote_themes").getElementsByTagName("li").length;
380
387
  if ( themes_count > 0 ) {
381
- logger.info('remote themes loaded: successfully');
382
- logger.info('remote themes loaded: successfully after: ' + interval_count * 25 + ' ms');
388
+ logger.info('\n' + 'remote themes loaded: successfully');
389
+ logger.info('\n' + 'remote themes loaded: successfully after: ' + interval_count * 25 + ' ms');
383
390
 
384
391
  clearInterval(dependencies_met_remote_themes_loaded);
385
392
  } else {
386
- logger.debug('wait for theme to be loaded: ' + user_state.theme_name);
393
+ logger.debug('\n' + 'wait for theme to be loaded: ' + user_state.theme_name);
387
394
  }
388
395
  if (interval_count > max_count) {
389
- logger.warn('remote themes loading: failed');
390
- logger.warn('continue processing');
396
+ logger.warn('\n' + 'remote themes loading: failed');
397
+ logger.warn('\n' + 'continue processing');
391
398
  clearInterval(dependencies_met_remote_themes_loaded);
392
399
  }
393
400
  clearInterval(dependencies_met_page_finished);
@@ -396,7 +403,7 @@ j1.adapter['navigator'] = (function (j1, window) {
396
403
  _this.setState('initialized');
397
404
  }, 25); // END 'dependencies_met_page_finished'
398
405
  } else {
399
- logText = 'theme switcher detected as: disabled';
406
+ logText = '\n' + 'theme switcher detected as: disabled';
400
407
  logger.info(logText);
401
408
  }
402
409
 
@@ -410,39 +417,39 @@ j1.adapter['navigator'] = (function (j1, window) {
410
417
  _this.setState('processing');
411
418
 
412
419
  // set general|global theme colors
413
- logger.info('initializing dynamic CSS styles');
420
+ logger.info('\n' + 'initializing dynamic CSS styles');
414
421
  _this.setCSS (
415
422
  navDefaults, navBarOptions, navMenuOptions,
416
423
  navQuicklinksOptions, navTopsearchOptions
417
424
  );
418
425
 
419
- logger.info('init auth client');
426
+ logger.info('\n' + 'init auth client');
420
427
  _this.initAuthClient(_this.navAuthManagerConfig);
421
428
 
422
429
  _this.setState('finished');
423
- logger.info('state: ' + _this.getState());
424
- logger.info('module initialized successfully');
425
- logger.info('met dependencies for: j1');
430
+ logger.info('\n' + 'state: ' + _this.getState());
431
+ logger.info('\n' + 'module initialized successfully');
432
+ logger.info('\n' + 'met dependencies for: j1');
426
433
  clearInterval(dependencies_met_initialized);
427
434
  }
428
435
  } else {
429
436
  _this.setState('processing');
430
437
 
431
438
  // set general|global theme colors
432
- logger.info('apply dynamic CSS styles');
439
+ logger.info('\n' + 'apply dynamic CSS styles');
433
440
  _this.setCSS (
434
441
  navDefaults, navBarOptions, navMenuOptions,
435
442
  navQuicklinksOptions, navTopsearchOptions
436
443
  );
437
444
 
438
- logger.info('init auth client');
445
+ logger.info('\n' + 'init auth client');
439
446
  _this.initAuthClient(_this.navAuthManagerConfig);
440
447
  _this.setState('finished');
441
- logger.info('state: ' + _this.getState());
448
+ logger.info('\n' + 'state: ' + _this.getState());
442
449
  clearInterval(dependencies_met_initialized);
443
450
  }
444
451
  }, 25); // END 'dependencies_met_initialized'
445
- logger.info('met dependencies for: themer');
452
+ logger.info('\n' + 'met dependencies for: themer');
446
453
  clearInterval(dependencies_met_load_menu_finished);
447
454
  }
448
455
  }, 25); // END 'dependencies_met_load_menu_finished'
@@ -529,7 +536,7 @@ j1.adapter['navigator'] = (function (j1, window) {
529
536
  do: false
530
537
  };
531
538
 
532
- logText = 'initialize button click events';
539
+ logText = '\n' + 'initialize button click events';
533
540
  logger.info(logText);
534
541
 
535
542
  // Manage button click events for modal "signInOutButton"
@@ -559,7 +566,7 @@ j1.adapter['navigator'] = (function (j1, window) {
559
566
  e.stopPropagation();
560
567
  signOut.providerSignOut = $('input:checkbox[name="providerSignOut"]').is(':checked');
561
568
  if(environment === 'development') {
562
- logText = 'provider signout set to: ' + signOut.providerSignOut;
569
+ logText = '\n' + 'provider signout set to: ' + signOut.providerSignOut;
563
570
  logger.info(logText);
564
571
  }
565
572
  });
@@ -568,7 +575,7 @@ j1.adapter['navigator'] = (function (j1, window) {
568
575
  // -----------------------------------------------------------------------
569
576
  $('#modalOmniSignOut').on('show.bs.modal', function() {
570
577
  var modal = $(this);
571
- logger.info('place current user data');
578
+ logger.info('\n' + 'place current user data');
572
579
  user_session = j1.readCookie(cookie_user_session_name);
573
580
  modal.find('.user-info').text('You are signed in to provider: ' + user_session.provider);
574
581
  }); // END SHOW modalOmniSignOut
@@ -579,18 +586,18 @@ j1.adapter['navigator'] = (function (j1, window) {
579
586
  if (signIn.do == true) {
580
587
  provider = signIn.provider.toLowerCase();
581
588
  allowed_users = signIn.users.toString();
582
- logText = 'provider detected: ' + provider;
589
+ logText = '\n' + 'provider detected: ' + provider;
583
590
  logger.info(logText);
584
591
 
585
592
  var route = '/authentication?request=signin&provider=' +provider+ '&allowed_users=' +allowed_users;
586
- logText = 'call middleware for signin on route: ' + route;
593
+ logText = '\n' + 'call middleware for signin on route: ' + route;
587
594
  logger.info(logText);
588
595
  window.location.href = route;
589
596
  } else {
590
597
  provider = signIn.provider.toLowerCase();
591
- logText = 'provider detected: ' + provider;
598
+ logText = '\n' + 'provider detected: ' + provider;
592
599
  logger.info(logText);
593
- logText = 'login declined for provider: ' +provider;
600
+ logText = '\n' + 'login declined for provider: ' +provider;
594
601
  logger.info(logText);
595
602
  }
596
603
  }); // END post events "modalOmniSignIn"
@@ -599,31 +606,31 @@ j1.adapter['navigator'] = (function (j1, window) {
599
606
  // -----------------------------------------------------------------------
600
607
  $('#modalOmniSignOut').on('hidden.bs.modal', function() {
601
608
  if (signOut.do == true) {
602
- logger.info('load active provider from cookie: ' + cookie_user_session_name);
609
+ logger.info('\n' + 'load active provider from cookie: ' + cookie_user_session_name);
603
610
 
604
611
  user_session = j1.readCookie(cookie_user_session_name);
605
612
  provider = user_session.provider;
606
613
  provider_url = user_session.provider_site_url;
607
614
 
608
- logText = 'provider detected: ' + provider;
615
+ logText = '\n' + 'provider detected: ' + provider;
609
616
  logger.info(logText);
610
- logText = 'initiate signout for provider: ' +provider;
617
+ logText = '\n' + 'initiate signout for provider: ' +provider;
611
618
  logger.info(logText);
612
619
 
613
620
  var route = '/authentication?request=signout&provider=' + provider + '&provider_signout=' + signOut.providerSignOut; // + '/logout/';
614
- logText = 'call middleware on route : ' +route;
621
+ logText = '\n' + 'call middleware on route : ' +route;
615
622
  logger.info(logText);
616
623
  window.location.href = route;
617
624
  } else {
618
625
  provider = signOut.provider.toLowerCase();
619
- logText = 'provider detected: ' + provider;
626
+ logText = '\n' + 'provider detected: ' + provider;
620
627
  logger.info(logText);
621
- logText = 'signout declined for provider: ' +provider ;
628
+ logText = '\n' + 'signout declined for provider: ' +provider ;
622
629
  logger.info(logText);
623
630
  }
624
631
  }); // END post events "modalSignOut"
625
632
 
626
- logText = 'initialize button click events completed';
633
+ logText = '\n' + 'initialize button click events completed';
627
634
  logger.info(logText);
628
635
 
629
636
  return true;
@@ -640,7 +647,7 @@ j1.adapter['navigator'] = (function (j1, window) {
640
647
  var gridBreakpoint_sm = '576px';
641
648
  var navPrimaryColor = navDefaults.nav_primary_color;
642
649
 
643
- logger.info('set dynamic styles for the theme loaded');
650
+ logger.info('\n' + 'set dynamic styles for the theme loaded');
644
651
 
645
652
  // Set|Resolve navMenuOptions
646
653
  // ------------------------------------------------------------------------
@@ -784,7 +791,7 @@ j1.adapter['navigator'] = (function (j1, window) {
784
791
  var theElement = null;
785
792
  var theLastPosition = {x:0,y:0};
786
793
 
787
- logText ='entered delayShowMenu';
794
+ logText = '\n' + 'entered delayShowMenu';
788
795
  logger.info(logText);
789
796
 
790
797
  // $('#navigator_nav_menu')
@@ -833,10 +840,10 @@ j1.adapter['navigator'] = (function (j1, window) {
833
840
  var json_message = JSON.stringify(message);
834
841
  _this.setState(message.action);
835
842
 
836
- logText = 'received message from ' + sender + ': ' + json_message;
843
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
837
844
  logger.info(logText);
838
845
 
839
- logText = 'set state to: ' + message.action;
846
+ logText = '\n' + 'set state to: ' + message.action;
840
847
  logger.info(logText);
841
848
 
842
849
  // -----------------------------------------------------------------------
@@ -846,10 +853,10 @@ j1.adapter['navigator'] = (function (j1, window) {
846
853
  //
847
854
  // Place handling of command|action here
848
855
  //
849
- logger.info(message.text);
856
+ logger.info('\n' + message.text);
850
857
  }
851
858
  if (message.type === 'command' && message.action === 'status') {
852
- logger.info('messageHandler: received - ' + message.action);
859
+ logger.info('\n' + 'messageHandler: received - ' + message.action);
853
860
  }
854
861
 
855
862
  //
@@ -108,8 +108,8 @@ j1.adapter['quicksearch'] = (function (j1, window) {
108
108
 
109
109
  // initialize state flag
110
110
  _this.setState('started');
111
- logger.info('state: ' + _this.getState());
112
- logger.info('module is being initialized');
111
+ logger.info('\n' + 'state: ' + _this.getState());
112
+ logger.info('\n' + 'module is being initialized');
113
113
 
114
114
  // -----------------------------------------------------------------------
115
115
  // defaults
@@ -128,7 +128,7 @@ j1.adapter['quicksearch'] = (function (j1, window) {
128
128
  // -----------------------------------------------------------------------
129
129
  // lunr_search initializer
130
130
  // -----------------------------------------------------------------------
131
- var log_text = 'module is being initialized';
131
+ var log_text = '\n' + 'module is being initialized';
132
132
  logger.info(log_text);
133
133
 
134
134
  var dependencies_met_j1_finished = setInterval(function() {
@@ -143,7 +143,7 @@ j1.adapter['quicksearch'] = (function (j1, window) {
143
143
  });
144
144
 
145
145
  _this.setState('finished');
146
- logger.info('state: ' + _this.getState());
146
+ logger.info('\n' + 'state: ' + _this.getState());
147
147
 
148
148
  clearInterval(dependencies_met_j1_finished);
149
149
  } // END dependencies_met_j1_finished
@@ -172,7 +172,7 @@ j1.adapter['quicksearch'] = (function (j1, window) {
172
172
  messageHandler: function (sender, message) {
173
173
  var json_message = JSON.stringify(message, undefined, 2);
174
174
 
175
- logText = 'received message from ' + sender + ': ' + json_message;
175
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
176
176
  logger.debug(logText);
177
177
 
178
178
  // -----------------------------------------------------------------------
@@ -182,7 +182,7 @@ j1.adapter['quicksearch'] = (function (j1, window) {
182
182
  //
183
183
  // Place handling of command|action here
184
184
  //
185
- logger.info(message.text);
185
+ logger.info('\n' + message.text);
186
186
  }
187
187
 
188
188
  //
@@ -111,8 +111,8 @@ j1.adapter['rouge'] = (function (j1, window) {
111
111
 
112
112
  // initialize state flag
113
113
  _this.setState('started');
114
- logger.info('state: ' + _this.getState());
115
- logger.info('module is being initialized');
114
+ logger.info('\n' + 'state: ' + _this.getState());
115
+ logger.info('\n' + 'module is being initialized');
116
116
 
117
117
  // -----------------------------------------------------------------------
118
118
  // Default module settings
@@ -125,7 +125,7 @@ j1.adapter['rouge'] = (function (j1, window) {
125
125
  // -----------------------------------------------------------------------
126
126
  // rouge initializer
127
127
  // -----------------------------------------------------------------------
128
- var log_text = 'Rouge is being initialized';
128
+ var log_text = '\n' + 'module is being initialized';
129
129
  logger.info(log_text);
130
130
 
131
131
  // Detect|Set J1 UserState
@@ -139,7 +139,7 @@ j1.adapter['rouge'] = (function (j1, window) {
139
139
  themeCss.includes('slate') ||
140
140
  themeCss.includes('superhero');
141
141
  } else {
142
- log_text = 'user_state cookie not found';
142
+ log_text = '\n' + 'user_state cookie not found';
143
143
  logger.warn(log_text);
144
144
  }
145
145
 
@@ -149,7 +149,7 @@ j1.adapter['rouge'] = (function (j1, window) {
149
149
  $('#selected').html("Current Selection: <div class='bg-primary mt-1 p-2'>"+$(this).text()+"</div>");
150
150
  });
151
151
  _this.setState('finished');
152
- logger.info('state: ' + _this.getState());
152
+ logger.info('\n' + 'state: ' + _this.getState());
153
153
  clearInterval(dependencies_met_j1_finished);
154
154
  } // END dependencies_met_j1_finished
155
155
  }, 25);
@@ -200,7 +200,7 @@ j1.adapter['rouge'] = (function (j1, window) {
200
200
  messageHandler: function (sender, message) {
201
201
  var json_message = JSON.stringify(message, undefined, 2);
202
202
 
203
- logText = 'received message from ' + sender + ': ' + json_message;
203
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
204
204
  logger.debug(logText);
205
205
 
206
206
  // -----------------------------------------------------------------------
@@ -210,7 +210,7 @@ j1.adapter['rouge'] = (function (j1, window) {
210
210
  //
211
211
  // Place handling of command|action here
212
212
  //
213
- logger.info(message.text);
213
+ logger.info('\n' + message.text);
214
214
  }
215
215
 
216
216
  //
@@ -79,8 +79,8 @@ j1.adapter['rtable'] = (function (j1, window) {
79
79
 
80
80
  // initialize state flag
81
81
  _this.setState('started');
82
- logger.info('state: ' + _this.getState());
83
- logger.info('module is being initialized');
82
+ logger.info('\n' + 'state: ' + _this.getState());
83
+ logger.info('\n' + 'module is being initialized');
84
84
 
85
85
  // -----------------------------------------------------------------------
86
86
  // Default module settings
@@ -93,7 +93,7 @@ j1.adapter['rtable'] = (function (j1, window) {
93
93
  // -----------------------------------------------------------------------
94
94
  // rtable initializer
95
95
  // -----------------------------------------------------------------------
96
- var log_text = 'rtable is being initialized';
96
+ var log_text = '\n' + 'rtable is being initialized';
97
97
  logger.info(log_text);
98
98
 
99
99
  // Add data attribute for tablesaw to all tables of a page
@@ -120,7 +120,7 @@ j1.adapter['rtable'] = (function (j1, window) {
120
120
  Tablesaw.init();
121
121
 
122
122
  _this.setState('finished');
123
- logger.info('state: ' + _this.getState());
123
+ logger.info('\n' + 'state: ' + _this.getState());
124
124
 
125
125
  clearInterval(dependencies_met_j1_finished);
126
126
  } // END dependencies_met_j1_finished
@@ -135,7 +135,7 @@ j1.adapter['rtable'] = (function (j1, window) {
135
135
  messageHandler: function (sender, message) {
136
136
  var json_message = JSON.stringify(message, undefined, 2);
137
137
 
138
- logText = 'received message from ' + sender + ': ' + json_message;
138
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
139
139
  logger.debug(logText);
140
140
 
141
141
  // -----------------------------------------------------------------------
@@ -145,7 +145,7 @@ j1.adapter['rtable'] = (function (j1, window) {
145
145
  //
146
146
  // Place handling of command|action here
147
147
  //
148
- logger.info(message.text);
148
+ logger.info('\n' + message.text);
149
149
  }
150
150
 
151
151
  //
@@ -103,6 +103,8 @@ j1.adapter['themer'] = (function (j1, window) {
103
103
  // ---------------------------------------------------------------------------
104
104
  var environment = '{{environment}}';
105
105
  var themerOptions = $.extend({}, {{themer_options | replace: '=>', ':' | replace: 'nil', '""' }});
106
+ var url = new liteURL(window.location.href);
107
+ var secure = (url.protocol.includes('https')) ? true : false;
106
108
  var user_state = {};
107
109
  var user_consent = {};
108
110
  var cookie_names = j1.getCookieNames();
@@ -173,8 +175,12 @@ j1.adapter['themer'] = (function (j1, window) {
173
175
 
174
176
  // initialize state flag
175
177
  _this.state = 'started';
176
- logger.info('state: ' + _this.getState());
178
+ logger.info('\n' + 'state: ' + _this.getState());
177
179
 
180
+ // jadams, 2021-07-25: problem seems NOT an timing issue on the iPad
181
+ // platform. (General) Dependency should be REMOVED!!!
182
+ // TODO: Isolate redirect for iPad ONLY!!!
183
+ //
178
184
  // jadams, 2021-07-11: added dependecy on the user state cookie
179
185
  // Found timing issues testing mobile devices (iPad)
180
186
  var dependencies_met_user_state_available = setInterval (function () {
@@ -187,7 +193,7 @@ j1.adapter['themer'] = (function (j1, window) {
187
193
  user_state = j1.readCookie(cookie_names.user_state);
188
194
  user_consent = j1.readCookie(cookie_names.user_consent);
189
195
 
190
- logger.info('cookie ' + cookie_names.user_state + ' successfully loaded after: ' + interval_count * 25 + ' ms');
196
+ logger.info('\n' + 'cookie ' + cookie_names.user_state + ' successfully loaded after: ' + interval_count * 25 + ' ms');
191
197
 
192
198
  // initial theme data
193
199
  if (user_state.theme_css === '') {
@@ -207,39 +213,28 @@ j1.adapter['themer'] = (function (j1, window) {
207
213
  $('head').append(theme_css_html);
208
214
  }
209
215
  } else {
210
- logger.fatal('inconsistent state detected for cookie: ' + cookie_names.user_state);
216
+ logger.fatal('\n' + 'inconsistent state detected for cookie: ' + cookie_names.user_state);
211
217
  }
212
218
 
213
219
  // set the theme switcher state
214
220
  user_state.theme_switcher = themerOptions.enabled;
215
221
 
216
- // jadams, 2021-07-11: unclear why the cookie consent is checked here
222
+ // jadams, 2021-07-25: hide|show themes menu on cookie consent
223
+ // (analyses|personalization) settings. BootSwatch is a 3rd party
224
+ // is using e.g GA. Because NO control is possible on 3rd parties,
225
+ // for GDPR compliance, themes feature may disabled on
226
+ // privacy settings
217
227
  if (!user_consent.analyses || !user_consent.personalization) {
218
- // expire state cookie to session
219
- cookie_written = j1.writeCookie({
220
- name: cookie_names.user_state,
221
- data: user_state,
222
- samesite: 'Strict'
223
- });
224
- if (!cookie_written) {
225
- logger.error('failed to write cookie: ' + cookie_names.user_state);
226
- }
228
+ logger.warn('\n' + 'disable themes feature because of privacy settings');
229
+ $("#themes_menu").hide();
227
230
  } else {
228
- cookie_written = j1.writeCookie({
229
- name: cookie_names.user_state,
230
- data: user_state,
231
- samesite: 'Strict',
232
- expires: 365
233
- });
234
- if (!cookie_written) {
235
- logger.error('failed to write cookie: ' + cookie_names.user_state);
236
- }
231
+ $("#themes_menu").show();
237
232
  }
238
233
 
239
234
  if (themerOptions.enabled) {
240
235
  // enable BS ThemeSwitcher
241
- logger.info('themes detected as: enabled');
242
- logger.info('theme is being initialized: ' + user_state.theme_name);
236
+ logger.info('\n' + 'themes detected as: enabled');
237
+ logger.info('\n' + 'theme is being initialized: ' + user_state.theme_name);
243
238
 
244
239
  /* eslint-disable */
245
240
  // load list of remote themes
@@ -264,35 +259,36 @@ j1.adapter['themer'] = (function (j1, window) {
264
259
  };
265
260
  /* eslint-enable */
266
261
 
267
- logger.info('theme loaded: ' + user_state.theme_name);
268
- logger.info('theme css file: ' + user_state.theme_css);
262
+ logger.info('\n' + 'theme loaded: ' + user_state.theme_name);
263
+ logger.info('\n' + 'theme css file: ' + user_state.theme_css);
269
264
  _this.setState('finished');
270
- logger.info('state: ' + _this.getState());
271
- logger.info('module initialized successfully');
265
+ logger.info('\n' + 'state: ' + _this.getState());
266
+ logger.info('\n' + 'module initialized successfully');
272
267
  } else {
273
268
  _this.setState('finished');
274
- logger.info('state: ' + _this.getState());
275
- logger.info('themes detected as: disabled');
269
+ logger.info('\n' + 'state: ' + _this.getState());
270
+ logger.info('\n' + 'themes detected as: disabled');
276
271
  }
277
272
  clearInterval(dependencies_met_user_state_available);
278
- } else {
279
- logger.info('wait for cookie to be loaded: ' + cookie_names.user_state);
280
273
  }
281
- if (interval_count > max_count) {
282
- logger.error('interval max count loading cookie reached: ' + interval_count);
283
- logger.error('check failed after: ' + interval_count * 25 + ' ms');
284
- logger.fatal('loading cookie failed: ' + cookie_names.user_state);
285
274
 
286
- // for development only
287
- if (environment === 'development') {
288
- gaCookies.forEach(item => console.log('cookieConsent: ' + item));
289
- j1Cookies.forEach(item => console.log('cookieConsent: ' + item));
290
- }
291
-
292
- // jadams, 2021-07-13: display error page instead to continue
275
+ if (interval_count > max_count) {
276
+ logger.error('\n' + 'interval max count reached: ' + max_count);
277
+ logger.error('\n' + 'check failed after: ' + max_count * 25 + ' ms');
278
+ logger.error('\n' + 'loading cookie failed: ' + cookie_names.user_state);
279
+
280
+ logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
281
+ j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
282
+ logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
283
+ gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
284
+
285
+ // jadams, 2021-07-15: redirect to homepage
286
+ // NOTE: UNCLEAR why it is needed to create the user state
287
+ // cookie THIS way
293
288
  //
294
- logger.warn('redirect to error page');
295
- window.location.href = error_page;
289
+ logger.warn('\n' + 'redirect to home page');
290
+ // window.location.href = error_page;
291
+ window.location.href = '/';
296
292
  clearInterval(dependencies_met_user_state_available);
297
293
  }
298
294
  }, 25); // END dependencies_met_user_state_available
@@ -305,14 +301,14 @@ j1.adapter['themer'] = (function (j1, window) {
305
301
  messageHandler: function (sender, message) {
306
302
  var json_message = JSON.stringify(message, undefined, 2);
307
303
 
308
- logText = 'received message from ' + sender + ': ' + json_message;
304
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
309
305
  logger.info(logText);
310
306
 
311
307
  // -----------------------------------------------------------------------
312
308
  // Process commands|actions
313
309
  // -----------------------------------------------------------------------
314
310
  if (message.type === 'command' && message.action === 'module_initialized') {
315
- logger.info(message.text);
311
+ logger.info('\n' + message.text);
316
312
  //
317
313
  // Place handling of other command|action here
318
314
  //