j1_template 2019.4.7 → 2019.4.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_collection.html +24 -9
  3. data/_includes/themes/j1/layouts/content_generator_page.html +24 -9
  4. data/_includes/themes/j1/layouts/content_generator_post.html +27 -15
  5. data/_includes/themes/j1/layouts/layout_theme_generator.html +39 -19
  6. data/_includes/themes/j1/layouts/layout_theme_generator.new.html +118 -0
  7. data/_includes/themes/j1/layouts/layout_theme_generator.org.html +119 -0
  8. data/_includes/themes/j1/procedures/global/pager.proc +49 -51
  9. data/lib/j1/version.rb +1 -1
  10. data/lib/j1_app/j1_auth_manager/auth_manager.rb +27 -29
  11. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +12 -8
  12. data/lib/starter_web/Gemfile +1 -1
  13. data/lib/starter_web/_cc_test_data/_config.yml +1 -1
  14. data/lib/starter_web/_cc_test_data/_data/blocks/banner.yml +57 -0
  15. data/lib/starter_web/_cc_test_data/_data/blocks/defaults/banner.yml +55 -0
  16. data/lib/starter_web/_cc_test_data/_data/blocks/defaults/footer.yml +3 -3
  17. data/lib/starter_web/_cc_test_data/_data/blocks/defaults/panel.yml +30 -38
  18. data/lib/starter_web/_cc_test_data/_data/blocks/footer.yml +181 -110
  19. data/lib/starter_web/_cc_test_data/_data/modules/back2top.yml +1 -1
  20. data/lib/starter_web/_cc_test_data/_data/modules/defaults/smooth_scroll.yml +169 -0
  21. data/lib/starter_web/_cc_test_data/_data/modules/defaults/theme_switcher.yml +168 -0
  22. data/lib/starter_web/_cc_test_data/_data/modules/smooth_scroll.yml +169 -0
  23. data/lib/starter_web/_cc_test_data/_data/modules/theme_switcher.yml +168 -0
  24. data/lib/starter_web/_config.yml +74 -71
  25. data/lib/starter_web/_data/blocks/banner.yml +57 -0
  26. data/lib/starter_web/_data/blocks/defaults/banner.yml +55 -0
  27. data/lib/starter_web/_data/modules/{j1_navigator_menu.yml → _old_configs/j1_navigator_menu.yml} +0 -0
  28. data/lib/starter_web/_data/modules/{j1_parallax.yml → _old_configs/j1_parallax.yml} +0 -0
  29. data/lib/starter_web/_data/modules/{j1_smooth_scroll.yml → _old_configs/j1_smooth_scroll.yml} +0 -0
  30. data/lib/starter_web/_data/modules/{j1_stickybits.yml → _old_configs/j1_stickybits.yml} +0 -0
  31. data/lib/starter_web/_data/modules/{j1_theme_switcher.yml → _old_configs/j1_theme_switcher.yml} +0 -0
  32. data/lib/starter_web/_data/modules/{j1_toccer.yml → _old_configs/j1_toccer.yml} +0 -0
  33. data/lib/starter_web/_data/modules/defaults/smooth_scroll.yml +169 -0
  34. data/lib/starter_web/_data/modules/defaults/stickybits.yml +37 -0
  35. data/lib/starter_web/_data/modules/defaults/theme_switcher.yml +168 -0
  36. data/lib/starter_web/_data/modules/defaults/toccer.yml +172 -0
  37. data/lib/starter_web/_data/modules/navigator_menu.yml +306 -0
  38. data/lib/starter_web/_data/modules/smooth_scroll.yml +169 -0
  39. data/lib/starter_web/_data/modules/stickybits.yml +38 -0
  40. data/lib/starter_web/_data/modules/theme_switcher.yml +168 -0
  41. data/lib/starter_web/_data/modules/toccer.yml +172 -0
  42. data/lib/starter_web/_data/resources.yml +23 -24
  43. data/lib/starter_web/_data/template_settings.yml +2 -2
  44. data/lib/starter_web/assets/data/authclient.html +9 -9
  45. data/lib/starter_web/assets/data/banner.html +24 -19
  46. data/lib/starter_web/assets/data/cookie_consent.html +9 -9
  47. data/lib/starter_web/assets/data/footer.html +9 -10
  48. data/lib/starter_web/assets/data/menu.html +23 -16
  49. data/lib/starter_web/assets/data/panel.html +9 -10
  50. data/lib/starter_web/assets/data/sidebar.html +9 -10
  51. data/lib/starter_web/assets/data/webhook.html +8 -8
  52. data/lib/starter_web/assets/images/pages/roundtrip/package.json +1 -1
  53. data/lib/starter_web/assets/themes/j1/adapter/js/back2top.js +11 -9
  54. data/lib/starter_web/assets/themes/j1/adapter/js/cookie_consent.js +5 -5
  55. data/lib/starter_web/assets/themes/j1/adapter/js/logger.js +8 -18
  56. data/lib/starter_web/assets/themes/j1/adapter/js/master_header.js +48 -70
  57. data/lib/starter_web/assets/themes/j1/adapter/js/navigator.js +45 -27
  58. data/lib/starter_web/assets/themes/j1/adapter/js/octokit.app_only.js +433 -0
  59. data/lib/starter_web/assets/themes/j1/adapter/js/octokit.js +179 -192
  60. data/lib/starter_web/assets/themes/j1/adapter/js/scroller.js +29 -28
  61. data/lib/starter_web/assets/themes/j1/adapter/js/searcher.js +5 -5
  62. data/lib/starter_web/assets/themes/j1/adapter/js/stickybits.js +14 -13
  63. data/lib/starter_web/assets/themes/j1/adapter/js/switcher.js +56 -52
  64. data/lib/starter_web/assets/themes/j1/adapter/js/template.js +256 -213
  65. data/lib/starter_web/assets/themes/j1/adapter/js/toccer.js +24 -21
  66. data/lib/starter_web/assets/themes/j1/core/js/template.js +9 -9
  67. data/lib/starter_web/assets/themes/j1/core/js/template.js.map +1 -1
  68. data/lib/starter_web/assets/themes/j1/core/js/template.min.js +1 -1
  69. data/lib/starter_web/package.json +1 -1
  70. data/lib/starter_web/pages/public/start/downloads/quickstarter/100_linux_starter.adoc +1 -1
  71. data/lib/starter_web/pages/public/start/roundtrip/420_responsive_tables_extensions.adoc +5 -0
  72. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  73. data/lib/starter_web/utilsrv/package.json +1 -1
  74. metadata +38 -9
  75. data/lib/starter_web/_data/resources.new.yml +0 -876
