j1-template 2024.0.0 → 2024.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/apps/public/cc/cc.yml +35 -33
  3. data/assets/data/cookieconsent.html +15 -106
  4. data/assets/data/docsearch.html +155 -0
  5. data/assets/data/iframes.html +96 -0
  6. data/assets/data/quicklinks.html +10 -0
  7. data/assets/data/speak2me.html +4 -3
  8. data/assets/data/translator.html +27 -147
  9. data/assets/themes/j1/adapter/js/{chat.js → chatbot.js} +20 -18
  10. data/assets/themes/j1/adapter/js/clipboard.js +1 -1
  11. data/assets/themes/j1/adapter/js/docsearch.js +270 -0
  12. data/assets/themes/j1/adapter/js/gallery.js +1 -1
  13. data/assets/themes/j1/adapter/js/iframer.js +350 -0
  14. data/assets/themes/j1/adapter/js/j1.js +16 -21
  15. data/assets/themes/j1/adapter/js/mmenu.js +1 -1
  16. data/assets/themes/j1/adapter/js/navigator.js +4 -0
  17. data/assets/themes/j1/adapter/js/rouge.js +1 -1
  18. data/assets/themes/j1/adapter/js/speak2me.js +2 -2
  19. data/assets/themes/j1/adapter/js/translator.js +5 -0
  20. data/assets/themes/j1/core/css/animate.css +4 -4
  21. data/assets/themes/j1/core/css/animate.min.css +1 -1
  22. data/assets/themes/j1/core/js/template.js +19 -7
  23. data/assets/themes/j1/core/js/template.min.js +1 -1
  24. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  25. data/assets/themes/j1/modules/{chatgpt → chatbot}/css/theme/uno.css +10 -0
  26. data/assets/themes/j1/modules/chatbot/css/theme/uno.min.css +16 -0
  27. data/assets/themes/j1/modules/iframeResizer/LICENSE +1 -1
  28. data/assets/themes/j1/modules/iframeResizer/README.md +105 -0
  29. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.absolute.html +12 -11
  30. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.content.html +22 -28
  31. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.hover.html +9 -8
  32. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.nested.html +12 -12
  33. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.textarea.html +6 -8
  34. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.tolerance.html +11 -11
  35. data/assets/themes/j1/modules/iframeResizer/{examples → example}/index.html +43 -19
  36. data/assets/themes/j1/modules/iframeResizer/{examples → example}/two.html +8 -11
  37. data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.js +84 -68
  38. data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.min.js +10 -8
  39. data/assets/themes/j1/modules/iframeResizer/js/resizer.js +149 -72
  40. data/assets/themes/j1/modules/iframeResizer/js/resizer.min.js +11 -7
  41. data/lib/j1/version.rb +1 -1
  42. data/lib/starter_web/README.md +5 -5
  43. data/lib/starter_web/_config.yml +1 -1
  44. data/lib/starter_web/_data/modules/{chat.yml → chatbots.yml} +2 -2
  45. data/lib/starter_web/_data/modules/defaults/{chat.yml → chatbots.yml} +2 -2
  46. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +3 -75
  47. data/lib/starter_web/_data/modules/defaults/docsearch.yml +87 -0
  48. data/lib/starter_web/_data/modules/defaults/{framer.yml → iframer.yml} +56 -21
  49. data/lib/starter_web/_data/modules/defaults/navigator.yml +4 -0
  50. data/lib/starter_web/_data/modules/defaults/translator.yml +11 -52
  51. data/lib/starter_web/_data/modules/{framer.yml → docsearch.yml} +20 -9
  52. data/lib/starter_web/_data/modules/iframer.yml +103 -0
  53. data/lib/starter_web/_data/modules/navigator_menu.yml +39 -1
  54. data/lib/starter_web/_data/resources.yml +41 -19
  55. data/lib/starter_web/_data/templates/feed.xml +1 -1
  56. data/lib/starter_web/_plugins/asciidoctor/iframe-block.rb +46 -0
  57. data/lib/starter_web/_plugins/index/lunr.rb +3 -2
  58. data/lib/starter_web/package.json +74 -75
  59. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +1 -1
  60. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +1 -1
  61. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +1 -1
  62. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/111_about_the_converter.asciidoc +1 -2
  63. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/112_getting_started.asciidoc +1 -0
  64. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/211_language_overview.asciidoc +0 -1
  65. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/212_values.asciidoc +1 -2
  66. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/213_fonts.asciidoc +4 -1
  67. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/a2p.bat +2 -2
  68. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/a2p.sh +2 -3
  69. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.a2p +5 -9
  70. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -1
  71. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.pdf +27727 -0
  72. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +1 -1
  73. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +1 -1
  74. data/lib/starter_web/pages/public/features/general.adoc +1 -1
  75. data/lib/starter_web/pages/public/features/template.adoc +1 -1
  76. data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +1 -1
  77. data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +1 -1
  78. data/lib/starter_web/pages/public/learn/roundtrip/highlghter_rouge.adoc +1 -1
  79. data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.adoc +1 -1
  80. data/lib/starter_web/pages/public/learn/roundtrip/modal_extentions.adoc +1 -1
  81. data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +1 -1
  82. data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +1 -1
  83. data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +1 -1
  84. data/lib/starter_web/pages/public/learn/roundtrip/typography.adoc +1 -1
  85. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +1 -1
  86. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +1 -1
  87. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +1 -1
  88. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +1 -1
  89. data/lib/starter_web/pages/public/plans/plans.adoc +1 -1
  90. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.hover.html +69 -0
  91. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.nested.html +75 -0
  92. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.textarea.html +57 -0
  93. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/my.content.html +112 -0
  94. data/lib/starter_web/pages/public/tools/previewer/iframer_documents/iframe.content.html +51 -0
  95. data/lib/starter_web/pages/public/tools/previewer/iframer_documents/iframe.docsearch.info.html +84 -0
  96. data/lib/starter_web/pages/public/tools/previewer/preview_bootstrap_theme.adoc +1 -1
  97. data/lib/starter_web/pages/public/tools/previewer/preview_docsearch.adoc +92 -0
  98. data/lib/starter_web/pages/public/tools/previewer/preview_iframer.adoc +106 -0
  99. metadata +34 -25
  100. data/assets/themes/j1/adapter/js/framer.js +0 -237
  101. data/assets/themes/j1/modules/chat/css/theme/uno.css +0 -92
  102. data/assets/themes/j1/modules/chat/css/theme/uno.min.css +0 -16
  103. data/assets/themes/j1/modules/chatgpt/css/theme/uno.min.css +0 -16
  104. data/lib/starter_web/_data/_defaults/private.yml +0 -129
  105. data/lib/starter_web/_data/modules/nbinteract.yml +0 -476
  106. data/lib/starter_web/utilsrv/_defaults/package.json +0 -57
  107. data/lib/starter_web/utilsrv/package.json +0 -57
  108. data/lib/starter_web/utilsrv/server.js +0 -775
