j1-template 2022.0.5 → 2022.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_layouts/default.html +0 -57
- data/assets/error_pages/HTTP444.html +4 -4
- data/assets/error_pages/HTTP445.html +3 -3
- data/assets/error_pages/HTTP446.html +110 -0
- data/assets/themes/j1/adapter/js/cookieConsent.js +64 -34
- data/assets/themes/j1/adapter/js/j1.js +114 -210
- data/assets/themes/j1/adapter/js/themer.js +0 -1
- data/assets/themes/j1/adapter/js/translator.js +146 -97
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +6 -0
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
- data/assets/themes/j1/core/js/template.js +2 -6
- data/assets/themes/j1/core/js/template.min.js +1 -1
- data/assets/themes/j1/core/js/template.min.js.map +1 -1
- data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +29 -13
- data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +0 -1
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
- data/assets/themes/j1/modules/translator/js/translator.js +98 -63
- data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/_config.yml +2 -3
- data/lib/starter_web/_data/modules/cookies.yml +30 -0
- data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +3 -3
- data/lib/starter_web/_data/modules/defaults/cookies.yml +112 -0
- data/lib/starter_web/_data/modules/navigator_menu.yml +10 -1
- data/lib/starter_web/_includes/attributes.asciidoc +6 -1
- data/lib/starter_web/_plugins/lunr_index.rb +1 -1
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/_test_pages/google-translate-tester.1.adoc +0 -2
- data/lib/starter_web/pages/_test_pages/google-translate-tester.4.adoc +0 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +1 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +1 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +1 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +1 -1
- data/lib/starter_web/pages/public/blog/navigator/archive.html +1 -1
- data/lib/starter_web/pages/public/blog/navigator/index.html +1 -1
- data/lib/starter_web/pages/public/learn/quickstart.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +1 -1
- data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +2 -12
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +2 -12
- data/lib/starter_web/pages/public/manuals/dropdown-help.adoc +1 -1
- data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +1 -1
- data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +1 -1
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +5 -2
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
'use strict';
|
40
40
|
function CookieConsent(props) {
|
41
|
-
var logger = log4javascript.getLogger('j1.core.
|
41
|
+
var logger = log4javascript.getLogger('j1.core.CookieConsent');
|
42
42
|
var self = this;
|
43
43
|
var detailedSettingsShown = false;
|
44
44
|
var url = new liteURL(window.location.href);
|
@@ -56,14 +56,10 @@ function CookieConsent(props) {
|
|
56
56
|
dialogLanguage: 'content', // language used for the consent dialog (modal)
|
57
57
|
dialogLanguages: ['en','de'], // supported languages for the consent dialog (modal), defaults to first in array
|
58
58
|
contentURL: '/assets/data/cookieconsent', // URL contain the consent dialogs (modals) for ALL supported languages
|
59
|
-
cookieName: 'j1.user.translate', // name of the cookie, in which the configuration is stored
|
60
|
-
cookieStorageDays: 365, // duration the configuration cookie is stored on the client
|
61
59
|
postSelectionCallback: '', // callback function, called after the user has made his selection
|
62
60
|
whitelisted: [], // pages NO consent modal dialog is issued
|
63
61
|
xhrDataElement: 'consent-data', // src container for all language-specific consent dialogs (taken from contentURL)
|
64
|
-
dialogContainerID: 'consent-modal'
|
65
|
-
cookieSameSite: 'Strict', // restrict the consent cookie to first-party (do NOT send cookie to other domains)
|
66
|
-
cookieSecure: true
|
62
|
+
dialogContainerID: 'consent-modal' // dest container, the dialog modal is loaded (dynamically)
|
67
63
|
};
|
68
64
|
|
69
65
|
// merge property settings
|
@@ -87,7 +83,7 @@ function CookieConsent(props) {
|
|
87
83
|
this.props.cookieSecure = cookieSecure;
|
88
84
|
|
89
85
|
var Cookie = {
|
90
|
-
set: function (name, value, days, cookieSameSite, cookieSecure) {
|
86
|
+
set: function (name, value, days, cookieSameSite, cookieDomain, cookieSecure) {
|
91
87
|
var value_encoded = window.btoa(value);
|
92
88
|
var expires = '; expires=Thu, 01 Jan 1970 00:00:00 UTC';
|
93
89
|
if (days>0) {
|
@@ -96,9 +92,9 @@ function CookieConsent(props) {
|
|
96
92
|
expires = "; expires=" + date.toUTCString();
|
97
93
|
}
|
98
94
|
if (cookieSecure) {
|
99
|
-
document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/;
|
95
|
+
document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + '; ' + 'Domain=' + cookieDomain + '; ' + 'Secure=' + cookieSecure + ';';
|
100
96
|
} else {
|
101
|
-
document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/;
|
97
|
+
document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + ';' + 'Domain=' + cookieDomain + '; ';
|
102
98
|
}
|
103
99
|
},
|
104
100
|
get: function (name) {
|
@@ -319,20 +315,41 @@ function CookieConsent(props) {
|
|
319
315
|
}
|
320
316
|
|
321
317
|
function agreeAll() {
|
322
|
-
Cookie.set(
|
318
|
+
Cookie.set(
|
319
|
+
self.props.cookieName,
|
320
|
+
JSON.stringify(gatherOptions(true)),
|
321
|
+
self.props.cookieStorageDays,
|
322
|
+
self.props.cookieSameSite,
|
323
|
+
self.props.cookieDomain,
|
324
|
+
cookieSecure
|
325
|
+
);
|
323
326
|
self.$modal.modal('hide');
|
324
327
|
}
|
325
328
|
|
326
329
|
function doNotAgree() {
|
327
330
|
// Remove consent cookie
|
328
|
-
Cookie.set(
|
331
|
+
Cookie.set(
|
332
|
+
self.props.cookieName,
|
333
|
+
JSON.stringify(gatherOptions(false)),
|
334
|
+
0,
|
335
|
+
self.props.cookieSameSite,
|
336
|
+
self.props.cookieDomain,
|
337
|
+
cookieSecure
|
338
|
+
);
|
329
339
|
self.$modal.modal('hide');
|
330
340
|
// redirect to error page: blocked site
|
331
341
|
window.location.href = '/445.html';
|
332
342
|
}
|
333
343
|
|
334
344
|
function saveSettings() {
|
335
|
-
Cookie.set(
|
345
|
+
Cookie.set(
|
346
|
+
self.props.cookieName,
|
347
|
+
JSON.stringify(gatherOptions()),
|
348
|
+
self.props.cookieStorageDays,
|
349
|
+
self.props.cookieSameSite,
|
350
|
+
self.props.cookieDomain,
|
351
|
+
cookieSecure
|
352
|
+
);
|
336
353
|
self.$modal.modal('hide');
|
337
354
|
}
|
338
355
|
|
@@ -346,7 +363,6 @@ function CookieConsent(props) {
|
|
346
363
|
|
347
364
|
// API functions
|
348
365
|
// ---------------------------------------------------------------------------
|
349
|
-
|
350
366
|
logger.info('\n' + 'initializing core module finished');
|
351
367
|
logger.info('\n' + 'state: finished');
|
352
368
|
|
@@ -24,4 +24,4 @@
|
|
24
24
|
# outside of J1 Template!
|
25
25
|
# -----------------------------------------------------------------------------
|
26
26
|
*/
|
27
|
-
"use strict";function CookieConsent(d){var v=log4javascript.getLogger("j1.core.
|
27
|
+
"use strict";function CookieConsent(d){var v=log4javascript.getLogger("j1.core.CookieConsent");var p=this;var q=false;var e=new liteURL(window.location.href);var c=(e.protocol.includes("https"))?true:false;var j;var g;var t;v.info("\ninitializing core module: started");v.info("\nstate: started");this.props={autoShowDialog:true,dialogLanguage:"content",dialogLanguages:["en","de"],contentURL:"/assets/data/cookieconsent",postSelectionCallback:"",whitelisted:[],xhrDataElement:"consent-data",dialogContainerID:"consent-modal"};for(var f in d){this.props[f]=d[f]}if(this.props.dialogLanguage.indexOf("-")!==-1){this.props.dialogLanguage=this.props.dialogLanguage.split("-")[0]}if(!this.props.dialogLanguages.includes(this.props.dialogLanguage)){this.props.dialogLanguage=this.props.dialogLanguages[0]}this.props.xhrDataElement=this.props.xhrDataElement+"-"+this.props.dialogLanguage;this.props.cookieSecure=c;var h={set:function(w,C,E,z,D,A){var B=window.btoa(C);var x="; expires=Thu, 01 Jan 1970 00:00:00 UTC";if(E>0){var y=new Date();y.setTime(y.getTime()+(E*24*60*60*1000));x="; expires="+y.toUTCString()}if(A){document.cookie=w+"="+(B||"")+x+"; Path=/; SameSite="+z+"; Domain="+D+"; Secure="+A+";"}else{document.cookie=w+"="+(B||"")+x+"; Path=/; SameSite="+z+";Domain="+D+"; "}},get:function(x){var A=x+"=";var w=document.cookie.split(";");for(var y=0;y<w.length;y++){var C=w[y];while(C.charAt(0)===" "){C=C.substring(1,C.length)}if(C.indexOf(A)===0){var B=C.substring(A.length,C.length);var z=window.atob(B);return z}}return undefined}};var n={documentReady:function(w){if(document.readyState!=="loading"){w()}else{document.addEventListener("DOMContentLoaded",w)}}};function u(){var w={};var x=false;var y=0;var z=arguments.length;if(Object.prototype.toString.call(arguments[0])==="[object Boolean]"){x=arguments[0];y++}var B=function(C){for(var D in C){if(Object.prototype.hasOwnProperty.call(C,D)){if(x&&Object.prototype.toString.call(C[D])==="[object Object]"){w[D]=u(true,w[D],C[D])}else{w[D]=C[D]}}}};for(;y<z;y++){var A=arguments[y];B(A)}return w}function i(B,y){var w=Array.prototype.slice.call(arguments,2);var A=B.split(".");var z=A.pop();for(var x=0;x<A.length;x++){y=y[A[x]]}return y[z].apply(y,w)}function m(w){n.documentReady(function(){p.modal=document.getElementById(p.props.dialogContainerID);if(!p.modal){v.info("\nload consent modal");p.modal=document.createElement("div");p.modal.id=p.props.dialogContainerID;p.modal.style.display="none";p.modal.setAttribute("class","modal fade");p.modal.setAttribute("tabindex","-1");p.modal.setAttribute("role","dialog");p.modal.setAttribute("aria-labelledby",p.props.dialogContainerID);document.body.append(p.modal);p.$modal=$(p.modal);p.$modal.on("hidden.bs.modal",function(){i(p.props.postSelectionCallback,window)});var x=p.props.contentURL+"/index.html";$.get(x).done(function(y){v.info("\nloading consent modal: successfully");p.modal.innerHTML=y;p.modal.innerHTML=$("#"+p.props.xhrDataElement).eq(0).html();p.modal.style.display="block";$(p.modal).modal({backdrop:"static",keyboard:false});p.$buttonDoNotAgree=$("#bccs-buttonDoNotAgree");p.$buttonAgree=$("#bccs-buttonAgree");p.$buttonSave=$("#bccs-buttonSave");p.$buttonAgreeAll=$("#bccs-buttonAgreeAll");v.info("\nload/initialze options from cookie");l();k();$("#bccs-options").on("hide.bs.collapse",function(){q=false;l()}).on("show.bs.collapse",function(){q=true;l()});v.info("\ninitialze event handler");p.$buttonDoNotAgree.click(function(){b()});p.$buttonAgree.click(function(){o()});p.$buttonSave.click(function(){$("#bccs-options").collapse("hide");s();k()});p.$buttonAgreeAll.click(function(){$("#bccs-options").collapse("hide");o();k()});p.$modal.modal("show")}).fail(function(){v.error("\nloading consent modal: failed");v.warn("\nprobably no `contentURL` set")})}else{p.$modal.modal("show")}}.bind(this))}function k(){var y=p.getSettings();if(y){for(var x in y){var w=p.$modal.find("#bccs-options .bccs-option[data-name='"+x+"'] input[type='checkbox']");w.prop("checked",y[x])}}}function l(){if(q){p.$buttonDoNotAgree.hide();p.$buttonAgree.hide();p.$buttonSave.show();p.$buttonAgreeAll.show()}else{p.$buttonDoNotAgree.show();p.$buttonAgree.show();p.$buttonSave.hide();p.$buttonAgreeAll.hide()}}function a(x){var w=p.$modal.find("#bccs-options .bccs-option");var z={};for(var A=0;A<w.length;A++){var C=w[A];var y=C.getAttribute("data-name");if(y==="necessary"){z[y]=true}else{if(x===undefined){var B=$(C).find("input[type='checkbox']");z[y]=B.prop("checked")}else{z[y]=!!x}}}return z}function o(){h.set(p.props.cookieName,JSON.stringify(a(true)),p.props.cookieStorageDays,p.props.cookieSameSite,p.props.cookieDomain,c);p.$modal.modal("hide")}function b(){h.set(p.props.cookieName,JSON.stringify(a(false)),0,p.props.cookieSameSite,p.props.cookieDomain,c);p.$modal.modal("hide");window.location.href="/445.html"}function s(){h.set(p.props.cookieName,JSON.stringify(a()),p.props.cookieStorageDays,p.props.cookieSameSite,p.props.cookieDomain,c);p.$modal.modal("hide")}t=(this.props.whitelisted.indexOf(window.location.pathname)>-1);var r=h.get(this.props.cookieName);if((r===undefined||r==="false")&&this.props.autoShowDialog&&!t){m()}v.info("\ninitializing core module finished");v.info("\nstate: finished");this.showDialog=function(){t=(this.props.whitelisted.indexOf(window.location.pathname)>-1);if(!t){m()}};this.getSettings=function(x){var w=h.get(p.props.cookieName);if(w){var y=JSON.parse(h.get(p.props.cookieName));if(x===undefined){return y}else{if(y){return y[x]}else{return false}}}else{return undefined}}};
|
@@ -19,4 +19,4 @@
|
|
19
19
|
# The original version cannot be used with J1 for theme menu creation!
|
20
20
|
# -----------------------------------------------------------------------------
|
21
21
|
*/
|
22
|
-
;(function(d,h,o,g){var b=d.fn.bootstrapThemeSwitcher;var e=j1.getCookieNames();var p=j1.findCookie("_ga");var q=j1.findCookie("j1");var f=new liteURL(h.location.href);var j=f.hostname;var s=j.substring(j.lastIndexOf(".",j.lastIndexOf(".")-1)+1);var l=(f.protocol.includes("https"))?true:false;var r=log4javascript.getLogger("j1.core.switcher");var i;var c;var m={};var k;var a;var n=function(u,t){this.$element=d(u);this.settings=d.extend({},d.fn.bootstrapThemeSwitcher.defaults,t);this.themesList=[];this.getThemes();return this};n.prototype={clear:function(){r.debug("\nbootstrapThemeSwitcher.clear");return this.$element.each(function(){this.$element.empty()})},update:function(){r.debug("\nbootstrapThemeSwitcher.update");this.getThemes()},checkStyleSheetByName:function(t){var w=false;var x="/"+t+"/";var v=new RegExp(x,"i");for(var u=0;u<o.styleSheets.length;u++){if(v.test(o.styleSheets[u].href)){w=true;break}}return w},switchTheme:function(t,z){var A=d(this);var w=d.extend({},d.fn.bootstrapThemeSwitcher.defaults,A.data("bootstrapThemeSwitcher"));var v=w.cssThemeLink;var u=w.debug;var y=this.settings.includeBootswatch;var x;var B;c=j1.existsCookie(e.user_state);if(c){r.debug("\ncookie found: "+e.user_state);m=j1.readCookie(e.user_state)}else{r.error("\ncookie not found: "+e.user_state);r.debug("\nj1 cookies found:"+q.length);q.forEach(function(C){console.log("j1.core.switcher: "+C)});r.debug("\nga cookies found:"+p.length);p.forEach(function(C){console.log("j1.core.switcher: "+C)})}x=m.theme_name;B=m.theme_css;if(typeof z==="undefined"){z=this.settings.defaultCssFile}if(typeof t==="undefined"){t=z}if(w.saveToCookie){if(typeof Cookies==="undefined"){if(u==="true"){r.error("\ncookies library not present")}return false}m.theme_name=t;m.theme_css=z;if(!(m.theme_name.includes("Uno")||m.theme_name=="Bootstrap")){m.theme_author="Bootswatch";m.theme_author_url="https://bootswatch.com/"}else{m.theme_author="J1 Team";m.theme_author_url="https://jekyll.one/"}r.debug("\nwrite to cookie : "+e.user_state);j1.writeCookie({name:e.user_state,data:m,
|
22
|
+
;(function(d,h,o,g){var b=d.fn.bootstrapThemeSwitcher;var e=j1.getCookieNames();var p=j1.findCookie("_ga");var q=j1.findCookie("j1");var f=new liteURL(h.location.href);var j=f.hostname;var s=j.substring(j.lastIndexOf(".",j.lastIndexOf(".")-1)+1);var l=(f.protocol.includes("https"))?true:false;var r=log4javascript.getLogger("j1.core.switcher");var i;var c;var m={};var k;var a;var n=function(u,t){this.$element=d(u);this.settings=d.extend({},d.fn.bootstrapThemeSwitcher.defaults,t);this.themesList=[];this.getThemes();return this};n.prototype={clear:function(){r.debug("\nbootstrapThemeSwitcher.clear");return this.$element.each(function(){this.$element.empty()})},update:function(){r.debug("\nbootstrapThemeSwitcher.update");this.getThemes()},checkStyleSheetByName:function(t){var w=false;var x="/"+t+"/";var v=new RegExp(x,"i");for(var u=0;u<o.styleSheets.length;u++){if(v.test(o.styleSheets[u].href)){w=true;break}}return w},switchTheme:function(t,z){var A=d(this);var w=d.extend({},d.fn.bootstrapThemeSwitcher.defaults,A.data("bootstrapThemeSwitcher"));var v=w.cssThemeLink;var u=w.debug;var y=this.settings.includeBootswatch;var x;var B;c=j1.existsCookie(e.user_state);if(c){r.debug("\ncookie found: "+e.user_state);m=j1.readCookie(e.user_state)}else{r.error("\ncookie not found: "+e.user_state);r.debug("\nj1 cookies found:"+q.length);q.forEach(function(C){console.log("j1.core.switcher: "+C)});r.debug("\nga cookies found:"+p.length);p.forEach(function(C){console.log("j1.core.switcher: "+C)})}x=m.theme_name;B=m.theme_css;if(typeof z==="undefined"){z=this.settings.defaultCssFile}if(typeof t==="undefined"){t=z}if(w.saveToCookie){if(typeof Cookies==="undefined"){if(u==="true"){r.error("\ncookies library not present")}return false}m.theme_name=t;m.theme_css=z;if(!(m.theme_name.includes("Uno")||m.theme_name=="Bootstrap")){m.theme_author="Bootswatch";m.theme_author_url="https://bootswatch.com/"}else{m.theme_author="J1 Team";m.theme_author_url="https://jekyll.one/"}r.debug("\nwrite to cookie : "+e.user_state);j1.writeCookie({name:e.user_state,data:m,secure:l,expires:365});location.reload(true)}else{r.debug("\nwrite to cookie : disabled");r.warn("\nselected theme not activated: "+t)}},loadThemeFromCookie:function(t){if(typeof Cookies==="undefined"){r.error("\ncookies library not present");return false}var u=d.extend({},d.fn.bootstrapThemeSwitcher.defaults,t);c=j1.existsCookie(e.user_state);if(c){r.info("\ncookie found: "+e.user_state);m=j1.readCookie(e.user_state)}else{r.error("\ncookie not found: "+e.user_state);r.debug("\nj1 cookies found:"+q.length);q.forEach(function(x){console.log("j1.core.switcher: "+x)});r.debug("\nga cookies found:"+p.length);p.forEach(function(x){console.log("j1.core.switcher: "+x)})}var w=m.theme_name;var v=m.theme_css;this.switchTheme(w,v)},addTheme:function(u,t,w,v){if(typeof w==="undefined"){w=0}if(typeof v==="undefined"){v=0}this.themesList.splice(w,v,{name:u,css:t});this.addThemesToControl()},addThemesToControl:function(){if(typeof this.$element==="undefined"){r.error("\nbootstrapThemeSelector|addThemesToControl: Element is undefined");return false}if(typeof this.themesList==="undefined"){r.error("\nbootstrapThemeSelector|addThemesToControl: Themes is undefined");return false}if(this.settings.excludeBootswatch){var A;if(this.settings.excludeBootswatch.indexOf(",")!==-1){A=this.settings.excludeBootswatch.replace(/ /g,"").split(",")}else{A=[];A.push(this.settings.excludeBootswatch)}var w=this.themesList;d.each(w,function(E,F){if(F&&F.name){if(d.inArray(F.name,A)!==-1){w.splice(E,1)}}});this.themesList=w}var v=this;if(this.$element.is("ul")){var B=d(this);var x=d.extend({},d.fn.bootstrapThemeSwitcher.defaults,B.data("bootstrapThemeSwitcher"));var u=x.cssThemeLink;var t=x.debug;var y;c=j1.existsCookie(e.user_state);if(c){r.debug("\nuser state cookie found");m=j1.readCookie(e.user_state)}else{r.error("\nuser state NOT cookie found");r.debug("\nj1 cookies found:"+q.length);q.forEach(function(E){console.log("j1.core.switcher: "+E)});r.debug("\nga cookies found:"+p.length);p.forEach(function(E){console.log("j1.core.switcher: "+E)})}y=m.theme_name;if(t==="true"){r.debug("\nbootstrapThemeSelector: UL element selected")}this.$element.empty();var D;var C="#9E9E9E";d.each(this.themesList,function(F,G){if(v.$element[0].id.includes("mmenu")){D="mmenu-item"}else{D="dropdown-item"}if(G.name===y){if(v.$element[0].id.includes("mmenu")){D="mmenu-item active"}else{D="dropdown-item active"}}var E=d("<li />").attr("class",D).append('<a href="#"><i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: '+C+'"></i>'+G.name+"</a>").on("click",function(){if(x.loadFromBootswatch){v.switchTheme(G.name,G.css)}else{v.switchTheme(G.name,G.cssCdn)}d(this).parent().find("li").removeClass("active");d(this).addClass("active")});v.$element.append(E)})}else{if(this.$element.is("select")){r.debug("\nbootstrapThemeSelector: SELECT element selected");this.$element.empty();var z;d.each(this.themesList,function(E,F){z=null;if(F.name===y){z="selected"}if(x.loadFromBootswatch){v.$element.append("<option "+z+" value='"+F.css+"'>"+F.name+"</option>")}else{v.$element.append("<option "+z+" value='"+F.cssCdn+"'>"+F.name+"</option>")}});this.$element.on("change",function(){var E=d("option:selected",this);v.switchTheme(E.text(),E.val())})}else{r.info("\nbootstrapThemeSelector: no UL or SELECT element found");r.error("\nbootstrapThemeSelector: failed")}}},getThemes:function(){var t=this;if(this.settings.localFeed!==null&&this.settings.localFeed!==""){d.ajax({url:this.settings.localFeed,dataType:"json",success:function(u){t.themesList=u.themes;t.addThemesToControl()},error:function(u,w,v){r.error("\nfailed to retrieve the local feed from: '"+t.settings.localFeed+"'")}})}else{d.ajax({url:this.settings.bootswatchApiUrl+"/"+this.settings.bootswatchApiVersion+".json",dataType:"json",success:function(u){if(typeof u.themes==="undefined"){return null}t.themesList=u.themes;t.themesList.splice(0,0,{name:"default",css:t.settings.defaultCssFile});t.addThemesToControl()}})}},themes:function(t){if(typeof t==="undefined"){return this.themesList}else{this.themesList=t}}};d.fn.bootstrapThemeSwitcher=function(v){var x;var u=Array.prototype.slice.call(arguments,1);var y=d(this);var w=y.data("bootstrapThemeSwitcher");var t=typeof v==="object"&&v;if(!w){y.data("bootstrapThemeSwitcher",(w=new n(this,t)))}if(typeof v==="string"){x=w[v].apply(w,u)}return(typeof x==="undefined")?y:x};d.fn.bootstrapThemeSwitcher.defaults={debug:false,saveToCookie:true,cssThemeLink:"bootstrapTheme",cookieThemeName:"bootstrapTheme.name",cookieThemeCss:"boostrapTheme.css",cookieExpiration:365,cookiePath:"/",defaultCssFile:"https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css",bootswatchApiUrl:"https://bootswatch.com/api/",bootswatchApiVersion:"4",loadFromBootswatch:true,localFeed:"",excludeBootswatch:""};d.fn.bootstrapThemeSwitcher.Constructor=n;d.fn.bootstrapThemeSwitcher.noConflict=function(){d.fn.BootstrapThemeSwitcher=b;return this}})(jQuery,window,document);
|
@@ -37,6 +37,46 @@ function Translator(props) {
|
|
37
37
|
var navigator_language;
|
38
38
|
var translation_language;
|
39
39
|
|
40
|
+
// ---------------------------------------------------------------------------
|
41
|
+
// Cookie()
|
42
|
+
// manage cookies
|
43
|
+
// ---------------------------------------------------------------------------
|
44
|
+
var Cookie = {
|
45
|
+
set: function (name, value, days, cookieSameSite, cookieDomain, cookieSecure) {
|
46
|
+
var value_encoded = window.btoa(value);
|
47
|
+
var expires = '; expires=Thu, 01 Jan 1970 00:00:00 UTC';
|
48
|
+
if (days>0) {
|
49
|
+
var date = new Date();
|
50
|
+
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
51
|
+
expires = "; expires=" + date.toUTCString();
|
52
|
+
}
|
53
|
+
if (cookieSecure) {
|
54
|
+
document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + '; ' + 'Domain=' + cookieDomain + '; ' + 'Secure=' + cookieSecure + ';';
|
55
|
+
} else {
|
56
|
+
document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + ';' + 'Domain=' + cookieDomain + '; ';
|
57
|
+
}
|
58
|
+
},
|
59
|
+
get: function (name) {
|
60
|
+
var nameEQ = name + '=';
|
61
|
+
var ca = document.cookie.split(';');
|
62
|
+
for (var i = 0; i < ca.length; i++) {
|
63
|
+
var c = ca[i];
|
64
|
+
while (c.charAt(0) === ' ') {
|
65
|
+
c = c.substring(1, c.length);
|
66
|
+
}
|
67
|
+
if (c.indexOf(nameEQ) === 0) {
|
68
|
+
var value_encoded = c.substring(nameEQ.length, c.length);
|
69
|
+
var value = window.atob(value_encoded);
|
70
|
+
return value;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
return undefined;
|
74
|
+
}
|
75
|
+
};
|
76
|
+
|
77
|
+
logger.info('\n' + 'initializing core module: started');
|
78
|
+
logger.info('\n' + 'state: started');
|
79
|
+
|
40
80
|
// ---------------------------------------------------------------------------
|
41
81
|
// default property settings
|
42
82
|
// ---------------------------------------------------------------------------
|
@@ -45,7 +85,7 @@ function Translator(props) {
|
|
45
85
|
cookieName: 'j1.user.state', // the name of the User State Cookie (primary data)
|
46
86
|
cookieConsentName: 'j1.user.consent', // the name of the Cookie Consent Cookie (secondary data)
|
47
87
|
cookieStorageDays: 365, // the duration the cookie is stored on the client
|
48
|
-
cookieSameSite: '
|
88
|
+
cookieSameSite: 'Lax', // restrict consent cookie to first-party, do NOT send cookie to other domains
|
49
89
|
cookieSecure: cookieSecure, // secure flag on cookies
|
50
90
|
translationEnabled: false, // enable|disable translation on first page view
|
51
91
|
disableLanguageSelector: false, // disable language dropdown for translation in dialog (modal)
|
@@ -84,46 +124,33 @@ function Translator(props) {
|
|
84
124
|
logger.info('\n' + 'initializing core module: started');
|
85
125
|
logger.info('\n' + 'state: started');
|
86
126
|
|
87
|
-
|
88
|
-
|
89
|
-
|
127
|
+
var translationDefaultSettings = {
|
128
|
+
"translatorName": "google",
|
129
|
+
"translationEnabled": false,
|
130
|
+
"translateAllPages": true,
|
131
|
+
"useLanguageFromBrowser": true,
|
132
|
+
"translationLanguage": "de",
|
133
|
+
"analysis": true,
|
134
|
+
"personalization": true
|
135
|
+
};
|
136
|
+
|
137
|
+
var translatorCookie = Cookie.get(self.props.cookieName);
|
138
|
+
if (!translatorCookie) {
|
139
|
+
logger.info('\n' + 'initializing translator cookie: ' + self.props.cookieName);
|
140
|
+
// enable and write all settings required for translation (translation cookie)
|
141
|
+
Cookie.set(
|
142
|
+
self.props.cookieName,
|
143
|
+
JSON.stringify(translationDefaultSettings),
|
144
|
+
self.props.cookieStorageDays,
|
145
|
+
self.props.cookieSameSite,
|
146
|
+
self.props.cookieDomain,
|
147
|
+
self.props.cookieSecure
|
148
|
+
);
|
149
|
+
}
|
90
150
|
|
91
151
|
// ---------------------------------------------------------------------------
|
92
|
-
//
|
93
|
-
// manage cookies
|
152
|
+
// internal functions
|
94
153
|
// ---------------------------------------------------------------------------
|
95
|
-
var Cookie = {
|
96
|
-
set: function (name, value, days, samesite, secure) {
|
97
|
-
var value_encoded = window.btoa(value);
|
98
|
-
var expires = '';
|
99
|
-
if (days) {
|
100
|
-
var date = new Date();
|
101
|
-
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
102
|
-
expires = '; expires=' + date.toUTCString();
|
103
|
-
}
|
104
|
-
if (secure) {
|
105
|
-
document.cookie = name + '=' + (value_encoded || '') + expires + '; Path=/; SameSite=' + samesite + '; ' + 'secure=' + secure + ';';
|
106
|
-
} else {
|
107
|
-
document.cookie = name + '=' + (value_encoded || '') + expires + '; Path=/; SameSite=' + samesite + ';';
|
108
|
-
}
|
109
|
-
},
|
110
|
-
get: function (name) {
|
111
|
-
var nameEQ = name + '=';
|
112
|
-
var ca = document.cookie.split(';');
|
113
|
-
for (var i = 0; i < ca.length; i++) {
|
114
|
-
var c = ca[i];
|
115
|
-
while (c.charAt(0) === ' ') {
|
116
|
-
c = c.substring(1, c.length);
|
117
|
-
}
|
118
|
-
if (c.indexOf(nameEQ) === 0) {
|
119
|
-
var value_encoded = c.substring(nameEQ.length, c.length);
|
120
|
-
var value = window.atob(value_encoded);
|
121
|
-
return value;
|
122
|
-
}
|
123
|
-
}
|
124
|
-
return undefined;
|
125
|
-
}
|
126
|
-
};
|
127
154
|
|
128
155
|
// ---------------------------------------------------------------------------
|
129
156
|
// global event handler
|
@@ -486,11 +513,15 @@ function Translator(props) {
|
|
486
513
|
// On 'agreeAll', enable ALL settings required for translation
|
487
514
|
// ---------------------------------------------------------------------------
|
488
515
|
function agreeAll() {
|
489
|
-
var
|
490
|
-
var
|
516
|
+
var consentSettings = JSON.parse(Cookie.get(self.props.cookieConsentName));
|
517
|
+
var translationSettings = JSON.parse(Cookie.get(self.props.cookieName));
|
491
518
|
|
492
|
-
// enable
|
493
|
-
|
519
|
+
// enable all settings required for translation
|
520
|
+
translationSettings.analysis = true;
|
521
|
+
translationSettings.personalization = true;
|
522
|
+
translationSettings.translationEnabled = true;
|
523
|
+
|
524
|
+
// overload user consent settings (consent cookie)
|
494
525
|
consentSettings.analysis = translationSettings.analysis;
|
495
526
|
consentSettings.personalization = translationSettings.personalization;
|
496
527
|
|
@@ -498,17 +529,19 @@ function Translator(props) {
|
|
498
529
|
self.props.cookieConsentName,
|
499
530
|
JSON.stringify(consentSettings),
|
500
531
|
self.props.cookieStorageDays,
|
501
|
-
self.props.
|
502
|
-
self.props.
|
532
|
+
self.props.cookieSameSite,
|
533
|
+
self.props.cookieDomain,
|
534
|
+
self.props.cookieSecure
|
503
535
|
);
|
504
536
|
|
505
|
-
//
|
537
|
+
// write all settings required for translation (translation cookie)
|
506
538
|
Cookie.set(
|
507
539
|
self.props.cookieName,
|
508
540
|
JSON.stringify(translationSettings),
|
509
541
|
self.props.cookieStorageDays,
|
510
|
-
self.props.
|
511
|
-
self.props.
|
542
|
+
self.props.cookieSameSite,
|
543
|
+
self.props.cookieDomain,
|
544
|
+
self.props.cookieSecure
|
512
545
|
);
|
513
546
|
|
514
547
|
self.$modal.modal('hide');
|
@@ -519,15 +552,17 @@ function Translator(props) {
|
|
519
552
|
// process current settings from checkboxes for button `doNotAgree`
|
520
553
|
// ---------------------------------------------------------------------------
|
521
554
|
function doNotAgree() {
|
522
|
-
var
|
555
|
+
var translationSettings = gatherOptions();
|
523
556
|
|
524
|
-
settings
|
557
|
+
// disable all settings required for translation (translation cookie)
|
558
|
+
translationSettings.translationEnabled = false;
|
525
559
|
Cookie.set(
|
526
560
|
self.props.cookieName,
|
527
|
-
JSON.stringify(
|
561
|
+
JSON.stringify(translationSettings),
|
528
562
|
self.props.cookieStorageDays,
|
529
|
-
self.props.
|
530
|
-
self.props.
|
563
|
+
self.props.cookieSameSite,
|
564
|
+
self.props.cookieDomain,
|
565
|
+
self.props.cookieSecure
|
531
566
|
);
|
532
567
|
self.$modal.modal('hide');
|
533
568
|
}
|
@@ -537,29 +572,29 @@ function Translator(props) {
|
|
537
572
|
// write current settings from checkboxes to cookie
|
538
573
|
// ---------------------------------------------------------------------------
|
539
574
|
function saveSettings() {
|
540
|
-
var
|
541
|
-
var consentSettings
|
575
|
+
var translationSettings = gatherOptions();
|
576
|
+
var consentSettings = JSON.parse(Cookie.get(self.props.cookieConsentName));
|
542
577
|
|
543
578
|
// update all cookies required for (google-)translation
|
544
579
|
//
|
545
|
-
|
546
|
-
consentSettings
|
547
|
-
consentSettings.analysis = settings.analysis;
|
548
|
-
consentSettings.personalization = settings.personalization;
|
580
|
+
consentSettings.analysis = translationSettings.analysis;
|
581
|
+
consentSettings.personalization = translationSettings.personalization;
|
549
582
|
|
550
583
|
Cookie.set(
|
551
584
|
self.props.cookieConsentName,
|
552
585
|
JSON.stringify(consentSettings),
|
553
586
|
self.props.cookieStorageDays,
|
554
|
-
self.props.
|
555
|
-
self.props.
|
587
|
+
self.props.cookieSameSite,
|
588
|
+
self.props.cookieDomain,
|
589
|
+
self.props.cookieSecure
|
556
590
|
);
|
557
591
|
Cookie.set(
|
558
592
|
self.props.cookieName,
|
559
|
-
JSON.stringify(
|
593
|
+
JSON.stringify(translationSettings),
|
560
594
|
self.props.cookieStorageDays,
|
561
|
-
self.props.
|
562
|
-
self.props.
|
595
|
+
self.props.cookieSameSite,
|
596
|
+
self.props.cookieDomain,
|
597
|
+
self.props.cookieSecure
|
563
598
|
);
|
564
599
|
self.$modal.modal('hide');
|
565
600
|
}
|
@@ -12,4 +12,4 @@
|
|
12
12
|
# See: https://github.com/jekyll-one/J1 Template/blob/master/LICENSE
|
13
13
|
# -----------------------------------------------------------------------------
|
14
14
|
*/
|
15
|
-
"use strict";function Translator(d){var
|
15
|
+
"use strict";function Translator(d){var q=this;var w=log4javascript.getLogger("j1.core.translator");var m=new liteURL(window.location.href);var c=(m.protocol.includes("https"))?true:false;var r=false;var h;var u;var g={set:function(x,D,F,A,E,B){var C=window.btoa(D);var y="; expires=Thu, 01 Jan 1970 00:00:00 UTC";if(F>0){var z=new Date();z.setTime(z.getTime()+(F*24*60*60*1000));y="; expires="+z.toUTCString()}if(B){document.cookie=x+"="+(C||"")+y+"; Path=/; SameSite="+A+"; Domain="+E+"; Secure="+B+";"}else{document.cookie=x+"="+(C||"")+y+"; Path=/; SameSite="+A+";Domain="+E+"; "}},get:function(y){var B=y+"=";var x=document.cookie.split(";");for(var z=0;z<x.length;z++){var D=x[z];while(D.charAt(0)===" "){D=D.substring(1,D.length)}if(D.indexOf(B)===0){var C=D.substring(B.length,D.length);var A=window.atob(C);return A}}return undefined}};w.info("\ninitializing core module: started");w.info("\nstate: started");this.props={contentURL:"/assets/data/translator",cookieName:"j1.user.state",cookieConsentName:"j1.user.consent",cookieStorageDays:365,cookieSameSite:"Lax",cookieSecure:c,translationEnabled:false,disableLanguageSelector:false,translatorName:"google",translationLanguages:"all",translationLanguage:"auto",translateAllPages:true,hideSuggestionBox:true,hidePoweredBy:true,hideTopFrame:true,dialogLanguage:"content",dialogLanguages:["en","de"],dialogContainerID:"translator-modal",xhrDataElement:"",postSelectionCallback:"",};for(var f in d){this.props[f]=d[f]}if(this.props.dialogLanguage.indexOf("-")!==-1){this.props.dialogLanguage=this.props.dialogLanguage.split("-")[0]}if(!this.props.dialogLanguages.includes(this.props.dialogLanguage)){this.props.dialogLanguage=this.props.dialogLanguages[0]}this.props.xhrDataElement=this.props.xhrDataElement+"-"+this.props.dialogLanguage;w.info("\ninitializing core module: started");w.info("\nstate: started");var s={translatorName:"google",translationEnabled:false,translateAllPages:true,useLanguageFromBrowser:true,translationLanguage:"de",analysis:true,personalization:true};var e=g.get(q.props.cookieName);if(!e){w.info("\ninitializing translator cookie: "+q.props.cookieName);g.set(q.props.cookieName,JSON.stringify(s),q.props.cookieStorageDays,q.props.cookieSameSite,q.props.cookieDomain,q.props.cookieSecure)}var o={documentReady:function(x){if(document.readyState!=="loading"){x()}else{document.addEventListener("DOMContentLoaded",x)}}};function v(){var x={};var y=false;var z=0;var A=arguments.length;if(Object.prototype.toString.call(arguments[0])==="[object Boolean]"){y=arguments[0];z++}var C=function(D){for(var E in D){if(Object.prototype.hasOwnProperty.call(D,E)){if(y&&Object.prototype.toString.call(D[E])==="[object Object]"){x[E]=v(true,x[E],D[E])}else{x[E]=D[E]}}}};for(;z<A;z++){var B=arguments[z];C(B)}return x}function i(C,z){var x=Array.prototype.slice.call(arguments,2);var B=C.split(".");var A=B.pop();for(var y=0;y<B.length;y++){z=z[B[y]]}return z[A].apply(z,x)}function k(y){var x;var z=v({size:0,width:250,multiple:false,selectedIndex:1,enableAutoFilter:false,visibleRows:null,},y);x="#"+z.selector;$.ajax({url:z.url,dataType:"json",success:function(C){var B=[];if(q.props.translationLanguages.includes("all")){B=C[z.elm]}else{for(var A=0;A<C[z.elm].length;A++){if(q.props.translationLanguages.includes(C[z.elm][A].value)){B.push(C[z.elm][A])}}}if(z.visibleRows>B.length){z.visibleRows=B.length}MsDropdown.make(x,{byJson:{data:B,name:z.name,size:z.size,width:z.width,multiple:z.multiple,},enableAutoFilter:z.enableAutoFilter,visibleRows:z.visibleRows,})},error:function(A,C,B){w.error("\nfailed to retrieve JSON data from: "+z.url)}})}function n(){o.documentReady(function(){q.modal=document.getElementById(q.props.dialogContainerID);if(!q.modal){w.info("\nload consent modal");q.modal=document.createElement("div");q.modal.id=q.props.dialogContainerID;q.modal.style.display="none";q.modal.setAttribute("class","modal fade");q.modal.setAttribute("tabindex","-1");q.modal.setAttribute("role","dialog");q.modal.setAttribute("aria-labelledby",q.props.dialogContainerID);document.body.append(q.modal);q.$modal=$(q.modal);q.$modal.on("show.bs.modal",function(){var y;var z;w.info("\nshow.bs.modal: entered");$.when(k({url:"/assets/data/iso-639-language-codes-flags.json",elm:"iso-639-languages",selector:"dropdownJSON",width:400,visibleRows:8,})).then(function(A){w.info("\ncreating msDropdown from JSON data: finished")})});q.$modal.on("shown.bs.modal",function(){var y;var z;z=setInterval(function(){if(typeof document.getElementById("dropdownJSON").msDropdown!=="undefined"){y=document.getElementById("dropdownJSON").msDropdown;if(!y.length){w.error("\nno msDropdown found in translation dialog");q.$modal.hide()}else{if(q.props.translationLanguage==="auto"){h=navigator.language||navigator.userLanguage;u=h.split("-")[0]}else{u=q.props.translationLanguage}y.selectedIndex=$("#dropdownJSON option[value="+u+"]").index();if(q.props.disableLanguageSelector){y.disabled=true}$("#dropdownJSON").show();$("body").addClass("stop-scrolling");w.info("\nmsDropdown successfully loaded in translation dialog");clearInterval(z)}}},25)});q.$modal.on("hidden.bs.modal",function(){$("body").removeClass("stop-scrolling");i(q.props.postSelectionCallback,window)});var x=q.props.contentURL+"/index.html";$.get(x).done(function(y){w.info("\nloading consent modal: successfully");q.modal.innerHTML=y;q.modal.innerHTML=$("#"+q.props.xhrDataElement).eq(0).html();q.modal.style.display="block";$(q.modal).modal({backdrop:"static",keyboard:false});q.$buttonDoNotAgree=$("#translator-buttonDoNotAgree");q.$buttonAgree=$("#translator-buttonAgree");q.$buttonSave=$("#translator-buttonSave");q.$buttonAgreeAll=$("#translator-buttonAgreeAll");w.info("\nload/initialze options from cookie");l();j();$("#google-options").on("hide.bs.collapse",function(){r=false;l()}).on("show.bs.collapse",function(){r=true;l()});w.info("\ninitialze button event handler");q.$buttonDoNotAgree.click(function(){b()});q.$buttonAgree.click(function(){p()});q.$buttonSave.click(function(){$("#google-options").collapse("hide");t();j()});q.$buttonAgreeAll.click(function(){$("#google-options").collapse("hide");p()});q.$modal.modal("show")}).fail(function(){w.error("\nloading translator dialog (modal): failed");w.warn("\nprobably no|wrong `contentURL` set")})}else{q.$modal.modal("show")}}.bind(this))}function j(){var z=q.getSettings();if(z){for(var y in z){var x=q.$modal.find("#google-options .translator-option[data-name="+y+'] input[type="checkbox"]');x.prop("checked",z[y])}}}function l(){if(r){q.$buttonDoNotAgree.hide();q.$buttonAgree.hide();q.$buttonSave.show();q.$buttonAgreeAll.show()}else{q.$buttonDoNotAgree.show();q.$buttonAgree.show();q.$buttonSave.hide();q.$buttonAgreeAll.hide()}}function a(y){var x=q.$modal.find("#google-options .translator-option");var A={};for(var B=0;B<x.length;B++){var D=x[B];var z=D.getAttribute("data-name");if(z==="necessary"){A[z]=true}else{if(y===undefined){var C=$(D).find('input[type="checkbox"]');A[z]=C.prop("checked")}else{A[z]=!!y}}}return A}function p(){var x=JSON.parse(g.get(q.props.cookieConsentName));var y=JSON.parse(g.get(q.props.cookieName));y.analysis=true;y.personalization=true;y.translationEnabled=true;x.analysis=y.analysis;x.personalization=y.personalization;g.set(q.props.cookieConsentName,JSON.stringify(x),q.props.cookieStorageDays,q.props.cookieSameSite,q.props.cookieDomain,q.props.cookieSecure);g.set(q.props.cookieName,JSON.stringify(y),q.props.cookieStorageDays,q.props.cookieSameSite,q.props.cookieDomain,q.props.cookieSecure);q.$modal.modal("hide")}function b(){var x=a();x.translationEnabled=false;g.set(q.props.cookieName,JSON.stringify(x),q.props.cookieStorageDays,q.props.cookieSameSite,q.props.cookieDomain,q.props.cookieSecure);q.$modal.modal("hide")}function t(){var y=a();var x=JSON.parse(g.get(q.props.cookieConsentName));x.analysis=y.analysis;x.personalization=y.personalization;g.set(q.props.cookieConsentName,JSON.stringify(x),q.props.cookieStorageDays,q.props.cookieSameSite,q.props.cookieDomain,q.props.cookieSecure);g.set(q.props.cookieName,JSON.stringify(y),q.props.cookieStorageDays,q.props.cookieSameSite,q.props.cookieDomain,q.props.cookieSecure);q.$modal.modal("hide")}this.showDialog=function(){n()};this.getSettings=function(y){var x=g.get(q.props.cookieName);if(x){var z=JSON.parse(g.get(q.props.cookieName));if(y===undefined){return z}else{if(z){return z[y]}else{return false}}}else{return undefined}};w.info("\ninitializing core module finished");w.info("\nstate: finished")};
|
data/lib/j1/version.rb
CHANGED
data/lib/starter_web/Gemfile
CHANGED
@@ -53,7 +53,7 @@ gem 'jekyll', '~> 4.2'
|
|
53
53
|
|
54
54
|
# Theme Rubies, default: J1 Template (NOT used for the development system)
|
55
55
|
#
|
56
|
-
gem 'j1-template', '~> 2022.0.
|
56
|
+
gem 'j1-template', '~> 2022.0.9'
|
57
57
|
|
58
58
|
# ------------------------------------------------------------------------------
|
59
59
|
# PRODUCTION: Gem needed for the Jekyll and J1 prod environment
|
data/lib/starter_web/_config.yml
CHANGED
@@ -53,7 +53,7 @@ environment: development
|
|
53
53
|
# ------------------------------------------------------------------------------
|
54
54
|
# Sets the build version of J1 Template Gem
|
55
55
|
#
|
56
|
-
version: 2022.0.
|
56
|
+
version: 2022.0.9
|
57
57
|
|
58
58
|
# version
|
59
59
|
# ------------------------------------------------------------------------------
|
@@ -729,7 +729,7 @@ defaults:
|
|
729
729
|
follow: false
|
730
730
|
|
731
731
|
personalization: false
|
732
|
-
exclude_from_search:
|
732
|
+
exclude_from_search: true
|
733
733
|
|
734
734
|
analytics: false
|
735
735
|
comments: false
|
@@ -737,7 +737,6 @@ defaults:
|
|
737
737
|
youtube: false
|
738
738
|
vimeo: false
|
739
739
|
|
740
|
-
|
741
740
|
# ==============================================================================
|
742
741
|
# 6. LAYOUT configuration
|
743
742
|
#
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# ------------------------------------------------------------------------------
|
2
|
+
# ~/_data/modules/cookies.yml
|
3
|
+
# User configuration settings for J1 Cookie 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
|
+
# Description (used for J1 CC only)
|
16
|
+
#
|
17
|
+
description:
|
18
|
+
|
19
|
+
title: Cookies
|
20
|
+
scope: User settings
|
21
|
+
location: _data/modules/cookies.yml
|
22
|
+
|
23
|
+
# ------------------------------------------------------------------------------
|
24
|
+
# User configuration settings
|
25
|
+
#
|
26
|
+
settings:
|
27
|
+
check_cookies: true
|
28
|
+
|
29
|
+
# ------------------------------------------------------------------------------
|
30
|
+
# END config
|
@@ -31,9 +31,9 @@ defaults:
|
|
31
31
|
dialogLanguage: content # auto|content|one of dialogLanguages
|
32
32
|
dialogLanguages: [en, de] # supported dialog (modal) languages, defaults to FIRST language defined by languages
|
33
33
|
contentURL: /assets/data/cookieconsent # dialog content (modals) for all supported languages
|
34
|
-
cookieName:
|
35
|
-
cookieStorageDays:
|
36
|
-
cookieSameSite:
|
34
|
+
# cookieName: j1.user.consent # name of the user consent cookie
|
35
|
+
# cookieStorageDays: 365 # duration the consent cookie is stored
|
36
|
+
# cookieSameSite: Strict # restrict consent cookie to first-party, do NOT send cookie to other domains
|
37
37
|
reloadPageOnChange: true # reload current page if user settings has been changed
|
38
38
|
whitelisted: [ '/pages/public/legal/en/privacy' ] # pages NO consent issued, currently NOT supported
|
39
39
|
xhrDataElement: consent-data # container for all language-specific consent modals (taken from contentURL)
|