jqgrid_for_rails 0.1.0 → 0.2.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.
- data/CHANGELOG.rdoc +8 -0
- data/README.rdoc +6 -2
- data/jqgrid_for_rails.gemspec +22 -0
- data/lib/app/helpers/jqgrids_helper.rb +34 -6
- data/lib/jqgrid_for_rails/version.rb +4 -0
- data/test/jqgrids_helper_test.rb +31 -1
- metadata +7 -4
data/CHANGELOG.rdoc
ADDED
data/README.rdoc
CHANGED
@@ -11,9 +11,13 @@ https://github.com/Juanmcuello/jqgrid_for_rails_example
|
|
11
11
|
|
12
12
|
== Installation
|
13
13
|
|
14
|
-
|
14
|
+
As a gem:
|
15
15
|
|
16
|
-
$
|
16
|
+
$ gem install jqgrid_for_rails
|
17
|
+
|
18
|
+
As a plugin:
|
19
|
+
|
20
|
+
$ rails plugin install git://github.com/Juanmcuello/jqgrid_for_rails.git
|
17
21
|
|
18
22
|
|
19
23
|
== Views
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "jqgrid_for_rails/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "jqgrid_for_rails"
|
7
|
+
s.version = JqgridForRails::VERSION.dup
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.summary = "Simple solution to create jqgrids easily using Rails"
|
10
|
+
s.email = "juanmacuello@gmail.com"
|
11
|
+
s.homepage = "http://github.com/Juanmcuello/jqgrid_for_rails"
|
12
|
+
s.description = "Simple solution to create jqgrids easily using Rails"
|
13
|
+
s.authors = ['Juan Manuel Cuello']
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
|
20
|
+
s.add_dependency("will_paginate")
|
21
|
+
end
|
22
|
+
|
@@ -60,7 +60,7 @@ module JqgridsHelper
|
|
60
60
|
#
|
61
61
|
# jqgrid 'invoices_list', options, grid_options
|
62
62
|
#
|
63
|
-
def jqgrid grid_id, options = {}, grid_options = {}, nav_options
|
63
|
+
def jqgrid grid_id, options = {}, grid_options = {}, *nav_options
|
64
64
|
|
65
65
|
html_output = []
|
66
66
|
|
@@ -71,12 +71,12 @@ module JqgridsHelper
|
|
71
71
|
# Pager
|
72
72
|
if grid_options[:pager]
|
73
73
|
|
74
|
-
pager_id =
|
74
|
+
pager_id = pager_id_from_options(grid_options)
|
75
75
|
|
76
76
|
html_output << content_tag(:div, nil, :id => pager_id) if options[:html_tags]
|
77
77
|
|
78
|
-
|
79
|
-
js_output << "jQuery(\"##{grid_id}\").jqGrid(\"navGrid\", \"##{pager_id}\", #{nav_options
|
78
|
+
unless nav_options.empty?
|
79
|
+
js_output << "jQuery(\"##{grid_id}\").jqGrid(\"navGrid\", \"##{pager_id}\", #{format_nav_options(nav_options)});"
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
@@ -89,12 +89,40 @@ module JqgridsHelper
|
|
89
89
|
|
90
90
|
private
|
91
91
|
|
92
|
+
# Extracts the pager id from the options hash.
|
93
|
+
#
|
94
|
+
# jQgrid accepts three different formats to set the pager id option.
|
95
|
+
#
|
96
|
+
# 1 - jQuery('#my_pager_div')
|
97
|
+
# 2 - #my_pager_div
|
98
|
+
# 3 - my_pager_div
|
99
|
+
#
|
100
|
+
# === Example
|
101
|
+
#
|
102
|
+
# pager_id_from_options({:pager => "jQuery('#my_pager_id')"})
|
103
|
+
# => 'my_pager_id'
|
104
|
+
#
|
105
|
+
def pager_id_from_options options
|
106
|
+
pager_option = options[:pager]
|
107
|
+
|
108
|
+
# jQuery('#my_pager_div')
|
109
|
+
if pager_option =~ /^jQuery\(('|")#\w+('|")\)$/
|
110
|
+
pager_option.match(/#\w+/).to_s[1..-1]
|
111
|
+
# #my_pager_div
|
112
|
+
elsif pager_option =~ /^#\w+$/
|
113
|
+
pager_option.match(/#\w+/).to_s[1..-1]
|
114
|
+
# my_pager_div
|
115
|
+
else
|
116
|
+
pager_option
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
92
120
|
def wrap_with_document_ready! str
|
93
121
|
str.replace("jQuery(document).ready(function() {#{str}});")
|
94
122
|
end
|
95
123
|
|
96
|
-
def
|
97
|
-
|
124
|
+
def format_nav_options nav_options
|
125
|
+
nav_options.map {|e| (e || {}).to_json}.join(', ')
|
98
126
|
end
|
99
127
|
|
100
128
|
end
|
data/test/jqgrids_helper_test.rb
CHANGED
@@ -50,11 +50,41 @@ class JqgridsHelperTest < Test::Unit::TestCase
|
|
50
50
|
jQuery("#' + grid_id + '").jqGrid({
|
51
51
|
"pager":jQuery(\'#' + pager_id + '\')
|
52
52
|
});
|
53
|
-
jQuery("#grid_id").jqGrid("navGrid", "#gridpager", {});
|
54
53
|
});'
|
55
54
|
expected << js.gsub(/\n\s+/, '') + "\n"
|
56
55
|
expected << '</script>'
|
57
56
|
|
58
57
|
end
|
59
58
|
|
59
|
+
def test_jqgrid_nav_options
|
60
|
+
@template = MockView.new
|
61
|
+
|
62
|
+
grid_id = 'grid_id'
|
63
|
+
pager_id = 'pager_id'
|
64
|
+
grid_options = {:pager => "##{pager_id}"}
|
65
|
+
options = {:on_document_ready => true, :html_tags => true}
|
66
|
+
nav_items = {:del => true}
|
67
|
+
del_config = {:closeOnEscape => true}
|
68
|
+
|
69
|
+
expected = '<table id="'+grid_id+'"></table>' + "\n"
|
70
|
+
expected << '<div id="'+pager_id+'"></div>' + "\n"
|
71
|
+
expected << "<script>" + "\n"
|
72
|
+
str = 'jQuery("#'+grid_id+'").jqGrid({"pager":"#'+pager_id+'"});'
|
73
|
+
str << 'jQuery("#'+grid_id+'").jqGrid("navGrid", "#'+pager_id+'", {"del":true}, {}, {}, {"closeOnEscape":true});'
|
74
|
+
expected << "jQuery(document).ready(function() {#{str}});" + "\n"
|
75
|
+
expected << "</script>"
|
76
|
+
|
77
|
+
assert_equal(expected, @template.jqgrid(grid_id,options,grid_options,nav_items,nil,nil,del_config))
|
78
|
+
end
|
79
|
+
|
80
|
+
def testi_pager_id_from_options
|
81
|
+
@template = MockView.new
|
82
|
+
|
83
|
+
assert_equal 'my_pager_div', @template.send(:pager_id_from_options, {:pager => "jQuery('#my_pager_div')"})
|
84
|
+
assert_equal 'my_pager_div', @template.send(:pager_id_from_options, {:pager => 'jQuery("#my_pager_div")'})
|
85
|
+
assert_equal 'my_pager_div', @template.send(:pager_id_from_options, {:pager => "#my_pager_div"})
|
86
|
+
assert_equal 'my_pager_div', @template.send(:pager_id_from_options, {:pager => "my_pager_div"})
|
87
|
+
end
|
88
|
+
|
89
|
+
|
60
90
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jqgrid_for_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Juan Manuel Cuello
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01-
|
18
|
+
date: 2011-01-25 00:00:00 -03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -42,14 +42,17 @@ extra_rdoc_files: []
|
|
42
42
|
|
43
43
|
files:
|
44
44
|
- .gitignore
|
45
|
+
- CHANGELOG.rdoc
|
45
46
|
- MIT-LICENSE
|
46
47
|
- README.rdoc
|
47
48
|
- Rakefile
|
48
49
|
- install.rb
|
50
|
+
- jqgrid_for_rails.gemspec
|
49
51
|
- lib/app/helpers/jqgrids_helper.rb
|
50
52
|
- lib/jqgrid_for_rails.rb
|
51
53
|
- lib/jqgrid_for_rails/controllers/helpers.rb
|
52
54
|
- lib/jqgrid_for_rails/core_ext.rb
|
55
|
+
- lib/jqgrid_for_rails/version.rb
|
53
56
|
- lib/tasks/jqgrid_for_rails.rake
|
54
57
|
- rails/init.rb
|
55
58
|
- test/controllers/helpers_test.rb
|