it-logica-application-backbone 1.3.22 → 1.3.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.
|
1
|
+
1.3.23
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "it-logica-application-backbone"
|
8
|
-
s.version = "1.3.
|
8
|
+
s.version = "1.3.23"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ladas"]
|
12
|
-
s.date = "2013-05
|
12
|
+
s.date = "2013-08-05"
|
13
13
|
s.description = "longer description of your gem"
|
14
14
|
s.email = "ladislav.smola@it-logica.cz"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -35,16 +35,42 @@ module ControllerMixins
|
|
35
35
|
data_for_csv = []
|
36
36
|
header_of_names = []
|
37
37
|
header_of_labels = []
|
38
|
+
|
39
|
+
excluded_columns = []
|
38
40
|
settings[:columns].each do |c|
|
39
|
-
|
40
|
-
|
41
|
+
excluded_columns << "#{c[:table]}_#{c[:name]}" if c[:csv_excluded] unless c.blank?
|
42
|
+
end
|
43
|
+
|
44
|
+
# add column names header
|
45
|
+
if settings[:csv].blank? || (!settings[:csv].blank? && !settings[:csv][:exclude_names])
|
46
|
+
settings[:columns].each do |c|
|
47
|
+
|
48
|
+
next if excluded_columns.include?("#{c[:table]}_#{c[:name]}")
|
49
|
+
|
50
|
+
header_of_names << c[:name].to_s.encode(encoding, "UTF-8")
|
51
|
+
end
|
52
|
+
data_for_csv << header_of_names
|
53
|
+
end
|
54
|
+
|
55
|
+
# add column labels header
|
56
|
+
if settings[:csv].blank? || (!settings[:csv].blank? && !settings[:csv][:exclude_labels])
|
57
|
+
settings[:columns].each do |c|
|
58
|
+
|
59
|
+
next if excluded_columns.include?("#{c[:table]}_#{c[:name]}")
|
60
|
+
|
61
|
+
header_of_labels << c[:label].to_s.encode(encoding, "UTF-8")
|
62
|
+
end
|
63
|
+
data_for_csv << header_of_labels
|
41
64
|
end
|
42
|
-
data_for_csv << header_of_names
|
43
|
-
data_for_csv << header_of_labels
|
44
65
|
|
66
|
+
# add data without excluded columns
|
45
67
|
settings[:data].each do |c|
|
46
68
|
row = []
|
47
69
|
c.each_pair do |name, value|
|
70
|
+
|
71
|
+
next if excluded_columns.include?(name.to_s)
|
72
|
+
next if name == 'row_id' && settings[:csv][:exclude_row_id] unless settings[:csv].blank?
|
73
|
+
|
48
74
|
if value.kind_of?(Hash)
|
49
75
|
val = value[:title].blank? ? "" : value[:title]
|
50
76
|
row << val.to_s.encode(encoding, "UTF-8")
|
@@ -56,6 +82,7 @@ module ControllerMixins
|
|
56
82
|
data_for_csv << row
|
57
83
|
end
|
58
84
|
data_for_csv
|
85
|
+
|
59
86
|
end
|
60
87
|
|
61
88
|
|
@@ -93,11 +93,13 @@ module ControllerMixins
|
|
93
93
|
case export_method
|
94
94
|
when "csv"
|
95
95
|
@settings = class_obj.prepare_settings(logged_user, data, @settings, default_params, nil, 50000)
|
96
|
-
generate_and_return_csv(get_data_for_csv_from_settings(@settings)
|
96
|
+
generate_and_return_csv(get_data_for_csv_from_settings(@settings),
|
97
|
+
(@settings.blank? || @settings[:csv].blank? || @settings[:csv][:name].blank?) ? 'export.csv' : @settings[:csv][:name])
|
97
98
|
when "csv_by_checkboxes"
|
98
99
|
settings[:filter_method] = "only_by_checkboxes"
|
99
100
|
@settings = class_obj.prepare_settings(logged_user, data, @settings, default_params)
|
100
|
-
generate_and_return_csv(get_data_for_csv_from_settings(@settings)
|
101
|
+
generate_and_return_csv(get_data_for_csv_from_settings(@settings),
|
102
|
+
(@settings.blank? || @settings[:csv].blank? || @settings[:csv][:name].blank?) ? 'export.csv' : @settings[:csv][:name])
|
101
103
|
else
|
102
104
|
|
103
105
|
settings = class_obj.prepare_settings(logged_user, data, settings, default_params)
|
data/lib/table_settings.rb
CHANGED
@@ -14,7 +14,7 @@ class TableSettings
|
|
14
14
|
# @param [Symbol] model
|
15
15
|
#
|
16
16
|
def initialize(model)
|
17
|
-
@settings = {:columns => [], :row => {}, :default => {}}
|
17
|
+
@settings = {:columns => [], :row => {}, :default => {}, :csv => {}}
|
18
18
|
@model = model
|
19
19
|
@default_table = table_name_from_model(model)
|
20
20
|
|
@@ -171,6 +171,31 @@ class TableSettings
|
|
171
171
|
@settings[:default][:per_page] = number
|
172
172
|
end
|
173
173
|
|
174
|
+
# CSV export - filename
|
175
|
+
def csv_name(name = 'export.csv')
|
176
|
+
@settings[:csv][:name] = name
|
177
|
+
|
178
|
+
self
|
179
|
+
end
|
180
|
+
|
181
|
+
# CSV export - exclude header row with column names
|
182
|
+
def csv_exclude_names(exclude = true)
|
183
|
+
@settings[:csv][:exclude_names] = exclude
|
184
|
+
self
|
185
|
+
end
|
186
|
+
|
187
|
+
# CSV export - exclude header row with column labels
|
188
|
+
def csv_exclude_labels(exclude = true)
|
189
|
+
@settings[:csv][:exclude_labels] = exclude
|
190
|
+
self
|
191
|
+
end
|
192
|
+
|
193
|
+
# CSV export - exclude row_id column
|
194
|
+
def csv_exclude_row_id(exclude = true)
|
195
|
+
@settings[:csv][:exclude_row_id] = exclude
|
196
|
+
self
|
197
|
+
end
|
198
|
+
|
174
199
|
def filter_path(path)
|
175
200
|
@settings[:filter_path] = path
|
176
201
|
|
@@ -115,6 +115,12 @@ class TableSettings
|
|
115
115
|
@column_hash[:inactive_filter] = bool
|
116
116
|
self
|
117
117
|
end
|
118
|
+
|
119
|
+
# Set if column is excluded from csv export
|
120
|
+
def csv_excluded(bool = false)
|
121
|
+
@column_hash[:csv_excluded] = bool
|
122
|
+
self
|
123
|
+
end
|
118
124
|
end
|
119
125
|
|
120
126
|
class CustomColumn < Column
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: it-logica-application-backbone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.23
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05
|
12
|
+
date: 2013-08-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: htmlentities
|
@@ -668,7 +668,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
668
668
|
version: '0'
|
669
669
|
segments:
|
670
670
|
- 0
|
671
|
-
hash:
|
671
|
+
hash: 985655048161230968
|
672
672
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
673
673
|
none: false
|
674
674
|
requirements:
|