beyond_canvas 0.16.1.pre → 0.19.1.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.
- checksums.yaml +4 -4
- data/app/assets/config/beyond_canvas_manifest.js +1 -0
- data/app/assets/images/icons/arrow_right.svg +1 -0
- data/app/assets/images/icons/close.svg +1 -0
- data/app/assets/images/icons/home.svg +1 -0
- data/app/assets/javascripts/beyond_canvas/base.js +120 -246
- data/app/assets/stylesheets/beyond_canvas/base.scss +10 -1
- data/app/assets/stylesheets/beyond_canvas/components/_action_bar.scss +28 -0
- data/app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss +29 -0
- data/app/assets/stylesheets/beyond_canvas/components/_buttons.scss +1 -1
- data/app/assets/stylesheets/beyond_canvas/components/_debug.scss +10 -0
- data/app/assets/stylesheets/beyond_canvas/components/_forms.scss +11 -14
- data/app/assets/stylesheets/beyond_canvas/components/_grids.scss +12 -0
- data/app/assets/stylesheets/beyond_canvas/components/_inputs.scss +5 -0
- data/app/assets/stylesheets/beyond_canvas/components/_main.scss +12 -13
- data/app/assets/stylesheets/beyond_canvas/components/_margins.scss +12 -0
- data/app/assets/stylesheets/beyond_canvas/components/_menu.scss +50 -0
- data/app/assets/stylesheets/beyond_canvas/components/_modals.scss +35 -0
- data/app/assets/stylesheets/beyond_canvas/components/_scrollbox.scss +35 -0
- data/app/assets/stylesheets/beyond_canvas/components/_sidebar.scss +53 -0
- data/app/assets/stylesheets/beyond_canvas/components/_titles.scss +7 -0
- data/app/assets/stylesheets/beyond_canvas/settings/_variables.scss +64 -9
- data/app/controllers/beyond_canvas/application_controller.rb +2 -0
- data/app/controllers/beyond_canvas/authentications_controller.rb +37 -30
- data/app/controllers/concerns/beyond_canvas/authentication.rb +1 -12
- data/app/controllers/concerns/beyond_canvas/locale_management.rb +5 -4
- data/app/form_builders/beyond_canvas/form_builder.rb +8 -6
- data/app/helpers/beyond_canvas/authentications_helper.rb +28 -0
- data/app/helpers/beyond_canvas/cockpit_app_helper.rb +17 -0
- data/app/helpers/beyond_canvas/debug_helper.rb +9 -0
- data/app/helpers/beyond_canvas/locale_switch_helper.rb +5 -1
- data/app/javascript/beyond_canvas/base.js +3 -0
- data/app/javascript/beyond_canvas/initializers/buttons.js +65 -19
- data/app/javascript/beyond_canvas/initializers/flash.js +9 -2
- data/app/javascript/beyond_canvas/initializers/inputs.js +4 -1
- data/app/javascript/beyond_canvas/initializers/modals.js +14 -0
- data/app/views/beyond_canvas/authentications/new.html.erb +19 -10
- data/app/views/beyond_canvas/shared/_action_bar.html.erb +15 -0
- data/app/views/beyond_canvas/shared/_breadcrumbs.html.erb +14 -0
- data/app/views/beyond_canvas/shared/_flash.html.erb +22 -12
- data/app/views/beyond_canvas/shared/_locales.html.erb +8 -0
- data/app/views/beyond_canvas/shared/_menu.html.erb +31 -0
- data/app/views/beyond_canvas/shared/_modal.html.erb +6 -0
- data/app/views/beyond_canvas/shared/_sidebar.html.erb +16 -0
- data/app/views/layouts/beyond_canvas/application.html.erb +31 -0
- data/app/views/layouts/beyond_canvas/public.html.erb +10 -1
- data/config/locales/en.yml +5 -0
- data/config/routes.rb +5 -4
- data/lib/beyond_canvas.rb +12 -12
- data/lib/beyond_canvas/configuration.rb +11 -6
- data/lib/beyond_canvas/engine.rb +4 -2
- data/lib/beyond_canvas/menu_item_registration.rb +19 -0
- data/lib/beyond_canvas/parameter_sanitizer.rb +1 -1
- data/lib/beyond_canvas/rails/routes.rb +8 -7
- data/lib/beyond_canvas/version.rb +1 -1
- data/lib/generators/beyond_canvas/controller/controller_generator.rb +1 -2
- data/lib/generators/beyond_canvas/controller/templates/controller.erb +2 -19
- data/lib/generators/beyond_canvas/custom_menu/custom_menu_generator.rb +13 -0
- data/lib/generators/beyond_canvas/custom_menu/templates/beyond_canvas_custom_menu.html.erb +32 -0
- data/lib/generators/beyond_canvas/custom_styles/custom_styles_generator.rb +1 -1
- data/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +55 -9
- data/lib/generators/beyond_canvas/install/install_generator.rb +3 -5
- data/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb +51 -13
- data/lib/generators/beyond_canvas/{auth_model/auth_model_generator.rb → model/model_generator.rb} +4 -5
- data/lib/generators/beyond_canvas/{auth_model → model}/templates/migration.erb +2 -4
- data/lib/generators/beyond_canvas/{auth_model → model}/templates/model.erb +0 -0
- data/lib/generators/beyond_canvas/views/views_generator.rb +4 -6
- data/lib/models/concerns/authentication.rb +57 -0
- data/lib/models/concerns/utils.rb +79 -0
- data/lib/models/shop.rb +12 -0
- metadata +68 -27
- data/app/controllers/concerns/beyond_canvas/resource_management.rb +0 -33
- data/app/javascript/beyond_canvas/initializers/functions.js +0 -41
- data/app/views/beyond_canvas/locales/_edit.html.erb +0 -8
- data/lib/beyond_canvas/models/authentication.rb +0 -66
- data/lib/beyond_canvas/models/shop.rb +0 -28
- data/lib/beyond_canvas/models/utils.rb +0 -55
data/lib/models/shop.rb
ADDED
@@ -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.
|
4
|
+
version: 0.19.1.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Unai Abrisketa
|
8
|
+
- Kathia Salazar
|
9
|
+
- German San Emeterio
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
|
-
date: 2020-
|
13
|
+
date: 2020-10-20 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
|
-
-
|
207
|
+
- uabrisketa@epages.com
|
208
|
+
- ksalazar@epages.com
|
209
|
+
- gsanemeterio@epages.com
|
192
210
|
executables: []
|
193
211
|
extensions: []
|
194
212
|
extra_rdoc_files: []
|
@@ -197,36 +215,48 @@ 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
|
243
|
+
- app/assets/stylesheets/beyond_canvas/components/_grids.scss
|
219
244
|
- app/assets/stylesheets/beyond_canvas/components/_inputs.scss
|
220
245
|
- app/assets/stylesheets/beyond_canvas/components/_layouts.scss
|
221
246
|
- app/assets/stylesheets/beyond_canvas/components/_links.scss
|
222
247
|
- app/assets/stylesheets/beyond_canvas/components/_main.scss
|
223
248
|
- app/assets/stylesheets/beyond_canvas/components/_margins.scss
|
224
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
|
225
252
|
- app/assets/stylesheets/beyond_canvas/components/_notices.scss
|
226
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
|
227
256
|
- app/assets/stylesheets/beyond_canvas/components/_spinner.scss
|
228
257
|
- app/assets/stylesheets/beyond_canvas/components/_tables.scss
|
229
258
|
- app/assets/stylesheets/beyond_canvas/components/_texts.scss
|
259
|
+
- app/assets/stylesheets/beyond_canvas/components/_titles.scss
|
230
260
|
- app/assets/stylesheets/beyond_canvas/mailer.scss
|
231
261
|
- app/assets/stylesheets/beyond_canvas/settings/_breakpoints.scss
|
232
262
|
- app/assets/stylesheets/beyond_canvas/settings/_reset_css.scss
|
@@ -240,26 +270,34 @@ files:
|
|
240
270
|
- app/controllers/concerns/beyond_canvas/authentication.rb
|
241
271
|
- app/controllers/concerns/beyond_canvas/locale_management.rb
|
242
272
|
- app/controllers/concerns/beyond_canvas/request_validation.rb
|
243
|
-
- app/controllers/concerns/beyond_canvas/resource_management.rb
|
244
273
|
- app/controllers/concerns/beyond_canvas/status_codes.rb
|
245
274
|
- app/form_builders/beyond_canvas/form_builder.rb
|
246
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
|
247
279
|
- app/helpers/beyond_canvas/locale_switch_helper.rb
|
248
280
|
- app/javascript/beyond_canvas/base.js
|
249
281
|
- app/javascript/beyond_canvas/initializers/buttons.js
|
250
282
|
- app/javascript/beyond_canvas/initializers/flash.js
|
251
|
-
- app/javascript/beyond_canvas/initializers/functions.js
|
252
283
|
- app/javascript/beyond_canvas/initializers/inputs.js
|
284
|
+
- app/javascript/beyond_canvas/initializers/modals.js
|
253
285
|
- app/views/beyond_canvas/authentications/new.html.erb
|
254
286
|
- app/views/beyond_canvas/custom/_public_head.html.erb
|
255
|
-
- app/views/beyond_canvas/locales/_edit.html.erb
|
256
287
|
- app/views/beyond_canvas/mailer/_button.html.erb
|
257
288
|
- app/views/beyond_canvas/mailer/_footer.html.erb
|
258
289
|
- app/views/beyond_canvas/mailer/_header.html.erb
|
259
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
|
260
293
|
- app/views/beyond_canvas/shared/_flash.html.erb
|
261
294
|
- app/views/beyond_canvas/shared/_head.html.erb
|
295
|
+
- app/views/beyond_canvas/shared/_locales.html.erb
|
262
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
|
263
301
|
- app/views/layouts/beyond_canvas/mailer.html.erb
|
264
302
|
- app/views/layouts/beyond_canvas/public.html.erb
|
265
303
|
- config/initializers/beyond_canvas/filter_parameter_logging.rb
|
@@ -270,30 +308,33 @@ files:
|
|
270
308
|
- lib/beyond_canvas/asset_registration.rb
|
271
309
|
- lib/beyond_canvas/configuration.rb
|
272
310
|
- lib/beyond_canvas/engine.rb
|
273
|
-
- lib/beyond_canvas/
|
274
|
-
- lib/beyond_canvas/models/shop.rb
|
275
|
-
- lib/beyond_canvas/models/utils.rb
|
311
|
+
- lib/beyond_canvas/menu_item_registration.rb
|
276
312
|
- lib/beyond_canvas/parameter_sanitizer.rb
|
277
313
|
- lib/beyond_canvas/rails/routes.rb
|
278
314
|
- lib/beyond_canvas/version.rb
|
279
315
|
- lib/generators/beyond_canvas/assets/assets_generator.rb
|
280
316
|
- lib/generators/beyond_canvas/assets/templates/beyond_canvas.js
|
281
317
|
- 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
318
|
- lib/generators/beyond_canvas/beyond_api/beyond_api_generator.rb
|
286
319
|
- lib/generators/beyond_canvas/controller/controller_generator.rb
|
287
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
|
288
323
|
- lib/generators/beyond_canvas/custom_styles/custom_styles_generator.rb
|
289
324
|
- lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss
|
290
325
|
- lib/generators/beyond_canvas/install/install_generator.rb
|
291
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
|
292
330
|
- lib/generators/beyond_canvas/views/views_generator.rb
|
293
331
|
- lib/generators/beyond_canvas/webpacker/plugins/jquery.js
|
294
332
|
- lib/generators/beyond_canvas/webpacker/templates/beyond_canvas.js
|
295
333
|
- lib/generators/beyond_canvas/webpacker/templates/beyond_canvas.scss
|
296
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
|
297
338
|
homepage: https://github.com/ePages-de/beyond_canvas
|
298
339
|
licenses:
|
299
340
|
- MIT
|
@@ -313,7 +354,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
313
354
|
- !ruby/object:Gem::Version
|
314
355
|
version: 1.3.1
|
315
356
|
requirements: []
|
316
|
-
rubygems_version: 3.1.
|
357
|
+
rubygems_version: 3.1.4
|
317
358
|
signing_key:
|
318
359
|
specification_version: 4
|
319
360
|
summary: Open-source framework that provides CSS styles
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module BeyondCanvas
|
4
|
-
module ResourceManagement # :nodoc:
|
5
|
-
extend ActiveSupport::Concern
|
6
|
-
|
7
|
-
included do
|
8
|
-
# Share some methods defined in the controller to make them available for the view
|
9
|
-
if respond_to?(:helper_method)
|
10
|
-
helpers = %w[resource resource_name resource_class]
|
11
|
-
helper_method(*helpers)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
protected
|
16
|
-
|
17
|
-
def resource_name
|
18
|
-
BeyondCanvas.auth_model
|
19
|
-
end
|
20
|
-
|
21
|
-
def resource
|
22
|
-
instance_variable_get(:"@#{resource_name}")
|
23
|
-
end
|
24
|
-
|
25
|
-
def resource=(new_resource)
|
26
|
-
instance_variable_set(:"@#{resource_name}", new_resource)
|
27
|
-
end
|
28
|
-
|
29
|
-
def resource_class
|
30
|
-
resource_name.classify.constantize
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
const SPINNER_ANIMATION_TIMEOUT = 125;
|
2
|
-
|
3
|
-
export function showSpinner(button) {
|
4
|
-
// Adjust the width of the button
|
5
|
-
button.width(button.width() + $('.spinner').outerWidth(true));
|
6
|
-
// Show the spinner
|
7
|
-
setTimeout(function () {
|
8
|
-
button.find('.spinner').css('display', 'flex');
|
9
|
-
}, SPINNER_ANIMATION_TIMEOUT);
|
10
|
-
}
|
11
|
-
|
12
|
-
export function hideSpinner() {
|
13
|
-
$('button[class^="button"]').each(function (_, button) {
|
14
|
-
setTimeout(function () {
|
15
|
-
// Hide the spinner
|
16
|
-
$(button).find('.spinner').hide();
|
17
|
-
// Adjust the width of the button
|
18
|
-
$(button).width($(button).data('oldWidth'));
|
19
|
-
}, SPINNER_ANIMATION_TIMEOUT);
|
20
|
-
});
|
21
|
-
}
|
22
|
-
|
23
|
-
export function disableActionElements() {
|
24
|
-
$('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function (_, button) {
|
25
|
-
$(button).addClass('actions--disabled');
|
26
|
-
});
|
27
|
-
}
|
28
|
-
export function enableActionElements() {
|
29
|
-
$('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function (_, button) {
|
30
|
-
$(button).removeClass('actions--disabled');
|
31
|
-
});
|
32
|
-
}
|
33
|
-
|
34
|
-
export function closeAlert() {
|
35
|
-
$('.flash')
|
36
|
-
.removeClass('flash--shown')
|
37
|
-
.delay(700)
|
38
|
-
.queue(function () {
|
39
|
-
$(this).remove();
|
40
|
-
});
|
41
|
-
}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
<% if defined?(I18n) && I18n.available_locales.count > 1 %>
|
2
|
-
<%= form_for :system, url: beyond_canvas.update_locale_path, method: :put do |f| %>
|
3
|
-
<%= f.select :locale, I18n.available_locales.collect { |l| [translate_locale(l), l] },
|
4
|
-
{ selected: cookies[:locale] },
|
5
|
-
class: 'select--locale',
|
6
|
-
onchange: 'this.form.submit()' %>
|
7
|
-
<% end %>
|
8
|
-
<% end %>
|
@@ -1,66 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module BeyondCanvas
|
4
|
-
module Models
|
5
|
-
module Authentication # :nodoc:
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
|
8
|
-
included do
|
9
|
-
attr_accessor :code, :signature, :access_token_url
|
10
|
-
|
11
|
-
##############################################################################
|
12
|
-
# Encrypted attribute configuration
|
13
|
-
##############################################################################
|
14
|
-
|
15
|
-
attr_encrypted :beyond_api_url, key: [BeyondCanvas.configuration.encryption_key].pack('H*')
|
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
|
-
blind_index :beyond_api_url, key: [BeyondCanvas.configuration.blind_index_key].pack('H*')
|
20
|
-
|
21
|
-
##############################################################################
|
22
|
-
# Validations
|
23
|
-
##############################################################################
|
24
|
-
|
25
|
-
# Callback url params
|
26
|
-
|
27
|
-
validates :code,
|
28
|
-
presence: true,
|
29
|
-
on: :create
|
30
|
-
validates :signature,
|
31
|
-
presence: true,
|
32
|
-
on: :create
|
33
|
-
validates :access_token_url,
|
34
|
-
presence: true,
|
35
|
-
on: :create
|
36
|
-
|
37
|
-
# Database fields
|
38
|
-
|
39
|
-
validates :beyond_api_url,
|
40
|
-
presence: true
|
41
|
-
validates :beyond_access_token,
|
42
|
-
presence: true,
|
43
|
-
unless: -> { encrypted_beyond_access_token_was.blank? }
|
44
|
-
validates :beyond_refresh_token,
|
45
|
-
presence: true,
|
46
|
-
unless: -> { encrypted_beyond_refresh_token_was.blank? }
|
47
|
-
|
48
|
-
##############################################################################
|
49
|
-
# Instance methods
|
50
|
-
##############################################################################
|
51
|
-
|
52
|
-
#
|
53
|
-
# Get and save access_token and refresh_token using the authentication code
|
54
|
-
# NOTE: This method is used during the shop creation, as it is the only point
|
55
|
-
# we know about the authentication code
|
56
|
-
#
|
57
|
-
def authenticate
|
58
|
-
session = BeyondApi::Session.new(api_url: beyond_api_url)
|
59
|
-
session.token.create(code)
|
60
|
-
update(beyond_access_token: session.access_token,
|
61
|
-
beyond_refresh_token: session.refresh_token)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module BeyondCanvas
|
4
|
-
module Models
|
5
|
-
module Shop # :nodoc:
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
include BeyondCanvas::Models::Authentication
|
8
|
-
include BeyondCanvas::Models::Utils
|
9
|
-
|
10
|
-
included do
|
11
|
-
attr_accessor :api_url, :return_url
|
12
|
-
|
13
|
-
##############################################################################
|
14
|
-
# Validations
|
15
|
-
##############################################################################
|
16
|
-
|
17
|
-
# Callback url params
|
18
|
-
|
19
|
-
validates :api_url,
|
20
|
-
presence: true,
|
21
|
-
on: :create
|
22
|
-
validates :return_url,
|
23
|
-
presence: true,
|
24
|
-
on: :create
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module BeyondCanvas
|
4
|
-
module Models
|
5
|
-
module Utils # :nodoc:
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
|
8
|
-
included do
|
9
|
-
##############################################################################
|
10
|
-
# Instance methods
|
11
|
-
##############################################################################
|
12
|
-
|
13
|
-
#
|
14
|
-
# Generates a new access_token and refresh_token
|
15
|
-
#
|
16
|
-
def refresh_token
|
17
|
-
beyond_session = BeyondApi::Session.new(api_url: beyond_api_url, refresh_token: beyond_refresh_token)
|
18
|
-
beyond_session.token.refresh
|
19
|
-
|
20
|
-
update(beyond_access_token: beyond_session.access_token,
|
21
|
-
beyond_refresh_token: beyond_session.refresh_token)
|
22
|
-
end
|
23
|
-
|
24
|
-
#
|
25
|
-
# Generates a new access_token and refresh_token if they have expired
|
26
|
-
#
|
27
|
-
def refresh_token_if_needed
|
28
|
-
token_timestamp = JWT.decode(beyond_access_token, nil, false).first['exp']
|
29
|
-
current_timestamp = DateTime.now.to_i
|
30
|
-
return unless token_timestamp - current_timestamp <= 3600
|
31
|
-
|
32
|
-
refresh_token
|
33
|
-
end
|
34
|
-
|
35
|
-
#
|
36
|
-
# Returns a BeyondApi::Session object with api_url, access_token and refresh_token attributes
|
37
|
-
#
|
38
|
-
def to_session
|
39
|
-
BeyondApi::Session.new(api_url: beyond_api_url,
|
40
|
-
access_token: beyond_access_token,
|
41
|
-
refresh_token: beyond_refresh_token)
|
42
|
-
end
|
43
|
-
|
44
|
-
##############################################################################
|
45
|
-
# Class methods
|
46
|
-
##############################################################################
|
47
|
-
|
48
|
-
def self.find_session(id)
|
49
|
-
shop = find(id)
|
50
|
-
shop.to_session
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|