beyond_canvas 0.22.0.pre → 0.23.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/icons/adblocker.svg +5 -0
  3. data/app/assets/images/icons/checkbox_checked.svg +1 -1
  4. data/app/assets/images/icons/checkbox_unchecked.svg +1 -1
  5. data/app/assets/images/icons/external_link.svg +1 -0
  6. data/app/assets/images/icons/toggle.svg +1 -0
  7. data/app/assets/images/icons/toggle_checked.svg +3 -0
  8. data/app/assets/images/icons/toggle_unchecked.svg +3 -0
  9. data/app/assets/javascripts/beyond_canvas/base.js +77 -31
  10. data/app/assets/stylesheets/beyond_canvas/base.scss +19 -18
  11. data/app/assets/stylesheets/beyond_canvas/components/_action_bar.scss +11 -6
  12. data/app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss +5 -5
  13. data/app/assets/stylesheets/beyond_canvas/components/_buttons.scss +45 -95
  14. data/app/assets/stylesheets/beyond_canvas/components/_cards.scss +20 -12
  15. data/app/assets/stylesheets/beyond_canvas/components/_collapse.scss +6 -3
  16. data/app/assets/stylesheets/beyond_canvas/components/_flash.scss +11 -11
  17. data/app/assets/stylesheets/beyond_canvas/components/_forms.scss +2 -2
  18. data/app/assets/stylesheets/beyond_canvas/components/_inputs.scss +182 -40
  19. data/app/assets/stylesheets/beyond_canvas/components/_links.scss +51 -3
  20. data/app/assets/stylesheets/beyond_canvas/components/_main.scss +3 -3
  21. data/app/assets/stylesheets/beyond_canvas/components/_menu.scss +13 -0
  22. data/app/assets/stylesheets/beyond_canvas/components/_modals.scss +48 -18
  23. data/app/assets/stylesheets/beyond_canvas/components/_notices.scss +11 -11
  24. data/app/assets/stylesheets/beyond_canvas/components/_scrollbox.scss +5 -4
  25. data/app/assets/stylesheets/beyond_canvas/components/_select2.scss +13 -13
  26. data/app/assets/stylesheets/beyond_canvas/components/_statuses.scss +9 -8
  27. data/app/assets/stylesheets/beyond_canvas/components/_step_list.scss +67 -0
  28. data/app/assets/stylesheets/beyond_canvas/components/_tables.scss +10 -5
  29. data/app/assets/stylesheets/beyond_canvas/components/_titles.scss +1 -1
  30. data/app/assets/stylesheets/beyond_canvas/mailer.scss +2 -1
  31. data/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +241 -0
  32. data/app/assets/stylesheets/beyond_canvas/settings/{_variables.scss → _constant_variables.scss} +30 -64
  33. data/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss +233 -0
  34. data/app/assets/stylesheets/beyond_canvas/settings/_typography.scss +7 -3
  35. data/app/assets/stylesheets/beyond_canvas/utilities/_mixins.scss +30 -3
  36. data/app/controllers/beyond_canvas/authentications_controller.rb +18 -2
  37. data/app/controllers/beyond_canvas/system_controller.rb +3 -1
  38. data/app/controllers/beyond_canvas/webhooks_controller.rb +49 -0
  39. data/app/controllers/concerns/beyond_canvas/add_blocker_check.rb +17 -0
  40. data/app/controllers/concerns/beyond_canvas/custom_styles.rb +54 -0
  41. data/app/controllers/concerns/beyond_canvas/locale_management.rb +31 -8
  42. data/app/controllers/concerns/beyond_canvas/request_validation.rb +6 -0
  43. data/app/form_builders/beyond_canvas/form_builder.rb +62 -49
  44. data/app/helpers/beyond_canvas/application_helper.rb +27 -4
  45. data/app/helpers/beyond_canvas/form_tag_helper.rb +130 -0
  46. data/app/javascript/beyond_canvas/base.js +0 -1
  47. data/app/javascript/beyond_canvas/initializers/buttons.js +10 -2
  48. data/app/javascript/beyond_canvas/initializers/flash.js +32 -10
  49. data/app/javascript/beyond_canvas/initializers/inputs.js +9 -4
  50. data/app/javascript/beyond_canvas/initializers/modals.js +46 -10
  51. data/app/views/beyond_canvas/mailer/_header.html.erb +2 -2
  52. data/app/views/beyond_canvas/shared/_flash.html.erb +14 -10
  53. data/app/views/beyond_canvas/shared/_head.html.erb +4 -0
  54. data/app/views/beyond_canvas/shared/_locales.html.erb +1 -1
  55. data/app/views/layouts/beyond_canvas/application.html.erb +0 -1
  56. data/app/views/layouts/beyond_canvas/public.html.erb +1 -1
  57. data/config/initializers/beyond_canvas/constants.rb +13 -0
  58. data/config/initializers/beyond_canvas/session_store.rb +8 -0
  59. data/lib/beyond_canvas/configuration.rb +9 -1
  60. data/lib/beyond_canvas/engine.rb +7 -0
  61. data/lib/beyond_canvas/rails/routes.rb +27 -7
  62. data/lib/beyond_canvas/version.rb +1 -1
  63. data/lib/beyond_canvas/webhook_event_registration.rb +19 -0
  64. data/lib/beyond_canvas.rb +6 -4
  65. data/lib/generators/beyond_canvas/install/install_generator.rb +6 -0
  66. data/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb +38 -1
  67. data/lib/generators/beyond_canvas/model/model_generator.rb +3 -0
  68. data/lib/generators/beyond_canvas/webhook/templates/webhooks_controller.rb +22 -0
  69. data/lib/generators/beyond_canvas/webhook/webhook_generator.rb +15 -0
  70. data/lib/models/concerns/authentication.rb +10 -3
  71. data/lib/models/concerns/utils.rb +1 -1
  72. data/lib/models/concerns/webhook.rb +123 -0
  73. data/lib/models/shop.rb +1 -0
  74. metadata +68 -39
  75. data/app/assets/stylesheets/beyond_canvas/components/_comments.scss +0 -6
  76. data/app/views/beyond_canvas/shared/_modal.html.erb +0 -6
  77. data/config/routes.rb +0 -12
