activeadmin 1.1.0 → 2.14.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (592) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +871 -111
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +84 -63
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +521 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +4 -26
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +25 -123
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  14. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  15. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  16. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  17. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  18. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  19. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  20. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  21. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  23. data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
  24. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  25. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  26. data/app/javascript/active_admin/base.js +28 -0
  27. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  28. data/app/javascript/active_admin/ext/jquery.js +9 -0
  29. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  30. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  31. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  32. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  33. data/app/javascript/active_admin/initializers/filters.js +10 -0
  34. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  35. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  36. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  37. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  38. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  39. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  40. data/app/javascript/active_admin/lib/filters.js +39 -0
  41. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  42. data/app/javascript/active_admin/lib/per-page.js +38 -0
  43. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  44. data/app/javascript/active_admin/lib/utils.js +40 -0
  45. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  46. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  47. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  48. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  49. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  50. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  51. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  52. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  53. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  54. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  55. data/app/views/active_admin/page/index.html.arb +1 -0
  56. data/app/views/active_admin/resource/edit.html.arb +1 -0
  57. data/app/views/active_admin/resource/index.html.arb +1 -0
  58. data/app/views/active_admin/resource/new.html.arb +1 -0
  59. data/app/views/active_admin/resource/show.html.arb +1 -0
  60. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  61. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  62. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  63. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  64. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  65. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  66. data/app/views/layouts/active_admin.html.arb +1 -0
  67. data/app/views/layouts/active_admin_logged_out.html.erb +20 -9
  68. data/config/locales/ar.yml +9 -8
  69. data/config/locales/az.yml +138 -0
  70. data/config/locales/bg.yml +1 -1
  71. data/config/locales/bs.yml +1 -0
  72. data/config/locales/ca.yml +1 -1
  73. data/config/locales/cs.yml +1 -0
  74. data/config/locales/da.yml +1 -0
  75. data/config/locales/de-CH.yml +1 -0
  76. data/config/locales/de.yml +29 -0
  77. data/config/locales/el.yml +1 -0
  78. data/config/locales/en-CA.yml +4 -3
  79. data/config/locales/en-GB.yml +4 -3
  80. data/config/locales/en.yml +24 -4
  81. data/config/locales/eo.yml +145 -0
  82. data/config/locales/es-MX.yml +3 -1
  83. data/config/locales/es.yml +26 -6
  84. data/config/locales/fa.yml +1 -0
  85. data/config/locales/fi.yml +2 -1
  86. data/config/locales/fr.yml +9 -8
  87. data/config/locales/he.yml +1 -1
  88. data/config/locales/hr.yml +1 -0
  89. data/config/locales/hu.yml +5 -0
  90. data/config/locales/id.yml +1 -0
  91. data/config/locales/it.yml +31 -3
  92. data/config/locales/ja.yml +8 -2
  93. data/config/locales/ko.yml +2 -1
  94. data/config/locales/lt.yml +3 -2
  95. data/config/locales/lv.yml +3 -2
  96. data/config/locales/mk.yml +134 -0
  97. data/config/locales/nb.yml +16 -5
  98. data/config/locales/nl.yml +13 -1
  99. data/config/locales/pl.yml +72 -3
  100. data/config/locales/pt-BR.yml +9 -0
  101. data/config/locales/pt-PT.yml +1 -0
  102. data/config/locales/ro.yml +4 -2
  103. data/config/locales/ru.yml +3 -0
  104. data/config/locales/sk.yml +60 -0
  105. data/config/locales/sv-SE.yml +3 -0
  106. data/config/locales/tr.yml +10 -0
  107. data/config/locales/uk.yml +3 -0
  108. data/config/locales/vi.yml +82 -12
  109. data/config/locales/zh-CN.yml +68 -20
  110. data/config/locales/zh-TW.yml +1 -0
  111. data/lib/active_admin/abstract_view_factory.rb +14 -51
  112. data/lib/active_admin/application.rb +65 -172
  113. data/lib/active_admin/application_settings.rb +43 -0
  114. data/lib/active_admin/asset_registration.rb +4 -11
  115. data/lib/active_admin/authorization_adapter.rb +6 -3
  116. data/lib/active_admin/base_controller/authorization.rb +18 -18
  117. data/lib/active_admin/base_controller/menu.rb +1 -0
  118. data/lib/active_admin/base_controller.rb +12 -11
  119. data/lib/active_admin/batch_actions/controller.rb +6 -5
  120. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  121. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  122. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  123. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  124. data/lib/active_admin/batch_actions.rb +1 -0
  125. data/lib/active_admin/callbacks.rb +2 -1
  126. data/lib/active_admin/cancan_adapter.rb +2 -1
  127. data/lib/active_admin/collection_decorator.rb +32 -0
  128. data/lib/active_admin/component.rb +1 -0
  129. data/lib/active_admin/controller_action.rb +3 -1
  130. data/lib/active_admin/csv_builder.rb +15 -21
  131. data/lib/active_admin/dependency.rb +12 -79
  132. data/lib/active_admin/deprecation.rb +1 -25
  133. data/lib/active_admin/devise.rb +16 -5
  134. data/lib/active_admin/dsl.rb +3 -9
  135. data/lib/active_admin/dynamic_setting.rb +39 -0
  136. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  137. data/lib/active_admin/engine.rb +16 -7
  138. data/lib/active_admin/error.rb +5 -4
  139. data/lib/active_admin/filters/active.rb +2 -1
  140. data/lib/active_admin/filters/active_filter.rb +52 -15
  141. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  142. data/lib/active_admin/filters/dsl.rb +1 -0
  143. data/lib/active_admin/filters/forms.rb +13 -9
  144. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  145. data/lib/active_admin/filters/resource_extension.rb +34 -9
  146. data/lib/active_admin/filters.rb +8 -7
  147. data/lib/active_admin/form_builder.rb +110 -70
  148. data/lib/active_admin/generators/boilerplate.rb +13 -4
  149. data/lib/active_admin/helpers/collection.rb +2 -0
  150. data/lib/active_admin/helpers/i18n.rb +1 -0
  151. data/lib/active_admin/helpers/optional_display.rb +3 -2
  152. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  153. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  154. data/lib/active_admin/inputs/datepicker_input.rb +10 -2
  155. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  156. data/lib/active_admin/inputs/filters/base.rb +2 -1
  157. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  158. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  159. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  160. data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
  161. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  162. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  163. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  164. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  165. data/lib/active_admin/inputs.rb +1 -0
  166. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  167. data/lib/active_admin/localizers.rb +2 -1
  168. data/lib/active_admin/menu.rb +9 -11
  169. data/lib/active_admin/menu_collection.rb +1 -0
  170. data/lib/active_admin/menu_item.rb +11 -38
  171. data/lib/active_admin/namespace.rb +33 -20
  172. data/lib/active_admin/namespace_settings.rb +127 -0
  173. data/lib/active_admin/order_clause.rb +4 -3
  174. data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
  175. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  176. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  177. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  178. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +36 -25
  179. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  180. data/lib/active_admin/orm/active_record/comments.rb +41 -29
  181. data/lib/active_admin/orm/active_record.rb +2 -1
  182. data/lib/active_admin/orm/mongoid.rb +1 -0
  183. data/lib/active_admin/page.rb +2 -1
  184. data/lib/active_admin/page_controller.rb +1 -0
  185. data/lib/active_admin/page_dsl.rb +2 -1
  186. data/lib/active_admin/page_presenter.rb +3 -1
  187. data/lib/active_admin/pundit_adapter.rb +71 -16
  188. data/lib/active_admin/resource/action_items.rb +12 -6
  189. data/lib/active_admin/resource/attributes.rb +9 -5
  190. data/lib/active_admin/resource/belongs_to.rb +9 -3
  191. data/lib/active_admin/resource/controllers.rb +2 -1
  192. data/lib/active_admin/resource/includes.rb +1 -0
  193. data/lib/active_admin/resource/menu.rb +6 -5
  194. data/lib/active_admin/resource/model.rb +16 -0
  195. data/lib/active_admin/resource/naming.rb +6 -5
  196. data/lib/active_admin/resource/ordering.rb +1 -0
  197. data/lib/active_admin/resource/page_presenters.rb +1 -0
  198. data/lib/active_admin/resource/pagination.rb +1 -0
  199. data/lib/active_admin/resource/routes.rb +26 -14
  200. data/lib/active_admin/resource/scope_to.rb +8 -7
  201. data/lib/active_admin/resource/scopes.rb +4 -3
  202. data/lib/active_admin/resource/sidebars.rb +3 -2
  203. data/lib/active_admin/resource.rb +37 -22
  204. data/lib/active_admin/resource_collection.rb +3 -2
  205. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  206. data/lib/active_admin/resource_controller/data_access.rb +35 -5
  207. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  208. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  209. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  210. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  211. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  212. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  213. data/lib/active_admin/resource_controller.rb +14 -10
  214. data/lib/active_admin/resource_dsl.rb +17 -27
  215. data/lib/active_admin/router.rb +91 -84
  216. data/lib/active_admin/scope.rb +20 -11
  217. data/lib/active_admin/settings_node.rb +20 -0
  218. data/lib/active_admin/sidebar_section.rb +4 -1
  219. data/lib/active_admin/version.rb +2 -1
  220. data/lib/active_admin/view_factory.rb +18 -17
  221. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  222. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  223. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  224. data/lib/active_admin/view_helpers/display_helper.rb +25 -8
  225. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  226. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  227. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  228. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  229. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  230. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  231. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  232. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  233. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  234. data/lib/active_admin/view_helpers.rb +2 -1
  235. data/lib/active_admin/views/action_items.rb +1 -0
  236. data/lib/active_admin/views/components/active_admin_form.rb +14 -8
  237. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  238. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  239. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  240. data/lib/active_admin/views/components/columns.rb +1 -0
  241. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  242. data/lib/active_admin/views/components/index_list.rb +4 -3
  243. data/lib/active_admin/views/components/menu.rb +33 -0
  244. data/lib/active_admin/views/components/menu_item.rb +59 -0
  245. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  246. data/lib/active_admin/views/components/panel.rb +2 -1
  247. data/lib/active_admin/views/components/scopes.rb +18 -8
  248. data/lib/active_admin/views/components/sidebar.rb +14 -0
  249. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  250. data/lib/active_admin/views/components/site_title.rb +7 -7
  251. data/lib/active_admin/views/components/status_tag.rb +14 -26
  252. data/lib/active_admin/views/components/table_for.rb +22 -29
  253. data/lib/active_admin/views/components/tabs.rb +18 -5
  254. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  255. data/lib/active_admin/views/footer.rb +6 -8
  256. data/lib/active_admin/views/header.rb +4 -15
  257. data/lib/active_admin/views/index_as_block.rb +1 -0
  258. data/lib/active_admin/views/index_as_blog.rb +3 -2
  259. data/lib/active_admin/views/index_as_grid.rb +27 -26
  260. data/lib/active_admin/views/index_as_table.rb +34 -25
  261. data/lib/active_admin/views/pages/base.rb +47 -62
  262. data/lib/active_admin/views/pages/form.rb +1 -0
  263. data/lib/active_admin/views/pages/index.rb +16 -13
  264. data/lib/active_admin/views/pages/layout.rb +1 -0
  265. data/lib/active_admin/views/pages/page.rb +1 -0
  266. data/lib/active_admin/views/pages/show.rb +1 -0
  267. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  268. data/lib/active_admin/views/title_bar.rb +2 -1
  269. data/lib/active_admin/views.rb +2 -1
  270. data/lib/active_admin.rb +68 -63
  271. data/lib/activeadmin.rb +2 -1
  272. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  273. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  274. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  275. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  276. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  277. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +62 -3
  278. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  279. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  280. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  281. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  282. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  283. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  284. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  285. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  286. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  287. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  288. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  289. data/lib/ransack_ext.rb +10 -9
  290. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  291. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  292. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  293. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  294. metadata +123 -595
  295. data/.github/ISSUE_TEMPLATE.md +0 -20
  296. data/.gitignore +0 -49
  297. data/.mdlrc +0 -1
  298. data/.rubocop.yml +0 -76
  299. data/.simplecov +0 -13
  300. data/.travis.yml +0 -51
  301. data/.yardopts +0 -7
  302. data/Gemfile +0 -58
  303. data/Rakefile +0 -54
  304. data/activeadmin.gemspec +0 -32
  305. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  306. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  307. data/app/assets/images/active_admin/orderable.png +0 -0
  308. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  309. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  310. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  311. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  312. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  313. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  314. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  315. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  316. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  317. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  318. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  319. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  320. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  321. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  322. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  323. data/codecov.yml +0 -25
  324. data/config/i18n-tasks.yml +0 -26
  325. data/config/mdl_style.rb +0 -9
  326. data/cucumber.yml +0 -3
  327. data/docs/0-installation.md +0 -118
  328. data/docs/1-general-configuration.md +0 -189
  329. data/docs/10-custom-pages.md +0 -136
  330. data/docs/11-decorators.md +0 -59
  331. data/docs/12-arbre-components.md +0 -174
  332. data/docs/13-authorization-adapter.md +0 -266
  333. data/docs/14-gotchas.md +0 -138
  334. data/docs/2-resource-customization.md +0 -461
  335. data/docs/3-index-pages/custom-index.md +0 -35
  336. data/docs/3-index-pages/index-as-block.md +0 -19
  337. data/docs/3-index-pages/index-as-blog.md +0 -69
  338. data/docs/3-index-pages/index-as-grid.md +0 -27
  339. data/docs/3-index-pages/index-as-table.md +0 -227
  340. data/docs/3-index-pages.md +0 -311
  341. data/docs/4-csv-format.md +0 -74
  342. data/docs/5-forms.md +0 -218
  343. data/docs/6-show-pages.md +0 -81
  344. data/docs/7-sidebars.md +0 -75
  345. data/docs/8-custom-actions.md +0 -166
  346. data/docs/9-batch-actions.md +0 -237
  347. data/docs/CNAME +0 -1
  348. data/docs/Gemfile +0 -2
  349. data/docs/README.md +0 -24
  350. data/docs/_config.yml +0 -2
  351. data/docs/_includes/footer.html +0 -8
  352. data/docs/_includes/google-analytics.html +0 -16
  353. data/docs/_includes/head.html +0 -7
  354. data/docs/_includes/toc.html +0 -98
  355. data/docs/_includes/top-menu.html +0 -9
  356. data/docs/_layouts/default.html +0 -21
  357. data/docs/documentation.md +0 -60
  358. data/docs/images/activeadmin.png +0 -0
  359. data/docs/images/code-header.png +0 -0
  360. data/docs/images/divider.png +0 -0
  361. data/docs/images/features.png +0 -0
  362. data/docs/index.html +0 -125
  363. data/docs/stylesheets/main.css +0 -1152
  364. data/features/action_item.feature +0 -73
  365. data/features/authorization.feature +0 -64
  366. data/features/authorization_cancan.feature +0 -52
  367. data/features/authorization_pundit.feature +0 -37
  368. data/features/belongs_to.feature +0 -124
  369. data/features/breadcrumb.feature +0 -75
  370. data/features/comments/commenting.feature +0 -178
  371. data/features/comments/viewing_index.feature +0 -19
  372. data/features/create_another.feature +0 -55
  373. data/features/dashboard.feature +0 -16
  374. data/features/decorators.feature +0 -43
  375. data/features/development_reloading.feature +0 -28
  376. data/features/edit_page.feature +0 -116
  377. data/features/favicon.feature +0 -20
  378. data/features/first_boot.feature +0 -16
  379. data/features/footer.feature +0 -28
  380. data/features/global_navigation.feature +0 -29
  381. data/features/i18n.feature +0 -55
  382. data/features/index/batch_actions.feature +0 -218
  383. data/features/index/filters.feature +0 -239
  384. data/features/index/format_as_csv.feature +0 -220
  385. data/features/index/formats.feature +0 -88
  386. data/features/index/index_as_block.feature +0 -15
  387. data/features/index/index_as_blog.feature +0 -69
  388. data/features/index/index_as_grid.feature +0 -45
  389. data/features/index/index_as_table.feature +0 -291
  390. data/features/index/index_blank_slate.feature +0 -83
  391. data/features/index/index_parameters.feature +0 -75
  392. data/features/index/index_scope_to.feature +0 -56
  393. data/features/index/index_scopes.feature +0 -285
  394. data/features/index/page_title.feature +0 -41
  395. data/features/index/pagination.feature +0 -63
  396. data/features/index/switch_index_view.feature +0 -73
  397. data/features/menu.feature +0 -72
  398. data/features/meta_tags.feature +0 -21
  399. data/features/new_page.feature +0 -107
  400. data/features/registering_assets.feature +0 -38
  401. data/features/registering_pages.feature +0 -237
  402. data/features/registering_resources.feature +0 -33
  403. data/features/renamed_resource.feature +0 -30
  404. data/features/root_to.feature +0 -17
  405. data/features/show/attributes_table_title.feature +0 -54
  406. data/features/show/columns.feature +0 -40
  407. data/features/show/default_content.feature +0 -44
  408. data/features/show/page_title.feature +0 -58
  409. data/features/show/tabs.feature +0 -33
  410. data/features/sidebar_sections.feature +0 -210
  411. data/features/site_title.feature +0 -47
  412. data/features/specifying_actions.feature +0 -118
  413. data/features/step_definitions/action_item_steps.rb +0 -7
  414. data/features/step_definitions/action_link_steps.rb +0 -19
  415. data/features/step_definitions/additional_web_steps.rb +0 -81
  416. data/features/step_definitions/asset_steps.rb +0 -15
  417. data/features/step_definitions/attribute_steps.rb +0 -18
  418. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  419. data/features/step_definitions/batch_action_steps.rb +0 -81
  420. data/features/step_definitions/blog_steps.rb +0 -3
  421. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  422. data/features/step_definitions/column_steps.rb +0 -8
  423. data/features/step_definitions/comment_steps.rb +0 -32
  424. data/features/step_definitions/configuration_steps.rb +0 -100
  425. data/features/step_definitions/dashboard_steps.rb +0 -15
  426. data/features/step_definitions/factory_steps.rb +0 -35
  427. data/features/step_definitions/filter_steps.rb +0 -48
  428. data/features/step_definitions/flash_steps.rb +0 -11
  429. data/features/step_definitions/footer_steps.rb +0 -11
  430. data/features/step_definitions/format_steps.rb +0 -56
  431. data/features/step_definitions/i18n_steps.rb +0 -11
  432. data/features/step_definitions/index_scope_steps.rb +0 -29
  433. data/features/step_definitions/index_views_steps.rb +0 -3
  434. data/features/step_definitions/layout_steps.rb +0 -3
  435. data/features/step_definitions/member_link_steps.rb +0 -7
  436. data/features/step_definitions/menu_steps.rb +0 -11
  437. data/features/step_definitions/meta_tag_steps.rb +0 -3
  438. data/features/step_definitions/pagination_steps.rb +0 -15
  439. data/features/step_definitions/sidebar_steps.rb +0 -11
  440. data/features/step_definitions/site_title_steps.rb +0 -17
  441. data/features/step_definitions/tab_steps.rb +0 -8
  442. data/features/step_definitions/table_steps.rb +0 -116
  443. data/features/step_definitions/user_steps.rb +0 -52
  444. data/features/step_definitions/web_steps.rb +0 -86
  445. data/features/sti_resource.feature +0 -65
  446. data/features/strong_parameters.feature +0 -69
  447. data/features/support/env.rb +0 -122
  448. data/features/support/paths.rb +0 -73
  449. data/features/support/regular_env.rb +0 -7
  450. data/features/support/reload_env.rb +0 -7
  451. data/features/support/selectors.rb +0 -45
  452. data/features/users/logging_in.feature +0 -36
  453. data/features/users/logging_out.feature +0 -13
  454. data/features/users/resetting_password.feature +0 -34
  455. data/gemfiles/rails_42.gemfile +0 -10
  456. data/gemfiles/rails_50.gemfile +0 -10
  457. data/gemfiles/rails_51.gemfile +0 -10
  458. data/lib/active_admin/event.rb +0 -24
  459. data/lib/active_admin/helpers/settings.rb +0 -114
  460. data/lib/active_admin/reloader.rb +0 -25
  461. data/lib/bug_report_templates/active_admin_master.rb +0 -113
  462. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  463. data/spec/bug_report_templates_spec.rb +0 -26
  464. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  465. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  466. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  467. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  468. data/spec/javascripts/fixtures/flashes.html +0 -2
  469. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  470. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  471. data/spec/javascripts/support/jasmine.yml +0 -74
  472. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  473. data/spec/rails_helper.rb +0 -59
  474. data/spec/requests/default_namespace_spec.rb +0 -81
  475. data/spec/requests/memory_spec.rb +0 -25
  476. data/spec/requests/stylesheets_spec.rb +0 -18
  477. data/spec/spec_helper.rb +0 -1
  478. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  479. data/spec/support/active_admin_request_helpers.rb +0 -39
  480. data/spec/support/rails_template.rb +0 -150
  481. data/spec/support/rails_template_with_data.rb +0 -327
  482. data/spec/support/templates/admin/stores.rb +0 -7
  483. data/spec/support/templates/en.yml +0 -8
  484. data/spec/support/templates/manifest.js +0 -3
  485. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  486. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  487. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  488. data/spec/support/templates/policies/application_policy.rb +0 -44
  489. data/spec/support/templates/policies/category_policy.rb +0 -7
  490. data/spec/support/templates/policies/post_policy.rb +0 -15
  491. data/spec/support/templates/policies/store_policy.rb +0 -11
  492. data/spec/support/templates/policies/user_policy.rb +0 -11
  493. data/spec/support/templates/post_decorator.rb +0 -10
  494. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  495. data/spec/unit/action_builder_spec.rb +0 -125
  496. data/spec/unit/active_admin_spec.rb +0 -11
  497. data/spec/unit/application_spec.rb +0 -184
  498. data/spec/unit/asset_registration_spec.rb +0 -81
  499. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  500. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  501. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  502. data/spec/unit/auto_link_spec.rb +0 -93
  503. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  504. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  505. data/spec/unit/belongs_to_spec.rb +0 -76
  506. data/spec/unit/cancan_adapter_spec.rb +0 -43
  507. data/spec/unit/comments_spec.rb +0 -176
  508. data/spec/unit/component_spec.rb +0 -18
  509. data/spec/unit/config_shared_examples.rb +0 -59
  510. data/spec/unit/controller_filters_spec.rb +0 -41
  511. data/spec/unit/csv_builder_spec.rb +0 -304
  512. data/spec/unit/dependency_spec.rb +0 -135
  513. data/spec/unit/devise_spec.rb +0 -110
  514. data/spec/unit/dsl_spec.rb +0 -120
  515. data/spec/unit/filters/active_filter_spec.rb +0 -135
  516. data/spec/unit/filters/active_spec.rb +0 -24
  517. data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
  518. data/spec/unit/filters/resource_spec.rb +0 -128
  519. data/spec/unit/form_builder_spec.rb +0 -990
  520. data/spec/unit/generators/install_spec.rb +0 -31
  521. data/spec/unit/helpers/collection_spec.rb +0 -68
  522. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  523. data/spec/unit/helpers/settings_spec.rb +0 -30
  524. data/spec/unit/i18n_spec.rb +0 -29
  525. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  526. data/spec/unit/menu_collection_spec.rb +0 -62
  527. data/spec/unit/menu_item_spec.rb +0 -141
  528. data/spec/unit/menu_spec.rb +0 -71
  529. data/spec/unit/namespace/authorization_spec.rb +0 -27
  530. data/spec/unit/namespace/register_page_spec.rb +0 -99
  531. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  532. data/spec/unit/namespace_spec.rb +0 -124
  533. data/spec/unit/order_clause_spec.rb +0 -81
  534. data/spec/unit/page_controller_spec.rb +0 -5
  535. data/spec/unit/page_spec.rb +0 -128
  536. data/spec/unit/pretty_format_spec.rb +0 -82
  537. data/spec/unit/pundit_adapter_spec.rb +0 -98
  538. data/spec/unit/resource/action_items_spec.rb +0 -69
  539. data/spec/unit/resource/attributes_spec.rb +0 -49
  540. data/spec/unit/resource/includes_spec.rb +0 -21
  541. data/spec/unit/resource/menu_spec.rb +0 -18
  542. data/spec/unit/resource/naming_spec.rb +0 -122
  543. data/spec/unit/resource/ordering_spec.rb +0 -35
  544. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  545. data/spec/unit/resource/pagination_spec.rb +0 -38
  546. data/spec/unit/resource/routes_spec.rb +0 -125
  547. data/spec/unit/resource/scopes_spec.rb +0 -50
  548. data/spec/unit/resource/sidebars_spec.rb +0 -43
  549. data/spec/unit/resource_collection_spec.rb +0 -175
  550. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  551. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  552. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  553. data/spec/unit/resource_controller_spec.rb +0 -273
  554. data/spec/unit/resource_registration_spec.rb +0 -61
  555. data/spec/unit/resource_spec.rb +0 -320
  556. data/spec/unit/routing_spec.rb +0 -211
  557. data/spec/unit/scope_spec.rb +0 -209
  558. data/spec/unit/settings_spec.rb +0 -117
  559. data/spec/unit/view_factory_spec.rb +0 -19
  560. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  561. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  562. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  563. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  564. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  565. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  566. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  567. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  568. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  569. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  570. data/spec/unit/views/components/columns_spec.rb +0 -187
  571. data/spec/unit/views/components/index_list_spec.rb +0 -49
  572. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  573. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  574. data/spec/unit/views/components/panel_spec.rb +0 -58
  575. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  576. data/spec/unit/views/components/site_title_spec.rb +0 -76
  577. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  578. data/spec/unit/views/components/table_for_spec.rb +0 -436
  579. data/spec/unit/views/components/tabs_spec.rb +0 -67
  580. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  581. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  582. data/spec/unit/views/pages/form_spec.rb +0 -54
  583. data/spec/unit/views/pages/index_spec.rb +0 -60
  584. data/spec/unit/views/pages/layout_spec.rb +0 -59
  585. data/spec/unit/views/pages/show_spec.rb +0 -32
  586. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  587. data/tasks/docs.rake +0 -64
  588. data/tasks/lint.rake +0 -21
  589. data/tasks/local.rake +0 -25
  590. data/tasks/parallel_tests.rake +0 -66
  591. data/tasks/test.rake +0 -29
  592. /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
@@ -1,265 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Views::StatusTag do
4
-
5
- describe "#status_tag" do
6
-
7
- # Helper method to build StatusTag objects in an Arbre context
8
- def status_tag(*args)
9
- render_arbre_component(status_tag_args: args) do
10
- status_tag(*assigns[:status_tag_args])
11
- end
12
- end
13
-
14
- subject { status_tag(nil) }
15
-
16
- describe '#tag_name' do
17
- subject { super().tag_name }
18
- it { is_expected.to eq 'span' }
19
- end
20
-
21
- describe '#class_list' do
22
- subject { super().class_list }
23
- it { is_expected.to include('status_tag') }
24
- end
25
-
26
- context "when status is 'completed'" do
27
- subject { status_tag('completed') }
28
-
29
- describe '#tag_name' do
30
- subject { super().tag_name }
31
- it { is_expected.to eq 'span' }
32
- end
33
-
34
- describe '#class_list' do
35
- subject { super().class_list }
36
- it { is_expected.to include('status_tag') }
37
- end
38
-
39
- describe '#class_list' do
40
- subject { super().class_list }
41
- it { is_expected.to include('completed') }
42
- end
43
-
44
- describe '#content' do
45
- subject { super().content }
46
- it { is_expected.to eq 'Completed' }
47
- end
48
- end
49
-
50
- context "when status is 'in_progress'" do
51
- subject { status_tag('in_progress') }
52
-
53
- describe '#class_list' do
54
- subject { super().class_list }
55
- it { is_expected.to include('in_progress') }
56
- end
57
-
58
- describe '#content' do
59
- subject { super().content }
60
- it { is_expected.to eq 'In Progress' }
61
- end
62
- end
63
-
64
- context "when status is 'In progress'" do
65
- subject { status_tag('In progress') }
66
-
67
- describe '#class_list' do
68
- subject { super().class_list }
69
- it { is_expected.to include('in_progress') }
70
- end
71
-
72
- describe '#content' do
73
- subject { super().content }
74
- it { is_expected.to eq 'In Progress' }
75
- end
76
- end
77
-
78
- context "when status is an empty string" do
79
- subject { status_tag('') }
80
-
81
- describe '#class_list' do
82
- subject { super().class_list }
83
- it { is_expected.to include('status_tag') }
84
- end
85
-
86
- describe '#content' do
87
- subject { super().content }
88
- it { is_expected.to eq '' }
89
- end
90
- end
91
-
92
- context "when status is 'false'" do
93
- subject { status_tag('false') }
94
-
95
- describe '#class_list' do
96
- subject { super().class_list }
97
- it { is_expected.to include('status_tag') }
98
- end
99
-
100
- describe '#content' do
101
- subject { super().content }
102
- it { is_expected.to eq('No') }
103
- end
104
- end
105
-
106
- context "when status is false" do
107
- subject { status_tag(false) }
108
-
109
- describe '#class_list' do
110
- subject { super().class_list }
111
- it { is_expected.to include('status_tag') }
112
- end
113
-
114
- describe '#content' do
115
- subject { super().content }
116
- it { is_expected.to eq('No') }
117
- end
118
- end
119
-
120
- context "when status is nil" do
121
- subject { status_tag(nil) }
122
-
123
- describe '#class_list' do
124
- subject { super().class_list }
125
- it { is_expected.to include('status_tag') }
126
- end
127
-
128
- describe '#content' do
129
- subject { super().content }
130
- it { is_expected.to eq('No') }
131
- end
132
- end
133
-
134
- context "when status is 'Active' and type is :ok" do
135
- subject { status_tag('Active', :ok) }
136
-
137
- describe 'is deprecated' do
138
- subject { super().class_list }
139
- it do
140
- expect(ActiveAdmin::Deprecation)
141
- .to receive(:warn)
142
- .with(<<-MSG.strip_heredoc
143
- The `type` parameter has been deprecated. Provide the "ok" type as
144
- a class instead. For example, `status_tag(status, :ok, class: "abc")`
145
- would change to `status_tag(status, class: "ok abc")`. Also note that
146
- the "ok" CSS rule will be removed too, so you'll have to provide
147
- the styles yourself. See https://github.com/activeadmin/activeadmin/blob/master/CHANGELOG.md#110-
148
- for more information.
149
- MSG
150
- )
151
- is_expected.to include('ok')
152
- end
153
- end
154
-
155
- describe '#class_list' do
156
- before { expect(ActiveAdmin::Deprecation).to receive(:warn).once }
157
- subject { super().class_list }
158
- it { is_expected.to include('status_tag') }
159
- end
160
-
161
- describe '#class_list' do
162
- before { expect(ActiveAdmin::Deprecation).to receive(:warn).once }
163
- subject { super().class_list }
164
- it { is_expected.to include('active') }
165
- end
166
-
167
- describe '#class_list' do
168
- before { expect(ActiveAdmin::Deprecation).to receive(:warn).once }
169
- subject { super().class_list }
170
- it { is_expected.to include('ok') }
171
- end
172
- end
173
-
174
- context "when status is 'Active' and class is 'ok'" do
175
- subject { status_tag('Active', class: 'ok') }
176
-
177
- describe '#class_list' do
178
- subject { super().class_list }
179
- it { is_expected.to include('status_tag') }
180
- end
181
-
182
- describe '#class_list' do
183
- subject { super().class_list }
184
- it { is_expected.to include('active') }
185
- end
186
-
187
- describe '#class_list' do
188
- subject { super().class_list }
189
- it { is_expected.to include('ok') }
190
- end
191
- end
192
-
193
- context "when status is 'Active' and label is 'on'" do
194
- subject { status_tag('Active', label: 'on') }
195
-
196
- describe '#content' do
197
- subject { super().content }
198
- it { is_expected.to eq 'on' }
199
- end
200
-
201
- describe '#class_list' do
202
- subject { super().class_list }
203
- it { is_expected.to include('status_tag') }
204
- end
205
-
206
- describe '#class_list' do
207
- subject { super().class_list }
208
- it { is_expected.to include('active') }
209
- end
210
-
211
- describe '#class_list' do
212
- subject { super().class_list }
213
- it { is_expected.not_to include('on') }
214
- end
215
- end
216
-
217
- context "when status is 'So useless', class is 'woot awesome' and id is 'useless'" do
218
- subject { status_tag('So useless', class: 'woot awesome', id: 'useless') }
219
-
220
- describe '#content' do
221
- subject { super().content }
222
- it { is_expected.to eq 'So Useless' }
223
- end
224
-
225
- describe '#class_list' do
226
- subject { super().class_list }
227
- it { is_expected.to include('status_tag') }
228
- end
229
-
230
- describe '#class_list' do
231
- subject { super().class_list }
232
- it { is_expected.to include('so_useless') }
233
- end
234
-
235
- describe '#class_list' do
236
- subject { super().class_list }
237
- it { is_expected.to include('woot') }
238
- end
239
-
240
- describe '#class_list' do
241
- subject { super().class_list }
242
- it { is_expected.to include('awesome') }
243
- end
244
-
245
- describe '#id' do
246
- subject { super().id }
247
- it { is_expected.to eq 'useless' }
248
- end
249
- end
250
-
251
- context "when status is set to a Fixnum" do
252
- subject { status_tag(42) }
253
-
254
- describe '#content' do
255
- subject { super().content }
256
- it { is_expected.to eq '42' }
257
- end
258
-
259
- describe '#class_list' do
260
- subject { super().class_list }
261
- it { is_expected.not_to include('42') }
262
- end
263
- end
264
- end
265
- end
@@ -1,436 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Views::TableFor do
4
- describe "creating with the dsl" do
5
-
6
- let(:collection) do
7
- [
8
- Post.new(title: "First Post", starred: true),
9
- Post.new(title: "Second Post"),
10
- Post.new(title: "Third Post", starred: false)
11
- ]
12
- end
13
-
14
- let(:assigns){ { collection: collection } }
15
- let(:helpers){ mock_action_view }
16
-
17
- context "when creating a column using symbol argument" do
18
- let(:table) do
19
- render_arbre_component assigns, helpers do
20
- table_for(collection, :title)
21
- end
22
- end
23
-
24
- it "should create a table header based on the symbol" do
25
- expect(table.find_by_tag("th").first.content).to eq "Title"
26
- end
27
-
28
- it "should create a table row for each element in the collection" do
29
- expect(table.find_by_tag("tr").size).to eq 4 # 1 for head, 3 for rows
30
- end
31
-
32
- ["First Post", "Second Post", "Third Post"].each_with_index do |content, index|
33
- it "should create a cell with #{content}" do
34
- expect(table.find_by_tag("td")[index].content).to eq content
35
- end
36
- end
37
- end
38
-
39
- context "when creating many columns using symbol arguments" do
40
- let(:table) do
41
- render_arbre_component assigns, helpers do
42
- table_for(collection, :title, :created_at)
43
- end
44
- end
45
-
46
- it "should create a table header based on the symbol" do
47
- expect(table.find_by_tag("th").first.content).to eq "Title"
48
- expect(table.find_by_tag("th").last.content).to eq "Created At"
49
- end
50
-
51
- it "should add a class to each table header based on the col name" do
52
- expect(table.find_by_tag("th").first.class_list.to_a.join(' ')).to eq "col col-title"
53
- expect(table.find_by_tag("th").last.class_list.to_a.join(' ')).to eq "col col-created_at"
54
- end
55
-
56
- it "should create a table row for each element in the collection" do
57
- expect(table.find_by_tag("tr").size).to eq 4 # 1 for head, 3 for rows
58
- end
59
-
60
- it "should create a cell for each column" do
61
- expect(table.find_by_tag("td").size).to eq 6
62
- end
63
-
64
- it "should add a class for each cell based on the col name" do
65
- expect(table.find_by_tag("td").first.class_list.to_a.join(' ')).to eq "col col-title"
66
- expect(table.find_by_tag("td").last.class_list.to_a.join(' ')).to eq "col col-created_at"
67
- end
68
- end
69
-
70
- context "when creating a column using symbol arguments and another using block" do
71
- let(:table) do
72
- render_arbre_component assigns, helpers do
73
- table_for(collection, :title) do
74
- column :created_at
75
- end
76
- end
77
- end
78
-
79
- it "should create a table header based on the symbol" do
80
- expect(table.find_by_tag("th").first.content).to eq "Title"
81
- expect(table.find_by_tag("th").last.content).to eq "Created At"
82
- end
83
-
84
- it "should add a class to each table header based on the col name" do
85
- expect(table.find_by_tag("th").first.class_list.to_a.join(' ')).to eq "col col-title"
86
- expect(table.find_by_tag("th").last.class_list.to_a.join(' ')).to eq "col col-created_at"
87
- end
88
-
89
- it "should create a table row for each element in the collection" do
90
- expect(table.find_by_tag("tr").size).to eq 4 # 1 for head, 3 for rows
91
- end
92
-
93
- it "should create a cell for each column" do
94
- expect(table.find_by_tag("td").size).to eq 6
95
- end
96
-
97
- it "should add a class for each cell based on the col name" do
98
- expect(table.find_by_tag("td").first.class_list.to_a.join(' ')).to eq "col col-title"
99
- expect(table.find_by_tag("td").last.class_list.to_a.join(' ')).to eq "col col-created_at"
100
- end
101
- end
102
-
103
- context "when creating a column with a symbol" do
104
- let(:table) do
105
- render_arbre_component assigns, helpers do
106
- table_for(collection) do
107
- column :title
108
- end
109
- end
110
- end
111
-
112
- it "should create a table header based on the symbol" do
113
- expect(table.find_by_tag("th").first.content).to eq "Title"
114
- end
115
-
116
- it "should create a table row for each element in the collection" do
117
- expect(table.find_by_tag("tr").size).to eq 4 # 1 for head, 3 for rows
118
- end
119
-
120
- ["First Post", "Second Post", "Third Post"].each_with_index do |content, index|
121
- it "should create a cell with #{content}" do
122
- expect(table.find_by_tag("td")[index].content).to eq content
123
- end
124
- end
125
- end
126
-
127
- context "when creating many columns with symbols" do
128
- let(:table) do
129
- render_arbre_component assigns, helpers do
130
- table_for(collection) do
131
- column :title
132
- column :created_at
133
- end
134
- end
135
- end
136
-
137
- it "should create a table header based on the symbol" do
138
- expect(table.find_by_tag("th").first.content).to eq "Title"
139
- expect(table.find_by_tag("th").last.content).to eq "Created At"
140
- end
141
-
142
- it "should add a class to each table header based on the col name" do
143
- expect(table.find_by_tag("th").first.class_list.to_a.join(' ')).to eq "col col-title"
144
- expect(table.find_by_tag("th").last.class_list.to_a.join(' ')).to eq "col col-created_at"
145
- end
146
-
147
- it "should create a table row for each element in the collection" do
148
- expect(table.find_by_tag("tr").size).to eq 4 # 1 for head, 3 for rows
149
- end
150
-
151
- it "should create a cell for each column" do
152
- expect(table.find_by_tag("td").size).to eq 6
153
- end
154
-
155
- it "should add a class for each cell based on the col name" do
156
- expect(table.find_by_tag("td").first.class_list.to_a.join(' ')).to eq "col col-title"
157
- expect(table.find_by_tag("td").last.class_list.to_a.join(' ')).to eq "col col-created_at"
158
- end
159
- end
160
-
161
- context "when creating a column with block content" do
162
- let(:table) do
163
- render_arbre_component assigns, helpers do
164
- table_for(collection) do
165
- column :title do |post|
166
- span(post.title)
167
- end
168
- end
169
- end
170
- end
171
-
172
- it "should add a class to each table header based on the col name" do
173
- expect(table.find_by_tag("th").first.class_list).to include("col-title")
174
- end
175
-
176
- [ "<span>First Post</span>",
177
- "<span>Second Post</span>",
178
- "<span>Third Post</span>"
179
- ].each_with_index do |content, index|
180
- it "should create a cell with #{content}" do
181
- expect(table.find_by_tag("td")[index].content.strip).to eq content
182
- end
183
- end
184
- end
185
-
186
- context "when creating a column with multiple block content" do
187
- let(:table) do
188
- render_arbre_component assigns, helpers do
189
- table_for(collection) do
190
- column :title do |post|
191
- span(post.title)
192
- span(post.title)
193
- end
194
- end
195
- end
196
- end
197
-
198
- 3.times do |index|
199
- it "should create a cell with multiple elements in row #{index}" do
200
- expect(table.find_by_tag("td")[index].find_by_tag("span").size).to eq 2
201
- end
202
- end
203
- end
204
-
205
- context "when creating many columns with symbols, blocks and strings" do
206
- let(:table) do
207
- render_arbre_component assigns, helpers do
208
- table_for(collection) do
209
- column "My Custom Title", :title
210
- column :created_at, class: "datetime"
211
- end
212
- end
213
- end
214
-
215
- it "should add a class to each header based on class option or the col name" do
216
- expect(table.find_by_tag("th").first.class_list.to_a.join(' ')).to eq "col col-my_custom_title"
217
- expect(table.find_by_tag("th").last.class_list.to_a.join(' ')).to eq "col datetime"
218
- end
219
-
220
- it "should add a class to each cell based on class option or the col name" do
221
- expect(table.find_by_tag("td").first.class_list.to_a.join(' ')).to eq "col col-my_custom_title"
222
- expect(table.find_by_tag("td").last.class_list.to_a.join(' ')).to eq "col datetime"
223
- end
224
- end
225
-
226
- context "when using a single record instead of a collection" do
227
- let(:table) do
228
- render_arbre_component nil, helpers do
229
- table_for Post.new do
230
- column :title
231
- end
232
- end
233
- end
234
-
235
- it "should render" do
236
- expect(table.find_by_tag("th").first.content).to eq "Title"
237
- end
238
- end
239
-
240
- context "when using a single Hash" do
241
- let(:table) do
242
- render_arbre_component nil, helpers do
243
- table_for foo: 1, bar: 2 do
244
- column :foo
245
- column :bar
246
- end
247
- end
248
- end
249
-
250
- it "should render" do
251
- expect(table.find_by_tag("th")[0].content).to eq "Foo"
252
- expect(table.find_by_tag("th")[1].content).to eq "Bar"
253
- expect(table.find_by_tag("td")[0].content).to eq "1"
254
- expect(table.find_by_tag("td")[1].content).to eq "2"
255
- end
256
- end
257
-
258
- context "when using an Array of Hashes" do
259
- let(:table) do
260
- render_arbre_component nil, helpers do
261
- table_for [{foo: 1}, {foo: 2}] do
262
- column :foo
263
- end
264
- end
265
- end
266
-
267
- it "should render" do
268
- expect(table.find_by_tag("th")[0].content).to eq "Foo"
269
- expect(table.find_by_tag("td")[0].content).to eq "1"
270
- expect(table.find_by_tag("td")[1].content).to eq "2"
271
- end
272
- end
273
-
274
- context "when record attribute is boolean" do
275
- let(:table) do
276
- render_arbre_component assigns, helpers do
277
- table_for(collection) do
278
- column :starred
279
- end
280
- end
281
- end
282
-
283
- it "should render boolean attribute within status tag" do
284
- expect(table.find_by_tag("span").first.class_list.to_a.join(' ')).to eq "status_tag yes"
285
- expect(table.find_by_tag("span").first.content).to eq "Yes"
286
- expect(table.find_by_tag("span").last.class_list.to_a.join(' ')).to eq "status_tag no"
287
- expect(table.find_by_tag("span").last.content).to eq "No"
288
- end
289
- end
290
-
291
- context 'when row_class' do
292
- let(:table) do
293
- render_arbre_component assigns, helpers do
294
- table_for(collection, row_class: -> e { 'starred' if e.starred }) do
295
- column :starred
296
- end
297
- end
298
- end
299
-
300
- it 'should render boolean attribute within status tag' do
301
- trs = table.find_by_tag('tr')
302
- expect(trs.size).to eq 4
303
- expect(trs.first.class_list.to_a.join(' ')).to eq ''
304
- expect(trs.second.class_list.to_a.join(' ')).to eq 'odd starred'
305
- expect(trs.third.class_list.to_a.join(' ')).to eq 'even'
306
- expect(trs.fourth.class_list.to_a.join(' ')).to eq 'odd'
307
- end
308
- end
309
-
310
- context "when i18n option is specified" do
311
- around do |example|
312
- with_translation(activerecord: { attributes: { post: { title: "Name" } } }) do
313
- example.call
314
- end
315
- end
316
-
317
- let(:table) do
318
- render_arbre_component assigns, helpers do
319
- table_for(collection, i18n: Post) do
320
- column :title
321
- end
322
- end
323
- end
324
-
325
- it "should use localized column key" do
326
- expect(table.find_by_tag("th").first.content).to eq "Name"
327
- end
328
- end
329
-
330
- context "when i18n option is not specified" do
331
- around do |example|
332
- with_translation(activerecord: { attributes: { post: { title: "Name" } } }) do
333
- example.call
334
- end
335
- end
336
-
337
- let(:collection) do
338
- Post.create([
339
- { title: "First Post", starred: true },
340
- { title: "Second Post" },
341
- ])
342
- Post.where(starred: true)
343
- end
344
-
345
- let(:table) do
346
- render_arbre_component assigns, helpers do
347
- table_for(collection) do
348
- column :title
349
- end
350
- end
351
- end
352
-
353
- it "should predict localized key based on AR collection klass" do
354
- expect(table.find_by_tag("th").first.content).to eq "Name"
355
- end
356
- end
357
- end
358
-
359
- describe "column sorting" do
360
- def build_column(*args, &block)
361
- ActiveAdmin::Views::TableFor::Column.new(*args, &block)
362
- end
363
-
364
- subject { table_column }
365
-
366
- context "when default" do
367
- let(:table_column){ build_column(:username) }
368
- it { is_expected.to be_sortable }
369
-
370
- describe '#sort_key' do
371
- subject { super().sort_key }
372
- it{ is_expected.to eq("username") }
373
- end
374
- end
375
-
376
- context "when a block given with no sort key" do
377
- let(:table_column){ build_column("Username"){ } }
378
- it { is_expected.to be_sortable }
379
- end
380
-
381
- context "when a block given with a sort key" do
382
- let(:table_column){ build_column("Username", sortable: :username){ } }
383
- it { is_expected.to be_sortable }
384
-
385
- describe '#sort_key' do
386
- subject { super().sort_key }
387
- it{ is_expected.to eq("username") }
388
- end
389
- end
390
-
391
- context 'when a block given with virtual attribute and no sort key' do
392
- let(:table_column) { build_column(:virtual, nil, Post) { } }
393
- it { is_expected.not_to be_sortable }
394
- end
395
-
396
- context 'when symbol given as a data column should be sortable' do
397
- let(:table_column){ build_column('Username column', :username) }
398
- it { is_expected.to be_sortable }
399
-
400
- describe '#sort_key' do
401
- subject { super().sort_key }
402
- it { is_expected.to eq 'username' }
403
- end
404
- end
405
-
406
- context 'when sortable: true with a symbol and string' do
407
- let(:table_column){ build_column('Username column', :username, sortable: true) }
408
- it { is_expected.to be_sortable }
409
-
410
- describe '#sort_key' do
411
- subject { super().sort_key }
412
- it { is_expected.to eq 'username' }
413
- end
414
- end
415
-
416
- context "when sortable: false with a symbol" do
417
- let(:table_column){ build_column(:username, sortable: false) }
418
- it { is_expected.not_to be_sortable }
419
- end
420
-
421
- context "when sortable: false with a symbol and string" do
422
- let(:table_column){ build_column("Username", :username, sortable: false) }
423
- it { is_expected.not_to be_sortable }
424
- end
425
-
426
- context "when :sortable column is an association" do
427
- let(:table_column){ build_column("Category", :category, Post) }
428
- it { is_expected.not_to be_sortable }
429
- end
430
-
431
- context 'when :sortable column is an association and block given' do
432
- let(:table_column){ build_column('Category', :category, Post) { } }
433
- it { is_expected.not_to be_sortable }
434
- end
435
- end
436
- end