effective_resources 2.19.8 → 2.19.10
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|