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,301 @@
1
+ /*
2
+ # -----------------------------------------------------------------------------
3
+ # ~/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js
4
+ # Provides JS Core for J1 Module BS Cookie Consent
5
+ #
6
+ # Product/Info:
7
+ # https://shaack.com
8
+ # http://jekyll.one
9
+ #
10
+ # Copyright (C) 2020 Stefan Haack
11
+ # Copyright (C) 2021 Juergen Adams
12
+ #
13
+ # bootstrap-cookie-banner is licensed under MIT License.
14
+ # See: https://github.com/shaack/bootstrap-cookie-banner/blob/master/LICENSE
15
+ # J1 Template is licensed under MIT License.
16
+ # See: https://github.com/jekyll-one/J1 Template/blob/master/LICENSE
17
+ # -----------------------------------------------------------------------------
18
+ # TODO:
19
+ #
20
+ # -----------------------------------------------------------------------------
21
+ # NOTE:
22
+ # BS Cookie Consent is a MODIFIED version of bootstrap-cookie-banner
23
+ # for the use with J1 Template. This modified version cannot be used
24
+ # outside of J1 Template!
25
+ # -----------------------------------------------------------------------------
26
+ */
27
+ 'use strict';
28
+
29
+ // -----------------------------------------------------------------------------
30
+ // ESLint shimming
31
+ // -----------------------------------------------------------------------------
32
+ /* eslint indent: "off" */
33
+ /* eslint no-unused-vars: "off" */
34
+ /* eslint no-undef: "off" */
35
+ /* eslint no-redeclare: "off" */
36
+ /* eslint indent: "off" */
37
+ /* eslint JSUnfilteredForInLoop: "off" */
38
+ // -----------------------------------------------------------------------------
39
+
40
+ function BootstrapCookieConsent(props) {
41
+ var logText;
42
+ var current_page;
43
+ var whitelisted;
44
+ var logger = log4javascript.getLogger('j1.core.bsCookieConsent');
45
+ var modalId = "bccs-modal"
46
+ var self = this
47
+ var detailedSettingsShown = false
48
+
49
+ logger.info('Initializing core module: started');
50
+ logger.info('state: started');
51
+
52
+ this.props = {
53
+ autoShowDialog: true, // disable autoShowModal on the privacy policy and legal notice pages, to make these pages readable
54
+ language: navigator.language, // the language, in which the modal is shown
55
+ languages: ["en", "de"], // supported languages (in ./content/), defaults to first in array
56
+ contentURL: "./content", // this URL must contain the dialogs content in the needed languages
57
+ cookieName: "cookie-consent-settings", // the name of the cookie in which the configuration is stored as JSON
58
+ cookieStorageDays: 365, // the duration the cookie configuration is stored on the client
59
+ postSelectionCallback: undefined, // callback function, called after the user has made his selection
60
+ whitelisted: [], // pages NO consent modal page is issued
61
+ xhr_data_element: "" // container for the language-specific consent modal taken from /assets/data/cookieconsent.html
62
+ }
63
+
64
+ for (var property in props) {
65
+ this.props[property] = props[property];
66
+ }
67
+
68
+ this.language = this.props.language
69
+ if (this.language.indexOf("-") !== -1) {
70
+ this.language = this.language.split("-")[0];
71
+ }
72
+
73
+ if (!this.props.languages.includes(this.language)) {
74
+ this.language = this.props.languages[0]; // fallback on default language
75
+ }
76
+
77
+ var Cookie = {
78
+ set: function (name, value, days) {
79
+ var value_encoded = window.btoa(value);
80
+ var expires = "";
81
+ if (days) {
82
+ var date = new Date();
83
+ date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
84
+ expires = "; expires=" + date.toUTCString();
85
+ }
86
+ document.cookie = name + "=" + (value_encoded || "") + expires + "; Path=/; SameSite=Strict;";
87
+ },
88
+ get: function (name) {
89
+ var nameEQ = name + "=";
90
+ var ca = document.cookie.split(';');
91
+ for (var i = 0; i < ca.length; i++) {
92
+ var c = ca[i];
93
+ while (c.charAt(0) === ' ') {
94
+ c = c.substring(1, c.length);
95
+ }
96
+ if (c.indexOf(nameEQ) === 0) {
97
+ var value_encoded = c.substring(nameEQ.length, c.length);
98
+ var value = window.atob(value_encoded);
99
+ return value;
100
+ }
101
+ }
102
+ return undefined
103
+ }
104
+ }
105
+
106
+ var Events = {
107
+ documentReady: function (onDocumentReady) {
108
+ if (document.readyState !== 'loading') {
109
+ onDocumentReady();
110
+ } else {
111
+ document.addEventListener('DOMContentLoaded', onDocumentReady);
112
+ }
113
+ }
114
+ }
115
+
116
+ function showDialog(options) {
117
+ Events.documentReady(function () {
118
+
119
+ self.modal = document.getElementById(modalId);
120
+ if (!self.modal) {
121
+ logger.info('Load consent modal');
122
+ self.modal = document.createElement("div");
123
+ self.modal.id = modalId;
124
+ self.modal.setAttribute("class", "modal fade");
125
+ self.modal.setAttribute("tabindex", "-1");
126
+ self.modal.setAttribute("role", "dialog");
127
+ self.modal.setAttribute("aria-labelledby", modalId);
128
+ document.body.append(self.modal);
129
+ self.$modal = $(self.modal);
130
+
131
+ if (self.props.postSelectionCallback) {
132
+ self.$modal.on("hidden.bs.modal", function () {
133
+ self.props.postSelectionCallback();
134
+ });
135
+ }
136
+
137
+ // load modal content
138
+ //
139
+ var templateUrl = self.props.contentURL + '/' + 'index.html';
140
+ $.get(templateUrl)
141
+ .done(function (data) {
142
+ logger.info('Loading Consent modal: successfully');
143
+ self.modal.innerHTML = data;
144
+ self.modal.innerHTML = $('#' + self.props.xhr_data_element).eq(0).html();
145
+
146
+ $(self.modal).modal({
147
+ backdrop: "static",
148
+ keyboard: false
149
+ });
150
+
151
+ self.$buttonDoNotAgree = $("#bccs-buttonDoNotAgree");
152
+ self.$buttonAgree = $("#bccs-buttonAgree");
153
+ self.$buttonSave = $("#bccs-buttonSave");
154
+ self.$buttonAgreeAll = $("#bccs-buttonAgreeAll");
155
+
156
+ logger.info('Load/Initialze options from cookie');
157
+
158
+ updateButtons();
159
+ updateOptionsFromCookie();
160
+
161
+ $("#bccs-options").on("hide.bs.collapse", function () {
162
+ detailedSettingsShown = false;
163
+ updateButtons();
164
+ }).on("show.bs.collapse", function () {
165
+ detailedSettingsShown = true;
166
+ updateButtons();
167
+ });
168
+
169
+ logger.info('Initialze event handler');
170
+
171
+ self.$buttonDoNotAgree.click(function () {
172
+ doNotAgree();
173
+ });
174
+ self.$buttonAgree.click(function () {
175
+ agreeAll();
176
+ });
177
+ self.$buttonSave.click(function () {
178
+ $("#bccs-options").collapse('hide');
179
+ saveSettings();
180
+ updateOptionsFromCookie();
181
+ });
182
+ self.$buttonAgreeAll.click(function () {
183
+ $("#bccs-options").collapse('hide');
184
+ agreeAll();
185
+ updateOptionsFromCookie();
186
+ });
187
+ })
188
+ .fail(function () {
189
+ logger.error('Loading Consent modal: failed');
190
+ logger.info('Probably no `contentURL` set');
191
+ })
192
+ } else {
193
+ self.$modal.modal("show")
194
+ }
195
+ }.bind(this))
196
+ }
197
+
198
+ function updateOptionsFromCookie() {
199
+ var settings = self.getSettings();
200
+ if (settings) {
201
+ for (var setting in settings) {
202
+ var $checkbox = self.$modal.find("#bccs-options .bccs-option[data-name='" + setting + "'] input[type='checkbox']");
203
+ $checkbox.prop("checked", settings[setting]);
204
+ }
205
+ }
206
+ }
207
+
208
+ function updateButtons() {
209
+ if (detailedSettingsShown) {
210
+ self.$buttonDoNotAgree.hide();
211
+ self.$buttonAgree.hide();
212
+ self.$buttonSave.show();
213
+ self.$buttonAgreeAll.show();
214
+ } else {
215
+ self.$buttonDoNotAgree.show();
216
+ self.$buttonAgree.show();
217
+ self.$buttonSave.hide();
218
+ self.$buttonAgreeAll.hide();
219
+ }
220
+ }
221
+
222
+ function gatherOptions(setAllExceptNecessary) {
223
+ var $options = self.$modal.find("#bccs-options .bccs-option");
224
+ var options = {};
225
+ for (var i = 0; i < $options.length; i++) {
226
+ var option = $options[i];
227
+ var name = option.getAttribute("data-name");
228
+ if (name === "necessary") {
229
+ options[name] = true;
230
+ } else if (setAllExceptNecessary === undefined) {
231
+ var $checkbox = $(option).find("input[type='checkbox']");
232
+ options[name] = $checkbox.prop("checked");
233
+ } else {
234
+ options[name] = !!setAllExceptNecessary;
235
+ }
236
+ }
237
+ return options
238
+ }
239
+
240
+ function agreeAll() {
241
+ Cookie.set(self.props.cookieName, JSON.stringify(gatherOptions(true)), self.props.cookieStorageDays);
242
+ self.$modal.modal("hide");
243
+ }
244
+
245
+ function doNotAgree() {
246
+ Cookie.set(self.props.cookieName, JSON.stringify(gatherOptions(false)), self.props.cookieStorageDays);
247
+ logger.warn('delete cookie: j1.user.consent');
248
+ // j1.deleteCookie('j1.user.consent');
249
+ j1.deleteCookie('all');
250
+ self.$modal.modal('hide')
251
+ j1.goHome();
252
+ }
253
+
254
+ function saveSettings() {
255
+ Cookie.set(self.props.cookieName, JSON.stringify(gatherOptions()), self.props.cookieStorageDays);
256
+ self.$modal.modal("hide");
257
+ }
258
+
259
+ // call consent dialog if no cookie found (except pages whitelisted)
260
+ //
261
+ whitelisted = (this.props.whitelisted.indexOf(window.location.pathname) > -1);
262
+ if (Cookie.get(this.props.cookieName) === undefined && this.props.autoShowDialog && !whitelisted) {
263
+ showDialog();
264
+ }
265
+
266
+ // API functions
267
+ // ---------------------------------------------------------------------------
268
+
269
+ logger.info('Initializing core module finished');
270
+ logger.info('state: finished');
271
+
272
+ // show the consent dialog (modal)
273
+ // ---------------------------------------------------------------------------
274
+ this.showDialog = function () {
275
+ whitelisted = (this.props.whitelisted.indexOf(window.location.pathname) > -1);
276
+ if (!whitelisted) {
277
+ showDialog();
278
+ }
279
+ }
280
+
281
+ // collect settings from consent cookie
282
+ // ---------------------------------------------------------------------------
283
+ this.getSettings = function (optionName) {
284
+ var cookie = Cookie.get(self.props.cookieName);
285
+ if (cookie) {
286
+ var settings = JSON.parse(Cookie.get(self.props.cookieName));
287
+ if (optionName === undefined) {
288
+ return settings;
289
+ } else {
290
+ if (settings) {
291
+ return settings[optionName];
292
+ } else {
293
+ return false;
294
+ }
295
+ }
296
+ } else {
297
+ return undefined;
298
+ }
299
+ } // END getSettings
300
+
301
+ } // END BootstrapCookieConsent
@@ -0,0 +1,15 @@
1
+ /*
2
+ # -----------------------------------------------------------------------------
3
+ # ~/assets/themes/j1/modules/fam/css/fam.min.css
4
+ # Provides styles for J1 Module FAM (Floating Button Menu)
5
+ #
6
+ # Product/Info:
7
+ # https://jekyll.one
8
+ #
9
+ # Copyright (C) 2021 Juergen Adams
10
+ #
11
+ # J1 Template is licensed under the MIT License.
12
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
13
+ # -----------------------------------------------------------------------------
14
+ */
15
+ .fam-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden;padding-left:0;list-style-type:none}.btn-large,.btn-small{border:0;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 16px;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.disabled.btn-large,.disabled.btn-small,.btn-fab-floating.disabled,.btn-large.disabled,.btn-small.disabled,.btn-large:disabled,.btn-small:disabled,.btn-fab-floating:disabled,.btn-large:disabled,.btn-small:disabled,[disabled].btn-large,[disabled].btn-small,.btn-fab-floating[disabled],.btn-large[disabled],.btn-small[disabled]{pointer-events:none;background-color:#dfdfdf!important;-webkit-box-shadow:none;box-shadow:none;color:#9f9f9f!important;cursor:default}.disabled.btn-large:hover,.disabled.btn-small:hover,.btn-fab-floating.disabled:hover,.btn-large.disabled:hover,.btn-small.disabled:hover,.btn-large:disabled:hover,.btn-small:disabled:hover,.btn-fab-floating:disabled:hover,.btn-large:disabled:hover,.btn-small:disabled:hover,[disabled].btn-large:hover,[disabled].btn-small:hover,.btn-fab-floating[disabled]:hover,.btn-large[disabled]:hover,.btn-small[disabled]:hover{background-color:#dfdfdf!important;color:#9f9f9f!important}.btn-large,.btn-small,.btn-fab-floating{font-size:14px;outline:0}.btn-large i,.btn-small i,.btn-fab-floating i{font-size:1.3rem;line-height:inherit}.btn-large:focus,.btn-small:focus,.btn-fab-floating:focus{background-color:#1d7d74}.btn-large,.btn-small{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;cursor:pointer}.btn-large:hover,.btn-small:hover{background-color:#424242!important}.btn-fab-floating:hover{background-color:#424242!important}.btn-fab-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:40px;height:40px;line-height:40px;padding:0;background-color:#26a69a;border-radius:50%;-webkit-transition:background-color .3s;transition:background-color .3s;cursor:pointer;vertical-align:middle}.btn-fab-floating:before{border-radius:0}.btn-fab-floating.btn-large{width:56px;height:56px;padding:0}.btn-fab-floating.btn-large.halfway-fab{bottom:-28px}.btn-fab-floating.btn-large i{line-height:56px}.btn-fab-floating.btn-small{width:32.4px;height:32.4px}.btn-fab-floating.btn-small.halfway-fab{bottom:-16.2px}.btn-fab-floating.btn-small i{line-height:32.4px}.btn-fab-floating.halfway-fab{position:absolute;right:24px;bottom:-20px}.btn-fab-floating.halfway-fab.left{right:auto;left:24px}.btn-fab-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:40px}button.btn-fab-floating{border:0}.fam-btn{position:fixed;right:1rem;bottom:1rem;padding-top:4rem;margin-bottom:0;z-index:9}.fam-btn.active ul{visibility:visible}.fam-btn.direction-left,.fam-btn.direction-right{padding:0 0 0 15px}.fam-btn.direction-left ul,.fam-btn.direction-right ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px}.fam-btn.direction-left ul li,.fam-btn.direction-right ul li{display:inline-block;margin:7.5px 15px 0 0}.fam-btn.direction-right{padding:0 15px 0 0}.fam-btn.direction-right ul{text-align:left;direction:rtl;left:64px;right:auto}.fam-btn.direction-right ul li{margin:7.5px 0 0 15px}.fam-btn.direction-bottom{padding:0 0 15px 0}.fam-btn.direction-bottom ul{top:64px;bottom:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.fam-btn.direction-bottom ul li{margin:15px 0 0 0}.fam-btn.toolbar{padding:0;height:56px}.fam-btn.toolbar.active>a i{opacity:0}.fam-btn.toolbar ul{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;top:0;bottom:0;z-index:1}.fam-btn.toolbar ul li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:inline-block;margin:0;height:100%;-webkit-transition:none;transition:none}.fam-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;color:#fff;line-height:56px;z-index:1}.fam-btn.toolbar ul li a i{line-height:inherit}.fam-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fam-btn ul li{margin-bottom:15px}.fam-btn ul a.btn-fab-floating{opacity:0}.fam-btn .fam-btn-backdrop{position:absolute;top:0;left:0;z-index:-1;width:40px;height:40px;background-color:#26a69a;border-radius:50%;-webkit-transform:scale(0);transform:scale(0)}.btn-large{height:54px;line-height:54px;font-size:15px;padding:0 28px}.btn-large i{font-size:1.6rem}.btn-small{height:32.4px;line-height:32.4px;font-size:13px}.btn-small i{font-size:1.2rem}
@@ -40,12 +40,7 @@
40
40
  // jadams, 2020-10-10, added class from main (materialize.js)
41
41
  //
42
42
  class Component {
43
- /**
44
- * Generic constructor for all components
45
- * @constructor
46
- * @param {Element} el
47
- * @param {Object} options
48
- */
43
+
49
44
  constructor(classDef, el, options) {
50
45
  // Display error if el is valid HTML Element
51
46
  if (!(el instanceof Element)) {
@@ -2,10 +2,12 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title>iFrame message passing test</title>
6
- <meta name="description" content="iFrame message passing test" />
5
+ <title>iFrame message passing test 1</title>
6
+ <meta name="description" content="iFrame message passing test 1" />
7
7
  <meta name="viewport" content="width=device-width" />
8
8
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
9
+ <meta name="robots" content="noindex">
10
+ <meta name="robots" content="nofollow">
9
11
  <style>
10
12
  a.back {
11
13
  float: right;
@@ -2,10 +2,11 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title>iFrame message passing test</title>
6
- <meta name="description" content="iFrame message passing test" />
5
+ <title>iFrame message passing test 2</title>
6
+ <meta name="description" content="iFrame message passing test 2" />
7
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
8
-
8
+ <meta name="robots" content="noindex">
9
+ <meta name="robots" content="nofollow">
9
10
  <style>
10
11
  *,
11
12
  *:before,
@@ -2,9 +2,11 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title>iFrame message passing test</title>
6
- <meta name="description" content="iFrame message passing test" />
5
+ <title>iFrame message passing test 3</title>
6
+ <meta name="description" content="iFrame message passing test 3" />
7
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
8
+ <meta name="robots" content="noindex">
9
+ <meta name="robots" content="nofollow">
8
10
  <style>
9
11
  a {
10
12
  float: right;
@@ -2,10 +2,12 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title>iFrame message passing test</title>
6
- <meta name="description" content="iFrame message passing test" />
5
+ <title>iFrame message passing test 4</title>
6
+ <meta name="description" content="iFrame message passing test 4" />
7
7
  <meta name="viewport" content="width=device-width" />
8
8
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
9
+ <meta name="robots" content="noindex">
10
+ <meta name="robots" content="nofollow">
9
11
  <style>
10
12
  *,
11
13
  *:before,
@@ -2,9 +2,11 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title>iFrame message passing test</title>
6
- <meta name="description" content="iFrame message passing test" />
5
+ <title>iFrame message passing test 5</title>
6
+ <meta name="description" content="iFrame message passing test 5" />
7
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
8
+ <meta name="robots" content="noindex">
9
+ <meta name="robots" content="nofollow">
8
10
  <style>
9
11
  a {
10
12
  float: right;
@@ -2,8 +2,10 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title>iFrame message passing test</title>
6
- <meta name="description" content="iFrame message passing test" />
5
+ <title>iFrame message passing test 6</title>
6
+ <meta name="description" content="iFrame message passing test 6" />
7
+ <meta name="robots" content="noindex">
8
+ <meta name="robots" content="nofollow">
7
9
  <style>
8
10
  a.back {
9
11
  float: right;
@@ -6,6 +6,8 @@
6
6
  <meta name="description" content="iFrame message passing test" />
7
7
  <meta name="viewport" content="width=device-width" />
8
8
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
9
+ <meta name="robots" content="noindex">
10
+ <meta name="robots" content="nofollow">
9
11
  </head>
10
12
 
11
13
  <body>
@@ -2,10 +2,12 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title>iFrame message passing test</title>
6
- <meta name="description" content="iFrame message passing test" />
5
+ <title>iFrame message passing test 7</title>
6
+ <meta name="description" content="iFrame message passing test 7" />
7
7
  <meta name="viewport" content="width=device-width" />
8
8
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
9
+ <meta name="robots" content="noindex">
10
+ <meta name="robots" content="nofollow">
9
11
  </head>
10
12
 
11
13
  <body>