j1-template 2023.0.15 → 2023.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +2 -2
  3. data/assets/data/banner.html +2 -2
  4. data/assets/error_pages/HTTP204.html +9 -5
  5. data/assets/error_pages/HTTP400.html +18 -2
  6. data/assets/error_pages/HTTP401.html +18 -2
  7. data/assets/error_pages/HTTP403.html +18 -2
  8. data/assets/error_pages/HTTP404.html +10 -2
  9. data/assets/error_pages/HTTP444.html +18 -2
  10. data/assets/error_pages/HTTP445.html +18 -2
  11. data/assets/error_pages/HTTP446.html +18 -2
  12. data/assets/error_pages/HTTP447.html +18 -2
  13. data/assets/error_pages/HTTP448.html +18 -2
  14. data/assets/error_pages/HTTP500.html +18 -2
  15. data/assets/error_pages/HTTP501.html +18 -2
  16. data/assets/error_pages/HTTP502.html +18 -2
  17. data/assets/error_pages/HTTP503.html +18 -2
  18. data/assets/themes/j1/adapter/js/analytics.js +91 -94
  19. data/assets/themes/j1/adapter/js/comments.js +5 -5
  20. data/assets/themes/j1/adapter/js/cookieConsent.js +41 -25
  21. data/assets/themes/j1/adapter/js/fab.js +3 -1
  22. data/assets/themes/j1/adapter/js/j1.js +39 -1
  23. data/assets/themes/j1/adapter/js/slick.js +221 -0
  24. data/assets/themes/j1/adapter/js/translator.js +45 -3
  25. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +4 -4
  26. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  27. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +10 -4
  28. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
  29. data/assets/themes/j1/modules/slick/LICENSE +20 -0
  30. data/assets/themes/j1/modules/slick/README.md +292 -0
  31. data/assets/themes/j1/modules/slick/ajax-loader.gif +0 -0
  32. data/assets/themes/j1/modules/slick/css/slick.css +129 -0
  33. data/assets/themes/j1/modules/slick/css/slick.min.css +15 -0
  34. data/assets/themes/j1/modules/slick/fonts/slick.eot +0 -0
  35. data/assets/themes/j1/modules/slick/fonts/slick.svg +14 -0
  36. data/assets/themes/j1/modules/slick/fonts/slick.ttf +0 -0
  37. data/assets/themes/j1/modules/slick/fonts/slick.woff +0 -0
  38. data/assets/themes/j1/modules/slick/js/slick.js +2295 -0
  39. data/assets/themes/j1/modules/slick/js/slick.min.js +1 -0
  40. data/assets/themes/j1/modules/translator/css/translator.css +3 -3
  41. data/assets/themes/j1/modules/translator/css/translator.min.css +1 -1
  42. data/assets/themes/j1/modules/translator/js/translator.js +19 -7
  43. data/lib/j1/version.rb +1 -1
  44. data/lib/starter_web/Gemfile +2 -2
  45. data/lib/starter_web/README.md +5 -5
  46. data/lib/starter_web/_config.yml +4 -3
  47. data/lib/starter_web/_data/blocks/defaults/panel.yml +0 -5
  48. data/lib/starter_web/_data/modules/advertising.yml +3 -60
  49. data/lib/starter_web/_data/modules/analytics.yml +5 -1
  50. data/lib/starter_web/_data/modules/blog_navigator.yml +3 -7
  51. data/lib/starter_web/_data/modules/carousel.yml +1 -20
  52. data/lib/starter_web/_data/modules/comments.yml +1 -29
  53. data/lib/starter_web/_data/modules/cookieconsent.yml +3 -1
  54. data/lib/starter_web/_data/modules/cookies.yml +4 -3
  55. data/lib/starter_web/_data/modules/defaults/analytics.yml +4 -3
  56. data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +25 -22
  57. data/lib/starter_web/_data/modules/defaults/comments.yml +6 -1
  58. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +3 -0
  59. data/lib/starter_web/_data/modules/defaults/cookies.yml +2 -2
  60. data/lib/starter_web/_data/modules/defaults/framer.yml +6 -3
  61. data/lib/starter_web/_data/modules/defaults/lightGallery.yml +52 -48
  62. data/lib/starter_web/_data/modules/defaults/lightbox.yml +1 -1
  63. data/lib/starter_web/_data/modules/defaults/log4javascript.yml +7 -3
  64. data/lib/starter_web/_data/modules/defaults/log4r.yml +7 -4
  65. data/lib/starter_web/_data/modules/defaults/masonry.yml +5 -2
  66. data/lib/starter_web/_data/modules/defaults/masterslider.yml +3 -5
  67. data/lib/starter_web/_data/modules/defaults/nbinteract.yml +17 -19
  68. data/lib/starter_web/_data/modules/defaults/particles.yml +5 -5
  69. data/lib/starter_web/_data/modules/defaults/rangeSlider.yml +1 -1
  70. data/lib/starter_web/_data/modules/defaults/themer.yml +14 -9
  71. data/lib/starter_web/_data/modules/defaults/toccer.yml +2 -2
  72. data/lib/starter_web/_data/modules/defaults/translator.yml +5 -2
  73. data/lib/starter_web/_data/modules/defaults/waves.yml +3 -0
  74. data/lib/starter_web/_data/modules/dropdowns.yml +3 -3
  75. data/lib/starter_web/_data/modules/fab.yml +5 -2
  76. data/lib/starter_web/_data/modules/framer.yml +4 -19
  77. data/lib/starter_web/_data/modules/lightGallery.yml +4 -78
  78. data/lib/starter_web/_data/modules/lightbox.yml +4 -151
  79. data/lib/starter_web/_data/modules/log4r.yml +5 -137
  80. data/lib/starter_web/_data/modules/lunr.yml +2 -11
  81. data/lib/starter_web/_data/modules/masonry.yml +8 -0
  82. data/lib/starter_web/_data/modules/masterslider.yml +6 -2
  83. data/lib/starter_web/_data/modules/navigator_menu.yml +16 -0
  84. data/lib/starter_web/_data/modules/particles.yml +3 -7
  85. data/lib/starter_web/_data/modules/rangeSlider.yml +35 -3
  86. data/lib/starter_web/_data/modules/scroller.yml +4 -0
  87. data/lib/starter_web/_data/modules/themer.yml +3 -0
  88. data/lib/starter_web/_data/modules/toccer.yml +5 -20
  89. data/lib/starter_web/_data/modules/translator.yml +5 -2
  90. data/lib/starter_web/_data/modules/waves.yml +3 -0
  91. data/lib/starter_web/_data/resources.yml +26 -0
  92. data/lib/starter_web/_data/templates/feed.xml +1 -1
  93. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  94. data/lib/starter_web/package.json +2 -2
  95. data/lib/starter_web/pages/public/about/features.adoc +1 -1
  96. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +4 -5
  97. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +2 -3
  98. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +1 -1
  99. data/lib/starter_web/pages/public/blog/navigator/index.html +0 -3
  100. data/lib/starter_web/pages/public/bookshelf/viewer_biography.adoc +1 -1
  101. data/lib/starter_web/pages/public/bookshelf/whats_up.adoc +1 -1
  102. data/lib/starter_web/pages/public/features/general.adoc +1 -2
  103. data/lib/starter_web/pages/public/features/template.adoc +1 -1
  104. data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +1 -1
  105. data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +1 -1
  106. data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +1 -1
  107. data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.adoc +2 -3
  108. data/lib/starter_web/pages/public/learn/roundtrip/modal_extentions.adoc +1 -1
  109. data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +3 -2
  110. data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +1 -1
  111. data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +1 -1
  112. data/lib/starter_web/pages/public/learn/roundtrip/typography.adoc +1 -1
  113. data/lib/starter_web/pages/public/learn/where_to_go.adoc +1 -1
  114. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +1 -2
  115. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +1 -2
  116. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +1 -2
  117. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +1 -2
  118. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +1 -1
  119. data/lib/starter_web/pages/public/plans/plans.adoc +1 -1
  120. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +2 -2
  121. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  122. data/lib/starter_web/utilsrv/package.json +1 -1
  123. metadata +14 -2