@@ -38,6 +38,12 @@ module BeyondCanvas
38
38
  def copy_locale
39
39
  copy_file '../../../../../config/locales/en.yml', 'config/locales/beyond_canvas.en.yml'
40
40
  end
41
+
42
+ def copy_public
43
+ Dir[File.join(BeyondCanvas::Engine.root, 'public', '*')].each do |file|
44
+ copy_file file, File.join(Rails.root, 'public', File.basename(file))
45
+ end
46
+ end
41
47
  end
42
48
  end
43
49
  end
@@ -33,6 +33,18 @@ BeyondCanvas.setup do |config|
33
33
  #
34
34
  # config.debug_mode = false
35
35
 
36
+ # Set an optional image to be send as email. Accepts any
37
+ # string supported by image_tag's source parameter. Overrides
38
+ # :email_logo.
39
+ #
40
+ # config.email_logo = 'logo.png' # Can't be svg
41
+
42
+ # ==> Authorization configuration
43
+
44
+ # Set if you want to retrieve the shop token using `grant_type=client_credentials`
45
+ # on development environment. Default is `grant_type=authorization_code`.
46
+ # config.client_credentials = false
47
+
36
48
  # ==> Site configuration
37
49
 
38
50
  # Set the title that is displayed on the main layout.
@@ -43,7 +55,7 @@ BeyondCanvas.setup do |config|
43
55
  # string supported by image_tag's source parameter or a SVG file. Overrides
44
56
  # :site_title.
45
57
  #
46
- # config.site_logo = 'logo.png'
58
+ # config.site_logo = 'logo.svg'
47
59
 
48
60
  # Set the favicon of the site.
49
61
  #
@@ -86,4 +98,29 @@ BeyondCanvas.setup do |config|
86
98
  # ==> Database encryption
87
99
 
88
100
  config.encryption_key = '<%= SecureRandom.hex(32) %>'
