j1_template_mde 2018.4.31 → 2018.4.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -47,8 +47,8 @@ module J1App
47
47
 
48
48
  def self.permissions
49
49
  permission_profile = {
50
- :private => [],
51
- :premium => []
50
+ :protected => [],
51
+ :private => []
52
52
  }
53
53
 
54
54
  active_providers = auth_config['providers']['activated']
@@ -88,11 +88,11 @@ module J1App
88
88
 
89
89
  # def self.provider_url(arg)
90
90
  # provider_url = {
91
- # 'patreon' => auth_config['provider']['home_url']['patreon'],
92
- # 'disqus' => auth_config['provider']['home_url']['disqus'],
93
- # 'facebook' => auth_config['provider']['home_url']['facebook'],
94
- # 'github' => auth_config['provider']['home_url']['github'],
95
- # 'twitter' => auth_config['provider']['home_url']['twitter']
91
+ # 'patreon' => auth_config['provider']['provider_url']['patreon'],
92
+ # 'disqus' => auth_config['provider']['provider_url']['disqus'],
93
+ # 'facebook' => auth_config['provider']['provider_url']['facebook'],
94
+ # 'github' => auth_config['provider']['provider_url']['github'],
95
+ # 'twitter' => auth_config['provider']['provider_url']['twitter']
96
96
  # }
97
97
  # provider_url[arg]
98
98
  # end
@@ -132,8 +132,8 @@ module J1App
132
132
 
133
133
  # def self.permissions_old
134
134
  # permission_profile = {
135
- # :private => [],
136
- # :premium => []
135
+ # :protected => [],
136
+ # :private => []
137
137
  # }
138
138
  #
139
139
  # provider_permissions = auth_config['provider']['permission']
@@ -80,5 +80,63 @@ module J1App
80
80
  # end
81
81
  # end
82
82
 
83
- end
84
- end
83
+ # --------------------------------------------------------------------------
84
+ # merge: merge two hashes (input <- hash)
85
+ #
86
+ # Example:
87
+ # {% assign nav_bar_options = nav_bar_default | merge: nav_bar_config %}
88
+ # --------------------------------------------------------------------------
89
+ def merge(input, hash)
90
+ unless input.respond_to?(:to_hash)
91
+ raise ArgumentError.new("merge filter requires hash arguments: arg_input")
92
+ end
93
+ # if hash to merge is NOT a hash or empty return first hash (input)
94
+ unless hash.respond_to?(:to_hash)
95
+ input
96
+ end
97
+ if hash.nil? || hash.empty?
98
+ input
99
+ else
100
+ merged = input.dup
101
+ hash.each do |k, v|
102
+ merged[k] = v
103
+ end
104
+ merged
105
+ end
106
+ end
107
+
108
+ # --------------------------------------------------------------------------
109
+ # writeCookie:
110
+ #
111
+ # Example:
112
+ #
113
+ # --------------------------------------------------------------------------
114
+ def writeCookie(name, data)
115
+ session_encoded = Base64.encode64(data)
116
+ response.set_cookie(
117
+ name,
118
+ domain: false,
119
+ value: session_encoded.to_s,
120
+ path: '/'
121
+ )
122
+ end
123
+
124
+ # --------------------------------------------------------------------------
125
+ # readCookie:
126
+ #
127
+ # Example:
128
+ #
129
+ # --------------------------------------------------------------------------
130
+ def readCookie(name)
131
+ if env['HTTP_COOKIE'].include? name
132
+ session_encoded = request.cookies[name]
133
+ session_decoded = Base64.decode64(session_encoded)
134
+ session_data = JSON.parse(session_decoded)
135
+ return session_data
136
+ else
137
+ return {}
138
+ end
139
+ end
140
+
141
+ end # END helpers
142
+ end # END module
@@ -2,9 +2,7 @@
2
2
  <html lang="en">
3
3
 
4
4
  <head>
5
-
6
5
  <meta charset="utf-8">
7
-
8
6
  <title>AuthManager</title>
9
7
  <meta name="description" content="J1 Template">
10
8
  <meta name="author" content="jelyll-one">
@@ -13,27 +11,27 @@
13
11
  <link rel="stylesheet" type="text/css" href="/assets/themes/j1/core/css/vendor.css">
14
12
  <script src="/assets/themes/j1/core/js/template.js"></script>
