j1-template 2021.1.4 → 2021.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/layout_metadata_generator.html +4 -4
  3. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +7 -15
  4. data/_includes/themes/j1/modules/connectors/ads +18 -7
  5. data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +7 -3
  6. data/_includes/themes/j1/modules/connectors/analytics +17 -3
  7. data/_includes/themes/j1/modules/connectors/comments +22 -8
  8. data/_includes/themes/j1/modules/connectors/translator +20 -6
  9. data/_includes/themes/j1/modules/navigator/generator.html +2 -2
  10. data/_includes/themes/j1/procedures/global/select_location.proc +3 -3
  11. data/_layouts/default.html +4 -7
  12. data/assets/data/cookieconsent.html +249 -0
  13. data/assets/data/quicklinks.html +18 -16
  14. data/assets/data/themes.json +6 -6
  15. data/assets/error_pages/HTTP204.html +30 -10
  16. data/assets/error_pages/HTTP400.html +29 -8
  17. data/assets/error_pages/HTTP401.html +29 -9
  18. data/assets/error_pages/HTTP403.html +29 -8
  19. data/assets/error_pages/HTTP404.html +29 -8
  20. data/assets/error_pages/HTTP500.html +29 -8
  21. data/assets/error_pages/HTTP501.html +29 -8
  22. data/assets/error_pages/HTTP502.html +29 -8
  23. data/assets/error_pages/HTTP503.html +30 -8
  24. data/assets/themes/j1/adapter/js/cookieConsent.js +290 -0
  25. data/assets/themes/j1/adapter/js/fam.js +2 -1
  26. data/assets/themes/j1/adapter/js/j1.js +154 -153
  27. data/assets/themes/j1/adapter/js/navigator.js +157 -200
  28. data/assets/themes/j1/adapter/js/themer.1.js +326 -0
  29. data/assets/themes/j1/adapter/js/themer.js +41 -57
  30. data/assets/themes/j1/adapter/js/toccer.js +4 -45
  31. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +2 -2
  32. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
  33. data/assets/themes/j1/core/js/template.js +3 -9
  34. data/assets/themes/j1/core/js/template.js.map +1 -1
  35. data/assets/themes/j1/core/js/template.min.js +3 -9
  36. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  37. data/assets/themes/j1/modules/cookieConsent/LICENSE +21 -0
  38. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +301 -0
  39. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +301 -0
  40. data/assets/themes/j1/modules/fam/css/{uno → theme/uno}/fam.css +0 -0
  41. data/assets/themes/j1/modules/fam/css/theme/uno/fam.min.css +15 -0
  42. data/assets/themes/j1/modules/fam/js/fam.js +1 -6
  43. data/assets/themes/j1/modules/iframeResizer/examples/frame.absolute.html +4 -2
  44. data/assets/themes/j1/modules/iframeResizer/examples/frame.content.html +4 -3
  45. data/assets/themes/j1/modules/iframeResizer/examples/frame.hover.html +4 -2
  46. data/assets/themes/j1/modules/iframeResizer/examples/frame.nested.html +4 -2
  47. data/assets/themes/j1/modules/iframeResizer/examples/frame.textarea.html +4 -2
  48. data/assets/themes/j1/modules/iframeResizer/examples/frame.tolerance.html +4 -2
  49. data/assets/themes/j1/modules/iframeResizer/examples/index.html +2 -0
  50. data/assets/themes/j1/modules/iframeResizer/examples/two.html +4 -2
  51. data/assets/themes/j1/modules/mmenuLight/css/{mmenu.css → mmenu-light.css} +0 -0
  52. data/assets/themes/j1/modules/mmenuLight/css/{mmenu.min.css → mmenu-light.min.css} +0 -0
  53. data/assets/themes/j1/modules/mmenuLight/css/theme/{uno.css → uno/mmenu.css} +0 -0
  54. data/assets/themes/j1/modules/mmenuLight/css/theme/{uno.min.css → uno/mmenu.min.css} +0 -0
  55. data/assets/themes/j1/modules/rtable/css/theme/{uno.css → uno/rtable.css} +0 -0
  56. data/assets/themes/j1/modules/rtable/css/theme/{uno.min.css → uno/rtable.min.css} +0 -0
  57. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +34 -49
  58. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +410 -2
  59. data/assets/themes/j1/modules/util/js/domready.js +146 -0
  60. data/assets/themes/j1/modules/util/js/gtag-opt-in.js +1 -0
  61. data/lib/j1/version.rb +3 -3
  62. data/lib/j1_app/j1_auth_manager/auth_manager.rb +2 -3
  63. data/lib/starter_web/Gemfile +1 -1
  64. data/lib/starter_web/_config.yml +19 -10
  65. data/lib/starter_web/_data/_defaults/resources.yml +11 -8
  66. data/lib/starter_web/_data/j1_config.yml +21 -18
  67. data/lib/starter_web/_data/modules/{cookiebar.yml → cookieconsent.yml} +5 -4
  68. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +136 -0
  69. data/lib/starter_web/_data/modules/defaults/themer.yml +2 -1
  70. data/lib/starter_web/_data/pages/builder.yml +7 -7
  71. data/lib/starter_web/_data/private.default.yml +119 -0
  72. data/lib/starter_web/_data/private.yml +6 -6
  73. data/lib/starter_web/_data/resources.yml +15 -14
  74. data/lib/starter_web/_includes/attributes.asciidoc +10 -1
  75. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  76. data/lib/starter_web/assets/images/modules/attics/{cookies-1920x1200-bw.jpg → cookies-1920x1200.jpg} +0 -0
  77. data/lib/starter_web/assets/images/modules/attics/lianhao-1920x1280.jpg +0 -0
  78. data/lib/starter_web/collections/posts/public/featured/_posts/2020-01-01-about-cookies.adoc +2 -2
  79. data/lib/starter_web/dot.gitignore +1 -1
  80. data/lib/starter_web/index.html +3 -3
  81. data/lib/starter_web/package.json +2 -2
  82. data/lib/starter_web/pages/public/blog/navigator/archive.html +5 -3
  83. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +3 -2
  84. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +6 -4
  85. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +23 -5
  86. data/lib/starter_web/pages/public/cookieConsent.adoc +93 -0
  87. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +2 -1
  88. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +111 -213
  89. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  90. data/lib/starter_web/utilsrv/package.json +1 -1
  91. metadata +24 -76
  92. data/_includes/themes/j1/modules/navigator/generator.org.html +0 -232
  93. data/assets/data/cookiebar.html +0 -288
  94. data/assets/data/footer.new.1.html +0 -256
  95. data/assets/data/footer.new.2.html +0 -256
  96. data/assets/data/footer.org.html +0 -249
  97. data/assets/error_pages/HTTP520.html +0 -68
  98. data/assets/error_pages/HTTP521.html +0 -68
  99. data/assets/error_pages/HTTP533.html +0 -68
  100. data/assets/themes/j1/adapter/js/cookiebar.js +0 -212
  101. data/assets/themes/j1/adapter/js/j1.new.js +0 -1878
  102. data/assets/themes/j1/adapter/js/j1.org.js +0 -1874
  103. data/assets/themes/j1/modules/_lightGallery/css/core/lg-fb-comment-box.css +0 -58
  104. data/assets/themes/j1/modules/_lightGallery/css/core/lg-fb-comment-box.min.css +0 -5
  105. data/assets/themes/j1/modules/_lightGallery/css/core/lg-transitions.css +0 -778
  106. data/assets/themes/j1/modules/_lightGallery/css/core/lg-transitions.min.css +0 -5
  107. data/assets/themes/j1/modules/_lightGallery/css/core/lightgallery.css +0 -981
  108. data/assets/themes/j1/modules/_lightGallery/css/core/lightgallery.min.css +0 -5
  109. data/assets/themes/j1/modules/_lightGallery/css/fonts/lg.eot +0 -0
  110. data/assets/themes/j1/modules/_lightGallery/css/fonts/lg.svg +0 -47
  111. data/assets/themes/j1/modules/_lightGallery/css/fonts/lg.ttf +0 -0
  112. data/assets/themes/j1/modules/_lightGallery/css/fonts/lg.woff +0 -0
  113. data/assets/themes/j1/modules/_lightGallery/css/img/loading.gif +0 -0
  114. data/assets/themes/j1/modules/_lightGallery/css/img/video-play.png +0 -0
  115. data/assets/themes/j1/modules/_lightGallery/css/img/vimeo-play.png +0 -0
  116. data/assets/themes/j1/modules/_lightGallery/css/img/youtube-play.png +0 -0
  117. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/animation-w.png +0 -0
  118. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/customize-w.png +0 -0
  119. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/dynamic-w.png +0 -0
  120. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/facebook-icon.svg +0 -10
  121. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/googleplus-icon.svg +0 -30
  122. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/html5-w.png +0 -0
  123. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/linked-in.png +0 -0
  124. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/module-w.png +0 -0
  125. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/play-button.png +0 -0
  126. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/responsive-w.png +0 -0
  127. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/thumb-w.png +0 -0
  128. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/touch-w.png +0 -0
  129. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/twitter-icon.svg +0 -15
  130. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/twitter.png +0 -0
  131. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/video1-w.png +0 -0
  132. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/zoom-w.png +0 -0
  133. data/assets/themes/j1/modules/_lightGallery/css/themes/icons/zoom.png +0 -0
  134. data/assets/themes/j1/modules/_lightGallery/css/themes/uno.css +0 -262
  135. data/assets/themes/j1/modules/_lightGallery/css/themes/uno.min.css +0 -15
  136. data/assets/themes/j1/modules/_lightGallery/js/core/lightgallery.js +0 -1362
  137. data/assets/themes/j1/modules/_lightGallery/js/core/lightgallery.min.js +0 -4
  138. data/assets/themes/j1/modules/_lightGallery/js/modules/j1/j1-video.js +0 -402
  139. data/assets/themes/j1/modules/_lightGallery/js/modules/j1/j1-video.min.js +0 -8
  140. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-autoplay.js +0 -206
  141. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-autoplay.min.js +0 -5
  142. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-fullscreen.js +0 -126
  143. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-fullscreen.min.js +0 -5
  144. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-hash.js +0 -101
  145. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-hash.min.js +0 -5
  146. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-pager.js +0 -105
  147. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-pager.min.js +0 -5
  148. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-share.js +0 -107
  149. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-share.min.js +0 -5
  150. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-thumbnail.js +0 -478
  151. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-thumbnail.min.js +0 -5
  152. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-video.js +0 -342
  153. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-video.min.js +0 -5
  154. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-zoom.js +0 -527
  155. data/assets/themes/j1/modules/_lightGallery/js/modules/lg-zoom.min.js +0 -5
  156. data/lib/starter_web/_data/modules/defaults/cookiebar.yml +0 -133
