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