j1_template_mde 2018.4.31 → 2018.4.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/layout_metadata_generator.html +5 -6
  3. data/_includes/themes/j1/layouts/layout_shim_generator.html +20 -2
  4. data/_includes/themes/j1/layouts/layout_theme_generator.html +2 -2
  5. data/_includes/themes/j1/modules/connectors/{analytic/google → ad/custom-provider.html} +7 -16
  6. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +6 -6
  7. data/_includes/themes/j1/modules/connectors/ads +23 -8
  8. data/_includes/themes/j1/modules/connectors/analytic/custom-provider.html +32 -0
  9. data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +38 -0
  10. data/_includes/themes/j1/modules/connectors/analytics +16 -17
  11. data/_includes/themes/j1/modules/connectors/comment/custom-provider.html +31 -0
  12. data/_includes/themes/j1/modules/connectors/comment/disqus.html +3 -3
  13. data/_includes/themes/j1/modules/connectors/comment/facebook.html +31 -0
  14. data/_includes/themes/j1/modules/connectors/comments +14 -12
  15. data/_includes/themes/j1/modules/connectors/sharing +3 -10
  16. data/_includes/themes/j1/modules/navigator/generator.html +17 -12
  17. data/_includes/themes/j1/modules/navigator/procedures/quicklinks.proc +37 -27
  18. data/_includes/themes/j1/modules/navigator/procedures/sidebar.proc +3 -3
  19. data/_includes/themes/j1/procedures/layouts/module_writer.proc +4 -4
  20. data/_includes/themes/j1/procedures/layouts/resource_writer.proc +6 -6
  21. data/lib/j1/version.rb +1 -1
  22. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.before_merge_added.rb +1267 -0
  23. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.update.web_cookie.rb +1333 -0
  24. data/lib/j1_app/j1_auth_manager/_unused/auth_manager_ui.2.erb +198 -0
  25. data/lib/j1_app/j1_auth_manager/_unused/auth_manager_ui.additional_inits.erb +254 -0
  26. data/lib/j1_app/j1_auth_manager/auth_manager.rb +361 -275
  27. data/lib/j1_app/j1_auth_manager/config.rb +9 -9
  28. data/lib/j1_app/j1_auth_manager/helpers.rb +60 -2
  29. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +123 -37
  30. data/lib/starter_web/Gemfile +1 -1
  31. data/lib/starter_web/_config.yml +42 -32
  32. data/lib/starter_web/_data/j1_config.yml +46 -56
  33. data/lib/starter_web/_data/j1_resources.yml +25 -5
  34. data/lib/starter_web/_data/layouts/default.yml +10 -0
  35. data/lib/starter_web/_data/modules/j1_cookie_consent.yml +120 -0
  36. data/lib/starter_web/_data/modules/j1_log4javascript.yml +24 -22
  37. data/lib/starter_web/_data/modules/j1_navigator.yml +61 -50
  38. data/lib/starter_web/_data/modules/j1_navigator_menu.yml +32 -11
  39. data/lib/starter_web/_data/tables/country.asciidoc +252 -0
  40. data/lib/starter_web/assets/data/_authclient.html +365 -0
  41. data/lib/starter_web/assets/data/authclient.html +213 -222
  42. data/lib/starter_web/assets/data/cookie_consent.html +261 -0
  43. data/lib/starter_web/assets/data/countries.json +974 -0
  44. data/lib/starter_web/assets/data/footer.html +17 -26
  45. data/lib/starter_web/assets/data/menu.html +20 -21
  46. data/lib/starter_web/assets/images/icons/j1/scalable/j1v2.svg +1 -1
  47. data/lib/starter_web/assets/images/master_header/admin-bootstrap.jpg +0 -0
  48. data/lib/starter_web/assets/images/pages/roundtrip/package.json +16 -16
  49. data/lib/starter_web/assets/themes/j1/core/css/theme_extensions.css +1313 -1219
  50. data/lib/starter_web/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  51. data/lib/starter_web/assets/themes/j1/core/css/uno.css +1251 -1219
  52. data/lib/starter_web/assets/themes/j1/core/css/uno.min.css +1 -1
  53. data/lib/starter_web/assets/themes/j1/core/css/vendor.css +72 -72
  54. data/lib/starter_web/assets/themes/j1/core/css/vendor.min.css +2 -2
  55. data/lib/starter_web/assets/themes/j1/core/js/adapter/algolia.js +1 -1
  56. data/lib/starter_web/assets/themes/j1/core/js/adapter/back2top.js +1 -1
  57. data/lib/starter_web/assets/themes/j1/core/js/adapter/bs_gallery.js +1 -1
  58. data/lib/starter_web/assets/themes/j1/core/js/adapter/cookie_consent.js +345 -0
  59. data/lib/starter_web/assets/themes/j1/core/js/adapter/custom.js +1 -1
  60. data/lib/starter_web/assets/themes/j1/core/js/adapter/lightbox.js +1 -1
  61. data/lib/starter_web/assets/themes/j1/core/js/adapter/logger.js +1 -1
  62. data/lib/starter_web/assets/themes/j1/core/js/adapter/master_header.js +1 -1
  63. data/lib/starter_web/assets/themes/j1/core/js/adapter/navigator.js +254 -190
  64. data/lib/starter_web/assets/themes/j1/core/js/adapter/scroller.js +1 -1
  65. data/lib/starter_web/assets/themes/j1/core/js/adapter/searcher.js +1 -1
  66. data/lib/starter_web/assets/themes/j1/core/js/adapter/stickybits.js +1 -1
  67. data/lib/starter_web/assets/themes/j1/core/js/adapter/switcher.js +1 -1
  68. data/lib/starter_web/assets/themes/j1/core/js/adapter/template.js +432 -97
  69. data/lib/starter_web/assets/themes/j1/core/js/adapter/toccer.js +1 -1
  70. data/lib/starter_web/assets/themes/j1/core/js/template.js +15 -15
  71. data/lib/starter_web/assets/themes/j1/core/js/template.js.map +1 -1
  72. data/lib/starter_web/assets/themes/j1/core/js/template.min.js +1 -1
  73. data/lib/starter_web/assets/themes/j1/extensions/cookiebar/js/cookiebar.js +277 -0
  74. data/lib/starter_web/assets/themes/j1/{core/js/adapter/cookiebar.js → extensions/cookiebar/js/j1cookiebar.js} +1 -1
  75. data/lib/starter_web/collections/_biography/becoming.adoc +1 -1
  76. data/lib/starter_web/collections/_biography/born-to-run.adoc +1 -1
  77. data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/attributes.asciidoc +0 -0
  78. data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/documents/100-docker-using-shared-folders.asciidoc +0 -0
  79. data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/documents/loop.sh +0 -0
  80. data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/tables/debug_variables.asciidoc +0 -0
  81. data/lib/starter_web/collections/posts/{premium → private}/series/_posts/2018-11-01-docker-using-shared-folders.adoc +0 -0
  82. data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/000_includes/attributes.asciidoc +0 -0
  83. data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/000_includes/tables/debug_variables.asciidoc +0 -0
  84. data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/2016-11-20-minneapolis.adoc +0 -0
  85. data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +0 -0
  86. data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/2016-11-26-columbia-river.adoc +1 -1
  87. data/lib/starter_web/collections/posts/public/featured/_posts/2019-04-12-about-cookies.adoc +175 -0
  88. data/lib/starter_web/collections/posts/public/{featured → jekyll}/_posts/2018-05-01-confusion-about-base-url.adoc +0 -0
  89. data/lib/starter_web/index.html +4 -1
  90. data/lib/starter_web/package.json +1 -1
  91. data/lib/starter_web/pages/{premium → private}/bookshelf/100_about_jekyll_collections.adoc +1 -1
  92. data/lib/starter_web/pages/{premium → private}/bookshelf/200_book_shelf_biography.adoc +1 -1
  93. data/lib/starter_web/pages/{premium → private}/bookshelf/300_book_shelf_fantasy.adoc +1 -1
  94. data/lib/starter_web/pages/{premium → private}/bookshelf/400_book_shelf_romance.adoc +1 -1
  95. data/lib/starter_web/pages/{private → protected}/TeamUp/000_includes/attributes.asciidoc +0 -0
  96. data/lib/starter_web/pages/{private → protected}/TeamUp/index.adoc +3 -3
  97. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/attributes.asciidoc +0 -0
  98. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +0 -0
  99. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +0 -0
  100. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/120_relative_sizes.asciidoc +0 -0
  101. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/200_rotate.asciidoc +0 -0
  102. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/300_flip.asciidoc +0 -0
  103. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +0 -0
  104. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +0 -0
  105. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +0 -0
  106. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/600_md_color_palette.asciidoc +0 -0
  107. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +0 -0
  108. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +0 -0
  109. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +0 -0
  110. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +0 -0
  111. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/200_rotate.asciidoc +0 -0
  112. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/300_flip.asciidoc +0 -0
  113. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +0 -0
  114. data/lib/starter_web/pages/{private → protected}/previewer/justified_gallery.html +1 -1
  115. data/lib/starter_web/pages/{private → protected}/previewer/mdi_icons_preview.adoc +1 -1
  116. data/lib/starter_web/pages/{private → protected}/previewer/twitter_emoji_preview.adoc +1 -1
  117. data/lib/starter_web/pages/public/about/about_you.adoc +139 -0
  118. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +26 -15
  119. data/lib/starter_web/pages/public/legal/de/200_terms_of_use.adoc +2 -2
  120. data/lib/starter_web/pages/public/legal/en/100_impress.adoc +65 -53
  121. data/lib/starter_web/pages/public/legal/en/200_terms_of_use.adoc +11 -8
  122. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +46 -68
  123. data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +72 -74
  124. data/lib/starter_web/pages/public/legal/en/eu/cookie.policy.asciidoc +55 -0
  125. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +1 -1
  126. data/lib/starter_web/pages/public/start/roundtrip/700_extended_modals.adoc +71 -53
  127. metadata +60 -44
  128. data/_includes/themes/j1/modules/connectors/analytic/googleUA +0 -44
  129. data/lib/starter_web/_data/modules/j1_cookiebar.yml +0 -65
  130. data/lib/starter_web/_unused/package.json.new +0 -125
