infopark_fiona7 1.2.0.1.4 → 1.2.0.2.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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95e1d0c153cae176d4413ba9de85700117ff2119
|
4
|
+
data.tar.gz: 073a4693abd33326b6d2218d7d0f69eb95a6c81a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4684651e4eea73bcc38691a9ae8b0441063c190cd71b6a67637c2022eb9b2bcfb14fd306a9dda84f5d1b9dd3141f2f4594a8b373db98354b304780915cf1e8b
|
7
|
+
data.tar.gz: 47871bc4bdd0a6ee52369e9b07f83b89af87a0c16a483c63fd0d2ed89a11d56fa0cf8425081a58912800f7814edcfa5813b2e47508f90e3343cc02234b4f66e6
|
@@ -286,7 +286,7 @@ module Fiona7
|
|
286
286
|
def use_naive_search_engine?(query)
|
287
287
|
false ||
|
288
288
|
query.empty? ||
|
289
|
-
query.any? {|q| (q[:field].to_sym == :_path || q[:field].to_sym == :_name)&& (
|
289
|
+
query.any? {|q| (q[:field].to_sym == :_path || q[:field].to_sym == :_name)&& (query.length == 1)} ||
|
290
290
|
query.any? {|q| q[:field].to_sym == :_parent_path && (q[:operator].to_sym == :equal || query.length == 1)} ||
|
291
291
|
(query.length == 1 && query.first[:field].to_sym == :_modification) ||
|
292
292
|
(query.length == 1 && query.first[:field].to_sym == :_obj_class) ||
|
@@ -86,13 +86,14 @@ module Fiona7
|
|
86
86
|
conditions = query.map do |q|
|
87
87
|
field = resolve_field_name(q[:field])
|
88
88
|
|
89
|
-
# paths are sadly not in the search index by default.
|
90
|
-
next if field == :visiblePath
|
91
|
-
|
92
89
|
case q[:operator]
|
93
90
|
when :equal
|
94
91
|
if field == :__dummy__
|
95
92
|
'("edited" <#IN> state)'
|
93
|
+
elsif field ==:_path
|
94
|
+
paths = Array(q[:value])
|
95
|
+
ids = Fiona7::WriteObj.where(path: paths).select(:obj_id).limit(1000).map(&:obj_id).map(&:to_s).presence || ["1000"]
|
96
|
+
search_in(:objId, ids)
|
96
97
|
else
|
97
98
|
search_in(field, q[:value])
|
98
99
|
end
|
@@ -113,6 +114,12 @@ module Fiona7
|
|
113
114
|
values = as_values_array(q[:value])
|
114
115
|
values = values.map {|v| "#{v}*" }
|
115
116
|
full_text_query_string(values)
|
117
|
+
elsif field == :_path
|
118
|
+
query = []
|
119
|
+
paths = Array(q[:value]).map {|p| "#{p}%" }
|
120
|
+
paths.each { |_| query << " (path LIKE ?) " }
|
121
|
+
ids = Fiona7::WriteObj.where(query.join(' AND '), paths).select(:obj_id).limit(1000).map(&:obj_id).map(&:to_s).presence || ["1000"]
|
122
|
+
search_in(:objId, ids)
|
116
123
|
else
|
117
124
|
values = as_values_array(q[:value])
|
118
125
|
values = values.map {|v| "#{v}*" }
|
@@ -136,7 +143,7 @@ module Fiona7
|
|
136
143
|
|
137
144
|
def search_in(field, values)
|
138
145
|
values = [values] unless values.kind_of?(Array)
|
139
|
-
if [:objClass, :
|
146
|
+
if [:objClass, :objId, :permalink, :lastChanged, :name].include?(field)
|
140
147
|
fields = [field.to_s]
|
141
148
|
else
|
142
149
|
fields = Fiona7::AttributeNamesFromQueries.new(field.to_s, @query).attributes || Fiona7::AttributeNamesFromCms.new(field.to_s).attributes || [field.to_s]
|
@@ -172,11 +179,15 @@ module Fiona7
|
|
172
179
|
when :_obj_class
|
173
180
|
:objClass
|
174
181
|
when :_path
|
175
|
-
:
|
182
|
+
:_path
|
176
183
|
when :_modification
|
177
184
|
:__dummy__
|
178
185
|
when :id
|
179
|
-
:
|
186
|
+
:objId
|
187
|
+
when :_id
|
188
|
+
:objId
|
189
|
+
when :obj_id
|
190
|
+
:objId
|
180
191
|
when :_permalink
|
181
192
|
:permalink
|
182
193
|
when :_last_changed
|
data/lib/fiona7/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: infopark_fiona7
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.0.1
|
4
|
+
version: 1.2.0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomasz Przedmojski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|