midas-g_already_grid 1.0.3 → 1.0.4

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/History.txt CHANGED
@@ -1,3 +1,10 @@
1
+ 1.0.4 2009-03-26
2
+
3
+ * Refactored to utilize the REST path helper resolution available in Guilded 0.1.9
4
+ * Added multi level scoped by option
5
+ * Added namespace option
6
+
7
+
1
8
  == 1.0.3 2009-03-18
2
9
 
3
10
  * Fixed issue with sorting links not obeying polymorphism
data/PostInstall.txt CHANGED
@@ -1,7 +1,5 @@
1
1
 
2
2
  For more information on g_already_grid, see http://g_already_grid.rubyforge.org
3
3
 
4
- NOTE: Change this information in PostInstall.txt
5
- You can also delete it if you don't want it.
6
4
 
7
5
 
data/Rakefile CHANGED
@@ -14,7 +14,8 @@ $hoe = Hoe.new('g_already_grid', GAlreadyGrid::VERSION) do |p|
14
14
  p.extra_dev_deps = [
15
15
  ['newgem', ">= #{::Newgem::VERSION}"],
16
16
  ['rails', ">= 2.2.0"],
17
- ['midas-guilded', ">=0.1.4"]
17
+ ['midas-guilded', ">=0.1.9"]#,
18
+ #['mislav-will_paginate', ">=2.2.3"]
18
19
  ]
19
20
 
