Class: AssetSearchForm
- Inherits:
-
Object
show all
- Includes:
- ActiveModel::Model
- Defined in:
- app/models/asset_search_form.rb
Overview
Simple class to handle form input for searching
Constant Summary
collapse
- PER_PAGE =
30
- MAX_TABS =
10
Instance Attribute Summary collapse
Instance Method Summary
collapse
Instance Attribute Details
#include_used ⇒ Object
We include ‘show_my_plates_only’ to let us share pagination forms
11
12
13
|
# File 'app/models/asset_search_form.rb', line 11
def include_used
@include_used
end
|
#page ⇒ Object
32
33
34
|
# File 'app/models/asset_search_form.rb', line 32
def page
@page || 1
end
|
#purpose_names ⇒ Object
28
29
30
|
# File 'app/models/asset_search_form.rb', line 28
def purpose_names
@purpose_names || Settings.purposes.values_at(purpose_uuids).pluck(:name)
end
|
#purposes ⇒ Object
24
25
26
|
# File 'app/models/asset_search_form.rb', line 24
def purposes
@purposes || []
end
|
#show_my_plates_only ⇒ Object
We include ‘show_my_plates_only’ to let us share pagination forms
11
12
13
|
# File 'app/models/asset_search_form.rb', line 11
def show_my_plates_only
@show_my_plates_only
end
|
#states ⇒ Object
We include ‘show_my_plates_only’ to let us share pagination forms
11
12
13
|
# File 'app/models/asset_search_form.rb', line 11
def states
@states
end
|
#total_results ⇒ Object
We include ‘show_my_plates_only’ to let us share pagination forms
11
12
13
|
# File 'app/models/asset_search_form.rb', line 11
def total_results
@total_results
end
|
Instance Method Details
#each_page ⇒ Object
40
41
42
43
44
45
46
|
# File 'app/models/asset_search_form.rb', line 40
def each_page
1.upto(total_pages) do |page_number|
next if filter(page_number)
yield page_number, page == page_number
end
end
|
#filter(number) ⇒ Object
48
49
50
51
52
53
|
# File 'app/models/asset_search_form.rb', line 48
def filter(number)
return false if total_pages < MAX_TABS
return false if [1, total_pages].include?(number)
(page - number).magnitude > MAX_TABS / 2
end
|
#purpose_uuids ⇒ Object
20
21
22
|
# File 'app/models/asset_search_form.rb', line 20
def purpose_uuids
purposes.presence || default_purposes
end
|
#to_partial_path ⇒ Object
16
17
18
|
# File 'app/models/asset_search_form.rb', line 16
def to_partial_path
"search/#{form_partial}"
end
|
#total_pages ⇒ Object
36
37
38
|
# File 'app/models/asset_search_form.rb', line 36
def total_pages
@total_pages ||= (total_results || 0) / PER_PAGE
end
|