@@ -0,0 +1,146 @@
1
+ (function(){
2
+
3
+ var DomReady = window.DomReady = {};
4
+
5
+ // Everything that has to do with properly supporting our document ready event. Brought over from the most awesome jQuery.
6
+
7
+ var userAgent = navigator.userAgent.toLowerCase();
8
+
9
+ // Figure out what browser is being used
10
+ var browser = {
11
+ version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
12
+ safari: /webkit/.test(userAgent),
13
+ opera: /opera/.test(userAgent),
14
+ msie: (/msie/.test(userAgent)) && (!/opera/.test( userAgent )),
15
+ mozilla: (/mozilla/.test(userAgent)) && (!/(compatible|webkit)/.test(userAgent))
16
+ };
17
+
18
+ var readyBound = false;
19
+ var isReady = false;
20
+ var readyList = [];
21
+
22
+ // Handle when the DOM is ready
23
+ function domReady() {
24
+ // Make sure that the DOM is not already loaded
25
+ if(!isReady) {
26
+ // Remember that the DOM is ready
27
+ isReady = true;
28
+
29
+ if(readyList) {
30
+ for(var fn = 0; fn < readyList.length; fn++) {
31
+ readyList[fn].call(window, []);
32
+ }
33
+
34
+ readyList = [];
35
+ }
36
+ }
37
+ };
38
+
39
+ // From Simon Willison. A safe way to fire onload w/o screwing up everyone else.
40
+ function addLoadEvent(func) {
41
+ var oldonload = window.onload;
42
+ if (typeof window.onload != 'function') {
43
+ window.onload = func;
44
+ } else {
45
+ window.onload = function() {
46
+ if (oldonload) {
47
+ oldonload();
48
+ }
49
+ func();
50
+ }
51
+ }
52
+ };
53
+
54
+ // does the heavy work of working through the browsers idiosyncracies (let's call them that) to hook onload.
55
+ function bindReady() {
56
+ if(readyBound) {
57
+ return;
58
+ }
59
+
60
+ readyBound = true;
61
+
62
+ // Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
63
+ if (document.addEventListener && !browser.opera) {
64
+ // Use the handy event callback
65
+ document.addEventListener("DOMContentLoaded", domReady, false);
66
+ }
67
+
68
+ // If IE is used and is not in a frame
69
+ // Continually check to see if the document is ready
70
+ if (browser.msie && window == top) (function(){
71
+ if (isReady) return;
72
+ try {
73
+ // If IE is used, use the trick by Diego Perini
74
+ // http://javascript.nwbox.com/IEContentLoaded/
75
+ document.documentElement.doScroll("left");
76
+ } catch(error) {
77
+ setTimeout(arguments.callee, 0);
78
+ return;
79
+ }
80
+ // and execute any waiting functions
81
+ domReady();
82
+ })();
83
+
84
+ if(browser.opera) {
85
+ document.addEventListener( "DOMContentLoaded", function () {
86
+ if (isReady) return;
87
+ for (var i = 0; i < document.styleSheets.length; i++)
88
+ if (document.styleSheets[i].disabled) {
89
+ setTimeout( arguments.callee, 0 );
90
+ return;
91
+ }
92
+ // and execute any waiting functions
93
+ domReady();
94
+ }, false);
95
+ }
96
+
97
+ if(browser.safari) {
98
+ var numStyles;
99
+ (function(){
100
+ if (isReady) return;
101
+ if (document.readyState != "loaded" && document.readyState != "complete") {
102
+ setTimeout( arguments.callee, 0 );
103
+ return;
104
+ }
105
+ if (numStyles === undefined) {
106
+ var links = document.getElementsByTagName("link");
107
+ for (var i=0; i < links.length; i++) {
108
+ if(links[i].getAttribute('rel') == 'stylesheet') {
109
+ numStyles++;
110
+ }
111
+ }
112
+ var styles = document.getElementsByTagName("style");
113
+ numStyles += styles.length;
114
+ }
115
+ if (document.styleSheets.length != numStyles) {
116
+ setTimeout( arguments.callee, 0 );
117
+ return;
118
+ }
119
+
120
+ // and execute any waiting functions
121
+ domReady();
122
+ })();
123
+ }
124
+
125
+ // A fallback to window.onload, that will always work
126
+ addLoadEvent(domReady);
127
+ };
128
+
129
+ // This is the public function that people can use to hook up ready.
130
+ DomReady.ready = function(fn, args) {
131
+ // Attach the listeners
132
+ bindReady();
133
+
134
+ // If the DOM is already ready
135
+ if (isReady) {
136
+ // Execute the function immediately
137
+ fn.call(window, []);
138
+ } else {
139
+ // Add the function to the wait list
140
+ readyList.push( function() { return fn.call(window, []); } );
141
+ }
142
+ };
143
+
144
+ bindReady();
145
+
146
+ })();
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.GTagOptIn=t():e.GTagOptIn=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";n.r(t),n.d(t,"register",(function(){return i})),n.d(t,"optIn",(function(){return f})),n.d(t,"optOut",(function(){return a}));let r=!1,o=void 0;const i=e=>{u(e),o=e},u=e=>{if(!e)throw new Error("gtag-opt-in: invalid value passed to `register` method. Make sure to use a valid Analytics ID.")},a=()=>{d(),window["ga-disable-"+o]=!0},f=()=>{d(),c(),window["ga-disable-"+o]=!1},d=()=>{if(!o)throw new Error("gtag-opt-in: no value found for Analytics ID. Make sure to register before by calling the `register` method.")},c=()=>{r||(l(),r=!0)},l=()=>{const e=s();p(e)},s=()=>(window.dataLayer=window.dataLayer||[],function(){dataLayer.push(arguments)}),p=e=>{e("js",new Date),e("config",o,{anonymize_ip:!0})}}])}));
data/lib/j1/version.rb CHANGED
@@ -1,3 +1,3 @@
1
- module J1
2
- VERSION = '2021.1.4'
3
- end
1
+ module J1
2
+ VERSION = '2021.1.9'
3
+ end
@@ -154,10 +154,9 @@ module J1App
154
154
  # --------------------------------------------------------------------------
