j1-template 2021.1.13 → 2021.1.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/footer/boxes/issue.proc +28 -5
  3. data/_includes/themes/j1/blocks/footer/boxes/legal_statements.proc +66 -23
  4. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +0 -1
  5. data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +16 -1
  6. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +197 -219
  7. data/_includes/themes/j1/layouts/content_generator_collection.html +4 -2
  8. data/_includes/themes/j1/layouts/content_generator_post.html +34 -24
  9. data/_includes/themes/j1/layouts/layout_metadata_generator.html +30 -7
  10. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +2 -2
  11. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +27 -5
  12. data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
  13. data/_includes/themes/j1/procedures/posts/pager.proc +123 -0
  14. data/_layouts/default.html +2 -2
  15. data/assets/data/authclient.html +1 -0
  16. data/assets/data/banner.html +1 -0
  17. data/assets/data/carousel.json +1 -0
  18. data/assets/data/cookieconsent.html +1 -2
  19. data/assets/data/fam.html +1 -0
  20. data/assets/data/footer.html +1 -0
  21. data/assets/data/galleries.json +1 -0
  22. data/assets/data/gallery_customizer.html +1 -0
  23. data/assets/data/mdi_icons.json +1 -0
  24. data/assets/data/menu.html +2 -1
  25. data/assets/data/mmenu.html +1 -0
  26. data/assets/data/mmenu_sidebar.html +1 -0
  27. data/assets/data/mmenu_toc.html +21 -1
  28. data/assets/data/panel.html +29 -7
  29. data/assets/data/quicklinks.html +1 -0
  30. data/assets/data/themes.json +1 -0
  31. data/assets/data/twa_v1.json +1 -0
  32. data/assets/error_pages/HTTP204.html +17 -2
  33. data/assets/error_pages/HTTP400.html +17 -2
  34. data/assets/error_pages/HTTP401.html +17 -2
  35. data/assets/error_pages/HTTP403.html +17 -2
  36. data/assets/error_pages/HTTP404.html +17 -2
  37. data/assets/error_pages/HTTP444.html +17 -2
  38. data/assets/error_pages/HTTP500.html +17 -2
  39. data/assets/error_pages/HTTP501.html +17 -2
  40. data/assets/error_pages/HTTP502.html +17 -2
  41. data/assets/error_pages/HTTP503.html +17 -3
  42. data/assets/themes/j1/adapter/js/cookieConsent.js +9 -8
  43. data/assets/themes/j1/adapter/js/j1.js +137 -65
  44. data/assets/themes/j1/adapter/js/navigator.js +7 -0
  45. data/assets/themes/j1/adapter/js/themer.js +16 -26
  46. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +21 -42
  47. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
  48. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +2 -288
  49. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +60 -41
  50. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +75 -57
  51. data/lib/j1/version.rb +1 -1
  52. data/lib/starter_web/Gemfile +4 -5
  53. data/lib/starter_web/_config.yml +7 -1
  54. data/lib/starter_web/_data/blocks/footer.yml +52 -20
  55. data/lib/starter_web/_data/blocks/panel.yml +4 -4
  56. data/lib/starter_web/_data/builder/blog_navigator.yml +9 -192
  57. data/lib/starter_web/_data/builder/defaults/blog_navigator.yml +389 -0
  58. data/lib/starter_web/_data/j1_config.yml +55 -39
  59. data/lib/starter_web/_data/locales/be.yml +269 -0
  60. data/lib/starter_web/_data/locales/cs.yml +218 -0
  61. data/lib/starter_web/_data/locales/da.yml +213 -0
  62. data/lib/starter_web/_data/locales/de.yml +222 -0
  63. data/lib/starter_web/_data/locales/el.yml +215 -0
  64. data/lib/starter_web/_data/locales/en.yml +215 -0
  65. data/lib/starter_web/_data/locales/es.yml +219 -0
  66. data/lib/starter_web/_data/locales/et.yml +207 -0
  67. data/lib/starter_web/_data/locales/fi.yml +211 -0
  68. data/lib/starter_web/_data/locales/fr.yml +219 -0
  69. data/lib/starter_web/_data/locales/hr.yml +240 -0
  70. data/lib/starter_web/_data/locales/hu.yml +196 -0
  71. data/lib/starter_web/_data/locales/it.yml +215 -0
  72. data/lib/starter_web/_data/locales/lv.yml +233 -0
  73. data/lib/starter_web/_data/locales/nl.yml +213 -0
  74. data/lib/starter_web/_data/locales/pl.yml +241 -0
  75. data/lib/starter_web/_data/locales/pt.yml +217 -0
  76. data/lib/starter_web/_data/locales/readme +4 -0
  77. data/lib/starter_web/_data/locales/ro.yml +209 -0
  78. data/lib/starter_web/_data/locales/ru.yml +269 -0
  79. data/lib/starter_web/_data/locales/sk.yml +211 -0
  80. data/lib/starter_web/_data/locales/sl.yml +209 -0
  81. data/lib/starter_web/_data/locales/sv.yml +207 -0
  82. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +10 -10
  83. data/lib/starter_web/_data/modules/defaults/quicksearch.yml +6 -5
  84. data/lib/starter_web/_data/modules/defaults/themer.yml +1 -0
  85. data/lib/starter_web/_data/modules/quicksearch.yml +4 -1
  86. data/lib/starter_web/_data/modules/themer.yml +1 -0
  87. data/lib/starter_web/_data/plugins/defaults/paginator.yml +7 -6
  88. data/lib/starter_web/_data/plugins/paginator.yml +3 -0
  89. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  90. data/lib/starter_web/_plugins/date-i18n.rb +67 -0
  91. data/lib/starter_web/_plugins/lunr_index.rb +5 -1
  92. data/lib/starter_web/assets/images/modules/attics/markus-spiske-1920x1280.jpg +0 -0
  93. data/lib/starter_web/assets/images/modules/attics/matthew-dockery-1920x1280.jpg +0 -0
  94. data/lib/starter_web/collections/posts/public/featured/_posts/2020-01-01-about-cookies.adoc +1 -1
  95. data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-01-site-generators.adoc +1 -1
  96. data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-03-about-j1.adoc +1 -1
  97. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +2 -2
  98. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +2 -2
  99. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +2 -2
  100. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +2 -2
  101. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +1 -1
  102. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +1 -1
  103. data/lib/starter_web/index.html +5 -2
  104. data/lib/starter_web/package.json +1 -1
  105. data/lib/starter_web/pages/public/asciidoc_skeletons/book/000_intro.adoc +2 -2
  106. data/lib/starter_web/pages/public/asciidoc_skeletons/book/100_chapter.adoc +2 -2
  107. data/lib/starter_web/pages/public/asciidoc_skeletons/book/200_chapter.adoc +2 -2
  108. data/lib/starter_web/pages/public/asciidoc_skeletons/book/900_references.adoc +2 -2
  109. data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.adoc +2 -2
  110. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/100_chapter.asciidoc +2 -2
  111. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/200_chapter.asciidoc +2 -2
  112. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +2 -2
  113. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +2 -2
  114. data/lib/starter_web/pages/public/blog/navigator/archive.html +82 -17
  115. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +92 -28
  116. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +85 -20
  117. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +98 -41
  118. data/lib/starter_web/pages/public/blog/navigator/index.html +2 -1
  119. data/lib/starter_web/pages/public/learn/quickstart.adoc +473 -0
  120. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
  121. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +2 -2
  122. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -2
  123. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +2 -2
  124. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +2 -2
  125. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +2 -2
  126. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +2 -2
  127. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +2 -2
  128. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +2 -2
  129. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +118 -0
  130. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +90 -0
  131. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +322 -0
  132. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +125 -0
  133. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +8 -5
  134. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +7 -5
  135. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +10 -8
  136. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +36 -18
  137. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +3 -2
  138. data/lib/starter_web/pages/public/previewer/iframer.adoc +1 -1
  139. data/lib/starter_web/pages/public/previewer/rouge.adoc +1 -1
  140. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  141. data/lib/starter_web/utilsrv/package.json +1 -1
  142. metadata +35 -4
  143. data/_includes/themes/j1/procedures/global/pager.proc +0 -79
  144. data/lib/starter_web/pages/public/cookieConsent.adoc +0 -96
