beyond_canvas 0.16.2.pre → 0.17.0.pre

Sign up to get free protection for your applications and to get access to all the features.
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: []