beyond_canvas 0.15.3.pre → 0.18.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -6
  3. data/Rakefile +3 -3
  4. data/app/assets/config/beyond_canvas_manifest.js +1 -0
  5. data/app/assets/images/icons/arrow_right.svg +1 -0
  6. data/app/assets/images/icons/close.svg +1 -0
  7. data/app/assets/images/icons/home.svg +1 -0
  8. data/app/assets/javascripts/beyond_canvas/base.js +120 -246
  9. data/app/assets/stylesheets/beyond_canvas/base.scss +10 -1
  10. data/app/assets/stylesheets/beyond_canvas/components/_action_bar.scss +28 -0
  11. data/app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss +29 -0
  12. data/app/assets/stylesheets/beyond_canvas/components/_buttons.scss +1 -1
  13. data/app/assets/stylesheets/beyond_canvas/components/_debug.scss +10 -0
  14. data/app/assets/stylesheets/beyond_canvas/components/_forms.scss +11 -14
  15. data/app/assets/stylesheets/beyond_canvas/components/_grids.scss +12 -0
  16. data/app/assets/stylesheets/beyond_canvas/components/_main.scss +12 -13
  17. data/app/assets/stylesheets/beyond_canvas/components/_margins.scss +8 -0
  18. data/app/assets/stylesheets/beyond_canvas/components/_menu.scss +40 -0
  19. data/app/assets/stylesheets/beyond_canvas/components/_modals.scss +35 -0
  20. data/app/assets/stylesheets/beyond_canvas/components/_scrollbox.scss +35 -0
  21. data/app/assets/stylesheets/beyond_canvas/components/_sidebar.scss +53 -0
  22. data/app/assets/stylesheets/beyond_canvas/components/_titles.scss +7 -0
  23. data/app/assets/stylesheets/beyond_canvas/settings/_breakpoints.scss +6 -6
  24. data/app/assets/stylesheets/beyond_canvas/settings/_variables.scss +77 -22
  25. data/app/controllers/beyond_canvas/application_controller.rb +2 -0
  26. data/app/controllers/beyond_canvas/authentications_controller.rb +69 -0
  27. data/app/controllers/concerns/beyond_canvas/authentication.rb +13 -0
  28. data/app/controllers/concerns/beyond_canvas/locale_management.rb +5 -4
  29. data/app/helpers/beyond_canvas/authentications_helper.rb +28 -0
  30. data/app/helpers/beyond_canvas/cockpit_app_helper.rb +17 -0
  31. data/app/helpers/beyond_canvas/debug_helper.rb +9 -0
  32. data/app/helpers/beyond_canvas/locale_switch_helper.rb +5 -1
  33. data/app/javascript/beyond_canvas/base.js +3 -0
  34. data/app/javascript/beyond_canvas/initializers/buttons.js +65 -19
  35. data/app/javascript/beyond_canvas/initializers/flash.js +9 -2
  36. data/app/javascript/beyond_canvas/initializers/inputs.js +4 -1
  37. data/app/javascript/beyond_canvas/initializers/modals.js +14 -0
  38. data/app/views/beyond_canvas/authentications/new.html.erb +27 -0
  39. data/app/views/beyond_canvas/shared/_action_bar.html.erb +15 -0
  40. data/app/views/beyond_canvas/shared/_breadcrumbs.html.erb +14 -0
  41. data/app/views/beyond_canvas/shared/_flash.html.erb +22 -12
  42. data/app/views/beyond_canvas/shared/_locales.html.erb +8 -0
  43. data/app/views/beyond_canvas/shared/_menu.html.erb +31 -0
  44. data/app/views/beyond_canvas/shared/_modal.html.erb +6 -0
  45. data/app/views/beyond_canvas/shared/_sidebar.html.erb +16 -0
  46. data/app/views/layouts/beyond_canvas/application.html.erb +31 -0
  47. data/app/views/layouts/beyond_canvas/public.html.erb +10 -1
  48. data/config/locales/en.yml +9 -0
  49. data/config/routes.rb +8 -1
  50. data/lib/beyond_canvas.rb +18 -2
  51. data/lib/beyond_canvas/configuration.rb +11 -3
  52. data/lib/beyond_canvas/engine.rb +6 -0
  53. data/lib/beyond_canvas/menu_item_registration.rb +19 -0
  54. data/lib/beyond_canvas/parameter_sanitizer.rb +43 -0
  55. data/lib/beyond_canvas/rails/routes.rb +22 -0
  56. data/lib/beyond_canvas/version.rb +1 -1
  57. data/lib/generators/beyond_canvas/controller/controller_generator.rb +19 -0
  58. data/lib/generators/beyond_canvas/controller/templates/controller.erb +20 -0
  59. data/lib/generators/beyond_canvas/custom_menu/custom_menu_generator.rb +13 -0
  60. data/lib/generators/beyond_canvas/custom_menu/templates/beyond_canvas_custom_menu.html.erb +32 -0
  61. data/lib/generators/beyond_canvas/custom_styles/custom_styles_generator.rb +1 -1
  62. data/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +199 -0
  63. data/lib/generators/beyond_canvas/install/install_generator.rb +13 -5
  64. data/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb +55 -6
  65. data/lib/generators/beyond_canvas/model/model_generator.rb +49 -0
  66. data/lib/generators/beyond_canvas/model/templates/migration.erb +18 -0
  67. data/lib/generators/beyond_canvas/model/templates/model.erb +5 -0
  68. data/lib/generators/beyond_canvas/views/views_generator.rb +17 -0
  69. data/lib/models/concerns/authentication.rb +57 -0
  70. data/lib/models/concerns/utils.rb +79 -0
  71. data/lib/models/shop.rb +12 -0
  72. metadata +97 -12
  73. data/app/javascript/beyond_canvas/initializers/functions.js +0 -41
  74. data/app/views/beyond_canvas/locales/_edit.html.erb +0 -8
  75. data/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.sass +0 -123