101
+
102
+ # Webhooks event listeners
103
+ # You can inculde the beyond
104
+ # By default Beyond canvas is listening for app.unistalled event.
105
+
106
+ # URL for get webhooks whe you are using develpment
107
+
108
+ # ==> Webhooks
109
+
110
+ # By default Beyond Canvas subscribes to `app.uninstalled` webhook event and
111
+ # handles the uninstallation of an app.
112
+ # If you want to subscribe to any of the existing webhooks (`product.created`,
113
+ # `product.updated`, `order.created`, `order.updated`) apart from
114
+ # `app.uninstalled` on app installation process, add them like follows:
115
+ #
116
+ # To subscribe to a single webhook event:
117
+ # config.register_webhook_event('product.created')
118
+ #
119
+ # To subscribe to multiple webhook events:
120
+ # config.register_webhook_events(['product.created', 'product.updated'])
121
+
122
+ # Set a URL where webhooks will call on non-production environments. You can
123
+ # make use of https://webhook.site/.
124
+ # On production environments, the URL will be automatically generated.
125
+ config.webhook_site_url = nil
89
126
  end
@@ -42,6 +42,9 @@ module BeyondCanvas
42
42
  t.text :encrypted_beyond_refresh_token, null: true
43
43
  t.text :encrypted_beyond_refresh_token_iv, null: true
44
44
 
45
+ t.text :encrypted_beyond_shared_secret, null: true
46
+ t.text :encrypted_beyond_shared_secret_iv, null: true
47
+
45
48
  RUBY
46
49
  end
47
50
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ class WebhooksController < BeyondCanvas::WebhooksController
4
+
5
+ private
6
+
7
+ # def handle_app_uninstalled(_data)
8
+ # end
9
+
10
+ # def handle_order_created(data)
11
+ # end
12
+
13
+ # def handle_order_updated(data)
14
+ # end
15
+
16
+ # def handle_product_created(data)
17
+ # end
18
+
19
+ # def handle_product_updated(data)
20
+ # end
21
+
22
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BeyondCanvas
4
+ module Generators
5
+ class WebhookGenerator < Rails::Generators::Base # :nodoc:
6
+ desc 'Creates an inherited Webhook controller in the app/controllers folder'
7
+
8
+ source_root File.expand_path('templates', __dir__)
9
+
10
+ def create_controller
11
+ template 'webhooks_controller.rb', "app/controllers/webhooks_controller.rb"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -40,15 +40,22 @@ module BeyondCanvas
40
40
  # NOTE: This method is used during the shop creation, as it is the only point
41
41
  # we know about the authentication code
42
42
  #
43
- def authenticate(params_code)
43
+ def authenticate(code)
44
44
  session = BeyondApi::Session.new(api_url: beyond_api_url)
45
- session.token.create(params_code)
45
+
46
+ if Rails.env.development? && BeyondCanvas.configuration.client_credentials
47
+ session.token.client_credentials
48
+ else
49
+ session.token.authorization_code(code)
50
+ end
51
+
46
52
  update(beyond_access_token: session.access_token,
47
53
  beyond_refresh_token: session.refresh_token)
48
54
  end
49
55
 
50
56
  def authenticated?
51
- beyond_access_token.present? && beyond_refresh_token.present?
57
+ beyond_access_token.present? &&
58
+ (Rails.env.development? && BeyondCanvas.configuration.client_credentials || beyond_refresh_token.present?)
52
59
  end
53
60
  end
54
61
  end
@@ -30,7 +30,7 @@ module BeyondCanvas
30
30
  def refresh_token_if_needed
31
31
  token_timestamp = decoded_jwt['exp']
32
32
  current_timestamp = DateTime.now.to_i
33
- return unless token_timestamp - current_timestamp <= 3600
33
+ return unless token_timestamp - current_timestamp <= 0
34
34
 
35
35
  refresh_token
36
36
  end
