j1_template_mde 2018.4.31 → 2018.4.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/layout_metadata_generator.html +5 -6
  3. data/_includes/themes/j1/layouts/layout_shim_generator.html +20 -2
  4. data/_includes/themes/j1/layouts/layout_theme_generator.html +2 -2
  5. data/_includes/themes/j1/modules/connectors/{analytic/google → ad/custom-provider.html} +7 -16
  6. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +6 -6
  7. data/_includes/themes/j1/modules/connectors/ads +23 -8
  8. data/_includes/themes/j1/modules/connectors/analytic/custom-provider.html +32 -0
  9. data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +38 -0
  10. data/_includes/themes/j1/modules/connectors/analytics +16 -17
  11. data/_includes/themes/j1/modules/connectors/comment/custom-provider.html +31 -0
  12. data/_includes/themes/j1/modules/connectors/comment/disqus.html +3 -3
  13. data/_includes/themes/j1/modules/connectors/comment/facebook.html +31 -0
  14. data/_includes/themes/j1/modules/connectors/comments +14 -12
  15. data/_includes/themes/j1/modules/connectors/sharing +3 -10
  16. data/_includes/themes/j1/modules/navigator/generator.html +17 -12
  17. data/_includes/themes/j1/modules/navigator/procedures/quicklinks.proc +37 -27
  18. data/_includes/themes/j1/modules/navigator/procedures/sidebar.proc +3 -3
  19. data/_includes/themes/j1/procedures/layouts/module_writer.proc +4 -4
  20. data/_includes/themes/j1/procedures/layouts/resource_writer.proc +6 -6
  21. data/lib/j1/version.rb +1 -1
  22. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.before_merge_added.rb +1267 -0
  23. data/lib/j1_app/j1_auth_manager/_unused/auth_manager.update.web_cookie.rb +1333 -0
  24. data/lib/j1_app/j1_auth_manager/_unused/auth_manager_ui.2.erb +198 -0
  25. data/lib/j1_app/j1_auth_manager/_unused/auth_manager_ui.additional_inits.erb +254 -0
  26. data/lib/j1_app/j1_auth_manager/auth_manager.rb +361 -275
  27. data/lib/j1_app/j1_auth_manager/config.rb +9 -9
  28. data/lib/j1_app/j1_auth_manager/helpers.rb +60 -2
  29. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +123 -37
  30. data/lib/starter_web/Gemfile +1 -1
  31. data/lib/starter_web/_config.yml +42 -32
  32. data/lib/starter_web/_data/j1_config.yml +46 -56
  33. data/lib/starter_web/_data/j1_resources.yml +25 -5
  34. data/lib/starter_web/_data/layouts/default.yml +10 -0
  35. data/lib/starter_web/_data/modules/j1_cookie_consent.yml +120 -0
  36. data/lib/starter_web/_data/modules/j1_log4javascript.yml +24 -22
  37. data/lib/starter_web/_data/modules/j1_navigator.yml +61 -50
  38. data/lib/starter_web/_data/modules/j1_navigator_menu.yml +32 -11
  39. data/lib/starter_web/_data/tables/country.asciidoc +252 -0
  40. data/lib/starter_web/assets/data/_authclient.html +365 -0
  41. data/lib/starter_web/assets/data/authclient.html +213 -222
  42. data/lib/starter_web/assets/data/cookie_consent.html +261 -0
  43. data/lib/starter_web/assets/data/countries.json +974 -0
  44. data/lib/starter_web/assets/data/footer.html +17 -26
  45. data/lib/starter_web/assets/data/menu.html +20 -21
  46. data/lib/starter_web/assets/images/icons/j1/scalable/j1v2.svg +1 -1
  47. data/lib/starter_web/assets/images/master_header/admin-bootstrap.jpg +0 -0
  48. data/lib/starter_web/assets/images/pages/roundtrip/package.json +16 -16
  49. data/lib/starter_web/assets/themes/j1/core/css/theme_extensions.css +1313 -1219
  50. data/lib/starter_web/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  51. data/lib/starter_web/assets/themes/j1/core/css/uno.css +1251 -1219
  52. data/lib/starter_web/assets/themes/j1/core/css/uno.min.css +1 -1
  53. data/lib/starter_web/assets/themes/j1/core/css/vendor.css +72 -72
  54. data/lib/starter_web/assets/themes/j1/core/css/vendor.min.css +2 -2
  55. data/lib/starter_web/assets/themes/j1/core/js/adapter/algolia.js +1 -1
  56. data/lib/starter_web/assets/themes/j1/core/js/adapter/back2top.js +1 -1
  57. data/lib/starter_web/assets/themes/j1/core/js/adapter/bs_gallery.js +1 -1
  58. data/lib/starter_web/assets/themes/j1/core/js/adapter/cookie_consent.js +345 -0
  59. data/lib/starter_web/assets/themes/j1/core/js/adapter/custom.js +1 -1
  60. data/lib/starter_web/assets/themes/j1/core/js/adapter/lightbox.js +1 -1
  61. data/lib/starter_web/assets/themes/j1/core/js/adapter/logger.js +1 -1
  62. data/lib/starter_web/assets/themes/j1/core/js/adapter/master_header.js +1 -1
  63. data/lib/starter_web/assets/themes/j1/core/js/adapter/navigator.js +254 -190
  64. data/lib/starter_web/assets/themes/j1/core/js/adapter/scroller.js +1 -1
  65. data/lib/starter_web/assets/themes/j1/core/js/adapter/searcher.js +1 -1
  66. data/lib/starter_web/assets/themes/j1/core/js/adapter/stickybits.js +1 -1
  67. data/lib/starter_web/assets/themes/j1/core/js/adapter/switcher.js +1 -1
  68. data/lib/starter_web/assets/themes/j1/core/js/adapter/template.js +432 -97
  69. data/lib/starter_web/assets/themes/j1/core/js/adapter/toccer.js +1 -1
  70. data/lib/starter_web/assets/themes/j1/core/js/template.js +15 -15
  71. data/lib/starter_web/assets/themes/j1/core/js/template.js.map +1 -1
  72. data/lib/starter_web/assets/themes/j1/core/js/template.min.js +1 -1
  73. data/lib/starter_web/assets/themes/j1/extensions/cookiebar/js/cookiebar.js +277 -0
  74. data/lib/starter_web/assets/themes/j1/{core/js/adapter/cookiebar.js → extensions/cookiebar/js/j1cookiebar.js} +1 -1
  75. data/lib/starter_web/collections/_biography/becoming.adoc +1 -1
  76. data/lib/starter_web/collections/_biography/born-to-run.adoc +1 -1
  77. data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/attributes.asciidoc +0 -0
  78. data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/documents/100-docker-using-shared-folders.asciidoc +0 -0
  79. data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/documents/loop.sh +0 -0
  80. data/lib/starter_web/collections/posts/{premium → private}/series/_posts/000_includes/tables/debug_variables.asciidoc +0 -0
  81. data/lib/starter_web/collections/posts/{premium → private}/series/_posts/2018-11-01-docker-using-shared-folders.adoc +0 -0
  82. data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/000_includes/attributes.asciidoc +0 -0
  83. data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/000_includes/tables/debug_variables.asciidoc +0 -0
  84. data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/2016-11-20-minneapolis.adoc +0 -0
  85. data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +0 -0
  86. data/lib/starter_web/collections/posts/{private → protected}/wikipedia/_posts/2016-11-26-columbia-river.adoc +1 -1
  87. data/lib/starter_web/collections/posts/public/featured/_posts/2019-04-12-about-cookies.adoc +175 -0
  88. data/lib/starter_web/collections/posts/public/{featured → jekyll}/_posts/2018-05-01-confusion-about-base-url.adoc +0 -0
  89. data/lib/starter_web/index.html +4 -1
  90. data/lib/starter_web/package.json +1 -1
  91. data/lib/starter_web/pages/{premium → private}/bookshelf/100_about_jekyll_collections.adoc +1 -1
  92. data/lib/starter_web/pages/{premium → private}/bookshelf/200_book_shelf_biography.adoc +1 -1
  93. data/lib/starter_web/pages/{premium → private}/bookshelf/300_book_shelf_fantasy.adoc +1 -1
  94. data/lib/starter_web/pages/{premium → private}/bookshelf/400_book_shelf_romance.adoc +1 -1
  95. data/lib/starter_web/pages/{private → protected}/TeamUp/000_includes/attributes.asciidoc +0 -0
  96. data/lib/starter_web/pages/{private → protected}/TeamUp/index.adoc +3 -3
  97. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/attributes.asciidoc +0 -0
  98. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +0 -0
  99. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +0 -0
  100. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/120_relative_sizes.asciidoc +0 -0
  101. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/200_rotate.asciidoc +0 -0
  102. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/300_flip.asciidoc +0 -0
  103. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +0 -0
  104. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +0 -0
  105. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +0 -0
  106. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/600_md_color_palette.asciidoc +0 -0
  107. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +0 -0
  108. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +0 -0
  109. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +0 -0
  110. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +0 -0
  111. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/200_rotate.asciidoc +0 -0
  112. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/300_flip.asciidoc +0 -0
  113. data/lib/starter_web/pages/{private → protected}/previewer/000_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +0 -0
  114. data/lib/starter_web/pages/{private → protected}/previewer/justified_gallery.html +1 -1
  115. data/lib/starter_web/pages/{private → protected}/previewer/mdi_icons_preview.adoc +1 -1
  116. data/lib/starter_web/pages/{private → protected}/previewer/twitter_emoji_preview.adoc +1 -1
  117. data/lib/starter_web/pages/public/about/about_you.adoc +139 -0
  118. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +26 -15
  119. data/lib/starter_web/pages/public/legal/de/200_terms_of_use.adoc +2 -2
  120. data/lib/starter_web/pages/public/legal/en/100_impress.adoc +65 -53
  121. data/lib/starter_web/pages/public/legal/en/200_terms_of_use.adoc +11 -8
  122. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +46 -68
  123. data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +72 -74
  124. data/lib/starter_web/pages/public/legal/en/eu/cookie.policy.asciidoc +55 -0
  125. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +1 -1
  126. data/lib/starter_web/pages/public/start/roundtrip/700_extended_modals.adoc +71 -53
  127. metadata +60 -44
  128. data/_includes/themes/j1/modules/connectors/analytic/googleUA +0 -44
  129. data/lib/starter_web/_data/modules/j1_cookiebar.yml +0 -65
  130. data/lib/starter_web/_unused/package.json.new +0 -125