@@ -47,16 +47,21 @@
47
47
 
48
48
  var old = $.fn.bootstrapThemeSwitcher;
49
49
 
50
- var cookie_names = j1.getCookieNames();
51
- const user_state_cookie_name = cookie_names.user_state;
50
+ var cookie_names = j1.getCookieNames();
51
+ var gaCookies = j1.findCookie('_ga');
52
+ var j1Cookies = j1.findCookie('j1');
53
+ var url = new liteURL(window.location.href);
54
+ var hostname = url.hostname;
55
+ var domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
56
+ var secure = (url.protocol.includes('https')) ? true : false;
52
57
 
53
58
  var logger = log4javascript.getLogger('j1.core.switcher');
54
59
  var logText;
55
60
 
56
61
  var user_state_detected;
57
- var j1_user_state = {};
58
- var j1_user_state_json;
59
- var j1_user_state_cookie;
62
+ var user_state = {};
63
+ var user_state_json;
64
+ var user_state_cookie;
60
65
 
61
66
  // Constructor
62
67
  // ---------------------------------------------------------------------------
@@ -112,27 +117,29 @@
112
117
  // -------------------------------------------------------------------------
113
118
  switchTheme: function (name, cssFile) {
114
119
 
115
- var $this = $(this);
116
- var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
120
+ var $this = $(this);
121
+ var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
122
+ var id = settings.cssThemeLink;
123
+ var debug = settings.debug;
124
+ var includeCSS = this.settings.includeBootswatch;
117
125
  var themeName;
118
126
  var theme_css;
119
- var theme_extension_css;
120
-
121
- var id = settings.cssThemeLink;
122
- var debug = settings.debug;
123
- var includeCSS = this.settings.includeBootswatch;
124
127
 
125
128
  // detect|set user state cookie
126
- user_state_detected = j1.existsCookie ( 'j1.user.state' );
129
+ user_state_detected = j1.existsCookie (cookie_names.user_state);
127
130
  if ( user_state_detected ) {
128
- logger.debug('\n' + 'cookie found: j1.user.state');
129
- j1_user_state = j1.readCookie(user_state_cookie_name);
131
+ logger.debug('\n' + 'cookie found: ' + cookie_names.user_state);
132
+ user_state = j1.readCookie(cookie_names.user_state);
130
133
  } else {
131
- logger.error('\n' + 'cookie not found: j1.user.state');
134
+ logger.error('\n' + 'cookie not found: ' + cookie_names.user_state);
135
+ logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
136
+ j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
137
+ logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
138
+ gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
132
139
  }
133
140
 
134
- themeName = j1_user_state.theme_name;
135
- theme_css = j1_user_state.theme_css;
141
+ themeName = user_state.theme_name;
142
+ theme_css = user_state.theme_css;
136
143
 
137
144
  if (typeof cssFile === 'undefined') { cssFile = this.settings.defaultCssFile; }
138
145
  if (typeof name === 'undefined') { name = cssFile; }
@@ -146,26 +153,30 @@
146
153
  return false;
147
154
  }