@@ -0,0 +1,123 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BeyondCanvas
4
+ module Models
5
+ module Concerns
6
+ module Webhook # :nodoc:
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ # Attribute accessor to generate webhook url
11
+ attr_accessor :http_host
12
+
13
+ ##############################################################################
14
+ # Encrypted attribute configuration
15
+ ##############################################################################
16
+
17
+ attr_encrypted :beyond_shared_secret, key: [BeyondCanvas.configuration.encryption_key].pack('H*')
18
+
19
+ ##############################################################################
20
+ # Validations
21
+ ##############################################################################
22
+
23
+ # Database fields
24
+
25
+ validates :beyond_shared_secret,
26
+ presence: {
27
+ unless: -> { encrypted_beyond_shared_secret_was.blank? }
28
+ }
29
+
30
+ ##############################################################################
31
+ # Instance methods
32
+ ##############################################################################
33
+
34
+ #
35
+ # Subscribes to Beyond webhooks:
36
+ # * Callback URI: {APP_URL}/shops/:id/beyond_webhook
37
+ #
38
+ def subscribe_to_beyond_webhooks
39
+ return if BeyondCanvas.configuration.webhook_events.to_a.empty?
40
+
41
+ # Unsubscribe from all existing Beyond webhooks
42
+ self.unsubscribe_from_all_beyond_webhooks
43
+ # Create and save a signer
44
+ self.create_signer
45
+ # Subscribe to webhooks
46
+ self.to_session.webhook_subscriptions.create(
47
+ callback_uri: beyond_webhook_url(self.id),
48
+ event_types: BeyondCanvas.configuration.webhook_events.to_a
49
+ )
50
+ end
51
+
52
+ #
53
+ # Unsubscribe from Beyond webhooks
54
+ #
55
+ def unsubscribe_from_all_beyond_webhooks
56
+ self.refresh_token_if_needed
57
+
58
+ session = self.to_session
59
+
60
+ session.webhook_subscriptions.all.dig(:embedded, :subscriptions)&.each do |webhook|
61
+ session.webhook_subscriptions.delete(webhook.dig(:id))
62
+ end
63
+ end
64
+
65
+ #
66
+ # Update suscription from Beyond webhooks
67
+ #
68
+ def update_suscription_of_beyond_webhooks(callback_uri = beyond_webhook_url(self.id))
69
+ self.refresh_token_if_needed
70
+
71
+ session = self.to_session
72
+
73
+ session.webhook_subscriptions.all.dig(:embedded, :subscriptions)&.each do |webhook|
74
+ session.webhook_subscriptions.update(webhook.dig(:id), callback_uri: callback_uri,
75
+ event_types: BeyondCanvas.configuration.webhook_events.to_a)
76
+ end
77
+ end
78
+
79
+
80
+ private
81
+
82
+ #
83
+ # Deletes all existing signers and creates and stores a new one
84
+ #
85
+ def create_signer
86
+ # Get all existing signer ids
87
+ signer_ids = self.to_session.signers.all.dig(:embedded, :signers)&.map(&:id)
88
+ # Remove the first signer if max number of signers reached to allow to create a new one
89
+ self.to_session.signers.delete(signer_ids.slice!(0)) if signer_ids.count == 5
90
+
91
+ # Create and save the new signer
92
+ signer = self.to_session.signers.create
93
+ self.update(beyond_shared_secret: signer.shared_secret)
94
+ # Delete old signers
95
+ signer_ids&.each { |signer_id| self.to_session.signers.delete(signer_id) }
96
+ end
97
+
98
+ #
99
+ # Generates the Beyond webhook url for a given shop_id. If Rails.env is development, it uses the WEBHOOK_SITE_URL
100
+ # environment variable. In any other case, it uses the request.env['HTTP_HOST'], that should be
101
+ # {APP_URL}/shops/:id/beyond_webhook
102
+ #
103
+ def beyond_webhook_url(shop_id)
104
+ if Rails.env.development?
105
+ obtain_webhook_site_url
106
+ else
107
+ Rails.application.routes.url_helpers.beyond_webhook_shop_url(shop_id, host: http_host || ENV['HTTP_HOST'],
108
+ protocol: 'https')
109
+ end
110
+ end
111
+
112
+ def obtain_webhook_site_url
113
+ if BeyondCanvas.configuration.webhook_site_url.blank?
114
+ raise 'Set BeyondCanvas.config.webhook_site_url environment variable for develpment'
115
+ end
116
+
117
+ BeyondCanvas.configuration.webhook_site_url
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
data/lib/models/shop.rb CHANGED
@@ -7,6 +7,7 @@ module BeyondCanvas
7
7
 
8
8
  include ::BeyondCanvas::Models::Concerns::Authentication
9
9
  include ::BeyondCanvas::Models::Concerns::Utils