@@ -0,0 +1,270 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/themes/j1/adapter/js/docsearch.js
10
+ # Liquid template to adapt the DocSearch module
11
+ #
12
+ # Product/Info:
13
+ # https://jekyll.one
14
+ # Copyright (C) 2023, 2024 Juergen Adams
15
+ #
16
+ # J1 Template is licensed under the MIT License.
17
+ # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
18
+ # -----------------------------------------------------------------------------
19
+ # Test data:
20
+ # {{ liquid_var | debug }}
21
+ # docsearch_options: {{ docsearch_options | debug }}
22
+ # -----------------------------------------------------------------------------
23
+ {% endcomment %}
24
+
25
+ {% comment %} Liquid procedures
26
+ -------------------------------------------------------------------------------- {% endcomment %}
27
+
28
+ {% comment %} Set global settings
29
+ -------------------------------------------------------------------------------- {% endcomment %}
30
+ {% assign environment = site.environment %}
31
+ {% assign asset_path = "/assets/themes/j1" %}
32
+
33
+ {% comment %} Process YML config data
34
+ ================================================================================ {% endcomment %}
35
+
36
+ {% comment %} Set config files
37
+ -------------------------------------------------------------------------------- {% endcomment %}
38
+ {% assign template_config = site.data.j1_config %}
39
+ {% assign blocks = site.data.blocks %}
40
+ {% assign modules = site.data.modules %}
41
+
42
+ {% comment %} Set config data (settings only)
43
+ -------------------------------------------------------------------------------- {% endcomment %}
44
+ {% assign docsearch_defaults = modules.defaults.docsearch.defaults %}
45
+ {% assign docsearch_settings = modules.docsearch.settings %}
46
+
47
+ {% comment %} Set config options (settings only)
48
+ -------------------------------------------------------------------------------- {% endcomment %}
49
+ {% assign docsearch_options = docsearch_defaults | merge: docsearch_settings %}
50
+
51
+ {% comment %} Variables
52
+ -------------------------------------------------------------------------------- {% endcomment %}
53
+ {% assign comments = docsearch_options.enabled %}
54
+
55
+ {% comment %} Detect prod mode
56
+ -------------------------------------------------------------------------------- {% endcomment %}
57
+ {% assign production = false %}
58
+ {% if environment == 'prod' or environment == 'production' %}
59
+ {% assign production = true %}
60
+ {% endif %}
61
+
62
+ /*
63
+ # -----------------------------------------------------------------------------
64
+ # ~/assets/themes/j1/adapter/js/docsearch.js
65
+ # J1 Adapter for the DocSearch module
66
+ #
67
+ # Product/Info:
68
+ # https://jekyll.one
69
+ #
70
+ # Copyright (C) 2023, 2024 Juergen Adams
71
+ #
72
+ # J1 Template is licensed under the MIT License.
73
+ # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
74
+ # -----------------------------------------------------------------------------
75
+ # Adapter generated: {{site.time}}
76
+ # -----------------------------------------------------------------------------
77
+ */
78
+
79
+ // -----------------------------------------------------------------------------
80
+ // ESLint shimming
81
+ // -----------------------------------------------------------------------------
82
+ /* eslint indent: "off" */
83
+ // -----------------------------------------------------------------------------
84
+ 'use strict';
85
+ j1.adapter.docsearch = (function (j1, window) {
86
+
87
+ {% comment %} Set global variables
88
+ -------------------------------------------------------------------------------- {% endcomment %}
89
+ var environment = '{{environment}}';
90
+ var state = 'not_started';
91
+ var cookie_names = j1.getCookieNames();
92
+ var docsearchDefaults;
93
+ var docsearchSettings;
94
+ var docsearchOptions;
95
+ var docsearchModal;
96
+ var modal_container;
97
+ var user_consent;
98
+ var _this;
99
+ var logger;
100
+ var logText;
101
+
102
+ // ---------------------------------------------------------------------------
103
+ // Main object
104
+ // ---------------------------------------------------------------------------
105
+ return {
106
+
107
+ // -------------------------------------------------------------------------
108
+ // init()
109
+ // initializer
110
+ // -------------------------------------------------------------------------
111
+ init: function () {
112
+
113
+ // -----------------------------------------------------------------------
114
+ // Default module settings
115
+ // -----------------------------------------------------------------------
116
+ docsearchDefaults = $.extend({}, {{docsearch_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
117
+ docsearchSettings = $.extend({}, {{docsearch_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
118
+ docsearchOptions = $.extend(true, {}, docsearchDefaults, docsearchSettings);
119
+
120
+ _this = j1.adapter.docsearch;
121
+ logger = log4javascript.getLogger('j1.adapter.docsearch');
122
+
123
+ _this.setState('started');
124
+ logger.debug('\n' + 'state: ' + _this.getState());
125
+ logger.info('\n' + 'module is being initialized');
126
+
127
+ modal_container = document.createElement('div');
128
+ modal_container.id = 'docsearch_container';
129
+ modal_container.style.display = 'none';
130
+
131
+ modal_container.setAttribute('class', 'modal fade');
132
+ modal_container.setAttribute('tabindex', '-1');
133
+ modal_container.setAttribute('role', 'dialog');
134
+ modal_container.setAttribute('aria-labelledby', 'docsearch_container');
135
+
136
+ document.body.append(modal_container);
137
+
138
+ // -----------------------------------------------------------------------
139
+ // initializer
140
+ // -----------------------------------------------------------------------
141
+ var dependencies_met_page_ready = setInterval (function (options) {
142
+ var pageState = $('#no_flicker').css("display");
143
+ var pageVisible = (pageState == 'block') ? true : false;
144
+ var atticFinished = (j1.adapter.attic.getState() == 'finished') ? true: false;
145
+
146
+ if (j1.getState() === 'finished' && pageVisible && atticFinished) {
147
+
148
+ user_consent = j1.readCookie(cookie_names.user_consent);
149
+ if (!user_consent.personalization) {
150
+ const docsSearchButton = '#quickLinksDocSearchButton';
151
+ $(docsSearchButton).hide();
152
+ return;
153
+ }
154
+
155
+ // -----------------------------------------------------------------
156
+ // data loader
157
+ // -----------------------------------------------------------------
158
+ j1.loadHTML ({
159
+ xhr_container_id: 'docsearch_container',
160
+ xhr_data_path: '/assets/data/docsearch/index.html',
161
+ xhr_data_element: 'docsearch-modal-data' },
162
+ 'j1.adapter.docsearch',
163
+ 'null'
164
+ );
165
+
166
+ // -------------------------------------------------------------------
167
+ // on 'show'
168
+ // -------------------------------------------------------------------
169
+ $('#docsearch_container').on('show.bs.modal', function () {
170
+ //
171
+ // place code here
172
+ //
173
+ }); // END modal on 'show'
174
+
175
+ // -------------------------------------------------------------------
176
+ // on 'shown'
177
+ // -------------------------------------------------------------------
178
+ $('#docsearch_container').on('shown.bs.modal', function () {
179
+ //
180
+ // place code here
181
+ //
182
+ }); // END modal on 'shown'
183
+
184
+ // -------------------------------------------------------------------
185
+ // on 'hidden' (close)
186
+ // -------------------------------------------------------------------
187
+ $('#docsearch_container').on('hidden.bs.modal', function () {
188
+ //
189
+ // do something here
190
+ //
191
+ }); // END modal on 'hidden'
192
+
193
+ _this.setState('finished');
194
+ logger.debug('\n' + 'state: ' + _this.getState());
195
+ logger.info('\n' + 'module initialization finished');
196
+
197
+ clearInterval(dependencies_met_page_ready);
198
+ } // END if
199
+ }, 10); // END dependencies_met_page_ready
200
+ }, // END init
201
+
202
+ // -------------------------------------------------------------------------
203
+ // showDialog()
204
+ // display the dialog
205
+ // -------------------------------------------------------------------------
206
+ showDialog: function () {
207
+ logger.debug('\n' + "showDialog");
208
+
209
+ $('#docsearch_container').modal({
210
+ backdrop: 'static',
211
+ keyboard: false
212
+ });
213
+
214
+ $('#docsearch_container').modal('show');
215
+
216
+ }, // END showDialog
217
+
218
+ // -------------------------------------------------------------------------
219
+ // messageHandler()
220
+ // manage messages send from other J1 modules
221
+ // -------------------------------------------------------------------------
222
+ messageHandler: function (sender, message) {
223
+ var json_message = JSON.stringify(message, undefined, 2);
224
+
225
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
226
+ logger.debug(logText);
227
+
228
+ // -----------------------------------------------------------------------
229
+ // Process commands|actions
230
+ // -----------------------------------------------------------------------
231
+ if (message.type === 'command' && message.action === 'module_initialized') {
232
+ //
233
+ // Place handling of command|action here
234
+ //
235
+ logger.info('\n' + message.text);
236
+ }
237
+
238
+ //
239
+ // Place handling of other command|action here
240
+ //
241
+
242
+ return true;
243
+ }, // END messageHandler
244
+
245
+ // -------------------------------------------------------------------------
246
+ // setState()
247
+ // Sets the current (processing) state of the module
248
+ // -------------------------------------------------------------------------
249
+ setState: function (stat) {
250
+ _this.state = stat;
251
+ }, // END setState
252
+
253
+ // -------------------------------------------------------------------------
254
+ // getState()
255
+ // Returns the current (processing) state of the module
256
+ // -------------------------------------------------------------------------
257
+ getState: function () {
258
+ return _this.state;
259
+ } // END getState
260
+
261
+ }; // END return
262
+ })(j1, window);
263
+
264
+ {% endcapture %}
265
+ {% if production %}
266
+ {{ cache | minifyJS }}
267
+ {% else %}
268
+ {{ cache | strip_empty_lines }}
269
+ {% endif %}
270
+ {% assign cache = nil %}
@@ -147,7 +147,7 @@ j1.adapter.gallery = (function (j1, window) {
147
147
  console.debug('loading HTML portion for all galleries configured');
148
148
  _this.loadGalleryHTML(galleryOptions, galleryOptions.galleries);
149
149
 
150
- var dependencies_met_j1_finished= setInterval(function() {
150
+ var dependencies_met_j1_finished = setInterval(function() {
151
151
  var pageState = $('#no_flicker').css("display");
152
152
  var pageVisible = (pageState == 'block') ? true : false;
153
153
  var atticFinished = (j1.adapter.attic.getState() == 'finished') ? true: false;
@@ -0,0 +1,350 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/themes/j1/adapter/js/iframer.js
10
+ # Liquid template to adapt module iFrameResizer
11
+ #
12
+ # Product/Info:
13
+ # https://jekyll.one
14
+ #
15
+ # Copyright (C) 2023, 2024 Juergen Adams
16
+ #
17
+ # J1 Template is licensed under the MIT License.
18
+ # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
19
+ # -----------------------------------------------------------------------------
20
+ {% endcomment %}
21
+
22
+ {% comment %} Liquid procedures
23
+ -------------------------------------------------------------------------------- {% endcomment %}
24
+
25
+ {% comment %} Set global settings
26
+ -------------------------------------------------------------------------------- {% endcomment %}
27
+ {% assign environment = site.environment %}
28
+ {% assign template_version = site.version %}
29
+
30
+ {% comment %} Process YML config data
31
+ ================================================================================ {% endcomment %}
32
+
33
+ {% comment %} Set config files
34
+ -------------------------------------------------------------------------------- {% endcomment %}
35
+ {% assign template_config = site.data.j1_config %}
36
+ {% assign blocks = site.data.blocks %}
37
+ {% assign modules = site.data.modules %}
38
+
39
+ {% comment %} Set config data
40
+ -------------------------------------------------------------------------------- {% endcomment %}
41
+ {% assign iframer_defaults = modules.defaults.iframer.defaults %}
42
+ {% assign iframer_settings = modules.iframer.settings %}
43
+
44
+ {% comment %} Set config options
45
+ -------------------------------------------------------------------------------- {% endcomment %}
46
+ {% assign iframer_options = iframer_defaults | merge: iframer_settings %}
47
+
48
+ {% comment %} Detect prod mode
49
+ -------------------------------------------------------------------------------- {% endcomment %}
50
+ {% assign production = false %}
51
+ {% if environment == 'prod' or environment == 'production' %}
52
+ {% assign production = true %}
53
+ {% endif %}
54
+
55
+ /*
56
+ # -----------------------------------------------------------------------------
57
+ # ~/assets/themes/j1/adapter/js/iframer.js
58
+ # J1 Adapter for J1 Module iFramer
59
+ #
60
+ # Product/Info:
61
+ # https://jekyll.one
62
+ # http://davidjbradshaw.github.io/iframe-resizer/
63
+ #
64
+ # Copyright (C) 2023, 2024 Juergen Adams
65
+ # Copyright (C) 2013-2023 David J. Bradshaw
66
+ #
67
+ # J1 Template is licensed under the MIT License.
68
+ # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
69
+ # iFrameResizer is licensed under under the MIT License.
70
+ # For details, see http://davidjbradshaw.github.io/iframe-resizer/
71
+ #
72
+ # -----------------------------------------------------------------------------
73
+ # Adapter generated: {{site.time}}
74
+ # -----------------------------------------------------------------------------
75
+ */
76
+
77
+ // -----------------------------------------------------------------------------
78
+ // ESLint shimming
79
+ // -----------------------------------------------------------------------------
80
+ /* eslint indent: "off" */
81
+ // -----------------------------------------------------------------------------
82
+ 'use strict';
83
+ j1.adapter.iframer = (function (j1, window) {
84
+
85
+ {% comment %} Set global variables
86
+ ------------------------------------------------------------------------------ {% endcomment %}
87
+ var environment = '{{environment}}';
88
+ var state = 'not_started';
89
+ var iframerDefaults;
90
+ var iframerSettings;
91
+ var iframerOptions;
92
+ var _this;
93
+ var logger;
94
+ var logText;
95
+ var url;
96
+ var origin;
97
+
98
+ // ---------------------------------------------------------------------------
99
+ // Helper functions
100
+ // ---------------------------------------------------------------------------
101
+
102
+ // ---------------------------------------------------------------------------
103
+ // Main object
104
+ // ---------------------------------------------------------------------------
105
+ return {
106
+
107
+ // -------------------------------------------------------------------------
108
+ // Initializer
109
+ // -------------------------------------------------------------------------
110
+ init: function (options) {
111
+
112
+ url = new URL(window.location.href);
113
+ origin = url.origin;
114
+
115
+ // -----------------------------------------------------------------------
116
+ // Default module settings
117
+ // -----------------------------------------------------------------------
118
+ var settings = $.extend({
119
+ module_name: 'j1.adapter.iframer',
120
+ generated: '{{site.time}}'
121
+ }, options);
122
+
123
+ // -----------------------------------------------------------------------
124
+ // Global variable settings
125
+ // -----------------------------------------------------------------------
126
+ _this = j1.adapter.iframer;
127
+ logger = log4javascript.getLogger('j1.adapter.iframer');
128
+
129
+ // Load module DEFAULTS|CONFIG
130
+ iframerDefaults = $.extend({}, {{iframer_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
131
+ iframerSettings = $.extend({}, {{iframer_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
132
+ iframerOptions = $.extend(true, {}, iframerDefaults, iframerSettings);
133
+
134
+ // load HTML portion for all grids
135
+ console.debug('loading HTML portion for all iFrames configured');
136
+ _this.loadIframeHTML(iframerOptions, iframerOptions.iframes);
137
+
138
+ // initialize state flag
139
+ _this.setState('started');
140
+ logger.debug('\n' + 'state: ' + _this.getState());
141
+ logger.info('\n' + 'module is being initialized');
142
+
143
+ var dependencies_met_j1_finished = setInterval(function() {
144
+ var pageState = $('#no_flicker').css("display");
145
+ var pageVisible = (pageState == 'block') ? true : false;
146
+ var atticFinished = (j1.adapter.attic.getState() == 'finished') ? true: false;
147
+
148
+ if (j1.getState() == 'finished' && pageVisible) {
149
+ // initialize state flag
150
+ _this.setState('started');
151
+ logger.debug('\n' + 'state: ' + _this.getState());
152
+ logger.info('\n' + 'module is being initialized');
153
+
154
+ _this.initialize(iframerOptions);
155
+
156
+ clearInterval(dependencies_met_j1_finished);
157
+ } // END 'finished' && 'pageVisible'
158
+ }, 10);
159
+
160
+ }, // END init
161
+
162
+ // -----------------------------------------------------------------------
163
+ // Load AJAX data and initialize the jg gallery
164
+ // -----------------------------------------------------------------------
165
+ initialize: function (options) {
166
+ var iframerOptions = options;
167
+ var xhrLoadState = 'pending'; // (initial) load state for the HTML portion of the slider
168
+ var load_dependencies = {};
169
+ var dependency;
170
+
171
+ // logger = log4javascript.getLogger('j1.adapter.gallery');
172
+
173
+ _this.setState('running');
174
+ logger.debug('\n' + 'state: ' + _this.getState());
175
+
176
+ {% for iframe in iframer_options.iframes %}
177
+
178
+ {% if iframe.enabled %}
179
+ {% assign iframe_id = iframe.id %}
180
+ logger.info('\n' + 'found iframe on id: ' + '{{iframe_id}}');
181
+
182
+ // create dynamic loader variable to setup the grid on id {{iframe_id}}
183
+ dependency = 'dependencies_met_html_loaded_{{iframe_id}}';
184
+ load_dependencies[dependency] = '';
185
+
186
+ // initialize the iframe if HTML portion successfully loaded
187
+ //
188
+ load_dependencies['dependencies_met_html_loaded_{{iframe_id}}'] = setInterval (function (options) {
189
+ // check if HTML portion of the iframe is loaded successfully
190
+ xhrLoadState = j1.xhrDOMState['#{{iframe_id}}_parent'];
191
+ if ( xhrLoadState === 'success' ) {
192
+ var $iframe_{{iframe_id}} = $('#{{iframe_id}}'); // used for later access
193
+
194
+ logger.info('\n' + 'dyn_loader, initialize iframe on id: ' + '{{iframe_id}}');
195
+
196
+ // Inject contentWindow script into the docoment to be loaded
197
+ // into an iframe element
198
+ if ('{{iframe.inject_contentWindowScript}}' == 'true') {
199
+ setTimeout (function() {
200
+ var iframe;
201
+ var iframeSelector;
202
+ var iframeDocument;
203
+ var contentWindowScript;
204
+
205
+ // create DOM selector
206
+ //
207
+ iframeSelector = '{{iframe_id}}'
208
+ iframe = document.getElementById(iframeSelector);
209
+ iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
210
+
211
+ // create contentWindow script
212
+ //
213
+ contentWindowScript = iframeDocument.createElement('script');
214
+ contentWindowScript.id = 'contentWindowScript';
215
+ contentWindowScript.async = true;
216
+ contentWindowScript.src = origin + '/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.min.js';
217
+
218
+ iframeDocument.head.appendChild(contentWindowScript);
219
+ }, iframerOptions.delay_inject_contentWindowScript);
220
+ } // END if iframerOptions.inject_contentWindowScript
221
+
222
+ setTimeout (function() {
223
+ /* eslint-disable */
224
+ var $iframe_{{iframe_id}} = iFrameResize({
225
+ {% for option in iframe.options %}
226
+ {{option[0]}}: {{option[1]}},
227
+ {% endfor %}
228
+ },
229
+ '#{{iframe_id}}'
230
+ )
231
+ /* eslint-enable */
232
+ }, {{iframer_options.delay_iframer}});
233
+
234
+ clearInterval(load_dependencies['dependencies_met_html_loaded_{{iframe_id}}']);
235
+ } // END if xhrLoadState === 'success'
236
+
237
+ }, 10); // END dependencies_met_html_loaded
238
+
239
+ {% endif %} // ENDIF iframe enabled
240
+ {% endfor %}
241
+
242
+ _this.setState('finished');
243
+ logger.debug('\n' + 'state: ' + _this.getState());
244
+ logger.info('\n' + 'module initialized successfully');
245
+
246
+ }, // END function initialize
247
+
248
+ // -------------------------------------------------------------------------
249
+ // loadIframeHTML()
250
+ // loads the HTML portion via AJAX for all iFrames configured.
251
+ // NOTE: Make sure the placeholder DIV is available in the content
252
+ // page as generated using the Asciidoc extension iframe::
253
+ // -------------------------------------------------------------------------
254
+ loadIframeHTML: function (options, iframe) {
255
+ var numIFrames = Object.keys(iframe).length;
256
+ var activeIFrames = numIFrames;
257
+ var xhr_data_path = options.xhr_data_path + '/index.html';
258
+ var xhr_container_id;
259
+
260
+ console.debug('number of iframes found: ' + activeIFrames);
261
+
262
+ _this.setState('load_data');
263
+ Object.keys(iframe).forEach(function(key) {
264
+ if (iframe[key].enabled) {
265
+ xhr_container_id = iframe[key].id + '_parent';
266
+
267
+ console.debug('load HTML portion on iframe id: ' + iframe[key].id);
268
+ j1.loadHTML({
269
+ xhr_container_id: xhr_container_id,
270
+ xhr_data_path: xhr_data_path,
271
+ xhr_data_element: iframe[key].id
272
+ });
273
+ } else {
274
+ console.debug('iframe found disabled on id: ' + iframe[key].id);
275
+ activeIFrames--;
276
+ }
277
+ });
278
+ console.debug('iframes loaded in page enabled|all: ' + activeIFrames + '|' + numIFrames);
279
+ _this.setState('data_loaded');
280
+ }, // END loadIframeHTML
281
+
282
+ // -------------------------------------------------------------------------
283
+ // messageHandler: MessageHandler for J1 CookieConsent module
284
+ // Manage messages send from other J1 modules
285
+ // -------------------------------------------------------------------------
286
+ messageHandler: function (sender, message) {
287
+ var json_message = JSON.stringify(message, undefined, 2);
288
+
289
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
290
+ logger.debug(logText);
291
+
292
+ // -----------------------------------------------------------------------
293
+ // Process commands|actions
294
+ // -----------------------------------------------------------------------
295
+ if (message.type === 'command' && message.action === 'module_initialized') {
296
+ //
297
+ // Place handling of command|action here
298
+ //
299
+ logger.info('\n' + message.text);
300
+ }
301
+
302
+ //
303
+ // Place handling of other command|action here
304
+ //
305
+
306
+ return true;
307
+ }, // END messageHandler
308
+
309
+ // -------------------------------------------------------------------------
310
+ // setState()
311
+ // Sets the current (processing) state of the module
312
+ // -------------------------------------------------------------------------
313
+ setState: function (stat) {
314
+ _this.state = stat;
315
+ }, // END setState
316
+
317
+ // -------------------------------------------------------------------------
318
+ // getState
319
+ // Returns the current (processing) state of the module
320
+ // -------------------------------------------------------------------------
321
+ getState: function () {
322
+ return j1.adapter.navigator.state;
323
+ }, // END getState
324
+
325
+ // -------------------------------------------------------------------------
326
+ // setXhrState
327
+ // Set the final (loading) state of an element (partial) loaded via Xhr
328
+ // -------------------------------------------------------------------------
329
+ setXhrState: function (obj, stat) {
330
+ j1.adapter.navigator.xhrData[obj] = stat;
331
+ }, // END setXhrState
332
+
333
+ // -------------------------------------------------------------------------
334
+ // getState
335
+ // Returns the final (loading) state of an element (partial) loaded via Xhr
336
+ // -------------------------------------------------------------------------
337
+ getXhrState: function (obj) {
338
+ return j1.adapter.navigator.xhrData[obj];
339
+ } // END getXhrState
340
+
341
+ }; // END return
342
+ })(j1, window);
343
+
344
+ {% endcapture %}
345
+ {% if production %}
346
+ {{ cache | minifyJS }}
347
+ {% else %}
348
+ {{ cache | strip_empty_lines }}
349
+ {% endif %}
350
+ {% assign cache = nil %}
@@ -454,28 +454,23 @@ var j1 = (function (options) {
454
454
  j1.setState(curr_state);
455
455
  logger.debug('\n' + 'state: ' + j1.getState());
456
456
 
457
- var dependencies_met_page_displayed = setInterval (function () {
458
- if (j1.getState() == 'finished') {
459
- if (j1.authEnabled()) {
460
- if (user_session.authenticated === 'true') {
461
- // set signout
462
- logger.info('\n' + 'show signout icon');
463
- $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignOut');
464
- $('#iconSignInOut').removeClass('mdib-login').addClass('mdib-logout');
465
- } else {
466
- // set signin
467
- logger.info('\n' + 'show signin icon');
468
- $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignIn');
469
- $('#iconSignInOut').removeClass('mdib-logout').addClass('mdib-login');
470
- }
471
- logger.info('\n' + 'authentication detected as: ' + user_session.authenticated);
472
- $('#quickLinksSignInOutButton').css('display', 'block');
473
- logger.debug('\n' + 'met dependencies for: j1');
474
- clearInterval(dependencies_met_page_displayed);
475
- }
457
+ if (j1.authEnabled()) {
458
+ if (user_session.authenticated === 'true') {
459
+ // set signout
460
+ logger.info('\n' + 'show signout icon');
461
+ $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignOut');
462
+ $('#iconSignInOut').removeClass('mdib-login').addClass('mdib-logout');
463
+ } else {
464
+ // set signin
465
+ logger.info('\n' + 'show signin icon');
466
+ $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignIn');
467
+ $('#iconSignInOut').removeClass('mdib-logout').addClass('mdib-login');
476
468
  }
477
- }, 10);
478
- })
469
+ logger.info('\n' + 'authentication detected as: ' + user_session.authenticated);
470
+ $('#quickLinksSignInOutButton').css('display', 'block');
471
+ logger.debug('\n' + 'met dependencies for: j1');
472
+ } // END if (j1.authEnabled
473
+ }) // ENF then
479
474
  .catch(function(error) {
480
475
  // jadams, 2018-08-31
481
476
  // TODO: Check why a timeout is required
@@ -1,5 +1,5 @@
1
1
  ---
2
- regenerate: true
2
+ regenerate: true
3
3
  ---
4
4
 
5
5
  {% capture cache %}