j1-template 2022.0.4 → 2022.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/_layouts/default.html +34 -75
- 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 +53 -25
- data/assets/themes/j1/adapter/js/j1.js +81 -196
- data/assets/themes/j1/adapter/js/themer.js +0 -1
- data/assets/themes/j1/adapter/js/translator.js +107 -56
- 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 +5 -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 +103 -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 = {};
|
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={};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.8'
|
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.8
|
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
|
+
expires: 365
|
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)
|