|
1 | 1 | module Matestack::Ui::Core::Action |
2 | 2 | class Action < Matestack::Ui::Core::Component::Dynamic |
| 3 | + optional :path, :success, :failure, :notify, :confirm, |
| 4 | + method: { as: :action_method }, params: { as: :action_params } |
3 | 5 |
|
4 | 6 | def vuejs_component_name |
5 | 7 | 'matestack-ui-core-action' |
6 | 8 | end |
7 | 9 |
|
8 | 10 | def setup |
9 | 11 | @component_config[:action_path] = action_path |
10 | | - @component_config[:method] = options[:method] |
11 | | - @component_config[:success] = options[:success] |
12 | | - unless options[:success].nil? |
13 | | - unless options[:success][:transition].nil? |
14 | | - @component_config[:success][:transition][:path] = transition_path options[:success] |
| 12 | + @component_config[:method] = action_method |
| 13 | + @component_config[:success] = success |
| 14 | + unless success.nil? |
| 15 | + unless success[:transition].nil? |
| 16 | + @component_config[:success][:transition][:path] = transition_path success |
15 | 17 | end |
16 | | - unless options[:success][:redirect].nil? |
17 | | - @component_config[:success][:redirect][:path] = redirect_path options[:success] |
| 18 | + unless success[:redirect].nil? |
| 19 | + @component_config[:success][:redirect][:path] = redirect_path success |
18 | 20 | end |
19 | 21 | end |
20 | | - @component_config[:failure] = options[:failure] |
21 | | - unless options[:failure].nil? |
22 | | - unless options[:failure][:transition].nil? |
23 | | - @component_config[:failure][:transition][:path] = transition_path options[:failure] |
| 22 | + @component_config[:failure] = failure |
| 23 | + unless failure.nil? |
| 24 | + unless failure[:transition].nil? |
| 25 | + @component_config[:failure][:transition][:path] = transition_path failure |
24 | 26 | end |
25 | | - unless options[:failure][:redirect].nil? |
26 | | - @component_config[:failure][:redirect][:path] = redirect_path options[:failure] |
| 27 | + unless failure[:redirect].nil? |
| 28 | + @component_config[:failure][:redirect][:path] = redirect_path failure |
27 | 29 | end |
28 | 30 | end |
29 | | - if options[:notify].nil? |
| 31 | + if notify.nil? |
30 | 32 | @component_config[:notify] = true |
31 | 33 | end |
32 | | - if @component_config[:confirm] = options[:confirm] |
33 | | - @component_config[:confirm_text] = options[:confirm].try(:[], :text) || "Are you sure?" |
| 34 | + if @component_config[:confirm] = confirm |
| 35 | + @component_config[:confirm_text] = confirm.try(:[], :text) || "Are you sure?" |
34 | 36 | end |
35 | 37 | end |
36 | 38 |
|
37 | 39 | def action_path |
38 | 40 | begin |
39 | | - if options[:path].is_a?(Symbol) |
40 | | - return ::Rails.application.routes.url_helpers.send(options[:path], options[:params]) |
| 41 | + if path.is_a?(Symbol) |
| 42 | + return ::Rails.application.routes.url_helpers.send(path, action_params) |
41 | 43 | else |
42 | | - return options[:path] |
| 44 | + return path |
43 | 45 | end |
44 | 46 | rescue |
45 | 47 | raise "Action path not found" |
|
0 commit comments