@@ -0,0 +1,198 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+
8
+ <title>AuthManager</title>
9
+ <meta name="description" content="J1 Template">
10
+ <meta name="author" content="jelyll-one">
11
+
12
+ <link rel="stylesheet" type="text/css" href="/assets/themes/j1/core/css/uno.css">
13
+ <link rel="stylesheet" type="text/css" href="/assets/themes/j1/core/css/vendor.css">
14
+ <script src="/assets/themes/j1/core/js/template.js"></script>
15
+ <script src="/assets/themes/j1/core/js/adapter/template.js"></script>
16
+
17
+ </head>
18
+
19
+ <body class="r-text-300">
20
+
21
+ <!-- Modal Central CookieConsent -->
22
+ <div id="centralCookieConsent" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
23
+ <div class="modal-dialog modal-notify modal-<%= @info_type %>" role="document">
24
+ <!-- Content -->
25
+ <div class="modal-content">
26
+ <!--Header-->
27
+ <div class="modal-header">
28
+ <p class="lead">
29
+ <i class="mdi mdi-24px mdi-dark mdi-<%= @modal_icon %>"></i>
30
+ <%= @modal_title %></p>
31
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
32
+ <i class="mdi mdi-dark mdi-48px mdi-close"></i>
33
+ </button>
34
+ </div>
35
+ <!-- Body -->
36
+ <div class="modal-body">
37
+ <div class="text-center">
38
+ <p style="text-align: justify"><%= @modal_description %></p>
39
+ </div>
40
+ </div>
41
+ <!-- Footer -->
42
+ <div class="modal-footer justify-content-center">
43
+ <a type="button" id="okButton" class="btn btn-primary-modal mr-2" data-dismiss="modal"><%= @modal_ok_text %></a>
44
+ </div>
45
+ </div>
46
+ <!-- END Content -->
47
+ </div>
48
+ </div>
49
+ <!-- END Central CookieConsent -->
50
+
51
+
52
+ <!-- Modal Central Success -->
53
+ <div id="centralModalInfo" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
54
+ <div class="modal-dialog modal-notify modal-<%= @info_type %>" role="document">
55
+ <!-- Content -->
56
+ <div class="modal-content">
57
+ <!--Header-->
58
+ <div class="modal-header">
59
+ <p class="lead">
60
+ <i class="mdi mdi-24px mdi-dark mdi-<%= @modal_icon %>"></i>
61
+ <%= @modal_title %></p>
62
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
63
+ <i class="mdi mdi-dark mdi-48px mdi-close"></i>
64
+ </button>
65
+ </div>
66
+ <!-- Body -->
67
+ <div class="modal-body">
68
+ <div class="text-center">
69
+ <p style="text-align: justify"><%= @modal_description %></p>
70
+ </div>
71
+ </div>
72
+ <!-- Footer -->
73
+ <div class="modal-footer justify-content-center">
74
+ <a type="button" id="okButton" class="btn btn-primary-modal mr-2" data-dismiss="modal"><%= @modal_ok_text %></a>
75
+ </div>
76
+ </div>
77
+ <!-- END Content -->
78
+ </div>
79
+ </div>
80
+ <!-- END Central Success -->
81
+
82
+
83
+ <!-- Modal TopInfo -->
84
+ <div id="topInfo" class="modal fade top" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="false">
85
+ <div class="modal-dialog modal-frame modal-top modal-notify modal-info" role="document">
86
+ <!-- Content -->
87
+ <div class="modal-content">
88
+
89
+ <!-- Body -->
90
+ <div class="modal-body">
91
+ <div class="row px-4">
92
+ <p class="pt-1 pr-2"><%= @modal_description %></p>
93
+ </div>
94
+ <div class="row px-4">
95
+ <a type="button" id="okButton" class="btn btn-primary-modal mr-2" data-dismiss="modal"><%= @modal_ok_text %></a>
96
+ </div>
97
+ </div> <!-- END Body -->
98
+
99
+ </div>
100
+ <!-- END Content -->
101
+ </div>
102
+ </div>
103
+ <!-- END Modal TopInfo -->
104
+
105
+ <!-- Modal SignInProtectedContent -->
106
+ <div id="signInProtectedContent" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
107
+ <div class="modal-dialog modal-lg modal-notify modal-info" role="document">
108
+ <!-- Content -->
109
+ <div class="modal-content">
110
+
111
+ <!--Header-->
112
+ <div class="modal-header">
113
+ <p class="lead">
114
+ <i class="mdi mdi-24px mdi-dark mdi-login"></i>
115
+ <%= @modal_title %>
116
+ </p>
117
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
118
+ <i class="mdi mdi-dark mdi-48px mdi-close"></i>
119
+ </button>
120
+ </div>
121
+
122
+ <!-- Body -->
123
+ <div class="modal-body">
124
+ <div class="text-center">
125
+ <p style="text-align: justify"><%= @modal_description %></p>
126
+ </div>
127
+ <img src="<%= @modal_image %>" alt="<%= @modal_title %>" class="img-fluid">
128
+ </div>
129
+
130
+ <!-- Footer -->
131
+ <div class="modal-footer justify-content-right">
132
+ <a type="button" id="signInButton" class="btn btn-primary-modal mr-2" data-dismiss="modal">
133
+ <i class="mdi mdi-18px mdi-dark mdi-login"></i>
134
+ <%= @modal_agreed_text %>
135
+ </a>
136
+ <a type="button" id="exitButton" class="btn btn-outline-modal" data-dismiss="modal">
137
+ <i class="mdi mdi-18px mdi-dark mdi-close"></i>
138
+ <%= @modal_disagreed_text %>
139
+ </a>
140
+ </div>
141
+
142
+ </div> <!-- END Content -->
143
+ </div>
144
+ </div>
145
+ <!-- END Modal SignInProtectedContent -->
146
+
147
+ </body>
148
+
149
+ <script>
150
+ var route;
151
+ var provider;
152
+
153
+ // Setup logger
154
+ logger = log4javascript.getLogger("j1.AuthManager");
155
+
156
+ var signIn = {
157
+ provider: "<%= @provider %>",
158
+ do: false
159
+ }
160
+
161
+ $(window).on('load', function() {
162
+ $("#<%= @modal %>").modal("show")
163
+ });
164
+
165
+ $("a.btn").click(function() {
166
+ if (this.id === "okButton") {
167
+ signIn.do = true;
168
+ }
169
+ if (this.id === "signInButton") {
170
+ signIn.do = true;
171
+ } else {
172
+ signIn.do = false;
173
+ }
174
+ });
175
+
176
+ $(document).on('shown.bs.modal','#<%= @modal %>', function () {
177
+ logger.info('Knalli von der Middleware');
178
+ console.log('Knalli von der Middleware');
179
+ });
180
+
181
+ $(document).on('hidden.bs.modal','#<%= @modal %>', function () {
182
+ // $("#<%= @modal %>").on('hidden.bs.modal', function() {
183
+ logger.info('Huhu von der Middleware');
184
+
185
+ if (signIn.do == true) {
186
+ var route = "<%= @route %>"
187
+ window.location.href = route;
188
+ } else {
189
+ // TODO: How to manage last/current page if protected
190
+ j1_user_state = j1.getUserStateCookie();
191
+ //window.location.href = j1_user_state.last_page;
192
+ //window.location.href = j1_user_state.current_page;
193
+ window.location.href = '/';
194
+ }
195
+ });
196
+ </script>
197
+
198
+ </html>
@@ -0,0 +1,254 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+
8
+ <title>AuthManager</title>
9
+ <meta name="description" content="J1 Template">
10
+ <meta name="author" content="jelyll-one">
11
+
12
+ <link rel="stylesheet" type="text/css" href="/assets/themes/j1/core/css/uno.css">
13
+ <link rel="stylesheet" type="text/css" href="/assets/themes/j1/core/css/vendor.css">
14
+ <script src="/assets/themes/j1/core/js/template.js"></script>
15
+ <script src="/assets/themes/j1/core/js/adapter/template.js"></script>
16
+ <script src="/assets/themes/j1/core/js/adapter/cookie_consent.js"></script>
17
+
18
+
19
+ </head>
20
+
21
+ <body class="r-text-300">
22
+
23
+ <!-- Modal Central Success -->
24
+ <div id="centralModalInfo" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
25
+ <div class="modal-dialog modal-notify modal-<%= @info_type %>" role="document">
26
+ <!-- Content -->
27
+ <div class="modal-content">
28
+ <!--Header-->
29
+ <div class="modal-header">
30
+ <p class="lead">
31
+ <i class="mdi mdi-2x mdi-dark mdi-<%= @modal_icon %>"></i>
32
+ <%= @modal_title %></p>
33
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
34
+ <i class="mdi mdi-dark mdi-48px mdi-close"></i>
35
+ </button>
36
+ </div>
37
+ <!-- Body -->
38
+ <div class="modal-body">
39
+ <div class="text-center">
40
+ <p style="text-align: justify"><%= @modal_description %></p>
41
+ </div>
42
+ </div>
43
+ <!-- Footer -->
44
+ <div class="modal-footer justify-content-center">
45
+ <a type="button" id="okButton" class="btn btn-primary-modal mr-2" data-dismiss="modal"><%= @modal_ok_text %></a>
46
+ </div>
47
+ </div>
48
+ <!-- END Content -->
49
+ </div>
50
+ </div>
51
+ <!-- END Central Success -->
52
+
53
+
54
+ <!-- Modal TopInfo -->
55
+ <div id="topInfo" class="modal fade top" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="false">
56
+ <div class="modal-dialog modal-frame modal-top modal-notify modal-info" role="document">
57
+ <!-- Content -->
58
+ <div class="modal-content">
59
+
60
+ <!-- Body -->
61
+ <div class="modal-body">
62
+ <div class="row px-4">
63
+ <p class="pt-1 pr-2"><%= @modal_description %></p>
64
+ </div>
65
+ <div class="row px-4">
66
+ <a type="button" id="okButton" class="btn btn-primary-modal mr-2" data-dismiss="modal"><%= @modal_ok_text %></a>
67
+ </div>
68
+ </div> <!-- END Body -->
69
+
70
+ </div>
71
+ <!-- END Content -->
72
+ </div>
73
+ </div>
74
+ <!-- END Modal TopInfo -->
75
+
76
+ <!-- Modal SignInProtectedContent -->
77
+ <div id="signInProtectedContent" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
78
+ <div class="modal-dialog modal-lg modal-notify modal-info" role="document">
79
+ <!-- Content -->
80
+ <div class="modal-content">
81
+
82
+ <!--Header-->
83
+ <div class="modal-header">
84
+ <p class="lead">
85
+ <i class="mdi mdi-2x mdi-dark mdi-account"></i>
86
+ <%= @modal_title %>
87
+ </p>
88
+ <!-- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
89
+ <i class="mdi mdi-dark mdi-48px mdi-close"></i>
90
+ </button> -->
91
+ </div>
92
+
93
+ <!-- Body -->
94
+ <div class="modal-body">
95
+ <div class="text-center">
96
+ <p style="text-align: justify"><%= @modal_description %></p>
97
+ </div>
98
+ <img src="<%= @modal_image %>" alt="<%= @modal_title %>" class="img-fluid">
99
+ </div>
100
+
101
+ <!-- Footer -->
102
+ <div class="modal-footer justify-content-center">
103
+ <a type="button" id="signInButton" class="btn btn-primary-modal mr-2" data-dismiss="modal">
104
+ <i class="mdi mdi-18px mdi-dark mdi-login"></i>
105
+ <%= @modal_agreed_text %>
106
+ </a>
107
+ <a type="button" id="exitButton" class="btn btn-outline-modal" data-dismiss="modal">
108
+ <i class="mdi mdi-18px mdi-dark mdi-close"></i>
109
+ <%= @modal_disagreed_text %>
110
+ </a>
111
+ </div>
112
+
113
+ </div> <!-- END Content -->
114
+ </div>
115
+ </div>
116
+ <!-- END Modal SignInProtectedContent -->
117
+
118
+ <!-- Modal Central CookieConsent -->
119
+ <div id="centralCookieConsent" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
120
+ <div class="modal-dialog modal-notify modal-<%= @info_type %>" role="document">
121
+ <!-- Content -->
122
+ <div class="modal-content">
123
+ <!--Header-->
124
+ <div class="modal-header">
125
+ <p class="lead">
126
+ <i class="mdi mdi-2x mdi-dark mdi-account"></i>
127
+ <%= @modal_title %>
128
+ </p>
129
+ <!-- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
130
+ <i class="mdi mdi-dark mdi-48px mdi-close"></i>
131
+ </button> -->
132
+ </div>
133
+ <!-- Body -->
134
+ <div class="modal-body">
135
+ <div class="text-center">
136
+ <p style="text-align: justify"><%= @modal_description %></p>
137
+ </div>
138
+ </div>
139
+ <!-- Footer -->
140
+ <div class="modal-footer justify-content-center">
141
+ <a type="button" id="acceptCookiesButton" class="btn btn-primary-modal mr-2" data-dismiss="modal">
142
+ <i class="mdi mdi-18px mdi-dark mdi-<%= @modal_icon %>"></i>
143
+ <%= @modal_agreed_text %>
144
+ </a>
145
+ <a type="button" id="declineCookiesButton" class="btn btn-outline-modal" data-dismiss="modal">
146
+ <i class="mdi mdi-18px mdi-dark mdi-close"></i>
147
+ <%= @modal_disagreed_text %>
148
+ </a>
149
+ </div>
150
+ <!-- END Content -->
151
+ </div>
152
+ </div>
153
+ <!-- END Central CookieConsent -->
154
+
155
+ </body>
156
+
157
+ <script>
158
+
159
+ $(document).ready(function() {
160
+ j1.init();
161
+ });
162
+
163
+ var pageLoaded = setInterval(function() {
164
+ if ( j1.state() === 'finished' ) {
165
+
166
+ var route;
167
+ var provider;
168
+ var user_state;
169
+
170
+ // Setup logger
171
+ var logger;
172
+ var allModalButtons = document.querySelectorAll('a.btn');
173
+
174
+ var signIn = {
175
+ provider: "<%= @provider %>",
176
+ do: "unset"
177
+ }
178
+
179
+ var cookiesAccepted = {
180
+ do: "unset"
181
+ }
182
+
183
+
184
+
185
+ // Manage button click events for all modals
186
+ // See: https://www.nickang.com/add-event-listener-for-loop-problem-in-javascript/
187
+ // -----------------------------------------------------------------
188
+ $(document).on('shown.bs.modal','#<%= @modal %>', function () {
189
+ console.log('J1AuthManager: entered modal SHOWN from <%= @modal %>');
190
+
191
+ allModalButtons.forEach(function(button, index) {
192
+ button.addEventListener('click', function() {
193
+ // Modal topFullCookieConsent
194
+ // -----------------------------------------------------------
195
+ if (this.id === "acceptCookiesButton") {
196
+ cookiesAccepted.do = true;
197
+ user_state = j1.getWebSessionCookie();
198
+ user_state.cookies_accepted = 'accepted';
199
+ j1.setWebSessionCookie(user_state);
200
+ }
201
+ if (this.id === "declineCookiesButton") {
202
+ cookiesAccepted.do = false;
203
+ }
204
+ if (this.id === "okButton") {
205
+ signIn.do = true;
206
+ }
207
+ if (this.id === "signInButton") {
208
+ signIn.do = true;
209
+ } else {
210
+ signIn.do = false;
211
+ }
212
+ });
213
+ });
214
+
215
+ return;
216
+ });
217
+
218
+ $(window).on('load', function() {
219
+ $("#<%= @modal %>").modal("show")
220
+ });
221
+
222
+ $(document).on('hide.bs.modal','#<%= @modal %>', function () {
223
+ console.log('J1AuthManager: entered modal HIDE from <%= @modal %>');
224
+ user_state = j1.getWebSessionCookie();
225
+ // Manage SignIn
226
+ // -----------------------------------------------------------------------
227
+ if (signIn.do == true) {
228
+ var route = "<%= @route %>"
229
+ console.log('J1AuthManager: pass to ' + route);
230
+ window.location.href = route;
231
+ } else if (signIn.do == false) {
232
+ // TODO: How to manage page requested
233
+ // window.location.href = user_state.requested_page; // cause dead loop
234
+ window.location.href = '/';
235
+ }
236
+ // Cookies
237
+ // -----------------------------------------------------------------------
238
+ if (cookiesAccepted.do == true) {
239
+ var route = "<%= @route %>"
240
+ window.location.href = route;
241
+ } else if (cookiesAccepted.do == false) {
242
+ window.location.href = '/';
243
+ }
244
+ // pass to "window.location.href"
245
+ return;
246
+ });
247
+ // clear interval checking
248
+ clearInterval(pageLoaded);
249
+ } // END
250
+ }, 50); // END setInterval
251
+
252
+ </script>
253
+
254
+ </html>