wice_grid 3.6.2 → 4.1.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.
Files changed (332) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +41 -0
  3. data/.circleci/run-build-locally.sh +7 -0
  4. data/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
  5. data/.gitignore +5 -2
  6. data/Appraisals +11 -0
  7. data/CHANGELOG.md +38 -1
  8. data/Gemfile.lock +299 -0
  9. data/README.md +77 -34
  10. data/config/locales/ja.yml +3 -3
  11. data/gemfiles/rails_5.0.gemfile +7 -0
  12. data/gemfiles/rails_5.0.gemfile.lock +291 -0
  13. data/gemfiles/rails_5.1.gemfile +7 -0
  14. data/gemfiles/rails_5.1.gemfile.lock +291 -0
  15. data/gemfiles/rails_5.2.gemfile +7 -0
  16. data/gemfiles/rails_5.2.gemfile.lock +299 -0
  17. data/lib/wice/columns.rb +13 -6
  18. data/lib/wice/columns/column_integer.rb +11 -1
  19. data/lib/wice/columns/column_rails_datetime_helper.rb +3 -2
  20. data/lib/wice/columns/column_range.rb +6 -4
  21. data/lib/wice/grid_renderer.rb +23 -7
  22. data/lib/wice/helpers/bs_calendar_helpers.rb +9 -1
  23. data/lib/wice/helpers/wice_grid_view_helpers.rb +6 -6
  24. data/lib/wice/wice_grid_controller.rb +7 -5
  25. data/lib/wice/wice_grid_core_ext.rb +5 -1
  26. data/lib/wice/wice_grid_misc.rb +1 -1
  27. data/lib/wice_grid.rb +86 -59
  28. data/spec/acceptance_helper.rb +58 -0
  29. data/spec/features/action_column_request_spec.rb +280 -0
  30. data/spec/features/adding_rows_request_spec.rb +21 -0
  31. data/spec/features/all_records_request_spec.rb +18 -0
  32. data/spec/features/auto_reloads2_request_spec.rb +349 -0
  33. data/spec/features/auto_reloads3_request_spec.rb +130 -0
  34. data/spec/features/auto_reloads_request_spec.rb +348 -0
  35. data/spec/features/basics1_request_spec.rb +11 -0
  36. data/spec/features/basics2_request_spec.rb +10 -0
  37. data/spec/features/basics3_request_spec.rb +29 -0
  38. data/spec/features/basics4_request_spec.rb +19 -0
  39. data/spec/features/basics5_request_spec.rb +13 -0
  40. data/spec/features/basics6_request_spec.rb +22 -0
  41. data/spec/features/blockless_column_definition_spec.rb +27 -0
  42. data/spec/features/buttons_request_spec.rb +172 -0
  43. data/spec/features/csv_and_detached_filters_spec.rb +10 -0
  44. data/spec/features/csv_export_request_spec.rb +13 -0
  45. data/spec/features/custom_filter_params_request_spec.rb +29 -0
  46. data/spec/features/custom_filters1_request_spec.rb +155 -0
  47. data/spec/features/custom_filters2_request_spec.rb +53 -0
  48. data/spec/features/custom_filters3_request_spec.rb +50 -0
  49. data/spec/features/custom_filters4_request_spec.rb +13 -0
  50. data/spec/features/custom_ordering_on_calculated_request_spec.rb +30 -0
  51. data/spec/features/custom_ordering_request_spec.rb +36 -0
  52. data/spec/features/custom_ordering_with_arel_request_spec.rb +36 -0
  53. data/spec/features/custom_ordering_with_proc_request_spec.rb +44 -0
  54. data/spec/features/custom_ordering_with_ruby_request_spec.rb +30 -0
  55. data/spec/features/dates_request_spec.rb +56 -0
  56. data/spec/features/detached_filters_spec.rb +10 -0
  57. data/spec/features/detached_filters_two_grids_spec.rb +127 -0
  58. data/spec/features/disable_all_filters_spec.rb +22 -0
  59. data/spec/features/hiding_checkboxes_in_action_column_request_spec.rb +294 -0
  60. data/spec/features/integration_with_application_view_request_spec.rb +43 -0
  61. data/spec/features/integration_with_forms_request_spec.rb +141 -0
  62. data/spec/features/joining_tables_spec.rb +40 -0
  63. data/spec/features/localization_request_spec.rb +24 -0
  64. data/spec/features/many_grids_on_page_request_spec.rb +104 -0
  65. data/spec/features/negation_request_spec.rb +25 -0
  66. data/spec/features/no_records_request_spec.rb +26 -0
  67. data/spec/features/numeric_filters_request_spec.rb +10 -0
  68. data/spec/features/resultset_processings2_request_spec.rb +27 -0
  69. data/spec/features/resultset_processings_request_spec.rb +30 -0
  70. data/spec/features/saved_queries_request_spec.rb +120 -0
  71. data/spec/features/shared.rb +1005 -0
  72. data/spec/features/shared_detached_filters.rb +158 -0
  73. data/spec/features/styling_spec.rb +15 -0
  74. data/spec/features/two_associations_spec.rb +48 -0
  75. data/spec/features/upper_pagination_panel_request_spec.rb +23 -0
  76. data/spec/features/when_filtered_spec.rb +209 -0
  77. data/spec/fixtures/.gitkeep +0 -0
  78. data/spec/fixtures/companies.yml +21 -0
  79. data/spec/fixtures/priorities.yml +31 -0
  80. data/spec/fixtures/project_roles.yml +25 -0
  81. data/spec/fixtures/projects.yml +22 -0
  82. data/spec/fixtures/statuses.yml +55 -0
  83. data/spec/fixtures/tasks.yml +751 -0
  84. data/spec/fixtures/tasks_users.yml +2089 -0
  85. data/spec/fixtures/users.yml +61 -0
  86. data/spec/fixtures/versions.yml +78 -0
  87. data/spec/models/company_spec.rb +6 -0
  88. data/spec/models/priority_spec.rb +6 -0
  89. data/spec/models/project_spec.rb +11 -0
  90. data/spec/models/status_spec.rb +6 -0
  91. data/spec/models/task_spec.rb +12 -0
  92. data/spec/models/user_project_participation_spec.rb +7 -0
  93. data/spec/models/user_spec.rb +12 -0
  94. data/spec/models/version_spec.rb +5 -0
  95. data/spec/rails_helper.rb +15 -0
  96. data/spec/spec_helper.rb +10 -9
  97. data/spec/support/test_app/Rakefile +3 -0
  98. data/spec/support/test_app/app/assets/javascripts/application.js +20 -0
  99. data/spec/support/test_app/app/assets/javascripts/common.js.coffee +6 -0
  100. data/spec/support/test_app/app/assets/javascripts/jquery.ui.datepicker.locales.js +56 -0
  101. data/spec/support/test_app/app/assets/stylesheets/adding_rows.scss +3 -0
  102. data/spec/support/test_app/app/assets/stylesheets/application.scss +46 -0
  103. data/spec/support/test_app/app/assets/stylesheets/csv_and_detached_filters.scss +3 -0
  104. data/spec/support/test_app/app/assets/stylesheets/many_grids_on_page.scss +3 -0
  105. data/spec/support/test_app/app/controllers/action_column_controller.rb +15 -0
  106. data/spec/support/test_app/app/controllers/adding_rows_controller.rb +14 -0
  107. data/spec/support/test_app/app/controllers/all_records_controller.rb +14 -0
  108. data/spec/support/test_app/app/controllers/application_controller.rb +99 -0
  109. data/spec/support/test_app/app/controllers/auto_reloads2_controller.rb +14 -0
  110. data/spec/support/test_app/app/controllers/auto_reloads3_controller.rb +20 -0
  111. data/spec/support/test_app/app/controllers/auto_reloads_controller.rb +14 -0
  112. data/spec/support/test_app/app/controllers/basics1_controller.rb +6 -0
  113. data/spec/support/test_app/app/controllers/basics2_controller.rb +6 -0
  114. data/spec/support/test_app/app/controllers/basics3_controller.rb +6 -0
  115. data/spec/support/test_app/app/controllers/basics4_controller.rb +6 -0
  116. data/spec/support/test_app/app/controllers/basics5_controller.rb +6 -0
  117. data/spec/support/test_app/app/controllers/basics6_controller.rb +11 -0
  118. data/spec/support/test_app/app/controllers/blockless_column_definition_controller.rb +6 -0
  119. data/spec/support/test_app/app/controllers/buttons_controller.rb +6 -0
  120. data/spec/support/test_app/app/controllers/csv_and_detached_filters_controller.rb +13 -0
  121. data/spec/support/test_app/app/controllers/csv_export_controller.rb +28 -0
  122. data/spec/support/test_app/app/controllers/custom_filter_params_controller.rb +6 -0
  123. data/spec/support/test_app/app/controllers/custom_filters1_controller.rb +9 -0
  124. data/spec/support/test_app/app/controllers/custom_filters2_controller.rb +14 -0
  125. data/spec/support/test_app/app/controllers/custom_filters3_controller.rb +12 -0
  126. data/spec/support/test_app/app/controllers/custom_filters4_controller.rb +12 -0
  127. data/spec/support/test_app/app/controllers/custom_ordering_controller.rb +18 -0
  128. data/spec/support/test_app/app/controllers/custom_ordering_on_calculated_controller.rb +6 -0
  129. data/spec/support/test_app/app/controllers/custom_ordering_with_arel_controller.rb +18 -0
  130. data/spec/support/test_app/app/controllers/custom_ordering_with_proc_controller.rb +11 -0
  131. data/spec/support/test_app/app/controllers/custom_ordering_with_ruby_controller.rb +6 -0
  132. data/spec/support/test_app/app/controllers/dates_controller.rb +8 -0
  133. data/spec/support/test_app/app/controllers/detached_filters_controller.rb +6 -0
  134. data/spec/support/test_app/app/controllers/detached_filters_two_grids_controller.rb +7 -0
  135. data/spec/support/test_app/app/controllers/disable_all_filters_controller.rb +6 -0
  136. data/spec/support/test_app/app/controllers/hiding_checkboxes_in_action_column_controller.rb +13 -0
  137. data/spec/support/test_app/app/controllers/home_controller.rb +3 -0
  138. data/spec/support/test_app/app/controllers/integration_with_application_view_controller.rb +16 -0
  139. data/spec/support/test_app/app/controllers/integration_with_forms_controller.rb +11 -0
  140. data/spec/support/test_app/app/controllers/joining_tables_controller.rb +11 -0
  141. data/spec/support/test_app/app/controllers/localization_controller.rb +26 -0
  142. data/spec/support/test_app/app/controllers/many_grids_on_page_controller.rb +7 -0
  143. data/spec/support/test_app/app/controllers/negation_controller.rb +14 -0
  144. data/spec/support/test_app/app/controllers/no_records_controller.rb +8 -0
  145. data/spec/support/test_app/app/controllers/null_values_controller.rb +10 -0
  146. data/spec/support/test_app/app/controllers/numeric_filters_controller.rb +6 -0
  147. data/spec/support/test_app/app/controllers/queries_controller.rb +4 -0
  148. data/spec/support/test_app/app/controllers/resultset_processings2_controller.rb +29 -0
  149. data/spec/support/test_app/app/controllers/resultset_processings_controller.rb +30 -0
  150. data/spec/support/test_app/app/controllers/saved_queries_controller.rb +14 -0
  151. data/spec/support/test_app/app/controllers/styling_controller.rb +7 -0
  152. data/spec/support/test_app/app/controllers/tasks_controller.rb +14 -0
  153. data/spec/support/test_app/app/controllers/two_associations_controller.rb +6 -0
  154. data/spec/support/test_app/app/controllers/upper_pagination_panel_controller.rb +6 -0
  155. data/spec/support/test_app/app/controllers/when_filtered_controller.rb +6 -0
  156. data/spec/support/test_app/app/helpers/application_helper.rb +82 -0
  157. data/spec/support/test_app/app/mailers/.gitkeep +0 -0
  158. data/spec/support/test_app/app/models/.gitkeep +0 -0
  159. data/spec/support/test_app/app/models/company.rb +5 -0
  160. data/spec/support/test_app/app/models/populate.rb +84 -0
  161. data/spec/support/test_app/app/models/priority.rb +10 -0
  162. data/spec/support/test_app/app/models/project.rb +14 -0
  163. data/spec/support/test_app/app/models/project_role.rb +3 -0
  164. data/spec/support/test_app/app/models/status.rb +10 -0
  165. data/spec/support/test_app/app/models/task.rb +11 -0
  166. data/spec/support/test_app/app/models/to_dropdown_mixin.rb +16 -0
  167. data/spec/support/test_app/app/models/user.rb +8 -0
  168. data/spec/support/test_app/app/models/user_project_participation.rb +6 -0
  169. data/spec/support/test_app/app/models/version.rb +6 -0
  170. data/spec/support/test_app/app/views/action_column/_grid.html.erb +35 -0
  171. data/spec/support/test_app/app/views/action_column/index.html.haml +45 -0
  172. data/spec/support/test_app/app/views/adding_rows/_grid.html.erb +58 -0
  173. data/spec/support/test_app/app/views/adding_rows/index.html.haml +37 -0
  174. data/spec/support/test_app/app/views/all_records/_grid.html.erb +30 -0
  175. data/spec/support/test_app/app/views/all_records/index.html.haml +12 -0
  176. data/spec/support/test_app/app/views/auto_reloads/_grid.html.erb +32 -0
  177. data/spec/support/test_app/app/views/auto_reloads/index.html.haml +15 -0
  178. data/spec/support/test_app/app/views/auto_reloads2/_grid.html.erb +32 -0
  179. data/spec/support/test_app/app/views/auto_reloads2/index.html.haml +65 -0
  180. data/spec/support/test_app/app/views/auto_reloads3/_grid.html.erb +25 -0
  181. data/spec/support/test_app/app/views/auto_reloads3/index.html.haml +78 -0
  182. data/spec/support/test_app/app/views/basics1/_grid.html.erb +26 -0
  183. data/spec/support/test_app/app/views/basics1/index.html.haml +13 -0
  184. data/spec/support/test_app/app/views/basics2/_grid.html.erb +27 -0
  185. data/spec/support/test_app/app/views/basics2/index.html.haml +12 -0
  186. data/spec/support/test_app/app/views/basics3/_grid.html.erb +28 -0
  187. data/spec/support/test_app/app/views/basics3/index.html.haml +13 -0
  188. data/spec/support/test_app/app/views/basics4/_grid.html.erb +21 -0
  189. data/spec/support/test_app/app/views/basics4/index.html.haml +12 -0
  190. data/spec/support/test_app/app/views/basics5/_grid.html.erb +19 -0
  191. data/spec/support/test_app/app/views/basics5/index.html.haml +12 -0
  192. data/spec/support/test_app/app/views/basics6/_grid.html.erb +19 -0
  193. data/spec/support/test_app/app/views/basics6/index.html.haml +23 -0
  194. data/spec/support/test_app/app/views/blockless_column_definition/_grid.html.erb +19 -0
  195. data/spec/support/test_app/app/views/blockless_column_definition/index.html.haml +15 -0
  196. data/spec/support/test_app/app/views/buttons/_grid.html.erb +20 -0
  197. data/spec/support/test_app/app/views/buttons/index.html.haml +30 -0
  198. data/spec/support/test_app/app/views/csv_and_detached_filters/_grid.html.erb +23 -0
  199. data/spec/support/test_app/app/views/csv_and_detached_filters/index.html.haml +58 -0
  200. data/spec/support/test_app/app/views/csv_export/_projects_grid.html.erb +17 -0
  201. data/spec/support/test_app/app/views/csv_export/_tasks_grid.html.erb +43 -0
  202. data/spec/support/test_app/app/views/csv_export/index.html.haml +90 -0
  203. data/spec/support/test_app/app/views/custom_filter_params/_grid.html.erb +12 -0
  204. data/spec/support/test_app/app/views/custom_filter_params/index.html.haml +12 -0
  205. data/spec/support/test_app/app/views/custom_filters1/_g1.html.erb +8 -0
  206. data/spec/support/test_app/app/views/custom_filters1/_g2.html.erb +9 -0
  207. data/spec/support/test_app/app/views/custom_filters1/_g3.html.erb +9 -0
  208. data/spec/support/test_app/app/views/custom_filters1/_g4.html.erb +8 -0
  209. data/spec/support/test_app/app/views/custom_filters1/index.html.haml +30 -0
  210. data/spec/support/test_app/app/views/custom_filters2/_grid.html.erb +30 -0
  211. data/spec/support/test_app/app/views/custom_filters2/index.html.haml +41 -0
  212. data/spec/support/test_app/app/views/custom_filters3/_grid.html.erb +18 -0
  213. data/spec/support/test_app/app/views/custom_filters3/index.html.haml +16 -0
  214. data/spec/support/test_app/app/views/custom_filters4/_grid.html.erb +20 -0
  215. data/spec/support/test_app/app/views/custom_filters4/index.html.haml +12 -0
  216. data/spec/support/test_app/app/views/custom_ordering/_grid.html.erb +10 -0
  217. data/spec/support/test_app/app/views/custom_ordering/index.html.haml +24 -0
  218. data/spec/support/test_app/app/views/custom_ordering_on_calculated/_grid.html.erb +14 -0
  219. data/spec/support/test_app/app/views/custom_ordering_on_calculated/index.html.haml +23 -0
  220. data/spec/support/test_app/app/views/custom_ordering_with_arel/_grid.html.erb +10 -0
  221. data/spec/support/test_app/app/views/custom_ordering_with_arel/index.html.haml +24 -0
  222. data/spec/support/test_app/app/views/custom_ordering_with_proc/_grid.html.erb +10 -0
  223. data/spec/support/test_app/app/views/custom_ordering_with_proc/index.html.haml +21 -0
  224. data/spec/support/test_app/app/views/custom_ordering_with_ruby/_grid.html.erb +10 -0
  225. data/spec/support/test_app/app/views/custom_ordering_with_ruby/index.html.haml +23 -0
  226. data/spec/support/test_app/app/views/dates/_grid.html.erb +25 -0
  227. data/spec/support/test_app/app/views/dates/index.html.haml +52 -0
  228. data/spec/support/test_app/app/views/detached_filters/_grid.html.erb +23 -0
  229. data/spec/support/test_app/app/views/detached_filters/index.html.haml +79 -0
  230. data/spec/support/test_app/app/views/detached_filters_two_grids/_grid.html.erb +23 -0
  231. data/spec/support/test_app/app/views/detached_filters_two_grids/index.html.haml +85 -0
  232. data/spec/support/test_app/app/views/disable_all_filters/_grid.html.erb +21 -0
  233. data/spec/support/test_app/app/views/disable_all_filters/index.html.haml +14 -0
  234. data/spec/support/test_app/app/views/hiding_checkboxes_in_action_column/_grid.html.erb +34 -0
  235. data/spec/support/test_app/app/views/hiding_checkboxes_in_action_column/index.html.haml +32 -0
  236. data/spec/support/test_app/app/views/integration_with_application_view/_grid.html.erb +27 -0
  237. data/spec/support/test_app/app/views/integration_with_application_view/index.html.haml +33 -0
  238. data/spec/support/test_app/app/views/integration_with_forms/_grid.html.erb +23 -0
  239. data/spec/support/test_app/app/views/integration_with_forms/index.html.haml +18 -0
  240. data/spec/support/test_app/app/views/joining_tables/_grid.html.erb +23 -0
  241. data/spec/support/test_app/app/views/joining_tables/index.html.haml +26 -0
  242. data/spec/support/test_app/app/views/layouts/application.html.haml +61 -0
  243. data/spec/support/test_app/app/views/localization/_grid.html.erb +36 -0
  244. data/spec/support/test_app/app/views/localization/index.html.haml +20 -0
  245. data/spec/support/test_app/app/views/many_grids_on_page/_tasks_grid1.html.erb +12 -0
  246. data/spec/support/test_app/app/views/many_grids_on_page/_tasks_grid2.html.erb +12 -0
  247. data/spec/support/test_app/app/views/many_grids_on_page/index.html.haml +26 -0
  248. data/spec/support/test_app/app/views/negation/_grid.html.erb +30 -0
  249. data/spec/support/test_app/app/views/negation/index.html.haml +15 -0
  250. data/spec/support/test_app/app/views/no_records/_empty_grid.html.haml +1 -0
  251. data/spec/support/test_app/app/views/no_records/_grid1.html.erb +11 -0
  252. data/spec/support/test_app/app/views/no_records/_grid2.html.erb +9 -0
  253. data/spec/support/test_app/app/views/no_records/_grid3.html.erb +9 -0
  254. data/spec/support/test_app/app/views/no_records/index.html.haml +24 -0
  255. data/spec/support/test_app/app/views/null_values/_grid.html.erb +17 -0
  256. data/spec/support/test_app/app/views/null_values/index.html.haml +21 -0
  257. data/spec/support/test_app/app/views/numeric_filters/_grid.html.erb +19 -0
  258. data/spec/support/test_app/app/views/numeric_filters/index.html.haml +12 -0
  259. data/spec/support/test_app/app/views/resultset_processings/_grid.html.erb +27 -0
  260. data/spec/support/test_app/app/views/resultset_processings/index.html.haml +50 -0
  261. data/spec/support/test_app/app/views/resultset_processings2/_grid.html.erb +27 -0
  262. data/spec/support/test_app/app/views/resultset_processings2/index.html.haml +48 -0
  263. data/spec/support/test_app/app/views/saved_queries/_grid.html.erb +30 -0
  264. data/spec/support/test_app/app/views/saved_queries/index.html.haml +15 -0
  265. data/spec/support/test_app/app/views/styling/_grid1.html.erb +12 -0
  266. data/spec/support/test_app/app/views/styling/_grid2.html.erb +31 -0
  267. data/spec/support/test_app/app/views/styling/index.html.haml +65 -0
  268. data/spec/support/test_app/app/views/tasks/_grid.html.erb +19 -0
  269. data/spec/support/test_app/app/views/tasks/index.html.haml +1 -0
  270. data/spec/support/test_app/app/views/two_associations/_grid.html.erb +13 -0
  271. data/spec/support/test_app/app/views/two_associations/index.html.haml +13 -0
  272. data/spec/support/test_app/app/views/upper_pagination_panel/_grid.html.erb +27 -0
  273. data/spec/support/test_app/app/views/upper_pagination_panel/index.html.haml +14 -0
  274. data/spec/support/test_app/app/views/when_filtered/_grid.html.erb +19 -0
  275. data/spec/support/test_app/app/views/when_filtered/index.html.haml +15 -0
  276. data/spec/support/test_app/bin/rails +4 -0
  277. data/spec/support/test_app/bin/rake +4 -0
  278. data/spec/support/test_app/config.ru +5 -0
  279. data/spec/support/test_app/config/application.rb +70 -0
  280. data/spec/support/test_app/config/boot.rb +7 -0
  281. data/spec/support/test_app/config/database.travis.yml +27 -0
  282. data/spec/support/test_app/config/database.yml +16 -0
  283. data/spec/support/test_app/config/database.yml.mysql +19 -0
  284. data/spec/support/test_app/config/database.yml.postgresql +18 -0
  285. data/spec/support/test_app/config/environment.rb +6 -0
  286. data/spec/support/test_app/config/environments/development.rb +34 -0
  287. data/spec/support/test_app/config/environments/production.rb +66 -0
  288. data/spec/support/test_app/config/environments/test.rb +34 -0
  289. data/spec/support/test_app/config/initializers/backtrace_silencers.rb +8 -0
  290. data/spec/support/test_app/config/initializers/inflections.rb +16 -0
  291. data/spec/support/test_app/config/initializers/mime_types.rb +6 -0
  292. data/spec/support/test_app/config/initializers/secret_token.rb +12 -0
  293. data/spec/support/test_app/config/initializers/session_store.rb +9 -0
  294. data/spec/support/test_app/config/initializers/wice_grid_config.rb +163 -0
  295. data/spec/support/test_app/config/initializers/wrap_parameters.rb +15 -0
  296. data/spec/support/test_app/config/locales/en.yml +5 -0
  297. data/spec/support/test_app/config/locales/wice_grid.yml +550 -0
  298. data/spec/support/test_app/config/puma.rb +15 -0
  299. data/spec/support/test_app/config/routes.rb +125 -0
  300. data/spec/support/test_app/db/migrate/20120224193505_create_tasks.rb +27 -0
  301. data/spec/support/test_app/db/migrate/20120224193517_create_users.rb +12 -0
  302. data/spec/support/test_app/db/migrate/20120224193522_create_projects.rb +14 -0
  303. data/spec/support/test_app/db/migrate/20120224193529_create_priorities.rb +13 -0
  304. data/spec/support/test_app/db/migrate/20120224193537_create_statuses.rb +13 -0
  305. data/spec/support/test_app/db/migrate/20120224193543_create_versions.rb +15 -0
  306. data/spec/support/test_app/db/migrate/20120224193550_create_project_roles.rb +12 -0
  307. data/spec/support/test_app/db/migrate/20120224193610_create_companies.rb +12 -0
  308. data/spec/support/test_app/db/migrate/20120224195351_create_user_project_participations.rb +16 -0
  309. data/spec/support/test_app/db/migrate/20120224195521_add_tasks_users.rb +11 -0
  310. data/spec/support/test_app/db/migrate/20120610091944_create_wice_grid_serialized_queries.rb +14 -0
  311. data/spec/support/test_app/db/schema.rb +139 -0
  312. data/spec/support/test_app/db/seeds.rb +10 -0
  313. data/spec/support/test_app/lib/ar_fixtures.rb +100 -0
  314. data/spec/support/test_app/lib/assets/.gitkeep +0 -0
  315. data/spec/support/test_app/lib/tasks/.gitkeep +0 -0
  316. data/spec/support/test_app/lib/tasks/ar_fixtures.rake +45 -0
  317. data/spec/support/test_app/public/404.html +26 -0
  318. data/spec/support/test_app/public/422.html +26 -0
  319. data/spec/support/test_app/public/500.html +25 -0
  320. data/spec/support/test_app/public/favicon.ico +0 -0
  321. data/spec/support/test_app/public/robots.txt +5 -0
  322. data/spec/wice/grid_output_buffer_spec.rb +2 -2
  323. data/spec/wice/table_column_matrix_spec.rb +1 -1
  324. data/vendor/assets/javascripts/wice_grid_init.js.coffee +16 -4
  325. data/vendor/assets/javascripts/wice_grid_saved_queries_init.js.coffee +1 -0
  326. data/wice_grid.gemspec +29 -9
  327. metadata +606 -62
  328. data/release_notes/RELEASE_NOTES_3.2.pre1.rdoc +0 -81
  329. data/release_notes/RELEASE_NOTES_3.2.pre2.rdoc +0 -6
  330. data/release_notes/RELEASE_NOTES_3.3.0.rdoc +0 -21
  331. data/spec/support/wice_grid_test_config.rb +0 -173
  332. data/test/readme.txt +0 -1