155
155
  j1_mw_auth_mgr.info 'initialize web session cookie'
156
156
  use Rack::Session::Cookie,
157
- http_only: true, # if set to 'true', make session cookie visible to the browser (document) for HTTP
157
+ http_only: true,
158
158
  key: 'j1.app.session',
159
- # same_site: 'None',
160
- same_site: 'Lax',
159
+ same_site: 'Strict',
161
160
  secret: ENV['J1_SESSION_SECRET'] || SecureRandom.hex
162
161
 
163
162
  # use Rack::Cache do |config|
@@ -54,7 +54,7 @@ gem 'jekyll', '~> 4.2'
54
54
 
55
55
  # Theme Rubies, default: J1 Template (NOT used for the development system)
56
56
  #
57
- gem 'j1-template', '~> 2021.1.4'
57
+ gem 'j1-template', '~> 2021.1.9'
58
58
 
59
59
  # ------------------------------------------------------------------------------
60
60
  # PRODUCTION: Gem needed for the Jekyll and J1 prod environment
@@ -53,7 +53,7 @@ environment: production
53
53
  # ------------------------------------------------------------------------------
54
54
  # Sets the build version of J1 Template Gem
55
55
  #
56
- version: 2021.1.4
56
+ version: 2021.1.9
57
57
 
