Permalink
Browse files

first commit

  • Loading branch information...
0 parents commit 51bcb02d2972fa3465e23d741c2862ef08233aa6 @ahe committed Apr 12, 2009
Showing with 29,759 additions and 0 deletions.
  1. +23 −0 README
  2. +10 −0 Rakefile
  3. +10 −0 app/controllers/application_controller.rb
  4. +73 −0 app/controllers/users_controller.rb
  5. +3 −0 app/helpers/application_helper.rb
  6. +2 −0 app/helpers/users_helper.rb
  7. +5 −0 app/models/pet.rb
  8. +5 −0 app/models/user.rb
  9. +18 −0 app/views/layouts/users.html.erb
  10. +137 −0 app/views/users/index.html.erb
  11. +110 −0 config/boot.rb
  12. +22 −0 config/database.yml
  13. +41 −0 config/environment.rb
  14. +17 −0 config/environments/development.rb
  15. +28 −0 config/environments/production.rb
  16. +28 −0 config/environments/test.rb
  17. +7 −0 config/initializers/backtrace_silencers.rb
  18. +10 −0 config/initializers/inflections.rb
  19. +5 −0 config/initializers/mime_types.rb
  20. +19 −0 config/initializers/new_rails_defaults.rb
  21. +15 −0 config/initializers/session_store.rb
  22. +5 −0 config/locales/en.yml
  23. +45 −0 config/routes.rb
  24. +41 −0 db/migrate/20090412142106_create_users.rb
  25. +38 −0 db/migrate/20090412152333_create_pets.rb
  26. +31 −0 db/schema.rb
  27. +2 −0 doc/README_FOR_APP
  28. +4,154 −0 log/development.log
  29. 0 log/production.log
  30. 0 log/server.log
  31. 0 log/test.log
  32. +30 −0 public/404.html
  33. +30 −0 public/422.html
  34. +30 −0 public/500.html
  35. 0 public/favicon.ico
  36. BIN public/images/jqgrid/search.png
  37. BIN public/images/jqgrid/ui-bg_flat_0_aaaaaa_40x100.png
  38. BIN public/images/jqgrid/ui-bg_flat_55_fbec88_40x100.png
  39. BIN public/images/jqgrid/ui-bg_glass_75_d0e5f5_1x400.png
  40. BIN public/images/jqgrid/ui-bg_glass_85_dfeffc_1x400.png
  41. BIN public/images/jqgrid/ui-bg_glass_95_fef1ec_1x400.png
  42. BIN public/images/jqgrid/ui-bg_gloss-wave_55_5c9ccc_500x100.png
  43. BIN public/images/jqgrid/ui-bg_inset-hard_100_f5f8f9_1x100.png
  44. BIN public/images/jqgrid/ui-bg_inset-hard_100_fcfdfd_1x100.png
  45. BIN public/images/jqgrid/ui-icons_217bc0_256x240.png
  46. BIN public/images/jqgrid/ui-icons_2e83ff_256x240.png
  47. BIN public/images/jqgrid/ui-icons_469bdd_256x240.png
  48. BIN public/images/jqgrid/ui-icons_6da8d5_256x240.png
  49. BIN public/images/jqgrid/ui-icons_cd0a0a_256x240.png
  50. BIN public/images/jqgrid/ui-icons_d8e7f3_256x240.png
  51. BIN public/images/jqgrid/ui-icons_f9bd01_256x240.png
  52. BIN public/images/rails.png
  53. +275 −0 public/index.html
  54. +2 −0 public/javascripts/application.js
  55. +963 −0 public/javascripts/controls.js
  56. +973 −0 public/javascripts/dragdrop.js
  57. +1,128 −0 public/javascripts/effects.js
  58. +345 −0 public/javascripts/jqgrid/JsonXml.js
  59. +1,656 −0 public/javascripts/jqgrid/grid.base.js
  60. +445 −0 public/javascripts/jqgrid/grid.celledit.js
  61. +418 −0 public/javascripts/jqgrid/grid.common.js
  62. +437 −0 public/javascripts/jqgrid/grid.custom.js
  63. +1,018 −0 public/javascripts/jqgrid/grid.formedit.js
  64. +132 −0 public/javascripts/jqgrid/grid.import.js
  65. +194 −0 public/javascripts/jqgrid/grid.inlinedit.js
  66. +117 −0 public/javascripts/jqgrid/grid.locale-en.js
  67. +64 −0 public/javascripts/jqgrid/grid.postext.js
  68. +78 −0 public/javascripts/jqgrid/grid.setcolumns.js
  69. +236 −0 public/javascripts/jqgrid/grid.subgrid.js
  70. +105 −0 public/javascripts/jqgrid/grid.tbltogrid.js
  71. +435 −0 public/javascripts/jqgrid/grid.treegrid.js
  72. +52 −0 public/javascripts/jqgrid/jqDnR.js
  73. +69 −0 public/javascripts/jqgrid/jqModal.js
  74. +434 −0 public/javascripts/jqgrid/jquery.fmatter.js
  75. +67 −0 public/javascripts/jqgrid/jquery.jqGrid.js
  76. +19 −0 public/javascripts/jqgrid/jquery.js
  77. +80 −0 public/javascripts/jqgrid/jquery.layout.js
  78. +383 −0 public/javascripts/jqgrid/jquery.tablednd.js
  79. +216 −0 public/javascripts/jqgrid/jquery.ui.all.js
  80. +104 −0 public/javascripts/jqgrid/json2.js
  81. +28 −0 public/javascripts/jqgrid/tablednd.js
  82. +4,320 −0 public/javascripts/prototype.js
  83. +5 −0 public/robots.txt
  84. +423 −0 public/stylesheets/jqgrid/ui.all.css
  85. +94 −0 public/stylesheets/jqgrid/ui.jqgrid.css
  86. +54 −0 public/stylesheets/scaffold.css
  87. +4 −0 script/about
  88. +3 −0 script/console
  89. +3 −0 script/dbconsole
  90. +3 −0 script/destroy
  91. +3 −0 script/generate
  92. +3 −0 script/performance/benchmarker
  93. +3 −0 script/performance/profiler
  94. +3 −0 script/plugin
  95. +3 −0 script/runner
  96. +3 −0 script/server
  97. +9 −0 test/fixtures/pets.yml
  98. +15 −0 test/fixtures/users.yml
  99. +45 −0 test/functional/users_controller_test.rb
  100. +9 −0 test/performance/browsing_test.rb
  101. +38 −0 test/test_helper.rb
  102. +4 −0 test/unit/helpers/users_helper_test.rb
  103. +8 −0 test/unit/pet_test.rb
  104. +8 −0 test/unit/user_test.rb
  105. +20 −0 vendor/plugins/2dcjqgrid/MIT-LICENSE
  106. +27 −0 vendor/plugins/2dcjqgrid/README
  107. +23 −0 vendor/plugins/2dcjqgrid/Rakefile
  108. +1 −0 vendor/plugins/2dcjqgrid/init.rb
  109. +5 −0 vendor/plugins/2dcjqgrid/install.rb
  110. +235 −0 vendor/plugins/2dcjqgrid/lib/2dc_jqgrid.rb
  111. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/search.png
  112. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-bg_flat_0_aaaaaa_40x100.png
  113. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-bg_flat_55_fbec88_40x100.png
  114. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-bg_glass_75_d0e5f5_1x400.png
  115. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-bg_glass_85_dfeffc_1x400.png
  116. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-bg_glass_95_fef1ec_1x400.png
  117. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-bg_gloss-wave_55_5c9ccc_500x100.png
  118. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-bg_inset-hard_100_f5f8f9_1x100.png
  119. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-bg_inset-hard_100_fcfdfd_1x100.png
  120. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-icons_217bc0_256x240.png
  121. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-icons_2e83ff_256x240.png
  122. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-icons_469bdd_256x240.png
  123. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-icons_6da8d5_256x240.png
  124. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-icons_cd0a0a_256x240.png
  125. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-icons_d8e7f3_256x240.png
  126. BIN vendor/plugins/2dcjqgrid/public/images/jqgrid/ui-icons_f9bd01_256x240.png
  127. +345 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/JsonXml.js
  128. +1,656 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.base.js
  129. +445 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.celledit.js
  130. +418 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.common.js
  131. +437 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.custom.js
  132. +1,018 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.formedit.js
  133. +132 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.import.js
  134. +194 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.inlinedit.js
  135. +117 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.locale-en.js
  136. +64 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.postext.js
  137. +78 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.setcolumns.js
  138. +236 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.subgrid.js
  139. +105 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.tbltogrid.js
  140. +435 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/grid.treegrid.js
  141. +52 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/jqDnR.js
  142. +69 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/jqModal.js
  143. +434 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/jquery.fmatter.js
  144. +67 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/jquery.jqGrid.js
  145. +19 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/jquery.js
  146. +80 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/jquery.layout.js
  147. +383 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/jquery.tablednd.js
  148. +216 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/jquery.ui.all.js
  149. +104 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/json2.js
  150. +28 −0 vendor/plugins/2dcjqgrid/public/javascripts/jqgrid/tablednd.js
  151. +423 −0 vendor/plugins/2dcjqgrid/public/stylesheets/jqgrid/ui.all.css
  152. +94 −0 vendor/plugins/2dcjqgrid/public/stylesheets/jqgrid/ui.jqgrid.css
  153. +4 −0 vendor/plugins/2dcjqgrid/tasks/2dc_jqgrid_tasks.rake
  154. +8 −0 vendor/plugins/2dcjqgrid/test/2dc_jqgrid_test.rb
  155. +3 −0 vendor/plugins/2dcjqgrid/test/test_helper.rb
  156. +1 −0 vendor/plugins/2dcjqgrid/uninstall.rb
  157. +55 −0 vendor/plugins/squirrel/README
  158. +41 −0 vendor/plugins/squirrel/Rakefile
  159. +17 −0 vendor/plugins/squirrel/init.rb
  160. +36 −0 vendor/plugins/squirrel/lib/extensions.rb
  161. +81 −0 vendor/plugins/squirrel/lib/paginator.rb
  162. +519 −0 vendor/plugins/squirrel/lib/squirrel.rb
  163. +18 −0 vendor/plugins/squirrel/test/database.yml
  164. +24 −0 vendor/plugins/squirrel/test/fixtures/addresses.yml
  165. +9 −0 vendor/plugins/squirrel/test/fixtures/companies.yml
  166. +35 −0 vendor/plugins/squirrel/test/fixtures/posts.yml
  167. +30 −0 vendor/plugins/squirrel/test/fixtures/posts_tags.yml
  168. +9 −0 vendor/plugins/squirrel/test/fixtures/tags.yml
  169. +15 −0 vendor/plugins/squirrel/test/fixtures/users.yml
  170. +36 −0 vendor/plugins/squirrel/test/schema.rb
  171. +290 −0 vendor/plugins/squirrel/test/squirrel_test.rb
  172. +38 −0 vendor/plugins/squirrel/test/test_helper.rb
