96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
# File 'lib/engine2/action/list.rb', line 96
def invoke handler
params = handler.params
model = assets[:model]
query = list_context(get_query, handler)
if search = params[:search]
query = list_search(query, handler, search)
elsif @filters || static.filters
static.filters.to_h.merge(@filters.to_h).each do |name, filter|
query = filter.(handler, query, {})
handler.permit query
end
end
count = query.count if lookup(:config, :use_count)
if order = params[:order]
order = order.to_sym
handler.permit lookup(:fields, order, :sort)
query = list_order(query, handler, order, params[:asc] == "true")
elsif order = @default_order_field || static.default_order_field
query = list_order(query, handler, order, true)
end
per_page = lookup(:config, :per_page)
page = params[:page].to_i
handler.permit page >= 0 && page < 1000000
query = query.limit(per_page, page)
res = {entries: page_frame(handler, query.load_all)}
res[:count] = count if count
res
end
|