58
58
  # version
59
59
  # ------------------------------------------------------------------------------
@@ -520,6 +520,7 @@ whitelist:
520
520
  # EXCERPT settings
521
521
  #
522
522
  excerpt_separator: excerpt__end
523
+ excerpt_truncate_words: 100
523
524
 
524
525
  # ------------------------------------------------------------------------------
525
526
  # COLLECTION settings
@@ -592,9 +593,9 @@ defaults:
592
593
  layout: page
593
594
  author: J1 Team
594
595
 
595
- # robots:
596
- # index: true
597
- # follow: true
596
+ robots:
597
+ index: false
598
+ follow: false
598
599
 
599
600
  analytics: false
600
601
  advertising: false
@@ -631,9 +632,9 @@ defaults:
631
632
  layout: post
632
633
  author: J1 Team
633
634
 
634
- # robots:
635
- # index: true
636
- # follow: true
635
+ robots:
636
+ index: false
637
+ follow: false
637
638
 
638
639
  analytics: false
639
640
  advertising: false
@@ -670,9 +671,9 @@ defaults:
670
671
  layout: post
671
672
  author: J1 Team
672
673
 
673
- # robots:
674
- # index: true
675
- # follow: true
674
+ robots:
675
+ index: false
676
+ follow: false
676
677
 
