active_list 6.5.1 → 6.6.0
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.
- checksums.yaml +4 -4
- data/lib/active_list.rb +11 -11
- data/lib/active_list/definition.rb +0 -2
- data/lib/active_list/definition/abstract_column.rb +4 -9
- data/lib/active_list/definition/action_column.rb +49 -57
- data/lib/active_list/definition/association_column.rb +26 -28
- data/lib/active_list/definition/attribute_column.rb +6 -11
- data/lib/active_list/definition/check_box_column.rb +0 -5
- data/lib/active_list/definition/data_column.rb +17 -24
- data/lib/active_list/definition/empty_column.rb +0 -4
- data/lib/active_list/definition/field_column.rb +0 -4
- data/lib/active_list/definition/status_column.rb +0 -4
- data/lib/active_list/definition/table.rb +31 -37
- data/lib/active_list/definition/text_field_column.rb +0 -4
- data/lib/active_list/exporters.rb +0 -4
- data/lib/active_list/exporters/abstract_exporter.rb +15 -19
- data/lib/active_list/exporters/csv_exporter.rb +5 -11
- data/lib/active_list/exporters/excel_csv_exporter.rb +7 -13
- data/lib/active_list/exporters/open_document_spreadsheet_exporter.rb +29 -35
- data/lib/active_list/generator.rb +27 -32
- data/lib/active_list/generator/finder.rb +35 -50
- data/lib/active_list/helpers.rb +6 -8
- data/lib/active_list/rails/engine.rb +3 -3
- data/lib/active_list/rails/integration.rb +2 -10
- data/lib/active_list/renderers.rb +0 -4
- data/lib/active_list/renderers/abstract_renderer.rb +2 -7
- data/lib/active_list/renderers/simple_renderer.rb +58 -71
- data/lib/active_list/version.rb +1 -3
- data/test/active_list_test.rb +4 -6
- data/test/code_generation_test.rb +0 -2
- data/test/dummy/Gemfile +1 -2
- data/test/dummy/app/controllers/contacts_controller.rb +10 -10
- data/test/dummy/app/controllers/people_controller.rb +10 -11
- data/test/dummy/config.ru +1 -1
- data/test/dummy/config/application.rb +2 -2
- data/test/dummy/config/boot.rb +1 -1
- data/test/dummy/config/environments/test.rb +6 -3
- data/test/dummy/config/initializers/session_store.rb +1 -1
- data/test/dummy/config/initializers/wrap_parameters.rb +1 -1
- data/test/dummy/db/seeds.rb +5 -5
- data/test/dummy/script/rails +2 -2
- data/test/people_controller_test.rb +11 -15
- data/test/table_test.rb +0 -1
- data/test/test_helper.rb +6 -7
- metadata +3 -4
@@ -1,12 +1,12 @@
|
|
1
1
|
module ActiveList
|
2
2
|
module Rails
|
3
3
|
class Engine < ::Rails::Engine
|
4
|
-
engine_name
|
5
|
-
initializer
|
4
|
+
engine_name 'active_list'
|
5
|
+
initializer 'active_list.integrate_methods' do |_app|
|
6
6
|
::ActionController::Base.send(:include, ActiveList::Rails::Integration::ActionController)
|
7
7
|
::ActionView::Base.send(:include, ActiveList::Rails::Integration::ViewsHelper)
|
8
8
|
# Adds locales
|
9
|
-
for file in Dir.glob(Pathname.new(__FILE__).dirname.join(
|
9
|
+
for file in Dir.glob(Pathname.new(__FILE__).dirname.join('..', 'locales', '*.yml'))
|
10
10
|
::I18n.load_path << file unless ::I18n.load_path.include?(file)
|
11
11
|
end
|
12
12
|
end
|
@@ -1,15 +1,12 @@
|
|
1
1
|
module ActiveList
|
2
2
|
module Rails
|
3
3
|
module Integration
|
4
|
-
|
5
4
|
module ActionController
|
6
|
-
|
7
5
|
def self.included(base) #:nodoc:
|
8
6
|
base.extend(ClassMethods)
|
9
7
|
end
|
10
8
|
|
11
9
|
module ClassMethods
|
12
|
-
|
13
10
|
# Permits to define and generate methods to manage dynamic
|
14
11
|
# table ActiveList
|
15
12
|
def list(*args, &block)
|
@@ -20,27 +17,22 @@ module ActiveList
|
|
20
17
|
class_eval(generator.controller_method_code, __FILE__, __LINE__)
|
21
18
|
ActionView::Base.send(:class_eval, generator.view_method_code, __FILE__, __LINE__)
|
22
19
|
end
|
23
|
-
|
24
20
|
end
|
25
|
-
|
26
21
|
end
|
27
22
|
|
28
23
|
module ViewsHelper
|
29
|
-
|
30
24
|
# Calls the generated view helper
|
31
25
|
def list(*args, &block)
|
32
26
|
options = args.extract_options!
|
33
27
|
name = args.shift
|
34
|
-
kontroller =
|
28
|
+
kontroller = controller.class
|
35
29
|
begin
|
36
30
|
helper_method = "_#{kontroller.controller_name}_#{__method__}_#{name || kontroller.controller_name}_tag".to_sym
|
37
31
|
kontroller = kontroller.superclass
|
38
32
|
end until self.respond_to?(helper_method)
|
39
|
-
|
33
|
+
send(helper_method, options, &block)
|
40
34
|
end
|
41
|
-
|
42
35
|
end
|
43
|
-
|
44
36
|
end
|
45
37
|
end
|
46
38
|
end
|
@@ -1,9 +1,7 @@
|
|
1
1
|
# require 'active_support/core_ext/module/attribute_accessors'
|
2
2
|
|
3
3
|
module ActiveList
|
4
|
-
|
5
4
|
module Renderers
|
6
|
-
|
7
5
|
def self.[](name)
|
8
6
|
ActiveList.renderers[name]
|
9
7
|
end
|
@@ -11,6 +9,4 @@ module ActiveList
|
|
11
9
|
autoload :AbstractRenderer, 'active_list/renderers/abstract_renderer'
|
12
10
|
autoload :SimpleRenderer, 'active_list/renderers/simple_renderer'
|
13
11
|
end
|
14
|
-
|
15
12
|
end
|
16
|
-
|
@@ -1,7 +1,5 @@
|
|
1
1
|
module ActiveList
|
2
|
-
|
3
2
|
module Renderers
|
4
|
-
|
5
3
|
class AbstractRenderer
|
6
4
|
attr_reader :generator, :table
|
7
5
|
|
@@ -15,15 +13,12 @@ module ActiveList
|
|
15
13
|
end
|
16
14
|
|
17
15
|
def remote_update_code
|
18
|
-
|
16
|
+
fail NotImplementedError, "#{self.class.name}#remote_update_code is not implemented."
|
19
17
|
end
|
20
18
|
|
21
19
|
def build_data_code
|
22
|
-
|
20
|
+
fail NotImplementedError, "#{self.class.name}#build_table_code is not implemented."
|
23
21
|
end
|
24
|
-
|
25
22
|
end
|
26
|
-
|
27
23
|
end
|
28
|
-
|
29
24
|
end
|
@@ -1,11 +1,8 @@
|
|
1
1
|
module ActiveList
|
2
|
-
|
3
2
|
module Renderers
|
4
|
-
|
5
3
|
class SimpleRenderer < AbstractRenderer
|
6
4
|
include ActiveList::Helpers
|
7
5
|
|
8
|
-
|
9
6
|
DATATYPE_ABBREVIATION = {
|
10
7
|
binary: :bin,
|
11
8
|
boolean: :bln,
|
@@ -22,7 +19,7 @@ module ActiveList
|
|
22
19
|
}
|
23
20
|
|
24
21
|
def remote_update_code
|
25
|
-
code
|
22
|
+
code = "if params[:column] && params[:visibility]\n"
|
26
23
|
code << " column = params[:column].to_sym\n"
|
27
24
|
# Removes potentially unwanted columns
|
28
25
|
code << " #{var_name(:params)}[:hidden_columns].delete_if{|c| !#{table.data_columns.map(&:name).inspect}.include?(c)}\n"
|
@@ -34,18 +31,18 @@ module ActiveList
|
|
34
31
|
code << "else\n"
|
35
32
|
code << " render(inline: '<%=#{generator.view_method_name}-%>')\n"
|
36
33
|
code << "end\n"
|
37
|
-
|
34
|
+
code
|
38
35
|
end
|
39
36
|
|
40
37
|
def build_table_code
|
41
|
-
record =
|
42
|
-
child =
|
38
|
+
record = 'r'
|
39
|
+
child = 'c'
|
43
40
|
|
44
41
|
# colgroup = columns_definition_code
|
45
42
|
header = header_code
|
46
43
|
extras = extras_codes
|
47
44
|
|
48
|
-
code
|
45
|
+
code = generator.select_data_code
|
49
46
|
code << "#{var_name(:tbody)} = '<tbody data-total=\"' + #{var_name(:count)}.to_s + '\""
|
50
47
|
if table.paginate?
|
51
48
|
code << " data-per-page=\"' + #{var_name(:limit)}.to_s + '\""
|
@@ -74,12 +71,12 @@ module ActiveList
|
|
74
71
|
# end
|
75
72
|
code << " end\n"
|
76
73
|
code << "else\n"
|
77
|
-
code << " #{var_name(:tbody)} << '<tr class=\"empty\"><td colspan=\"#{table.columns.size+1}\">' + ::I18n.translate('list.no_records') + '</td></tr>'\n"
|
74
|
+
code << " #{var_name(:tbody)} << '<tr class=\"empty\"><td colspan=\"#{table.columns.size + 1}\">' + ::I18n.translate('list.no_records') + '</td></tr>'\n"
|
78
75
|
code << "end\n"
|
79
76
|
|
80
77
|
code << "#{var_name(:tbody)} << '</tbody>'\n"
|
81
78
|
code << "return #{var_name(:tbody)}.html_safe if options[:only] == 'table-body'\n"
|
82
|
-
|
79
|
+
|
83
80
|
# Build content
|
84
81
|
code << "#{var_name(:content)} = ''\n"
|
85
82
|
if extras.any?
|
@@ -103,23 +100,21 @@ module ActiveList
|
|
103
100
|
code << ">'\n"
|
104
101
|
code << "#{var_name(:content)} << (#{header})\n"
|
105
102
|
code << "if block_given?\n"
|
106
|
-
code << " #{var_name(:content)} << '<tfoot>' + capture(" + table.columns.collect{|c| {name: c.name, id: c.id}}.inspect + ", &block).to_s + '</tfoot>'\n"
|
103
|
+
code << " #{var_name(:content)} << '<tfoot>' + capture(" + table.columns.collect { |c| { name: c.name, id: c.id } }.inspect + ", &block).to_s + '</tfoot>'\n"
|
107
104
|
code << "end\n"
|
108
105
|
code << "#{var_name(:content)} << #{var_name(:tbody)}\n"
|
109
106
|
code << "#{var_name(:content)} << '</table></div>'\n"
|
110
107
|
# code << "return #{var_name(:content)}.html_safe if options[:only] == 'content'\n"
|
111
108
|
|
112
109
|
# Build whole
|
113
|
-
code << "return ('<div id=\"#{
|
114
|
-
|
110
|
+
code << "return ('<div id=\"#{uid}\" data-list-source=\"'+h(url_for(options.merge(:action => '#{generator.controller_method_name}')))+'\" data-list-redirect=\"' + params[:redirect].to_s + '\" class=\"active-list\">' + #{var_name(:content)} + '</div>').html_safe\n"
|
111
|
+
code
|
115
112
|
end
|
116
113
|
|
117
|
-
|
118
|
-
|
119
|
-
def columns_to_cells(nature, options={})
|
114
|
+
def columns_to_cells(nature, options = {})
|
120
115
|
code = ''
|
121
116
|
unless [:body, :children].include?(nature)
|
122
|
-
|
117
|
+
fail ArgumentError, 'Nature is invalid'
|
123
118
|
end
|
124
119
|
record = options[:record] || 'record_of_the_death'
|
125
120
|
if table.selectable?
|
@@ -130,7 +125,7 @@ module ActiveList
|
|
130
125
|
|
131
126
|
children_mode = !!(nature == :children)
|
132
127
|
for column in table.columns
|
133
|
-
value_code =
|
128
|
+
value_code = ''
|
134
129
|
if column.is_a? ActiveList::Definition::EmptyColumn
|
135
130
|
value_code = 'nil'
|
136
131
|
elsif column.is_a? ActiveList::Definition::StatusColumn
|
@@ -139,23 +134,23 @@ module ActiveList
|
|
139
134
|
levels = %w(go caution stop)
|
140
135
|
lights = levels.collect do |light|
|
141
136
|
"content_tag(:span, '', :class => #{light.inspect})"
|
142
|
-
end.join(
|
137
|
+
end.join(' + ')
|
143
138
|
# Expected value are :valid, :warning, :error
|
144
139
|
value_code = "content_tag(:span, #{lights}, :class => 'lights lights-' + (#{levels.inspect}.include?(#{value_code}.to_s) ? #{value_code}.to_s : 'undefined'))"
|
145
140
|
|
146
141
|
elsif column.is_a? ActiveList::Definition::DataColumn
|
147
|
-
if column.options[:children].is_a?
|
142
|
+
if column.options[:children].is_a?(FalseClass) && children_mode
|
148
143
|
value_code = 'nil'
|
149
144
|
else
|
150
145
|
value_code = column.datum_code(record, children_mode)
|
151
146
|
if column.datatype == :boolean
|
152
|
-
value_code = "content_tag(:div, '', :class => 'checkbox-'+("+value_code.to_s+" ? 'true' : 'false'))"
|
147
|
+
value_code = "content_tag(:div, '', :class => 'checkbox-'+(" + value_code.to_s + " ? 'true' : 'false'))"
|
153
148
|
elsif [:date, :datetime, :timestamp, :measure].include? column.datatype
|
154
149
|
value_code = "(#{value_code}.nil? ? '' : #{value_code}.l)"
|
155
150
|
elsif [:item].include? column.datatype
|
156
151
|
value_code = "(#{value_code}.nil? ? '' : #{value_code}.human_name)"
|
157
152
|
end
|
158
|
-
if !column.options[:currency].is_a?(FalseClass)
|
153
|
+
if !column.options[:currency].is_a?(FalseClass) && currency = column.options[:currency]
|
159
154
|
currency = currency[nature] if currency.is_a?(Hash)
|
160
155
|
currency = :currency if currency.is_a?(TrueClass)
|
161
156
|
# currency = "#{record}.#{currency}".c if currency.is_a?(Symbol)
|
@@ -166,25 +161,25 @@ module ActiveList
|
|
166
161
|
elsif column.enumerize?
|
167
162
|
value_code = "(#{value_code}.nil? ? '' : #{value_code}.text)"
|
168
163
|
end
|
169
|
-
if column.options[:url]
|
164
|
+
if column.options[:url] && nature == :body
|
170
165
|
column.options[:url] = {} unless column.options[:url].is_a?(Hash)
|
171
|
-
column.options[:url][:id] ||= (column.record_expr(record)+'.id').c
|
166
|
+
column.options[:url][:id] ||= (column.record_expr(record) + '.id').c
|
172
167
|
column.options[:url][:action] ||= :show
|
173
168
|
column.options[:url][:controller] ||= column.class_name.tableize.to_sym # (self.generator.collection? ? "RECORD.class.name.tableize".c : column.class_name.tableize.to_sym)
|
174
169
|
# column.options[:url][:controller] ||= "#{value_code}.class.name.tableize".c
|
175
|
-
url = column.options[:url].collect{|k, v| "#{k}: " + urlify(v, record)}.join(
|
170
|
+
url = column.options[:url].collect { |k, v| "#{k}: " + urlify(v, record) }.join(', ')
|
176
171
|
value_code = "(#{value_code}.blank? ? '' : link_to(#{value_code}.to_s, #{url}))"
|
177
|
-
elsif column.options[:mode]||column.label_method == :email
|
172
|
+
elsif column.options[:mode] || column.label_method == :email
|
178
173
|
value_code = "(#{value_code}.blank? ? '' : mail_to(#{value_code}))"
|
179
|
-
elsif column.options[:mode]||column.label_method == :website
|
180
|
-
value_code = "(#{value_code}.blank? ? '' : link_to("+value_code+
|
174
|
+
elsif column.options[:mode] || column.label_method == :website
|
175
|
+
value_code = "(#{value_code}.blank? ? '' : link_to(" + value_code + ', ' + value_code + '))'
|
181
176
|
elsif column.label_method == :color
|
182
|
-
value_code = "content_tag(:div, #{column.datum_code(record)}, style: 'background: #'+"+column.datum_code(record)+
|
183
|
-
elsif column.label_method.to_s.match(/(^|\_)currency$/)
|
177
|
+
value_code = "content_tag(:div, #{column.datum_code(record)}, style: 'background: #'+" + column.datum_code(record) + ')'
|
178
|
+
elsif column.label_method.to_s.match(/(^|\_)currency$/) && column.datatype == :string
|
184
179
|
value_code = "(Nomen::Currencies[#{value_code}] ? Nomen::Currencies[#{value_code}].human_name : #{value_code})"
|
185
|
-
elsif column.label_method.to_s.match(/(^|\_)language$/)
|
180
|
+
elsif column.label_method.to_s.match(/(^|\_)language$/) && column.datatype == :string
|
186
181
|
value_code = "(Nomen::Languages[#{value_code}] ? Nomen::Languages[#{value_code}].human_name : #{value_code})"
|
187
|
-
elsif column.label_method.to_s.match(/(^|\_)country$/)
|
182
|
+
elsif column.label_method.to_s.match(/(^|\_)country$/) && column.datatype == :string
|
188
183
|
value_code = "(Nomen::Countries[#{value_code}] ? (image_tag('countries/' + #{value_code}.to_s + '.png') + ' ' + Nomen::Countries[#{value_code}].human_name).html_safe : #{value_code})"
|
189
184
|
else # if column.datatype == :string
|
190
185
|
value_code = "h(#{value_code}.to_s)"
|
@@ -195,7 +190,7 @@ module ActiveList
|
|
195
190
|
elsif column.is_a?(ActiveList::Definition::CheckBoxColumn)
|
196
191
|
if nature == :body
|
197
192
|
form_name = column.form_name || "'#{table.name}[' + #{record}.id.to_s + '][#{column.name}]'".c
|
198
|
-
value =
|
193
|
+
value = 'nil'
|
199
194
|
if column.form_value
|
200
195
|
value = recordify(column.form_value, record)
|
201
196
|
else
|
@@ -204,14 +199,14 @@ module ActiveList
|
|
204
199
|
end
|
205
200
|
value_code << "check_box_tag(#{form_name.inspect}, #{value}, #{recordify!(column.options[:value] || column.name, record)})" # , id: '#{table.name}_'+#{record}.id.to_s+'_#{column.name}'
|
206
201
|
else
|
207
|
-
value_code <<
|
202
|
+
value_code << 'nil'
|
208
203
|
end
|
209
204
|
elsif column.is_a?(ActiveList::Definition::TextFieldColumn)
|
210
205
|
form_name = column.form_name || "'#{table.name}[' + #{record}.id.to_s + '][#{column.name}]'".c
|
211
|
-
value_code = (nature == :body ? "text_field_tag(#{form_name.inspect}, #{recordify!(column.options[:value] || column.name, record)}#{column.options[:size] ? ', size: ' + column.options[:size].to_s : ''})" :
|
206
|
+
value_code = (nature == :body ? "text_field_tag(#{form_name.inspect}, #{recordify!(column.options[:value] || column.name, record)}#{column.options[:size] ? ', size: ' + column.options[:size].to_s : ''})" : 'nil') # , id: '#{table.name}_'+#{record}.id.to_s + '_#{column.name}'
|
212
207
|
elsif column.is_a?(ActiveList::Definition::ActionColumn)
|
213
208
|
next unless column.use_single?
|
214
|
-
value_code = (nature == :body ? column.operation(record) :
|
209
|
+
value_code = (nature == :body ? column.operation(record) : 'nil')
|
215
210
|
else
|
216
211
|
value_code = "' ∅ '.html_safe"
|
217
212
|
end
|
@@ -227,15 +222,14 @@ module ActiveList
|
|
227
222
|
|
228
223
|
code << "''.html_safe"
|
229
224
|
# code << "content_tag(:td)"
|
230
|
-
|
225
|
+
code.c
|
231
226
|
end
|
232
227
|
|
233
|
-
|
234
228
|
# Produces main menu code
|
235
229
|
def menu_code
|
236
|
-
menu = "<span class=\"list-settings\" data-list-ref=\"#{
|
230
|
+
menu = "<span class=\"list-settings\" data-list-ref=\"#{uid}\">"
|
237
231
|
menu << "<a class=\"settings-start\"><i></i>' + h('list.menu'.t) + '</a>"
|
238
|
-
menu <<
|
232
|
+
menu << '<ul>'
|
239
233
|
if table.paginate?
|
240
234
|
# Per page
|
241
235
|
list = [5, 10, 20, 50, 100, 200]
|
@@ -246,7 +240,7 @@ module ActiveList
|
|
246
240
|
for n in list
|
247
241
|
menu << "<li data-list-change-page-size=\"#{n}\" '+(#{var_name(:params)}[:per_page] == #{n} ? ' class=\"check\"' : '') + '><a><i></i>' + h('list.x_per_page'.t(count: #{n})) + '</a></li>"
|
248
242
|
end
|
249
|
-
menu <<
|
243
|
+
menu << '</ul></li>'
|
250
244
|
end
|
251
245
|
|
252
246
|
# Column selector
|
@@ -255,7 +249,7 @@ module ActiveList
|
|
255
249
|
for column in table.data_columns
|
256
250
|
menu << "<li data-list-toggle-column=\"#{column.name}\" class=\"' + (#{var_name(:params)}[:hidden_columns].include?(:#{column.name}) ? 'unchecked' : 'checked') + '\"><a><i></i>' + h(#{column.header_code}) + '</a></li>"
|
257
251
|
end
|
258
|
-
menu <<
|
252
|
+
menu << '</ul></li>'
|
259
253
|
|
260
254
|
# Separator
|
261
255
|
menu << "<li class=\"separator\"></li>"
|
@@ -263,31 +257,29 @@ module ActiveList
|
|
263
257
|
for format, exporter in ActiveList.exporters
|
264
258
|
menu << "<li class=\"export export-#{format}\">' + link_to(content_tag(:i) + h('list.export_as'.t(exported: :#{format}.t(scope: 'list.export.formats'))), params.merge(action: :#{generator.controller_method_name}, sort: #{var_name(:params)}[:sort], dir: #{var_name(:params)}[:dir], format: '#{format}')) + '</li>"
|
265
259
|
end
|
266
|
-
menu <<
|
267
|
-
|
260
|
+
menu << '</ul></span>'
|
261
|
+
menu
|
268
262
|
end
|
269
263
|
|
270
264
|
# Produces the code to create the header line using top-end menu for columns
|
271
265
|
# and pagination management
|
272
266
|
def header_code
|
273
267
|
code = "'<thead><tr>"
|
274
|
-
if table.selectable?
|
275
|
-
code << "<th class=\"list-selector\"></th>"
|
276
|
-
end
|
268
|
+
code << "<th class=\"list-selector\"></th>" if table.selectable?
|
277
269
|
for column in table.columns
|
278
|
-
next if column.is_a?(ActiveList::Definition::ActionColumn)
|
270
|
+
next if column.is_a?(ActiveList::Definition::ActionColumn) && !column.use_single?
|
279
271
|
code << "<th data-list-column=\"#{column.sort_id}\""
|
280
272
|
code << " data-list-column-cells=\"#{column.short_id}\""
|
281
273
|
code << " data-list-column-sort=\"'+(#{var_name(:params)}[:sort] != '#{column.sort_id}' ? 'asc' : #{var_name(:params)}[:dir] == 'asc' ? 'desc' : 'asc')+'\"" if column.sortable?
|
282
274
|
code << " class=\"#{column_classes(column, true, true)}\""
|
283
|
-
code <<
|
275
|
+
code << '>'
|
284
276
|
code << "' + h(#{column.header_code}) + '"
|
285
|
-
code <<
|
286
|
-
code <<
|
277
|
+
code << '<i></i>'
|
278
|
+
code << '</th>'
|
287
279
|
end
|
288
280
|
# code << "<th class=\"spe\">#{menu_code}</th>"
|
289
281
|
code << "</tr></thead>'"
|
290
|
-
|
282
|
+
code
|
291
283
|
end
|
292
284
|
|
293
285
|
# Produces the code to create bottom menu and pagination
|
@@ -296,11 +288,11 @@ module ActiveList
|
|
296
288
|
|
297
289
|
codes = {}
|
298
290
|
if table.global_action_columns.any?
|
299
|
-
|
300
|
-
actions =
|
301
|
-
actions << "<span class=\"list-actions\" data-list-ref=\"#{
|
291
|
+
|
292
|
+
actions = ''
|
293
|
+
actions << "<span class=\"list-actions\" data-list-ref=\"#{uid}\">'"
|
302
294
|
for column in table.global_action_columns
|
303
|
-
actions << " + link_to(content_tag(:i) + h(' ' + :#{column.name
|
295
|
+
actions << " + link_to(content_tag(:i) + h(' ' + :#{column.name}.t(scope: 'rest.actions')), #{column.default_url.inspect}, class: 'btn btn-#{column.name}'#{', style: "display: none"' unless column.use_none?}#{', method: "' + column.options[:method].to_s + '"' if column.options[:method]}, data: {list_actioner: :#{column.use_none? ? 'none' : 'many'}#{', confirm: :' + column.options[:confirm].to_s + '.t(scope: "labels")' if column.options[:confirm]}})"
|
304
296
|
end
|
305
297
|
actions << " + '</span>"
|
306
298
|
code << "'#{actions}'"
|
@@ -312,11 +304,11 @@ module ActiveList
|
|
312
304
|
codes[:settings] = "'#{menu_code}'"
|
313
305
|
|
314
306
|
if table.paginate?
|
315
|
-
pagination =
|
307
|
+
pagination = ''
|
316
308
|
current_page = "#{var_name(:page)}"
|
317
309
|
last_page = "#{var_name(:last)}"
|
318
310
|
|
319
|
-
pagination << "<span class=\"list-pagination\" data-list-ref=\"#{
|
311
|
+
pagination << "<span class=\"list-pagination\" data-list-ref=\"#{uid}\">"
|
320
312
|
pagination << "<span class=\"status\">' + 'list.pagination.x_to_y_of_total'.t(x: (#{var_name(:offset)} + (#{var_name(:count)} > 0 ? 1 : 0)), y: ((#{var_name(:last)} == #{var_name(:page)}) ? #{var_name(:count)} : #{var_name(:offset)} + #{var_name(:limit)}), total: #{var_name(:count)}) + '</span>"
|
321
313
|
|
322
314
|
pagination << "<span class=\"paginator\">"
|
@@ -326,9 +318,9 @@ module ActiveList
|
|
326
318
|
y = '@@PAGE-COUNT@@'
|
327
319
|
|
328
320
|
pagination << "<a href=\"#\" data-list-move-to-page=\"' + (#{current_page} + 1).to_s + '\" class=\"btn next-page\"' + (#{current_page} != #{last_page} ? '' : ' disabled=\"true\"') + '><i></i>' + ::I18n.translate('list.pagination.next')+'</a>"
|
329
|
-
pagination <<
|
321
|
+
pagination << '</span>'
|
330
322
|
|
331
|
-
pagination <<
|
323
|
+
pagination << '</span>'
|
332
324
|
|
333
325
|
code << "'#{pagination}'"
|
334
326
|
codes[:pagination] = "'#{pagination}'"
|
@@ -339,14 +331,13 @@ module ActiveList
|
|
339
331
|
code = "content_tag(:div, (#{code.join(' + ')}).html_safe, class: 'list-control')"
|
340
332
|
end
|
341
333
|
|
342
|
-
|
334
|
+
code
|
343
335
|
end
|
344
336
|
|
345
337
|
def uid
|
346
338
|
"#{table.name}-list"
|
347
339
|
end
|
348
340
|
|
349
|
-
|
350
341
|
# # Not used
|
351
342
|
# def columns_definition_code
|
352
343
|
# code = table.columns.collect do |column|
|
@@ -357,7 +348,8 @@ module ActiveList
|
|
357
348
|
|
358
349
|
# Finds all default styles for column
|
359
350
|
def column_classes(column, without_id = false, without_interpolation = false)
|
360
|
-
classes
|
351
|
+
classes = []
|
352
|
+
conds = []
|
361
353
|
conds << [:sor, "#{var_name(:params)}[:sort] == '#{column.sort_id}'".c] if column.sortable?
|
362
354
|
conds << [:hidden, "#{var_name(:params)}[:hidden_columns].include?(:#{column.name})".c] if column.is_a? ActiveList::Definition::DataColumn
|
363
355
|
classes << column.options[:class].to_s.strip unless column.options[:class].blank?
|
@@ -373,9 +365,9 @@ module ActiveList
|
|
373
365
|
classes << column.label_method if [:code, :color].include? column.label_method.to_sym
|
374
366
|
if column.options[:mode] == :download
|
375
367
|
classes << :dld
|
376
|
-
elsif column.options[:mode]||column.label_method == :email
|
368
|
+
elsif column.options[:mode] || column.label_method == :email
|
377
369
|
classes << :eml
|
378
|
-
elsif column.options[:mode]||column.label_method == :website
|
370
|
+
elsif column.options[:mode] || column.label_method == :website
|
379
371
|
classes << :web
|
380
372
|
end
|
381
373
|
elsif column.is_a? ActiveList::Definition::TextFieldColumn
|
@@ -399,13 +391,8 @@ module ActiveList
|
|
399
391
|
end.join
|
400
392
|
end
|
401
393
|
end
|
402
|
-
|
394
|
+
html
|
403
395
|
end
|
404
|
-
|
405
|
-
|
406
396
|
end
|
407
|
-
|
408
|
-
|
409
397
|
end
|
410
|
-
|
411
398
|
end
|