better handling of some corner cases in the filter form

This commit is contained in:
Manuel Simon Hirsig
2016-08-09 21:11:13 +02:00
parent 4423779b22
commit 13547dfb04
3 changed files with 48 additions and 31 deletions
+13 -14
View File
@@ -510,28 +510,27 @@ function private.suggestions(components)
end
function public.query_string(components)
local prettified = m.query_builder()
local query_builder = m.query_builder()
local blizzard_filters = {}
for _, filter in components.blizzard do
prettified.append((filter[2] or filter[1]))
query_builder.append((filter[2] or filter[1]))
end
for _, component in components.post do
if component[1] == 'operator' then
prettified.append(component[2]..(component[2] ~= 'not' and tonumber(component[3]) or ''))
query_builder.append(component[2]..(component[2] ~= 'not' and tonumber(component[3]) or ''))
elseif component[1] == 'filter' then
prettified.append(component[2])
query_builder.append(component[2])
for _, parameter in {component[3]} do
if aux.filter.filters[component[2]].input_type == 'money' then
parameter = aux.money.to_string(aux.money.from_string(parameter), nil, true, nil, nil, true)
end
prettified.append(parameter)
query_builder.append(parameter)
end
end
end
return prettified.get()
return query_builder.get()
end
function private.prettified_query_string(components)
@@ -662,23 +661,23 @@ function private.validator(components)
end
end
function public.query_builder(str)
local filter = str or ''
function public.query_builder()
local filter
return {
appended = function(part)
return m.query_builder(filter == '' and part or filter..'/'..part)
return m.query_builder(not filter and part or filter..'/'..part)
end,
prepended = function(part)
return m.query_builder(filter == '' and part or part..'/'..filter)
return m.query_builder(not filter and part or part..'/'..filter)
end,
append = function(part)
filter = filter == '' and part or filter..'/'..part
filter = not filter and part or filter..'/'..part
end,
prepend = function(part)
filter = filter == '' and part or part..'/'..filter
filter = not filter and part or part..'/'..filter
end,
get = function()
return filter
return filter or ''
end
}
end