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,139 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe MethodOrProcHelper do
4
- let(:receiver) { double }
5
-
6
- let(:context) do
7
- obj = double receiver_in_context: receiver
8
- obj.extend MethodOrProcHelper
9
- obj
10
- end
11
-
12
- describe "#call_method_or_exec_proc" do
13
-
14
- it "should call the method in the context when a symbol" do
15
- expect(context.call_method_or_exec_proc(:receiver_in_context)).to eq receiver
16
- end
17
-
18
- it "should call the method in the context when a string" do
19
- expect(context.call_method_or_exec_proc("receiver_in_context")).to eq receiver
20
- end
21
-
22
- it "should exec a proc in the context" do
23
- test_proc = Proc.new{ raise "Success" if receiver_in_context }
24
-
25
- expect {
26
- context.call_method_or_exec_proc(test_proc)
27
- }.to raise_error("Success")
28
- end
29
-
30
- end
31
-
32
- describe "#call_method_or_proc_on" do
33
-
34
- [:hello, 'hello'].each do |key|
35
- context "when a #{key.class}" do
36
- it "should call the method on the receiver" do
37
- expect(receiver).to receive(key).and_return 'hello'
38
-
39
- expect(context.call_method_or_proc_on(receiver, key)).to eq 'hello'
40
- end
41
-
42
- it "should receive additional arguments" do
43
- expect(receiver).to receive(key).with(:world).and_return 'hello world'
44
-
45
- expect(context.call_method_or_proc_on(receiver, key, :world)).to eq 'hello world'
46
- end
47
- end
48
- end
49
-
50
- context "when a proc" do
51
-
52
- it "should exec the block in the context and pass in the receiver" do
53
- test_proc = Proc.new do |arg|
54
- raise "Success!" if arg == receiver_in_context
55
- end
56
-
57
- expect {
58
- context.call_method_or_proc_on(receiver,test_proc)
59
- }.to raise_error("Success!")
60
- end
61
-
62
- it "should receive additional arguments" do
63
- test_proc = Proc.new do |arg1, arg2|
64
- raise "Success!" if arg1 == receiver_in_context && arg2 == "Hello"
65
- end
66
-
67
- expect {
68
- context.call_method_or_proc_on(receiver, test_proc, "Hello")
69
- }.to raise_error("Success!")
70
- end
71
-
72
- end
73
-
74
- context "when a proc and exec: false" do
75
-
76
- it "should call the proc and pass in the receiver" do
77
- obj_not_in_context = double
78
-
79
- test_proc = Proc.new do |arg|
80
- raise "Success!" if arg == receiver && obj_not_in_context
81
- end
82
-
83
- expect {
84
- context.call_method_or_proc_on(receiver,test_proc, exec: false)
85
- }.to raise_error("Success!")
86
- end
87
-
88
- end
89
-
90
-
91
- end
92
-
93
- describe "#render_or_call_method_or_proc_on" do
94
- [ :symbol, Proc.new{} ].each do |key|
95
- context "when a #{key.class}" do
96
- it "should call #call_method_or_proc_on" do
97
- options = { foo: :bar }
98
- expect(context).to receive(:call_method_or_proc_on).with(receiver, key, options).and_return("data")
99
- expect(context.render_or_call_method_or_proc_on(receiver, key, options)).to eq "data"
100
- end
101
- end
102
- end
103
-
104
- context "when a string" do
105
- it "should return the string" do
106
- expect(context.render_or_call_method_or_proc_on(receiver, "string")).to eq "string"
107
- end
108
- end
109
- end
110
-
111
- describe "#render_in_context" do
112
- let(:args) { [1, 2, 3] }
113
-
114
- context "when a Proc" do
115
- let(:object) { Proc.new { } }
116
-
117
- it "should instance_exec the Proc" do
118
- expect(receiver).to receive(:instance_exec).with(args, &object).and_return("data")
119
- expect(context.render_in_context(receiver, object, args)).to eq "data"
120
- end
121
- end
122
-
123
- context "when a Symbol" do
124
- it "should send the symbol" do
125
- expect(receiver).to receive(:public_send).with(:symbol, args).and_return("data")
126
- expect(context.render_in_context(receiver, :symbol, args)).to eq "data"
127
- end
128
- end
129
-
130
- context "when a Object (not Proc or String)" do
131
- let(:object) { Object.new }
132
-
133
- it "should return the Object" do
134
- expect(context.render_in_context(receiver, object)).to eq object
135
- end
136
- end
137
- end
138
-
139
- end
@@ -1,40 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Views::ActionListPopover do
4
-
5
- let(:the_popover) do
6
- arbre {
7
- action_list_popover id: "my_awesome_action_list_popover" do
8
- action "My First Great Action", "#"
9
- action "My Second Great Action", "http://www.google.com"
10
- end
11
- }.children.first
12
- end
13
-
14
- it "should have an id" do
15
- expect(the_popover.id).to eq "my_awesome_action_list_popover"
16
- end
17
-
18
- describe "the action list" do
19
- subject do
20
- the_popover.find_by_class("popover_contents").first
21
- end
22
-
23
- describe '#tag_name' do
24
- subject { super().tag_name }
25
- it { is_expected.to eql("ul") }
26
- end
27
-
28
- describe '#content' do
29
- subject { super().content }
30
- it{ is_expected.to include("<li><a href=\"#\">My First Great Action</a></li>") }
31
- end
32
-
33
- describe '#content' do
34
- subject { super().content }
35
- it{ is_expected.to include("<li><a href=\"http://www.google.com\">My Second Great Action</a></li>") }
36
- end
37
-
38
- end
39
-
40
- end
@@ -1,272 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Views::AttributesTable do
4
-
5
- describe "creating with the dsl" do
6
- let(:helpers) { action_view }
7
-
8
- let(:post) do
9
- post = Post.new title: "Hello World", body: nil
10
- allow(post).to receive(:id){ 1 }
11
- allow(post).to receive(:new_record?){ false }
12
- post
13
- end
14
-
15
- let(:assigns){ { post: post } }
16
-
17
- # Loop through a few different ways to make the same table
18
- # and ensure that they produce the same results
19
- {
20
- "when attributes are passed in to the builder methods" => proc {
21
- render_arbre_component(assigns) {
22
- attributes_table_for post, :id, :title, :body
23
- }
24
- },
25
- "when attributes are built using the block" => proc {
26
- render_arbre_component(assigns) {
27
- attributes_table_for post do
28
- rows :id, :title, :body
29
- end
30
- }
31
- },
32
- "when each attribute is passed in by itself" => proc {
33
- render_arbre_component(assigns) {
34
- attributes_table_for post do
35
- row :id
36
- row :title
37
- row :body
38
- end
39
- }
40
- },
41
- "when you create each row with a custom block" => proc {
42
- render_arbre_component(assigns) {
43
- attributes_table_for post do
44
- row("Id") { post.id }
45
- row("Title"){ post.title }
46
- row("Body") { post.body }
47
- end
48
- }
49
- },
50
- "when you create each row with a custom block that returns nil" => proc {
51
- render_arbre_component(assigns) {
52
- attributes_table_for post do
53
- row("Id") { text_node post.id; nil }
54
- row("Title"){ text_node post.title; nil }
55
- row("Body") { text_node post.body; nil }
56
- end
57
- }
58
- },
59
- }.each do |context_title, table_decleration|
60
- context context_title do
61
- let(:table) { instance_eval &table_decleration }
62
-
63
- it "should render a div wrapper with the class '.attributes_table'" do
64
- expect(table.tag_name).to eq 'div'
65
- expect(table.attr(:class)).to include('attributes_table')
66
- end
67
-
68
- it "should add id and type class" do
69
- expect(table.class_names).to include("post")
70
- expect(table.id).to eq "attributes_table_post_1"
71
- end
72
-
73
- it "should render 3 rows" do
74
- expect(table.find_by_tag("tr").size).to eq 3
75
- end
76
-
77
- describe "rendering the rows" do
78
- [
79
- ["Id" , "1"],
80
- ["Title" , "Hello World"],
81
- ["Body" , "<span class=\"empty\">Empty</span>"]
82
- ].each_with_index do |(title, content), i|
83
- describe "for #{title}" do
84
- let(:current_row){ table.find_by_tag("tr")[i] }
85
-
86
- it "should have the title '#{title}'" do
87
- expect(current_row.find_by_tag("th").first.content).to eq title
88
- end
89
-
90
- it "should have the content '#{content}'" do
91
- expect(current_row.find_by_tag("td").first.content.chomp.strip).to eq content
92
- end
93
- end
94
- end
95
- end # describe rendering rows
96
-
97
- end
98
- end # describe dsl styles
99
-
100
- it "should add a class for each row based on the col name" do
101
- table = render_arbre_component(assigns) {
102
- attributes_table_for(post) do
103
- row :title
104
- row :created_at
105
- end
106
- }
107
- expect(table.find_by_tag("tr").first.to_s.
108
- split("\n").first.lstrip).
109
- to eq '<tr class="row row-title">'
110
-
111
- expect(table.find_by_tag("tr").last.to_s.
112
- split("\n").first.lstrip).
113
- to eq '<tr class="row row-created_at">'
114
- end
115
-
116
- it "should allow html options for the row itself" do
117
- table = render_arbre_component(assigns) {
118
- attributes_table_for(post) do
119
- row("Wee", class: "custom_row", style: "custom_style") { }
120
- end
121
- }
122
- expect(table.find_by_tag("tr").first.to_s.split("\n").first.lstrip).
123
- to eq '<tr class="row custom_row" style="custom_style">'
124
- end
125
-
126
- it "should allow html content inside the attributes table" do
127
- table = render_arbre_component(assigns) {
128
- attributes_table_for(post) do
129
- row("ID"){ span(post.id, class: 'id') }
130
- end
131
- }
132
- expect(table.find_by_tag("td").first.content.chomp.strip).to eq "<span class=\"id\">1</span>"
133
- end
134
-
135
- context 'an attribute ending in _id' do
136
- before do
137
- post.foo_id = 23
138
- post.author = User.new username: 'john_doe', first_name: 'John', last_name: 'Doe'
139
- end
140
- it 'should call the association if one exists' do
141
- table = render_arbre_component assigns do
142
- attributes_table_for post, :author_id
143
- end
144
- expect(table.find_by_tag('th').first.content).to eq 'Author'
145
- expect(table.find_by_tag('td').first.content).to eq 'John Doe'
146
- end
147
- it 'should not attempt to call a nonexistant association' do
148
- table = render_arbre_component assigns do
149
- attributes_table_for post, :foo_id
150
- end
151
- expect(table.find_by_tag('th').first.content).to eq 'Foo'
152
- expect(table.find_by_tag('td').first.content).to eq '23'
153
- end
154
- end
155
-
156
- context "with a collection" do
157
- let(:posts) do
158
- [Post.new(title: "Hello World", id: 1), Post.new(title: "Multi Column", id: 2)].each_with_index do |post, index|
159
- allow(post).to receive(:id).and_return(index + 1)
160
- allow(post).to receive(:new_record?).and_return(false)
161
- end
162
- end
163
-
164
- let(:assigns) { { posts: posts } }
165
-
166
- let(:table) do
167
- render_arbre_component(assigns) do
168
- attributes_table_for posts, :id, :title
169
- end
170
- end
171
-
172
- it "does not set id on the table" do
173
- expect(table.attr(:id)).to be_nil
174
- end
175
-
176
- context "colgroup" do
177
- let(:cols) { table.find_by_tag "col" }
178
-
179
- it "contains a col for each record (plus headers)" do
180
- expect(cols.size).to eq (2 + 1)
181
- end
182
-
183
- it "assigns an id to each col" do
184
- cols[1..-1].each_with_index do |col, index|
185
- expect(col.id).to eq "attributes_table_post_#{index + 1}"
186
- end
187
- end
188
-
189
- it "assigns a class to each col" do
190
- cols[1..-1].each_with_index do |col, index|
191
- expect(col.class_names).to include("post")
192
- end
193
- end
194
-
195
- it "assigns alternation classes to each col" do
196
- cols[1..-1].each_with_index do |col, index|
197
- expect(col.class_names).to include(["even", "odd"][index % 2])
198
- end
199
- end
200
- end
201
-
202
- context "when rendering the rows" do
203
- it "should contain 3 columns" do
204
- expect(table.find_by_tag("tr").first.children.size).to eq 3
205
- end
206
-
207
- [
208
- ["Id" , "1", "2"],
209
- ["Title", "Hello World", "Multi Column"],
210
- ].each_with_index do |set, i|
211
- describe "for #{set[0]}" do
212
- let(:title){ set[0] }
213
- let(:content){ set[1] }
214
- let(:current_row){ table.find_by_tag("tr")[i] }
215
-
216
- it "should have the title '#{set[0]}'" do
217
- expect(current_row.find_by_tag("th").first.content).to eq title
218
- end
219
-
220
- context "with defined attribute name translation" do
221
- it "should have the translated attribute name in the title" do
222
- with_translation activerecord: {attributes: {post: {title: 'Translated Title', id: 'Translated Id'}}} do
223
- expect(current_row.find_by_tag("th").first.content).to eq "Translated #{title}"
224
- end
225
- end
226
- end
227
-
228
- set[1..-1].each_with_index do |content, index|
229
- it "column #{index} should have the content '#{content}'" do
230
- expect(current_row.find_by_tag("td")[index].content.chomp.strip).to eq content
231
- end
232
- end
233
- end
234
- end
235
- end # describe rendering rows
236
- end # with a collection
237
-
238
-
239
- context "when using a single Hash" do
240
- let(:table) do
241
- render_arbre_component nil, helpers do
242
- attributes_table_for foo: 1, bar: 2 do
243
- row :foo
244
- row :bar
245
- end
246
- end
247
- end
248
- it "should render" do
249
- expect(table.find_by_tag("th")[0].content).to eq "Foo"
250
- expect(table.find_by_tag("th")[1].content).to eq "Bar"
251
- expect(table.find_by_tag("td")[0].content).to eq "1"
252
- expect(table.find_by_tag("td")[1].content).to eq "2"
253
- end
254
- end
255
-
256
- context "when using an Array of Hashes" do
257
- let(:table) do
258
- render_arbre_component nil, helpers do
259
- attributes_table_for [{foo: 1},{foo: 2}] do
260
- row :foo
261
- end
262
- end
263
- end
264
- it "should render" do
265
- expect(table.find_by_tag("th")[0].content).to eq "Foo"
266
- expect(table.find_by_tag("td")[0].content).to eq "1"
267
- expect(table.find_by_tag("td")[1].content).to eq "2"
268
- end
269
- end
270
- end
271
-
272
- end
@@ -1,47 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/batch_actions/views/batch_action_popover'
3
-
4
- describe ActiveAdmin::BatchActions::BatchActionPopover do
5
-
6
- let(:the_popover) do
7
- render_arbre_component do
8
- batch_action_popover do
9
- action ActiveAdmin::BatchAction.new( :action_1, "Action 1" )
10
- action ActiveAdmin::BatchAction.new( :action_2, "Action 2" )
11
- action ActiveAdmin::BatchAction.new( :action_3, "Action 3" )
12
- end
13
- end
14
- end
15
-
16
- it "should have an id" do
17
- expect(the_popover.id).to eq "batch_actions_popover"
18
- end
19
-
20
- describe "the action list" do
21
- subject do
22
- the_popover.find_by_class("popover_contents").first
23
- end
24
-
25
- describe '#tag_name' do
26
- subject { super().tag_name }
27
- it { is_expected.to eql("ul") }
28
- end
29
-
30
- describe '#content' do
31
- subject { super().content }
32
- it{ is_expected.to include("class=\"batch_action\" data-action=\"action_1\"") }
33
- end
34
-
35
- describe '#content' do
36
- subject { super().content }
37
- it{ is_expected.to include("class=\"batch_action\" data-action=\"action_2\"") }
38
- end
39
-
40
- describe '#content' do
41
- subject { super().content }
42
- it{ is_expected.to include("class=\"batch_action\" data-action=\"action_3\"") }
43
- end
44
-
45
- end
46
-
47
- end
@@ -1,27 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Views::BlankSlate do
4
-
5
- describe "#blank_slate" do
6
- subject do
7
- render_arbre_component do
8
- blank_slate("There are no Posts yet. <a href=\"/posts/new\">Create one</a></span>")
9
- end
10
- end
11
-
12
- describe '#tag_name' do
13
- subject { super().tag_name }
14
- it { is_expected.to eql 'div' }
15
- end
16
-
17
- describe '#class_list' do
18
- subject { super().class_list }
19
- it { is_expected.to include('blank_slate_container') }
20
- end
21
-
22
- describe '#content' do
23
- subject { super().content }
24
- it { is_expected.to include '<span class="blank_slate">There are no Posts yet. <a href="/posts/new">Create one</a></span>' }
25
- end
26
- end
27
- end
@@ -1,172 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Views::Columns do
4
-
5
- describe "Rendering one column" do
6
- let(:cols) do
7
- render_arbre_component do
8
- columns do
9
- column { span "Hello World" }
10
- end
11
- end
12
- end
13
-
14
- it "should have the class .columns" do
15
- expect(cols.class_list).to include("columns")
16
- end
17
-
18
- it "should have one column" do
19
- expect(cols.children.size).to eq 1
20
- expect(cols.children.first.class_list).to include("column")
21
- end
22
-
23
- it "should have one column with the width 100.0%" do
24
- expect(cols.children.first.attr(:style)).to include("width: 100.0%")
25
- end
26
- end
27
-
28
- describe "Rendering two columns" do
29
- let(:cols) do
30
- render_arbre_component do
31
- columns do
32
- column { span "Hello World" }
33
- column { span "Hello World" }
34
- end
35
- end
36
- end
37
-
38
- it "should have two columns" do
39
- expect(cols.children.size).to eq 2
40
- end
41
-
42
- it "should have a first column with width 49% and margin 2%" do
43
- expect(cols.children.first.attr(:style)).to eq "width: 49.0%; margin-right: 2%;"
44
- end
45
-
46
- it "should have a second column with width 49% and no right margin" do
47
- expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
48
- end
49
- end
50
-
51
- describe "Rendering four columns" do
52
- let(:cols) do
53
- render_arbre_component do
54
- columns do
55
- column { span "Hello World" }
56
- column { span "Hello World" }
57
- column { span "Hello World" }
58
- column { span "Hello World" }
59
- end
60
- end
61
- end
62
-
63
- it "should have four columns" do
64
- expect(cols.children.size).to eq 4
65
- end
66
-
67
-
68
- (0..2).to_a.each do |index|
69
- it "should have column #{index + 1} with width 49% and margin 2%" do
70
- expect(cols.children[index].attr(:style)).to eq "width: 23.5%; margin-right: 2%;"
71
- end
72
- end
73
-
74
- it "should have column 4 with width 49% and no margin" do
75
- expect(cols.children[3].attr(:style)).to eq "width: 23.5%;"
76
- end
77
- end
78
-
79
-
80
- describe "Column Spans" do
81
- let(:cols) do
82
- render_arbre_component do
83
- columns do
84
- column(span: 2){ "Hello World" }
85
- column(){ "Hello World" }
86
- column(){ "Hello World" }
87
- end
88
- end
89
- end
90
-
91
- it "should set the span when declared" do
92
- expect(cols.children.first.attr(:style)).to eq "width: 49.0%; margin-right: 2%;"
93
- end
94
-
95
- it "should default to 1 if not passed in" do
96
- expect(cols.children.last.attr(:style)).to eq "width: 23.5%;"
97
- end
98
- end
99
-
100
- describe "Column max width" do
101
-
102
- let(:cols) do
103
- render_arbre_component do
104
- columns do
105
- column(max_width: "100px"){ "Hello World" }
106
- column(){ "Hello World" }
107
- end
108
- end
109
- end
110
-
111
- it "should set the max with if passed in" do
112
- expect(cols.children.first.attr(:style)).to eq "width: 49.0%; max-width: 100px; margin-right: 2%;"
113
- end
114
-
115
- it "should omit the value if not present" do
116
- expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
117
- end
118
-
119
- context "when passed an integer value" do
120
- let(:cols) do
121
- render_arbre_component do
122
- columns do
123
- column(max_width: 100){ "Hello World" }
124
- column(){ "Hello World" }
125
- end
126
- end
127
- end
128
-
129
- it "should be treated as pixels" do
130
- expect(cols.children.first.attr(:style)).to eq "width: 49.0%; max-width: 100px; margin-right: 2%;"
131
- end
132
- end
133
-
134
- end
135
-
136
- describe "Column min width" do
137
-
138
- let(:cols) do
139
- render_arbre_component do
140
- columns do
141
- column(min_width: "100px"){ "Hello World" }
142
- column(){ "Hello World" }
143
- end
144
- end
145
- end
146
-
147
- it "should set the min with if passed in" do
148
- expect(cols.children.first.attr(:style)).to eq "width: 49.0%; min-width: 100px; margin-right: 2%;"
149
- end
150
-
151
- it "should omit the value if not present" do
152
- expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
153
- end
154
-
155
- context "when passed an integer value" do
156
- let(:cols) do
157
- render_arbre_component do
158
- columns do
159
- column(min_width: 100){ "Hello World" }
160
- column(){ "Hello World" }
161
- end
162
- end
163
- end
164
-
165
- it "should be treated as pixels" do
166
- expect(cols.children.first.attr(:style)).to eq "width: 49.0%; min-width: 100px; margin-right: 2%;"
167
- end
168
- end
169
-
170
- end
171
-
172
- end