15
13
  <script src="/assets/themes/j1/core/js/adapter/template.js"></script>
16
-
17
14
  </head>
18
15
 
19
16
  <body class="r-text-300">
20
17
 
21
- <!-- Modal Central Success Demo -->
18
+ <!-- Modal Central Success -->
22
19
  <div id="centralModalInfo" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
23
20
  <div class="modal-dialog modal-notify modal-<%= @info_type %>" role="document">
24
21
  <!-- Content -->
25
22
  <div class="modal-content">
26
23
  <!--Header-->
27
24
  <div class="modal-header">
28
- <p class="lead"><%= @modal_title %></p>
25
+ <p class="lead">
26
+ <i class="mdi mdi-2x mdi-dark mdi-<%= @modal_icon %>"></i>
27
+ <%= @modal_title %></p>
29
28
  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
30
- <i class="mdi mdi-close mdi-light mdi-48px"></i>
29
+ <i class="mdi mdi-dark mdi-48px mdi-close"></i>
31
30
  </button>
32
31
  </div>
33
32
  <!-- Body -->
34
33
  <div class="modal-body">
35
34
  <div class="text-center">
36
- <i class="mdi mdi-4x mdi-<%= @modal_icon %> mdi-rotateIn mb-1"></i>
37
35
  <p style="text-align: justify"><%= @modal_description %></p>
38
36
  </div>
39
37
  </div>
@@ -45,7 +43,7 @@
45
43
  <!-- END Content -->
46
44
  </div>
47
45
  </div>
48
- <!-- END Central Success Demo -->
46
+ <!-- END Central Success -->
49
47
 
50
48
 
51
49
  <!-- Modal TopInfo -->
@@ -53,6 +51,7 @@
53
51
  <div class="modal-dialog modal-frame modal-top modal-notify modal-info" role="document">
54
52
  <!-- Content -->
55
53
  <div class="modal-content">
54
+
56
55
  <!-- Body -->
57
56
  <div class="modal-body">
58
57
  <div class="row px-4">
@@ -61,7 +60,8 @@
61
60
  <div class="row px-4">
62
61
  <a type="button" id="okButton" class="btn btn-primary-modal mr-2" data-dismiss="modal"><%= @modal_ok_text %></a>
63
62
  </div>
64
- </div>
63
+ </div> <!-- END Body -->
64
+
65
65
  </div>
66
66
  <!-- END Content -->
67
67
  </div>
@@ -73,76 +73,162 @@
73
73
  <div class="modal-dialog modal-lg modal-notify modal-info" role="document">
74
74
  <!-- Content -->
75
75
  <div class="modal-content">
76
+
76
77
  <!--Header-->
77
78
  <div class="modal-header">
78
- <p class="lead"><%= @modal_title %></p>
79
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
80
- <i class="mdi mdi-close mdi-light mdi-48px"></i>
81
- </button>
79
+ <p class="lead">
80
+ <i class="mdi mdi-2x mdi-dark mdi-account"></i>
81
+ <%= @modal_title %>
82
+ </p>
83
+ <!-- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
84
+ <i class="mdi mdi-dark mdi-48px mdi-close"></i>
85
+ </button> -->
82
86
  </div>
87
+
83
88
  <!-- Body -->
84
89
  <div class="modal-body">
85
90
  <div class="text-center">
86
- <i class="mdi mdi-4x mdi-<%= @modal_icon %> mdi-rotateIn mb-1"></i>
87
91
  <p style="text-align: justify"><%= @modal_description %></p>
88
92
  </div>
89
93
  <img src="<%= @modal_image %>" alt="<%= @modal_title %>" class="img-fluid">
90
94
  </div>
95
+
91
96
  <!-- Footer -->
92
- <div class="modal-footer">
97
+ <div class="modal-footer justify-content-center">
93
98
  <a type="button" id="signInButton" class="btn btn-primary-modal mr-2" data-dismiss="modal">
94
99
  <i class="mdi mdi-18px mdi-dark mdi-login"></i>
95
100
  <%= @modal_agreed_text %>
96
101
  </a>
97
- <a type="button" id="exitButton" class="btn btn-outline-secondary-modal" data-dismiss="modal">
102
+ <a type="button" id="exitButton" class="btn btn-outline-modal" data-dismiss="modal">
103
+ <i class="mdi mdi-18px mdi-dark mdi-close"></i>
98
104
  <%= @modal_disagreed_text %>