148
155
 
149
- j1_user_state.theme_name = name;
150
- j1_user_state.theme_css = cssFile;
156
+ user_state.theme_name = name;
157
+ user_state.theme_css = cssFile;
151
158
 
152
- if (!(j1_user_state.theme_name.includes('Uno') || j1_user_state.theme_name == 'Bootstrap')) {
153
- j1_user_state.theme_author = 'Bootswatch';
154
- j1_user_state.theme_author_url = 'https://bootswatch.com/';
159
+ if (!(user_state.theme_name.includes('Uno') || user_state.theme_name == 'Bootstrap')) {
160
+ user_state.theme_author = 'Bootswatch';
161
+ user_state.theme_author_url = 'https://bootswatch.com/';
155
162
  } else {
156
- j1_user_state.theme_author = 'J1 Team';
157
- j1_user_state.theme_author_url = 'https://jekyll.one/';
163
+ user_state.theme_author = 'J1 Team';
164
+ user_state.theme_author_url = 'https://jekyll.one/';
158
165
  }
159
166
 
167
+ logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
160
168
  j1.writeCookie({
161
- name: user_state_cookie_name,
162
- data: j1_user_state
169
+ name: cookie_names.user_state,
170
+ data: user_state,
171
+ samesite: 'Strict',
172
+ secure: secure,
173
+ expires: 365
163
174
  });
164
175
 
165
176
  // reload current page (skip cache)
166
177
  location.reload(true);
167
178
  } else {
168
- logger.warn('\n' + 'write to cookie : disabled');
179
+ logger.debug('\n' + 'write to cookie : disabled');
169
180
  logger.warn('\n' + 'selected theme not activated: ' + name);
170
181
  } // END if saveToCookie