@@ -54,16 +54,21 @@ regenerate: true
54
54
  {% assign panel_config_defaults = blocks.defaults.panel.defaults %}
55
55
  {% assign panel_config_settings = blocks.panel.settings %}
56
56
  {% assign footer_config_defaults = blocks.defaults.footer.defaults %}
57
+ {% assign toccer_defaults = modules.defaults.toccer.defaults %}
58
+ {% assign toccer_settings = modules.toccer.settings %}
59
+ {% assign switcher_defaults = modules.defaults.theme_switcher.defaults %}
60
+ {% assign switcher_settings = modules.theme_switcher.settings %}
57
61
 
62
+ {% comment %} Set config options
63
+ -------------------------------------------------------------------------------- {% endcomment %}
64
+ {% assign toccer_options = toccer_defaults | merge: toccer_settings %}
65
+ {% assign switcher_options = switcher_defaults | merge: switcher_settings %}
58
66
  {% assign footer_id = footer_config_defaults.container-id %}
59
67
  {% assign footer_data_path = footer_config_defaults.data_path %}
60
68
  {% assign banner_data_path = banner_config_defaults.data_path %}
61
69
  {% assign panel_data_path = panel_config_defaults.data_path %}
62
- {% assign toccer_config = modules.j1_toccer %}
63
- {% assign hideOnReload = modules.j1_theme_switcher.hideOnReload %}
64
70
 
65
- {% comment %} Set config options
66
- -------------------------------------------------------------------------------- {% endcomment %}
71
+ {% assign hideOnReload = modules.switcher_options.hideOnReload %}
67
72
 
