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.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +5 -6
- data/_includes/themes/j1/layouts/layout_shim_generator.html +20 -2
- data/_includes/themes/j1/layouts/layout_theme_generator.html +2 -2
- data/_includes/themes/j1/modules/connectors/{analytic/google → ad/custom-provider.html} +7 -16
- data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +6 -6
- data/_includes/themes/j1/modules/connectors/ads +23 -8
- data/_includes/themes/j1/modules/connectors/analytic/custom-provider.html +32 -0
- data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +38 -0
- data/_includes/themes/j1/modules/connectors/analytics +16 -17
- data/_includes/themes/j1/modules/connectors/comment/custom-provider.html +31 -0
- data/_includes/themes/j1/modules/connectors/comment/disqus.html +3 -3
- data/_includes/themes/j1/modules/connectors/comment/facebook.html +31 -0
- data/_includes/themes/j1/modules/connectors/comments +14 -12
- data/_includes/themes/j1/modules/connectors/sharing +3 -10
- data/_includes/themes/j1/modules/navigator/generator.html +17 -12
- data/_includes/themes/j1/modules/navigator/procedures/quicklinks.proc +37 -27
- data/_includes/themes/j1/modules/navigator/procedures/sidebar.proc +3 -3
- data/_includes/themes/j1/procedures/layouts/module_writer.proc +4 -4
- data/_includes/themes/j1/procedures/layouts/resource_writer.proc +6 -6
- data/lib/j1/version.rb +1 -1
- data/lib/j1_app/j1_auth_manager/_unused/auth_manager.before_merge_added.rb +1267 -0
- data/lib/j1_app/j1_auth_manager/_unused/auth_manager.update.web_cookie.rb +1333 -0
- data/lib/j1_app/j1_auth_manager/_unused/auth_manager_ui.2.erb +198 -0
- data/lib/j1_app/j1_auth_manager/_unused/auth_manager_ui.additional_inits.erb +254 -0
- data/lib/j1_app/j1_auth_manager/auth_manager.rb +361 -275
- data/lib/j1_app/j1_auth_manager/config.rb +9 -9
- data/lib/j1_app/j1_auth_manager/helpers.rb +60 -2
- data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +123 -37
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/_config.yml +42 -32
- data/lib/starter_web/_data/j1_config.yml +46 -56
- data/lib/starter_web/_data/j1_resources.yml +25 -5
- data/lib/starter_web/_data/layouts/default.yml +10 -0
- data/lib/starter_web/_data/modules/j1_cookie_consent.yml +120 -0
- data/lib/starter_web/_data/modules/j1_log4javascript.yml +24 -22
- data/lib/starter_web/_data/modules/j1_navigator.yml +61 -50
- data/lib/starter_web/_data/modules/j1_navigator_menu.yml +32 -11
- data/lib/starter_web/_data/tables/country.asciidoc +252 -0
- data/lib/starter_web/assets/data/_authclient.html +365 -0
- data/lib/starter_web/assets/data/authclient.html +213 -222
- data/lib/starter_web/assets/data/cookie_consent.html +261 -0
- data/lib/starter_web/assets/data/countries.json +974 -0
- data/lib/starter_web/assets/data/footer.html +17 -26
- data/lib/starter_web/assets/data/menu.html +20 -21
- data/lib/starter_web/assets/images/icons/j1/scalable/j1v2.svg +1 -1
- data/lib/starter_web/assets/images/master_header/admin-bootstrap.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/package.json +16 -16
- data/lib/starter_web/assets/themes/j1/core/css/theme_extensions.css +1313 -1219
- data/lib/starter_web/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
- data/lib/starter_web/assets/themes/j1/core/css/uno.css +1251 -1219
- data/lib/starter_web/assets/themes/j1/core/css/uno.min.css +1 -1
- data/lib/starter_web/assets/themes/j1/core/css/vendor.css +72 -72
- data/lib/starter_web/assets/themes/j1/core/css/vendor.min.css +2 -2
- data/lib/starter_web/assets/themes/j1/core/js/adapter/algolia.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/back2top.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/bs_gallery.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/cookie_consent.js +345 -0
- data/lib/starter_web/assets/themes/j1/core/js/adapter/custom.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/lightbox.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/logger.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/master_header.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/navigator.js +254 -190
- data/lib/starter_web/assets/themes/j1/core/js/adapter/scroller.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/searcher.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/stickybits.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/switcher.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/adapter/template.js +432 -97
- data/lib/starter_web/assets/themes/j1/core/js/adapter/toccer.js +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/template.js +15 -15
- data/lib/starter_web/assets/themes/j1/core/js/template.js.map +1 -1
- data/lib/starter_web/assets/themes/j1/core/js/template.min.js +1 -1
- data/lib/starter_web/assets/themes/j1/extensions/cookiebar/js/cookiebar.js +277 -0
- data/lib/starter_web/assets/themes/j1/{core/js/adapter/cookiebar.js → extensions/cookiebar/js/j1cookiebar.js} +1 -1
- data/lib/starter_web/collections/_biography/becoming.adoc +1 -1
- data/lib/starter_web/collections/_biography/born-to-run.adoc +1 -1
- data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/attributes.asciidoc +0 -0
- data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/documents/100-docker-using-shared-folders.asciidoc +0 -0
- data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/documents/loop.sh +0 -0
- data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/tables/debug_variables.asciidoc +0 -0
- data/lib/starter_web/collections/posts/{premium → private}/series/_posts/2018-11-01-docker-using-shared-folders.adoc +0 -0
- data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/000_includes/attributes.asciidoc +0 -0
- data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/000_includes/tables/debug_variables.asciidoc +0 -0
- data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/2016-11-20-minneapolis.adoc +0 -0
- data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +0 -0
- data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/2016-11-26-columbia-river.adoc +1 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2019-04-12-about-cookies.adoc +175 -0
- data/lib/starter_web/collections/posts/public/{featured → jekyll}/_posts/2018-05-01-confusion-about-base-url.adoc +0 -0
- data/lib/starter_web/index.html +4 -1
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/{premium → private}/bookshelf/100_about_jekyll_collections.adoc +1 -1
- data/lib/starter_web/pages/{premium → private}/bookshelf/200_book_shelf_biography.adoc +1 -1
- data/lib/starter_web/pages/{premium → private}/bookshelf/300_book_shelf_fantasy.adoc +1 -1
- data/lib/starter_web/pages/{premium → private}/bookshelf/400_book_shelf_romance.adoc +1 -1
- data/lib/starter_web/pages/{private → protected}/TeamUp/000_includes/attributes.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/TeamUp/index.adoc +3 -3
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/attributes.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/120_relative_sizes.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/200_rotate.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/300_flip.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/600_md_color_palette.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/200_rotate.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/300_flip.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +0 -0
- data/lib/starter_web/pages/{private → protected}/previewer/justified_gallery.html +1 -1
- data/lib/starter_web/pages/{private → protected}/previewer/mdi_icons_preview.adoc +1 -1
- data/lib/starter_web/pages/{private → protected}/previewer/twitter_emoji_preview.adoc +1 -1
- data/lib/starter_web/pages/public/about/about_you.adoc +139 -0
- data/lib/starter_web/pages/public/legal/de/100_impress.adoc +26 -15
- data/lib/starter_web/pages/public/legal/de/200_terms_of_use.adoc +2 -2
- data/lib/starter_web/pages/public/legal/en/100_impress.adoc +65 -53
- data/lib/starter_web/pages/public/legal/en/200_terms_of_use.adoc +11 -8
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +46 -68
- data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +72 -74
- data/lib/starter_web/pages/public/legal/en/eu/cookie.policy.asciidoc +55 -0
- data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +1 -1
- data/lib/starter_web/pages/public/start/roundtrip/700_extended_modals.adoc +71 -53
- metadata +60 -44
- data/_includes/themes/j1/modules/connectors/analytic/googleUA +0 -44
- data/lib/starter_web/_data/modules/j1_cookiebar.yml +0 -65
- 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
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
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
|
-
|
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
|
-
'
|
106
|
+
'theme_author' : 'J1 Team',
|
107
|
+
'theme_link' : 'https://support.jekyll-one.com/',
|
108
|
+
'previous_page' : 'unknown',
|
92
109
|
'current_page' : 'unknown',
|
93
|
-
'
|
94
|
-
'
|
95
|
-
|
96
|
-
|
97
|
-
'
|
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
|
-
}, //
|
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
|
-
|
187
|
+
|
188
|
+
var logger = log4javascript.getLogger('j1.Template.adapter');
|
189
|
+
var banner = [];
|
143
190
|
var bannerOptions = [];
|
144
|
-
|
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 = '
|
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 = '
|
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
|
-
}, //
|
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
|
255
|
-
|
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:
|
301
|
-
// j1_user_state.
|
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
|
-
}, //
|
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
|
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 = '
|
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
|
-
|
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.
|
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.
|
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
|
-
}, //
|
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
|
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
|
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.
|
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.
|
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.
|
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); //
|
461
|
-
|
462
|
-
}, //
|
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
|
-
|
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
|
-
}, //
|
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
|
-
}, //
|
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
|
-
}, //
|
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
|
-
}, //
|
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:
|
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:
|
659
|
+
Cookies.set( 'j1.user.state', user_state_encoded, { expires: 365 } );
|
592
660
|
}
|
593
|
-
|
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
|
-
}, //
|
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
|
-
}, //
|
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
|
-
}, //
|
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 =
|
650
|
-
var offset = {{toccer_config.defaults.smoothScrollOffset}}
|
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
|
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
|
-
} //
|
681
|
-
|
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
|
-
} //
|
1018
|
+
} // END j1 (return)
|
684
1019
|
}();
|
685
1020
|
|
686
1021
|
{% endcapture %}
|