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.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +4 -4
- data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +7 -15
- data/_includes/themes/j1/modules/connectors/ads +18 -7
- data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +7 -3
- data/_includes/themes/j1/modules/connectors/analytics +17 -3
- data/_includes/themes/j1/modules/connectors/comments +22 -8
- data/_includes/themes/j1/modules/connectors/translator +20 -6
- data/_includes/themes/j1/modules/navigator/generator.html +2 -2
- data/_includes/themes/j1/procedures/global/select_location.proc +3 -3
- data/_layouts/default.html +4 -7
- data/assets/data/cookieconsent.html +249 -0
- data/assets/data/quicklinks.html +18 -16
- data/assets/data/themes.json +6 -6
- data/assets/error_pages/HTTP204.html +30 -10
- data/assets/error_pages/HTTP400.html +29 -8
- data/assets/error_pages/HTTP401.html +29 -9
- data/assets/error_pages/HTTP403.html +29 -8
- data/assets/error_pages/HTTP404.html +29 -8
- data/assets/error_pages/HTTP500.html +29 -8
- data/assets/error_pages/HTTP501.html +29 -8
- data/assets/error_pages/HTTP502.html +29 -8
- data/assets/error_pages/HTTP503.html +30 -8
- data/assets/themes/j1/adapter/js/cookieConsent.js +290 -0
- data/assets/themes/j1/adapter/js/fam.js +2 -1
- data/assets/themes/j1/adapter/js/j1.js +154 -153
- data/assets/themes/j1/adapter/js/navigator.js +157 -200
- data/assets/themes/j1/adapter/js/themer.1.js +326 -0
- data/assets/themes/j1/adapter/js/themer.js +41 -57
- data/assets/themes/j1/adapter/js/toccer.js +4 -45
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +2 -2
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
- data/assets/themes/j1/core/js/template.js +3 -9
- data/assets/themes/j1/core/js/template.js.map +1 -1
- data/assets/themes/j1/core/js/template.min.js +3 -9
- data/assets/themes/j1/core/js/template.min.js.map +1 -1
- data/assets/themes/j1/modules/cookieConsent/LICENSE +21 -0
- data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +301 -0
- data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +301 -0
- data/assets/themes/j1/modules/fam/css/{uno → theme/uno}/fam.css +0 -0
- data/assets/themes/j1/modules/fam/css/theme/uno/fam.min.css +15 -0
- data/assets/themes/j1/modules/fam/js/fam.js +1 -6
- data/assets/themes/j1/modules/iframeResizer/examples/frame.absolute.html +4 -2
- data/assets/themes/j1/modules/iframeResizer/examples/frame.content.html +4 -3
- data/assets/themes/j1/modules/iframeResizer/examples/frame.hover.html +4 -2
- data/assets/themes/j1/modules/iframeResizer/examples/frame.nested.html +4 -2
- data/assets/themes/j1/modules/iframeResizer/examples/frame.textarea.html +4 -2
- data/assets/themes/j1/modules/iframeResizer/examples/frame.tolerance.html +4 -2
- data/assets/themes/j1/modules/iframeResizer/examples/index.html +2 -0
- data/assets/themes/j1/modules/iframeResizer/examples/two.html +4 -2
- data/assets/themes/j1/modules/mmenuLight/css/{mmenu.css → mmenu-light.css} +0 -0
- data/assets/themes/j1/modules/mmenuLight/css/{mmenu.min.css → mmenu-light.min.css} +0 -0
- data/assets/themes/j1/modules/mmenuLight/css/theme/{uno.css → uno/mmenu.css} +0 -0
- data/assets/themes/j1/modules/mmenuLight/css/theme/{uno.min.css → uno/mmenu.min.css} +0 -0
- data/assets/themes/j1/modules/rtable/css/theme/{uno.css → uno/rtable.css} +0 -0
- data/assets/themes/j1/modules/rtable/css/theme/{uno.min.css → uno/rtable.min.css} +0 -0
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +34 -49
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +410 -2
- data/assets/themes/j1/modules/util/js/domready.js +146 -0
- data/assets/themes/j1/modules/util/js/gtag-opt-in.js +1 -0
- data/lib/j1/version.rb +3 -3
- data/lib/j1_app/j1_auth_manager/auth_manager.rb +2 -3
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/_config.yml +19 -10
- data/lib/starter_web/_data/_defaults/resources.yml +11 -8
- data/lib/starter_web/_data/j1_config.yml +21 -18
- data/lib/starter_web/_data/modules/{cookiebar.yml → cookieconsent.yml} +5 -4
- data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +136 -0
- data/lib/starter_web/_data/modules/defaults/themer.yml +2 -1
- data/lib/starter_web/_data/pages/builder.yml +7 -7
- data/lib/starter_web/_data/private.default.yml +119 -0
- data/lib/starter_web/_data/private.yml +6 -6
- data/lib/starter_web/_data/resources.yml +15 -14
- data/lib/starter_web/_includes/attributes.asciidoc +10 -1
- data/lib/starter_web/_plugins/lunr_index.rb +1 -1
- data/lib/starter_web/assets/images/modules/attics/{cookies-1920x1200-bw.jpg → cookies-1920x1200.jpg} +0 -0
- data/lib/starter_web/assets/images/modules/attics/lianhao-1920x1280.jpg +0 -0
- data/lib/starter_web/collections/posts/public/featured/_posts/2020-01-01-about-cookies.adoc +2 -2
- data/lib/starter_web/dot.gitignore +1 -1
- data/lib/starter_web/index.html +3 -3
- data/lib/starter_web/package.json +2 -2
- data/lib/starter_web/pages/public/blog/navigator/archive.html +5 -3
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +3 -2
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +6 -4
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +23 -5
- data/lib/starter_web/pages/public/cookieConsent.adoc +93 -0
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +2 -1
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +111 -213
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +24 -76
- data/_includes/themes/j1/modules/navigator/generator.org.html +0 -232
- data/assets/data/cookiebar.html +0 -288
- data/assets/data/footer.new.1.html +0 -256
- data/assets/data/footer.new.2.html +0 -256
- data/assets/data/footer.org.html +0 -249
- data/assets/error_pages/HTTP520.html +0 -68
- data/assets/error_pages/HTTP521.html +0 -68
- data/assets/error_pages/HTTP533.html +0 -68
- data/assets/themes/j1/adapter/js/cookiebar.js +0 -212
- data/assets/themes/j1/adapter/js/j1.new.js +0 -1878
- data/assets/themes/j1/adapter/js/j1.org.js +0 -1874
- data/assets/themes/j1/modules/_lightGallery/css/core/lg-fb-comment-box.css +0 -58
- data/assets/themes/j1/modules/_lightGallery/css/core/lg-fb-comment-box.min.css +0 -5
- data/assets/themes/j1/modules/_lightGallery/css/core/lg-transitions.css +0 -778
- data/assets/themes/j1/modules/_lightGallery/css/core/lg-transitions.min.css +0 -5
- data/assets/themes/j1/modules/_lightGallery/css/core/lightgallery.css +0 -981
- data/assets/themes/j1/modules/_lightGallery/css/core/lightgallery.min.css +0 -5
- data/assets/themes/j1/modules/_lightGallery/css/fonts/lg.eot +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/fonts/lg.svg +0 -47
- data/assets/themes/j1/modules/_lightGallery/css/fonts/lg.ttf +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/fonts/lg.woff +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/img/loading.gif +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/img/video-play.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/img/vimeo-play.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/img/youtube-play.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/animation-w.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/customize-w.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/dynamic-w.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/facebook-icon.svg +0 -10
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/googleplus-icon.svg +0 -30
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/html5-w.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/linked-in.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/module-w.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/play-button.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/responsive-w.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/thumb-w.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/touch-w.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/twitter-icon.svg +0 -15
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/twitter.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/video1-w.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/zoom-w.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/icons/zoom.png +0 -0
- data/assets/themes/j1/modules/_lightGallery/css/themes/uno.css +0 -262
- data/assets/themes/j1/modules/_lightGallery/css/themes/uno.min.css +0 -15
- data/assets/themes/j1/modules/_lightGallery/js/core/lightgallery.js +0 -1362
- data/assets/themes/j1/modules/_lightGallery/js/core/lightgallery.min.js +0 -4
- data/assets/themes/j1/modules/_lightGallery/js/modules/j1/j1-video.js +0 -402
- data/assets/themes/j1/modules/_lightGallery/js/modules/j1/j1-video.min.js +0 -8
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-autoplay.js +0 -206
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-autoplay.min.js +0 -5
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-fullscreen.js +0 -126
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-fullscreen.min.js +0 -5
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-hash.js +0 -101
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-hash.min.js +0 -5
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-pager.js +0 -105
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-pager.min.js +0 -5
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-share.js +0 -107
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-share.min.js +0 -5
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-thumbnail.js +0 -478
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-thumbnail.min.js +0 -5
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-video.js +0 -342
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-video.min.js +0 -5
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-zoom.js +0 -527
- data/assets/themes/j1/modules/_lightGallery/js/modules/lg-zoom.min.js +0 -5
- 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
|
File without changes
|
@@ -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>
|