99
105
  </a>
100
106
  </div>
101
- </div>
102
- <!-- END Content -->
107
+
108
+ </div> <!-- END Content -->
103
109
  </div>
104
110
  </div>
105
111
  <!-- END Modal SignInProtectedContent -->
106
112
 
113
+ <!-- Modal Central CookieConsent -->
114
+ <div id="centralCookieConsent" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
115
+ <div class="modal-dialog modal-notify modal-<%= @info_type %>" role="document">
116
+ <!-- Content -->
117
+ <div class="modal-content">
118
+ <!--Header-->
119
+ <div class="modal-header">
120
+ <p class="lead">
121
+ <i class="mdi mdi-2x mdi-dark mdi-account"></i>
122
+ <%= @modal_title %>
123
+ </p>
124
+ <!-- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
125
+ <i class="mdi mdi-dark mdi-48px mdi-close"></i>
126
+ </button> -->
127
+ </div>
128
+ <!-- Body -->
129
+ <div class="modal-body">
130
+ <div class="text-center">
131
+ <p style="text-align: justify"><%= @modal_description %></p>
132
+ </div>
133
+ </div>
134
+ <!-- Footer -->
135
+ <div class="modal-footer justify-content-center">
136
+ <a type="button" id="acceptCookiesButton" class="btn btn-primary-modal mr-2" data-dismiss="modal">
137
+ <i class="mdi mdi-18px mdi-dark mdi-<%= @modal_icon %>"></i>
138
+ <%= @modal_agreed_text %>
139
+ </a>
140
+ <a type="button" id="declineCookiesButton" class="btn btn-outline-modal" data-dismiss="modal">
141
+ <i class="mdi mdi-18px mdi-dark mdi-close"></i>
142
+ <%= @modal_disagreed_text %>
143
+ </a>
144
+ </div>
145
+ <!-- END Content -->
146
+ </div>
147
+ </div>
148
+ <!-- END Central CookieConsent -->
149
+
107
150
  </body>
108
151
 
109
152
  <script>
153
+
110
154
  var route;
111
155
  var provider;
156
+ var user_state;
112
157
 
113
- logger = log4javascript.getLogger("j1.Navigator"); // Setup logger
158
+ // Setup logger
159
+ var logger;
160
+ var allModalButtons = document.querySelectorAll('a.btn');
114
161
 
115
162
  var signIn = {
116
163
  provider: "<%= @provider %>",
117
- do: false
164
+ do: "unset"
118
165
  }
119
166
 