10
+ include ::BeyondCanvas::Models::Concerns::Webhook
10
11
  end
11
12
  end
12
13
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beyond_canvas
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0.pre
4
+ version: 0.23.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Unai Abrisketa
8
8
  - Kathia Salazar
9
9
  - German San Emeterio
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-12-01 00:00:00.000000000 Z
13
+ date: 2021-09-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: attr_encrypted
@@ -30,30 +30,30 @@ dependencies:
30
30
  name: beyond_api
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - "~>"
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
- version: '0.11'
35
+ version: 0.18.0.pre
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - "~>"
40
+ - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: '0.11'
42
+ version: 0.18.0.pre
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: bourbon
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '5.1'
49
+ version: '7.0'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '5.1'
56
+ version: '7.0'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: colorize
59
59
  requirement: !ruby/object:Gem::Requirement
@@ -111,81 +111,95 @@ dependencies:
111
111
  - !ruby/object:Gem::Version
112
112
  version: '4.4'
113
113
  - !ruby/object:Gem::Dependency
114
- name: premailer-rails
114
+ name: jwt
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - "~>"
118
118
  - !ruby/object:Gem::Version
119
- version: '1.11'
119
+ version: '2.2'
120
120
  type: :runtime
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
124
  - - "~>"
125
125
  - !ruby/object:Gem::Version
126
- version: '1.11'
126
+ version: '2.2'
127
127
  - !ruby/object:Gem::Dependency
128
- name: sassc-rails
128
+ name: loaf
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - "~>"
132
132
  - !ruby/object:Gem::Version
133
- version: '2.1'
133
+ version: '0.9'
134
134
  type: :runtime
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - "~>"
139
139
  - !ruby/object:Gem::Version
140
- version: '2.1'
140
+ version: '0.9'
141
141
  - !ruby/object:Gem::Dependency
142
- name: sprockets
142
+ name: premailer-rails
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
- - - ">="
146
- - !ruby/object:Gem::Version
147
- version: '3.0'
148
- - - "<"
145
+ - - "~>"
149
146
  - !ruby/object:Gem::Version
150
- version: '4.1'
147
+ version: '1.11'
151
148
  type: :runtime
152
149
  prerelease: false
153
150
  version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '1.11'
155
+ - !ruby/object:Gem::Dependency
156
+ name: rails
157
+ requirement: !ruby/object:Gem::Requirement
154
158
  requirements:
155
159
  - - ">="
156
160
  - !ruby/object:Gem::Version
157
- version: '3.0'
158
- - - "<"
161
+ version: 5.1.7
162
+ type: :runtime
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
159
167
  - !ruby/object:Gem::Version
160
- version: '4.1'
168
+ version: 5.1.7
161
169
  - !ruby/object:Gem::Dependency
162
- name: loaf
170
+ name: sassc-rails
163
171
  requirement: !ruby/object:Gem::Requirement
164
172
  requirements:
165
173
  - - "~>"
166
174
  - !ruby/object:Gem::Version
167
- version: '0.9'
175
+ version: '2.1'
168
176
  type: :runtime
169
177
  prerelease: false
170
178
  version_requirements: !ruby/object:Gem::Requirement
171
179
  requirements:
172
180
  - - "~>"
173
181
  - !ruby/object:Gem::Version
174
- version: '0.9'
182
+ version: '2.1'
175
183
  - !ruby/object:Gem::Dependency
176
- name: jwt
184
+ name: sprockets
177
185
  requirement: !ruby/object:Gem::Requirement
178
186
  requirements:
179
- - - "~>"
187
+ - - ">="
180
188
  - !ruby/object:Gem::Version
181
- version: '2.2'
189
+ version: '3.0'
190
+ - - "<"
191
+ - !ruby/object:Gem::Version
192
+ version: '4.1'
182
193
  type: :runtime
183
194
  prerelease: false
184
195
  version_requirements: !ruby/object:Gem::Requirement
185
196
  requirements:
186
- - - "~>"
197
+ - - ">="
187
198
  - !ruby/object:Gem::Version
188
- version: '2.2'
199
+ version: '3.0'
200
+ - - "<"
201
+ - !ruby/object:Gem::Version
202
+ version: '4.1'
189
203
  - !ruby/object:Gem::Dependency