68
73
  /*
69
74
  # -----------------------------------------------------------------------------
@@ -109,10 +114,7 @@ var j1 = (function () {
109
114
  var themeCss;
110
115
  var themeExtensionCss;
111
116
 
112
- // J1 data files
113
- var j1_colors = {};
114
- var j1_font_sizes = {};
115
- var message_catalog = {};
117
+ // Pathes of J1 data files
116
118
  var colors_data_path = '{{template_config.colors_data_path}}';
117
119
  var font_size_data_path = '{{template_config.font_size_data_path}}';
118
120
  var message_catalog_data_path = '{{template_config.message_catalog_data_path}}';
@@ -129,34 +131,34 @@ var j1 = (function () {
129
131
  var referrer;
130
132
 
131
133
  var cookie_names = {
132
- 'app_session': '{{template_config.cookies.app_session}}',
133
- 'user_session': '{{template_config.cookies.user_session}}',
134
- 'cookie_consent': '{{template_config.cookies.cookie_consent}}'
134
+ 'app_session': '{{template_config.cookies.app_session}}',
135
+ 'user_session': '{{template_config.cookies.user_session}}',
136
+ 'cookie_consent': '{{template_config.cookies.cookie_consent}}'
135
137
  }
136
138
 
137
139
  // J1 UserState Cookie (initial values)
138
140
  var user_state = {
139
- 'theme_css': '{{site.data.modules.j1_theme_switcher.default_theme_css}}',
140
- 'theme_extension_css': '{{site.data.modules.j1_theme_switcher.includeBootswatch}}',
141
- 'theme_name': '{{site.data.modules.j1_theme_switcher.default_theme_name}}',
142
- 'theme_author': '{{site.data.modules.j1_theme_switcher.default_theme_author}}',
143
- 'theme_author_url': '{{site.data.template_settings.theme_author_url}}',
144
- 'theme_link': '{{site.data.template_settings.theme_author_url}}',
141
+ 'theme_css': '{{switcher_options.default_theme_css}}',
142
+ 'theme_extension_css': '{{switcher_options.includeBootswatch}}',
143
+ 'theme_name': '{{switcher_options.default_theme_name}}',
144
+ 'theme_author': '{{switcher_options.default_theme_author}}',
145
+ 'theme_author_url': '{{template_config.theme_author_url}}',
146
+ 'theme_link': '{{template_config.theme_author_url}}',
145
147
  'theme_version': '{{site.version}}',
146
- 'provider': '{{site.data.template_settings.user.provider}}',
147
- 'provider_membership': '{{site.data.template_settings.user.provider_membership}}',
148
- 'provider_permissions': '{{site.data.template_settings.user.provider_permissions}}',
149
- 'provider_site_url': '{{site.data.template_settings.user.provider_site_url}}',
150
- 'provider_home_url': '{{site.data.template_settings.user.provider_home_url}}',
151
- 'provider_blog_url': '{{site.data.template_settings.user.provider_blog_url}}',
152
- 'provider_member_url': '{{site.data.template_settings.user.provider_member_url}}',
153
- 'provider_privacy_url': '{{site.data.template_settings.user.provider_privacy_url}}',
148
+ 'provider': '{{template_config.user.provider}}',
149
+ 'provider_membership': '{{template_config.user.provider_membership}}',
150
+ 'provider_permissions': '{{template_config.user.provider_permissions}}',
151
+ 'provider_site_url': '{{template_config.user.provider_site_url}}',
152
+ 'provider_home_url': '{{template_config.user.provider_home_url}}',
153
+ 'provider_blog_url': '{{template_config.user.provider_blog_url}}',
154
+ 'provider_member_url': '{{template_config.user.provider_member_url}}',
155
+ 'provider_privacy_url': '{{template_config.user.provider_privacy_url}}',
154
156
  'mode': 'na',
155
- 'user_name': '{{site.data.template_settings.user.user_name}}',
157
+ 'user_name': '{{template_config.user.user_name}}',
156
158
  'locale': navigator.language || navigator.userLanguage,
157
159
  'requested_page': 'na',
158
160
  'previous_page': 'na',
159
- 'last_pager': 'na',
161
+ 'last_pager': '/pages/public/blog/navigator/',
160
162
  'cookies_accepted': 'pending'
161
163
  };
162
164
 
@@ -187,6 +189,7 @@ var j1 = (function () {
187
189
  init: function ( options ) {
188
190
  var url = new parseURL(window.location.href)
189
191
  var baseUrl = url.origin;
192
+
190
193
  var defaults = {
191
194
  toc: false,
192
195
  scrollbar: false,
@@ -194,7 +197,16 @@ var j1 = (function () {
194
197
  };
195
198
  var args = $.extend(defaults, options);
196
199
 
197
- j1.adapter.logger.init();
200
+ {% comment %} Test (doesn't work!!!)
201
+ -------------------------------------------------------------------------- {% endcomment %}
202
+ // $(function() {
203
+ // window.addEventListener("DOMContentLoaded", function(event) {
204
+ // var logger = log4javascript.getLogger('j1.shim.loader');
205
+ // logger.info('DOMContentLoaded');
206
+ // });
207
+ // });
208
+
209
+ // j1.adapter.logger.init();
198
210
 
199
211
  {% comment %} Set global variables
200
212
  -------------------------------------------------------------------------- {% endcomment %}
@@ -216,7 +228,7 @@ var j1 = (function () {
216
228
  data: user_state
217
229
  });
218
230
 
219
- // Detect middleware (mode === 'app') and update user state cookie
231
+ // Detect middleware (mode 'app') and update user state cookie
220
232
  // -----------------------------------------------------------------------
221
233
  if (user_state.mode === 'na') {
222
234
  var url = new parseURL(window.location.href)
@@ -285,96 +297,118 @@ var j1 = (function () {
285
297
  logText = j1.getMessage('info', 'getState', 'text');
286
298
  logText = logText + j1.getMessage('info', 'getState', 'data_objects');
287
299
  logText = logText + j1.getMessage('info', 'getState', 'finished');
288
- j1.logger(logger, 'info', logText);
300
+ j1.logger('j1.init.deferred', 'info', logText);
289
301
 
290
302
  logText = j1.getMessage('info', 'setState', 'text');
291
303
  logText = logText + j1.getMessage('info', 'setState', 'started');
292
- j1.logger(logger, 'info', logText);
304
+ j1.logger('j1.init.deferred', 'info', logText);
293
305
  executeFunctionByName('j1.setState', window, state);
294
306
 
295
- // ---------------------------------------------------------------------
296
- // Initialize global modules (sequential asynchronous)
297
- // ---------------------------------------------------------------------
298
- $.when(
299
- j1.adapter.master_header.loadHeader(),
300
- j1.adapter.navigator.init())
301
- .then (function(loggerData, headerData, navData) {
307
+ // set logger for callback|anonymous
308
+ var logger = log4javascript.getLogger('j1.init.deferred');
302
309
 
303
- if ( args.scrollbar === 'false' ) {
304
- $('body').addClass( 'hide-scrollbar' )
305
- $('html').addClass( 'hide-scrollbar-moz' )
306
- }
310
+ if ( args.scrollbar === 'false' ) {
311
+ $('body').addClass( 'hide-scrollbar' )
312
+ $('html').addClass( 'hide-scrollbar-moz' )
313
+ }
307
314
 
308
- logger.info('read user state from cookie');
309
- user_state = j1.readCookie(cookie_names.user_session);
315
+ logger.info('read user state from cookie');
316
+ user_state = j1.readCookie(cookie_names.user_session);
310
317
 
311
- // process|update UserState
312
- //
313
- themeName = user_state.theme_name;
314
- themeCss = user_state.theme_css;
315
- themeExtensionCss = user_state.theme_extension_css;
318
+ // process|update UserState
319
+ //
320
+ themeName = user_state.theme_name;
321
+ themeCss = user_state.theme_css;
322
+ themeExtensionCss = user_state.theme_extension_css;
316
323
 
317
- // save last page access
318
- // See: https://stackoverflow.com/questions/3528324/how-to-get-the-previous-url-in-javascript
319
- // See: https://developer.mozilla.org/de/docs/Web/API/Window/history
320
- //
321
- user_state.timestamp = timestamp_now;
322
- referrer = new parseURL(document.referrer);
323
- current_page = window.location.pathname;
324
- user_state.requested_page = current_page;
325
- user_state.previous_page = referrer.search === '' ?
326
- (referrer.pathname === '' ? current_page : referrer.pathname) :
327
- (user_state.previous_page === '' || user_state.previous_page === 'na' ? '/' : user_state.previous_page);
328
-
329
- // calculate last 'pager' if any
330
- //
331
- if (rePager.test(user_state.previous_page)) {
332
- last_pager = user_state.previous_page;
333
- user_state.last_pager = last_pager;
334
- } else {
335
- last_pager = user_state.last_pager;
336
- }
324
+ // save last page access
325
+ // See: https://stackoverflow.com/questions/3528324/how-to-get-the-previous-url-in-javascript
326
+ // See: https://developer.mozilla.org/de/docs/Web/API/Window/history
327
+ //
328
+ user_state.timestamp = timestamp_now;
329
+ referrer = new parseURL(document.referrer);
330
+ current_page = window.location.pathname;
331
+ user_state.requested_page = current_page;
332
+ user_state.previous_page = referrer.search === '' ?
333
+ (referrer.pathname === '' ? current_page : referrer.pathname) :
334
+ (user_state.previous_page === '' || user_state.previous_page === 'na'
335
+ ? '/'
336
+ : user_state.previous_page);
337
+
338
+ // calculate last 'pager' if any
339
+ //
340
+ if (rePager.test(user_state.previous_page)) {
341
+ last_pager = user_state.previous_page;
342
+ user_state.last_pager = last_pager;
343
+ } else {
344
+ last_pager = user_state.last_pager;
345
+ }
337
346
 
338
- logger.info('update user state cookie');
339
- j1.writeCookie({
340
- name: cookie_names.user_session,
341
- data: user_state
342
- });
347
+ logger.info('update user state cookie');
348
+ j1.writeCookie({
349
+ name: cookie_names.user_session,
350
+ data: user_state
351
+ });
343
352
 
344
- // -------------------------------------------------------------------
345
- // Initialize page resources for global modules
346
- // -------------------------------------------------------------------
347
- $.when(
348
- j1.initBanner(settings),
349
- j1.initPanel(settings),
350
- j1.initFooter(settings) )
351
- .then (function (initBanner_response, initPanel_response, initFooter_response) {
352
- var logger = log4javascript.getLogger('j1.init.deferred'); // set logger for callback|anonymous
353
- state = j1.getMessage('info', 'setState', 'running');
354
- logText = j1.getMessage('info', 'setState', 'text');
355
- logText = logText + j1.getMessage('info', 'setState', 'running');
356
- j1.logger(logger, 'info', logText);
357
-
358
- user_state.timestamp = timestamp_now;
359
- j1.writeCookie({
360
- name: cookie_names.user_session,
361
- data: user_state
362
- });
363
- // jadams 2019-01-20: enabled only drawer, switch and ripples
364
- j1.initMDB(settings); // Initialize BMD JS components
365
- j1.initClipboard(settings);
366
- j1.displayPage(settings);
367
- }) // END load HTLM data
368
- .catch(function(error) {
369
- var logger = log4javascript.getLogger('j1.init.deferred'); // set logger for callback|anonymous
370
- json_data = JSON.stringify(error, undefined, 2);
371
- logText = 'deferred: ' + json_data;
372
- logger.error(logText);
373
- });
353
+ // ---------------------------------------------------------------------
354
+ // Initialize page resources for global modules (sequential asynchronous)
355
+ // ---------------------------------------------------------------------
356
+ $.when(
357
+ j1.initBanner(settings),
358
+ j1.initPanel(settings),
359
+ j1.initFooter(settings) )
360
+ .then (function (initBanner_response, initPanel_response, initFooter_response) {
361
+ var logger = log4javascript.getLogger('j1.init.deferred');
362
+
363
+ // Wait for LAST thenable (footer) in chain finishes
364
+ var footerLoaded = setInterval(function() {
365
+ if ( j1.getState() == 'footer_loaded') {
366
+ // clear interval checking
367
+ clearInterval(footerLoaded);
368
+ logger.info('Loading HTML data finished');
369
+
370
+ // Continue to run initializers
371
+ //
372
+ state = j1.getMessage('info', 'setState', 'running');
373
+ logText = j1.getMessage('info', 'setState', 'text');
374
+ logText = logText + j1.getMessage('info', 'setState', 'running');
375
+ j1.logger('j1.init.deferred', 'info', logText);
376
+
377
+ user_state.timestamp = timestamp_now;
378
+ j1.writeCookie({
379
+ name: cookie_names.user_session,
380
+ data: user_state
381
+ });
382
+
383
+ // ---------------------------------------------------------------
384
+ // Finalize|Display page (sequential asynchronous)
385
+ // ---------------------------------------------------------------
386
+ $.when(
387
+ // jadams 2019-01-20: for MDB, enabled only drawer, switch and ripples
388
+ j1.initMDB(settings),
389
+ j1.initClipboard(settings),
390
+ j1.finalizePage(settings))
391
+ .then (function () {
392
+ j1.displayPage();
393
+ })
394
+ .catch(function(error) {
395
+ var logger = log4javascript.getLogger('j1.init.deferred');
396
+ json_data = JSON.stringify(error, undefined, 2);
397
+ logText = 'deferred: ' + json_data;
398
+ logger.error(logText);
399
+ });
400
+ }
401
+ }, 25); // END 'footerLoaded'
402
+ }) // END load global modules
403
+ .catch(function(error) {
404
+ var logger = log4javascript.getLogger('j1.init.deferred');
405
+ json_data = JSON.stringify(error, undefined, 2);
406
+ logText = 'deferred: ' + json_data;
407
+ logger.error(logText);
374
408
  });
375
- }) // END load template data
409
+ }) // END load global data objects
376
410
  .catch(function(error) {
377
- var logger = log4javascript.getLogger('j1.init.deferred'); // set logger for callback|anonymous
411
+ var logger = log4javascript.getLogger('j1.init.deferred');
378
412
  json_data = JSON.stringify(error, undefined, 2);
379
413
  logText = 'deferred: ' + json_data;
380
414
  logger.error(logText);
@@ -390,6 +424,7 @@ var j1 = (function () {
390
424
  var logger = log4javascript.getLogger('j1.initBanner');
391
425
  var banner = [];
392
426
  var bannerOptions = [];
427
+ var mod = 'j1';
393
428
 
394
429
  {% comment %}
395
430
  Closure to pass additional data (e.g. #banner_id) to AJAX load callback
@@ -504,6 +539,7 @@ var j1 = (function () {
504
539
  initPanel: function ( options ) {
505
540
  var logger = log4javascript.getLogger('j1.initPanel');
506
541
  var panel = [];
542
+ var mod = 'j1';
507
543
 
508
544
  {% comment %} Closure to pass additional data (e.g. panel_id) to AJAX load callback
509
545
  See: http://stackoverflow.com/questions/939032/jquery-pass-more-parameters-into-callback
@@ -589,6 +625,7 @@ var j1 = (function () {
589
625
  // -------------------------------------------------------------------------
590
626
  initFooter: function ( options ) {
591
627
  var logger = log4javascript.getLogger('j1.initFooter');
628
+ var mod = 'j1';
592
629
 
593
630
  logText = 'initialization is being started';
594
631
  logger.info(logText);
@@ -598,6 +635,11 @@ var j1 = (function () {
598
635
  if ( statusTxt == 'success' ) {
599
636
  logText = 'footer on ID ' +footer_id+ ' loaded successfully';
600
637
  logger.info(logText);
638
+
639
+ state = 'footer_loaded';
640
+ logger.info('Set state for module ' + mod + ': ' + state);
641
+ executeFunctionByName(mod + '.setState', window, state)
642
+
601
643
  logText = 'initialization finished';
602
644
  logger.info(logText);
603
645
  }
@@ -678,17 +720,17 @@ var j1 = (function () {
678
720
  }, // END initClipboard
679
721
 
680
722
  // -------------------------------------------------------------------------
681
- // Show the page after timeout of {{hideOnReload}} ms
723
+ //
682
724
  // Display the page if the (text) header is signaled as 'initialized'
683
725
  // AND the menubar is signaled as (state) 'finished'
684
726
  // -------------------------------------------------------------------------
685
- displayPage: function ( options ) {
686
- var logger = log4javascript.getLogger('j1.displayPage');
727
+ finalizePage: function ( options ) {
728
+ var logger = log4javascript.getLogger('j1.finalizePage');
687
729
  var user_state = j1.readCookie(cookie_names.user_session);
688
730
  var cookie_consent = j1.readCookie(cookie_names.cookie_consent);
689
731
  var settings = options;
690
732
  var authClientEnabled = j1.authClientEnabled();
691
- var flickerTimeout = {{site.data.template_settings.flicker_timeout}};
733
+ var flickerTimeout = {{template_config.flicker_timeout}};
692
734
  var provider;
693
735
  var previous_page;
694
736
  var appDetected;
@@ -697,11 +739,11 @@ var j1 = (function () {
697
739
 
698
740
  user_state.current_page = window.location.pathname;
699
741
 
700
- logText = 'Finalize current page';
742
+ logText = 'Finalize page';
701
743
  logger.info(logText);
702
744
 
703
745
  // -----------------------------------------------------------------------
704
- // App mode
746
+ // APP mode
705
747
  // -----------------------------------------------------------------------
706
748
  if (user_state.mode === 'app') {
707
749
  var url = new parseURL(window.location.href)
@@ -712,7 +754,7 @@ var j1 = (function () {
712
754
  $.when($.ajax(ep))
713
755
  .then(function(data) {
714
756
  // set logger for callback|anonymous
715
- var logger = log4javascript.getLogger('j1.displayPage.deferred');
757
+ var logger = log4javascript.getLogger('j1.finalizePage.deferred');
716
758
  appDetected = true;
717
759
 
718
760
  user_state = j1.mergeData(user_state, data);
@@ -744,86 +786,6 @@ var j1 = (function () {
744
786
  }
745
787
  } // END check protected pages
746
788
 
747
- setTimeout( function() {
748
- // display current page
749
- $('#no_flicker').css('display', 'block');
750
-
751
- // Because of async (HTML) data loads, Event Handlers are called late
752
- j1.core.navigator.eventHandler();
753
- j1.core.cookie_consent.eventHandler( cookie_consent );
754
-
755
- user_state = j1.readCookie(cookie_names.user_session);
756
- // previous_page = j1.getPrevPage();
757
-
758
- // Update sidebar
759
- logger.info('Update sidebar');
760
- j1.core.navigator.updateSidebar();
761
-
762
- if ( user_state.previous_page !== user_state.current_page ) {
763
- logText = 'Page change detected';
764
- logger.info(logText);
765
- logText = 'Previous page: ' + user_state.previous_page;
766
- logger.info(logText);
767
- logText = 'Current page: ' + user_state.current_page;
768
- logger.info(logText);
769
- }
770
-
771
- // Show ControlCenter Icon
772
- $('#quickLinksControlCenterButton').css('display', 'block');
773
-
774
- // Show or Hide cookie icon
775
- if ( user_state.cookies_accepted === 'accepted' ) {
776
- // Display cookie icon
777
- $('#quickLinksCookieButton').css('display', 'block');
778
- } else {
779
- logText = 'Hide cookie icon';
780
- logger.info(logText);
781
- // Display cookie icon
782
- $('#quickLinksCookieButton').css('display', 'none');
783
- }
784
-
785
- // Show or Hide SignInOut|ControlCenter Icons
786
- if ( appDetected && authClientEnabled ) {
787
-
788
- if ( user_state.authenticated === 'true' ) {
789
- // Set SignOut
790
- $('#navLinkSignInOut').attr("data-target","#modalOmniSignOut");
791
- $('#iconSignInOut').removeClass( "mdi-login" ).addClass( "mdi-logout" );
792
- } else {
793
- // Set SignIn
794
- $('#navLinkSignInOut').attr("data-target","#modalOmniSignIn");
795
- $('#iconSignInOut').removeClass( "mdi-logout" ).addClass( "mdi-login" );
796
- }
797
- logger.info('Show SignInOut icon');
798
- $('#quickLinksSignInOutButton').css('display', 'block');
799
- } else {
800
- logger.info('Show SignInOut icon');
801
- $('#quickLinksSignInOutButton').css('display', 'block');
802
- }
803
-
804
- // If the page requested contains an anchor element,
805
- // do a smooth scroll
806
- j1.scrollTo();
807
-
808
- // Set|Log status
809
- state = 'finished';
810
- logText = 'state: ' + state;
811
- logger.info(logText);
812
- logText = "J1 Template successfully initialized";
813
- logger.info(logText);
814
-
815
- }, flickerTimeout ); // END App mode
816
- });
817
- } else {
818
- // ---------------------------------------------------------------------
819
- // web mode
820
- // ---------------------------------------------------------------------
821
-
822
- // pause the display of current page for flicker timeout [ms]
823
- setTimeout( function() {
824
- // display current page
825
- $('#no_flicker').css('display', 'block');
826
-
827
789
  // Because of async (HTML) data loads, Event Handlers are called late
828
790
  j1.core.navigator.eventHandler();
829
791
  j1.core.cookie_consent.eventHandler( cookie_consent );
@@ -835,7 +797,6 @@ var j1 = (function () {
835
797
  logger.info('Update sidebar');
836
798
  j1.core.navigator.updateSidebar();
837
799
 
838
- current_page = window.location.pathname;
839
800
  if ( user_state.previous_page !== user_state.current_page ) {
840
801
  logText = 'Page change detected';
841
802
  logger.info(logText);
@@ -845,7 +806,10 @@ var j1 = (function () {
845
806
  logger.info(logText);
846
807
  }
847
808
 
848
- //Show or Hide cookie icon
809
+ // Show ControlCenter Icon
810
+ $('#quickLinksControlCenterButton').css('display', 'block');
811
+
812
+ // Show or Hide cookie icon
849
813
  if ( user_state.cookies_accepted === 'accepted' ) {
850
814
  // Display cookie icon
851
815
  $('#quickLinksCookieButton').css('display', 'block');
@@ -856,21 +820,96 @@ var j1 = (function () {
856
820
  $('#quickLinksCookieButton').css('display', 'none');
857
821
  }
858
822
 
859
- // If the page requested contains an anchor element,
860
- // do a smooth scroll to
861
- j1.scrollTo();
823
+ // Show or Hide SignInOut|ControlCenter Icons
824
+ if ( appDetected && authClientEnabled ) {
862
825
 
863
- // Set|Log status
864
- state = 'finished';
865
- logText = 'state: ' + state;
826
+ if ( user_state.authenticated === 'true' ) {
827
+ // Set SignOut
828
+ $('#navLinkSignInOut').attr("data-target","#modalOmniSignOut");
829
+ $('#iconSignInOut').removeClass( "mdi-login" ).addClass( "mdi-logout" );
830
+ } else {
831
+ // Set SignIn
832
+ $('#navLinkSignInOut').attr("data-target","#modalOmniSignIn");
833
+ $('#iconSignInOut').removeClass( "mdi-logout" ).addClass( "mdi-login" );
834
+ }
835
+ logger.info('Show SignInOut icon');
836
+ $('#quickLinksSignInOutButton').css('display', 'block');
837
+ } else {
838
+ logger.info('Show SignInOut icon');
839
+ $('#quickLinksSignInOutButton').css('display', 'block');
840
+ }
841
+ });
842
+ } else {
843
+ // ---------------------------------------------------------------------
844
+ // WEB mode
845
+ // ---------------------------------------------------------------------
846
+
847
+ // Because of async (HTML) data loads, Event Handlers are called late
848
+ j1.core.navigator.eventHandler();
849
+ j1.core.cookie_consent.eventHandler( cookie_consent );
850
+
851
+ user_state = j1.readCookie(cookie_names.user_session);
852
+
853
+ // Update sidebar
854
+ logger.info('Update sidebar');
855
+ j1.core.navigator.updateSidebar();
856
+
857
+ current_page = window.location.pathname;
858
+ if ( user_state.previous_page !== user_state.current_page ) {
859
+ logText = 'Page change detected';
860
+ logger.info(logText);
861
+ logText = 'Previous page: ' + user_state.previous_page;
866
862
  logger.info(logText);
867
- logText = "J1 Template successfully initialized";
863
+ logText = 'Current page: ' + user_state.current_page;
868
864
  logger.info(logText);
869
- }, flickerTimeout ); // END Web mode
865
+ }
866
+
867
+ // Show or Hide cookie icon
868
+ if ( user_state.cookies_accepted === 'accepted' ) {
869
+ // Display cookie icon
870
+ $('#quickLinksCookieButton').css('display', 'block');
871
+ } else {
872
+ logText = 'Hide cookie icon';
873
+ logger.info(logText);
874
+ // Display cookie icon
875
+ $('#quickLinksCookieButton').css('display', 'none');
876
+ }
870
877
 
871
878
  return true;
872
879
  }
873
880
 
881
+ }, // END finalizePage
882
+
883
+ // -------------------------------------------------------------------------
884
+ // displayPage
885
+ // Show the page after timeout of {{hideOnReload}} ms
886
+ // -------------------------------------------------------------------------
887
+ // NOTE:
888
+ // jadams, 2019-08-06: flickerTimeout not used since new strategy
889
+ // (Promises|jQuery thenables) are used for initialization.
890
+ // Currently, the timeout cause loading the image header to
891
+ // fail. Backstretch API doesn't calculate image sizes correctly
892
+ // because (most probably) the page is 'visible' too late.
893
+ // -------------------------------------------------------------------------
894
+ displayPage: function ( options ) {
895
+ var logger = log4javascript.getLogger('j1.displayPage');
896
+ var flickerTimeout = {{template_config.flicker_timeout}};
897
+
898
+ setTimeout( function() {
899
+ // Display page
900
+ $('#no_flicker').css('display', 'block');
901
+ // If the page requested contains an anchor element,
902
+ // do a smooth scroll to
903
+ j1.scrollTo();
904
+
905
+ // Set|Log status
906
+ state = 'finished';
907
+ logText = 'state: ' + state;
908
+ logger.info(logText);
909
+ logText = "J1 Template successfully initialized";
910
+ logger.info(logText);
911
+ }, flickerTimeout);
912
+
874
913
  }, // END displayPage
875
914
 
876
915
  // -------------------------------------------------------------------------
@@ -945,8 +984,8 @@ var j1 = (function () {
945
984
  // -------------------------------------------------------------------------
946
985
  scrollTo: function () {
947
986
  // Unclear why a offset correction is needed (sometimes ???)
948
- var offset_correction = {{toccer_config.defaults.headingsOffset}};
949
- var offset = {{toccer_config.defaults.smoothScrollOffset}};
987
+ var offset_correction = {{toccer_options.headingsOffset}};
988
+ var offset = {{toccer_options.smoothScrollOffset}};
950
989
  var anchor_id = window.location.href.split("#")[1];
951
990
  var selector;
952
991
  var heading;
@@ -959,7 +998,7 @@ var j1 = (function () {
959
998
 
960
999
  // scroll only, if an anchor is given with URL
961
1000
  if (selector.length) {
962
- var delay = {{toccer_config.defaults.smoothScrollDuration}};
1001
+ var delay = {{toccer_options.smoothScrollDuration}};
963
1002
  var scroll_to = parseInt( selector.offset().top - offset - offset_correction );
964
1003
  //var scroll_to = selector.offset().top;
965
1004
  $('html,body').animate({scrollTop: scroll_to}, delay,
@@ -1137,7 +1176,8 @@ var j1 = (function () {
1137
1176
  // Load color definitions from colors_data_path
1138
1177
  // -------------------------------------------------------------------------
1139
1178
  getColorData: function (data_path) {
1140
- var logger = log4javascript.getLogger('j1.getColorData');
1179
+ var logger = log4javascript.getLogger('j1.getColorData');
1180
+ var j1_colors = {};
1141
1181
 
1142
1182
  return $.ajax({
1143
1183
  url: data_path,
@@ -1199,7 +1239,8 @@ var j1 = (function () {
1199
1239
  // Load loadFontSize definitions from font_size_data_path
1200
1240
  // -------------------------------------------------------------------------
1201
1241
  getFontSizeData: function (data_path) {
1202
- var logger = log4javascript.getLogger('j1.getFontSizeData');
1242
+ var logger = log4javascript.getLogger('j1.getFontSizeData');
1243
+ var j1_font_sizes = {};
1203
1244
 
1204
1245
  return $.ajax({
1205
1246
  url: data_path,
@@ -1239,7 +1280,8 @@ var j1 = (function () {
1239
1280
  var reCSS = /\bpx\b|\brem\b|\bem\b|\%|\binherit\b|\binitial\b|\bunset\b/;
1240
1281
  var isCSS = size.match(reCSS);
1241
1282
 
1242
- if ( typeof j1_font_sizes[size] != "undefined" ) {
1283
+ // if ( typeof j1_font_sizes[size] != "undefined" ) {
1284
+ if ( typeof j1.fonts[size] != "undefined" ) {
1243
1285
  return j1.fonts[size];
1244
1286
  } else if (isCSS) {
1245
1287
  return size;
@@ -1257,9 +1299,10 @@ var j1 = (function () {
1257
1299
  // Loads the message catalog object
1258
1300
  // -------------------------------------------------------------------------
1259
1301
  getMessageCatalog: function (data_path /*, request_type, data_type*/) {
1260
- var logger = log4javascript.getLogger('j1.loadMessageCatalog');
1261
- var type = typeof request_type == 'undefined' || request_type == '' ? 'GET' : request_type;
1262
- var data_type = typeof data_type == 'undefined' || data_type == '' ? 'text' : data_type;
1302
+ var logger = log4javascript.getLogger('j1.loadMessageCatalog');
1303
+ var message_catalog = {};
1304
+ var type = typeof request_type == 'undefined' || request_type == '' ? 'GET' : request_type;
1305
+ var data_type = typeof data_type == 'undefined' || data_type == '' ? 'text' : data_type;
1263
1306
  var messageData;
1264
1307
  var logBase;
1265
1308
  var logText;
@@ -1568,7 +1611,7 @@ var j1 = (function () {
1568
1611
  // Get a log message from the log message catalog object
1569
1612
  // -------------------------------------------------------------------------
1570
1613
  getMessage: function (level, message, property) {
1571
- var message = message_catalog[level][message]["message"][property];
1614
+ var message = j1.messages[level][message]["message"][property];
1572
1615
 
1573
1616
  return message;
1574
1617
  }, // END getMessage