@@ -0,0 +1,10 @@
1
+ <%= grid(grid, show_filters: :always) do |g|
2
+
3
+ g.column name: 'ID', attribute: 'id', filter: false
4
+
5
+ g.column name: 'Status Name', attribute: 'name'
6
+
7
+ g.column name: 'Created' do |status|
8
+ status.created_at.to_s(:db) if status.created_at
9
+ end
10
+ end -%>
@@ -0,0 +1,24 @@
1
+ :css
2
+ table.my-grid {
3
+ border: 1px solid red;
4
+ }
5
+ table.my-grid tr.my-header {
6
+ background-color: #ebebeb;
7
+ }
8
+
9
+
10
+ .well
11
+ %h2= current_page_title
12
+ %p
13
+ It is possible to override the default ordering by specifying SQL Strings. "Status Name" in the first table is done
14
+ by the length of the status name. Ordering "Status Name" in the second table is actually replaced by ordering
15
+ by column.
16
+
17
+ = show_code
18
+
19
+ .row
20
+ .col-md-6
21
+ = render 'grid', grid: @status_grid1
22
+
23
+ .col-md-6
24
+ = render 'grid', grid: @status_grid2
@@ -0,0 +1,14 @@
1
+ <%= grid(grid, show_filters: :always) do |g|
2
+
3
+ g.column name: 'ID', attribute: 'id', filter: false
4
+
5
+ g.column name: 'Status Name', attribute: 'name'
6
+
7
+ g.column name: 'Created' do |status|
8
+ status.created_at.to_s(:db) if status.created_at
9
+ end
10
+
11
+ g.column name: 'Task Count', attribute: 'task_count', sort_by: ->(status) { status.tasks.count } do |status|
12
+ status.tasks.count
13
+ end
14
+ end -%>
@@ -0,0 +1,23 @@
1
+ :css
2
+ table.my-grid {
3
+ border: 1px solid red;
4
+ }
5
+ table.my-grid tr.my-header {
6
+ background-color: #ebebeb;
7
+ }
8
+
9
+
10
+ .well
11
+ %h2= current_page_title
12
+ %p
13
+ It is possible to support ordering on calculated fields with custom_sort. When using this method you must specify
14
+ an (arbitrary) attribute name, which is used as a query parameter.
15
+ %p
16
+ Note that this method requires loading every result of the query into memory and running the Proc on each, so is
17
+ unsuitable for a large number of results or expensive calculations.
18
+
19
+ = show_code
20
+
21
+ .row
22
+ .col-md-6
23
+ = render 'grid', grid: @status_grid
@@ -0,0 +1,10 @@
1
+ <%= grid(grid, show_filters: :always) do |g|
2
+
3
+ g.column name: 'ID', attribute: 'id', filter: false
4
+
5
+ g.column name: 'Status Name', attribute: 'name'
6
+
7
+ g.column name: 'Created' do |status|
8
+ status.created_at.to_s(:db) if status.created_at
9
+ end
10
+ end -%>
@@ -0,0 +1,24 @@
1
+ :css
2
+ table.my-grid {
3
+ border: 1px solid red;
4
+ }
5
+ table.my-grid tr.my-header {
6
+ background-color: #ebebeb;
7
+ }
8
+
9
+
10
+ .well
11
+ %h2= current_page_title
12
+ %p
13
+ It is possible to override the default ordering by specifying Arel objects. "Status Name" in the first table is done
14
+ by the length of the status name. Ordering "Status Name" in the second table is actually replaced by ordering
15
+ by column.
16
+
17
+ = show_code
18
+
19
+ .row
20
+ .col-md-6
21
+ = render 'grid', grid: @status_grid1
22
+
23
+ .col-md-6
24
+ = render 'grid', grid: @status_grid2
@@ -0,0 +1,10 @@
1
+ <%= grid(grid, show_filters: :always) do |g|
2
+
3
+ g.column name: 'ID', attribute: 'id', filter: false
4
+
5
+ g.column name: 'Status Name', attribute: 'name'
6
+
7
+ g.column name: 'Created' do |status|
8
+ status.created_at.to_s(:db) if status.created_at
9
+ end
10
+ end -%>
@@ -0,0 +1,21 @@
1
+ :css
2
+ table.my-grid {
3
+ border: 1px solid red;
4
+ }
5
+ table.my-grid tr.my-header {
6
+ background-color: #ebebeb;
7
+ }
8
+
9
+
10
+ .well
11
+ %h2= current_page_title
12
+ %p
13
+ It is possible to override the default ordering by specifying a Proc which generates custom sql code. "Status Name"
14
+ is sorted alphabetically unless
15
+ = link_to 'a sort_by_length parameter is in the request.', sort_by_length: true
16
+
17
+ = show_code
18
+
19
+ .row
20
+ .col-md-6
21
+ = render 'grid', grid: @status_grid
@@ -0,0 +1,10 @@
1
+ <%= grid(grid, show_filters: :always) do |g|
2
+
3
+ g.column name: 'ID', attribute: 'id', filter: false
4
+
5
+ g.column name: 'Status Name', attribute: 'name', sort_by: ->(status) { [status.number_of_vowels, status] }
6
+
7
+ g.column name: 'Created' do |status|
8
+ status.created_at.to_s(:db) if status.created_at
9
+ end
10
+ end -%>
@@ -0,0 +1,23 @@
1
+ :css
2
+ table.my-grid {
3
+ border: 1px solid red;
4
+ }
5
+ table.my-grid tr.my-header {
6
+ background-color: #ebebeb;
7
+ }
8
+
9
+
10
+ .well
11
+ %h2= current_page_title
12
+ %p
13
+ It is possible to override the default ordering by specifying a Proc to define the key to sort on. This key can be
14
+ a method of the model or other Ruby code. "Status Name" sorts on Status#number_of_vowels.
15
+ %p
16
+ Note that this method requires loading every result of the query into memory and running the Proc on each, so is
17
+ unsuitable for a large number of results or expensive calculations.
18
+
19
+ = show_code
20
+
21
+ .row
22
+ .col-md-6
23
+ = render 'grid', grid: @status_grid
@@ -0,0 +1,25 @@
1
+
2
+ <%= grid(@tasks_grid) do |g|
3
+
4
+ g.column name: 'ID', attribute: 'id', filter: false
5
+
6
+ g.column name: 'Title', attribute: 'title'
7
+
8
+ g.column name: 'Archived', attribute: 'archived' do |task|
9
+ task.archived? ? 'Yes' : 'No'
10
+ end
11
+
12
+ g.column name: 'Due Date', attribute: 'due_date' do |task|
13
+ task.due_date if task.due_date
14
+ end
15
+
16
+ g.column name: 'Added', attribute: 'created_at' do |task|
17
+ task.created_at.to_s(:db)
18
+ end
19
+
20
+ g.column name: 'Updated', attribute: 'updated_at', filter_type: :rails_datetime_helper, filter_control_options: {start_year: 2011} do |task|
21
+ task.updated_at.to_s(:db)
22
+ end
23
+
24
+
25
+ end -%>
@@ -0,0 +1,52 @@
1
+ .well
2
+ %h2= current_page_title
3
+ %p
4
+ WiceGrid provides four filters for selecting dates and time:
5
+
6
+ %ul
7
+ %li
8
+ %code
9
+ \:jquery_datepicker
10
+ \- Jquery datepicker (works for datetime, too)
11
+
12
+ %li
13
+ %code
14
+ \:bootstrap_datepicker
15
+ \- Bootstrap datepicker (works for datetime, too)
16
+
17
+ %li
18
+ %code
19
+ \:rails_date_helper
20
+ \- standard Rails date helper
21
+
22
+ %li
23
+ %code
24
+ \:rails_datetime_helper
25
+ \- standard Rails datetime helper
26
+
27
+ Specify a date/datetime filter just like you specify any other filter:
28
+
29
+
30
+ %p
31
+ Default filters are defined in configuration constants
32
+ %code
33
+ Wice::Defaults::DEFAULT_FILTER_FOR_DATE
34
+ and
35
+ %code
36
+ Wice::Defaults::DEFAULT_FILTER_FOR_DATETIME.
37
+ By default
38
+ %code
39
+ \:jquery_datepicker
40
+ is used for both dates and time.
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+ = show_code
49
+
50
+ .row-fluid
51
+ .col-md-12
52
+ = render 'grid'
@@ -0,0 +1,23 @@
1
+ <%= define_grid(@tasks_grid, hide_submit_button: true, hide_reset_button: true) do |g|
2
+
3
+ g.column name: 'ID', attribute: 'id', detach_with_id: :id_filter
4
+
5
+ g.column name: 'Title', attribute: 'title', detach_with_id: :title_filter
6
+
7
+ g.column name: 'Description', attribute: 'description', detach_with_id: :description_filter
8
+
9
+ g.column name: 'Archived', attribute: 'archived', detach_with_id: :archived_filter do |task|
10
+ task.archived? ? 'Yes' : 'No'
11
+ end
12
+
13
+
14
+ g.column name: 'Due Date', attribute: 'due_date', detach_with_id: :due_date do |task|
15
+ task.due_date.to_s(:short)
16
+ end
17
+
18
+
19
+ g.column do |task|
20
+ link_to('Edit', edit_task_path(task))
21
+ end
22
+
23
+ end -%>
@@ -0,0 +1,79 @@
1
+ .well
2
+ %h2= current_page_title
3
+ %p
4
+ Filters can also be detached from the grid table. This is a 3-step process.
5
+
6
+ %ol
7
+ %li
8
+ First, define the grid with helper
9
+ %code define_grid
10
+ instead of
11
+ %code grid
12
+ \. Everything should be done the same way as with
13
+ %code grid, but every column which will have an external filter, add
14
+ %code detach_with_id: :some_filter_name
15
+ in the
16
+ %code column
17
+ definition.
18
+
19
+ %li
20
+ Then use
21
+ %code grid_filter(grid, :some_filter_name)
22
+ to render filters.
23
+
24
+ %li
25
+ Finally, use
26
+ %code render_grid(@grid)
27
+ to actually output the grid table
28
+ \.
29
+
30
+ = show_code
31
+
32
+ = render 'grid'
33
+
34
+
35
+ .row
36
+ .col-md-2
37
+ ID:
38
+ .col-md-10
39
+ = grid_filter @tasks_grid, :id_filter
40
+
41
+ .row
42
+ .col-md-2
43
+ Title:
44
+ .col-md-3
45
+ = grid_filter @tasks_grid, :title_filter
46
+ .col-md-7
47
+
48
+
49
+ .row
50
+ .col-md-2
51
+ Description:
52
+ .col-md-3
53
+ = grid_filter @tasks_grid, :description_filter
54
+ .col-md-7
55
+
56
+ .row
57
+ .col-md-2
58
+ Archived:
59
+ .col-md-10
60
+ = grid_filter @tasks_grid, :archived_filter
61
+
62
+
63
+ .row
64
+ .col-md-2
65
+ Due date:
66
+ .col-md-10
67
+ = grid_filter @tasks_grid, :due_date
68
+
69
+
70
+ .row-fluid
71
+ .col-md-12
72
+ .external-buttons
73
+ %button.btn.btn-primary.wg-external-submit-button{'data-grid-name' => 'grid'} Submit
74
+ %button.btn.btn-default.wg-external-reset-button{'data-grid-name' => 'grid'} Reset
75
+
76
+ .row-fluid
77
+ .col-md-12
78
+
79
+ = render_grid(@tasks_grid)
@@ -0,0 +1,23 @@
1
+ <%= define_grid(tasks_grid, hide_submit_button: true, hide_reset_button: true) do |g|
2
+
3
+ g.column name: 'ID', attribute: 'id', detach_with_id: :id_filter
4
+
5
+ g.column name: 'Title', attribute: 'title', detach_with_id: :title_filter
6
+
7
+ g.column name: 'Description', attribute: 'description', detach_with_id: :description_filter
8
+
9
+ g.column name: 'Archived', attribute: 'archived', detach_with_id: :archived_filter do |task|
10
+ task.archived? ? 'Yes' : 'No'
11
+ end
12
+
13
+
14
+ g.column name: 'Due Date', attribute: 'due_date', detach_with_id: :due_date do |task|
15
+ task.due_date.to_s(:db)
16
+ end
17
+
18
+
19
+ g.column do |task|
20
+ link_to('Edit', edit_task_path(task))
21
+ end
22
+
23
+ end -%>
@@ -0,0 +1,85 @@
1
+ .well
2
+ %h2= current_page_title
3
+ %p
4
+ An example of two grids with detached filters functioning independantly of each other.
5
+
6
+ = show_code
7
+
8
+ = render 'grid', tasks_grid: @grid1
9
+ = render 'grid', tasks_grid: @grid2
10
+
11
+ .row
12
+ .col-md-2
13
+ ID:
14
+ .col-md-4
15
+ = grid_filter @grid1, :id_filter
16
+ .col-md-2
17
+ ID:
18
+ .col-md-4
19
+ = grid_filter @grid2, :id_filter
20
+
21
+
22
+ .row
23
+ .col-md-2
24
+ Title:
25
+ .col-md-4
26
+ = grid_filter @grid1, :title_filter
27
+ .col-md-2
28
+ Title:
29
+ .col-md-4
30
+ = grid_filter @grid2, :title_filter
31
+
32
+
33
+
34
+ .row
35
+ .col-md-2
36
+ Description:
37
+ .col-md-4
38
+ = grid_filter @grid1, :description_filter
39
+ .col-md-2
40
+ Description:
41
+ .col-md-4
42
+ = grid_filter @grid2, :description_filter
43
+
44
+
45
+ .row
46
+ .col-md-2
47
+ Archived:
48
+ .col-md-4
49
+ = grid_filter @grid1, :archived_filter
50
+ .col-md-2
51
+ Archived:
52
+ .col-md-4
53
+ = grid_filter @grid2, :archived_filter
54
+
55
+
56
+ .row
57
+ .col-md-2
58
+ Due date:
59
+ .col-md-4
60
+ = grid_filter @grid1, :due_date
61
+ .col-md-2
62
+ Due date:
63
+ .col-md-4
64
+ = grid_filter @grid2, :due_date
65
+
66
+
67
+ .row
68
+ .col-md-6
69
+ .external-buttons-grid1
70
+ %button.btn.btn-primary.wg-external-submit-button{'data-grid-name' => 'grid'} Submit
71
+ %button.btn.btn-default.wg-external-reset-button{'data-grid-name' => 'grid'} Reset
72
+
73
+ .col-md-6
74
+ .external-buttons-grid2
75
+ %button.btn.btn-primary.wg-external-submit-button{'data-grid-name' => 'grid2'} Submit
76
+ %button.btn.btn-default.wg-external-reset-button{'data-grid-name' => 'grid2'} Reset
77
+
78
+ %p
79
+
80
+ .row
81
+ .col-md-6
82
+ = render_grid(@grid1)
83
+
84
+ .col-md-6
85
+ = render_grid(@grid2)