@@ -15,10 +15,6 @@ module BeyondCanvas
15
15
  template 'beyond_canvas.rb.erb', 'config/initializers/beyond_canvas.rb'
16
16
  end
17
17
 
18
- def setup_routes
19
- route "mount BeyondCanvas::Engine => '/'"
20
- end
21
-
22
18
  def create_assets
23
19
  if options[:skip_webpacker]
24
20
  generate 'beyond_canvas:assets'
@@ -28,7 +24,19 @@ module BeyondCanvas
28
24
  end
29
25
 
30
26
  def install_beyond_api
31
- generate 'beyond_api:install'
27
+ generate 'beyond_canvas:beyond_api'
28
+ end
29
+
30
+ def generate_model
31
+ generate 'beyond_canvas:model shop'
32
+ end
33
+
34
+ def setup_routes
35
+ route 'beyond_canvas_routes'
36
+ end
37
+
38
+ def copy_locale
39
+ copy_file '../../../../../config/locales/en.yml', 'config/locales/beyond_canvas.en.yml'
32
40
  end
33
41
  end
34
42
  end
@@ -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,24 +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 %>
85
+
86
+ # ==> Authentication with ePages Beyond API
87
+
88
+ config.encryption_key = '<%= SecureRandom.hex(32) %>'
40
89
  end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators/active_record'
