beyond_canvas 0.15.3.pre → 0.18.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 (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: []