677
678
  analytics: false
678
679
  advertising: false
@@ -705,6 +706,10 @@ defaults:
705
706
  layout: post
706
707
  author: Wikipedia
707
708
 
709
+ robots:
710
+ index: false
711
+ follow: false
712
+
708
713
  analytics: false
709
714
  advertising: false
710
715
  comments: false
@@ -740,6 +745,10 @@ defaults:
740
745
  layout: page
741
746
  sitemap: false
742
747
 
748
+ robots:
749
+ index: false
750
+ follow: false
751
+
743
752
  # ==============================================================================
744
753
  # 6. LAYOUT configuration
745
754
  #
@@ -549,13 +549,13 @@ resources:
549
549
  init_function: [ j1.adapter.back2top.init ]
550
550
 
551
551
  # ----------------------------------------------------------------------------
552
- # CookieBar
552
+ # GDPR compatible Cookie Consent for J1 Template
553
553
  #
554
- - name: CookieBar
554
+ - name: J1 CookieConsent
555
555
  resource:
556
- id: cookiebar
556
+ id: cookieConsent
557
557
  enabled: true
558
- comment: module cookiebar
558
+ comment: module cookieConsent
559
559
  region: head
560
560
  layout: [ all ]
561
561
  required: always
@@ -565,9 +565,9 @@ resources:
565
565
  pass_init_data: false
566
566
  data:
567
567
  css: []
568
- files: [ adapter/js/cookiebar.js ]
569
- js: []
570
- init_function: [ j1.adapter.cookiebar.init ]
568
+ files: [ adapter/js/cookieConsent.js ]
569
+ js: [ modules/cookieConsent/js/cookieConsent ]
570
+ init_function: [ j1.adapter.cookieConsent.init ]
571
571
 