190
204
  name: rubocop-rails
191
205
  requirement: !ruby/object:Gem::Requirement
@@ -215,10 +229,12 @@ files:
215
229
  - README.md
216
230
  - Rakefile
217
231
  - app/assets/config/beyond_canvas_manifest.js
232
+ - app/assets/images/icons/adblocker.svg
218
233
  - app/assets/images/icons/arrow_right.svg
219
234
  - app/assets/images/icons/checkbox_checked.svg
220
235
  - app/assets/images/icons/checkbox_unchecked.svg
221
236
  - app/assets/images/icons/close.svg
237
+ - app/assets/images/icons/external_link.svg
222
238
  - app/assets/images/icons/file.svg
223
239
  - app/assets/images/icons/flash_checkbox.svg
224
240
  - app/assets/images/icons/flash_close.svg
@@ -228,6 +244,9 @@ files:
228
244
  - app/assets/images/icons/home.svg
229
245
  - app/assets/images/icons/radiobutton_checked.svg
230
246
  - app/assets/images/icons/radiobutton_unchecked.svg
247
+ - app/assets/images/icons/toggle.svg
248
+ - app/assets/images/icons/toggle_checked.svg
249
+ - app/assets/images/icons/toggle_unchecked.svg
231
250
  - app/assets/javascripts/beyond_canvas/base.js
232
251
  - app/assets/stylesheets/beyond_canvas/base.scss
233
252
  - app/assets/stylesheets/beyond_canvas/components/_action_bar.scss
@@ -236,7 +255,6 @@ files:
236
255
  - app/assets/stylesheets/beyond_canvas/components/_buttons.scss
237
256
  - app/assets/stylesheets/beyond_canvas/components/_cards.scss
238
257
  - app/assets/stylesheets/beyond_canvas/components/_collapse.scss
239
- - app/assets/stylesheets/beyond_canvas/components/_comments.scss
240
258
  - app/assets/stylesheets/beyond_canvas/components/_debug.scss
241
259
  - app/assets/stylesheets/beyond_canvas/components/_flash.scss
242
260
  - app/assets/stylesheets/beyond_canvas/components/_forms.scss
@@ -256,20 +274,26 @@ files:
256
274
  - app/assets/stylesheets/beyond_canvas/components/_sidebar.scss
257
275
  - app/assets/stylesheets/beyond_canvas/components/_spinner.scss
258
276
  - app/assets/stylesheets/beyond_canvas/components/_statuses.scss
277
+ - app/assets/stylesheets/beyond_canvas/components/_step_list.scss
259
278
  - app/assets/stylesheets/beyond_canvas/components/_tables.scss
260
279
  - app/assets/stylesheets/beyond_canvas/components/_texts.scss
261
280
  - app/assets/stylesheets/beyond_canvas/components/_titles.scss
262
281
  - app/assets/stylesheets/beyond_canvas/mailer.scss
282
+ - app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss
263
283
  - app/assets/stylesheets/beyond_canvas/settings/_breakpoints.scss
284
+ - app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss
285
+ - app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss
264
286
  - app/assets/stylesheets/beyond_canvas/settings/_reset_css.scss
265
287
  - app/assets/stylesheets/beyond_canvas/settings/_typography.scss
266
- - app/assets/stylesheets/beyond_canvas/settings/_variables.scss
267
288
  - app/assets/stylesheets/beyond_canvas/utilities/_functions.scss
268
289
  - app/assets/stylesheets/beyond_canvas/utilities/_mixins.scss
269
290
  - app/controllers/beyond_canvas/application_controller.rb
270
291
  - app/controllers/beyond_canvas/authentications_controller.rb
271
292
  - app/controllers/beyond_canvas/system_controller.rb
293
+ - app/controllers/beyond_canvas/webhooks_controller.rb
294
+ - app/controllers/concerns/beyond_canvas/add_blocker_check.rb
272
295
  - app/controllers/concerns/beyond_canvas/authentication.rb
296
+ - app/controllers/concerns/beyond_canvas/custom_styles.rb
273
297
  - app/controllers/concerns/beyond_canvas/locale_management.rb