4
+
5
+ module BeyondCanvas
6
+ module Generators
7
+ class ModelGenerator < ActiveRecord::Generators::Base # :nodoc:
8
+ desc 'Generates a model with the given name and provides a method to authenticate in Beyond Backend'
9
+
10
+ argument :attributes, type: :array, default: [], banner: 'field:type field:type'
11
+
12
+ source_root File.expand_path('templates', __dir__)
13
+
14
+ def copy_beyond_canvas_migration
15
+ migration_path = File.join('db', 'migrate')
16
+ migration_template 'migration.erb',
17
+ "#{migration_path}/beyond_canvas_create_#{table_name}.rb",
18
+ migration_version: migration_version
19
+ end
20
+
21
+ def generate_model
22
+ template 'model.erb', File.join("app/models/#{file_path}.rb")
23
+ end
24
+
25
+ private
26
+
27
+ def rails5_and_up?
28
+ Rails::VERSION::MAJOR >= 5
29
+ end
30
+
31
+ def migration_version
32
+ "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]" if rails5_and_up?
33
+ end
34
+
35
+ def migration_data
36
+ <<RUBY
37
+ t.string :beyond_api_url, null: false
38
+
39
+ t.text :encrypted_beyond_access_token, null: true
40
+ t.text :encrypted_beyond_access_token_iv, null: true
41
+
42
+ t.text :encrypted_beyond_refresh_token, null: true
43
+ t.text :encrypted_beyond_refresh_token_iv, null: true
44
+
45
+ RUBY
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ class BeyondCanvasCreate<%= table_name.camelize %> < ActiveRecord::Migration<%= migration_version %>
4
+ def change
5
+ create_table :<%= table_name %><%= primary_key_type %> do |t|
6
+ <%= migration_data -%>
7
+ <% attributes.each do |attribute| -%>
8
+ t.<%= attribute.type %> :<%= attribute.name %>
9
+
10
+ <% end -%>
11
+ t.timestamps null: false
12
+ end
13
+
14
+ add_index :<%= table_name %>, :beyond_api_url, unique: true
15
+ add_index :<%= table_name %>, :encrypted_beyond_access_token_iv, unique: true
16
+ add_index :<%= table_name %>, :encrypted_beyond_refresh_token_iv, unique: true
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class <%= file_path.classify %> < ApplicationRecord
4
+ include BeyondCanvas::Models::Shop
5
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators/active_record'
4
+
5
+ module BeyondCanvas
6
+ module Generators
7
+ class ViewsGenerator < Rails::Generators::Base # :nodoc:
8
+ desc 'Creates all Beyond Canvas views to overwrite them'
9
+
10
+ source_root File.expand_path('../../../../app/views/beyond_canvas', __dir__)
11
+
12
+ def copy_views
13
+ directory 'authentications', 'app/views/beyond_canvas/authentications'
14
+ end
15
+ end
16
+ end
17
+ 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,29 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beyond_canvas
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.3.pre
4
+ version: 0.18.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-06-18 00:00:00.000000000 Z
13
+ date: 2020-10-06 00:00:00.000000000 Z
12
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: attr_encrypted
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '3.1'
13
29
  - !ruby/object:Gem::Dependency
14
30
  name: beyond_api
15
31
  requirement: !ruby/object:Gem::Requirement
16
32
  requirements:
17
33
  - - "~>"
18
34
  - !ruby/object:Gem::Version
19
- version: '0.8'
35
+ version: '0.11'
20
36
  type: :runtime
21
37
  prerelease: false
22
38
  version_requirements: !ruby/object:Gem::Requirement
23
39
  requirements:
24
40
  - - "~>"
25
41
  - !ruby/object:Gem::Version
26
- version: '0.8'
42
+ version: '0.11'
27
43
  - !ruby/object:Gem::Dependency
28
44
  name: bourbon
29
45
  requirement: !ruby/object:Gem::Requirement
@@ -142,6 +158,34 @@ dependencies:
142
158
  - - "<"
143
159
  - !ruby/object:Gem::Version
144
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'
145
189
  - !ruby/object:Gem::Dependency
146
190
  name: rubocop-rails
147
191
  requirement: !ruby/object:Gem::Requirement
@@ -160,7 +204,9 @@ description: |2
160
204
  Beyond Canvas is an open-source framework that provides CSS styles for apps
161
205
  designed and developed for the online shop software Beyond
162
206
  email:
163
- - u.abrisketa@epages.com
207
+ - uabrisketa@epages.com
208
+ - ksalazar@epages.com
209
+ - gsanemeterio@epages.com
164
210
  executables: []
165
211
  extensions: []
166
212
  extra_rdoc_files: []
@@ -169,36 +215,48 @@ files:
169
215
  - README.md
170
216
  - Rakefile
171
217
  - app/assets/config/beyond_canvas_manifest.js
218
+ - app/assets/images/icons/arrow_right.svg
172
219
  - app/assets/images/icons/checkbox_checked.svg
173
220
  - app/assets/images/icons/checkbox_unchecked.svg
221
+ - app/assets/images/icons/close.svg
174
222
  - app/assets/images/icons/file.svg
175
223
  - app/assets/images/icons/flash_checkbox.svg
176
224
  - app/assets/images/icons/flash_close.svg
177
225
  - app/assets/images/icons/flash_error.svg
178
226
  - app/assets/images/icons/flash_info.svg
179
227
  - app/assets/images/icons/flash_warning.svg
228
+ - app/assets/images/icons/home.svg
180
229
  - app/assets/images/icons/radiobutton_checked.svg
181
230
  - app/assets/images/icons/radiobutton_unchecked.svg
182
231
  - app/assets/javascripts/beyond_canvas/base.js
183
232
  - app/assets/stylesheets/beyond_canvas/base.scss