@@ -67,7 +67,7 @@ j1.Scroller = (function (j1, window) {
67
67
  // Initialize
68
68
  init: function () {
69
69
  // Setup logger
70
- logger = log4javascript.getLogger("j1.Scroller");
70
+ logger = log4javascript.getLogger("j1.Scroller.adapter");
71
71
  state = 'started';
72
72
  logger.info('state: ' + state); // Set|Log status
73
73
  logger.info("SmoothScroll being initialized");
@@ -69,7 +69,7 @@ regenerate: true
69
69
  // Initialize
70
70
  init: function () {
71
71
  // Setup logger
72
- logger = log4javascript.getLogger("j1.QuickSearch");
72
+ logger = log4javascript.getLogger("j1.QuickSearch.adapter");
73
73
  logger.info("Jekyll Search is being initialized");
74
74
  state = 'started';
75
75
  logger.info('state: ' + state); // Set|Log status
@@ -65,7 +65,7 @@ j1.Stickybits = (function (j1, window) {
65
65
  // Initialize
66
66
  init: function () {
67
67
  // Setup logger
68
- logger = log4javascript.getLogger("j1.Stickybits");
68
+ logger = log4javascript.getLogger("j1.Stickybits.adapter");
69
69
  state = 'started';
70
70
  logger.info('state: ' + state);
71
71
 
@@ -58,7 +58,7 @@ j1.Switcher = (function (j1, window) {
58
58
  // Initialize
59
59
  init: function () {
60
60
  // Setup logger
61
- logger = log4javascript.getLogger("ThemeSwitcher");
61
+ logger = log4javascript.getLogger("ThemeSwitcher.adapter");
62
62
  state = 'started';
63
63
  logger.info('state: ' + state); // Set|Log status
64
64
  logger.info("ThemeSwitcher being initialized");
@@ -54,6 +54,7 @@ regenerate: true
54
54
  {% endif %}
55
55
 
56
56
  {% assign environment = site.environment %}
57
+ {% assign template_version = site.version %}
57
58
  {% assign hideOnReload = site.data.modules.j1_theme_switcher.hideOnReload %}
58
59
  {% assign flickerTimeout = site.data.modules.j1_theme_switcher.flicker_timeout %}
59
60
 
@@ -74,37 +75,55 @@ regenerate: true
74
75
  {% comment %} Main
75
76
  -------------------------------------------------------------------------------- {% endcomment %}
76
77
  var j1 = function () {
77
- var environment = '{{environment}}'; // Set environment
78
- var cookieUserState = 'j1.user.state';
79
- var state = 'unknown';
80
- var app_detected = false;
78
+
79
+ //var environment = '{{environment}}'; // Set environment
80
+ //var cookieUserState = 'j1.user.state';
81
+ //
82
+
83
+ // Status information
84
+ var state = 'not_started';
85
+ var app_detected;
86
+ var user_state_detected;
87
+
88
+ // Theme information
89
+ var themeName;
90
+ var themeCss;
91
+ var themeExtensionCss;
92
+
81
93
  // J1 data files
82
94
  var j1_colors = {};
83
95
  var colors_data_path = "/assets/data/colors.json";
84
- // J1 UserState Cookie
96
+
97
+ // Logger
98
+ var logger;
99
+ var logText;
100
+
101
+ // J1 UserState Cookie (initial values)
85
102
  var j1_user_state = {
86
- 'authenticated' : 'false',
87
- 'cookies_accepted' : '',
88
103
  'theme_css' : '/assets/themes/j1/core/css/uno.css',
89
104
  'theme_extension_css' : '/assets/themes/j1/core/css/theme_extensions.css',
90
105
  'theme_name' : 'Uno',
91
- 'last_page' : 'unknown',
106
+ 'theme_author' : 'J1 Team',
107
+ 'theme_link' : 'https://support.jekyll-one.com/',
108
+ 'previous_page' : 'unknown',
92
109
  'current_page' : 'unknown',
93
- 'last_provider' : 'unknown',
94
- 'last_signin' : 'unknown',
95
- 'provider' : 'unknown',
96
- 'user_name' : 'unknown',
97
- 'user_id' : 'unknown'
110
+ 'provider' : 'j1',
111
+ 'provider_membership' : 'guest',
112
+ "provider_permissions" : "public",
113
+ "provider_url" : "https:/jekyll.one",
114
+ 'status' : 'pending',
115
+ 'user_name' : 'visitor',
116
+ 'language' : 'unknown',
117
+ 'cookies_accepted' : "pending",
118
+ 'writer' : 'web'
98
119
  };
99
- // Logger
100
- var logger;
101
- var logText;
102
120
 
103
121
  return {
122
+
104
123
  // Initialize
105
124
  init: function ( options ) {
106
125
 
107
- var logger = log4javascript.getLogger('j1.Template');
126
+ var logger = log4javascript.getLogger('j1.Template.adapter');
108
127
  state = 'started';
109
128
  logger.info('state: ' + state); // Set|Log status
110
129
 
@@ -118,30 +137,60 @@ var j1 = function () {
118
137
  $( 'body' ).addClass( 'hide-scrollbar' )
119
138
  }
120
139
 
140
+ // Detect|Set J1 AppSession
141
+ app_detected = j1.existsCookie ( 'j1.web.session' );
142
+
143
+
144
+ // Detect|Set J1 UserState
145
+ user_state_detected = j1.existsCookie ( 'j1.user.state' );
146
+ if ( user_state_detected ) {
147
+ logger.info('Read UserState cookie');
148
+ j1_user_state = j1.getUserStateCookie();
149
+ themeName = j1_user_state.theme_name;
150
+ themeCss = j1_user_state.theme_css;
151
+ themeExtensionCss = j1_user_state.theme_extension_css;
152
+ } else {
153
+ logger.warn('UserState cookie NOT found');
154
+ }
155
+
156
+ // Hide signin/signout button if cookies are DECLINED
157
+ // if ( app_detected && j1_user_state.cookies_accepted == 'declined') {
158
+ // $('#quickLinksSignInOutButton').css('display', 'none');
159
+ // }
160
+
121
161
  {% comment %} Deferred data load
122
162
  -------------------------------------------------------------------------- {% endcomment %}
123
163
  // Load banner and panel HTML data asychronously
124
164
  // See: https://stackoverflow.com/questions/3709597/wait-until-all-jquery-ajax-requests-are-done
125
165
  $.when( j1.initBanner(settings), j1.initPanel(settings), j1.initFooter( settings ) ).done (
126
166
  function(initBanner_response, initPanel_response) {
167
+ var logger = log4javascript.getLogger('j1.Template.adapter');
168
+
127
169
  state = 'running';
128
- logger.info('state: ' + state);
170
+ logger.info('initBanner: state: ' + state);
171
+
172
+ j1_user_state.language = j1.getLanguage();
173
+ j1.setUserStateCookie( j1_user_state );
129
174
  // jadams, 2019-01-20: enabled only drawer, switch and ripples,
130
175
  // initialize BMD JS components
131
176
  j1.initMDB(settings);
132
177
  j1.initClipboard(settings);
133
178
  j1.displayPage(settings);
134
179
  });
135
- }, // end init
180
+ }, // END init
136
181
 
137
182
  // -------------------------------------------------------------------------
138
183
  // AJAX loader to load and place all banner used for a page
139
184
  // -------------------------------------------------------------------------
140
185
  // ToDo:
141
186
  initBanner: function ( options ) {
142
- var banner = [];
187
+
188
+ var logger = log4javascript.getLogger('j1.Template.adapter');
189
+ var banner = [];
143
190
  var bannerOptions = [];
144
- logger = log4javascript.getLogger('j1.initBanner');
191
+
192
+ var logText = 'initBanner: Start initialization';
193
+ logger.info(logText);
145
194
 
146
195
  {% comment %} helper functions for (AJAX) data load
147
196
  -------------------------------------------------------------------------- {% endcomment %}
@@ -166,11 +215,11 @@ var j1 = function () {
166
215
  var cb_load_closure = function(panel_id) {
167
216
  return function ( responseTxt, statusTxt, xhr ) {
168
217
  if ( statusTxt == 'success' ) {
169
- logText = 'Banner on ID ' +panel_id+ ' loaded successfully';
218
+ logText = 'initBanner: Banner on ID ' +panel_id+ ' loaded successfully';
170
219
  logger.info(logText);
171
220
  }
172
221
  if ( statusTxt == 'error' ) {
173
- logText = 'Panel on ID ' +panel_id+ ' loading failed. Error: ' + xhr.status + ': ' + xhr.statusText;
222
+ logText = 'initBanner: Banner on ID ' +panel_id+ ' loading failed. Error: ' + xhr.status + ': ' + xhr.statusText;
174
223
  logger.error(logText);
175
224
  // Set|Log status
176
225
  state = 'failed';
@@ -232,7 +281,7 @@ var j1 = function () {
232
281
  {% endfor %}
233
282
 
234
283
  if ( banner.length ) {
235
- logText = 'banner are being loaded deferred (if any)';
284
+ logText = 'initBanner Banner are being loaded deferred (if any)';
236
285
  logger.info(logText);
237
286
  }
238
287
 
@@ -244,15 +293,18 @@ var j1 = function () {
244
293
  selector.load( banner_data_path, cb_load_closure( id ) );
245
294
  }
246
295
  }
247
- }, // end initBanner
296
+ }, // END initBanner
248
297
 
249
298
  // -------------------------------------------------------------------------
250
299
  // AJAX loader for panel used with J1 Template fo all pages
251
300
  // -------------------------------------------------------------------------
252
301
  // ToDo:
253
302
  initPanel: function ( options ) {
254
- var panel = [];
255
- logger = log4javascript.getLogger('j1.initPanel'); // setup logger
303
+ var logger = log4javascript.getLogger('j1.Template.adapter');
304
+ var panel = [];
305
+
306
+ var logText = 'initPanel: Start initialization';
307
+ logger.info(logText);
256
308
 
257
309
  // closure to pass additional data (e.g. div #id)
258
310
  // to AJAX load callback (panel_id)
@@ -260,11 +312,11 @@ var j1 = function () {
260
312
  var cb_load_closure = function(panel_id) {
261
313
  return function ( responseTxt, statusTxt, xhr ) {
262
314
  if ( statusTxt == 'success' ) {
263
- logText = 'Panel on ID ' +panel_id+ ' loaded successfully';
315
+ logText = 'initPanel: Panel on ID ' +panel_id+ ' loaded successfully';
264
316
  logger.info(logText);
265
317
  }
266
318
  if ( statusTxt == 'error' ) {
267
- logText = 'Panel on ID ' +panel_id+ ' loading failed. Error: ' + xhr.status + ': ' + xhr.statusText;
319
+ logText = 'initPanel: Panel on ID ' +panel_id+ ' loading failed. Error: ' + xhr.status + ': ' + xhr.statusText;
268
320
  logger.error(logText);
269
321
  // Set|Log status
270
322
  state = 'Error';
@@ -288,7 +340,7 @@ var j1 = function () {
288
340
  {% endfor %}
289
341
 
290
342
  if ( panel.length ) {
291
- logText = 'Panel are being loaded deferred (if any)';
343
+ logText = 'initPanel: Panel are being loaded deferred (if any)';
292
344
  logger.info(logText);
293
345
  }
294
346
 
@@ -297,30 +349,33 @@ var j1 = function () {
297
349
  var selector = $(id);
298
350
  if ( selector.length ) {
299
351
  // Set the return URL (user by news pager) for the News Banner
300
- // Cookies.set(cookieUserState, '{{page_url}}#news_panel', { expires: 3650 });
301
- // j1_user_state.last_page = "{{page_url}}"
352
+ // Cookies.set(cookieUserState, '{{page_url}}#news_panel', { expires: 365 });
353
+ // j1_user_state.previous_page = "{{page_url}}"
302
354
  // j1.setUserStateCookie( j1_user_state );
303
355
  var panel_data_path = '{{panel_data_path}} ' + id + ' > *';
304
356
  selector.load( panel_data_path, cb_load_closure( id ) );
305
357
  }
306
358
  }
307
- }, // end initPanel
359
+ }, // END initPanel
308
360
 
309
361
  // -------------------------------------------------------------------------
310
362
  // AJAX loader for page footer used with J1 Template fo all pages
311
363
  // -------------------------------------------------------------------------
312
364
  // ToDo:
313
365
  initFooter: function ( options ) {
314
- logger = log4javascript.getLogger('j1.initFooter'); // setup logger
366
+ var logger = log4javascript.getLogger('j1.Template.adapter');
367
+
368
+ var logText = 'initFooter: Start initialization';
369
+ logger.info(logText);
315
370
 
316
371
  var cb_load_closure = function(footer_id) {
317
372
  return function ( responseTxt, statusTxt, xhr ) {
318
373
  if ( statusTxt == 'success' ) {
319
- logText = 'Footer on ID ' +footer_id+ ' loaded successfully';
374
+ logText = 'initFooter: Footer on ID ' +footer_id+ ' loaded successfully';
320
375
  logger.info(logText);
321
376
  }
322
377
  if ( statusTxt == 'error' ) {
323
- logText = 'Panel on ID ' +footer_id+ ' loading failed. Error: ' + xhr.status + ': ' + xhr.statusText;
378
+ logText = 'initFooter: Footer on ID ' +footer_id+ ' loading failed. Error: ' + xhr.status + ': ' + xhr.statusText;
324
379
  logger.error(logText);
325
380
  // Set|Log status
326
381
  state = 'failed';
@@ -335,20 +390,20 @@ var j1 = function () {
335
390
  var footer_data_path = '{{footer_data_path}}';
336
391
  selector.load( footer_data_path, cb_load_closure( id ) );
337
392
  }
338
-
339
- }, // end initFooter
393
+ }, // END initFooter
340
394
 
341
395
  // -------------------------------------------------------------------------
342
396
  // Create copy-to-clipboard for all pages
343
397
  // -------------------------------------------------------------------------
344
398
  // ToDo:
345
399
  initClipboard: function ( options ) {
400
+ var logger = log4javascript.getLogger('j1.Template.adapter');
346
401
 
347
- /*
348
- insert copy to clipboard button before all elements having a
349
- class of ".highlight" assigned to (e.g. Asciidoc source blocks)
350
- */
402
+ var logText = 'initClipboard: Start initialization';
403
+ logger.info(logText);
351
404
 
405
+ // insert copy to clipboard button before all elements having a
406
+ // class of ".highlight" assigned to (e.g. Asciidoc source blocks)
352
407
  $('.highlight').each(function () {
353
408
  // Check if no clipboard should be applied
354
409
  var isNoClip = $(this).closest('.noclip');
@@ -359,17 +414,17 @@ var j1 = function () {
359
414
  $('.btn-clipboard').tooltip();
360
415
  }
361
416
  });
362
-
363
417
  var clipboard = new Clipboard( '.btn-clipboard', {
364
418
  target: function target(trigger) {
365
419
  return trigger.parentNode.nextElementSibling;
366
420
  }
367
421
  });
368
422
 
423
+ // Manage clipboard events
369
424
  clipboard.on('success', function (e) {
370
425
  $(e.trigger).attr('title', 'Copied!').tooltip('_fixTitle').tooltip('show').attr('title', 'Copy to clipboard').tooltip('_fixTitle');
371
- var logger = log4javascript.getLogger('j1.Clipboard');
372
- var logText = 'Copy-To-Clipboard sucessfull';
426
+ var logger = log4javascript.getLogger('j1.Template.adapterrr');
427
+ var logText = 'initClipboard: Copy-To-Clipboard sucessfull';
373
428
  logger.info(logText);
374
429
  /* Cleanup clipped data for trailing numbers */
375
430
  var splitted = e.text.split('\n');
@@ -380,22 +435,25 @@ var j1 = function () {
380
435
  }
381
436
  e.clearSelection();
382
437
  });
383
-
384
438
  clipboard.on('error', function (e) {
385
439
  var fallbackMsg = /Mac/i.test(navigator.userAgent) ? 'Press \u2318 to copy' : 'Press Ctrl-C to copy';
386
- logger = log4javascript.getLogger('j1.Clipboard');
387
- logText = 'Copy-To-Clipboard failed. Use fallback.';
440
+ logger = log4javascript.getLogger('j1.Template.adapterrr');
441
+ logText = 'initClipboard: Copy-To-Clipboard failed. Use fallback.';
388
442
  logger.warn(logText);
389
443
  $(e.trigger).attr('title', fallbackMsg).tooltip('_fixTitle').tooltip('show').attr('title', 'Copy to clipboard').tooltip('_fixTitle');
390
444
  });
391
-
392
- }, // end initClipboard
445
+ return;
446
+ }, // END initClipboard
393
447
 
394
448
  // -------------------------------------------------------------------------
395
449
  // Show the page after timeout of {{hideOnReload}}
396
450
  // -------------------------------------------------------------------------
397
451
  displayPage: function ( options ) {
398
- logger = log4javascript.getLogger('j1.Template');
452
+ var logger = log4javascript.getLogger('j1.Template.adapter');
453
+
454
+ var logText = 'Start initialization';
455
+ logger.info(logText);
456
+
399
457
  // Display the page if the (text) header is signaled as 'initialized' AND the menubar is signaled as 'finished'
400
458
  var headerLoaded = setInterval(function() {
401
459
  if ( j1.MastHead.state() === 'initialized' && j1.Navigator.state() === 'finished' ) {
@@ -404,7 +462,7 @@ var j1 = function () {
404
462
  $('#no_flicker').css('display', 'block'); // display current page
405
463
  j1.scrollTo(); // scroll to an anchor element this page (if any)
406
464
 
407
- // Set|Detect J1 App status
465
+ // Detect|Set J1 App status
408
466
  app_detected = j1.existsCookie ( 'j1.web.session' );
409
467
  if ( app_detected ) {
410
468
  var document_title = document.title;
@@ -413,62 +471,71 @@ var j1 = function () {
413
471
  for development mode
414
472
  */
415
473
  /* document.title = document_title + ' (App)'; */
416
- logger.info('Site detected in state: app');
417
- logger.info('Read cookie: WebSession');
474
+ logger.info('displayPage: Site detected in state: app');
475
+ logger.info('displayPage: Read cookie: WebSession');
418
476
  var j1_web_session = j1.getWebSessionCookie();
419
- logger.info('Read cookie: UserState');
477
+ logger.info('displayPage: Read cookie: UserState');
420
478
  j1_user_state = j1.getUserStateCookie();
421
- logger.info( 'WebSessionCookie written by: ' + j1_web_session.writer );
479
+ logger.info( 'displayPage: WebSessionCookie written by: ' + j1_web_session.writer );
422
480
  j1_user_state.authenticated = j1_web_session.authenticated;
423
- j1_user_state.last_page = j1_user_state.current_page;
481
+ j1_user_state.previous_page = j1_user_state.current_page;
424
482
  j1_user_state.current_page = window.location.pathname;
425
483
  j1_user_state.provider = j1_web_session.provider;
426
484
  j1_user_state.user_name = j1_web_session.user_name;
427
485
  j1_user_state.user_id = j1_web_session.user_id;
428
- logger.info('Write cookie: UserState');
486
+ logger.info('displayPage: Write cookie: UserState');
429
487
  j1.setUserStateCookie( j1_user_state );
430
488
  j1_web_session.requested_page = window.location.pathname;
431
- logger.info('Write cookie: WebSession');
489
+ logger.info('displayPage:Write cookie: WebSession');
432
490
  j1.setWebSessionCookie( j1_web_session );
433
- logger.info( 'Last page: ' + j1_user_state.last_page );
434
- logger.info( 'Current page: ' + j1_user_state.current_page );
491
+ logger.info( 'displayPage: Last page: ' + j1_user_state.previous_page );
492
+ logger.info( 'displayPage: Current page: ' + j1_user_state.current_page );
435
493
  } else {
436
- logger.info('Site detected in state: web');
494
+ logger.info('displayPage: Site detected in state: web');
437
495
  var user_state_detected = j1.existsCookie ( 'j1.user.state' );
438
496
  if ( user_state_detected ) {
439
- logger.info('Read cookie: UserState');
497
+ logger.info('displayPage: Read cookie: UserState');
440
498
  j1_user_state = j1.getUserStateCookie();
441
- logger.info('Write cookie: UserState');
499
+ logger.info('displayPage: Write cookie: UserState');
442
500
  } else {
443
- logger.warn('Read cookie: UserState not found');
444
- logger.info('Create and update user state');
445
- logger.info('Write cookie: UserState');
501
+ logger.warn('displayPage: Read cookie: UserState not found');
502
+ logger.info('displayPage: Create and update user state');
503
+ logger.info('displayPage: Write cookie: UserState');
446
504
  }
447
- j1_user_state.last_page = j1_user_state.current_page;
505
+ j1_user_state.previous_page = j1_user_state.current_page;
448
506
  j1_user_state.current_page = window.location.pathname;
449
507
  j1.setUserStateCookie( j1_user_state );
450
508
  }
451
509
  // Set|Log status
452
510
  state = 'finished';
453
511
  logger.info('state: ' + state);
454
- logText = "J1 Template successfully initialized";
512
+ logText = "displayPage: J1 Template successfully initialized";
455
513
  logger.info(logText);
456
514
  }, {{flickerTimeout}} );
457
515
  // clear interval checking
458
516
  clearInterval(headerLoaded);
459
517
  }
460
- }, 50); // end setInterval
461
-
462
- }, // end displayPage
518
+ }, 50); // END setInterval
519
+ return;
520
+ }, // END displayPage
463
521
 
464
522
  // -------------------------------------------------------------------------
465
523
  // Initialize BS Material Design
466
524
  // -------------------------------------------------------------------------
467
525
  // ToDo:
468
526
  initMDB: function ( options ) {
527
+
528
+ var logger = log4javascript.getLogger('j1.Template.adapter');
529
+ var logText = 'initMDB: Start initMDB';
530
+ logger.info(logText);
531
+
469
532
  $('body').bootstrapMaterialDesign();
470
533
  //new WOW().init();
471
- }, // end initMDB
534
+
535
+ var logText = 'initMDB Finished initMDB';
536
+ logger.info(logText);
537
+
538
+ }, // END initMDB
472
539
 
473
540
  // -------------------------------------------------------------------------
474
541
  // Helper functions
@@ -487,7 +554,7 @@ var j1 = function () {
487
554
  }
488
555
  }
489
556
  return o;
490
- }, // end mergeData
557
+ }, // END mergeData
491
558
 
492
559
  // -------------------------------------------------------------------------
493
560
  // returns the current (processing) state of the module
@@ -524,7 +591,7 @@ var j1 = function () {
524
591
  end = dc.indexOf(";", begin);
525
592
  }
526
593
  return decodeURI(dc.substring(begin + prefix.length, end) ).replace(/"/g, '');
527
- }, // end getCookie
594
+ }, // END getCookie
528
595
 
529
596
  // -------------------------------------------------------------------------
530
597
  // Returns the current user state collected from /status endpoint
@@ -548,9 +615,9 @@ var j1 = function () {
548
615
  }
549
616
  });
550
617
  } else {
551
- return { authenticated : false }
618
+ return { authenticated : false };
552
619
  }
553
- }, // end getUserState
620
+ }, // END getUserState
554
621
 
555
622
  // -------------------------------------------------------------------------
556
623
  // Returns the content of J1 user state cookie (j1.user.state) as
@@ -565,9 +632,9 @@ var j1 = function () {
565
632
  user_state = JSON.parse(user_state_json);
566
633
  return user_state;
567
634
  } else {
568
- return null
635
+ return null;
569
636
  }
570
- }, // end getUserStateCookie
637
+ }, // END getUserStateCookie
571
638
 
572
639
  // -------------------------------------------------------------------------
573
640
  // Set|Update the content of J1 user state cookie (j1.user.state) if
@@ -580,17 +647,19 @@ var j1 = function () {
580
647
  var state_from_cookie_json = window.atob(Cookies.get('j1.user.state'));
581
648
  var state_from_cookie = JSON.parse(state_from_cookie_json);
582
649
  var user_state = j1.mergeData( state_from_cookie, state );
650
+ state.writer = 'web';
583
651
  var user_state_json = JSON.stringify( user_state );
584
652
  var user_state_encoded = window.btoa(user_state_json);
585
- Cookies.set( 'j1.user.state', user_state_encoded, { expires: 3650 } );
653
+ Cookies.set( 'j1.user.state', user_state_encoded, { expires: 365 } );
586
654
  } else {
587
655
  // create|initialize cookie
588
656
  var user_state = j1.mergeData( j1_user_state, state );
589
657
  var user_state_json = JSON.stringify(user_state);
590
658
  var user_state_encoded = window.btoa(user_state_json);
591
- Cookies.set( 'j1.user.state', user_state_encoded, { expires: 3650 } );
659
+ Cookies.set( 'j1.user.state', user_state_encoded, { expires: 365 } );
592
660
  }
593
- }, // end setUserStateCookie
661
+ return;
662
+ }, // END setUserStateCookie
594
663
 
595
664
  // -------------------------------------------------------------------------
596
665
  // Returns the content of J1 web session cookie (j1.web.session) as
@@ -604,9 +673,9 @@ var j1 = function () {
604
673
  session_data = JSON.parse(session_json);
605
674
  return session_data;
606
675
  } else {
607
- return null
676
+ return null;
608
677
  }
609
- }, // end getWebSessionCookie
678
+ }, // END getWebSessionCookie
610
679
 