274
298
  - app/controllers/concerns/beyond_canvas/request_validation.rb
275
299
  - app/controllers/concerns/beyond_canvas/status_codes.rb
@@ -279,6 +303,7 @@ files:
279
303
  - app/helpers/beyond_canvas/cockpit_app_helper.rb
280
304
  - app/helpers/beyond_canvas/controller_helper.rb
281
305
  - app/helpers/beyond_canvas/debug_helper.rb
306
+ - app/helpers/beyond_canvas/form_tag_helper.rb
282
307
  - app/helpers/beyond_canvas/locale_switch_helper.rb
283
308
  - app/helpers/beyond_canvas/statuses_helper.rb
284
309
  - app/javascript/beyond_canvas/base.js
@@ -300,15 +325,15 @@ files:
300
325
  - app/views/beyond_canvas/shared/_locales.html.erb
301
326
  - app/views/beyond_canvas/shared/_logo.html.erb
302
327
  - app/views/beyond_canvas/shared/_menu.html.erb
303
- - app/views/beyond_canvas/shared/_modal.html.erb
304
328
  - app/views/beyond_canvas/shared/_sidebar.html.erb
305
329
  - app/views/layouts/beyond_canvas/application.html.erb
306
330
  - app/views/layouts/beyond_canvas/mailer.html.erb
307
331
  - app/views/layouts/beyond_canvas/public.html.erb
332
+ - config/initializers/beyond_canvas/constants.rb
308
333
  - config/initializers/beyond_canvas/filter_parameter_logging.rb
309
334
  - config/initializers/beyond_canvas/form_utils.rb
335
+ - config/initializers/beyond_canvas/session_store.rb
310
336
  - config/locales/en.yml
311
- - config/routes.rb
312
337
  - lib/beyond_canvas.rb
313
338
  - lib/beyond_canvas/asset_registration.rb
314
339
  - lib/beyond_canvas/configuration.rb
@@ -317,6 +342,7 @@ files:
317
342
  - lib/beyond_canvas/parameter_sanitizer.rb
318
343
  - lib/beyond_canvas/rails/routes.rb
319
344
  - lib/beyond_canvas/version.rb
345
+ - lib/beyond_canvas/webhook_event_registration.rb
320
346
  - lib/generators/beyond_canvas/assets/assets_generator.rb
321
347
  - lib/generators/beyond_canvas/assets/templates/beyond_canvas.js
322
348
  - lib/generators/beyond_canvas/assets/templates/beyond_canvas.scss
@@ -333,18 +359,21 @@ files:
333
359
  - lib/generators/beyond_canvas/model/templates/migration.erb
334
360
  - lib/generators/beyond_canvas/model/templates/model.erb
335
361
  - lib/generators/beyond_canvas/views/views_generator.rb
362
+ - lib/generators/beyond_canvas/webhook/templates/webhooks_controller.rb
363
+ - lib/generators/beyond_canvas/webhook/webhook_generator.rb
336
364
  - lib/generators/beyond_canvas/webpacker/plugins/jquery.js
337
365
  - lib/generators/beyond_canvas/webpacker/templates/beyond_canvas.js
338
366
  - lib/generators/beyond_canvas/webpacker/templates/beyond_canvas.scss
339
367
  - lib/generators/beyond_canvas/webpacker/webpacker_generator.rb
340
368
  - lib/models/concerns/authentication.rb
341
369
  - lib/models/concerns/utils.rb
370
+ - lib/models/concerns/webhook.rb
342
371
  - lib/models/shop.rb
343
372
  homepage: https://github.com/ePages-de/beyond_canvas
344
373
  licenses:
345
374
  - MIT
346
375
  metadata: {}
347
- post_install_message:
376
+ post_install_message:
348
377
  rdoc_options: []
349
378
  require_paths:
350
379
  - lib
@@ -359,8 +388,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
359
388
  - !ruby/object:Gem::Version
360
389
  version: 1.3.1
361
390
  requirements: []
362
- rubygems_version: 3.1.4
363
- signing_key:
391
+ rubygems_version: 3.1.2
392
+ signing_key:
364
393
  specification_version: 4
365
394
  summary: Open-source framework that provides CSS styles
366
395
  test_files: []