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