572
572
  # ----------------------------------------------------------------------------
573
573
  # jqMouseWheel, jQuery plugin to add cross-browser mouse wheel support
@@ -1170,7 +1170,10 @@ resources:
1170
1170
  enabled: true
1171
1171
  comment: Floating Button Menu
1172
1172
  region: head
1173
- layout: [ home, page, post, collection ] # TODO: check if FAM makes sense for layout app
1173
+ layout: [ # TODO: check if FAM makes sense for layout app
1174
+ home, page, post, collection,
1175
+ blog_archive
1176
+ ]
1174
1177
  required: always
1175
1178
  preload: false # property currently unused
1176
1179
  script_load: sync
@@ -140,6 +140,7 @@ cookies:
140
140
  app_session: j1.app.session
141
141
  user_session: j1.user.session
142
142
  user_state: j1.user.state
143
+ user_consent: j1.user.consent
143
144
 
144
145
 
145
146
  # ==============================================================================
@@ -161,7 +162,7 @@ cookies:
161
162
  # NOTE: Used for developent mode ONLY
162
163
  # NOTE: See ~/packages/300_template_src/_layouts/default.html
163
164
  # ------------------------------------------------------------------------------
164
- flicker_timeout: 250
165
+ flicker_timeout: 150
165
166
 
166
167
  # ------------------------------------------------------------------------------
167
168
  # HTML PrettyPrint
@@ -386,15 +387,15 @@ comments:
386
387
  provider: disqus
387
388
 
388
389
  disqus:
389
- short_name: '<your-site-short-name>'
390
+ short_name: '<your-site-id>'
390
391
 
391
- # facebook:
392
+ # facebook: # currently NOT supported
392
393
  # appid: 123
393
394
  # num_posts: 5
394
395
  # width: 580
395
396
  # colorscheme: light
396
397
 
397
- # custom:
398
+ # custom: # currently NOT supported
398
399
  # custom_data:
399
400
 
400
401
  # ------------------------------------------------------------------------------
@@ -410,8 +411,8 @@ analytics:
410
411
  google:
411
412
  tracking_id: '<your-tracking-id>'
412
413
 
413
- custom:
414
- custom_data:
414
+ # custom: # currently NOT supported
415
+ # custom_data:
415
416
 
416
417
  # ------------------------------------------------------------------------------
417
418
  # ADVERTISING settings
@@ -422,26 +423,28 @@ analytics:
422
423
  advertising:
423
424
  enabled: false
424
425
  provider: google
426
+
425
427
  google:
426
428
  publisher_id: '<your-publisher-id>'
427
- custom:
428
- custom_data:
429
+
430
+ # custom: # currently NOT supported
431
+ # custom_data:
429
432
 
430
433
  # ------------------------------------------------------------------------------
431
- # TRANSLATOR settings
434
+ # TRANSLATOR settings (currently NOT supported)
432
435
  #
433
436
  # Set 'enabled' to false to turn translators off globally
434
437
  # Set 'provider' to the translation provider you want to use
435
438
  #
436
- translation:
437
- enabled: false
438
- provider: google
439
-
440
- google:
441
- layout: default
442
- meta_data: [google-translate-customization]
443
- page_language: en
444
- translation_languages: [all]
439
+ # translation:
440
+ # enabled: false
441
+ # provider: google
442
+ #
443
+ # google:
444
+ # layout: default
445
+ # meta_data: [google-translate-customization]
446
+ # page_language: en
447
+ # translation_languages: [all]
445
448
 
446
449
  # ------------------------------------------------------------------------------
447
450
  # SHARING settings (currently NOT supported)
@@ -1,6 +1,6 @@
1
1
  # ------------------------------------------------------------------------------
2
- # ~/_data/modules/j1_cookiebar.yml
3
- # User configuration settings for J1 Cookiebar module
2
+ # ~/_data/modules/j1_cookieconsent.yml
3
+ # User configuration settings for J1 Cookie Consent module
4
4
  #
5
5
  # Product/Info:
6
6
  # https://jekyll.one
@@ -16,9 +16,9 @@
16
16
  #
17
17
  description:
18
18
 
