activeadmin 1.0.0.pre1 → 2.9.0

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