120
- $(window).on('load', function(){
121
- $("#<%= @modal %>").modal("show")
167
+ var cookiesAccepted = {
168
+ do: "unset"
169
+ }
170
+
171
+ // Manage button click events for all modals
172
+ // See: https://www.nickang.com/add-event-listener-for-loop-problem-in-javascript/
173
+ // -----------------------------------------------------------------
174
+ $(document).on('shown.bs.modal','#<%= @modal %>', function () {
175
+ console.log('J1AuthManager: entered modal SHOWN from <%= @modal %>');
176
+
177
+ allModalButtons.forEach(function(button, index) {
178
+ button.addEventListener('click', function() {
179
+ // Modal topFullCookieConsent
180
+ // -----------------------------------------------------------
181
+ if (this.id === "acceptCookiesButton") {
182
+ cookiesAccepted.do = true;
183
+ user_state = j1.getWebSessionCookie();
184
+ user_state.cookies_accepted = 'accepted';
185
+ j1.setWebSessionCookie(user_state);
186
+ }
187
+ if (this.id === "declineCookiesButton") {
188
+ cookiesAccepted.do = false;
189
+ }
190
+ if (this.id === "okButton") {
191
+ signIn.do = true;
192
+ }
193
+ if (this.id === "signInButton") {
194
+ signIn.do = true;
195
+ } else {
196
+ signIn.do = false;
197
+ }
198
+ });
199
+ });
200
+
201
+ return;
122
202
  });
123
203
 
124
- $("a.btn").click(function() {
125
- if (this.id === "okButton") {
126
- signIn.do = true;
127
- }
128
- if (this.id === "signInButton") {
129
- signIn.do = true;
130
- } else {
131
- signIn.do = false;
132
- }
204
+ $(window).on('load', function() {
205
+ $("#<%= @modal %>").modal("show")
133
206
  });
134
207
 
135
- $("#<%= @modal %>").on('hidden.bs.modal', function() {
208
+ $(document).on('hide.bs.modal','#<%= @modal %>', function () {
209
+ console.log('J1AuthManager: entered modal HIDE from <%= @modal %>');
210
+ user_state = j1.getWebSessionCookie();
211
+ // Manage SignIn
212
+ // -----------------------------------------------------------------------
136
213
  if (signIn.do == true) {
214
+ var route = "<%= @route %>"
215
+ console.log('J1AuthManager: pass to ' + route);
216
+ window.location.href = route;
217
+ } else if (signIn.do == false) {
218
+ // TODO: How to manage page requested
219
+ // window.location.href = user_state.requested_page; // cause dead loop
220
+ window.location.href = '/';
221
+ }
222
+ // Cookies
223
+ // -----------------------------------------------------------------------
224
+ if (cookiesAccepted.do == true) {
137
225
  var route = "<%= @route %>"
138
226
  window.location.href = route;
139
- } else {
140
- // TODO: How to manage last/current page if protected
141
- j1_user_state = j1.getUserStateCookie();
142
- //window.location.href = j1_user_state.last_page;
143
- //window.location.href = j1_user_state.current_page;
227
+ } else if (cookiesAccepted.do == false) {
144
228
  window.location.href = '/';
145
229
  }
230
+ // pass to "window.location.href"
231
+ return;
146
232
  });
147
233
  </script>
148
234
 
@@ -46,7 +46,7 @@ gem 'jekyll', '~> 3.8.5'
46
46
  # Theme Rubies
47
47
  # Default: J1 Template
48
48
  #
49
- gem 'j1_template_mde', '~> 2018.4.31'
49
+ gem 'j1_template_mde', '~> 2018.4.32'
50
50
 
51
51
  # --------------------------------------------------------------------
52
52
  # PRODUCTION: Gem needed for the Jekyll and J1 prod environment
@@ -60,7 +60,7 @@ environment: development
60
60
  # anything here because version information is bumped-in by
61
61
  # the build process
62
62
  #
63
- version: 2018.4.31
63
+ version: 2018.4.32
64
64
 
65
65
 
66
66
  # ==============================================================================
@@ -547,80 +547,82 @@ algolia:
547
547
  j1_auth:
548
548
  enabled: false
549
549
  ssl: false
550
+ update_user_state: true
550
551
 
551
552
  content:
552
553
  public:
553
554
  - \W*((?i)assets(?-i))\W*
554
555
  - \W*((?i)public(?-i))\W*
556
+ protected:
557
+ - \W*((?i)protected(?-i))\W*
555
558
  private:
556
559
  - \W*((?i)private(?-i))\W*
557
- premium:
558
- - \W*((?i)premium(?-i))\W*
559
560
 
560
561
  providers:
561
562
  activated: [ disqus ]
562
563
 
563
564
  disqus:
564
- home_url: https://disqus.com
565
- product_url: http://localhost:5000
565
+ provider_url: https://disqus.com
566
566
  strategy: member
567
567
  scope: []
568
568
  users: [ all ]
569
- permissions: [ private ]
569
+ permissions: [ protected, private ]
570
570
  data_fields: []
571
571
  conditions:
572
+ protected:
573
+ enabled: true
574
+ users:
575
+ blacklist: []
572
576
  private:
573
577
  enabled: true
574
578
  users:
579
+ whitelist: [ all ]
575
580
  blacklist: []
576
581
 
577
582
  # facebook:
578
- # home_url: https://facebook.com
579
- # product_url: http://localhost:5000
583
+ # provider_url: https://facebook.com
580
584
  # strategy: member
581
585
  # scope: []
582
586
  # users: [ all ]
583
- # permissions: [ private ]
587
+ # permissions: [ protected ]
584
588
  # data_fields: []
585
589
  # conditions:
586
- # private:
590
+ # protected:
587
591
  # enabled: true
588
592
  # users:
589
593
  # whitelist: [ all ]
590
594
  # blacklist: []
591
595
  #
592
596
  # github:
593
- # home_url: https://github.com
594
- # product_url: http://localhost:5000
597
+ # provider_url: https://github.com
595
598
  # strategy: member
596
599
  # scope: []
597
600
  # users: [ all ]
598
- # permissions: [ private ]
601
+ # permissions: [ protected ]
599
602
  # data_fields: []
600
603
  # conditions:
601
- # private:
604
+ # protected:
602
605
  # enabled: true
603
606
  # users:
604
607
  # whitelist: [ all ]
605
608
  # blacklist: []
606
609
  #
607
610
  # patreon:
608
- # home_url: https://patreon.com
609
- # product_url: http://localhost:5000
611
+ # provider_url: https://patreon.com
610
612
  # strategy: member
611
613
  # scope: [ users, pledges-to-me ]
612
614
  # users: [ all ]
613
- # permissions: [ private, premium ]
615
+ # permissions: [ protected, private ]
614
616
  # data_fields: [
615
617
  # email, name, first_name, nickname,
616
618
  # amount_cents, created_at, declined_since
617
619
  # ]
618
620
  # conditions:
619
- # private:
621
+ # protected:
620
622
  # enabled: true
621
623
  # users:
622
624
  # blacklist: []
623
- # premium:
625
+ # private:
624
626
  # enabled: true
625
627
  # users:
626
628
  # whitelist: [ juergen_adams ]
@@ -638,15 +640,14 @@ j1_auth:
638
640
  # state: paid
639
641
  #
640
642
  # twitter:
641
- # home_url: https://twitter.com
642
- # product_url: http://localhost:5000
643
+ # provider_url: https://twitter.com
643
644
  # strategy: member
644
645
  # scope: []
645
646
  # users: [ all ]
646
- # permissions: [ private, premium ]
647
+ # permissions: [ protected ]
647
648
  # data_fields: []
648
649
  # conditions:
649
- # private:
650
+ # protected:
650
651
  # enabled: true
651
652
  # users:
652
653
  # blacklist: []
@@ -756,7 +757,8 @@ defaults:
756
757
  author: J1 Team
757
758
  toc: true
758
759
  resources: toccer
759
- adsense: false
760
+ analytics: false
761
+ advertising: false
760
762
  comments: false
761
763
  scrollbar: false
762
764
  indexed: true
@@ -794,7 +796,8 @@ defaults:
794
796
  author: J1 Team
795
797
  toc: true
796
798
  resources: toccer
797
- adsense: true
799
+ analytics: false
800
+ advertising: false
798
801
  comments: true
799
802
 
800
803
  robots:
@@ -828,7 +831,8 @@ defaults:
828
831
  author: J1 Team
829
832
  toc: true
830
833
  resources: toccer
831
- adsense: true
834
+ analytics: false
835
+ advertising: false
832
836
  comments: true
833
837
 
834
838
  robots:
@@ -859,7 +863,8 @@ defaults:
859
863
  author: J1 Team
860
864
  toc: true
861
865
  resources: toccer
862
- adsense: true
866
+ analytics: false
867
+ advertising: false
863
868
  comments: true
864
869
 
865
870
  robots:
@@ -891,7 +896,8 @@ defaults:
891
896
  resources: toccer
892
897
  toc: true
893
898
  resources: toccer
894
- adsense: true
899
+ analytics: false
900
+ advertising: false
895
901
  comments: false
896
902
 
897
903
  robots:
@@ -921,7 +927,8 @@ defaults:
921
927
 
922
928
  values:
923
929
  layout: page
924
- adsense: true
930
+ analytics: false
931
+ advertising: false
925
932
  scrollbar: false
926
933
 
927
934
  robots:
@@ -937,7 +944,8 @@ defaults:
937
944
 
938
945
  values:
939
946
  layout: page
940
- adsense: true
947
+ analytics: false
948
+ advertising: false
941
949
  scrollbar: false
942
950
 
943
951
  robots:
@@ -953,7 +961,8 @@ defaults:
953
961
 
954
962
  values:
955
963
  layout: page
956
- adsense: true
964
+ analytics: false
965
+ advertising: false
957
966
  scrollbar: false
958
967
 
959
968
  # --------------------------------------------------------
@@ -965,7 +974,8 @@ defaults:
965
974
 
966
975
  values:
967
976
  layout: page
968
- adsense: true
977
+ analytics: false
978
+ advertising: false
969
979
  scrollbar: false
970
980
 
971
981
  robots: