effective_resources 2.20.0 → 2.20.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7425b10dfe261701d61c87772c9c031c6a38521e02c910833b30f2fb8238f3f8
4
- data.tar.gz: 265b68c8132d30d8b4fa3b7335dbfe889033c2565adeaa48ddd65a08f29ee92e
3
+ metadata.gz: d425bc9d1bc016b9979350a67a3dbeb8432d292bf627efcf5c01ac0512587b24
4
+ data.tar.gz: 678f168202e93a74102a713b39a57de79531c7c9cc36ac3f5e9b210657749592
5
5
  SHA512:
6
- metadata.gz: 0cc236d30dfa1523911297c17587a3a575238a25269836d24614b513408c8be88d7795d6985c63b167a2401805bc5d603d81c85a934bcc58063851c8fa7d7369
7
- data.tar.gz: 74a40cc66f62880522ade26fa0133cacf2c4f795e2dc0e742560ef2227c570a665482c0b87514728c2da9d2f16bf944654f28b7c1b5696de2434bb03bf4ce726
6
+ metadata.gz: ad93fbed04f488d6ba4061d9db1cc72e75831fbf083949576365d6046af692a3149f28aa4361285f37dbc4099a221a17777232a3263156a218394e4283b75137
7
+ data.tar.gz: c2ba9f5df09a3ad3bb6693d8501bbe11c1c53576d68b844e9fab620d92531847ccd172a81bf2881ec571acc44cabb944f7bffa81508c7e143c532accb25bf497
@@ -69,6 +69,29 @@ module Effective
69
69
  root_path
70
70
  end
71
71
 
72
+ def resource_redirect_error_path(resource, action)
73
+ submit = commit_action(action)
74
+ redirect = submit[:redirect_error].respond_to?(:call) ? instance_exec(&submit[:redirect_error]) : submit[:redirect_error]
75
+
76
+ # If we have a specific redirect for it
77
+ commit_action_redirect = case redirect
78
+ when :index ; resource_index_path
79
+ when :edit ; resource_edit_path
80
+ when :show ; resource_show_path
81
+ when :new ; resource_new_path
82
+ when :duplicate ; resource_duplicate_path
83
+ when :back ; referer_redirect_path
84
+ when :save ; [resource_edit_path, resource_show_path].compact.first
85
+ when Symbol ; resource_action_path(redirect)
86
+ when String ; redirect
87
+ else ; nil
88
+ end
89
+
90
+ return commit_action_redirect if commit_action_redirect.present?
91
+
92
+ resource_redirect_path(resource, action)
93
+ end
94
+
72
95
  def referer_redirect_path
73
96
  url = request.referer.to_s
74
97
 
@@ -96,6 +119,11 @@ module Effective
96
119
  (submit[:redirect].respond_to?(:call) ? instance_exec(&submit[:redirect]) : submit[:redirect]).present?
97
120
  end
98
121
 
122
+ def specific_redirect_error_path?(action = nil)
123
+ submit = commit_action(action)
124
+ (submit[:redirect_error].respond_to?(:call) ? instance_exec(&submit[:redirect_error]) : submit[:redirect_error]).present?
125
+ end
126
+
99
127
  def resource_index_path
100
128
  effective_resource.action_path(:index)
101
129
  end
@@ -60,35 +60,49 @@ module Effective
60
60
  flash.delete(:success)
61
61
  flash.now[:danger] ||= resource_flash(:danger, resource, action)
62
62
 
63
- respond_to do |format|
64
- case action_name.to_sym
65
- when :create
66
- format.html { render :new }
67
- when :update
68
- format.html { render :edit }
69
- when :destroy
63
+ if specific_redirect_error_path?(action)
64
+ respond_to do |format|
70
65
  format.html do
71
66
  redirect_flash
72
- redirect_to(resource_redirect_path(resource, action))
67
+ redirect_to(resource_redirect_error_path(resource, action))
73
68
  end
74
- else
75
- if template_present?(action)
76
- format.html { render(action, locals: { action: action }) }
77
- elsif request.referer.to_s.end_with?('/edit')
78
- format.html { render :edit }
79
- elsif request.referer.to_s.end_with?('/new')
69
+
70
+ format.js do
71
+ view = template_present?(action) ? action : :member_action
72
+ render(view, locals: { action: action }) # action.js.erb
73
+ end
74
+ end
75
+ else
76
+ respond_to do |format| # Default
77
+ case action_name.to_sym
78
+ when :create
80
79
  format.html { render :new }
81
- else
80
+ when :update
81
+ format.html { render :edit }
82
+ when :destroy
82
83
  format.html do
83
84
  redirect_flash
84
85
  redirect_to(resource_redirect_path(resource, action))
85
86
  end
87
+ else
88
+ if template_present?(action)
89
+ format.html { render(action, locals: { action: action }) }
90
+ elsif request.referer.to_s.end_with?('/edit')
91
+ format.html { render :edit }
92
+ elsif request.referer.to_s.end_with?('/new')
93
+ format.html { render :new }
94
+ else
95
+ format.html do
96
+ redirect_flash
97
+ redirect_to(resource_redirect_path(resource, action))
98
+ end
99
+ end
86
100
  end
87
- end
88
101
 
89
- format.js do
90
- view = template_present?(action) ? action : :member_action
91
- render(view, locals: { action: action }) # action.js.erb
102
+ format.js do
103
+ view = template_present?(action) ? action : :member_action
104
+ render(view, locals: { action: action }) # action.js.erb
105
+ end
92
106
  end
93
107
  end
94
108
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.20.0'.freeze
2
+ VERSION = '2.20.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.20.0
4
+ version: 2.20.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-16 00:00:00.000000000 Z
11
+ date: 2024-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails