datatablesnet 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -111,7 +111,7 @@ module Datatable
111
111
 
112
112
  config = {:options => options, :columns =>columns, :table_options => table_options}
113
113
  config.to_json
114
-
114
+
115
115
  render :partial => "datatablesnet/table", :locals => { :table_id => id, :columns => columns, :rows => rows, :config => config}
116
116
  end
117
117
 
@@ -128,7 +128,7 @@ module Datatable
128
128
  column_options = {}
129
129
  column_options_map.each do |k,v|
130
130
  if column[k].present?
131
- column_options[v] = column[k]
131
+ column_options[v] = column[k] unless k==:width and request.env['HTTP_USER_AGENT'] =~ /Firefox/
132
132
  end
133
133
  end
134
134
  column_options["fnRender"] = NoEscape.new(options[:render]) if column[:render].present?
@@ -150,7 +150,11 @@ module Datatable
150
150
  end
151
151
 
152
152
  if options[:server_side]
153
- column_defs << {"bVisible" => false}
153
+ if request.env['HTTP_USER_AGENT'] =~ /Firefox/
154
+ column_defs << {"sClass" => "hidden"}
155
+ else
156
+ column_defs << {"bVisible" => false}
157
+ end
154
158
  end
155
159
 
156
160
  return column_defs
@@ -192,7 +196,7 @@ module Datatable
192
196
  label.to_s.gsub(/\b\w/){$&.upcase}
193
197
  end
194
198
 
195
- def parse_params params
199
+ def parse_params klass, params
196
200
  grid_options = {}
197
201
  columns = []
198
202
  order_by = {}
@@ -224,13 +228,14 @@ module Datatable
224
228
  if key =~ /.*_to/
225
229
  field_name = key[6..-4]
226
230
  search_by[field_name] = {} unless search_by[field_name].present?
227
- search_by[field_name][:to] = convert_string(value)
231
+ search_by[field_name][:to] = convert_param(klass, field_name, value)
228
232
  elsif key =~ /.*_from/
229
233
  field_name = key[6..-6]
230
234
  search_by[field_name] = {} unless search_by[field_name].present?
231
- search_by[field_name][:from] = convert_string(value)
235
+ search_by[field_name][:from] = convert_param(klass, field_name,value)
232
236
  else
233
- search_by[key[6..-1]] = value
237
+ field_name = key[6..-1]
238
+ search_by[field_name] = convert_param(klass, field_name, value)
234
239
  end
235
240
  end
236
241
  end
@@ -248,21 +253,19 @@ module Datatable
248
253
  grid_options
249
254
  end
250
255
 
251
- def convert_string value
252
- begin
253
- value = Date.parse(value)
254
- rescue ArgumentError
255
- value = value.to_i
256
- if value == 0
257
- value = value
258
- end
256
+ def convert_param klass, field_name, value
257
+ case klass.columns_hash[field_name].type
258
+ when :date, :datetime
259
+ value = Date.parse(value)
260
+ when :integer, :float, :decimal
261
+ value = value.to_i
259
262
  end
260
263
  value
261
264
  end
262
265
 
263
266
 
264
267
  def build_condition(klass, params={}, options = {})
265
- grid_options = parse_params params
268
+ grid_options = parse_params klass, params
266
269
  build_condition_internal(klass, grid_options, options[:conditions].present? ? options[:conditions] : nil)
267
270
  end
268
271
 
@@ -320,7 +323,7 @@ module Datatable
320
323
  def find(klass, params={}, options = {})
321
324
  puts params.to_json
322
325
 
323
- grid_options = parse_params params
326
+ grid_options = parse_params klass, params
324
327
 
325
328
  options[:page] = grid_options[:page]
326
329
  options[:per_page] = grid_options[:per_page]
@@ -1,3 +1,3 @@
1
1
  module Datatablesnet
2
- VERSION = "1.1.3"
2
+ VERSION = "1.1.4"
3
3
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 1
8
- - 3
9
- version: 1.1.3
8
+ - 4
9
+ version: 1.1.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Matt Fields
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-08-31 00:00:00 +03:00
17
+ date: 2011-09-01 00:00:00 +03:00
18
18
  default_executable:
19
19
  dependencies: []
20
20