@@ -87,9 +87,24 @@ sitemap: false
87
87
  <meta name="robots" content="noindex, nofollow">
88
88
  <link rel="icon" type="image/ico" href="{{favicon}}">
89
89
  <title>{{title}} · {{page.http_error}}</title>
90
- <style> .attic { background-image: -webkit-gradient(linear, left top, left bottom, from(#263238), to(#707070));background-image: -webkit-linear-gradient(top, #263238 0%, #707070 100%);background-image: -o-linear-gradient(top, #263238 0%, #707070 100%);background-image: linear-gradient(to bottom, #263238 0%, #707070 100%);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#263238", endColorstr="#707070", GradientType=0); } </style>
91
- <style type="text/css">/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{cursor: pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{cursor: pointer ;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}body,html{width:100%;height:100%;background-color:#21232a}body{color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5);padding:0;min-height:100%;-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.8);box-shadow:inset 0 0 100px rgba(0,0,0,.8);display:table;font-family:"Open Sans",Arial,sans-serif}h1{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;font-size:36px}h1 small{font-size:68%;font-weight:400;line-height:1;color:#777}a{text-decoration:none;color:#fff;font-size:inherit;border-bottom:dotted 1px #707070}.lead{color:silver;font-size:21px;line-height:1.4}.cover{display:table-cell;vertical-align:middle;padding:0 20px}footer{position:fixed;width:100%;height:40px;left:0;bottom:0;color:#e0e0e0;font-size:14px}</style>
90
+ <style>
91
+ body, html {
92
+ width:100%;
93
+ height:100%;
94
+ background-color: #fff;
95
+ }
96
+ .attic {
97
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#263238), to(#707070));
98
+ background-image: -webkit-linear-gradient(top, #263238 0%, #707070 100%);
99
+ background-image: -o-linear-gradient(top, #263238 0%, #707070 100%);
100
+ background-image: linear-gradient(to bottom, #263238 0%, #707070 100%);
101
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#263238", endColorstr="#707070", GradientType=0);
102
+ }
103
+ /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
104
+ html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{cursor: pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{cursor: pointer ;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}body{color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5);padding:0;min-height:100%;-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.8);box-shadow:inset 0 0 100px rgba(0,0,0,.8);display:table;font-family:"Open Sans",Arial,sans-serif}h1{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;font-size:36px}h1 small{font-size:68%;font-weight:400;line-height:1;color:#777}a{text-decoration:none;color:#fff;font-size:inherit;border-bottom:dotted 1px #707070}.lead{color:silver;font-size:21px;line-height:1.4}.cover{display:table-cell;vertical-align:middle;padding:0 20px}footer{position:fixed;width:100%;height:40px;left:0;bottom:0;color:#e0e0e0;font-size:14px}
105
+ </style>
92
106
  </head>
107
+
93
108
  <body>
94
109
  <div style="margin-top: 1rem;">
95
110
  <a href="/"><img src="{{brand_image}}" height="{{brand_image_height}}" alt="{{brand_text}}"></a>
@@ -103,6 +118,7 @@ sitemap: false
103
118
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
104
119
  </footer>
105
120
  </body>
121
+
106
122
  </html>
107
123
 
108
124
  {% endcapture %}
@@ -87,9 +87,24 @@ sitemap: false
87
87
  <meta name="robots" content="noindex, nofollow">
88
88
  <link rel="icon" type="image/ico" href="{{favicon}}">
89
89
  <title>{{title}} · {{page.http_error}}</title>
90
- <style> .attic { background-image: -webkit-gradient(linear, left top, left bottom, from(#263238), to(#707070));background-image: -webkit-linear-gradient(top, #263238 0%, #707070 100%);background-image: -o-linear-gradient(top, #263238 0%, #707070 100%);background-image: linear-gradient(to bottom, #263238 0%, #707070 100%);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#263238", endColorstr="#707070", GradientType=0); } </style>
91
- <style type="text/css">/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{cursor: pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{cursor: pointer ;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}body,html{width:100%;height:100%;background-color:#21232a}body{color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5);padding:0;min-height:100%;-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.8);box-shadow:inset 0 0 100px rgba(0,0,0,.8);display:table;font-family:"Open Sans",Arial,sans-serif}h1{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;font-size:36px}h1 small{font-size:68%;font-weight:400;line-height:1;color:#777}a{text-decoration:none;color:#fff;font-size:inherit;border-bottom:dotted 1px #707070}.lead{color:silver;font-size:21px;line-height:1.4}.cover{display:table-cell;vertical-align:middle;padding:0 20px}footer{position:fixed;width:100%;height:40px;left:0;bottom:0;color:#e0e0e0;font-size:14px}</style>
90
+ <style>
91
+ body, html {
92
+ width:100%;
93
+ height:100%;
94
+ background-color: #fff;
95
+ }
96
+ .attic {
97
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#263238), to(#707070));
98
+ background-image: -webkit-linear-gradient(top, #263238 0%, #707070 100%);
99
+ background-image: -o-linear-gradient(top, #263238 0%, #707070 100%);
100
+ background-image: linear-gradient(to bottom, #263238 0%, #707070 100%);
101
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#263238", endColorstr="#707070", GradientType=0);
102
+ }
103
+ /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
104
+ html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{cursor: pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{cursor: pointer ;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}body{color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5);padding:0;min-height:100%;-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.8);box-shadow:inset 0 0 100px rgba(0,0,0,.8);display:table;font-family:"Open Sans",Arial,sans-serif}h1{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;font-size:36px}h1 small{font-size:68%;font-weight:400;line-height:1;color:#777}a{text-decoration:none;color:#fff;font-size:inherit;border-bottom:dotted 1px #707070}.lead{color:silver;font-size:21px;line-height:1.4}.cover{display:table-cell;vertical-align:middle;padding:0 20px}footer{position:fixed;width:100%;height:40px;left:0;bottom:0;color:#e0e0e0;font-size:14px}
105
+ </style>
92
106
  </head>
107
+
93
108
  <body>
94
109
  <div style="margin-top: 1rem;">
95
110
  <a href="/"><img src="{{brand_image}}" height="{{brand_image_height}}" alt="{{brand_text}}"></a>
@@ -103,6 +118,7 @@ sitemap: false
103
118
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
104
119
  </footer>
105
120
  </body>
121
+
106
122
  </html>
107
123
 
108
124
  {% endcapture %}
@@ -90,9 +90,24 @@ sitemap: false
90
90
  <meta name="robots" content="noindex, nofollow">
91
91
  <link rel="icon" type="image/ico" href="{{favicon}}">
92
92
  <title>{{title}} · {{page.http_error}}</title>
93
- <style> .attic { background-image: -webkit-gradient(linear, left top, left bottom, from(#263238), to(#707070));background-image: -webkit-linear-gradient(top, #263238 0%, #707070 100%);background-image: -o-linear-gradient(top, #263238 0%, #707070 100%);background-image: linear-gradient(to bottom, #263238 0%, #707070 100%);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#263238", endColorstr="#707070", GradientType=0); } </style>
94
- <style type="text/css">/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{cursor: pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{cursor: pointer ;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}body,html{width:100%;height:100%;background-color:#21232a}body{color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5);padding:0;min-height:100%;-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.8);box-shadow:inset 0 0 100px rgba(0,0,0,.8);display:table;font-family:"Open Sans",Arial,sans-serif}h1{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;font-size:36px}h1 small{font-size:68%;font-weight:400;line-height:1;color:#777}a{text-decoration:none;color:#fff;font-size:inherit;border-bottom:dotted 1px #707070}.lead{color:silver;font-size:21px;line-height:1.4}.cover{display:table-cell;vertical-align:middle;padding:0 20px}footer{position:fixed;width:100%;height:40px;left:0;bottom:0;color:#e0e0e0;font-size:14px}</style>
93
+ <style>
94
+ body, html {
95
+ width:100%;
96
+ height:100%;
97
+ background-color: #fff;
98
+ }
99
+ .attic {
100
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#263238), to(#707070));
101
+ background-image: -webkit-linear-gradient(top, #263238 0%, #707070 100%);
102
+ background-image: -o-linear-gradient(top, #263238 0%, #707070 100%);
103
+ background-image: linear-gradient(to bottom, #263238 0%, #707070 100%);
104
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#263238", endColorstr="#707070", GradientType=0);
105
+ }
106
+ /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
107
+ html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{cursor: pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{cursor: pointer ;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}body{color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5);padding:0;min-height:100%;-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.8);box-shadow:inset 0 0 100px rgba(0,0,0,.8);display:table;font-family:"Open Sans",Arial,sans-serif}h1{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;font-size:36px}h1 small{font-size:68%;font-weight:400;line-height:1;color:#777}a{text-decoration:none;color:#fff;font-size:inherit;border-bottom:dotted 1px #707070}.lead{color:silver;font-size:21px;line-height:1.4}.cover{display:table-cell;vertical-align:middle;padding:0 20px}footer{position:fixed;width:100%;height:40px;left:0;bottom:0;color:#e0e0e0;font-size:14px}
108
+ </style>
95
109
  </head>
110
+
96
111
  <body>
97
112
  <div style="margin-top: 1rem;">
98
113
  <a href="/"><img src="{{brand_image}}" height="{{brand_image_height}}" alt="{{brand_text}}"></a>
@@ -106,6 +121,7 @@ sitemap: false
106
121
  <p>{{copyright_info}} · {{contact_issue}}: <a href="mailto:{{webmaster_email}}?subject={{title}}">{{webmaster_email}}</a></p>
107
122
  </footer>
108
123
  </body>
124
+
109
125
  </html>
110
126
 
111
127
  {% endcapture %}
@@ -125,112 +125,109 @@ var logText;
125
125
  // -------------------------------------------------------------------------
126
126
  init: function (options) {
127
127
 
128
- {% if analytics %}
129
-
130
- // Load module DEFAULTS|CONFIG
131
- analyticsDefaults = $.extend({}, {{analytics_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
132
- analyticsSettings = $.extend({}, {{analytics_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
133
- analyticsOptions = $.extend(true, {}, analyticsDefaults, analyticsSettings);
134
-
135
- // [INFO ] [j1.adapter.analytics ] [ detected analytics provider (j1_config): {{analytics_provider}}} ]
136
- // [INFO ] [j1.adapter.analytics ] [ start processing load region head, layout: {{page.layout}} ]
137
- {% case analytics_provider %}
138
- {% when "google" %}
139
- // [INFO ] [j1.adapter.analytics ] [ place provider: Google Adsense ]
140
- providerID = analyticsOptions.google.trackingID;
141
- skipAllHosts = analyticsOptions.google.skipAllHosts;
142
- optInOut = analyticsOptions.google.optInOut;
143
- anonymizeIP = analyticsOptions.google.anonymizeIP;
144
- validProviderID = (providerID.includes('your')) ? false : true;
128
+ var dependencies_met_page_ready = setInterval (function (options) {
129
+ var pageState = $('#no_flicker').css("display");
130
+ var pageVisible = (pageState == 'block') ? true: false;
131
+ if ( j1.getState() === 'finished' && pageVisible ) {
132
+ {% if analytics %}
133
+
134
+ // Load module DEFAULTS|CONFIG
135
+ analyticsDefaults = $.extend({}, {{analytics_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
136
+ analyticsSettings = $.extend({}, {{analytics_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
137
+ analyticsOptions = $.extend(true, {}, analyticsDefaults, analyticsSettings);
138
+
139
+ // [INFO ] [j1.adapter.analytics ] [ detected analytics provider (j1_config): {{analytics_provider}}} ]
140
+ // [INFO ] [j1.adapter.analytics ] [ start processing load region head, layout: {{page.layout}} ]
141
+ {% case analytics_provider %}
142
+ {% when "google" %}
143
+ // [INFO ] [j1.adapter.analytics ] [ place provider: Google Adsense ]
144
+ providerID = analyticsOptions.trackingID;
145
+ skipAllHosts = analyticsOptions.skipAllHosts;
146
+ optInOut = analyticsOptions.google.optInOut;
147
+ anonymizeIP = analyticsOptions.google.anonymizeIP;
148
+ validProviderID = (providerID.includes('your')) ? false : true;
145
149
 
146
- // -----------------------------------------------------------------------
147
- // Default module settings
148
- // -----------------------------------------------------------------------
149
- var settings = $.extend({
150
- module_name: 'j1.adapter.analytics',
151
- generated: '{{site.time}}'
152
- }, options);
150
+ // -----------------------------------------------------------------
151
+ // Default module settings
152
+ // -----------------------------------------------------------------
153
+ var settings = $.extend({
154
+ module_name: 'j1.adapter.analytics',
155
+ generated: '{{site.time}}'
156
+ }, options);
153
157
 
154
- // -----------------------------------------------------------------------
155
- // Global variable settings
156
- // -----------------------------------------------------------------------
157
- _this = j1.adapter.analytics;
158
- logger = log4javascript.getLogger('j1.adapter.analytics.google');
159
-
160
- // initialize state flag
161
- _this.setState('started');
162
- logger.debug('\n' + 'state: ' + _this.getState());
163
- logger.info('\n' + 'module is being initialized');
164
-
165
- // remove cookies on invalid GA config or left from a previous
166
- // session/page view if they exists
167
- // ---------------------------------------------------------------------
168
- gaCookies = j1.findCookie('_ga');
169
- gaCookies.forEach(function (item) {
170
- logger.warn('\n' + 'delete cookie created by Google Analytics: ' + item);
171
- if (hostname == 'localhost') {
172
- j1.removeCookie({ name: item, domain: false, secure: false });
173
- } else {
174
- j1.removeCookie({ name: item, domain: '.' + hostname, secure: false });
175
- }
176
- });
158
+ // -----------------------------------------------------------------
159
+ // Global variable settings
160
+ // -----------------------------------------------------------------
161
+ _this = j1.adapter.analytics;
162
+ logger = log4javascript.getLogger('j1.adapter.analytics.google');
177
163
 
178
- var dependencies_met_page_ready = setInterval(function() {
179
- if (j1.getState() == 'finished') {
164
+ // initialize state flag
165
+ _this.setState('started');
166
+ logger.debug('\n' + 'state: ' + _this.getState());
167
+ logger.info('\n' + 'module is being initialized');
180
168
 
181
- gaExists = document.getElementById('google-tag-manager') === null ? false : true;
182
- skipHosts = skipAllHosts.replace(/,/g, ' ');
183
- skipHost = skipHosts.includes(hostname);
169
+ // remove cookies on invalid GA config or left from a previous
170
+ // session/page view if they exists
171
+ // -----------------------------------------------------------------
172
+ gaCookies = j1.findCookie('_ga');
173
+ gaCookies.forEach(function (item) {
174
+ logger.debug('\n' + 'delete cookie created by Google Analytics: ' + item);
175
+ if (hostname == 'localhost') {
176
+ j1.removeCookie({ name: item, domain: false, secure: false });
177
+ } else {
178
+ j1.removeCookie({ name: item, domain: '.' + hostname, secure: false });
179
+ }
180
+ });
181
+
182
+ gaExists = document.getElementById('google-tag-manager') === null ? false : true;
183
+ skipHosts = skipAllHosts.replace(/,/g, ' ');
184
+ skipHost = skipHosts.includes(hostname);
185
+
186
+ user_consent = j1.readCookie(cookie_names.user_consent);
187
+ if (user_consent.analysis && skipHost && validProviderID) {
188
+ logger.debug('\n' + 'Google Analytics skipped for: ' + hostname);
189
+ }
184
190
 
185
- user_consent = j1.readCookie(cookie_names.user_consent);
186
- if (user_consent.analysis && skipHost && validProviderID) {
187
- logger.warn('\n' + 'Google Analytics skipped for: ' + hostname);
188
- }
191
+ if (!gaExists && !skipHost) {
192
+ // add ga api dynamically in the head section
193
+ // ---------------------------------------------------------------
194
+ logger.info('\n' + 'Google Analytics added for: ' + hostname);
195
+ logger.info('\n' + 'Google Analytics API added in section: head');
196
+ gaScript.async = true;
197
+ gaScript.id = 'google-tag-manager';
198
+ gaScript.src = '//www.googletagmanager.com/gtag/js?id=' + providerID;
199
+ document.head.appendChild(gaScript);
200
+ }
189
201
 
190
- if (!gaExists && !skipHost) {
191
- // add ga api dynamically in the head section
192
- // -----------------------------------------------------------------
193
- logger.info('\n' + 'Google Analytics added for: ' + hostname);
194
- logger.info('\n' + 'Google Analytics API added in section: head');
195
- gaScript.async = true;
196
- gaScript.id = 'google-tag-manager';
197
- gaScript.src = '//www.googletagmanager.com/gtag/js?id=' + providerID;
198
- document.head.appendChild(gaScript);
199
- }
200
-
201
- user_consent = j1.readCookie(cookie_names.user_consent);
202
- if (user_consent.analysis && !skipHost ) {
203
- if (validProviderID) {
202
+ user_consent = j1.readCookie(cookie_names.user_consent);
203
+ if (user_consent.analysis && !skipHost ) {
204
+ if (validProviderID) {
205
+ logger.info('\n' + 'user consent on analytics: ' + user_consent.analysis);
206
+ logger.info('\n' + 'enable Google Analytics on ID: ' + providerID);
207
+ GTagOptIn.register(providerID);
208
+ GTagOptIn.optIn();
209
+ } else {
210
+ logger.debug('\n' + 'invalid trackig id detected for Google Analytics: ' + providerID);
211
+ }
212
+ } else {
204
213
  logger.info('\n' + 'user consent on analytics: ' + user_consent.analysis);
205
- logger.info('\n' + 'enable Google Analytics on ID: ' + providerID);
214
+ logger.debug('\n' + 'disable Google Analytics on ID: ' + providerID);
206
215
  GTagOptIn.register(providerID);
207
- GTagOptIn.optIn();
208
- } else {
209
- logger.warn('\n' + 'invalid trackig id detected for Google Analytics: ' + providerID);
216
+ GTagOptIn.optOut();
210
217
  }
211
- } else {
212
- logger.info('\n' + 'user consent on analytics: ' + user_consent.analysis);
213
- logger.warn('\n' + 'disable Google Analytics on ID: ' + providerID);
214
- GTagOptIn.register(providerID);
215
- GTagOptIn.optOut();
216
- }
217
- clearInterval(dependencies_met_page_ready);
218
- } // END if getState 'finished'
219
- }, 25);
220
218
 
221
- {% when "custom" %}
222
- // [INFO ] [j1.adapter.analytics ] [ place provider: Custom Provider ]
223
- {% endcase %}
224
- // [INFO ] [j1.adapter.analytics ] [ end processing ]
225
- {% else %}
226
- var dependencies_met_page_ready = setInterval(function() {
227
- if (j1.getState() == 'finished') {
228
- logger = log4javascript.getLogger('j1.adapter.analytics.google');
229
- logger.info('\n' + 'Google Analytics: disabled');
230
- clearInterval(dependencies_met_page_ready);
219
+ {% when "custom" %}
220
+ // [INFO ] [j1.adapter.analytics ] [ place provider: Custom Provider ]
221
+ {% endcase %}
222
+ // [INFO ] [j1.adapter.analytics ] [ end processing ]
223
+ {% else %}
224
+ logger = log4javascript.getLogger('j1.adapter.analytics.google');
225
+ logger.info('\n' + 'Google Analytics: disabled');
226
+ {% endif %}
231
227
  }
228
+ clearInterval(dependencies_met_page_ready);
232
229
  }, 25);
233
- {% endif %}
230
+
234
231
  return;
235
232
  }, // END init
236
233
 
@@ -184,7 +184,7 @@ var logText;
184
184
  logger = log4javascript.getLogger('j1.adapter.comments');
185
185
 
186
186
  // check the site ID to be used for a provider
187
- providerID = (typeof commentsOptions.site_id == "number") ? commentsOptions.site_id.toString() : commentsOptions.hyvor.site_id;
187
+ providerID = (typeof commentsOptions.site_id == "number") ? commentsOptions.site_id.toString() : commentsOptions.site_id;
188
188
  validProviderID = (providerID.includes('your')) ? false : true;
189
189
 
190
190
  {% case comments_provider %}
@@ -195,7 +195,7 @@ var logText;
195
195
  if (j1.getState() == 'finished') {
196
196
 
197
197
  if (!validProviderID) {
198
- logger.warn('\n' + 'invalid site id detected for Hyvor Talk: ' + providerID);
198
+ logger.debug('\n' + 'invalid site id detected for Hyvor Talk: ' + providerID);
199
199
  logger.info('\n' + 'skip initialization for provider: ' + comments_provider);
200
200
  clearInterval(dependencies_met_page_ready);
201
201
  return false;
@@ -253,7 +253,7 @@ var logText;
253
253
  // disable Hyvor Talk
254
254
  // ---------------------------------------------------------------
255
255
  logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
256
- logger.warn('\n' + 'disable Hyvor Talk on site id: ' + providerID);
256
+ logger.debug('\n' + 'disable Hyvor Talk on site id: ' + providerID);
257
257
 
258
258
  // remove Hyvor Talk resources
259
259
  // ---------------------------------------------------------------
@@ -272,7 +272,7 @@ var logText;
272
272
  if (j1.getState() == 'finished') {
273
273
 
274
274
  if (!validProviderID) {
275
- logger.warn('\n' + 'invalid short name detected for Disqus: ' + providerID);
275
+ logger.debug('\n' + 'invalid short name detected for Disqus: ' + providerID);
276
276
  logger.info('\n' + 'skip initialization for provider: ' + comments_provider);
277
277
  clearInterval(dependencies_met_page_ready);
278
278
  return;
@@ -331,7 +331,7 @@ var logText;
331
331
  $('#main-content').append('<div id="disqus_thread"></div>');
332
332
  } else {
333
333
  logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
334
- logger.warn('\n' + 'disable comments provider' + ' {{comments_provider}} on short name: ' + providerID);
334
+ logger.debug('\n' + 'disable comments provider' + ' {{comments_provider}} on short name: ' + providerID);
335
335
  $('#leave-a-comment').remove();
336
336
  $('#dq-web-api').remove();
337
337
  $('#hdisqus_thread').remove();
@@ -89,10 +89,18 @@ j1.adapter.cookieConsent = (function (j1, window) {
89
89
  var tracking_enabled = ('{{tracking_enabled}}' === 'true') ? true: false;
90
90
  var tracking_id = '{{tracking_id}}';
91
91
  var tracking_id_valid = (tracking_id.includes('tracking-id')) ? false : true;
92
- var expireCookiesOnRequiredOnly = ('{{cookie_options.expireCookiesOnRequiredOnly}}' === 'true') ? true: false;
92
+ var stringifiedAttributes = '';
93
+
94
+ var expireCookiesOnRequiredOnly;
95
+
96
+ var cookieDefaults;
97
+ var cookieSettings;
98
+ var cookieOptions;
99
+
93
100
  var cookieConsentDefaults;
94
101
  var cookieConsentSettings;
95
102
  var cookieConsentOptions;
103
+
96
104
  var _this;
97
105
  var $modal;
98
106
  var cookie_names;
@@ -102,7 +110,7 @@ j1.adapter.cookieConsent = (function (j1, window) {
102
110
  var baseUrl;
103
111
  var hostname;
104
112
  var auto_domain;
105
- var cookie_option_domain;
113
+ var check_cookie_option_domain;
106
114
  var cookie_domain;
107
115
  var secure;
108
116
  var logText;
@@ -146,15 +154,19 @@ j1.adapter.cookieConsent = (function (j1, window) {
146
154
  baseUrl = url.origin;
147
155
  hostname = url.hostname;
148
156
  auto_domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
149
- cookie_option_domain = ('{{cookie_options.domain}}' === 'true');
150
157
  secure = (url.protocol.includes('https')) ? true : false;
151
158
  contentLanguage = '{{site.language}}';
152
159
  navigatorLanguage = navigator.language || navigator.userLanguage;
153
160
 
161
+ // Load cookie DEFAULTS|CONFIG
162
+ cookieDefaults = $.extend({}, {{cookie_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
163
+ cookieSettings = $.extend({}, {{cookie_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
164
+ cookieOptions = $.extend(true, {}, cookieDefaults, cookieSettings);
165
+
154
166
  // Load module DEFAULTS|CONFIG
155
- cookieConsentDefaults = $.extend({}, {{consent_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
156
- cookieConsentSettings = $.extend({}, {{consent_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
157
- cookieConsentOptions = $.extend(true, {}, cookieConsentDefaults, cookieConsentSettings);
167
+ cookieConsentDefaults = $.extend({}, {{consent_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
168
+ cookieConsentSettings = $.extend({}, {{consent_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
169
+ cookieConsentOptions = $.extend(true, {}, cookieConsentDefaults, cookieConsentSettings);
158
170
 
159
171
  // initialize state flag
160
172
  _this.state = 'pending';
@@ -176,15 +188,18 @@ j1.adapter.cookieConsent = (function (j1, window) {
176
188
  cookieConsentOptions.dialogLanguage = contentLanguage;
177
189
  }
178
190
 
191
+ check_cookie_option_domain = (cookieOptions.domain === 'false') ? false : true;
192
+ expireCookiesOnRequiredOnly = (cookieOptions.expireCookiesOnRequiredOnly === 'true') ? true: false;
193
+
179
194
  // -----------------------------------------------------------------------
180
195
  // initializer
181
196
  // -----------------------------------------------------------------------
182
197
  var dependencies_met_page_ready = setInterval (function (options) {
183
- var same_site = '{{cookie_options.same_site}}';
198
+ var same_site = cookieOptions.same_site;
184
199
  var expires;
185
200
 
186
201
  if (cookieConsentOptions.enabled) {
187
- expires = '{{cookie_options.expires}}';
202
+ expires = cookieOptions.expires;
188
203
  } else {
189
204
  // expire permanent cookies to session
190
205
  j1.expireCookie({ name: cookie_names.user_state });
@@ -202,14 +217,16 @@ j1.adapter.cookieConsent = (function (j1, window) {
202
217
  }
203
218
 
204
219
  // set domain used by cookies
205
- if (cookie_option_domain) {
206
- if (cookie_option_domain == 'auto') {
220
+ if (check_cookie_option_domain) {
221
+ if (cookieOptions.domain == 'auto') {
207
222
  domainAttribute = auto_domain;
208
223
  stringifiedAttributes += '; ' + 'Domain=' + domainAttribute;
209
- } else if (cookie_option_domain) {
210
- domainAttribute = domain;
224
+ } else {
225
+ domainAttribute = cookieOptions.domain;
211
226
  stringifiedAttributes += '; ' + 'Domain=' + domainAttribute;
212
227
  }
228
+ } else {
229
+ domainAttribute = cookieOptions.domain;
213
230
  }
214
231
 
215
232
  // Failsafe: if 'None' is given for samesite in non-secure
@@ -222,24 +239,23 @@ j1.adapter.cookieConsent = (function (j1, window) {
222
239
  if ( j1.getState() === 'finished' ) {
223
240
  _this.setState('started');
224
241
 
225
-
226
242
  if (cookieConsentOptions.enabled) {
227
243
  logger.debug('\n' + 'state: ' + _this.getState());
228
244
  logger.info('\n' + 'module is being initialized');
229
245
 
230
246
  j1.cookieConsent = new CookieConsent ({
231
- contentURL: cookieConsentOptions.contentURL, // dialog content (modals) for all supported languages
232
- cookieName: cookie_names.user_consent, // name of the consent cookie
233
- cookieStorageDays: expires, // lifetime of a cookie [0..365], 0: session cookie
234
- cookieSameSite: same_site, // restrict consent cookie
235
- cookieSecure: secure, // only sent to the server with an encrypted request over HTTPS
236
- cookieDomain: domainAttribute, // set domain (hostname|domain)
237
- dialogLanguage: cookieConsentOptions.dialogLanguage, // language for the dialog (modal)
238
- whitelisted: cookieConsentOptions.whitelisted, // pages NO cookie dialog is shown
239
- reloadPageOnChange: cookieConsentOptions.reloadPageOnChange, // reload if setzings has changed
240
- dialogContainerID: cookieConsentOptions.dialogContainerID, // container, the dialog modal is (dynamically) loaded
241
- xhrDataElement: cookieConsentOptions.xhrDataElement, // container for all language-specific dialogs (modals)
242
- postSelectionCallback: cookieConsentOptions.postSelectionCallback, // callback function, called after the user has made his selection
247
+ contentURL: cookieConsentOptions.contentURL, // dialog content (modals) for all supported languages
248
+ cookieName: cookie_names.user_consent, // name of the consent cookie
249
+ cookieStorageDays: expires, // lifetime of a cookie [0..365], 0: session cookie
250
+ cookieSameSite: same_site, // restrict consent cookie
251
+ cookieSecure: secure, // only sent to the server with an encrypted request over HTTPS
252
+ cookieDomain: domainAttribute, // set domain (hostname|domain)
253
+ dialogLanguage: cookieConsentOptions.dialogLanguage, // language for the dialog (modal)
254
+ whitelisted: cookieConsentOptions.whitelisted, // pages NO cookie dialog is shown
255
+ reloadPageOnChange: cookieConsentOptions.reloadPageOnChange, // reload if setzings has changed
256
+ dialogContainerID: cookieConsentOptions.dialogContainerID, // container, the dialog modal is (dynamically) loaded
257
+ xhrDataElement: cookieConsentOptions.xhrDataElement, // container for all language-specific dialogs (modals)
258
+ postSelectionCallback: cookieConsentOptions.postSelectionCallback, // callback function, called after the user has made his selection
243
259
  });
244
260
  } else {
245
261
  logger.warn('\n' + 'module is disabled');
@@ -185,7 +185,9 @@ j1.adapter.fab = (function (j1, window) {
185
185
  // Initialize FAB button
186
186
  // ---------------------------------------------------------------------
187
187
  var dependencies_met_fab_initialized = setInterval (function () {
188
- if (j1.xhrDOMState['#' + fabOptions.xhr_container_id] == 'success' && j1.getState() == 'finished') {
188
+ var pageState = $('#no_flicker').css("display");
189
+ var pageVisible = (pageState == 'block') ? true: false;
190
+ if (j1.xhrDOMState['#' + fabOptions.xhr_container_id] == 'success' && j1.getState() == 'finished' && pageVisible) {
189
191
  _this.setState('loaded');
190
192
  logger.info('\n' + 'set module state to: ' + _this.getState());
191
193
  logger.info('\n' + 'HTML data for FAB: ' + _this.getState());
@@ -260,7 +260,7 @@ var j1 = (function (options) {
260
260
  };
261
261
 
262
262
  // ---------------------------------------------------------------------------
263
- // helper functions
263
+ // Helper functions
264
264
  // ---------------------------------------------------------------------------
265
265
 
266
266
  // See: https://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string
@@ -1587,6 +1587,44 @@ var j1 = (function (options) {
1587
1587
  }
1588
1588
  },
1589
1589
 
1590
+ // -------------------------------------------------------------------------
1591
+ // subdomain()
1592
+ // Returns true|false if a subdomain is used for a given URL
1593
+ // -------------------------------------------------------------------------
1594
+ subdomain: function (url) {
1595
+ // See: https://snipplr.com/view/5449/check-if-a-url-contains-a-subdomain
1596
+
1597
+ // IF THERE, REMOVE WHITE SPACE FROM BOTH ENDS
1598
+ url = url.replace(new RegExp(/^\s+/),""); // START
1599
+ url = url.replace(new RegExp(/\s+$/),""); // END
1600
+
1601
+ // IF FOUND, CONVERT BACK SLASHES TO FORWARD SLASHES
1602
+ url = url.replace(new RegExp(/\\/g),"/");
1603
+
1604
+ // IF THERE, REMOVES 'http://', 'https://' or 'ftp://' FROM THE START
1605
+ url = url.replace(new RegExp(/^http\:\/\/|^https\:\/\/|^ftp\:\/\//i),"");
1606
+
1607
+ // IF THERE, REMOVES 'www.' FROM THE START OF THE STRING
1608
+ url = url.replace(new RegExp(/^www\./i),"");
1609
+
1610
+ // REMOVE COMPLETE STRING FROM FIRST FORWARD SLASH ON
1611
+ url = url.replace(new RegExp(/\/(.*)/),"");
1612
+
1613
+ // REMOVES '.??.??' OR '.???.??' FROM END - e.g. '.CO.UK', '.COM.AU'
1614
+ if (url.match(new RegExp(/\.[a-z]{2,3}\.[a-z]{2}$/i))) {
1615
+ url = url.replace(new RegExp(/\.[a-z]{2,3}\.[a-z]{2}$/i),"");
1616
+
1617
+ // REMOVES '.??' or '.???' or '.????' FROM END - e.g. '.US', '.COM', '.INFO'
1618
+ } else if (url.match(new RegExp(/\.[a-z]{2,4}$/i))) {
1619
+ url = url.replace(new RegExp(/\.[a-z]{2,4}$/i),"");
1620
+ }
1621
+
1622
+ // CHECK TO SEE IF THERE IS A DOT '.' LEFT IN THE STRING
1623
+ var isSubDomain = (url.match(new RegExp(/\./g))) ? true : false;
1624
+
1625
+ return(isSubDomain);
1626
+ }, // END subdomain
1627
+
1590
1628
  // -------------------------------------------------------------------------
1591
1629
  // readCookie (Vanilla JS)
1592
1630
  // -------------------------------------------------------------------------