611
680
  // -------------------------------------------------------------------------
612
681
  // Set the content of J1 session cookie (j1.user.state). If successful,
@@ -619,11 +688,11 @@ var j1 = function () {
619
688
  var session_json = JSON.stringify(session_data);
620
689
  var session_encoded = window.btoa(session_json);
621
690
  Cookies.set('j1.web.session', session_encoded );
622
- return true
691
+ return true;
623
692
  } else {
624
- return false
693
+ return false;
625
694
  }
626
- }, // end setWebSessionCookie
695
+ }, // END setWebSessionCookie
627
696
 
628
697
  // -------------------------------------------------------------------------
629
698
  // returns true if a given cookie exists
@@ -632,12 +701,30 @@ var j1 = function () {
632
701
  var myCookie = j1.getCookie( name );
633
702
 
634
703
  if (myCookie == null) {
635
- return false
704
+ return false;
636
705
  }
637
706
  else {
638
- return true
707
+ return true;
639
708
  }
640
- }, // end existsCookie
709
+ }, // END existsCookie
710
+
711
+ // -------------------------------------------------------------------------
712
+ // returns the preferred language taken form window.navigator
713
+ // See:
714
+ // https://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference
715
+ // -------------------------------------------------------------------------
716
+ getLanguage: function () {
717
+ //var language = window.navigator.userLanguage || window.navigator.language;
718
+ var language = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage);
719
+ return language;
720
+ }, // END getLanguage
721
+
722
+ // -------------------------------------------------------------------------
723
+ // returns the template version taken from site config ( _config.yml)
724
+ // -------------------------------------------------------------------------
725
+ getTemplateVersion: function () {
726
+ return '{{template_version}}';
727
+ }, // END getTemplateVersion
641
728
 
