beyond_canvas 0.16.2.pre → 0.17.0.pre

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/beyond_canvas_manifest.js +1 -0
  3. data/app/assets/images/icons/arrow_right.svg +1 -0
  4. data/app/assets/images/icons/close.svg +1 -0
  5. data/app/assets/images/icons/home.svg +1 -0
  6. data/app/assets/javascripts/beyond_canvas/base.js +120 -246
  7. data/app/assets/stylesheets/beyond_canvas/base.scss +8 -1
  8. data/app/assets/stylesheets/beyond_canvas/components/_action_bar.scss +28 -0
  9. data/app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss +29 -0
  10. data/app/assets/stylesheets/beyond_canvas/components/_buttons.scss +1 -1
  11. data/app/assets/stylesheets/beyond_canvas/components/_debug.scss +10 -0
  12. data/app/assets/stylesheets/beyond_canvas/components/_forms.scss +11 -14
  13. data/app/assets/stylesheets/beyond_canvas/components/_main.scss +12 -13
  14. data/app/assets/stylesheets/beyond_canvas/components/_margins.scss +8 -0
  15. data/app/assets/stylesheets/beyond_canvas/components/_menu.scss +40 -0
  16. data/app/assets/stylesheets/beyond_canvas/components/_modals.scss +27 -0
  17. data/app/assets/stylesheets/beyond_canvas/components/_sidebar.scss +53 -0
  18. data/app/assets/stylesheets/beyond_canvas/components/_titles.scss +7 -0
  19. data/app/assets/stylesheets/beyond_canvas/settings/_variables.scss +64 -9
  20. data/app/controllers/beyond_canvas/application_controller.rb +2 -0
  21. data/app/controllers/beyond_canvas/authentications_controller.rb +37 -30
  22. data/app/controllers/concerns/beyond_canvas/authentication.rb +1 -12
  23. data/app/controllers/concerns/beyond_canvas/locale_management.rb +5 -4
  24. data/app/helpers/beyond_canvas/authentications_helper.rb +28 -0
  25. data/app/helpers/beyond_canvas/cockpit_app_helper.rb +17 -0
  26. data/app/helpers/beyond_canvas/debug_helper.rb +9 -0
  27. data/app/helpers/beyond_canvas/locale_switch_helper.rb +5 -1
  28. data/app/javascript/beyond_canvas/base.js +3 -0
  29. data/app/javascript/beyond_canvas/initializers/buttons.js +65 -19
  30. data/app/javascript/beyond_canvas/initializers/flash.js +9 -2
  31. data/app/javascript/beyond_canvas/initializers/inputs.js +4 -1
  32. data/app/javascript/beyond_canvas/initializers/modals.js +14 -0
  33. data/app/views/beyond_canvas/authentications/new.html.erb +19 -10
  34. data/app/views/beyond_canvas/shared/_action_bar.html.erb +15 -0
  35. data/app/views/beyond_canvas/shared/_breadcrumbs.html.erb +14 -0
  36. data/app/views/beyond_canvas/shared/_flash.html.erb +22 -12
  37. data/app/views/beyond_canvas/shared/_locales.html.erb +8 -0
  38. data/app/views/beyond_canvas/shared/_menu.html.erb +31 -0
  39. data/app/views/beyond_canvas/shared/_modal.html.erb +6 -0
  40. data/app/views/beyond_canvas/shared/_sidebar.html.erb +16 -0
  41. data/app/views/layouts/beyond_canvas/application.html.erb +31 -0
  42. data/app/views/layouts/beyond_canvas/public.html.erb +11 -4
  43. data/config/locales/en.yml +5 -0
  44. data/config/routes.rb +5 -4
  45. data/lib/beyond_canvas.rb +12 -12
  46. data/lib/beyond_canvas/configuration.rb +11 -6
  47. data/lib/beyond_canvas/engine.rb +4 -2
  48. data/lib/beyond_canvas/menu_item_registration.rb +19 -0
  49. data/lib/beyond_canvas/parameter_sanitizer.rb +1 -1
  50. data/lib/beyond_canvas/rails/routes.rb +8 -7
  51. data/lib/beyond_canvas/version.rb +1 -1
  52. data/lib/generators/beyond_canvas/controller/controller_generator.rb +1 -2
  53. data/lib/generators/beyond_canvas/controller/templates/controller.erb +2 -19
  54. data/lib/generators/beyond_canvas/custom_menu/custom_menu_generator.rb +13 -0
  55. data/lib/generators/beyond_canvas/custom_menu/templates/beyond_canvas_custom_menu.html.erb +32 -0
  56. data/lib/generators/beyond_canvas/custom_styles/custom_styles_generator.rb +1 -1
  57. data/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +55 -9
  58. data/lib/generators/beyond_canvas/install/install_generator.rb +3 -5
  59. data/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb +51 -13
  60. data/lib/generators/beyond_canvas/{auth_model/auth_model_generator.rb → model/model_generator.rb} +4 -5
  61. data/lib/generators/beyond_canvas/{auth_model → model}/templates/migration.erb +2 -4
  62. data/lib/generators/beyond_canvas/{auth_model → model}/templates/model.erb +0 -0
  63. data/lib/generators/beyond_canvas/views/views_generator.rb +4 -6
  64. data/lib/models/concerns/authentication.rb +57 -0
  65. data/lib/models/concerns/utils.rb +79 -0
  66. data/lib/models/shop.rb +12 -0
  67. metadata +69 -30
  68. data/app/controllers/concerns/beyond_canvas/resource_management.rb +0 -33
  69. data/app/javascript/beyond_canvas/initializers/functions.js +0 -41
  70. data/app/views/beyond_canvas/locales/_edit.html.erb +0 -8
  71. data/lib/beyond_canvas/models/authentication.rb +0 -66
  72. data/lib/beyond_canvas/models/shop.rb +0 -28
  73. data/lib/beyond_canvas/models/utils.rb +0 -55
