activeadmin 1.0.0.pre4 → 2.4.0

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

Potentially problematic release.


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

Files changed (542) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +529 -52
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +129 -58
  5. data/README.md +80 -79
  6. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  8. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  9. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  10. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  11. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  12. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  13. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
  14. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  15. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  16. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  17. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  18. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  19. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  20. data/app/assets/stylesheets/active_admin/_base.scss +2 -2
  21. data/app/assets/stylesheets/active_admin/_forms.scss +19 -26
  22. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  23. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  24. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  25. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  26. data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
  27. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  28. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
  29. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/print.scss +2 -3
  31. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  32. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  33. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  34. data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
  35. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  36. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  37. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  38. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  39. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  40. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  41. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  42. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  43. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  44. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  45. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  46. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  47. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  48. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  49. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  50. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  51. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  52. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  53. data/config/locales/ar.yml +4 -5
  54. data/config/locales/bg.yml +1 -3
  55. data/config/locales/bs.yml +1 -2
  56. data/config/locales/ca.yml +2 -4
  57. data/config/locales/cs.yml +1 -2
  58. data/config/locales/da.yml +45 -14
  59. data/config/locales/de-CH.yml +2 -3
  60. data/config/locales/de.yml +30 -3
  61. data/config/locales/el.yml +3 -4
  62. data/config/locales/en-CA.yml +139 -0
  63. data/config/locales/en-GB.yml +44 -3
  64. data/config/locales/en.yml +31 -5
  65. data/config/locales/eo.yml +145 -0
  66. data/config/locales/es-MX.yml +5 -3
  67. data/config/locales/es.yml +32 -6
  68. data/config/locales/fa.yml +1 -2
  69. data/config/locales/fi.yml +2 -3
  70. data/config/locales/fr.yml +27 -5
  71. data/config/locales/he.yml +53 -7
  72. data/config/locales/hr.yml +1 -2
  73. data/config/locales/hu.yml +5 -2
  74. data/config/locales/id.yml +2 -3
  75. data/config/locales/it.yml +15 -7
  76. data/config/locales/ja.yml +8 -3
  77. data/config/locales/ko.yml +1 -2
  78. data/config/locales/lt.yml +27 -6
  79. data/config/locales/lv.yml +1 -2
  80. data/config/locales/mk.yml +134 -0
  81. data/config/locales/nb.yml +16 -7
  82. data/config/locales/nl.yml +13 -3
  83. data/config/locales/pl.yml +75 -5
  84. data/config/locales/pt-BR.yml +10 -3
  85. data/config/locales/pt-PT.yml +1 -2
  86. data/config/locales/ro.yml +1 -2
  87. data/config/locales/ru.yml +5 -3
  88. data/config/locales/sk.yml +168 -0
  89. data/config/locales/sv-SE.yml +4 -3
  90. data/config/locales/tr.yml +10 -2
  91. data/config/locales/uk.yml +4 -3
  92. data/config/locales/vi.yml +48 -8
  93. data/config/locales/zh-CN.yml +38 -7
  94. data/config/locales/zh-TW.yml +2 -3
  95. data/docs/.gitignore +1 -0
  96. data/docs/0-installation.md +19 -13
  97. data/docs/1-general-configuration.md +37 -4
  98. data/docs/10-custom-pages.md +47 -3
  99. data/docs/11-decorators.md +4 -0
  100. data/docs/12-arbre-components.md +73 -9
  101. data/docs/13-authorization-adapter.md +72 -35
  102. data/docs/14-gotchas.md +57 -19
  103. data/docs/2-resource-customization.md +64 -20
  104. data/docs/3-index-pages/custom-index.md +5 -1
  105. data/docs/3-index-pages/index-as-block.md +3 -5
  106. data/docs/3-index-pages/index-as-blog.md +4 -6
  107. data/docs/3-index-pages/index-as-grid.md +3 -5
  108. data/docs/3-index-pages/index-as-table.md +33 -12
  109. data/docs/3-index-pages.md +65 -9
  110. data/docs/4-csv-format.md +16 -0
  111. data/docs/5-forms.md +78 -17
  112. data/docs/6-show-pages.md +5 -29
  113. data/docs/7-sidebars.md +5 -1
  114. data/docs/8-custom-actions.md +18 -1
  115. data/docs/9-batch-actions.md +8 -4
  116. data/docs/CNAME +1 -0
  117. data/docs/Gemfile +3 -0
  118. data/docs/Gemfile.lock +248 -0
  119. data/docs/_config.yml +4 -0
  120. data/docs/_includes/footer.html +8 -0
  121. data/docs/_includes/google-analytics.html +16 -0
  122. data/docs/_includes/head.html +7 -0
  123. data/docs/_includes/toc.html +98 -0
  124. data/docs/_includes/top-menu.html +17 -0
  125. data/docs/_layouts/default.html +21 -0
  126. data/docs/documentation.md +60 -0
  127. data/docs/images/activeadmin.png +0 -0
  128. data/docs/images/code-header.png +0 -0
  129. data/docs/images/divider.png +0 -0
  130. data/docs/images/features.png +0 -0
  131. data/docs/images/tidelift.svg +14 -0
  132. data/docs/index.html +226 -0
  133. data/docs/stylesheets/main.css +1205 -0
  134. data/lib/active_admin/abstract_view_factory.rb +13 -51
  135. data/lib/active_admin/application.rb +50 -140
  136. data/lib/active_admin/application_settings.rb +42 -0
  137. data/lib/active_admin/authorization_adapter.rb +0 -3
  138. data/lib/active_admin/base_controller/authorization.rb +4 -7
  139. data/lib/active_admin/base_controller/menu.rb +10 -14
  140. data/lib/active_admin/base_controller.rb +8 -14
  141. data/lib/active_admin/batch_actions/controller.rb +3 -3
  142. data/lib/active_admin/batch_actions/resource_extension.rb +9 -13
  143. data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
  144. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
  145. data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
  146. data/lib/active_admin/callbacks.rb +1 -1
  147. data/lib/active_admin/controller_action.rb +2 -1
  148. data/lib/active_admin/csv_builder.rb +15 -12
  149. data/lib/active_admin/dependency.rb +8 -76
  150. data/lib/active_admin/deprecation.rb +0 -25
  151. data/lib/active_admin/devise.rb +3 -3
  152. data/lib/active_admin/dsl.rb +3 -16
  153. data/lib/active_admin/dynamic_setting.rb +38 -0
  154. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  155. data/lib/active_admin/engine.rb +5 -0
  156. data/lib/active_admin/error.rb +5 -3
  157. data/lib/active_admin/filters/active.rb +13 -14
  158. data/lib/active_admin/filters/active_filter.rb +124 -0
  159. data/lib/active_admin/filters/active_sidebar.rb +54 -0
  160. data/lib/active_admin/filters/forms.rb +6 -4
  161. data/lib/active_admin/filters/formtastic_addons.rb +2 -2
  162. data/lib/active_admin/filters/resource_extension.rb +28 -43
  163. data/lib/active_admin/filters.rb +2 -0
  164. data/lib/active_admin/form_builder.rb +100 -59
  165. data/lib/active_admin/generators/boilerplate.rb +12 -4
  166. data/lib/active_admin/helpers/collection.rb +2 -0
  167. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  168. data/lib/active_admin/inputs/datepicker_input.rb +12 -5
  169. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  170. data/lib/active_admin/inputs/filters/date_range_input.rb +21 -8
  171. data/lib/active_admin/inputs/filters/select_input.rb +6 -3
  172. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  173. data/lib/active_admin/inputs.rb +1 -0
  174. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  175. data/lib/active_admin/localizers.rb +11 -0
  176. data/lib/active_admin/menu.rb +6 -12
  177. data/lib/active_admin/menu_collection.rb +0 -2
  178. data/lib/active_admin/menu_item.rb +4 -32
  179. data/lib/active_admin/namespace.rb +36 -17
  180. data/lib/active_admin/namespace_settings.rb +123 -0
  181. data/lib/active_admin/order_clause.rb +30 -8
  182. data/lib/active_admin/orm/active_record/comments/comment.rb +3 -17
  183. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +19 -7
  184. data/lib/active_admin/orm/active_record/comments.rb +17 -11
  185. data/lib/active_admin/page.rb +23 -4
  186. data/lib/active_admin/page_controller.rb +2 -6
  187. data/lib/active_admin/page_dsl.rb +5 -1
  188. data/lib/active_admin/page_presenter.rb +2 -1
  189. data/lib/active_admin/pundit_adapter.rb +18 -5
  190. data/lib/active_admin/resource/action_items.rb +17 -5
  191. data/lib/active_admin/resource/attributes.rb +47 -0
  192. data/lib/active_admin/resource/belongs_to.rb +10 -1
  193. data/lib/active_admin/resource/menu.rb +7 -4
  194. data/lib/active_admin/resource/model.rb +15 -0
  195. data/lib/active_admin/resource/naming.rb +3 -3
  196. data/lib/active_admin/resource/ordering.rb +11 -0
  197. data/lib/active_admin/resource/page_presenters.rb +1 -1
  198. data/lib/active_admin/resource/routes.rb +52 -20
  199. data/lib/active_admin/resource/scopes.rb +5 -3
  200. data/lib/active_admin/resource/sidebars.rb +1 -1
  201. data/lib/active_admin/resource.rb +59 -7
  202. data/lib/active_admin/resource_collection.rb +2 -2
  203. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  204. data/lib/active_admin/resource_controller/data_access.rb +32 -27
  205. data/lib/active_admin/resource_controller/decorators.rb +5 -5
  206. data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
  207. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  208. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  209. data/lib/active_admin/resource_controller.rb +15 -0
  210. data/lib/active_admin/resource_dsl.rb +58 -24
  211. data/lib/active_admin/router.rb +90 -82
  212. data/lib/active_admin/scope.rb +20 -12
  213. data/lib/active_admin/settings_node.rb +19 -0
  214. data/lib/active_admin/sidebar_section.rb +3 -1
  215. data/lib/active_admin/version.rb +1 -1
  216. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
  217. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
  218. data/lib/active_admin/view_helpers/display_helper.rb +28 -16
  219. data/lib/active_admin/view_helpers/download_format_links_helper.rb +13 -0
  220. data/lib/active_admin/view_helpers/fields_for.rb +1 -2
  221. data/lib/active_admin/view_helpers/form_helper.rb +2 -2
  222. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +8 -1
  223. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  224. data/lib/active_admin/view_helpers.rb +2 -1
  225. data/lib/active_admin/views/action_items.rb +1 -1
  226. data/lib/active_admin/views/components/active_admin_form.rb +43 -11
  227. data/lib/active_admin/views/components/attributes_table.rb +4 -4
  228. data/lib/active_admin/views/components/columns.rb +3 -3
  229. data/lib/active_admin/views/components/dropdown_menu.rb +4 -4
  230. data/lib/active_admin/views/components/index_list.rb +4 -3
  231. data/lib/active_admin/views/components/menu.rb +32 -0
  232. data/lib/active_admin/views/components/menu_item.rb +58 -0
  233. data/lib/active_admin/views/components/paginated_collection.rb +7 -11
  234. data/lib/active_admin/views/components/scopes.rb +14 -8
  235. data/lib/active_admin/views/components/sidebar.rb +13 -0
  236. data/lib/active_admin/views/components/site_title.rb +5 -6
  237. data/lib/active_admin/views/components/status_tag.rb +11 -16
  238. data/lib/active_admin/views/components/table_for.rb +7 -16
  239. data/lib/active_admin/views/components/tabs.rb +15 -3
  240. data/lib/active_admin/views/footer.rb +14 -4
  241. data/lib/active_admin/views/header.rb +3 -16
  242. data/lib/active_admin/views/index_as_blog.rb +2 -3
  243. data/lib/active_admin/views/index_as_grid.rb +25 -25
  244. data/lib/active_admin/views/index_as_table.rb +39 -13
  245. data/lib/active_admin/views/pages/base.rb +36 -57
  246. data/lib/active_admin/views/pages/form.rb +2 -3
  247. data/lib/active_admin/views/pages/layout.rb +1 -1
  248. data/lib/active_admin/views/pages/show.rb +8 -2
  249. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  250. data/lib/active_admin/views/title_bar.rb +4 -4
  251. data/lib/active_admin/views.rb +1 -1
  252. data/lib/active_admin.rb +11 -7
  253. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  254. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  255. data/lib/generators/active_admin/devise/devise_generator.rb +8 -5
  256. data/lib/generators/active_admin/install/install_generator.rb +7 -3
  257. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +60 -4
  258. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
  259. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  260. data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
  261. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  262. data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
  263. data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
  264. data/lib/ransack_ext.rb +5 -5
  265. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  266. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  267. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  268. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  269. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  270. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  271. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  272. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  273. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  274. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  275. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  276. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  277. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  278. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  279. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  280. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  281. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  282. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  283. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  284. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  285. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  286. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  287. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  288. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  289. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  290. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  291. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  292. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  293. data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
  294. metadata +190 -539
  295. data/.gitignore +0 -49
  296. data/.hound.yml +0 -14
  297. data/.travis.yml +0 -46
  298. data/.yardopts +0 -8
  299. data/Gemfile +0 -75
  300. data/Guardfile +0 -8
  301. data/Rakefile +0 -33
  302. data/activeadmin.gemspec +0 -31
  303. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  304. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  305. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  306. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  307. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  308. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  309. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -15
  310. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  311. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -11
  312. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  313. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
  314. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  315. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  316. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  317. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  318. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -31
  319. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  320. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  321. data/cucumber.yml +0 -3
  322. data/features/action_item.feature +0 -73
  323. data/features/authorization.feature +0 -64
  324. data/features/authorization_cancan.feature +0 -52
  325. data/features/authorization_pundit.feature +0 -37
  326. data/features/belongs_to.feature +0 -66
  327. data/features/breadcrumb.feature +0 -75
  328. data/features/comments/commenting.feature +0 -171
  329. data/features/comments/viewing_index.feature +0 -19
  330. data/features/dashboard.feature +0 -16
  331. data/features/decorators.feature +0 -43
  332. data/features/development_reloading.feature +0 -30
  333. data/features/edit_page.feature +0 -117
  334. data/features/favicon.feature +0 -20
  335. data/features/first_boot.feature +0 -16
  336. data/features/global_navigation.feature +0 -29
  337. data/features/i18n.feature +0 -43
  338. data/features/index/batch_actions.feature +0 -196
  339. data/features/index/filters.feature +0 -161
  340. data/features/index/format_as_csv.feature +0 -203
  341. data/features/index/formats.feature +0 -66
  342. data/features/index/index_as_block.feature +0 -15
  343. data/features/index/index_as_blog.feature +0 -69
  344. data/features/index/index_as_grid.feature +0 -45
  345. data/features/index/index_as_table.feature +0 -291
  346. data/features/index/index_blank_slate.feature +0 -83
  347. data/features/index/index_parameters.feature +0 -75
  348. data/features/index/index_scope_to.feature +0 -56
  349. data/features/index/index_scopes.feature +0 -251
  350. data/features/index/page_title.feature +0 -42
  351. data/features/index/pagination.feature +0 -63
  352. data/features/index/switch_index_view.feature +0 -73
  353. data/features/menu.feature +0 -53
  354. data/features/meta_tags.feature +0 -21
  355. data/features/new_page.feature +0 -109
  356. data/features/registering_assets.feature +0 -34
  357. data/features/registering_pages.feature +0 -148
  358. data/features/registering_resources.feature +0 -33
  359. data/features/renamed_resource.feature +0 -32
  360. data/features/root_to.feature +0 -17
  361. data/features/show/columns.feature +0 -40
  362. data/features/show/default_content.feature +0 -44
  363. data/features/show/page_title.feature +0 -59
  364. data/features/show/tabs.feature +0 -27
  365. data/features/sidebar_sections.feature +0 -210
  366. data/features/site_title.feature +0 -47
  367. data/features/specifying_actions.feature +0 -93
  368. data/features/step_definitions/action_item_steps.rb +0 -7
  369. data/features/step_definitions/action_link_steps.rb +0 -20
  370. data/features/step_definitions/additional_web_steps.rb +0 -81
  371. data/features/step_definitions/asset_steps.rb +0 -15
  372. data/features/step_definitions/attribute_steps.rb +0 -18
  373. data/features/step_definitions/batch_action_steps.rb +0 -81
  374. data/features/step_definitions/blog_steps.rb +0 -3
  375. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  376. data/features/step_definitions/column_steps.rb +0 -8
  377. data/features/step_definitions/comment_steps.rb +0 -12
  378. data/features/step_definitions/configuration_steps.rb +0 -100
  379. data/features/step_definitions/dashboard_steps.rb +0 -15
  380. data/features/step_definitions/factory_steps.rb +0 -35
  381. data/features/step_definitions/filter_steps.rb +0 -39
  382. data/features/step_definitions/flash_steps.rb +0 -11
  383. data/features/step_definitions/format_steps.rb +0 -52
  384. data/features/step_definitions/i18n_steps.rb +0 -3
  385. data/features/step_definitions/index_scope_steps.rb +0 -21
  386. data/features/step_definitions/index_views_steps.rb +0 -3
  387. data/features/step_definitions/layout_steps.rb +0 -3
  388. data/features/step_definitions/member_link_steps.rb +0 -7
  389. data/features/step_definitions/menu_steps.rb +0 -11
  390. data/features/step_definitions/meta_tag_steps.rb +0 -3
  391. data/features/step_definitions/pagination_steps.rb +0 -15
  392. data/features/step_definitions/sidebar_steps.rb +0 -13
  393. data/features/step_definitions/site_title_steps.rb +0 -17
  394. data/features/step_definitions/symbol_leak_steps.rb +0 -3
  395. data/features/step_definitions/tab_steps.rb +0 -8
  396. data/features/step_definitions/table_steps.rb +0 -120
  397. data/features/step_definitions/user_steps.rb +0 -45
  398. data/features/step_definitions/web_steps.rb +0 -85
  399. data/features/sti_resource.feature +0 -65
  400. data/features/strong_parameters.feature +0 -73
  401. data/features/support/env.rb +0 -162
  402. data/features/support/paths.rb +0 -71
  403. data/features/support/selectors.rb +0 -45
  404. data/features/symbol_leak.feature +0 -35
  405. data/features/users/logging_in.feature +0 -34
  406. data/features/users/logging_out.feature +0 -13
  407. data/features/users/resetting_password.feature +0 -34
  408. data/lib/active_admin/event.rb +0 -24
  409. data/lib/active_admin/filters/humanized.rb +0 -68
  410. data/lib/active_admin/helpers/settings.rb +0 -115
  411. data/lib/active_admin/reloader.rb +0 -25
  412. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  413. data/lib/generators/active_admin/resource/templates/admin.rb +0 -45
  414. data/script/local +0 -53
  415. data/script/travis_cache +0 -107
  416. data/script/use_rails +0 -53
  417. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  418. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  419. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  420. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  421. data/spec/javascripts/fixtures/flashes.html +0 -2
  422. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  423. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  424. data/spec/javascripts/support/jasmine.yml +0 -74
  425. data/spec/javascripts/support/jasmine_config.rb +0 -23
  426. data/spec/javascripts/support/jasmine_runner.rb +0 -32
  427. data/spec/rails_helper.rb +0 -169
  428. data/spec/requests/default_namespace_spec.rb +0 -61
  429. data/spec/requests/javascript_spec.rb +0 -22
  430. data/spec/requests/memory_spec.rb +0 -21
  431. data/spec/requests/stylesheets_spec.rb +0 -18
  432. data/spec/spec_helper.rb +0 -17
  433. data/spec/support/active_admin_request_helpers.rb +0 -27
  434. data/spec/support/deferred_garbage_collection.rb +0 -19
  435. data/spec/support/detect_rails_version.rb +0 -34
  436. data/spec/support/jslint.yml +0 -80
  437. data/spec/support/rails_template.rb +0 -158
  438. data/spec/support/rails_template_with_data.rb +0 -55
  439. data/spec/support/templates/admin/stores.rb +0 -9
  440. data/spec/support/templates/en.yml +0 -8
  441. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  442. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  443. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  444. data/spec/support/templates/policies/application_policy.rb +0 -45
  445. data/spec/support/templates/policies/category_policy.rb +0 -7
  446. data/spec/support/templates/policies/post_policy.rb +0 -15
  447. data/spec/support/templates/policies/store_policy.rb +0 -11
  448. data/spec/support/templates/policies/user_policy.rb +0 -11
  449. data/spec/support/templates/post_decorator.rb +0 -11
  450. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  451. data/spec/unit/action_builder_spec.rb +0 -134
  452. data/spec/unit/active_admin_spec.rb +0 -11
  453. data/spec/unit/application_spec.rb +0 -165
  454. data/spec/unit/asset_registration_spec.rb +0 -52
  455. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  456. data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
  457. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  458. data/spec/unit/auto_link_spec.rb +0 -69
  459. data/spec/unit/batch_actions/resource_spec.rb +0 -97
  460. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  461. data/spec/unit/belongs_to_spec.rb +0 -65
  462. data/spec/unit/cancan_adapter_spec.rb +0 -43
  463. data/spec/unit/comments_spec.rb +0 -188
  464. data/spec/unit/component_spec.rb +0 -18
  465. data/spec/unit/config_shared_examples.rb +0 -59
  466. data/spec/unit/controller_filters_spec.rb +0 -41
  467. data/spec/unit/csv_builder_spec.rb +0 -303
  468. data/spec/unit/dependency_spec.rb +0 -135
  469. data/spec/unit/devise_spec.rb +0 -96
  470. data/spec/unit/dsl_spec.rb +0 -122
  471. data/spec/unit/filters/filter_form_builder_spec.rb +0 -434
  472. data/spec/unit/filters/humanized_spec.rb +0 -56
  473. data/spec/unit/filters/resource_spec.rb +0 -128
  474. data/spec/unit/form_builder_spec.rb +0 -815
  475. data/spec/unit/generators/install_spec.rb +0 -24
  476. data/spec/unit/helpers/collection_spec.rb +0 -65
  477. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  478. data/spec/unit/helpers/settings_spec.rb +0 -30
  479. data/spec/unit/i18n_spec.rb +0 -12
  480. data/spec/unit/menu_collection_spec.rb +0 -62
  481. data/spec/unit/menu_item_spec.rb +0 -143
  482. data/spec/unit/menu_spec.rb +0 -71
  483. data/spec/unit/namespace/authorization_spec.rb +0 -27
  484. data/spec/unit/namespace/register_page_spec.rb +0 -73
  485. data/spec/unit/namespace/register_resource_spec.rb +0 -160
  486. data/spec/unit/namespace_spec.rb +0 -103
  487. data/spec/unit/order_clause_spec.rb +0 -81
  488. data/spec/unit/page_controller_spec.rb +0 -5
  489. data/spec/unit/page_spec.rb +0 -78
  490. data/spec/unit/pretty_format_spec.rb +0 -77
  491. data/spec/unit/pundit_adapter_spec.rb +0 -98
  492. data/spec/unit/resource/action_items_spec.rb +0 -65
  493. data/spec/unit/resource/includes_spec.rb +0 -21
  494. data/spec/unit/resource/menu_spec.rb +0 -18
  495. data/spec/unit/resource/naming_spec.rb +0 -122
  496. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  497. data/spec/unit/resource/pagination_spec.rb +0 -38
  498. data/spec/unit/resource/routes_spec.rb +0 -77
  499. data/spec/unit/resource/scopes_spec.rb +0 -50
  500. data/spec/unit/resource/sidebars_spec.rb +0 -43
  501. data/spec/unit/resource_collection_spec.rb +0 -175
  502. data/spec/unit/resource_controller/data_access_spec.rb +0 -140
  503. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  504. data/spec/unit/resource_controller/sidebars_spec.rb +0 -38
  505. data/spec/unit/resource_controller_spec.rb +0 -269
  506. data/spec/unit/resource_registration_spec.rb +0 -56
  507. data/spec/unit/resource_spec.rb +0 -331
  508. data/spec/unit/routing_spec.rb +0 -185
  509. data/spec/unit/scope_spec.rb +0 -185
  510. data/spec/unit/settings_spec.rb +0 -118
  511. data/spec/unit/view_factory_spec.rb +0 -19
  512. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
  513. data/spec/unit/view_helpers/display_helper_spec.rb +0 -165
  514. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  515. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  516. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  517. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  518. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  519. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  520. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  521. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  522. data/spec/unit/views/components/columns_spec.rb +0 -189
  523. data/spec/unit/views/components/index_list_spec.rb +0 -35
  524. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  525. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  526. data/spec/unit/views/components/panel_spec.rb +0 -58
  527. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  528. data/spec/unit/views/components/site_title_spec.rb +0 -78
  529. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  530. data/spec/unit/views/components/table_for_spec.rb +0 -434
  531. data/spec/unit/views/components/tabs_spec.rb +0 -39
  532. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  533. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  534. data/spec/unit/views/pages/form_spec.rb +0 -51
  535. data/spec/unit/views/pages/index_spec.rb +0 -60
  536. data/spec/unit/views/pages/layout_spec.rb +0 -59
  537. data/spec/unit/views/pages/show_spec.rb +0 -33
  538. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  539. data/tasks/docs.rake +0 -37
  540. data/tasks/parallel_tests.rake +0 -66
  541. data/tasks/test.rake +0 -91
  542. data/tasks/yard.rake +0 -9