171
182
 
@@ -184,17 +195,21 @@
184
195
  var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, options);
185
196
 
186
197
  // detect|set user state cookie
187
- user_state_detected = j1.existsCookie ( 'j1.user.state' );
198
+ user_state_detected = j1.existsCookie (cookie_names.user_state);
188
199
 
189
200
  if ( user_state_detected ) {
190
- logger.info('\n' + 'cookie found: j1.user.state');
191
- j1_user_state = j1.readCookie(user_state_cookie_name);
201
+ logger.info('\n' + 'cookie found: ' + cookie_names.user_state);
202
+ user_state = j1.readCookie(cookie_names.user_state);
192
203
  } else {
193
- logger.error('\n' + 'cookie not found: j1.user.state');
204
+ logger.error('\n' + 'cookie not found: ' + cookie_names.user_state);
205
+ logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
206
+ j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
207
+ logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
208
+ gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
194
209
  }
195
210
 
196
- var themeName = j1_user_state.theme_name;
197
- var themeCss = j1_user_state.theme_css;
211
+ var themeName = user_state.theme_name;
212
+ var themeCss = user_state.theme_css;
198
213
  this.switchTheme(themeName, themeCss);
199
214
 
200
215
  }, // END loadThemeFromCookie
@@ -247,22 +262,26 @@
247
262
  var base = this;
248
263
 