@@ -6,13 +6,11 @@ module BeyondCanvas
6
6
  desc 'Installs Beyond Canvas and generates the necessary files'
7
7
 
8
8
  class_option :skip_webpacker, type: :boolean, default: false, desc: 'Use Sprockets assets instead of Webpacker'
9
- class_option :auth_model, type: :string, default: 'shop', desc: 'Authentication model'
10
9
 
11
10
  source_root File.expand_path('templates', __dir__)
12
11
 
13
12
  def copy_initializer
14
13
  @skip_webpacker = options[:skip_webpacker]
15
- @auth_model = options[:auth_model]
16
14
 
17
15
  template 'beyond_canvas.rb.erb', 'config/initializers/beyond_canvas.rb'
18
16
  end
@@ -29,12 +27,12 @@ module BeyondCanvas
29
27
  generate 'beyond_canvas:beyond_api'
30
28
  end
31
29
 
32
- def generate_auth_model
33
- generate "beyond_canvas:auth_model #{@auth_model}"
30
+ def generate_model
31
+ generate 'beyond_canvas:model shop'
34
32
  end
35
33
 
36
34
  def setup_routes
37
- route "beyond_canvas_for :#{@auth_model.pluralize}"
35
+ route 'beyond_canvas_routes'
38
36
  end
39
37
 
40
38
  def copy_locale
@@ -1,9 +1,41 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  BeyondCanvas.setup do |config|
4
+ # Carefully read and fill this configuration file.
5
+ #
6
+ # All uncommented configuration parameters are necessary for proper operation
7
+ # of Beyond Canvas.
8
+
9
+ # ==> Engine configuration
10
+
11
+ # Set the namespace where the Engine is going to be mounted.
12
+ #
13
+ # config.namespace = '/'
14
+
15
+ # Set the url or path where a shop is going to be redirected after a
16
+ # succesful authentication.
17
+ #
18
+ config.open_app_url = nil
19
+
20
+ # Set if your app ig going to run as a cockpit app. If you are not sure about
21
+ # this, please contact apps@epages.com.
22
+ #
23
+ # config.cockpit_app = false
24
+
25
+ # Set if your app is going to be preinstalled on packages. If you are not sure
26
+ # about this, please contact apps@epages.com.
27
+ #
28
+ # config.preinstalled = false
29
+
30
+ # Set if you want to enable the available debug mode Beyond Canvas offers.
31
+ # This options displays a parameter debug as well as some custom Beyond Canvas
32
+ # logs.
33
+ #
34
+ # config.debug_mode = false
35
+
4
36
  # ==> Site configuration
5
37
 
6
- # Set the title that is displayed on the main layout..
38
+ # Set the title that is displayed on the main layout.
7
39
  #
8
40
  config.site_title = '<%= Rails.application.class.name.split("::").first.humanize %>'
9
41
 