642
729
  // -------------------------------------------------------------------------
643
730
  // Scrolls smooth to any anchor referenced by an page URL
@@ -646,8 +733,8 @@ var j1 = function () {
646
733
  scrollTo: function () {
647
734
  // Unclear why a correction is needed sometimes. Disable for now.
648
735
  //var offset_correction = 75;
649
- var offset_correction = 0;
650
- var offset = {{toccer_config.defaults.smoothScrollOffset}} + offset_correction;
736
+ var offset_correction = 25;
737
+ var offset = {{toccer_config.defaults.smoothScrollOffset}};
651
738
  var anchor_id = window.location.href.split("#")[1];
652
739
 
653
740
  if (anchor_id) {
@@ -656,7 +743,7 @@ var j1 = function () {
656
743
  // scroll only, if an anchor is given with URL
657
744
  if (selector.length) {
658
745
  var delay = {{toccer_config.defaults.smoothScrollDuration}};
659
- var scroll_to = selector.offset().top - offset;
746
+ var scroll_to = parseInt( selector.offset().top - offset - offset_correction );
660
747
  //var scroll_to = selector.offset().top;
661
748
  $('html,body').animate({scrollTop: scroll_to}, delay,
662
749
  function () {
@@ -666,7 +753,7 @@ var j1 = function () {
666
753
  $(window).scrollTop($(window).scrollTop()-1);
667
754
  });
668
755
  } else {
669
- // TODO: to be checked if this elese is needed
756
+ // TODO: to be checked if this else is needed
670
757
  // scroll the page one pixel back and forth
671
758
  // to get the right position for the NAV Module (Tocbot)
672
759
  $(window).scrollTop($(window).scrollTop()+1);
@@ -677,10 +764,258 @@ var j1 = function () {
677
764
  // to get the right position for the NAV Module (Tocbot)
678
765
  $(window).scrollTop($(window).scrollTop()+1);
679
766
  $(window).scrollTop($(window).scrollTop()-1);
680
- } // selector.length// end if anchor_id
681
- } // end scrollTo
767
+ } // END if anchor_id
768
+ return;
769
+ }, // END scrollTo
770
+
771
+ // -------------------------------------------------------------------------
772
+ // Replace MACROs
773
+ //
774
+ // See:
775
+ // https://stackoverflow.com/questions/5376431/wildcards-in-jquery-selectors
776
+ // https://stackoverflow.com/questions/16400072/jquery-each-only-affects-last-element
777
+ // https://dzone.com/articles/why-does-javascript-loop-only-use-last-value
778
+ // https://stackoverflow.com/questions/179713/how-to-change-the-href-for-a-hyperlink-using-jquery
779
+ // -------------------------------------------------------------------------
780
+ resolveMacros: function ( data ) {
781
+ var logger;
782
+ var logText;
783
+ var user_state = data;
784
+ var app_detected = j1.existsCookie ( 'j1.web.session' );
785
+
786
+ // Set default settings
787
+ user_state.user_info_url = '{{site.data.j1_config.user_info_url}}'
788
+ user_state.theme_author_url = '{{site.data.j1_config.theme_author_url}}'
789
+ user_state.theme_version = j1.getTemplateVersion();
790
+ // user_state.provider_permissions = user_state.provider_permissions;
791
+
792
+ // Resolve all macros
793
+ $('[id^=macro-]').each(function() {
794
+
795
+ $('#macro-provider-name').each(function() {
796
+ var $this = $(this);
797
+ var $html = $this.html();
798
+ $this.html($html.replace('??provider-name', user_state.provider));
799
+ // jadams, 2019-04-15: unclear why 'href' by base URL
800
+ this.href = this.href.replace(/.*\/??provider-url/, user_state.provider_url);
801
+ });
802
+ $('#macro-user-name').each(function() {
803
+ var $this = $(this);
804
+ var $html = $this.html();
805
+ $this.html($html.replace('??user-name', user_state.user_name));
806
+ this.href = this.href.replace(/.*\/??user-info-url/, user_state.user_info_url);
807
+ });
808
+ // Replace sidebar|State (currently disabled)
809
+ // $('#macro-user-state').each(function() {
810
+ // var $this = $(this);
811
+ // var $html = $this.html();
812
+ // $this.html($html.replace('??user-state', user_state.status));
813
+ // this.href = this.href.replace(/.*\/??user-info-url/, user_state.user_info_url);
814
+ // });
815
+ $('#macro-provider-permissions').each(function() {
816
+ var $this = $(this);
817
+ var $html = $this.html();
818
+ $this.html($html.replace('??provider-permissions', user_state.provider_permissions));
819
+ //jadams, 2019-04-16: Workaround for already set permissins ("all")
820
+ //$this.html($html.replace(/all|public|protected|private/, user_state.provider_permissions));
821
+ this.href = this.href.replace(/.*\/??user-info-url/, user_state.user_info_url);
822
+ });
823
+ $('#macro-provider-membership').each(function() {
824
+ var $this = $(this);
825
+ var $html = $this.html();
826
+ $this.html($html.replace('??provider-membership', user_state.provider_membership));
827
+ this.href = this.href.replace(/.*\/??user-info-url/, user_state.user_info_url);
828
+ });
829
+ $('#macro-cookie-state').each(function() {
830
+ var $this = $(this);
831
+ var $html = $this.html();
832
+ $this.html($html.replace('??cookie-state', user_state.cookies_accepted));
833
+ this.href = this.href.replace(/.*\/??user-info-url/, user_state.user_info_url);
834
+ });
835
+ $('#macro-theme-name').each(function() {
836
+ var $this = $(this);
837
+ var $html = $this.html();
838
+ $this.html($html.replace('??theme-name', user_state.theme_name));
839
+ });
840
+ $('#macro-theme-author').each(function() {
841
+ var $this = $(this);
842
+ var $html = $this.html();
843
+ $this.html($html.replace('??theme-author', user_state.theme_author));
844
+ this.href = this.href.replace(/.*\/??theme-author-url/, user_state.theme_author_url);
845
+ });
846
+ $('#macro-theme-version').each(function() {
847
+ var $this = $(this);
848
+ var $html = $this.html();
849
+ $this.html($html.replace('??theme-version', user_state.theme_version));
850
+ });
851
+
852
+ }); // END Replace macros
853
+ return;
854
+ }, // END resolveMacros
855
+
856
+ // -------------------------------------------------------------------------
857
+ // Update MACROs
858
+ //
859
+ // Note:
860
+ // To manage chaching situations with severals browsers (e.g. Chrome),
861
+ // some of the "values" set ealier by j1.resolveMacros needs to be
862
+ // updated
863
+ // -------------------------------------------------------------------------
864
+ updateMacros: function ( data ) {
865
+ var user_state = data;
866
+ var logger;
867
+ var logText;
868
+
869
+ // Replace Macros
870
+ $('[id^=macro-]').each(function() {
871
+ // Update sidebar|Cookies
872
+ $('#macro-cookie-state').each(function() {
873
+ var $this = $(this);
874
+ var $html = $this.html();
875
+ $this.html($html.replace(/accepted|declined|pending/, user_state.cookies_accepted));
876
+ });
877
+ // Update sidebar|State (currently disabled)
878
+ // $('#macro-user-state').each(function() {
879
+ // var $this = $(this);
880
+ // var $html = $this.html();
881
+ // $this.html($html.replace(/active|blocked|pending/, user_state.status));
882
+ // });
883
+ $('#macro-provider-permissions').each(function() {
884
+ var $this = $(this);
885
+ var $html = $this.html();
886
+ //$this.html($html.replace(/all|public|protected|private/g, user_state.provider_permissions));
887
+ //$this.html($html.replace(/.*/, 'Permissions: ' + user_state.provider_permissions));
888
+ $this.html($html.replace(/public.*|protected.*|private.*/, user_state.provider_permissions));
889
+ });
890
+ $('#macro-provider-membership').each(function() {
891
+ var $this = $(this);
892
+ var $html = $this.html();
893
+ $this.html($html.replace(/guest|member/, user_state.provider_membership));
894
+ });
895
+ });
896
+ return;
897
+ }, // END updateMacros
898
+
899
+ // -------------------------------------------------------------------------
900
+ // Detect if a page has changed
901
+ //
902
+ // Note:
903
+ // Returns true on a change. Otherwise false
904
+ // some of the "values" set ealier by j1.resolveMacros needs to be
905
+ // updated
906
+ // -------------------------------------------------------------------------
907
+ hasPageChanged: function ( data ) {
908
+ var user_state = data;
909
+ var logger;
910
+ var logText;
911
+
912
+ if (user_state.previous_page == user_state.current_page ) {
913
+ return false;
914
+ } else {
915
+ return true;
916
+ }
917
+ }, // END j1.hasPageChanged
918
+
919
+ // -------------------------------------------------------------------------
920
+ // updateCookies:
921
+ //
922
+ // -------------------------------------------------------------------------
923
+ updateCookies: function ( data ) {
924
+ var user_state = data;
925
+ var appDetected = j1.Navigator.appDetected();
926
+ var authClientEnabled = j1.Navigator.authClientEnabled();
927
+ var userAuthenticated;
928
+ var web_session_state;
929
+ var json_data;
930
+ var logger;
931
+ var logText;
932
+
933
+ logger = log4javascript.getLogger('j1.updateCookies');
934
+
935
+ // Update cookies
936
+ if ( appDetected ) {
937
+ web_session_state = j1.getWebSessionCookie();
938
+ userAuthenticated = web_session_state.authenticated === 'true' ? true : false;
939
+
940
+ // Overload middleware settings
941
+ // if ( authClientEnabled && web_session_state.authenticated === 'false' ) {
942
+ // web_session_state.provider_permissions = user_state.provider_permissions;
943
+ // web_session_state.provider_membership = user_state.provider_membership;
944
+ // }
945
+ // if ( authClientEnabled && web_session_state.authenticated === 'true' ) {
946
+ // user_state.provider_permissions = web_session_state.provider_permissions;
947
+ // user_state.provider_membership = web_session_state.provider_membership;
948
+ // }
949
+
950
+ if ( authClientEnabled ) {
951
+
952
+ user_state.authenticated = userAuthenticated;
953
+
954
+ if ( userAuthenticated ) {
955
+ user_state.provider = web_session_state.provider;
956
+ user_state.user_name = web_session_state.user_name;
957
+ user_state.provider_membership = web_session_state.provider_membership;
958
+ user_state.provider_permissions = web_session_state.provider_permissions;
959
+ } else {
960
+ // Set default credentials if soignet out
961
+ user_state.provider = 'j1'
962
+ user_state.user_name = 'vistor';
963
+ user_state.status = 'active';
964
+ user_state.provider_membership = 'guest';
965
+ user_state.provider_permissions = 'public'
966
+ }
967
+ }
968
+
969
+ web_session_state.writer = 'web';
970
+ web_session_state.requested_page = window.location.pathname;
971
+ web_session_state.cookies_accepted = user_state.cookies_accepted;
972
+ j1.setWebSessionCookie( web_session_state );
973
+ }
974
+
975
+ j1.setUserStateCookie( user_state );
976
+
977
+ json_data = JSON.stringify( user_state, undefined, 2); // JSON pretty print
978
+ logText = 'User State data: ' + json_data;
979
+ logger.info(logText);
980
+
981
+ json_data = JSON.stringify( web_session_state, null, 2 ); // JSON pretty print
982
+ logText = 'Web Session data: ' + json_data;
983
+ logger.info(logText);
984
+
985
+ return;
986
+
987
+ }, // END j1.updateCookies
988
+
989
+ // -------------------------------------------------------------------------
990
+ // updateSidebar
991
+ //
992
+ // Note:
993
+ // -------------------------------------------------------------------------
994
+ updateSidebar: function ( data ) {
995
+ var user_state = data;
996
+ var json_data;
997
+ var logger;
998
+ var logText;
999
+
1000
+ logger = log4javascript.getLogger('j1.updateSidebar');
1001
+
1002
+ var pageLoaded = setInterval(function() {
1003
+ if ( j1.state() === 'finished' ) {
1004
+ //if ( j1.cookieConsent.state() === 'finished' ) {
1005
+ // Replace Macro placeholders to values
1006
+ j1.resolveMacros( user_state );
1007
+ // Replace Macro values only
1008
+ j1.updateMacros( user_state );
1009
+
1010
+ // clear interval checking
1011
+ clearInterval(pageLoaded);
1012
+ } // END Replace Macro placeholders
1013
+ }, 50); // END setInterval
1014
+
1015
+ return;
1016
+ } // END updateSidebar
682
1017
 
683
- } // end j1 (return)
1018
+ } // END j1 (return)
684
1019
  }();
685
1020
 
686
1021
  {% endcapture %}