233
+ - app/assets/stylesheets/beyond_canvas/components/_action_bar.scss
184
234
  - app/assets/stylesheets/beyond_canvas/components/_actions.scss
235
+ - app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss
185
236
  - app/assets/stylesheets/beyond_canvas/components/_buttons.scss
186
237
  - app/assets/stylesheets/beyond_canvas/components/_cards.scss
187
238
  - app/assets/stylesheets/beyond_canvas/components/_comments.scss
188
239
  - app/assets/stylesheets/beyond_canvas/components/_containers.scss
240
+ - app/assets/stylesheets/beyond_canvas/components/_debug.scss
189
241
  - app/assets/stylesheets/beyond_canvas/components/_flash.scss
190
242
  - app/assets/stylesheets/beyond_canvas/components/_forms.scss
243
+ - app/assets/stylesheets/beyond_canvas/components/_grids.scss
191
244
  - app/assets/stylesheets/beyond_canvas/components/_inputs.scss
192
245
  - app/assets/stylesheets/beyond_canvas/components/_layouts.scss
193
246
  - app/assets/stylesheets/beyond_canvas/components/_links.scss
194
247
  - app/assets/stylesheets/beyond_canvas/components/_main.scss
195
248
  - app/assets/stylesheets/beyond_canvas/components/_margins.scss
196
249
  - app/assets/stylesheets/beyond_canvas/components/_markdown.scss
250
+ - app/assets/stylesheets/beyond_canvas/components/_menu.scss
251
+ - app/assets/stylesheets/beyond_canvas/components/_modals.scss
197
252
  - app/assets/stylesheets/beyond_canvas/components/_notices.scss
198
253
  - app/assets/stylesheets/beyond_canvas/components/_relative.scss
254
+ - app/assets/stylesheets/beyond_canvas/components/_scrollbox.scss
255
+ - app/assets/stylesheets/beyond_canvas/components/_sidebar.scss
199
256
  - app/assets/stylesheets/beyond_canvas/components/_spinner.scss
200
257
  - app/assets/stylesheets/beyond_canvas/components/_tables.scss
201
258
  - app/assets/stylesheets/beyond_canvas/components/_texts.scss
259
+ - app/assets/stylesheets/beyond_canvas/components/_titles.scss
202
260
  - app/assets/stylesheets/beyond_canvas/mailer.scss
203
261
  - app/assets/stylesheets/beyond_canvas/settings/_breakpoints.scss
204
262
  - app/assets/stylesheets/beyond_canvas/settings/_reset_css.scss
@@ -207,54 +265,81 @@ files:
207
265
  - app/assets/stylesheets/beyond_canvas/utilities/_functions.scss
208
266
  - app/assets/stylesheets/beyond_canvas/utilities/_mixins.scss
209
267
  - app/controllers/beyond_canvas/application_controller.rb
268
+ - app/controllers/beyond_canvas/authentications_controller.rb
210
269
  - app/controllers/beyond_canvas/system_controller.rb
270
+ - app/controllers/concerns/beyond_canvas/authentication.rb
211
271
  - app/controllers/concerns/beyond_canvas/locale_management.rb
212
272
  - app/controllers/concerns/beyond_canvas/request_validation.rb
213
273
  - app/controllers/concerns/beyond_canvas/status_codes.rb
214
274
  - app/form_builders/beyond_canvas/form_builder.rb
215
275
  - app/helpers/beyond_canvas/application_helper.rb
276
+ - app/helpers/beyond_canvas/authentications_helper.rb
277
+ - app/helpers/beyond_canvas/cockpit_app_helper.rb
278
+ - app/helpers/beyond_canvas/debug_helper.rb
216
279
  - app/helpers/beyond_canvas/locale_switch_helper.rb
217
280
  - app/javascript/beyond_canvas/base.js
218
281
  - app/javascript/beyond_canvas/initializers/buttons.js
219
282
  - app/javascript/beyond_canvas/initializers/flash.js
220
- - app/javascript/beyond_canvas/initializers/functions.js
221
283
  - app/javascript/beyond_canvas/initializers/inputs.js
284
+ - app/javascript/beyond_canvas/initializers/modals.js
285
+ - app/views/beyond_canvas/authentications/new.html.erb
222
286
  - app/views/beyond_canvas/custom/_public_head.html.erb
223
- - app/views/beyond_canvas/locales/_edit.html.erb
224
287
  - app/views/beyond_canvas/mailer/_button.html.erb