249
264
  if (this.$element.is('ul')) {
250
- var $this = $(this);
251
- var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
252
- var id = settings.cssThemeLink;
265
+ var $this = $(this);
266
+ var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
267
+ var id = settings.cssThemeLink;
268
+ var debug = settings.debug;
253
269
  var themeName;
254
- var debug = settings.debug;
255
270
 
256
271
  // detect|set user state cookie
257
- user_state_detected = j1.existsCookie ( 'j1.user.state' );
272
+ user_state_detected = j1.existsCookie (cookie_names.user_state);
258
273
  if ( user_state_detected ) {
259
274
  logger.debug('\n' + 'user state cookie found');
260
- j1_user_state = j1.readCookie(user_state_cookie_name);
275
+ user_state = j1.readCookie(cookie_names.user_state);
261
276
  } else {
262
277
  logger.error('\n' + 'user state NOT cookie found');
278
+ logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
279
+ j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
280
+ logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
281
+ gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
263
282
  }
264
283
 
265
- themeName = j1_user_state.theme_name;
284
+ themeName = user_state.theme_name;
266
285
 
267
286
  if ( debug === 'true' ) {
268
287
  logger.debug('\n' + 'bootstrapThemeSelector: UL element selected');
@@ -47,16 +47,21 @@
47
47
 
48
48
  var old = $.fn.bootstrapThemeSwitcher;
49
49
 
50
- var cookie_names = j1.getCookieNames();
51
- const user_state_cookie_name = cookie_names.user_state;
50
+ var cookie_names = j1.getCookieNames();
51
+ var gaCookies = j1.findCookie('_ga');
52
+ var j1Cookies = j1.findCookie('j1');
53
+ var url = new liteURL(window.location.href);
54
+ var hostname = url.hostname;
55
+ var domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
56
+ var secure = (url.protocol.includes('https')) ? true : false;
52
57
 
53
58
  var logger = log4javascript.getLogger('j1.core.switcher');
54
59
  var logText;
55
60
 
56
61
  var user_state_detected;
57
- var j1_user_state = {};
58
- var j1_user_state_json;
59
- var j1_user_state_cookie;
62
+ var user_state = {};
63
+ var user_state_json;
64
+ var user_state_cookie;
60
65
 
61
66
  // Constructor
62
67
  // ---------------------------------------------------------------------------
@@ -75,13 +80,13 @@
75
80
  // ---------------------------------------------------------------------------
76
81
  BootstrapThemeSwitcher.prototype = {
77
82
  clear: function () {
78
- logger.debug('bootstrapThemeSwitcher.clear');
83
+ logger.debug('\n' + 'bootstrapThemeSwitcher.clear');
79
84
  return this.$element.each(function () {
80
85
  this.$element.empty();
81
86
  });
82
87
  },
83
88
  update: function () {
84
- logger.debug('bootstrapThemeSwitcher.update');
89
+ logger.debug('\n' + 'bootstrapThemeSwitcher.update');
85
90
  this.getThemes();
86
91
  },
87
92
 
@@ -112,27 +117,29 @@
112
117
  // -------------------------------------------------------------------------
113
118
  switchTheme: function (name, cssFile) {
114
119
 
115
- var $this = $(this);
116
- var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
120
+ var $this = $(this);
121
+ var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
122
+ var id = settings.cssThemeLink;
123
+ var debug = settings.debug;
124
+ var includeCSS = this.settings.includeBootswatch;
117
125
  var themeName;
118
126
  var theme_css;
119
- var theme_extension_css;
120
-
121
- var id = settings.cssThemeLink;
122
- var debug = settings.debug;
123
- var includeCSS = this.settings.includeBootswatch;
124
127
 
125
128
  // detect|set user state cookie
126
- user_state_detected = j1.existsCookie ( 'j1.user.state' );
129
+ user_state_detected = j1.existsCookie (cookie_names.user_state);
127
130
  if ( user_state_detected ) {
128
- logger.debug('cookie found: j1.user.state');
129
- j1_user_state = j1.readCookie(user_state_cookie_name);
131
+ logger.debug('\n' + 'cookie found: ' + cookie_names.user_state);
132
+ user_state = j1.readCookie(cookie_names.user_state);
130
133
  } else {
131
- logger.error('cookie not found: j1.user.state');
134
+ logger.error('\n' + 'cookie not found: ' + cookie_names.user_state);
135
+ logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
136
+ j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
137
+ logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
138
+ gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
132
139
  }
133
140
 
134
- themeName = j1_user_state.theme_name;
135
- theme_css = j1_user_state.theme_css;
141
+ themeName = user_state.theme_name;
142
+ theme_css = user_state.theme_css;
136
143
 
137
144
  if (typeof cssFile === 'undefined') { cssFile = this.settings.defaultCssFile; }
138
145
  if (typeof name === 'undefined') { name = cssFile; }
@@ -141,33 +148,36 @@
141
148
  if (settings.saveToCookie) {
142
149
  if ( typeof Cookies === 'undefined' ) {
143
150
  if ( debug === 'true' ) {
144
- logger.error('cookies library not present');
151
+ logger.error('\n' + 'cookies library not present');
145
152
  }
146
153
  return false;
147
154
  }
148
155
 
149
- j1_user_state.theme_name = name;
150
- j1_user_state.theme_css = cssFile;
156
+ user_state.theme_name = name;
157
+ user_state.theme_css = cssFile;
151
158
 
152
- if (!(j1_user_state.theme_name.includes('Uno') || j1_user_state.theme_name == 'Bootstrap')) {
153
- j1_user_state.theme_author = 'Bootswatch';
154
- j1_user_state.theme_author_url = 'https://bootswatch.com/';
159
+ if (!(user_state.theme_name.includes('Uno') || user_state.theme_name == 'Bootstrap')) {
160
+ user_state.theme_author = 'Bootswatch';
161
+ user_state.theme_author_url = 'https://bootswatch.com/';
155
162
  } else {
156
- j1_user_state.theme_author = 'J1 Team';
157
- j1_user_state.theme_author_url = 'https://jekyll.one/';
163
+ user_state.theme_author = 'J1 Team';
164
+ user_state.theme_author_url = 'https://jekyll.one/';
158
165
  }
159
166
 
167
+ logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
160
168
  j1.writeCookie({
161
- name: user_state_cookie_name,
162
- data: j1_user_state
169
+ name: cookie_names.user_state,
170
+ data: user_state,
171
+ samesite: 'Strict',
172
+ secure: secure,
173
+ expires: 365
163
174
  });
164
175
 
165
- // force reload the page from the server (skip cache)
166
- // and detect selected theme from cookie
176
+ // reload current page (skip cache)
167
177
  location.reload(true);
168
178
  } else {
169
- logger.warn('write to cookie : disabled');
170
- logger.warn('selected theme not activated: ' + name);
179
+ logger.debug('\n' + 'write to cookie : disabled');
180
+ logger.warn('\n' + 'selected theme not activated: ' + name);
171
181
  } // END if saveToCookie
172
182
 
173
183
  }, // END switchTheme
@@ -178,24 +188,28 @@
178
188
  loadThemeFromCookie: function (options) {
179
189
 
180
190
  if ( typeof Cookies === 'undefined' ) {
181
- logger.error('cookies library not present');
191
+ logger.error('\n' + 'cookies library not present');
182
192
  return false;
183
193
  }
184
194
 
185
195
  var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, options);
186
196
 
187
197
  // detect|set user state cookie
188
- user_state_detected = j1.existsCookie ( 'j1.user.state' );
198
+ user_state_detected = j1.existsCookie (cookie_names.user_state);
189
199
 
190
200
  if ( user_state_detected ) {
191
- logger.info('cookie found: j1.user.state');
192
- j1_user_state = j1.readCookie(user_state_cookie_name);
201
+ logger.info('\n' + 'cookie found: ' + cookie_names.user_state);
202
+ user_state = j1.readCookie(cookie_names.user_state);
193
203
  } else {
194
- logger.error('cookie not found: j1.user.state');
204
+ logger.error('\n' + 'cookie not found: ' + cookie_names.user_state);
205
+ logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
206
+ j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
207
+ logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
208
+ gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
195
209
  }
196
210
 
197
- var themeName = j1_user_state.theme_name;
198
- var themeCss = j1_user_state.theme_css;
211
+ var themeName = user_state.theme_name;
212
+ var themeCss = user_state.theme_css;
199
213
  this.switchTheme(themeName, themeCss);
200
214
 
201
215
  }, // END loadThemeFromCookie
@@ -215,11 +229,11 @@
215
229
  // -------------------------------------------------------------------------
216
230
  addThemesToControl: function() {
217
231
  if (typeof this.$element === 'undefined') {
218
- logger.error('bootstrapThemeSelector|addThemesToControl: Element is undefined');
232
+ logger.error('\n' + 'bootstrapThemeSelector|addThemesToControl: Element is undefined');
219
233
  return false;
220
234
  }
221
235
  if (typeof this.themesList === 'undefined') {
222
- logger.error('bootstrapThemeSelector|addThemesToControl: Themes is undefined');
236
+ logger.error('\n' + 'bootstrapThemeSelector|addThemesToControl: Themes is undefined');
223
237
  return false;
224
238
  }
225
239
 
@@ -248,25 +262,29 @@
248
262
  var base = this;
249
263
 
250
264
  if (this.$element.is('ul')) {
251
- var $this = $(this);
252
- var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
253
- var id = settings.cssThemeLink;
265
+ var $this = $(this);
266
+ var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
267
+ var id = settings.cssThemeLink;
268
+ var debug = settings.debug;
254
269
  var themeName;
255
- var debug = settings.debug;
256
270
 
257
271
  // detect|set user state cookie
258
- user_state_detected = j1.existsCookie ( 'j1.user.state' );
272
+ user_state_detected = j1.existsCookie (cookie_names.user_state);
259
273
  if ( user_state_detected ) {
260
- logger.debug('User state cookie found');
261
- j1_user_state = j1.readCookie(user_state_cookie_name);
274
+ logger.debug('\n' + 'user state cookie found');
275
+ user_state = j1.readCookie(cookie_names.user_state);
262
276
  } else {
263
- logger.error('User state NOT cookie found');
277
+ logger.error('\n' + 'user state NOT cookie found');
278
+ logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
279
+ j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
280
+ logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
281
+ gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
264
282
  }
265
283
 
266
- themeName = j1_user_state.theme_name;
284
+ themeName = user_state.theme_name;
267
285
 
268
286
  if ( debug === 'true' ) {
269
- logger.debug('bootstrapThemeSelector: UL element selected');
287
+ logger.debug('\n' + 'bootstrapThemeSelector: UL element selected');
270
288
  }
271
289
  this.$element.empty();
272
290
 
@@ -306,7 +324,7 @@
306
324
  });
307
325
 
308
326
  } else if (this.$element.is('select')) {
309
- logger.debug('bootstrapThemeSelector: SELECT element selected');
327
+ logger.debug('\n' + 'bootstrapThemeSelector: SELECT element selected');
310
328
  this.$element.empty();
311
329
 
312
330
  var optionSelectedMarker;
@@ -328,8 +346,8 @@
328
346
 
329
347
  } else {
330
348
  // no container found to add Theme list
331
- logger.info('bootstrapThemeSelector: no UL or SELECT element found');
332
- logger.error('bootstrapThemeSelector: failed');
349
+ logger.info('\n' + 'bootstrapThemeSelector: no UL or SELECT element found');
350
+ logger.error('\n' + 'bootstrapThemeSelector: failed');
333
351
  // console.warn('bootstrapThemeSelector only works with ul or select elements');
334
352
  }
335
353
  }, // END addThemesToControl
@@ -352,7 +370,7 @@
352
370
  base.addThemesToControl();
353
371
  },
