sql_search_n_sort 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sql_search_n_sort/sql_searchable_sortable.rb +19 -6
- data/lib/sql_search_n_sort/sql_sort_setup.rb +13 -7
- data/lib/sql_search_n_sort/version.rb +1 -1
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +121337 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03e83d0cfb7a3e84a681a5905cbd1fbf7a40a996
|
4
|
+
data.tar.gz: 14d29c20d503653a279e6c47dea3f82117e0a2d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c8dd28d7ef5f0d70b1f677d564450e19e8a10d77796fdccfdcc5643e1044e0567512b54868c1197cc2d865dfdd09e66241d296bc1b688a6ca03a00f07ad9b68
|
7
|
+
data.tar.gz: 11927189b6f4f2164167e527d0c0bc1d56078dae828cf76ad123d1a9ddfc199f01f0a5bee385bf2b0066bfde0dc2349f78dba21b9425fef8c503b306707da863
|
@@ -51,12 +51,7 @@ module SqlSearchableSortable
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def sort_cols_for_dropdown
|
54
|
-
|
55
|
-
return sort_config.inject([]) do |m, col_conf|
|
56
|
-
m << ["#{col_conf.display_text || col_conf.column.to_s.humanize}", "#{col_conf.column.to_s}"] if col_conf.show_asc
|
57
|
-
m << ["#{col_conf.display_text || col_conf.column.to_s.humanize} [desc]", "#{col_conf.column.to_s} desc"] if col_conf.show_desc
|
58
|
-
m
|
59
|
-
end
|
54
|
+
sort_config.select_opts
|
60
55
|
end
|
61
56
|
|
62
57
|
class ModelSortConfig < Array
|
@@ -83,6 +78,12 @@ module SqlSearchableSortable
|
|
83
78
|
def contains_column(col)
|
84
79
|
self.any? { |sc| sc.column == col }
|
85
80
|
end
|
81
|
+
|
82
|
+
def select_opts
|
83
|
+
return self.inject([]) do |m, sort_col|
|
84
|
+
m + sort_col.select_opts
|
85
|
+
end
|
86
|
+
end
|
86
87
|
end
|
87
88
|
|
88
89
|
class SortColumn
|
@@ -93,6 +94,18 @@ module SqlSearchableSortable
|
|
93
94
|
@show_asc = show_asc
|
94
95
|
@show_desc = show_desc
|
95
96
|
end
|
97
|
+
def name
|
98
|
+
column.to_s
|
99
|
+
end
|
100
|
+
def human_name
|
101
|
+
name.humanize
|
102
|
+
end
|
103
|
+
def select_opts
|
104
|
+
arr = []
|
105
|
+
arr << ["#{display_text || human_name}", "#{name}"] if show_asc
|
106
|
+
arr << ["#{display_text || human_name} [desc]", "#{name} desc"] if show_desc
|
107
|
+
return arr
|
108
|
+
end
|
96
109
|
end
|
97
110
|
|
98
111
|
end
|
@@ -3,10 +3,10 @@ module SqlSortSetup
|
|
3
3
|
def setup_sql_sort
|
4
4
|
model = controller_name.classify.constantize
|
5
5
|
if model.is_a? SqlSearchableSortable
|
6
|
-
if
|
7
|
-
@sort_by = (
|
8
|
-
|
9
|
-
dir = (
|
6
|
+
if sort_by
|
7
|
+
@sort_by = (sort_by.split.length > 1) ?
|
8
|
+
sort_by.split.first.to_sym : sort_by.to_sym
|
9
|
+
dir = (sort_by.split.length > 1) ? sort_by.split[1].to_sym : nil
|
10
10
|
if [:asc, :desc].include?(dir)
|
11
11
|
@sort_dir = dir
|
12
12
|
else
|
@@ -17,12 +17,18 @@ module SqlSortSetup
|
|
17
17
|
end
|
18
18
|
else
|
19
19
|
sort_by_param = model.default_sort_col.to_s
|
20
|
-
sort_by_param += " #{model.default_sort_dir}"
|
21
|
-
#
|
20
|
+
sort_by_param += " #{model.default_sort_dir}" if model.default_sort_dir
|
21
|
+
#unless model.default_sort_dir.nil?
|
22
22
|
params[:sort_by] = sort_by_param
|
23
23
|
end
|
24
24
|
@sort_dropdown_opts = model.sort_cols_for_dropdown #for the view
|
25
25
|
@sort_dir ||= :asc
|
26
26
|
end
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
|
+
private
|
30
|
+
def sort_by
|
31
|
+
params[:sort_by]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
data/test/dummy/db/test.sqlite3
CHANGED
Binary file
|