@@ -17,35 +49,41 @@ BeyondCanvas.setup do |config|
17
49
  #
18
50
  # config.favicon = 'favicon.ico'
19
51
 
52
+ # Set the menu items that will be displayed on the top of your app.
53
+ # It accepts 3 parameters:
54
+ # 1. name: the text displayed on the link tag. Supports any string or an I18n compatible path.
55
+ # 2. url: the href of the link tag. Supports any string or a symbolized route.
56
+ # 3. options: any html attributes that will be added to the link tag.
57
+ # You can also run `rails g beyond_canvas:custom_menu` to generate a menu template you can override.
58
+ # See examples:
59
+ #
60
+ # config.register_menu_item 'Contact', '/contact/, class: 'contact'
61
+ # config.register_menu_item 'menu_item.about_us', :root_path, class: 'about-us', id: 'about-us'
62
+ # config.register_menu_item 'Our website', 'https://epages.com', target: :_blank
63
+
20
64
  # ==> Stylesheets & Javascripts
21
65
 
22
66
  # We recommend using the built in Beyond Canvas layout and loading up your own
23
67
  # stylesheets / javascripts to customize the look and feel.
24
68
  #
25
69
  # To load a stylesheet:
26
- # config.register_stylesheet 'my_stylesheet.css'
70
+ # config.register_stylesheet 'my_stylesheet.css'
27
71
  #
28
- # You can provide an options hash for more control, which is passed along to stylesheet_link_tag():
29
- # config.register_stylesheet 'my_print_stylesheet.css', media: :print
72
+ # You can provide an options hash for more control, which is passed along
73
+ # to stylesheet_link_tag():
74
+ # config.register_stylesheet 'my_print_stylesheet.css', media: :print
30
75
  #
31
76
  # To load a javascript file:
32
- # config.register_javascript 'my_javascript.js'
77
+ # config.register_javascript 'my_javascript.js'
33
78
 
34
79
  # ==> Webpacker
35
80
 
36
- # By default, Active Admin uses Webpacker.
81
+ # By default, Beyond Canvas uses Webpacker.
37
82
  # You can switch to using Sprocket's asset pipeline here.
38
83
  #
39
84
  <% unless @skip_webpacker %># <% end %>config.skip_webpacker = <%= @skip_webpacker %>
40
85
 
41
86
  # ==> Authentication with ePages Beyond API
42
87
 
43
- # Default model is shop
44
- #
45
88
  config.encryption_key = '<%= SecureRandom.hex(32) %>'
46
- config.blind_index_key = '<%= SecureRandom.hex(32) %>'
47
-
48
- # ==> Mountable engine configuration
49
- #
50
- # config.namespace = '/'
51
89
  end
@@ -4,7 +4,7 @@ require 'rails/generators/active_record'
4
4
 
5
5
  module BeyondCanvas
6
6
  module Generators
7
- class AuthModelGenerator < ActiveRecord::Generators::Base # :nodoc:
7
+ class ModelGenerator < ActiveRecord::Generators::Base # :nodoc:
8
8
  desc 'Generates a model with the given name and provides a method to authenticate in Beyond Backend'
9
9
 
10
10
  argument :attributes, type: :array, default: [], banner: 'field:type field:type'
@@ -19,7 +19,7 @@ module BeyondCanvas
19
19
  end
20
20
 
21
21
  def generate_model
22
- template 'model.erb', File.join('app', 'models', "#{file_path}.rb")
22
+ template 'model.erb', File.join("app/models/#{file_path}.rb")
23
23
  end
24
24
 
25
25
  private
@@ -34,15 +34,14 @@ module BeyondCanvas
34
34
 
35
35
  def migration_data
36
36
  <<RUBY
37
- t.string :encrypted_beyond_api_url, null: false
38
- t.string :encrypted_beyond_api_url_iv, null: false
39
- t.string :beyond_api_url_bidx, null: false
37
+ t.string :beyond_api_url, null: false
40
38
 
41
39
  t.text :encrypted_beyond_access_token, null: true
42
40
  t.text :encrypted_beyond_access_token_iv, null: true
43
41
 
44
42
  t.text :encrypted_beyond_refresh_token, null: true
45
43
  t.text :encrypted_beyond_refresh_token_iv, null: true
44
+
46
45
  RUBY
47
46
  end
48
47
  end
@@ -4,16 +4,14 @@ class BeyondCanvasCreate<%= table_name.camelize %> < ActiveRecord::Migration<%=
4
4
  def change
