effective_resources 2.19.8 → 2.19.10
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/controllers/concerns/effective/crud_controller/paths.rb +14 -2
- data/app/helpers/effective_resources_helper.rb +3 -1
- data/app/models/concerns/acts_as_email_form.rb +9 -7
- data/app/models/effective/resources/relation.rb +20 -28
- data/lib/effective_resources/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcc082069435ea9d5601f7d80eb676c1cbba2f63372659236151412c00f8feea
|
4
|
+
data.tar.gz: bed63eedbeb63602746e0e186d84d6f56c2635415ce9eff19a6e33e69aeb973a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60329f1197ae967e67df7cf12eb1e9be25d6074a8a8e8993fbfb29275e3deeeabb2fcca589f8d50c6278d7b9e54d2ebed8e29413c1f209f78501dddaa66d9f25
|
7
|
+
data.tar.gz: eadc102a68f6b214bce5664c04f0a4a5ad51c435b12f040d760a94e5667f6ed86522770c48b4456dd6638769e5385b3c934068c6ca21bd27886992d39e9c9c2c
|
@@ -72,10 +72,22 @@ module Effective
|
|
72
72
|
def referer_redirect_path
|
73
73
|
url = request.referer.to_s
|
74
74
|
|
75
|
-
|
75
|
+
# Referer may not always be present
|
76
|
+
return if url.blank?
|
77
|
+
|
78
|
+
# Don't redirect back to this resource's show or edit page
|
79
|
+
if resource.try(:destroyed?)
|
80
|
+
to_param = (resource.to_param || resource.try(:token) || resource.try(:slug) || resource.id) # to_param is nil sometimes
|
81
|
+
return if to_param.present? && url.include?("/#{to_param}")
|
82
|
+
end
|
83
|
+
|
84
|
+
# Don't redirect back if we're on duplicate action
|
76
85
|
return if url.include?('duplicate_id=')
|
77
|
-
return unless (Rails.application.routes.recognize_path(URI(url).path) rescue false)
|
78
86
|
|
87
|
+
# Don't redirect unless we recognize the url
|
88
|
+
return unless (Rails.application.routes.recognize_path(url) rescue false) || (Rails.application.routes.recognize_path(URI(url).path) rescue false)
|
89
|
+
|
90
|
+
# Redirect to this recognized url
|
79
91
|
url
|
80
92
|
end
|
81
93
|
|
@@ -78,7 +78,9 @@ module EffectiveResourcesHelper
|
|
78
78
|
|
79
79
|
# Assign actions
|
80
80
|
# We filter out any actions passed to us that aren't supported
|
81
|
-
actions = if atts.key?(:actions)
|
81
|
+
actions = if atts.key?(:actions) && atts[:actions] == false
|
82
|
+
{}
|
83
|
+
elsif atts.key?(:actions)
|
82
84
|
{}.tap do |actions|
|
83
85
|
atts[:actions].each do |commit, opts|
|
84
86
|
actions[commit] = opts if (effective_resource.actions.include?(opts[:action]) || opts[:path]).present?
|
@@ -24,13 +24,15 @@ module ActsAsEmailForm
|
|
24
24
|
attr_accessor :email_form_subject
|
25
25
|
attr_accessor :email_form_body
|
26
26
|
|
27
|
-
effective_resource
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
27
|
+
if respond_to?(:effective_resource)
|
28
|
+
effective_resource do
|
29
|
+
email_form_action :string, permitted: true
|
30
|
+
email_form_skip :boolean, permitted: true
|
31
|
+
|
32
|
+
email_form_from :string, permitted: true
|
33
|
+
email_form_subject :string, permitted: true
|
34
|
+
email_form_body :text, permitted: true
|
35
|
+
end
|
34
36
|
end
|
35
37
|
|
36
38
|
with_options(if: -> { email_form_action.present? && !email_form_skip? }) do
|
@@ -394,6 +394,7 @@ module Effective
|
|
394
394
|
end
|
395
395
|
|
396
396
|
return relation.none() if columns.blank?
|
397
|
+
|
397
398
|
search_columns_by_ilike_term(relation, value, columns: columns, fuzzy: fuzzy)
|
398
399
|
end
|
399
400
|
|
@@ -404,42 +405,33 @@ module Effective
|
|
404
405
|
|
405
406
|
value = value.to_s
|
406
407
|
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
terms = []
|
411
|
-
join = ''
|
412
|
-
|
413
|
-
if value.include?(' OR ')
|
414
|
-
terms = value.split(' OR ')
|
415
|
-
join = ' OR '
|
408
|
+
# Process search terms
|
409
|
+
terms = if value.include?(' OR ')
|
410
|
+
value.split(' OR ')
|
416
411
|
elsif value.include?(' AND ')
|
417
|
-
|
418
|
-
join = ' AND '
|
412
|
+
value.split(' AND ')
|
419
413
|
else
|
420
|
-
|
421
|
-
join = ' AND '
|
414
|
+
value.split(' ')
|
422
415
|
end
|
423
416
|
|
424
417
|
terms = (terms - [nil, '', ' ']).map(&:strip)
|
425
|
-
columns = Array(columns)
|
426
|
-
fuzzy = true if fuzzy.nil?
|
427
418
|
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
# Do any of these columns contain all the terms?
|
433
|
-
conditions = columns.map do |name|
|
434
|
-
column = (name.to_s.include?('.') ? name : sql_column(name))
|
435
|
-
raise("expected an sql column for #{name}") if column.blank?
|
419
|
+
# Searching these columns with this behaviour
|
420
|
+
fuzzy = true if fuzzy.nil?
|
421
|
+
joiner = value.include?(' OR ') ? :or : :and
|
436
422
|
|
437
|
-
|
438
|
-
|
439
|
-
|
423
|
+
# Each term must match some column. Depending on the joiner, each term must match some column
|
424
|
+
terms.map do |term|
|
425
|
+
Array(columns).map do |name|
|
426
|
+
column = (name.to_s.include?('.') ? name : sql_column(name))
|
440
427
|
|
441
|
-
|
442
|
-
|
428
|
+
if fuzzy
|
429
|
+
collection.where("#{column} #{ilike} ?", "%#{term}%")
|
430
|
+
else
|
431
|
+
collection.where("#{column} = ?", term)
|
432
|
+
end
|
433
|
+
end.inject(:or)
|
434
|
+
end.inject(joiner)
|
443
435
|
end
|
444
436
|
|
445
437
|
def order_by_associated_conditions(association, sort: nil, direction: :asc, limit: nil)
|
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.19.
|
4
|
+
version: 2.19.10
|
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-
|
11
|
+
date: 2024-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -288,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
288
288
|
- !ruby/object:Gem::Version
|
289
289
|
version: '0'
|
290
290
|
requirements: []
|
291
|
-
rubygems_version: 3.
|
291
|
+
rubygems_version: 3.5.6
|
292
292
|
signing_key:
|
293
293
|
specification_version: 4
|
294
294
|
summary: Make any controller an effective resource controller.
|