23 README
@@ -0,0 +1,23 @@
+2dcJqgrid demo application
+==========================
+
+This Rails demo app shows how to use my jQuery grid plugin.
+
+$ git clone git://github.com/ahe/jqgrid_demo_app.git
+$ cd jqgrid_demo_app
+$ rake db:migrate
+$ ./script/server
+
+Open http://localhost:3000/users in your favorite web browser.
+
+
+Documentation & live demo are available at http://www.2dconcept.com/jquery-grid-rails-plugin.html
+
+Enjoy!
+
+
+
+Copyright (c) 2009 Anthony Heukmes, released under the MIT license
+
+My Rails blog : http://2dconcept.com
+My Twitter account : http://twitter.com/2dc
@@ -0,0 +1,10 @@
+# Add your own tasks in files placed in lib/tasks ending in .rake,
+# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
+
+require(File.join(File.dirname(__FILE__), 'config', 'boot'))
+
+require 'rake'
+require 'rake/testtask'
+require 'rake/rdoctask'
+
+require 'tasks/rails'
@@ -0,0 +1,10 @@
+# Filters added to this controller apply to all controllers in the application.
+# Likewise, all the methods added will be available for all controllers.
+
+class ApplicationController < ActionController::Base
+ helper :all # include all helpers, all the time
+ protect_from_forgery # See ActionController::RequestForgeryProtection for details
+
+ # Scrub sensitive parameters from your log
+ # filter_parameter_logging :password
+end
@@ -0,0 +1,73 @@
+class UsersController < ApplicationController
+
+ protect_from_forgery :except => [:post_data]
+
+ # Don't forget to edit routes if you're using RESTful routing (see config/routes.rb)
+ def pets
+
+ # Queries are here for clarity purposes in this demo
+ # It's of course a better idea to create a method in your model
+
+ if params[:id].present?
+ pets = User.find(params[:id]).pets.find(:all) do
+ paginate :page => params[:page], :per_page => params[:rows]
+ order_by "#{params[:sidx]} #{params[:sord]}"
+ end
+ total_entries = pets.total_entries
+ else
+ pets = []
+ total_entries = 0
+ end
+ respond_to do |format|
+ # Fields order is important in the to_jqgrid_json method (in this case : [:id,:name])
+ # It must be the same as display order in your datagrid
+ format.json { render :json => pets.to_jqgrid_json([:id,:name], params[:page], params[:rows], total_entries) }
+ end
+ end
+
+ # Don't forget to edit routes if you're using RESTful routing (see config/routes.rb)
+ def post_data
+
+ # It's of course your role to add security / validation here
+
+ if params[:oper] == "del"
+ User.find(params[:id]).destroy
+ else
+ user_params = { :pseudo => params[:pseudo], :firstname => params[:firstname], :lastname => params[:lastname],
+ :email => params[:email], :role => params[:role] }
+ if params[:id] == "_empty"
+ User.create(user_params)
+ else
+ User.find(params[:id]).update_attributes(user_params)
+ end
+ end
+ render :nothing => true
+ end
+
+ def index
+
+ # Queries are here for clarity purposes in this demo
+ # It's of course a better idea to create a method in your model
+
+ users = User.find(:all) do
+ if params[:_search] == "true"
+ pseudo =~ "%#{params[:pseudo]}%" if params[:pseudo].present?
+ firstname =~ "%#{params[:firstname]}%" if params[:firstname].present?
+ lastname =~ "%#{params[:lastname]}%" if params[:lastname].present?
+ email =~ "%#{params[:email]}%" if params[:email].present?
+ role =~ "%#{params[:role]}%" if params[:role].present?
+ end
+ paginate :page => params[:page], :per_page => params[:rows]
+ order_by "#{params[:sidx]} #{params[:sord]}"
+ end
+
+ respond_to do |format|
+ format.html
+ # Fields order is important in the to_jqgrid_json method (in this case : [:id,:name])
+ # It must be the same as display order in your datagrid
+ format.json { render :json => users.to_jqgrid_json([:id,:pseudo,:firstname,:lastname,:email,:role],
+ params[:page], params[:rows], users.total_entries) }
+ end
+ end
+
+end
@@ -0,0 +1,3 @@
+# Methods added to this helper will be available to all templates in the application.
+module ApplicationHelper
+end
@@ -0,0 +1,2 @@
+module UsersHelper
+end
@@ -0,0 +1,5 @@
+class Pet < ActiveRecord::Base
+
+ belongs_to :user
+
+end
@@ -0,0 +1,5 @@
+class User < ActiveRecord::Base
+
+ has_many :pets
+
+end
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
+ <title>Users: <%= controller.action_name %></title>
+ <%= stylesheet_link_tag 'scaffold' %>
+ <%= jqgrid_stylesheets %>
+ <%= jqgrid_javascripts %>
+</head>
+<body>
+
+<p style="color: green"><%= flash[:notice] %></p>
+<%= yield %>
+
+</body>
+</html>
@@ -0,0 +1,137 @@
+<h1>Simple DataGrid</h1>
+<%= jqgrid("Football Players", "players", "/users",
+ [
+ { :field => "id", :label => "ID", :width => 35, :resizable => false },
+ { :field => "pseudo", :label => "Pseudo" },
+ { :field => "firstname", :label => "Firstname" },
+ { :field => "lastname", :label => "Lastname" },
+ { :field => "email", :label => "Email" },
+ { :field => "role", :label => "Role" }
+ ]
+) %>
+<br/>
+<hr/>
+<br/>
+<h1>Simple DataGrid with selection link/button</h1>
+<script type="text/javascript">
+
+ function handleSelection(id) {
+ alert('ID selected : ' + id);
+ }
+
+</script>
+<%= jqgrid("Football Players", "players_2", "/users",
+ [
+ { :field => "id", :label => "ID", :width => 35, :resizable => false },
+ { :field => "pseudo", :label => "Pseudo" },
+ { :field => "firstname", :label => "Firstname" },
+ { :field => "lastname", :label => "Lastname" },
+ { :field => "email", :label => "Email" },
+ { :field => "role", :label => "Role" }
+ ],
+ { :selection_handler => "handleSelection" }
+) %>
+<!-- The ID of this button is important, it must be jqgrid ID (players_2) + _select_button -->
+<a href="#" id="players_2_select_button">Get ID of selected row</a>
+<br/>
+<hr/>
+<br/>
+<h1>Simple DataGrid with direct selection</h1>
+<%= jqgrid("Football Players", "players_3", "/users",
+ [
+ { :field => "id", :label => "ID", :width => 35, :resizable => false },
+ { :field => "pseudo", :label => "Pseudo" },
+ { :field => "firstname", :label => "Firstname" },
+ { :field => "lastname", :label => "Lastname" },
+ { :field => "email", :label => "Email" },
+ { :field => "role", :label => "Role" }
+ ],
+ { :selection_handler => "handleSelection", :direct_selection => true }
+) %>
+<br/>
+<hr/>
+<br/>
+<h1>Simple DataGrid with multiple selections</h1>
+<%= jqgrid("Football Players", "players_4", "/users",
+ [
+ { :field => "id", :label => "ID", :width => 35, :resizable => false },
+ { :field => "pseudo", :label => "Pseudo" },
+ { :field => "firstname", :label => "Firstname" },
+ { :field => "lastname", :label => "Lastname" },
+ { :field => "email", :label => "Email" },
+ { :field => "role", :label => "Role" }
+ ],
+ { :selection_handler => "handleSelection", :multi_selection => true }
+) %>
+<!-- The ID of this button is important, it must be jqgrid ID (players_4) + _select_button -->
+<a href="#" id="players_4_select_button">Get IDs of selected rows</a>
+<br/>
+<hr/>
+<br/>
+<h1>Simple DataGrid with master details</h1>
+<%= jqgrid("Football Players", "players_5", "/users",
+ [
+ { :field => "id", :label => "ID", :width => 35, :resizable => false },
+ { :field => "pseudo", :label => "Pseudo" },
+ { :field => "firstname", :label => "Firstname" },
+ { :field => "lastname", :label => "Lastname" },
+ { :field => "email", :label => "Email" },
+ { :field => "role", :label => "Role" }
+ ],
+ { :master_details => true, :details_url => "/users/pets", :details_caption => "Pets" }
+) %>
+<br/>
+<!-- The ID of the details grid is important, it must master ID (players_5) + _details -->
+<%= jqgrid("Pets", "players_5_details", "/users/pets",
+ [
+ { :field => "id", :label => "ID", :width => 35, :resizable => false },
+ { :field => "name", :label => "Name", :width => 500, :align => 'center' }
+ ]
+) %>
+<br/>
+<hr/>
+<br/>
+<h1>Data manipulation with inline editing</h1>
+<%= jqgrid("Football Players", "players_6", "/users",
+ [
+ { :field => "id", :label => "ID", :width => 35, :resizable => false },
+ { :field => "pseudo", :label => "Pseudo", :editable => true },
+ { :field => "firstname", :label => "Firstname", :editable => true },
+ { :field => "lastname", :label => "Lastname", :editable => true },
+ { :field => "email", :label => "Email", :editable => true },
+ { :field => "role", :label => "Role", :editable => true }
+ ],
+ { :add => true, :edit => true, :inline_edit => true, :delete => true, :edit_url => "/users/post_data" }
+) %>
+<br/>
+<hr/>
+<br/>
+<h1>Data manipulation with modal editing (+ navigation)</h1>
+<%= jqgrid("Football Players", "players_7", "/users",
+ [
+ { :field => "id", :label => "ID", :width => 35, :resizable => false },
+ { :field => "pseudo", :label => "Pseudo", :editable => true },
+ { :field => "firstname", :label => "Firstname", :editable => true },
+ { :field => "lastname", :label => "Lastname", :editable => true },
+ { :field => "email", :label => "Email", :editable => true },
+ { :field => "role", :label => "Role", :editable => true }
+ ],
+ { :add => true, :edit => true, :inline_edit => false, :delete => true, :edit_url => "/users/post_data" }
+) %>
+<br/>
+<hr/>
+<br/>
+<h1>Data manipulation with various input types</h1>
+<%= jqgrid("Football Players", "players_8", "/users",
+ [
+ { :field => "id", :label => "ID", :width => 35, :resizable => false },
+ { :field => "pseudo", :label => "Pseudo", :editable => true },
+ { :field => "firstname", :label => "Firstname", :editable => true, :edittype => "checkbox",
+ :editoptions => { :value => "Yes:No" } },
+ { :field => "lastname", :label => "Lastname", :editable => true },
+ { :field => "email", :label => "Email", :editable => true, :edittype => "textarea", :editoptions => { :rows => 3, :cols => 30 } },
+ { :field => "role", :label => "Role", :editable => true, :edittype => "select",
+ :editoptions => { :value => [["admin","admin"], ["player", "player"], ["defender","defender"]] } }
+ ],
+ { :add => true, :edit => true, :inline_edit => true, :delete => true, :edit_url => "/users/post_data" }
+) %>
Oops, something went wrong.

0 comments on commit 51bcb02

Please sign in to comment.