5
5
  create_table :<%= table_name %><%= primary_key_type %> do |t|
6
6
  <%= migration_data -%>
7
-
8
7
  <% attributes.each do |attribute| -%>
9
8
  t.<%= attribute.type %> :<%= attribute.name %>
10
- <% end -%>
11
9
 
10
+ <% end -%>
12
11
  t.timestamps null: false
13
12
  end
14
13
 
15
- add_index :<%= table_name %>, :encrypted_beyond_api_url_iv, unique: true
16
- add_index :<%= table_name %>, :beyond_api_url_bidx, unique: true
14
+ add_index :<%= table_name %>, :beyond_api_url, unique: true
17
15
  add_index :<%= table_name %>, :encrypted_beyond_access_token_iv, unique: true
18
16
  add_index :<%= table_name %>, :encrypted_beyond_refresh_token_iv, unique: true
19
17
  end
@@ -5,14 +5,12 @@ require 'rails/generators/active_record'
5
5
  module BeyondCanvas
6
6
  module Generators
7
7
  class ViewsGenerator < Rails::Generators::Base # :nodoc:
8
- desc 'Creates a view in the app/view folder'
8
+ desc 'Creates all Beyond Canvas views to overwrite them'
9
9
 
10
- argument :scope, required: true, desc: 'The scope to copy views to'
10
+ source_root File.expand_path('../../../../app/views/beyond_canvas', __dir__)
11
11
 
12
- source_root File.expand_path('../../../../app/views/beyond_canvas/authentications', __dir__)
13
-
14
- def create_view
15
- copy_file 'new.html.erb', "app/views/#{scope}/new.html.erb"
12
+ def copy_views
13
+ directory 'authentications', 'app/views/beyond_canvas/authentications'
16
14
  end
17
15
  end
18
16
  end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BeyondCanvas