20
21
  p.clean_globs |= %w[**/.DS_Store tmp *.log]
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{g_already_grid}
5
- s.version = "1.0.3"
5
+ s.version = "1.0.4"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["C. Jason Harrelson (midas)"]
9
- s.date = %q{2009-03-18}
9
+ s.date = %q{2009-03-26}
10
10
  s.description = %q{A Guilded (http://github.com/midas/guilded/tree/master) Rails component that generates a rich grid control from an ActiveRecord collection.}
11
11
  s.email = ["jason@lookforwardenterprises.com"]
12
12
  s.extra_rdoc_files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc"]
13
- s.files = [".git/COMMIT_EDITMSG", ".git/HEAD", ".git/config", ".git/description", ".git/hooks/applypatch-msg.sample", ".git/hooks/commit-msg.sample", ".git/hooks/post-commit.sample", ".git/hooks/post-receive.sample", ".git/hooks/post-update.sample", ".git/hooks/pre-applypatch.sample", ".git/hooks/pre-commit.sample", ".git/hooks/pre-rebase.sample", ".git/hooks/prepare-commit-msg.sample", ".git/hooks/update.sample", ".git/index", ".git/info/exclude", ".git/logs/HEAD", ".git/logs/refs/heads/master", ".git/logs/refs/remotes/origin/HEAD", ".git/logs/refs/remotes/origin/master", ".git/objects/02/85e65fe6d5a62b7badce283d02f1fb626a1ab7", ".git/objects/02/df3eba6f6e8eb54809d163a150c736f67c5a26", ".git/objects/07/823e3e4f3d9ec546d63b6559b37153c0df18a5", ".git/objects/0f/1236da897d1e58f4b07b708476a0501865b691", ".git/objects/0f/961dcada4c3a21a506f410718b1d01f36bd283", ".git/objects/12/6777195e9ef321021d14e942cd4160ce5eca1e", ".git/objects/19/4974f3fea3fc6a21372a4cef13599525714622", ".git/objects/22/4224da073354641355f3662e295d9ec99ef366", ".git/objects/28/bea3eb33169ff67ce34f82168d7cddc6caa440", ".git/objects/36/f59b31836194f47821bd21060c413f229cf174", ".git/objects/3b/2d1ce9b2f5e05f70403e08798b19cb962d84f4", ".git/objects/3c/79c1d2a5f3149296bd5a84a31f6c1e7df08400", ".git/objects/42/17c3829629b09f6757ee68353d7273920939fb", ".git/objects/43/4d1f35c9811567615eb0e13cd87f461a154e19", ".git/objects/45/b904d8ecd3149f3f16e9b86e917690e0eebef9", ".git/objects/4b/7f07757eb7e9560c7acfac98e2fa5b77da5a5e", ".git/objects/52/ede8cef7c02782dbfa6bc9b080384c58d553fd", ".git/objects/5a/2e88151df3b26c1283119bcd11f0e5c30d18e7", ".git/objects/5a/fb625dbee0c45379a4265db895899efab0cf97", ".git/objects/5b/44011696227f26a7c4d4c5b4b2874b9fe7bf7b", ".git/objects/5e/433b062a857c0497375c6fd621543106005ce8", ".git/objects/63/4f7d3f7733838417bc0fa090139ef05e15a74f", ".git/objects/69/2b527d6ddc2c88d57dd5fc6f36191ac7d7124c", ".git/objects/6c/41bedb7233e5cd29ef3f98982d6adabd0b58f9", ".git/objects/6f/d260879fc3d5afe7d68ef43d4466f2391760dd", ".git/objects/76/6f6a48a18be39f100b6bfe69a9a75c9d9f4690", ".git/objects/7d/4116571ec08a206a391f623ac73912707efaae", ".git/objects/7d/dd252e5bcb58a40d39450280d316c327354755", ".git/objects/7d/e4daf36d50aa32f6ce28e2d00237528fb5e87f", ".git/objects/89/886ddee8d0f5351dd33b70ecbadba7d443d40f", ".git/objects/90/b4678b2544afc9cd536bfb32dd5af301583752", ".git/objects/96/3a646fe4d05c3bcb0b9870bdcc6213422547d3", ".git/objects/97/5b7b15f1b0570bc2d65230ffb6a812cf3b27e1", ".git/objects/a1/89e4eb96aaef371bdd31f693034bcfd1c1475b", ".git/objects/a2/317f0f2f5513287c6b5297d1326ff7696b264f", ".git/objects/ab/f47258a219173a7071b0009ed1aa0b53070eec", ".git/objects/ac/42b393696e320f12b662f5dd9686a10655a9c5", ".git/objects/af/4892fceaaf4ae9e7ebe8fd83a321de6e0632ea", ".git/objects/b9/cf9d7dbe8121ede710d2c19a9f572988463a4d", ".git/objects/bb/1162c1f3474c8380d73f48d8af8567a6fe16b2", ".git/objects/c5/653762ee23dd313126ab500e3c827093e39fcf", ".git/objects/c8/1531972f4d15a3de66df8399ec48c8c5cdef68", ".git/objects/db/b6e045c18c46548458d88661efc638b6f33aca", ".git/objects/dd/c38c6eb601a6755bb6bd98ea4d04b7a035857a", ".git/objects/de/57e7ff9810fd6b3d199bda60880acf87f6c1bb", ".git/objects/de/6565d370577eee92734f8ed1907b46e9498d51", ".git/objects/de/e64a19bfaa35c06cd428fb4ad577332267f370", ".git/objects/e4/9df7e2a93d33bd572e458ac6422e93d2c75bb2", ".git/objects/e5/8db62de9ed9b73b92072850d37754de748e532", ".git/objects/e5/9a6a12400500cf1766d332a2735df85083edf8", ".git/objects/eb/82eeb8ee03b998e468aefd726752a4c2c2ab10", ".git/objects/ec/40c86e224f0744d32992dab3e4e8dfff4e44db", ".git/objects/f4/1a2149b85c693085022dceafbe5a0614f5b74a", ".git/objects/f7/9be5951a5f5229e87a2851944d127110e0f5b1", ".git/objects/fc/2f2fa2516ea0f3f1a58f525ff9054ad23e1d47", ".git/objects/fd/98e0f2c18555906861c26c1f0ee05580096caa", ".git/objects/fe/c84815790fe1587b2cdabdf0f62428e1808963", ".git/objects/ff/b6d7438661c2f47854344676bffd4b9b428b5e", ".git/objects/pack/pack-7aed4e203c2b94a917664d44a6cd37ca4eeecfea.idx", ".git/objects/pack/pack-7aed4e203c2b94a917664d44a6cd37ca4eeecfea.pack", ".git/packed-refs", ".git/refs/heads/master", ".git/refs/remotes/origin/HEAD", ".git/refs/remotes/origin/master", ".git/refs/tags/v1.0.0", ".git/refs/tags/v1.0.2", "History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "g_already_grid.gemspec", "lib/g_already_grid.rb", "lib/g_already_grid/templates/guilded.already_grid.html.erb", "lib/g_already_grid/view_helpers.rb", "rails_generators/already_grid_assets/already_grid_assets_generator.rb", "rails_generators/already_grid_assets/templates/default.css", "rails_generators/already_grid_assets/templates/gridHeadBg.gif", "rails_generators/already_grid_assets/templates/gridSort.gif", "rails_generators/already_grid_assets/templates/gridSortAsc.gif", "rails_generators/already_grid_assets/templates/gridSortDesc.gif", "rails_generators/already_grid_assets/templates/guilded.already_grid.js", "rails_generators/already_grid_assets/templates/guilded.already_grid.min.js", "rails_generators/already_grid_assets/templates/jquery-already_grid-0.1.js", "rails_generators/already_grid_assets/templates/jquery-already_grid-0.1.min.js", "script/console", "script/destroy", "script/generate", "spec/g_already_grid_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/rspec.rake"]
13
+ s.files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "g_already_grid.gemspec", "lib/g_already_grid.rb", "lib/g_already_grid/templates/guilded.already_grid.html.erb", "lib/g_already_grid/view_helpers.rb", "rails_generators/already_grid_assets/already_grid_assets_generator.rb", "rails_generators/already_grid_assets/templates/default.css", "rails_generators/already_grid_assets/templates/gridHeadBg.gif", "rails_generators/already_grid_assets/templates/gridSort.gif", "rails_generators/already_grid_assets/templates/gridSortAsc.gif", "rails_generators/already_grid_assets/templates/gridSortDesc.gif", "rails_generators/already_grid_assets/templates/guilded.already_grid.js", "rails_generators/already_grid_assets/templates/guilded.already_grid.min.js", "rails_generators/already_grid_assets/templates/jquery-already_grid-0.1.js", "rails_generators/already_grid_assets/templates/jquery-already_grid-0.1.min.js", "script/console", "script/destroy", "script/generate", "spec/g_already_grid_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/rspec.rake"]
14
14
  s.has_rdoc = true
15
15
  s.homepage = %q{http://github.com/midas/g_already_grid/tree/master}
16
16
  s.post_install_message = %q{PostInstall.txt}
@@ -4,7 +4,7 @@ $:.unshift(File.dirname(__FILE__)) unless
4
4
  require 'g_already_grid/view_helpers'
5
5
 
6
6
  module GAlreadyGrid
7
- VERSION = '1.0.3'
7
+ VERSION = '1.0.4'
8
8
  end
9
9
 
10
10
  if defined?( ActionView::Base )
@@ -1,53 +1,52 @@
1
- <div class="<%= grid_class %>" id="<%= grid_id %>">
1
+ <div class="<%= options[:grid_class] %>" id="<%= options[:id] %>">
2
2
  <table cellspacing="0" cellpadding="0">
3
3
  <thead>
4
4
  <tr>
5
- <% if do_checkboxes %>
6
- <th class="chkBox"><input type="checkbox" class="<%= check_all_class %>" /></th>
5
+ <% if options[:checkboxes] %>
6
+ <th class="chkBox"><input type="checkbox" class="<%= options[:check_all_class] %>" /></th>
7
7
  <% end %>
8
- <% unless no_actions %><th>Actions</th><% end %>
9
- <% col_titles.each_with_index do |col, i| %>
10
- <th><%= sort_by.include?( cols[i].to_sym ) ? sortable_header( col, cols[i], index_rest_method ) : col %></th>
8
+ <% unless options[:actions].empty? %><th>Actions</th><% end %>
9
+ <% options[:col_titles].each_with_index do |col, i| %>
10
+ <th><%= sort_by.include?( options[:cols][i].to_sym ) ? sortable_header( col, options[:cols][i], path_helpers[:index_rest_helper], path_helpers[:index_rest_args] ) : col %></th>
11
11
  <% end %>
12
12
  <th class="right"></th>
13
13
  </tr>
14
14
  </thead>
15
15
  <tbody>
16
16
  <% ar_col.each do |record| %>
17
+ <% record_array = Array.new << record %>
17
18
  <tr class="<%= cycle( 'even', 'odd' ) %>">
18
- <% shallow ? path_args = [record] : path_args = [scoped_by, record] %>
19
- <% if do_checkboxes %>
20
- <td class="chkBox"><input type="checkbox" class="<%= checkbox_class %>" name="<%= record.class.to_s.tableize %>[<%= record.id %>]" /></td>
19
+ <% if options[:checkboxes] %>
20
+ <td class="chkBox"><input type="checkbox" class="<%= options[:checkbox_class] %>" name="<%= record.class.to_s.tableize %>[<%= record.id %>]" /></td>
21
21
  <% end %>
22
- <% unless no_actions %>
22
+ <% unless options[:actions].empty? %>
23
23
  <td>
24
- <%= link_to 'show', @controller.send( show_rest_method, *path_args ) unless show_rest_method.nil? %>
25
- <%= link_to 'edit', @controller.send( edit_rest_method, *path_args ) unless edit_rest_method.nil? %>
26
- <%= link_to( 'del', @controller.send( delete_rest_method, *path_args ),
27
- :method => :delete, :confirm => del_confirmation ) unless delete_rest_method.nil? %>
24
+ <%= link_to 'show', @controller.send( path_helpers[:show_rest_helper], *(path_helpers[:show_rest_args] + record_array) ) if options[:actions].include?( :show ) %>
25
+ <%= link_to 'edit', @controller.send( path_helpers[:edit_rest_helper], *(path_helpers[:edit_rest_args] + record_array) ) if options[:actions].include?( :edit ) %>
26
+ <%= link_to( 'del', @controller.send( path_helpers[:delete_rest_helper], *(path_helpers[:edit_rest_args] + record_array) ),
27
+ :method => :delete, :confirm => options[:del_confirmation] ) if options[:actions].include?( :edit ) %>
28
28
  </td>
29
29
  <% end %>
30
- <% cols.each do |col|
30
+ <% options[:cols].each do |col|
31
31
  translate_method = "translate_#{col}".to_sym
32
32
 
33
- if polymorphic_as && col.to_s.include?( polymorphic_as.to_s )
34
- col_name = col.to_s.gsub( /#{polymorphic_as}_/, "" )
35
- col_val = record.send( polymorphic_as.to_sym ).send( col_name.to_sym )
33
+ if options[:polymorphic_as] && col.to_s.include?( options[:polymorphic_as].to_s )
34
+ col_name = col.to_s.gsub( /#{options[:polymorphic_as]}_/, "" )
35
+ col_val = record.send( options[:polymorphic_as].to_sym ).send( col_name.to_sym )
36
36
  else
37
37
  col_val = record.send( col.to_sym )
38
38
  end
39
39
 
40
40
  if col_val.is_a?( Time )
41
- record_val = col_val.to_formatted_s( date_format.to_sym )
41
+ record_val = col_val.to_formatted_s( options[:date_format].to_sym )
42
42
  elsif respond_to?( translate_method )
43
43
  record_val = send( translate_method, col_val )
44
- #elsif col_val.is_a?( TrueClass ) || col_val.is_a?( NilClass )
45
- # record_val = respond_to?( :translate_boolean ) ? translate_boolean( col_val ) : col_val
46
44
  else
47
45
  record_val = col_val.to_s
48
46
  end %>
49
47
  <td>
50
- <%= no_actions ? link_to( record_val, @controller.send( show_rest_method, *path_args ) ) : record_val %>
48
+ <% cell_args = path_helpers[:show_rest_args] + record_array %>
49
+ <%= options[:actions].empty? ? link_to( record_val, @controller.send( path_helpers[:show_rest_helper], *cell_args ) ) : record_val %>
51
50
  </td>
52
51
  <% end %>
53
52
  <td class="right"></td>
@@ -55,7 +54,7 @@
55
54
  </tbody>
56
55
  <tfoot>
57
56
  <tr>
58
- <td colspan="<%= total_columns.to_s %>">
57
+ <td colspan="<%= options[:total_columns].to_s %>">
59
58
  <% if do_paginate %><p><%= will_paginate( ar_col ) %></p><p><%= page_entries_info( ar_col ) %></p><% end %>
60
59
  </td>
61
60
  </tr>
@@ -25,6 +25,9 @@ module GAlreadyGrid
25
25
  # true. Utilizes will_paginate plugin features.
26
26
  # polymorphic_type:: The type of this polymorphic record. Should be a string representing the class name.
27
27
  # polymorphic_as:: The as used for the polymorphic type. Can be a symbol or string.
28
+ # namespace::
29
+ # scoped_by::
30
+ # shallow::
28
31
  #
29
32
  def g_already_grid( ar_col, *args )
30
33
  options = args.extract_options!
@@ -35,23 +38,16 @@ module GAlreadyGrid
35
38
 
36
39
  return "<span class=\"list-empty-msg\">#{options[:empty_msg] || 'No matching records'}</span>" if ar_col.nil? || ar_col.empty?
37
40
 
38
- plural_ar_type = ar_col[0].class.to_s.tableize
39
- singular_ar_type = plural_ar_type.singularize
40
- polymorphic_as = options[:polymorphic_as]
41
- polymorphic_type = options[:polymorphic_type]
42
- plural_polymorphic_type = polymorphic_type.to_s.tableize if polymorphic_type
43
- singular_polymorphic_type = plural_polymorphic_type.singularize if polymorphic_type
44
- options[:checkbox_class] = "chk"
45
- options[:check_all_class] = "checkAll"
46
- date_format = options[:date_format] || :default
47
- plural_derived_type = polymorphic_type.nil? ? plural_ar_type : plural_polymorphic_type
48
- plural_singular_type = polymorphic_type.nil? ? singular_ar_type : singular_polymorphic_type
41
+ options[:grid_class] ||= 'already-grid'
42
+ options[:checkbox_class] ||= "chk"
43
+ options[:check_all_class] ||= "checkAll"
44
+ options[:date_format] ||= :default
45
+ options[:del_confirmation] ||= 'Are you sure you would like to delete this record?'
46
+
47
+ options[:cols], options[:col_titles] = Guilded::Rails::Helpers.resolve_field_methods_and_titles( options[:cols], ar_col[0] )
48
+ path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( ar_col, options )
49
+
49
50
  scoped_by = options.delete( :scoped_by )
50
- if scoped_by
51
- shallow = options.delete( :shallow ) || false
52
- else
53
- shallow = true
54
- end
55
51
 
56
52
  # Resolve sorting
57
53
  if options[:sort]
@@ -65,88 +61,16 @@ module GAlreadyGrid
65
61
  end
66
62
  sort_by = Array.new unless sort_by
67
63
 
68
- # Set up the options booleans we need to decide on output HTML
69
- no_actions = !(options[:actions] == true || options[:actions] == 'true')
70
- no_actions ||= true
71
-
72
- if no_actions
73
- options[:actions] = [ :show ]
74
- elsif !options[:actions].is_a?( Array )
64
+ if options[:actions].is_a?( TrueClass )
75
65
  options[:actions] = [ :show, :edit, :delete ]
66
+ elsif options[:actions].nil?
67
+ options[:actions] = []
76
68
  end
77
-
78
- controller_name_parts = @controller.class.to_s.underscore.split( '/' )
79
- controller_name_parts.pop
80
- pre = controller_name_parts.join( '_' )
81
-
82
- unless ar_col.empty?
83
-
84
- # Figure out the index REST path helper name
85
- if options.has_key?( :index_path_helper )
86
- index_rest_method = options[:index_path_helper].to_s
87
- elsif scoped_by
88
- if pre.empty?
89
- index_rest_method = "#{scoped_by.class.to_s.underscore}_#{plural_derived_type}_path" if ar_col.size > 0
90
- else
91
- index_rest_method = "#{pre}_#{scoped_by.class.to_s.underscore}_#{plural_derived_type}_path" if ar_col.size > 0
92
- end
93
- elsif pre.empty?
94
- index_rest_method = "#{plural_derived_type}_path" if ar_col.size > 0
95
- #index_rest_method.gsub!( /#{plural_ar_type}/, "#{plural_polymorphic_type}") if plural_polymorphic_type
96
- else
97
- index_rest_method = "#{pre}_#{plural_derived_type}_path" if ar_col.size > 0
98
- #index_rest_method.gsub!( /#{plural_ar_type}/, "#{plural_polymorphic_type}") if plural_polymorphic_type
99
- end
100
-
101
- # Figure out the show REST path helper name
102
- if options.has_key?( :show_path_helper )
103
- show_rest_method = options[:show_path_helper].to_s
104
- elsif scoped_by && !shallow
105
- if pre.empty?
106
- show_rest_method = "#{scoped_by.class.to_s.underscore}_#{singular_ar_type}_path" if ar_col.size > 0
107
- else
108
- show_rest_method = "#{pre}_#{scoped_by.class.to_s.underscore}_#{singular_ar_type }_path" if ar_col.size > 0
109
- end
110
- elsif pre.empty?
111
- show_rest_method = "#{singular_ar_type}_path" if ar_col.size > 0
112
- show_rest_method.gsub!( /#{singular_ar_type}/, "#{singular_polymorphic_type}") if singular_polymorphic_type
113
- else
114
- show_rest_method = "#{pre}_#{singular_ar_type}_path" if ar_col.size > 0
115
- show_rest_method.gsub!( /#{singular_ar_type}/, "#{singular_polymorphic_type}") if singular_polymorphic_type
116
- end
117
-
118
- unless no_actions
119
- # Figure out the edit REST path helper name
120
- if options.has_key?( :edit_path_helper )
121
- edit_rest_method = options[:edit_path_helper].to_s
122
- elsif scoped_by && !shallow
123
- if pre.empty?
124
- edit_rest_method = "edit_#{scoped_by.class.to_s.underscore}_#{singular_ar_type}_path" if ar_col.size > 0
125
- else
126
- edit_rest_method = "edit_#{pre}_#{scoped_by.class.to_s.underscore}_#{singular_ar_type }_path" if ar_col.size > 0
127
- end
128
- elsif pre.empty?
129
- edit_rest_method = "edit_#{singular_ar_type}_path" if ar_col.size > 0
130
- else
131
- edit_rest_method = "edit_#{pre}_#{singular_ar_type}_path" if ar_col.size > 0
132
- end
133
-
134
- # Figure out the delete REST path helper name
135
- if options.has_key?( :delete_path_helper )
136
- delete_rest_method = options[:delete_path_helper].to_s
137
- elsif pre.empty?
138
- delete_rest_method = "#{singular_ar_type}_path" if ar_col.size > 0
139
- else
140
- delete_rest_method = "#{pre}_#{singular_ar_type}_path" if ar_col.size > 0
141
- end
142
- end
143
- end
144
-
145
- cols, col_titles = Guilded::Rails::Helpers.resolve_field_methods_and_titles( options[:cols], ar_col[0] )
146
69
 
70
+ # Resolve pagination
147
71
  do_paginate = true
148
72
  begin
149
- if options[:paginate] == false || options[:paginate] == 'false' #ar_col.total_pages <= 1
73
+ if options[:paginate] == false || options[:paginate] == 'false'
150
74
  do_paginate = false
151
75
  end
152
76
  rescue => e
@@ -157,39 +81,16 @@ module GAlreadyGrid
157
81
  end
158
82
  end
159
83
 
160
- do_checkboxes = true
161
- do_checkboxes = false if options[:checkboxes] == false || options[:checkboxes] == 'false'
162
- options[:checkboxes] = do_checkboxes unless options[:checkboxes]
84
+ options[:checkboxes] = true if options[:checkboxes].nil?
163
85
 
164
- total_columns = cols.size
165
- total_columns = total_columns + 1 if do_checkboxes
166
- total_columns = total_columns + 1 unless no_actions
86
+ total_columns = options[:cols].size
87
+ total_columns = total_columns + 1 if options[:checkboxes]
88
+ total_columns = total_columns + 1 unless options[:actions].empty?
167
89
  options[:total_columns] = total_columns
168
90
 
169
91
  vars = {
170
- :no_actions => no_actions, :actions => options[:actions], :do_checkboxes => do_checkboxes,
171
- :total_columns => total_columns, :del_confirmation => 'Are you sure you would like to delete this record?',
172
- :col_titles => col_titles, :cols => cols, :grid_class => 'already-grid', :checkbox_class => options[:checkbox_class],
173
- :check_all_class => options[:check_all_class], :grid_id => options[:id], :ar_col => ar_col, :do_paginate => do_paginate,
174
- :date_format => date_format, :polymorphic_type => polymorphic_type, :polymorphic_as => polymorphic_as,
175
- :sort_by => sort_by, :index_rest_method => index_rest_method, :shallow => shallow, :scoped_by => scoped_by
92
+ :options => options, :ar_col => ar_col, :do_paginate => do_paginate, :sort_by => sort_by, :path_helpers => path_helpers
176
93
  }
177
-
178
- if ( !options[:actions].nil? && options[:actions].include?( :show ) ) || options[:actions].nil?
179
- vars.merge!( :show_rest_method => show_rest_method )
180
- else
181
- vars.merge!( :show_rest_method => nil )
182
- end
183
- if ( !options[:actions].nil? && options[:actions].include?( :edit ) ) || options[:actions].nil?
184
- vars.merge!( :edit_rest_method => edit_rest_method )
185
- else
186
- vars.merge!( :edit_rest_method => nil )
187
- end
188
- if ( !options[:actions].nil? && options[:actions].include?( :delete ) ) || options[:actions].nil?
189
- vars.merge!( :delete_rest_method => delete_rest_method )
190
- else
191
- vars.merge!( :delete_rest_method => nil )
192
- end
193
94
 
194
95
  path = File.dirname(__FILE__)
195
96
  full_path = "#{path}/templates/guilded.already_grid.html.erb"
@@ -208,7 +109,7 @@ module GAlreadyGrid
208
109
  # path:: (Symbol) The name of the path method to call from routing.
209
110
  # options:: see link_to helper.
210
111
  #
211
- def sortable_header( name, method, path, options={} )
112
+ def sortable_header( name, method, path, scoping_args, options={} )
212
113
 
213
114
  is_sorted_link = ( method.to_s == params[:order].to_s )
214
115
 
@@ -229,14 +130,17 @@ module GAlreadyGrid
229
130
  unsorted_options.merge!( :filter => params[:filter] ) if params[:filter]
230
131
 
231
132
  path = path.to_sym unless path.is_a?( Symbol )
133
+ path_args = Array.new + scoping_args
232
134
 
233
135
  if is_sorted_link
234
136
  # Handle the currently sorted by link
235
- path = @controller.send( path, sort_options )
137
+ path_args << sort_options
138
+ path = @controller.send( path, *path_args )
236
139
  else
237
140
  # Handle the the other currently unsorted by links (we will always sort in
238
141
  # an ASC direction the first time)
239
- path = @controller.send( path, unsorted_options )
142
+ path_args << unsorted_options
143
+ path = @controller.send( path, *path_args )
240
144
  end
241
145
  #end
242
146
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: midas-g_already_grid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - C. Jason Harrelson (midas)
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-18 00:00:00 -07:00
12
+ date: 2009-03-26 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -65,92 +65,6 @@ extra_rdoc_files:
65
65
  - PostInstall.txt
66
66
  - README.rdoc
67
67
  files:
68
- - .git/COMMIT_EDITMSG
69
- - .git/HEAD
70
- - .git/config
71
- - .git/description
72
- - .git/hooks/applypatch-msg.sample
73
- - .git/hooks/commit-msg.sample
74
- - .git/hooks/post-commit.sample
75
- - .git/hooks/post-receive.sample
76
- - .git/hooks/post-update.sample
77
- - .git/hooks/pre-applypatch.sample
78
- - .git/hooks/pre-commit.sample
79
- - .git/hooks/pre-rebase.sample
80
- - .git/hooks/prepare-commit-msg.sample
81
- - .git/hooks/update.sample
82
- - .git/index
83
- - .git/info/exclude
84
- - .git/logs/HEAD
85
- - .git/logs/refs/heads/master
86
- - .git/logs/refs/remotes/origin/HEAD
87
- - .git/logs/refs/remotes/origin/master
88
- - .git/objects/02/85e65fe6d5a62b7badce283d02f1fb626a1ab7
89
- - .git/objects/02/df3eba6f6e8eb54809d163a150c736f67c5a26
90
- - .git/objects/07/823e3e4f3d9ec546d63b6559b37153c0df18a5
91
- - .git/objects/0f/1236da897d1e58f4b07b708476a0501865b691
92
- - .git/objects/0f/961dcada4c3a21a506f410718b1d01f36bd283
93
- - .git/objects/12/6777195e9ef321021d14e942cd4160ce5eca1e
94
- - .git/objects/19/4974f3fea3fc6a21372a4cef13599525714622
95
- - .git/objects/22/4224da073354641355f3662e295d9ec99ef366
96
- - .git/objects/28/bea3eb33169ff67ce34f82168d7cddc6caa440
97
- - .git/objects/36/f59b31836194f47821bd21060c413f229cf174
98
- - .git/objects/3b/2d1ce9b2f5e05f70403e08798b19cb962d84f4
99
- - .git/objects/3c/79c1d2a5f3149296bd5a84a31f6c1e7df08400
100
- - .git/objects/42/17c3829629b09f6757ee68353d7273920939fb
101
- - .git/objects/43/4d1f35c9811567615eb0e13cd87f461a154e19
102
- - .git/objects/45/b904d8ecd3149f3f16e9b86e917690e0eebef9
103
- - .git/objects/4b/7f07757eb7e9560c7acfac98e2fa5b77da5a5e
104
- - .git/objects/52/ede8cef7c02782dbfa6bc9b080384c58d553fd
105
- - .git/objects/5a/2e88151df3b26c1283119bcd11f0e5c30d18e7
106
- - .git/objects/5a/fb625dbee0c45379a4265db895899efab0cf97
107
- - .git/objects/5b/44011696227f26a7c4d4c5b4b2874b9fe7bf7b
108
- - .git/objects/5e/433b062a857c0497375c6fd621543106005ce8
109
- - .git/objects/63/4f7d3f7733838417bc0fa090139ef05e15a74f
110
- - .git/objects/69/2b527d6ddc2c88d57dd5fc6f36191ac7d7124c
111
- - .git/objects/6c/41bedb7233e5cd29ef3f98982d6adabd0b58f9
112
- - .git/objects/6f/d260879fc3d5afe7d68ef43d4466f2391760dd
113
- - .git/objects/76/6f6a48a18be39f100b6bfe69a9a75c9d9f4690
114
- - .git/objects/7d/4116571ec08a206a391f623ac73912707efaae
115
- - .git/objects/7d/dd252e5bcb58a40d39450280d316c327354755
116
- - .git/objects/7d/e4daf36d50aa32f6ce28e2d00237528fb5e87f
117
- - .git/objects/89/886ddee8d0f5351dd33b70ecbadba7d443d40f
118
- - .git/objects/90/b4678b2544afc9cd536bfb32dd5af301583752
119
- - .git/objects/96/3a646fe4d05c3bcb0b9870bdcc6213422547d3
120
- - .git/objects/97/5b7b15f1b0570bc2d65230ffb6a812cf3b27e1
121
- - .git/objects/a1/89e4eb96aaef371bdd31f693034bcfd1c1475b
122
- - .git/objects/a2/317f0f2f5513287c6b5297d1326ff7696b264f
123
- - .git/objects/ab/f47258a219173a7071b0009ed1aa0b53070eec
124
- - .git/objects/ac/42b393696e320f12b662f5dd9686a10655a9c5
125
- - .git/objects/af/4892fceaaf4ae9e7ebe8fd83a321de6e0632ea
126
- - .git/objects/b9/cf9d7dbe8121ede710d2c19a9f572988463a4d
127
- - .git/objects/bb/1162c1f3474c8380d73f48d8af8567a6fe16b2
128
- - .git/objects/c5/653762ee23dd313126ab500e3c827093e39fcf
129
- - .git/objects/c8/1531972f4d15a3de66df8399ec48c8c5cdef68
130
- - .git/objects/db/b6e045c18c46548458d88661efc638b6f33aca
131
- - .git/objects/dd/c38c6eb601a6755bb6bd98ea4d04b7a035857a
132
- - .git/objects/de/57e7ff9810fd6b3d199bda60880acf87f6c1bb
133
- - .git/objects/de/6565d370577eee92734f8ed1907b46e9498d51
134
- - .git/objects/de/e64a19bfaa35c06cd428fb4ad577332267f370
135
- - .git/objects/e4/9df7e2a93d33bd572e458ac6422e93d2c75bb2
136
- - .git/objects/e5/8db62de9ed9b73b92072850d37754de748e532
137
- - .git/objects/e5/9a6a12400500cf1766d332a2735df85083edf8
138
- - .git/objects/eb/82eeb8ee03b998e468aefd726752a4c2c2ab10
139
- - .git/objects/ec/40c86e224f0744d32992dab3e4e8dfff4e44db
140
- - .git/objects/f4/1a2149b85c693085022dceafbe5a0614f5b74a
141
- - .git/objects/f7/9be5951a5f5229e87a2851944d127110e0f5b1
142
- - .git/objects/fc/2f2fa2516ea0f3f1a58f525ff9054ad23e1d47
143
- - .git/objects/fd/98e0f2c18555906861c26c1f0ee05580096caa
144
- - .git/objects/fe/c84815790fe1587b2cdabdf0f62428e1808963
145
- - .git/objects/ff/b6d7438661c2f47854344676bffd4b9b428b5e
146
- - .git/objects/pack/pack-7aed4e203c2b94a917664d44a6cd37ca4eeecfea.idx
147
- - .git/objects/pack/pack-7aed4e203c2b94a917664d44a6cd37ca4eeecfea.pack
148
- - .git/packed-refs
149
- - .git/refs/heads/master
150
- - .git/refs/remotes/origin/HEAD
151
- - .git/refs/remotes/origin/master
152
- - .git/refs/tags/v1.0.0
153
- - .git/refs/tags/v1.0.2
154
68
  - History.txt
155
69
  - Manifest.txt
156
70
  - PostInstall.txt