@@ -1,118 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Settings do
4
-
5
- subject{ Class.new{ include ActiveAdmin::Settings } }
6
-
7
- it{ is_expected.to respond_to :setting }
8
- it{ is_expected.to respond_to :deprecated_setting }
9
- it{ is_expected.to respond_to :default_settings }
10
-
11
- describe "class API" do
12
- it "should create settings" do
13
- subject.setting :foo, 'bar'
14
- expect(subject.default_settings[:foo]).to eq 'bar'
15
- end
16
-
17
- it "should create deprecated settings" do
18
- expect(ActiveAdmin::Deprecation).to receive(:deprecate).twice
19
- subject.deprecated_setting :baz, 32
20
- expect(subject.default_settings[:baz]).to eq 32
21
- end
22
- end
23
-
24
- describe "instance API" do
25
-
26
- before do
27
- subject.setting :foo, 'bar'
28
- subject.deprecated_setting :baz, 32
29
- end
30
- let(:instance) { subject.new }
31
-
32
- it "should have access to a default value" do
33
- expect(instance.foo).to eq 'bar'
34
- instance.foo = 'qqq'
35
- expect(instance.foo).to eq 'qqq'
36
- end
37
-
38
- it "should have access to a deprecated value" do
39
- expect(ActiveAdmin::Deprecation).to receive(:warn).exactly(3).times
40
- expect(instance.baz).to eq 32
41
- instance.baz = [45]
42
- expect(instance.baz).to eq [45]
43
- end
44
- end
45
-
46
- end
47
-
48
-
49
- describe ActiveAdmin::Settings::Inheritance do
50
-
51
- subject do
52
- Class.new do
53
- include ActiveAdmin::Settings
54
- include ActiveAdmin::Settings::Inheritance
55
- end
56
- end
57
-
58
- it{ is_expected.to respond_to :settings_inherited_by }
59
- it{ is_expected.to respond_to :inheritable_setting }
60
- it{ is_expected.to respond_to :deprecated_inheritable_setting }
61
-
62
- let(:heir) { Class.new }
63
-
64
- before do
65
- subject.settings_inherited_by heir
66
- end
67
-
68
- describe "class API" do
69
- it "should add setting to an heir" do
70
- subject.inheritable_setting :one, 2
71
- expect(heir.default_settings[:one]).to eq 2
72
- end
73
-
74
- it "should add deprecated setting to an heir" do
75
- expect(ActiveAdmin::Deprecation).to receive(:deprecate).exactly(4).times
76
- subject.deprecated_inheritable_setting :three, 4
77
- expect(heir.default_settings[:three]).to eq 4
78
- end
79
- end
80
-
81
- describe "instance API" do
82
- describe "the setter `config.left =`" do
83
- before{ subject.inheritable_setting :left, :right }
84
- it "should work" do
85
- config = heir.new
86
- config.left = :none
87
- expect(config.left).to eq :none
88
- end
89
- end
90
-
91
- describe "the getter `config.left`" do
92
- before{ subject.inheritable_setting :left, :right }
93
- it "should work" do
94
- expect(heir.new.left).to eq :right
95
- end
96
- end
97
-
98
- describe "the getter with question-mark `config.left?`" do
99
- {
100
- "nil" => [nil, false],
101
- "false" => [false, false],
102
- "true" => [true, true],
103
- "string" => ["string", true],
104
- "empty string" => ["", false],
105
- "array" => [[1, 2], true],
106
- "empty array" => [[], false]
107
- }.each do |context, (value, result)|
108
- context "with a #{context} value" do
109
- before{ subject.inheritable_setting :left, value }
110
- it "should be #{result}" do
111
- expect(heir.new.left?).to eq result
112
- end
113
- end
114
- end
115
- end
116
- end
117
-
118
- end
@@ -1,19 +0,0 @@
1
- require 'rails_helper'
2
-
3
- def it_should_have_view(key, value)
4
- it "should have #{value} for view key '#{key}'" do
5
- expect(subject.send(key)).to eq value
6
- end
7
- end
8
-
9
- describe ActiveAdmin::ViewFactory do
10
-
11
- it_should_have_view :global_navigation, ActiveAdmin::Views::TabbedNavigation
12
- it_should_have_view :utility_navigation, ActiveAdmin::Views::TabbedNavigation
13
- it_should_have_view :site_title, ActiveAdmin::Views::SiteTitle
14
- it_should_have_view :action_items, ActiveAdmin::Views::ActionItems
15
- it_should_have_view :header, ActiveAdmin::Views::Header
16
- it_should_have_view :blank_slate, ActiveAdmin::Views::BlankSlate
17
- it_should_have_view :layout, ActiveAdmin::Views::Pages::Layout
18
-
19
- end
@@ -1,217 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe "Breadcrumbs" do
4
-
5
- include ActiveAdmin::ViewHelpers
6
-
7
- describe "generating a trail from paths" do
8
-
9
- def params; {}; end
10
- def link_to(name, url); {name: name, path: url}; end
11
-
12
- actions = ActiveAdmin::BaseController::ACTIVE_ADMIN_ACTIONS
13
-
14
- let(:user) { double display_name: 'Jane Doe' }
15
- let(:user_config) { double find_resource: user, resource_name: double(route_key: 'users'),
16
- defined_actions: actions }
17
- let(:post) { double display_name: 'Hello World' }
18
- let(:post_config) { double find_resource: post, resource_name: double(route_key: 'posts'),
19
- defined_actions: actions, belongs_to_config: double(target: user_config) }
20
-
21
- let :active_admin_config do
22
- post_config
23
- end
24
-
25
- let(:trail) { breadcrumb_links(path) }
26
-
27
- context "when request '/admin'" do
28
- let(:path) { "/admin" }
29
-
30
- it "should not have any items" do
31
- expect(trail.size).to eq 0
32
- end
33
- end
34
-
35
- context "when path 'admin/users'" do
36
- let(:path) { 'admin/users' }
37
-
38
- it 'should have one item' do
39
- expect(trail.size).to eq 1
40
- end
41
- it 'should have a link to /admin' do
42
- expect(trail[0][:name]).to eq 'Admin'
43
- expect(trail[0][:path]).to eq '/admin'
44
- end
45
- end
46
-
47
- context "when path '/admin/users'" do
48
- let(:path) { "/admin/users" }
49
-
50
- it "should have one item" do
51
- expect(trail.size).to eq 1
52
- end
53
- it "should have a link to /admin" do
54
- expect(trail[0][:name]).to eq "Admin"
55
- expect(trail[0][:path]).to eq "/admin"
56
- end
57
- end
58
-
59
- context "when path '/admin/users/1'" do
60
- let(:path) { "/admin/users/1" }
61
-
62
- it "should have 2 items" do
63
- expect(trail.size).to eq 2
64
- end
65
- it "should have a link to /admin" do
66
- expect(trail[0][:name]).to eq "Admin"
67
- expect(trail[0][:path]).to eq "/admin"
68
- end
69
- it "should have a link to /admin/users" do
70
- expect(trail[1][:name]).to eq "Users"
71
- expect(trail[1][:path]).to eq "/admin/users"
72
- end
73
- end
74
-
75
- context "when path '/admin/users/1/posts'" do
76
- let(:path) { "/admin/users/1/posts" }
77
-
78
- it "should have 3 items" do
79
- expect(trail.size).to eq 3
80
- end
81
- it "should have a link to /admin" do
82
- expect(trail[0][:name]).to eq "Admin"
83
- expect(trail[0][:path]).to eq "/admin"
84
- end
85
- it "should have a link to /admin/users" do
86
- expect(trail[1][:name]).to eq "Users"
87
- expect(trail[1][:path]).to eq "/admin/users"
88
- end
89
-
90
- context "when User.find(1) doesn't exist" do
91
- before { allow(user_config).to receive(:find_resource) }
92
- it "should have a link to /admin/users/1" do
93
- expect(trail[2][:name]).to eq "1"
94
- expect(trail[2][:path]).to eq "/admin/users/1"
95
- end
96
- end
97
-
98
- context "when User.find(1) does exist" do
99
- it "should have a link to /admin/users/1 using display name" do
100
- expect(trail[2][:name]).to eq "Jane Doe"
101
- expect(trail[2][:path]).to eq "/admin/users/1"
102
- end
103
- end
104
- end
105
-
106
- context "when path '/admin/users/4e24d6249ccf967313000000/posts'" do
107
- let(:path) { "/admin/users/4e24d6249ccf967313000000/posts" }
108
-
109
- it "should have 3 items" do
110
- expect(trail.size).to eq 3
111
- end
112
- it "should have a link to /admin" do
113
- expect(trail[0][:name]).to eq "Admin"
114
- expect(trail[0][:path]).to eq "/admin"
115
- end
116
- it "should have a link to /admin/users" do
117
- expect(trail[1][:name]).to eq "Users"
118
- expect(trail[1][:path]).to eq "/admin/users"
119
- end
120
-
121
- context "when User.find(4e24d6249ccf967313000000) doesn't exist" do
122
- before { allow(user_config).to receive(:find_resource) }
123
- it "should have a link to /admin/users/4e24d6249ccf967313000000" do
124
- expect(trail[2][:name]).to eq "4e24d6249ccf967313000000"
125
- expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
126
- end
127
- end
128
-
129
- context "when User.find(4e24d6249ccf967313000000) does exist" do
130
- before do
131
- display_name = double(display_name: 'Hello :)')
132
- allow(user_config).to receive(:find_resource).and_return(display_name)
133
- end
134
- it "should have a link to /admin/users/4e24d6249ccf967313000000 using display name" do
135
- expect(trail[2][:name]).to eq "Hello :)"
136
- expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
137
- end
138
- end
139
- end
140
-
141
- context "when path '/admin/users/1/coments/1'" do
142
- let(:path) { "/admin/users/1/posts/1" }
143
-
144
- it "should have 4 items" do
145
- expect(trail.size).to eq 4
146
- end
147
- it "should have a link to /admin" do
148
- expect(trail[0][:name]).to eq "Admin"
149
- expect(trail[0][:path]).to eq "/admin"
150
- end
151
- it "should have a link to /admin/users" do
152
- expect(trail[1][:name]).to eq "Users"
153
- expect(trail[1][:path]).to eq "/admin/users"
154
- end
155
- it "should have a link to /admin/users/1" do
156
- expect(trail[2][:name]).to eq "Jane Doe"
157
- expect(trail[2][:path]).to eq "/admin/users/1"
158
- end
159
- it "should have a link to /admin/users/1/posts" do
160
- expect(trail[3][:name]).to eq "Posts"
161
- expect(trail[3][:path]).to eq "/admin/users/1/posts"
162
- end
163
- end
164
-
165
- context "when path '/admin/users/1/coments/1/edit'" do
166
- let(:path) { "/admin/users/1/posts/1/edit" }
167
-
168
- it "should have 5 items" do
169
- expect(trail.size).to eq 5
170
- end
171
- it "should have a link to /admin" do
172
- expect(trail[0][:name]).to eq "Admin"
173
- expect(trail[0][:path]).to eq "/admin"
174
- end
175
- it "should have a link to /admin/users" do
176
- expect(trail[1][:name]).to eq "Users"
177
- expect(trail[1][:path]).to eq "/admin/users"
178
- end
179
- it "should have a link to /admin/users/1" do
180
- expect(trail[2][:name]).to eq "Jane Doe"
181
- expect(trail[2][:path]).to eq "/admin/users/1"
182
- end
183
- it "should have a link to /admin/users/1/posts" do
184
- expect(trail[3][:name]).to eq "Posts"
185
- expect(trail[3][:path]).to eq "/admin/users/1/posts"
186
- end
187
- it "should have a link to /admin/users/1/posts/1" do
188
- expect(trail[4][:name]).to eq "Hello World"
189
- expect(trail[4][:path]).to eq "/admin/users/1/posts/1"
190
- end
191
- end
192
-
193
- context "when the 'show' action is disabled" do
194
- let(:post_config) { double find_resource: post, resource_name: double(route_key: 'posts'),
195
- defined_actions: actions - [:show], # this is the change
196
- belongs_to_config: double(target: user_config) }
197
-
198
- let(:path) { "/admin/posts/1/edit" }
199
-
200
- it "should have 3 items" do
201
- expect(trail.size).to eq 3
202
- end
203
- it "should have a link to /admin" do
204
- expect(trail[0][:name]).to eq "Admin"
205
- expect(trail[0][:path]).to eq "/admin"
206
- end
207
- it "should have a link to /admin/posts" do
208
- expect(trail[1][:name]).to eq "Posts"
209
- expect(trail[1][:path]).to eq "/admin/posts"
210
- end
211
- it "should not link to the show view for the post" do
212
- expect(trail[2]).to eq "Hello World"
213
- end
214
- end
215
-
216
- end
217
- end
@@ -1,165 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::ViewHelpers::DisplayHelper do
4
- include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
5
- include ActiveAdmin::ViewHelpers::AutoLinkHelper
6
- include ActiveAdmin::ViewHelpers::DisplayHelper
7
- include MethodOrProcHelper
8
- include ActionView::Helpers::UrlHelper
9
- include ActionView::Helpers::TranslationHelper
10
-
11
- def active_admin_namespace
12
- active_admin_application.namespaces[:admin]
13
- end
14
-
15
- def authorized?(*)
16
- true
17
- end
18
-
19
- describe '#display_name' do
20
- ActiveAdmin::Application.new.display_name_methods.map(&:to_s).each do |m|
21
- it "should return #{m} when defined" do
22
- klass = Class.new do
23
- define_method(m) { m }
24
- end
25
- expect(display_name klass.new).to eq m
26
- end
27
- end
28
-
29
- it "should memoize the result for the class" do
30
- subject = Class.new.new
31
- expect(subject).to receive(:name).twice.and_return "My Name"
32
-
33
- expect(display_name subject).to eq "My Name"
34
-
35
- expect(ActiveAdmin.application).to_not receive(:display_name_methods)
36
- expect(display_name subject).to eq "My Name"
37
- end
38
-
39
- it "should not call a method if it's an association" do
40
- klass = Class.new
41
- subject = klass.new
42
- allow(klass).to receive(:reflect_on_all_associations).and_return [ double(name: :login) ]
43
- allow(subject).to receive :login
44
- expect(subject).to_not receive :login
45
- allow(subject).to receive(:email).and_return 'foo@bar.baz'
46
-
47
- expect(display_name subject).to eq 'foo@bar.baz'
48
- end
49
-
50
- it "should return `nil` when the passed object is `nil`" do
51
- expect(display_name nil).to eq nil
52
- end
53
-
54
- it "should return 'false' when the passed object is `false`" do
55
- expect(display_name false).to eq "false"
56
- end
57
-
58
- it "should default to `to_s`" do
59
- subject = Class.new.new
60
- expect(display_name subject).to eq subject.to_s
61
- end
62
-
63
- context "when no display name method is defined" do
64
- context "on a Rails model" do
65
- it "should show the model name" do
66
- class ThisModel
67
- extend ActiveModel::Naming
68
- end
69
- subject = ThisModel.new
70
- expect(display_name subject).to eq "This model"
71
- end
72
-
73
- it "should show the model name, plus the ID if in use" do
74
- subject = Tagging.create!
75
- expect(display_name subject).to eq "Tagging #1"
76
- end
77
-
78
- it "should translate the model name" do
79
- with_translation activerecord: {models: {tagging: {one: "Different"}}} do
80
- subject = Tagging.create!
81
- expect(display_name subject).to eq "Different #1"
82
- end
83
- end
84
- end
85
- end
86
- end
87
-
88
- describe '#format_attribute' do
89
- it 'calls the provided block to format the value' do
90
- value = format_attribute double(foo: 2), ->r { r.foo + 1 }
91
-
92
- expect(value).to eq 3
93
- end
94
-
95
- it 'finds values as methods' do
96
- value = format_attribute double(name: 'Joe'), :name
97
-
98
- expect(value).to eq 'Joe'
99
- end
100
-
101
- it 'finds values from hashes' do
102
- value = format_attribute({id: 100}, :id)
103
-
104
- expect(value).to eq '100'
105
- end
106
-
107
- [1, 1.2, :a_symbol, Arbre::Element.new].each do |val|
108
- it "calls to_s to format the value of type #{val.class}" do
109
- value = format_attribute double(foo: val), :foo
110
-
111
- expect(value).to eq val.to_s
112
- end
113
- end
114
-
115
- it 'localizes dates' do
116
- date = Date.parse '2016/02/28'
117
-
118
- value = format_attribute double(date: date), :date
119
-
120
- expect(value).to eq 'February 28, 2016'
121
- end
122
-
123
- it 'localizes times' do
124
- time = Time.parse '2016/02/28 9:34 PM'
125
-
126
- value = format_attribute double(time: time), :time
127
-
128
- expect(value).to eq 'February 28, 2016 21:34'
129
- end
130
-
131
- it 'uses a display_name method for arbitrary objects' do
132
- object = double to_s: :wrong, display_name: :right
133
-
134
- value = format_attribute double(object: object), :object
135
-
136
- expect(value).to eq :right
137
- end
138
-
139
- it 'auto-links ActiveRecord records from foreign keys' do
140
- post = Post.create! author: User.new
141
-
142
- value = format_attribute post, :author_id
143
-
144
- expect(value).to match /<a href="\/admin\/users\/\d+"> <\/a>/
145
- end
146
-
147
- it 'auto-links ActiveRecord records & uses a display_name method' do
148
- post = Post.create! author: User.new(first_name: 'A', last_name: 'B')
149
-
150
- value = format_attribute post, :author
151
-
152
- expect(value).to match /<a href="\/admin\/users\/\d+">A B<\/a>/
153
- end
154
-
155
- pending 'auto-links Mongoid records'
156
-
157
- it 'calls status_tag for boolean values' do
158
- post = Post.new starred: true
159
-
160
- value = format_attribute post, :starred
161
-
162
- expect(value.to_s).to eq "<span class=\"status_tag yes\">Yes</span>\n"
163
- end
164
- end
165
- end
@@ -1,39 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper do
4
- describe "class methods" do
5
- before :all do
6
- begin
7
- # The mime type to be used in respond_to |format| style web-services in rails
8
- Mime::Type.register "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", :xlsx
9
- rescue NameError
10
- puts "Mime module not defined. Skipping registration of xlsx"
11
- end
12
- end
13
-
14
- subject do
15
- Class.new do
16
- include ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
17
- end
18
- end
19
-
20
- it "extends the class to add a formats class method that returns the default formats." do
21
- expect(subject.formats).to eq [:csv, :xml, :json]
22
- end
23
-
24
- it "does not let you alter the formats array directly" do
25
- subject.formats << :xlsx
26
- expect(subject.formats).to eq [:csv, :xml, :json]
27
- end
28
-
29
- it "allows us to add new formats" do
30
- subject.add_format :xlsx
31
- expect(subject.formats).to eq [:csv, :xml, :json, :xlsx]
32
- end
33
-
34
- it "raises an exception if you provide an unregisterd mime type extension" do
35
- expect{ subject.add_format :hoge }.to raise_error 'Please register the hoge mime type with `Mime::Type.register`'
36
- end
37
-
38
- end
39
- end
@@ -1,50 +0,0 @@
1
- require 'active_admin/view_helpers/fields_for'
2
-
3
- describe ActiveAdmin::ViewHelpers::FormHelper, ".fields_for" do
4
- include ActiveAdmin::ViewHelpers::FormHelper
5
-
6
- it "should skip :action, :controller and :commit" do
7
- expect(fields_for_params(
8
- scope: "All", action: "index", controller: "PostController", commit: "Filter", utf8: "Yes!")).
9
- to eq [ { scope: "All" } ]
10
- end
11
-
12
- it "should skip the except" do
13
- expect(fields_for_params({scope: "All", name: "Greg"}, except: :name)).
14
- to eq [ { scope: "All" } ]
15
- end
16
-
17
- it "should allow an array for the except" do
18
- expect(fields_for_params({scope: "All", name: "Greg", age: "12"}, except: [:name, :age])).
19
- to eq [ { scope: "All" } ]
20
- end
21
-
22
- it "should work with hashes" do
23
- params = fields_for_params(filters: { name: "John", age: "12" })
24
-
25
- expect(params.size).to eq 2
26
- expect(params).to include({"filters[name]" => "John" })
27
- expect(params).to include({ "filters[age]" => "12" })
28
- end
29
-
30
- it "should work with nested hashes" do
31
- expect(fields_for_params(filters: { user: { name: "John" }})).
32
- to eq [ { "filters[user][name]" => "John" } ]
33
- end
34
-
35
- it "should work with arrays" do
36
- expect(fields_for_params(people: ["greg", "emily", "philippe"])).
37
- to eq [ { "people[]" => "greg" },
38
- { "people[]" => "emily" },
39
- { "people[]" => "philippe" } ]
40
- end
41
-
42
- it "should work with symbols" do
43
- expect(fields_for_params(filter: :id)).
44
- to eq [ { filter: "id" } ]
45
- end
46
-
47
- it "should work with booleans" do
48
- expect(fields_for_params(booleantest: false)).to eq [ { booleantest: false } ]
49
- end
50
- end
@@ -1,25 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::ViewHelpers::FlashHelper do
4
-
5
- describe '.flash_messages' do
6
- let(:view) { action_view }
7
-
8
- it "should not include 'timedout' flash messages by default" do
9
- view.request.flash[:alert] = "Alert"
10
- view.request.flash[:timedout] = true
11
- expect(view.flash_messages).to include 'alert'
12
- expect(view.flash_messages).to_not include 'timedout'
13
- end
14
-
15
- it "should not return flash messages included in flash_keys_to_except" do
16
- expect(view.active_admin_application).to receive(:flash_keys_to_except).and_return ["hideme"]
17
- view.request.flash[:alert] = "Alert"
18
- view.request.flash[:hideme] = "Do not show"
19
- expect(view.flash_messages).to include 'alert'
20
- expect(view.flash_messages).to_not include 'hideme'
21
- end
22
-
23
- end
24
- end
25
-
@@ -1,43 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::ViewHelpers::FormHelper do
4
-
5
- describe '.active_admin_form_for' do
6
- let(:view) { action_view }
7
- let(:resource) { double 'resource' }
8
- let(:default_options) { { builder: ActiveAdmin::FormBuilder } }
9
-
10
- it 'calls semantic_form_for with the ActiveAdmin form builder' do
11
- expect(view).to receive(:semantic_form_for).with(resource, builder: ActiveAdmin::FormBuilder)
12
- view.active_admin_form_for(resource)
13
- end
14
-
15
- it 'allows the form builder to be customized' do
16
- # We can't use a stub here because options gets marshalled, and a new
17
- # instance built. Any constant will work.
18
- custom_builder = Object
19
- expect(view).to receive(:semantic_form_for).with(resource, builder: custom_builder)
20
- view.active_admin_form_for(resource, builder: custom_builder)
21
- end
22
- end
23
-
24
- describe ".hidden_field_tags_for" do
25
- let(:view) { action_view }
26
-
27
- it "should render hidden field tags for params" do
28
- html = Capybara.string view.hidden_field_tags_for(scope: "All", filter: "None")
29
- expect(html).to have_selector("input#hidden_active_admin_scope[name=scope][type=hidden][value=All]")
30
- expect(html).to have_selector("input#hidden_active_admin_filter[name=filter][type=hidden][value=None]")
31
- end
32
-
33
- it "should generate not default id for hidden input" do
34
- expect(view.hidden_field_tags_for(scope: "All")[/id="([^"]+)"/, 1]).to_not eq "scope"
35
- end
36
-
37
- it "should filter out the field passed via the option :except" do
38
- html = Capybara.string view.hidden_field_tags_for({scope: "All", filter: "None"}, except: :filter)
39
- expect(html).to have_selector("input#hidden_active_admin_scope[name=scope][type=hidden][value=All]")
40
- end
41
- end
42
- end
43
-