225
288
  - app/views/beyond_canvas/mailer/_footer.html.erb
226
289
  - app/views/beyond_canvas/mailer/_header.html.erb
227
290
  - app/views/beyond_canvas/mailer/_text.html.erb
291
+ - app/views/beyond_canvas/shared/_action_bar.html.erb
292
+ - app/views/beyond_canvas/shared/_breadcrumbs.html.erb
228
293
  - app/views/beyond_canvas/shared/_flash.html.erb
229
294
  - app/views/beyond_canvas/shared/_head.html.erb
295
+ - app/views/beyond_canvas/shared/_locales.html.erb
230
296
  - app/views/beyond_canvas/shared/_logo.html.erb
297
+ - app/views/beyond_canvas/shared/_menu.html.erb
298
+ - app/views/beyond_canvas/shared/_modal.html.erb
299
+ - app/views/beyond_canvas/shared/_sidebar.html.erb
300
+ - app/views/layouts/beyond_canvas/application.html.erb
231
301
  - app/views/layouts/beyond_canvas/mailer.html.erb
232
302
  - app/views/layouts/beyond_canvas/public.html.erb
233
303
  - config/initializers/beyond_canvas/filter_parameter_logging.rb
234
304
  - config/initializers/beyond_canvas/form_utils.rb
305
+ - config/locales/en.yml
235
306
  - config/routes.rb
236
307
  - lib/beyond_canvas.rb
237
308
  - lib/beyond_canvas/asset_registration.rb
238
309
  - lib/beyond_canvas/configuration.rb
239
310
  - lib/beyond_canvas/engine.rb
311
+ - lib/beyond_canvas/menu_item_registration.rb
312
+ - lib/beyond_canvas/parameter_sanitizer.rb
313
+ - lib/beyond_canvas/rails/routes.rb
240
314
  - lib/beyond_canvas/version.rb
241
315
  - lib/generators/beyond_canvas/assets/assets_generator.rb
242
316
  - lib/generators/beyond_canvas/assets/templates/beyond_canvas.js
243
317
  - lib/generators/beyond_canvas/assets/templates/beyond_canvas.scss
244
318
  - lib/generators/beyond_canvas/beyond_api/beyond_api_generator.rb
319
+ - lib/generators/beyond_canvas/controller/controller_generator.rb
320
+ - lib/generators/beyond_canvas/controller/templates/controller.erb
321
+ - lib/generators/beyond_canvas/custom_menu/custom_menu_generator.rb
322
+ - lib/generators/beyond_canvas/custom_menu/templates/beyond_canvas_custom_menu.html.erb
245
323
  - lib/generators/beyond_canvas/custom_styles/custom_styles_generator.rb
246
- - lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.sass
324
+ - lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss
247
325
  - lib/generators/beyond_canvas/install/install_generator.rb
248
326
  - lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb
327
+ - lib/generators/beyond_canvas/model/model_generator.rb
328
+ - lib/generators/beyond_canvas/model/templates/migration.erb
329
+ - lib/generators/beyond_canvas/model/templates/model.erb
330
+ - lib/generators/beyond_canvas/views/views_generator.rb
249
331
  - lib/generators/beyond_canvas/webpacker/plugins/jquery.js
250
332
  - lib/generators/beyond_canvas/webpacker/templates/beyond_canvas.js
251
333
  - lib/generators/beyond_canvas/webpacker/templates/beyond_canvas.scss
252
334
  - lib/generators/beyond_canvas/webpacker/webpacker_generator.rb
335
+ - lib/models/concerns/authentication.rb
336
+ - lib/models/concerns/utils.rb
337
+ - lib/models/shop.rb
253
338
  homepage: https://github.com/ePages-de/beyond_canvas
254
339
  licenses:
255
340
  - MIT
256
341
  metadata: {}
257
- post_install_message:
342
+ post_install_message:
258
343
  rdoc_options: []
259
344
  require_paths:
260
345
  - lib
@@ -269,8 +354,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
269
354
  - !ruby/object:Gem::Version
270
355
  version: 1.3.1
271
356
  requirements: []
272
- rubygems_version: 3.0.1
273
- signing_key:
357
+ rubygems_version: 3.1.4
358
+ signing_key:
274
359
  specification_version: 4
275
360
  summary: Open-source framework that provides CSS styles
276
361
  test_files: []