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,160 +0,0 @@
1
- require 'rails_helper'
2
-
3
- # TODO: refactor this file so it doesn't depend on the Admin namespace in such a broken way.
4
- # Specifically, the dashboard is already defined.
5
-
6
- describe ActiveAdmin::Namespace, "registering a resource" do
7
- let(:application){ ActiveAdmin::Application.new }
8
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
9
- let(:menu){ namespace.fetch_menu(:default) }
10
-
11
- context "with no configuration" do
12
- before do
13
- namespace.register Category
14
- end
15
-
16
- it "should store the namespaced registered configuration" do
17
- expect(namespace.resources.keys).to include('Category')
18
- end
19
-
20
- it "should create a new controller in the default namespace" do
21
- expect(defined?(Admin::CategoriesController)).to eq 'constant'
22
- end
23
-
24
- skip "should not create the dashboard controller" do
25
- defined?(Admin::DashboardController).to_not eq 'constant'
26
- end
27
-
28
- it "should create a menu item" do
29
- expect(menu["Categories"]).to be_a ActiveAdmin::MenuItem
30
- expect(menu["Categories"].instance_variable_get(:@url)).to be_a Proc
31
- end
32
- end
33
-
34
- context "with a block configuration" do
35
- it "should be evaluated in the dsl" do
36
- expect{ |block|
37
- namespace.register Category, &block
38
- }.to yield_control
39
- end
40
- end
41
-
42
- context "with a resource that's namespaced" do
43
- before do
44
- module ::Mock; class Resource; def self.has_many(arg1, arg2); end; end; end
45
- namespace.register Mock::Resource
46
- end
47
-
48
- it "should store the namespaced registered configuration" do
49
- expect(namespace.resources.keys).to include('Mock::Resource')
50
- end
51
- it "should create a new controller in the default namespace" do
52
- expect(defined?(Admin::MockResourcesController)).to eq 'constant'
53
- end
54
- it "should create a menu item" do
55
- expect(menu["Mock Resources"]).to be_an_instance_of(ActiveAdmin::MenuItem)
56
- end
57
-
58
- it "should use the resource as the model in the controller" do
59
- expect(Admin::MockResourcesController.resource_class).to eq Mock::Resource
60
- end
61
- end # context "with a resource that's namespaced"
62
-
63
- describe "finding resource instances" do
64
- it "should return the resource when its been registered" do
65
- post = namespace.register Post
66
- expect(namespace.resource_for(Post)).to eq post
67
- end
68
-
69
- it 'should return nil when the resource has not been registered' do
70
- expect(namespace.resource_for(Post)).to eq nil
71
- end
72
-
73
- it "should return the parent when the parent class has been registered and the child has not" do
74
- user = namespace.register User
75
- expect(namespace.resource_for(Publisher)).to eq user
76
- end
77
-
78
- it "should return the resource if it and it's parent were registered" do
79
- user = namespace.register User
80
- publisher = namespace.register Publisher
81
- expect(namespace.resource_for(Publisher)).to eq publisher
82
- end
83
- end # describe "finding resource instances"
84
-
85
- describe "adding to the menu" do
86
- describe "adding as a top level item" do
87
- before do
88
- namespace.register Category
89
- end
90
- it "should add a new menu item" do
91
- expect(menu['Categories']).to_not eq nil
92
- end
93
- end # describe "adding as a top level item"
94
-
95
- describe "adding as a child" do
96
- before do
97
- namespace.register Category do
98
- menu parent: 'Blog'
99
- end
100
- end
101
- it "should generate the parent menu item" do
102
- expect(menu['Blog']).to_not eq nil
103
- end
104
- it "should generate its own child item" do
105
- expect(menu['Blog']['Categories']).to_not eq nil
106
- end
107
- end # describe "adding as a child"
108
-
109
- describe "disabling the menu" do
110
- before do
111
- namespace.register Category do
112
- menu false
113
- end
114
- end
115
- it "should not create a menu item" do
116
- expect(menu["Categories"]).to eq nil
117
- end
118
- end # describe "disabling the menu"
119
-
120
- describe "adding as a belongs to" do
121
- context "when not optional" do
122
- before do
123
- namespace.register Post do
124
- belongs_to :author
125
- end
126
- end
127
- it "should not show up in the menu" do
128
- expect(menu["Posts"]).to eq nil
129
- end
130
- end
131
- context "when optional" do
132
- before do
133
- namespace.register Post do
134
- belongs_to :author, optional: true
135
- end
136
- end
137
- it "should show up in the menu" do
138
- expect(menu["Posts"]).to_not eq nil
139
- end
140
- end
141
- end
142
- end # describe "adding to the menu"
143
-
144
- describe "dashboard controller name" do
145
- context "when namespaced" do
146
- it "should be namespaced" do
147
- namespace = ActiveAdmin::Namespace.new(application, :one)
148
- namespace.register Category
149
- expect(defined?(One::CategoriesController)).to eq 'constant'
150
- end
151
- end
152
- context "when not namespaced" do
153
- it "should not be namespaced" do
154
- namespace = ActiveAdmin::Namespace.new(application, :two)
155
- namespace.register Category
156
- expect(defined?(Two::CategoriesController)).to eq 'constant'
157
- end
158
- end
159
- end # describe "dashboard controller name"
160
- end # describe "registering a resource"
@@ -1,103 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Namespace do
4
-
5
- let(:application){ ActiveAdmin::Application.new }
6
-
7
- context "when new" do
8
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
9
-
10
- it "should have an application instance" do
11
- expect(namespace.application).to eq application
12
- end
13
-
14
- it "should have a name" do
15
- expect(namespace.name).to eq :admin
16
- end
17
-
18
- it "should have no resources" do
19
- expect(namespace.resources).to be_empty
20
- end
21
-
22
- it "should not have any menu item" do
23
- expect(namespace.fetch_menu(:default).children).to be_empty
24
- end
25
- end # context "when new"
26
-
27
- describe "settings" do
28
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
29
-
30
- it "should inherit the site title from the application" do
31
- ActiveAdmin::Namespace.setting :site_title, "Not the Same"
32
- expect(namespace.site_title).to eq application.site_title
33
- end
34
-
35
- it "should be able to override the site title" do
36
- expect(namespace.site_title).to eq application.site_title
37
- namespace.site_title = "My Site Title"
38
- expect(namespace.site_title).to_not eq application.site_title
39
- end
40
- end
41
-
42
-
43
- describe "#fetch_menu" do
44
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
45
-
46
- it "returns the menu" do
47
- expect(namespace.fetch_menu(:default)).to be_an_instance_of(ActiveAdmin::Menu)
48
- end
49
-
50
- it "should have utility nav menu" do
51
- expect(namespace.fetch_menu(:utility_navigation)).to be_an_instance_of(ActiveAdmin::Menu)
52
- end
53
-
54
- it "should raise an exception if the menu doesn't exist" do
55
- expect {
56
- namespace.fetch_menu(:not_a_menu_that_exists)
57
- }.to raise_error(KeyError)
58
- end
59
- end
60
-
61
- describe "#build_menu" do
62
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
63
-
64
- it "should set the block as a menu build callback" do
65
- namespace.build_menu do |menu|
66
- menu.add label: "menu item"
67
- end
68
-
69
- expect(namespace.fetch_menu(:default)["menu item"]).to_not eq nil
70
- end
71
-
72
- it "should set a block on a custom menu" do
73
- namespace.build_menu :test do |menu|
74
- menu.add label: "menu item"
75
- end
76
-
77
- expect(namespace.fetch_menu(:test)["menu item"]).to_not eq nil
78
- end
79
- end
80
-
81
- describe "utility navigation" do
82
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
83
- let(:menu) do
84
- namespace.build_menu :utility_navigation do |menu|
85
- menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank }
86
- namespace.add_logout_button_to_menu menu, 1, class: "matt"
87
- end
88
- namespace.fetch_menu(:utility_navigation)
89
- end
90
-
91
- it "should have a logout button to the far left" do
92
- expect(menu["Logout"]).to_not eq nil
93
- expect(menu["Logout"].priority).to eq 1
94
- end
95
-
96
- it "should have a static link with a target of :blank" do
97
- expect(menu["ActiveAdmin.info"]).to_not eq nil
98
- expect(menu["ActiveAdmin.info"].html_options).to include(target: :blank)
99
- end
100
-
101
- end
102
-
103
- end
@@ -1,81 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::OrderClause do
4
- subject { described_class.new clause }
5
-
6
- let(:application) { ActiveAdmin::Application.new }
7
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
8
- let(:config) { ActiveAdmin::Resource.new namespace, Post }
9
-
10
- describe 'id_asc (existing column)' do
11
- let(:clause) { 'id_asc' }
12
-
13
- it { is_expected.to be_valid }
14
-
15
- describe '#field' do
16
- subject { super().field }
17
- it { is_expected.to eq('id') }
18
- end
19
-
20
- describe '#order' do
21
- subject { super().order }
22
- it { is_expected.to eq('asc') }
23
- end
24
-
25
- specify '#to_sql prepends table name' do
26
- expect(subject.to_sql(config)).to eq '"posts"."id" asc'
27
- end
28
- end
29
-
30
- describe 'virtual_column_asc' do
31
- let(:clause) { 'virtual_column_asc' }
32
-
33
- it { is_expected.to be_valid }
34
-
35
- describe '#field' do
36
- subject { super().field }
37
- it { is_expected.to eq('virtual_column') }
38
- end
39
-
40
- describe '#order' do
41
- subject { super().order }
42
- it { is_expected.to eq('asc') }
43
- end
44
-
45
- specify '#to_sql' do
46
- expect(subject.to_sql(config)).to eq '"virtual_column" asc'
47
- end
48
- end
49
-
50
- describe "hstore_col->'field'_desc" do
51
- let(:clause) { "hstore_col->'field'_desc" }
52
-
53
- it { is_expected.to be_valid }
54
-
55
- describe '#field' do
56
- subject { super().field }
57
- it { is_expected.to eq("hstore_col->'field'") }
58
- end
59
-
60
- describe '#order' do
61
- subject { super().order }
62
- it { is_expected.to eq('desc') }
63
- end
64
-
65
- it 'converts to sql' do
66
- expect(subject.to_sql(config)).to eq %Q("hstore_col"->'field' desc)
67
- end
68
- end
69
-
70
- describe '_asc' do
71
- let(:clause) { '_asc' }
72
-
73
- it { is_expected.not_to be_valid }
74
- end
75
-
76
- describe 'nil' do
77
- let(:clause) { nil }
78
-
79
- it { is_expected.not_to be_valid }
80
- end
81
- end
@@ -1,5 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::PageController do
4
- let(:controller) { ActiveAdmin::PageController.new }
5
- end
@@ -1,78 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rails_helper'
4
- require File.expand_path('config_shared_examples', File.dirname(__FILE__))
5
-
6
- module ActiveAdmin
7
- describe Page do
8
-
9
- it_should_behave_like "ActiveAdmin::Resource"
10
- before { load_defaults! }
11
-
12
- let(:application){ ActiveAdmin::Application.new }
13
- let(:namespace){ Namespace.new(application, :admin) }
14
-
15
- def config(options = {})
16
- @config ||= namespace.register_page("Chocolate I lØve You!", options)
17
- end
18
-
19
- describe "controller name" do
20
- it "should return a namespaced controller name" do
21
- expect(config.controller_name).to eq "Admin::ChocolateILoveYouController"
22
- end
23
- context "when non namespaced controller" do
24
- let(:namespace){ ActiveAdmin::Namespace.new(application, :root) }
25
- it "should return a non namespaced controller name" do
26
- expect(config.controller_name).to eq "ChocolateILoveYouController"
27
- end
28
- end
29
- end
30
-
31
- describe "#resource_name" do
32
- it "returns the name" do
33
- expect(config.resource_name).to eq "Chocolate I lØve You!"
34
- end
35
-
36
- it "returns the singular, lowercase name" do
37
- expect(config.resource_name.singular).to eq "chocolate i lØve you!"
38
- end
39
- end
40
-
41
- describe "#plural_resource_label" do
42
- it "returns the singular name" do
43
- expect(config.plural_resource_label).to eq "Chocolate I lØve You!"
44
- end
45
- end
46
-
47
- describe "#underscored_resource_name" do
48
- it "returns the resource name underscored" do
49
- expect(config.underscored_resource_name).to eq "chocolate_i_love_you"
50
- end
51
- end
52
-
53
- describe "#camelized_resource_name" do
54
- it "returns the resource name camel case" do
55
- expect(config.camelized_resource_name).to eq "ChocolateILoveYou"
56
- end
57
- end
58
-
59
- describe "#namespace_name" do
60
- it "returns the name of the namespace" do
61
- expect(config.namespace_name).to eq "admin"
62
- end
63
- end
64
-
65
- it "should not belong_to anything" do
66
- expect(config.belongs_to?).to eq false
67
- end
68
-
69
- it "should not have any action_items" do
70
- expect(config.action_items?).to eq false
71
- end
72
-
73
- it "should not have any sidebar_sections" do
74
- expect(config.sidebar_sections?).to eq false
75
- end
76
-
77
- end
78
- end
@@ -1,77 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe "#pretty_format" do
4
- include ActiveAdmin::ViewHelpers::DisplayHelper
5
-
6
- def method_missing(*args, &block)
7
- mock_action_view.send *args, &block
8
- end
9
-
10
- {String: 'hello', Fixnum: 23, Float: 5.67, Bignum: 10**30, Symbol: :foo,
11
- 'Arbre::Element' => Arbre::Element.new.br(:foo)
12
- }.each do |klass, obj|
13
- it "should call `to_s` on #{klass}s" do
14
- expect(obj).to be_a klass.to_s.constantize # safeguard for Bignum
15
- expect(pretty_format(obj)).to eq obj.to_s
16
- end
17
- end
18
-
19
- context "given a Date or a Time" do
20
- it "should return a localized Date or Time with long format" do
21
- t = Time.now
22
- expect(self).to receive(:localize).with(t, {format: :long}) { "Just Now!" }
23
- expect(pretty_format(t)).to eq "Just Now!"
24
- end
25
-
26
- context "actually do the formatting" do
27
- it "should actually do the formatting" do
28
- t = Time.utc(1985,"feb",28,20,15,1)
29
- expect(pretty_format(t)).to eq "February 28, 1985 20:15"
30
- end
31
-
32
- context "apply custom localize format" do
33
- before do
34
- ActiveAdmin.application.localize_format = :short
35
- end
36
- after do
37
- ActiveAdmin.application = nil
38
- end
39
- it "should actually do the formatting" do
40
- t = Time.utc(1985, "feb", 28, 20, 15, 1)
41
-
42
- expect(pretty_format(t)).to eq "28 Feb 20:15"
43
- end
44
- end
45
-
46
- context "with non-English locale" do
47
- before(:all) do
48
- @previous_locale = I18n.locale.to_s
49
- I18n.locale = "es"
50
- end
51
- after(:all) do
52
- I18n.locale = @previous_locale
53
- end
54
- it "should return a localized Date or Time with long format for non-english locale" do
55
- t = Time.utc(1985,"feb",28,20,15,1)
56
- expect(pretty_format(t)).to eq "28 de febrero de 1985 20:15"
57
- end
58
- end
59
- end
60
- end
61
-
62
- context "given an ActiveRecord object" do
63
- it "should delegate to auto_link" do
64
- post = Post.new
65
- expect(self).to receive(:auto_link).with(post) { "model name" }
66
- expect(pretty_format(post)).to eq "model name"
67
- end
68
- end
69
-
70
- context "given an arbitrary object" do
71
- it "should delegate to `display_name`" do
72
- something = Class.new.new
73
- expect(self).to receive(:display_name).with(something) { "I'm not famous" }
74
- expect(pretty_format(something)).to eq "I'm not famous"
75
- end
76
- end
77
- end
@@ -1,98 +0,0 @@
1
- require 'rails_helper'
2
-
3
- class DefaultPolicy < ApplicationPolicy
4
- def respond_to_missing?(method, include_private = false)
5
- method.to_s[0...3] == "foo" || super
6
- end
7
-
8
- def method_missing(method, *args, &block)
9
- if method.to_s[0...3] == "foo"
10
- method.to_s[4...7] == "yes"
11
- else
12
- super
13
- end
14
- end
15
-
16
- class Scope
17
-
18
- attr_reader :user, :scope
19
-
20
- def initialize(user, scope)
21
- @user = user
22
- @scope = scope
23
- end
24
-
25
- def resolve
26
- scope
27
- end
28
- end
29
- end
30
-
31
- describe ActiveAdmin::PunditAdapter do
32
-
33
- describe "full integration" do
34
-
35
- let(:application) { ActiveAdmin::Application.new }
36
- let(:namespace) { ActiveAdmin::Namespace.new(application, "Admin") }
37
- let(:resource) { namespace.register(Post) }
38
- let(:auth) { namespace.authorization_adapter.new(resource, double) }
39
- let(:default_policy_klass) { DefaultPolicy }
40
- let(:default_policy_klass_name) { "DefaultPolicy" }
41
-
42
- before do
43
- namespace.authorization_adapter = ActiveAdmin::PunditAdapter
44
- end
45
-
46
- it "should initialize the ability stored in the namespace configuration" do
47
- expect(auth.authorized?(:read, Post)).to eq true
48
- expect(auth.authorized?(:update, Post)).to eq false
49
- end
50
-
51
- it "should scope the collection" do
52
- class RSpec::Mocks::DoublePolicy < ApplicationPolicy
53
- class Scope < Struct.new(:user, :scope)
54
- def resolve
55
- scope
56
- end
57
- end
58
- end
59
-
60
- collection = double
61
- auth.scope_collection(collection, :read)
62
- expect(collection).to eq collection
63
- end
64
-
65
- it "works well with method_missing" do
66
- allow(auth).to receive(:retrieve_policy).and_return(DefaultPolicy.new(double, double))
67
- expect(auth.authorized?(:foo_no)).to eq false
68
- expect(auth.authorized?(:foo_yes)).to eq true
69
- expect(auth.authorized?(:bar_yes)).to eq false
70
- end
71
-
72
- context 'when Pundit is unable to find policy scope' do
73
- let(:collection) { double("collection", to_sym: :collection) }
74
- subject(:scope) { auth.scope_collection(collection, :read) }
75
-
76
- before do
77
- allow(ActiveAdmin.application).to receive(:pundit_default_policy).and_return default_policy_klass_name
78
- allow(Pundit).to receive(:policy_scope!) { raise Pundit::NotDefinedError.new }
79
- end
80
-
81
- it("should return default policy's scope if defined") { is_expected.to eq(collection) }
82
- end
83
-
84
- context "when Pundit is unable to find policy" do
85
- let(:record) { double }
86
-
87
- subject(:policy) { auth.retrieve_policy(record) }
88
-
89
- before do
90
- allow(ActiveAdmin.application).to receive(:pundit_default_policy).and_return default_policy_klass_name
91
- allow(Pundit).to receive(:policy!) { raise Pundit::NotDefinedError.new }
92
- end
93
-
94
- it("should return default policy instance") { is_expected.to be_instance_of(default_policy_klass) }
95
- end
96
- end
97
-
98
- end
@@ -1,65 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Resource::ActionItems do
4
-
5
- let(:resource) do
6
- namespace = ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
7
- namespace.register(Post)
8
- end
9
-
10
- describe "adding a new action item" do
11
-
12
- before do
13
- resource.clear_action_items!
14
- resource.add_action_item :empty do
15
- # Empty ...
16
- end
17
- end
18
-
19
- it "should add an action item" do
20
- expect(resource.action_items.size).to eq 1
21
- end
22
-
23
- it "should store an instance of ActionItem" do
24
- expect(resource.action_items.first).to be_an_instance_of(ActiveAdmin::ActionItem)
25
- end
26
-
27
- it "should store the block in the action item" do
28
- expect(resource.action_items.first.block).to_not eq nil
29
- end
30
-
31
- end
32
-
33
- describe "setting an action item to only display on specific controller actions" do
34
-
35
- before do
36
- resource.clear_action_items!
37
- resource.add_action_item :new, only: :index do
38
- raise StandardError
39
- end
40
- resource.add_action_item :edit, only: :show do
41
- # Empty ...
42
- end
43
- end
44
-
45
- it "should return only relevant action items" do
46
- expect(resource.action_items_for(:index).size).to eq 1
47
- expect {
48
- resource.action_items_for(:index).first.call
49
- }.to raise_exception(StandardError)
50
- end
51
-
52
- end
53
-
54
- describe "default action items" do
55
- it "should have 3 action items" do
56
- expect(resource.action_items.size).to eq 3
57
- end
58
-
59
- it 'can be removed by name' do
60
- resource.remove_action_item :new
61
- expect(resource.action_items.size).to eq 2
62
- end
63
- end
64
-
65
- end
@@ -1,21 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module ActiveAdmin
4
- describe Resource, "Includes" do
5
- describe "#includes" do
6
-
7
- let(:application) { ActiveAdmin::Application.new }
8
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
9
- let(:resource_config) { ActiveAdmin::Resource.new namespace, Post }
10
- let(:dsl){ ActiveAdmin::ResourceDSL.new(resource_config, Post) }
11
-
12
- it "should register the includes in the config" do
13
- dsl.run_registration_block do
14
- includes :taggings, :author
15
- end
16
- expect(resource_config.includes.size).to eq(2)
17
- end
18
-
19
- end
20
- end
21
- end