jqgrid_rails 1.2.0 → 1.2.1
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/CHANGELOG.rdoc +3 -0
- data/lib/jqgrid_rails/jqgrid.rb +38 -6
- data/lib/jqgrid_rails/jqgrid_rails_view.rb +3 -0
- data/lib/jqgrid_rails/version.rb +1 -1
- metadata +4 -4
data/CHANGELOG.rdoc
CHANGED
data/lib/jqgrid_rails/jqgrid.rb
CHANGED
@@ -16,6 +16,8 @@ module JqGridRails
|
|
16
16
|
attr_accessor :table_id
|
17
17
|
# Options used for links toolbar
|
18
18
|
attr_reader :link_toolbar_options
|
19
|
+
# Detached javascript
|
20
|
+
attr_reader :detached_javascript
|
19
21
|
|
20
22
|
|
21
23
|
# table_id:: DOM ID of table for grid to use
|
@@ -49,6 +51,13 @@ module JqGridRails
|
|
49
51
|
end
|
50
52
|
@local = []
|
51
53
|
@output = ''
|
54
|
+
@detached_javascript = []
|
55
|
+
end
|
56
|
+
|
57
|
+
# js:: Javascript string
|
58
|
+
# Adds javascript to run on document ready
|
59
|
+
def add_javascript(js)
|
60
|
+
@detached_javascript << js
|
52
61
|
end
|
53
62
|
|
54
63
|
# name:: Name of column (Invoice)
|
@@ -158,23 +167,35 @@ module JqGridRails
|
|
158
167
|
|
159
168
|
# Resizes grid after loading has completed to prevent blowing out container
|
160
169
|
def fix_grid_width
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
170
|
+
insert_into_callback(
|
171
|
+
:load_complete,
|
172
|
+
"jQuery(#{convert_dom_id(@table_id)}).jqGrid('setGridWidth', jQuery(#{convert_dom_id(@table_id)} + '_holder').innerWidth(), true);"
|
173
|
+
)
|
174
|
+
end
|
175
|
+
|
176
|
+
# Auto selects blank drop down option to combat Chrome/webkit's unordered hashing
|
177
|
+
def filter_toolbar_autoselect_blanks
|
178
|
+
add_javascript(
|
179
|
+
"jQuery(#{convert_dom_id(@table_id)} + '_holder')" <<
|
180
|
+
".find('th[role=\"columnheader\"]')" <<
|
181
|
+
".find('option[value=\"\"]').each(" <<
|
182
|
+
'function(){' <<
|
183
|
+
"jQuery(this).attr('selected', true);" <<
|
184
|
+
'});'
|
185
|
+
)
|
167
186
|
end
|
168
187
|
|
169
188
|
# Builds out the jqGrid javascript and returns the string
|
170
189
|
def build
|
171
190
|
output = ''
|
172
191
|
fix_grid_width
|
192
|
+
filter_toolbar_autoselect_blanks unless @options[:no_filter_toolbar_autoselect_blanks]
|
173
193
|
@options[:datatype] = 'local' unless @local.blank?
|
174
194
|
resizable = @options.delete(:resizable_grid)
|
175
195
|
#############################################################
|
176
196
|
load_multi_select_fix unless @options[:no_multi_select_fix] # TODO: Remove this when fixed in jqGrid
|
177
197
|
#############################################################
|
198
|
+
|
178
199
|
map_double_click
|
179
200
|
map_single_click
|
180
201
|
set_search_options
|
@@ -327,5 +348,16 @@ module JqGridRails
|
|
327
348
|
}
|
328
349
|
}).trigger('resize');"
|
329
350
|
end
|
351
|
+
|
352
|
+
# key:: callback name
|
353
|
+
# js:: JS string
|
354
|
+
# Insert JS into callback leaving existing callback code intact
|
355
|
+
def insert_into_callback(key, js)
|
356
|
+
if(@options[key])
|
357
|
+
@options[key] = RawJS.new(@options[key].to_s.sub(/^(\s*function.*?\{)/, "\\1#{js}"))
|
358
|
+
else
|
359
|
+
@options[key] = RawJS.new("function(){ #{js} return true; }")
|
360
|
+
end
|
361
|
+
end
|
330
362
|
end
|
331
363
|
end
|
@@ -31,6 +31,9 @@ module JqGridRails
|
|
31
31
|
def jq_grid(grid)
|
32
32
|
output = jqgrid_html(grid)
|
33
33
|
output << jqgrid_js(grid)
|
34
|
+
if grid.detached_javascript.present?
|
35
|
+
output << javascript_tag{ "jQuery(document).ready(function(){ #{grid.detached_javascript.join("\n")}});".html_safe }
|
36
|
+
end
|
34
37
|
output.html_safe
|
35
38
|
end
|
36
39
|
alias_method :jqgrid, :jq_grid
|
data/lib/jqgrid_rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jqgrid_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 1
|
10
|
+
version: 1.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Chris Roberts
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-02-29 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|