4
+ module Models
5
+ module Concerns
6
+ module Authentication # :nodoc:
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ attr_accessor :code, :signature, :access_token_url, :api_url, :return_url, :terms
11
+
12
+ ##############################################################################
13
+ # Encrypted attribute configuration
14
+ ##############################################################################
15
+
16
+ attr_encrypted :beyond_access_token, key: [BeyondCanvas.configuration.encryption_key].pack('H*')
17
+ attr_encrypted :beyond_refresh_token, key: [BeyondCanvas.configuration.encryption_key].pack('H*')
18
+
19
+ ##############################################################################
20
+ # Validations
21
+ ##############################################################################
22
+
23
+ # Database fields
24
+
25
+ validates :beyond_api_url,
26
+ presence: true
27
+ validates :beyond_access_token,
28
+ presence: true,
29
+ unless: -> { encrypted_beyond_access_token_was.blank? }
30
+ validates :beyond_refresh_token,
31
+ presence: true,
32
+ unless: -> { encrypted_beyond_refresh_token_was.blank? }
33
+
34
+ ##############################################################################
35
+ # Instance methods
36
+ ##############################################################################
37
+
38
+ #
39
+ # Get and save access_token and refresh_token using the authentication code
40
+ # NOTE: This method is used during the shop creation, as it is the only point
41
+ # we know about the authentication code
42
+ #
43
+ def authenticate(params_code)
44
+ session = BeyondApi::Session.new(api_url: beyond_api_url)
45
+ session.token.create(params_code)
46
+ update(beyond_access_token: session.access_token,
47
+ beyond_refresh_token: session.refresh_token)
48
+ end
49
+
50
+ def authenticated?
51
+ beyond_access_token.present? && beyond_refresh_token.present?
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'jwt'
4
+
5
+ module BeyondCanvas
6
+ module Models
7
+ module Concerns
8
+ module Utils # :nodoc:
9
+ extend ActiveSupport::Concern
10
+
11
+ included do
12
+ ##############################################################################
13
+ # Instance methods
14
+ ##############################################################################
15
+
16
+ #
17
+ # Generates a new access_token and refresh_token
18
+ #
19
+ def refresh_token
20
+ beyond_session = BeyondApi::Session.new(api_url: beyond_api_url, refresh_token: beyond_refresh_token)
21
+ beyond_session.token.refresh
22
+
23
+ update(beyond_access_token: beyond_session.access_token,
24
+ beyond_refresh_token: beyond_session.refresh_token)
25
+ end
26
+
27
+ #
28
+ # Generates a new access_token and refresh_token if they have expired
29
+ #
30
+ def refresh_token_if_needed
31
+ token_timestamp = decoded_jwt['exp']
32
+ current_timestamp = DateTime.now.to_i
33
+ return unless token_timestamp - current_timestamp <= 3600
34
+
35
+ refresh_token
36
+ end
37
+
38
+ #
39
+ # Returns a BeyondApi::Session object with api_url, access_token and refresh_token attributes
40
+ #
41
+ def to_session
42
+ BeyondApi::Session.new(api_url: beyond_api_url,
43
+ access_token: beyond_access_token,
44
+ refresh_token: beyond_refresh_token)
45
+ end
46
+
47
+ #
48
+ # Returns the shop url
49
+ #
50
+ def url
51
+ "https://#{URI.parse(beyond_api_url).host}"
52
+ end
53
+
54
+ def has_scope?(scope)
55
+ return unless scope.include?(':')
56
+
57
+ base, scope = scope.split(':')
58
+ !!(decoded_jwt['scope'].find { |s| s.split(':').first == base } =~ /#{base}:.*#{scope}.*/)
59
+ end
60
+
61
+ ##############################################################################
62
+ # Class methods
63
+ ##############################################################################
64
+
65
+ def self.find_session(id)
66
+ shop = find(id)
67
+ shop.to_session
68
+ end
69
+
70
+ private
71
+
72
+ def decoded_jwt
73
+ JWT.decode(beyond_access_token, nil, false).first
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BeyondCanvas
4
+ module Models
5
+ module Shop # :nodoc:
6
+ extend ActiveSupport::Concern
7
+
8
+ include ::BeyondCanvas::Models::Concerns::Authentication
9
+ include ::BeyondCanvas::Models::Concerns::Utils
10
+ end
11
+ end
12
+ end
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beyond_canvas
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.2.pre
4
+ version: 0.17.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Unai Abrisketa
8
- autorequire:
8
+ - Kathia Salazar
9
+ - German San Emeterio
10
+ autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2020-08-06 00:00:00.000000000 Z
13
+ date: 2020-09-30 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: attr_encrypted
@@ -38,20 +40,6 @@ dependencies:
38
40
  - - "~>"
39
41
  - !ruby/object:Gem::Version
40
42
  version: '0.11'
41
- - !ruby/object:Gem::Dependency
42
- name: blind_index
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.0'
55
43
  - !ruby/object:Gem::Dependency
56
44
  name: bourbon
57
45
  requirement: !ruby/object:Gem::Requirement
@@ -170,6 +158,34 @@ dependencies:
170
158
  - - "<"
171
159
  - !ruby/object:Gem::Version
172
160
  version: '4.1'
161
+ - !ruby/object:Gem::Dependency
162
+ name: loaf
163
+ requirement: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '0.9'
168
+ type: :runtime
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '0.9'
175
+ - !ruby/object:Gem::Dependency
176
+ name: jwt
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '2.2'
182
+ type: :runtime
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '2.2'
173
189
  - !ruby/object:Gem::Dependency
174
190
  name: rubocop-rails
175
191
  requirement: !ruby/object:Gem::Requirement
@@ -188,7 +204,9 @@ description: |2
188
204
  Beyond Canvas is an open-source framework that provides CSS styles for apps
189
205
  designed and developed for the online shop software Beyond
190
206
  email:
191
- - u.abrisketa@epages.com
207
+ - uabrisketa@epages.com
208
+ - ksalazar@epages.com
209
+ - gsanemeterio@epages.com
192
210
  executables: []
193
211
  extensions: []
194
212
  extra_rdoc_files: []
@@ -197,23 +215,29 @@ files:
197
215
  - README.md
198
216
  - Rakefile
199
217
  - app/assets/config/beyond_canvas_manifest.js
218
+ - app/assets/images/icons/arrow_right.svg
200
219
  - app/assets/images/icons/checkbox_checked.svg
201
220
  - app/assets/images/icons/checkbox_unchecked.svg
221
+ - app/assets/images/icons/close.svg
202
222
  - app/assets/images/icons/file.svg
203
223
  - app/assets/images/icons/flash_checkbox.svg
204
224
  - app/assets/images/icons/flash_close.svg
205
225
  - app/assets/images/icons/flash_error.svg
206
226
  - app/assets/images/icons/flash_info.svg
207
227
  - app/assets/images/icons/flash_warning.svg
228
+ - app/assets/images/icons/home.svg
208
229
  - app/assets/images/icons/radiobutton_checked.svg
209
230
  - app/assets/images/icons/radiobutton_unchecked.svg
210
231
  - app/assets/javascripts/beyond_canvas/base.js
211
232
  - app/assets/stylesheets/beyond_canvas/base.scss
233
+ - app/assets/stylesheets/beyond_canvas/components/_action_bar.scss
212
234
  - app/assets/stylesheets/beyond_canvas/components/_actions.scss
235
+ - app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss
213
236
  - app/assets/stylesheets/beyond_canvas/components/_buttons.scss
214
237
  - app/assets/stylesheets/beyond_canvas/components/_cards.scss
215
238
  - app/assets/stylesheets/beyond_canvas/components/_comments.scss
216
239
  - app/assets/stylesheets/beyond_canvas/components/_containers.scss
240
+ - app/assets/stylesheets/beyond_canvas/components/_debug.scss
217
241
  - app/assets/stylesheets/beyond_canvas/components/_flash.scss
218
242
  - app/assets/stylesheets/beyond_canvas/components/_forms.scss
219
243
  - app/assets/stylesheets/beyond_canvas/components/_inputs.scss
@@ -222,11 +246,15 @@ files:
222
246
  - app/assets/stylesheets/beyond_canvas/components/_main.scss
223
247
  - app/assets/stylesheets/beyond_canvas/components/_margins.scss
224
248
  - app/assets/stylesheets/beyond_canvas/components/_markdown.scss
249
+ - app/assets/stylesheets/beyond_canvas/components/_menu.scss
250
+ - app/assets/stylesheets/beyond_canvas/components/_modals.scss
225
251
  - app/assets/stylesheets/beyond_canvas/components/_notices.scss
226
252
  - app/assets/stylesheets/beyond_canvas/components/_relative.scss
253
+ - app/assets/stylesheets/beyond_canvas/components/_sidebar.scss
227
254
  - app/assets/stylesheets/beyond_canvas/components/_spinner.scss
228
255
  - app/assets/stylesheets/beyond_canvas/components/_tables.scss
229
256
  - app/assets/stylesheets/beyond_canvas/components/_texts.scss
257
+ - app/assets/stylesheets/beyond_canvas/components/_titles.scss
230
258
  - app/assets/stylesheets/beyond_canvas/mailer.scss
231
259
  - app/assets/stylesheets/beyond_canvas/settings/_breakpoints.scss
232
260
  - app/assets/stylesheets/beyond_canvas/settings/_reset_css.scss
@@ -240,26 +268,34 @@ files:
240
268
  - app/controllers/concerns/beyond_canvas/authentication.rb
241
269
  - app/controllers/concerns/beyond_canvas/locale_management.rb
242
270
  - app/controllers/concerns/beyond_canvas/request_validation.rb
243
- - app/controllers/concerns/beyond_canvas/resource_management.rb
244
271
  - app/controllers/concerns/beyond_canvas/status_codes.rb
245
272
  - app/form_builders/beyond_canvas/form_builder.rb
246
273
  - app/helpers/beyond_canvas/application_helper.rb
274
+ - app/helpers/beyond_canvas/authentications_helper.rb
275
+ - app/helpers/beyond_canvas/cockpit_app_helper.rb
276
+ - app/helpers/beyond_canvas/debug_helper.rb
247
277
  - app/helpers/beyond_canvas/locale_switch_helper.rb
248
278
  - app/javascript/beyond_canvas/base.js
249
279
  - app/javascript/beyond_canvas/initializers/buttons.js
250
280
  - app/javascript/beyond_canvas/initializers/flash.js
251
- - app/javascript/beyond_canvas/initializers/functions.js
252
281
  - app/javascript/beyond_canvas/initializers/inputs.js
282
+ - app/javascript/beyond_canvas/initializers/modals.js
253
283
  - app/views/beyond_canvas/authentications/new.html.erb
254
284
  - app/views/beyond_canvas/custom/_public_head.html.erb
255
- - app/views/beyond_canvas/locales/_edit.html.erb
256
285
  - app/views/beyond_canvas/mailer/_button.html.erb
257
286
  - app/views/beyond_canvas/mailer/_footer.html.erb
258
287
  - app/views/beyond_canvas/mailer/_header.html.erb
259
288
  - app/views/beyond_canvas/mailer/_text.html.erb
289
+ - app/views/beyond_canvas/shared/_action_bar.html.erb
290
+ - app/views/beyond_canvas/shared/_breadcrumbs.html.erb
260
291
  - app/views/beyond_canvas/shared/_flash.html.erb
261
292
  - app/views/beyond_canvas/shared/_head.html.erb
293
+ - app/views/beyond_canvas/shared/_locales.html.erb
262
294
  - app/views/beyond_canvas/shared/_logo.html.erb
295
+ - app/views/beyond_canvas/shared/_menu.html.erb
296
+ - app/views/beyond_canvas/shared/_modal.html.erb
297
+ - app/views/beyond_canvas/shared/_sidebar.html.erb
298
+ - app/views/layouts/beyond_canvas/application.html.erb
263
299
  - app/views/layouts/beyond_canvas/mailer.html.erb
264
300
  - app/views/layouts/beyond_canvas/public.html.erb
265
301
  - config/initializers/beyond_canvas/filter_parameter_logging.rb
@@ -270,35 +306,38 @@ files:
270
306
  - lib/beyond_canvas/asset_registration.rb
271
307
  - lib/beyond_canvas/configuration.rb
272
308
  - lib/beyond_canvas/engine.rb
273
- - lib/beyond_canvas/models/authentication.rb
274
- - lib/beyond_canvas/models/shop.rb
275
- - lib/beyond_canvas/models/utils.rb
309
+ - lib/beyond_canvas/menu_item_registration.rb
276
310
  - lib/beyond_canvas/parameter_sanitizer.rb
277
311
  - lib/beyond_canvas/rails/routes.rb
278
312
  - lib/beyond_canvas/version.rb
279
313
  - lib/generators/beyond_canvas/assets/assets_generator.rb
280
314
  - lib/generators/beyond_canvas/assets/templates/beyond_canvas.js
281
315
  - lib/generators/beyond_canvas/assets/templates/beyond_canvas.scss
282
- - lib/generators/beyond_canvas/auth_model/auth_model_generator.rb
283
- - lib/generators/beyond_canvas/auth_model/templates/migration.erb
284
- - lib/generators/beyond_canvas/auth_model/templates/model.erb
285
316
  - lib/generators/beyond_canvas/beyond_api/beyond_api_generator.rb
286
317
  - lib/generators/beyond_canvas/controller/controller_generator.rb
287
318
  - lib/generators/beyond_canvas/controller/templates/controller.erb
319
+ - lib/generators/beyond_canvas/custom_menu/custom_menu_generator.rb
320
+ - lib/generators/beyond_canvas/custom_menu/templates/beyond_canvas_custom_menu.html.erb
288
321
  - lib/generators/beyond_canvas/custom_styles/custom_styles_generator.rb
289
322
  - lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss
290
323
  - lib/generators/beyond_canvas/install/install_generator.rb
291
324
  - lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb
325
+ - lib/generators/beyond_canvas/model/model_generator.rb
326
+ - lib/generators/beyond_canvas/model/templates/migration.erb
327
+ - lib/generators/beyond_canvas/model/templates/model.erb
292
328
  - lib/generators/beyond_canvas/views/views_generator.rb
293
329
  - lib/generators/beyond_canvas/webpacker/plugins/jquery.js
294
330
  - lib/generators/beyond_canvas/webpacker/templates/beyond_canvas.js
295
331
  - lib/generators/beyond_canvas/webpacker/templates/beyond_canvas.scss
296
332
  - lib/generators/beyond_canvas/webpacker/webpacker_generator.rb
333
+ - lib/models/concerns/authentication.rb
334
+ - lib/models/concerns/utils.rb
335
+ - lib/models/shop.rb
297
336
  homepage: https://github.com/ePages-de/beyond_canvas
298
337
  licenses:
299
338
  - MIT
300
339
  metadata: {}
301
- post_install_message:
340
+ post_install_message:
302
341
  rdoc_options: []
303
342
  require_paths:
304
343
  - lib
@@ -313,8 +352,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
313
352
  - !ruby/object:Gem::Version
314
353
  version: 1.3.1
315
354
  requirements: []
316
- rubygems_version: 3.0.3
317
- signing_key:
355
+ rubygems_version: 3.1.4
356
+ signing_key:
318
357
  specification_version: 4
319
358
  summary: Open-source framework that provides CSS styles
320
359
  test_files: []