19
- title: Cookiebar
19
+ title: CookieConsent
20
20
  scope: User settings
21
- location: _data/modules/cookiebar.yml
21
+ location: _data/modules/cookieconsent.yml
22
22
 
23
23
  # ------------------------------------------------------------------------------
24
24
  # User configuration settings
@@ -27,6 +27,7 @@ settings:
27
27
 
28
28
  enabled: true
29
29
  show_cookie_icon: true
30
+ reloadPageOnChange: true
30
31
 
31
32
  # ------------------------------------------------------------------------------
32
33
  # END config
@@ -0,0 +1,136 @@
1
+ # ------------------------------------------------------------------------------
2
+ # ~/_data/modules/defaults/cookieconsent.yml
3
+ # Default configuration settings for J1 Cookie Consent module
4
+ #
5
+ # Product/Info:
6
+ # https://jekyll.one
7
+ #
8
+ # Copyright (C) 2021 Juergen Adams
9
+ #
10
+ # J1 Template is licensed under the MIT License.
11
+ # See: https://github.com/jekyll-one/J1 Template/blob/master/LICENSE
12
+ # ------------------------------------------------------------------------------
13
+
14
+ # ------------------------------------------------------------------------------
15
+ # About this configuration (used for J1 CC only)
16
+ #
17
+ about_config:
18
+ title: CookieConsent
19
+ scope: Default settings
20
+ location: _data/modules/defaults/cookieconsent.yml
21
+
22
+ # ------------------------------------------------------------------------------
23
+ # Default settings
24
+ #
25
+ defaults:
26
+
27
+ enabled: false
28
+
29
+ autoShowDialog: true # show consent dialog if NO consent cookie found
30
+ language: de # language of the modal is shown. Default: navigator.language
31
+ languages: [en, de] # supported languages, defaults to FIRST language defined by languages
32
+ contentURL: /assets/data/cookieconsent # dialogs content for all languages
33
+ cookieName: j1.user.consent # name of the consent cookie
34
+ cookieStorageDays: 365 # duration the consent cookie is stored
35
+ postSelectionCallback: j1.adapter.cookieConsent.cbCookie # currently hardcoded
36
+
37
+ reloadPageOnChange: false # reload current page if user settings has been changed
38
+ xhr_data_element: consent-data # container for the language-specific consent modal (taken from /assets/data/cookieconsent.html)
39
+ whitelisted: [ /pages/public/legal/en/privacy ] # pages NO consent issued, currently NOT supported
40
+
41
+ consent_modal_title:
42
+ de: Ihre Privatsphäre
43
+ en: Your Privacy
44
+
45
+ body_text:
46
+ en: >
47
+ This website is using cookies and similar technologies that
48
+ are required for operation. You are free to decide to give,
49
+ refuse or withdraw your consent at any time by clicking
50
+ the <code>My Settings</code> button. Subsequent changes are
51
+ possible at any time by clicking on the <code>cookie icon</code>
52
+ in the menu bar.
53
+ <br><br>
54
+ Extended cookies are only used with your consent. Additional
55
+ cookies are used to analyze the usage of this website.
56
+ Analysis of the use of this website help gives you a better
57
+ user experience of the website to offer. More information
58
+ about what data is collected and how they may be passed on
59
+ to partners can be found in the <code>Privacy Policy</code>.
60
+ <br><br>
61
+ Visiting this website, you consent to the use of by clicking the
62
+ <code>I agree</code> button.
63
+ de: >
64
+ Diese Website nutzt Cookies und ähnliche Technologien, die
65
+ zum Betrieb erforderlich sind. Es steht Ihnen frei, Ihre
66
+ Zustimmung jederzeit zu geben, zu verweigern oder zurückzuziehen,
67
+ indem Sie auf die Schaltfläche <code>Meine Einstellungen</code>
68
+ klicken. Nachträgliche Änderungen sind jederzeit möglich, indem Sie
69
+ auf das <code>Cookie-Icon</code> in der Menüleiste klicken.
70
+ <br><br>
71
+ Erweiterte Cookies werden nur mit Ihrer Zustimmung verwendet.
72
+ Zusätzliche Cookies werden eingesetzt, um Analysen der Nutzung
73
+ dieser Website durchzuführen. Analysen der Nutzung dieser Website
74
+ helfen dabei, Ihnen ein besseres Nutzungserlebnis der Website
75
+ zu bieten. Weitere Informationen welche Daten gesammelt und
76
+ wie sie ggf. an Partner weitergegeben werden finden Sie in der
77
+ <code>Datenschutzerklärung</code>.
78
+ <br><br>
79
+ Für den Besuch dieser Webseite stimmen Sie der Verwendung zu,
80
+ indem Sie auf die Schaltfläche <code>Einverstanden</code> klicken.
81
+
82
+ privacy_notice:
83
+ en: >
84
+ The operators of this website take the protection of your personal data
85
+ seriously. We treat your data confidential and comply with the
86
+ General Data Protection Regulation (GDPR) of the European Union to
87
+ protect your privacy.
88
+ A small set of data is stored in persistent cookies, e.g. what data
89
+ you agree to be stored in cookies. Persistent cookies have a lifespan
90
+ of 365 days (a year). We and our partners make use of persistent cookies.
91
+ Those additional cookies are only used with your consent.
92
+ <br><br>
93
+ <code>Necessary</code> data is stored to run base services of this site.
94
+ This website is based on static content, and no database is used behind it.
95
+ All information (data) needed to control this site is stored in
96
+ so-called session cookies. Session cookies are automatically removed by your
97
+ browser if you close all windows.
98
+ <br><br>
99
+ <code>Analysis</code> of the use of this website helps us to optimize your
100
+ user experience of the website. For analysis, Google Analytics (GA) is used.
101
+ This website does <b>not</b> transfer any personal data to GA. Implicit
102
+ personal information, like IP addresses, is anonymized to protect your privacy.
103
+ <br><br>
104
+ <code>Personalization</code> is used e.g. to collect user feedback or running
105
+ advertising campaigns to provide you a website free of charge. Partners like
106
+ Disqus or Google enables us to provide you excellent personalized services and
107
+ enables us to finance the costs for running this site.
108
+ de: >
109
+ Die Betreiber dieser Website nehmen den Schutz Ihrer persönlichen Daten ernst.
110
+ Wir behandeln Ihre Daten vertraulich und halten uns zum Schutz Ihrer Privatsphäre
111
+ an die Datenschutz-Grundverordnung (DSGVO) der Europäischen Union. In persistenten
112
+ Cookies wird ein kleiner Datensatz gespeichert, z.B. mit welchen Daten Sie
113
+ einverstanden sind, in Cookies gespeichert zu werden. Dauerhafte Cookies haben
114
+ eine Lebensdauer von 365 Tagen (ein Jahr). Wir und unsere Partner verwenden
115
+ dauerhafte Cookies. Diese zusätzlichen Cookies werden nur mit Ihrer Zustimmung
116
+ verwendet.
117
+ <br><br>
118
+ <code>Notwendige</code> Daten werden gespeichert, um Basisdienste dieser Site zu
119
+ betreiben. Diese Website basiert auf statischen Inhalten und es wird keine
120
+ Datenbank dahinter verwendet. Alle Informationen (Daten), die zur Steuerung dieser
121
+ Seite benötigt werden, werden in sogenannten Session-Cookies gespeichert. Sitzungscookies
122
+ werden von Ihrem Browser automatisch entfernt, wenn Sie alle Fenster schließen.
123
+ <br><br>
124
+ <code>Analysen</code> der Nutzung dieser Website hilft uns, Ihr Nutzungserlebnis der
125
+ Website zu optimieren. Zur Analyse wird Google Analytics (GA) verwendet. Diese Website
126
+ übermittelt keine personenbezogenen Daten an GA. Implizite personenbezogene Daten wie
127
+ IP-Adressen werden zum Schutz Ihrer Privatsphäre anonymisiert.
128
+ <br><br>
129
+ <code>Personalisierung</code> wird z.B. um Benutzerfeedback zu sammeln oder
130
+ Werbekampagnen durchzuführen, um Ihnen eine Website kostenlos zur Verfügung zu
131
+ stellen. Partner wie Disqus oder Google ermöglichen es uns, Ihnen exzellente
132
+ personalisierte Dienste anzubieten und die Kosten für den Betrieb dieser Website
133
+ zu finanzieren.
134
+
135
+ # ------------------------------------------------------------------------------
136
+ # END config