354
372
  error: function (jqXHR, textStatus, errorThrown) {
355
- logger.error('Failed to retrieve the local feed from: \'' + base.settings.localFeed + '\'');
373
+ logger.error('\n' + 'failed to retrieve the local feed from: \'' + base.settings.localFeed + '\'');
356
374
  }
357
375
  });
358
376
  } else {
data/lib/j1/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module J1
2
- VERSION = '2021.1.13'
2
+ VERSION = '2021.1.18'
3
3
  end
@@ -32,8 +32,7 @@
32
32
  # gem cleanup
33
33
  #
34
34
  # ------------------------------------------------------------------------------
35
- source "https://rubygems.org"
36
- ruby RUBY_VERSION
35
+ source 'https://rubygems.org'
37
36
 
38
37
  # ------------------------------------------------------------------------------
39
38
  # Jekyll
@@ -54,7 +53,7 @@ gem 'jekyll', '~> 4.2'
54
53
 
55
54
  # Theme Rubies, default: J1 Template (NOT used for the development system)
56
55
  #
57
- gem 'j1-template', '~> 2021.1.13'
56
+ gem 'j1-template', '~> 2021.1.18'
58
57
 
59
58
  # ------------------------------------------------------------------------------
60
59
  # PRODUCTION: Gem needed for the Jekyll and J1 prod environment
@@ -121,7 +120,7 @@ group :jekyll_plugins do
121
120
  # gem 'jekyll-redirect-from', '>= 0.16.0' # Useful ???
122
121
  # gem 'jekyll-sass-converter', '>= 2.1.0' # Used if SASS (file) conversion is enabled
123
122
  gem 'jekyll-sitemap', '>= 1.2.0'
124
- gem 'j1-paginator', '>= 2021.1.0' # New version !!!
123
+ gem 'j1-paginator', '>= 2021.1.1' # New version !!!
125
124
  end
126
125
 
127
126
  # ------------------------------------------------------------------------------
@@ -167,7 +166,7 @@ end
167
166
  # running # tasks defined by a Rakefile prior running the app|web.
168
167
  #
169
168
  # gem 'passenger', '>= 5.3'
170
- gem "puma", '>= 4.3.1'
169
+ gem 'puma', '>= 4.3.1'
171
170
 
172
171
  # ------------------------------------------------------------------------------
173
172
  # If J1 is transformed into a (Rack and Sinatra based) Web