activeadmin 1.3.1 → 2.9.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 (531) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +589 -136
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +83 -61
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +517 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +29 -29
  8. data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
  12. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  14. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  15. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  16. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  17. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  18. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  19. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +8 -0
  20. data/app/assets/stylesheets/active_admin/print.scss +2 -2
  21. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  22. data/app/javascript/active_admin/base.js +28 -0
  23. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  24. data/app/javascript/active_admin/ext/jquery.js +9 -0
  25. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  26. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  27. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  28. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  29. data/app/javascript/active_admin/initializers/filters.js +10 -0
  30. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  31. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  32. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  33. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  34. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  35. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  36. data/app/javascript/active_admin/lib/filters.js +39 -0
  37. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  38. data/app/javascript/active_admin/lib/per-page.js +38 -0
  39. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  40. data/app/javascript/active_admin/lib/utils.js +40 -0
  41. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  42. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  43. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  44. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  45. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  46. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  47. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  48. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  49. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  50. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  51. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  52. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  53. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  54. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  55. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  56. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  57. data/config/locales/ar.yml +9 -8
  58. data/config/locales/az.yml +138 -0
  59. data/config/locales/bg.yml +1 -1
  60. data/config/locales/bs.yml +1 -0
  61. data/config/locales/ca.yml +1 -1
  62. data/config/locales/cs.yml +1 -0
  63. data/config/locales/da.yml +1 -0
  64. data/config/locales/de-CH.yml +1 -0
  65. data/config/locales/de.yml +29 -0
  66. data/config/locales/el.yml +1 -0
  67. data/config/locales/en-CA.yml +4 -3
  68. data/config/locales/en-GB.yml +4 -3
  69. data/config/locales/en.yml +23 -4
  70. data/config/locales/eo.yml +1 -0
  71. data/config/locales/es-MX.yml +3 -1
  72. data/config/locales/es.yml +26 -6
  73. data/config/locales/fa.yml +1 -0
  74. data/config/locales/fi.yml +2 -1
  75. data/config/locales/fr.yml +6 -5
  76. data/config/locales/he.yml +1 -1
  77. data/config/locales/hr.yml +1 -0
  78. data/config/locales/hu.yml +5 -0
  79. data/config/locales/id.yml +1 -0
  80. data/config/locales/it.yml +23 -0
  81. data/config/locales/ja.yml +4 -3
  82. data/config/locales/ko.yml +1 -0
  83. data/config/locales/lt.yml +3 -2
  84. data/config/locales/lv.yml +3 -2
  85. data/config/locales/mk.yml +134 -0
  86. data/config/locales/nb.yml +16 -5
  87. data/config/locales/nl.yml +12 -0
  88. data/config/locales/pl.yml +72 -3
  89. data/config/locales/pt-BR.yml +1 -0
  90. data/config/locales/pt-PT.yml +1 -0
  91. data/config/locales/ro.yml +1 -0
  92. data/config/locales/ru.yml +3 -0
  93. data/config/locales/sk.yml +60 -0
  94. data/config/locales/sv-SE.yml +1 -0
  95. data/config/locales/tr.yml +10 -0
  96. data/config/locales/uk.yml +3 -0
  97. data/config/locales/vi.yml +7 -5
  98. data/config/locales/zh-CN.yml +34 -5
  99. data/config/locales/zh-TW.yml +1 -0
  100. data/docs/.gitignore +1 -0
  101. data/docs/0-installation.md +28 -4
  102. data/docs/1-general-configuration.md +36 -1
  103. data/docs/10-custom-pages.md +14 -0
  104. data/docs/11-decorators.md +16 -5
  105. data/docs/12-arbre-components.md +41 -1
  106. data/docs/13-authorization-adapter.md +41 -22
  107. data/docs/2-resource-customization.md +19 -5
  108. data/docs/3-index-pages/custom-index.md +1 -1
  109. data/docs/3-index-pages/index-as-blog.md +1 -1
  110. data/docs/3-index-pages/index-as-table.md +12 -5
  111. data/docs/3-index-pages.md +18 -1
  112. data/docs/5-forms.md +22 -3
  113. data/docs/6-show-pages.md +12 -0
  114. data/docs/8-custom-actions.md +11 -0
  115. data/docs/9-batch-actions.md +2 -2
  116. data/docs/CNAME +1 -1
  117. data/docs/Gemfile +3 -2
  118. data/docs/Gemfile.lock +259 -0
  119. data/docs/_config.yml +3 -1
  120. data/docs/_includes/toc.html +1 -1
  121. data/docs/_includes/top-menu.html +9 -1
  122. data/docs/documentation.md +2 -2
  123. data/docs/images/tidelift.svg +14 -0
  124. data/docs/index.html +110 -9
  125. data/docs/stylesheets/main.css +55 -2
  126. data/lib/active_admin/abstract_view_factory.rb +13 -51
  127. data/lib/active_admin/application.rb +59 -166
  128. data/lib/active_admin/application_settings.rb +42 -0
  129. data/lib/active_admin/asset_registration.rb +0 -8
  130. data/lib/active_admin/authorization_adapter.rb +3 -3
  131. data/lib/active_admin/base_controller/authorization.rb +16 -17
  132. data/lib/active_admin/base_controller.rb +10 -10
  133. data/lib/active_admin/batch_actions/controller.rb +5 -5
  134. data/lib/active_admin/batch_actions/resource_extension.rb +15 -10
  135. data/lib/active_admin/batch_actions/views/batch_action_form.rb +3 -3
  136. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +6 -6
  137. data/lib/active_admin/batch_actions/views/selection_cells.rb +3 -3
  138. data/lib/active_admin/callbacks.rb +1 -1
  139. data/lib/active_admin/cancan_adapter.rb +1 -1
  140. data/lib/active_admin/collection_decorator.rb +31 -0
  141. data/lib/active_admin/controller_action.rb +2 -1
  142. data/lib/active_admin/csv_builder.rb +14 -9
  143. data/lib/active_admin/dependency.rb +13 -77
  144. data/lib/active_admin/deprecation.rb +0 -25
  145. data/lib/active_admin/devise.rb +5 -5
  146. data/lib/active_admin/dsl.rb +2 -9
  147. data/lib/active_admin/dynamic_setting.rb +38 -0
  148. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  149. data/lib/active_admin/engine.rb +14 -7
  150. data/lib/active_admin/error.rb +4 -4
  151. data/lib/active_admin/filters/active.rb +1 -1
  152. data/lib/active_admin/filters/active_filter.rb +11 -11
  153. data/lib/active_admin/filters/active_sidebar.rb +9 -5
  154. data/lib/active_admin/filters/forms.rb +12 -9
  155. data/lib/active_admin/filters/formtastic_addons.rb +2 -7
  156. data/lib/active_admin/filters/resource_extension.rb +29 -5
  157. data/lib/active_admin/filters.rb +7 -7
  158. data/lib/active_admin/form_builder.rb +109 -70
  159. data/lib/active_admin/generators/boilerplate.rb +12 -4
  160. data/lib/active_admin/helpers/optional_display.rb +2 -2
  161. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  162. data/lib/active_admin/inputs/datepicker_input.rb +9 -2
  163. data/lib/active_admin/inputs/filters/base/search_method_select.rb +6 -6
  164. data/lib/active_admin/inputs/filters/base.rb +1 -1
  165. data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
  166. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
  167. data/lib/active_admin/inputs/filters/date_range_input.rb +15 -12
  168. data/lib/active_admin/inputs/filters/select_input.rb +2 -2
  169. data/lib/active_admin/localizers/resource_localizer.rb +3 -3
  170. data/lib/active_admin/localizers.rb +1 -1
  171. data/lib/active_admin/menu.rb +8 -11
  172. data/lib/active_admin/menu_item.rb +10 -38
  173. data/lib/active_admin/namespace.rb +30 -18
  174. data/lib/active_admin/namespace_settings.rb +126 -0
  175. data/lib/active_admin/order_clause.rb +2 -2
  176. data/lib/active_admin/orm/active_record/comments/comment.rb +4 -4
  177. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +29 -24
  178. data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
  179. data/lib/active_admin/orm/active_record/comments.rb +34 -23
  180. data/lib/active_admin/orm/active_record.rb +1 -1
  181. data/lib/active_admin/page.rb +1 -1
  182. data/lib/active_admin/page_dsl.rb +1 -1
  183. data/lib/active_admin/page_presenter.rb +2 -1
  184. data/lib/active_admin/pundit_adapter.rb +22 -9
  185. data/lib/active_admin/resource/action_items.rb +11 -6
  186. data/lib/active_admin/resource/attributes.rb +8 -5
  187. data/lib/active_admin/resource/belongs_to.rb +8 -3
  188. data/lib/active_admin/resource/controllers.rb +1 -1
  189. data/lib/active_admin/resource/menu.rb +5 -5
  190. data/lib/active_admin/resource/model.rb +15 -0
  191. data/lib/active_admin/resource/naming.rb +5 -5
  192. data/lib/active_admin/resource/routes.rb +25 -14
  193. data/lib/active_admin/resource/scope_to.rb +7 -7
  194. data/lib/active_admin/resource/scopes.rb +3 -3
  195. data/lib/active_admin/resource/sidebars.rb +2 -2
  196. data/lib/active_admin/resource.rb +34 -20
  197. data/lib/active_admin/resource_collection.rb +2 -2
  198. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  199. data/lib/active_admin/resource_controller/data_access.rb +1 -1
  200. data/lib/active_admin/resource_controller/decorators.rb +9 -31
  201. data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
  202. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  203. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  204. data/lib/active_admin/resource_controller/streaming.rb +7 -6
  205. data/lib/active_admin/resource_controller.rb +13 -10
  206. data/lib/active_admin/resource_dsl.rb +11 -9
  207. data/lib/active_admin/router.rb +90 -84
  208. data/lib/active_admin/scope.rb +19 -11
  209. data/lib/active_admin/settings_node.rb +19 -0
  210. data/lib/active_admin/sidebar_section.rb +3 -1
  211. data/lib/active_admin/version.rb +1 -1
  212. data/lib/active_admin/view_factory.rb +17 -17
  213. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
  214. data/lib/active_admin/view_helpers/display_helper.rb +16 -7
  215. data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
  216. data/lib/active_admin/view_helpers/fields_for.rb +2 -2
  217. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  218. data/lib/active_admin/view_helpers.rb +1 -1
  219. data/lib/active_admin/views/components/active_admin_form.rb +12 -7
  220. data/lib/active_admin/views/components/attributes_table.rb +8 -8
  221. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  222. data/lib/active_admin/views/components/dropdown_menu.rb +8 -8
  223. data/lib/active_admin/views/components/index_list.rb +3 -3
  224. data/lib/active_admin/views/components/menu.rb +32 -0
  225. data/lib/active_admin/views/components/menu_item.rb +58 -0
  226. data/lib/active_admin/views/components/paginated_collection.rb +21 -20
  227. data/lib/active_admin/views/components/panel.rb +1 -1
  228. data/lib/active_admin/views/components/scopes.rb +17 -8
  229. data/lib/active_admin/views/components/sidebar.rb +13 -0
  230. data/lib/active_admin/views/components/sidebar_section.rb +0 -3
  231. data/lib/active_admin/views/components/site_title.rb +6 -7
  232. data/lib/active_admin/views/components/status_tag.rb +13 -26
  233. data/lib/active_admin/views/components/table_for.rb +21 -29
  234. data/lib/active_admin/views/components/tabs.rb +17 -5
  235. data/lib/active_admin/views/footer.rb +5 -8
  236. data/lib/active_admin/views/header.rb +3 -15
  237. data/lib/active_admin/views/index_as_blog.rb +2 -2
  238. data/lib/active_admin/views/index_as_grid.rb +26 -26
  239. data/lib/active_admin/views/index_as_table.rb +33 -25
  240. data/lib/active_admin/views/pages/base.rb +40 -59
  241. data/lib/active_admin/views/pages/index.rb +15 -13
  242. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  243. data/lib/active_admin/views/title_bar.rb +1 -1
  244. data/lib/active_admin/views.rb +1 -1
  245. data/lib/active_admin.rb +67 -63
  246. data/lib/activeadmin.rb +1 -1
  247. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  248. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  249. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  250. data/lib/generators/active_admin/devise/devise_generator.rb +5 -5
  251. data/lib/generators/active_admin/install/install_generator.rb +18 -8
  252. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  253. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  254. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  255. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  256. data/lib/generators/active_admin/resource/resource_generator.rb +3 -3
  257. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  258. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  259. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  260. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  261. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  262. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
  263. data/lib/ransack_ext.rb +9 -9
  264. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  265. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  266. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  267. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  268. metadata +120 -553
  269. data/.github/ISSUE_TEMPLATE.md +0 -20
  270. data/.gitignore +0 -49
  271. data/.mdlrc +0 -1
  272. data/.rubocop.yml +0 -76
  273. data/.simplecov +0 -13
  274. data/.travis.yml +0 -51
  275. data/.yardopts +0 -7
  276. data/Gemfile +0 -58
  277. data/Rakefile +0 -54
  278. data/activeadmin.gemspec +0 -32
  279. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  280. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  281. data/app/assets/images/active_admin/orderable.png +0 -0
  282. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  283. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  284. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  285. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  286. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  287. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  288. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  289. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  290. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  291. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  292. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  293. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  294. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  295. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  296. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  297. data/codecov.yml +0 -25
  298. data/config/i18n-tasks.yml +0 -26
  299. data/config/mdl_style.rb +0 -9
  300. data/cucumber.yml +0 -3
  301. data/features/action_item.feature +0 -73
  302. data/features/authorization.feature +0 -64
  303. data/features/authorization_cancan.feature +0 -52
  304. data/features/authorization_pundit.feature +0 -37
  305. data/features/belongs_to.feature +0 -124
  306. data/features/breadcrumb.feature +0 -75
  307. data/features/comments/commenting.feature +0 -178
  308. data/features/comments/viewing_index.feature +0 -19
  309. data/features/create_another.feature +0 -55
  310. data/features/dashboard.feature +0 -16
  311. data/features/decorators.feature +0 -43
  312. data/features/development_reloading.feature +0 -28
  313. data/features/edit_page.feature +0 -116
  314. data/features/favicon.feature +0 -20
  315. data/features/first_boot.feature +0 -16
  316. data/features/footer.feature +0 -28
  317. data/features/global_navigation.feature +0 -29
  318. data/features/i18n.feature +0 -55
  319. data/features/index/batch_actions.feature +0 -218
  320. data/features/index/filters.feature +0 -250
  321. data/features/index/format_as_csv.feature +0 -220
  322. data/features/index/formats.feature +0 -88
  323. data/features/index/index_as_block.feature +0 -15
  324. data/features/index/index_as_blog.feature +0 -69
  325. data/features/index/index_as_grid.feature +0 -45
  326. data/features/index/index_as_table.feature +0 -291
  327. data/features/index/index_blank_slate.feature +0 -83
  328. data/features/index/index_parameters.feature +0 -75
  329. data/features/index/index_scope_to.feature +0 -56
  330. data/features/index/index_scopes.feature +0 -285
  331. data/features/index/page_title.feature +0 -41
  332. data/features/index/pagination.feature +0 -63
  333. data/features/index/switch_index_view.feature +0 -73
  334. data/features/menu.feature +0 -72
  335. data/features/meta_tags.feature +0 -21
  336. data/features/new_page.feature +0 -136
  337. data/features/registering_assets.feature +0 -38
  338. data/features/registering_pages.feature +0 -237
  339. data/features/registering_resources.feature +0 -33
  340. data/features/renamed_resource.feature +0 -30
  341. data/features/root_to.feature +0 -17
  342. data/features/show/attributes_table_title.feature +0 -54
  343. data/features/show/columns.feature +0 -40
  344. data/features/show/default_content.feature +0 -44
  345. data/features/show/page_title.feature +0 -58
  346. data/features/show/tabs.feature +0 -33
  347. data/features/sidebar_sections.feature +0 -210
  348. data/features/site_title.feature +0 -47
  349. data/features/specifying_actions.feature +0 -118
  350. data/features/step_definitions/action_item_steps.rb +0 -7
  351. data/features/step_definitions/action_link_steps.rb +0 -19
  352. data/features/step_definitions/additional_web_steps.rb +0 -81
  353. data/features/step_definitions/asset_steps.rb +0 -15
  354. data/features/step_definitions/attribute_steps.rb +0 -18
  355. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  356. data/features/step_definitions/batch_action_steps.rb +0 -81
  357. data/features/step_definitions/blog_steps.rb +0 -3
  358. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  359. data/features/step_definitions/column_steps.rb +0 -8
  360. data/features/step_definitions/comment_steps.rb +0 -32
  361. data/features/step_definitions/configuration_steps.rb +0 -100
  362. data/features/step_definitions/dashboard_steps.rb +0 -15
  363. data/features/step_definitions/factory_steps.rb +0 -35
  364. data/features/step_definitions/filter_steps.rb +0 -47
  365. data/features/step_definitions/flash_steps.rb +0 -11
  366. data/features/step_definitions/footer_steps.rb +0 -11
  367. data/features/step_definitions/format_steps.rb +0 -56
  368. data/features/step_definitions/i18n_steps.rb +0 -11
  369. data/features/step_definitions/index_scope_steps.rb +0 -29
  370. data/features/step_definitions/index_views_steps.rb +0 -3
  371. data/features/step_definitions/layout_steps.rb +0 -3
  372. data/features/step_definitions/member_link_steps.rb +0 -7
  373. data/features/step_definitions/menu_steps.rb +0 -11
  374. data/features/step_definitions/meta_tag_steps.rb +0 -3
  375. data/features/step_definitions/pagination_steps.rb +0 -15
  376. data/features/step_definitions/sidebar_steps.rb +0 -11
  377. data/features/step_definitions/site_title_steps.rb +0 -17
  378. data/features/step_definitions/tab_steps.rb +0 -8
  379. data/features/step_definitions/table_steps.rb +0 -116
  380. data/features/step_definitions/user_steps.rb +0 -52
  381. data/features/step_definitions/web_steps.rb +0 -86
  382. data/features/sti_resource.feature +0 -65
  383. data/features/strong_parameters.feature +0 -69
  384. data/features/support/env.rb +0 -122
  385. data/features/support/paths.rb +0 -73
  386. data/features/support/regular_env.rb +0 -7
  387. data/features/support/reload_env.rb +0 -7
  388. data/features/support/selectors.rb +0 -45
  389. data/features/users/logging_in.feature +0 -36
  390. data/features/users/logging_out.feature +0 -13
  391. data/features/users/resetting_password.feature +0 -34
  392. data/gemfiles/rails_42.gemfile +0 -10
  393. data/gemfiles/rails_50.gemfile +0 -10
  394. data/gemfiles/rails_51.gemfile +0 -10
  395. data/gemfiles/rails_52.gemfile +0 -11
  396. data/lib/active_admin/event.rb +0 -24
  397. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  398. data/lib/active_admin/helpers/settings.rb +0 -114
  399. data/lib/active_admin/reloader.rb +0 -25
  400. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  401. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  402. data/spec/bug_report_templates_spec.rb +0 -26
  403. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  404. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  405. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  406. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  407. data/spec/javascripts/fixtures/flashes.html +0 -2
  408. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  409. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  410. data/spec/javascripts/support/jasmine.yml +0 -74
  411. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  412. data/spec/rails_helper.rb +0 -59
  413. data/spec/requests/default_namespace_spec.rb +0 -81
  414. data/spec/requests/memory_spec.rb +0 -25
  415. data/spec/requests/stylesheets_spec.rb +0 -18
  416. data/spec/spec_helper.rb +0 -1
  417. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  418. data/spec/support/active_admin_request_helpers.rb +0 -39
  419. data/spec/support/rails_template.rb +0 -153
  420. data/spec/support/rails_template_with_data.rb +0 -327
  421. data/spec/support/templates/admin/stores.rb +0 -7
  422. data/spec/support/templates/en.yml +0 -8
  423. data/spec/support/templates/manifest.js +0 -3
  424. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  425. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  426. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  427. data/spec/support/templates/policies/application_policy.rb +0 -44
  428. data/spec/support/templates/policies/category_policy.rb +0 -7
  429. data/spec/support/templates/policies/post_policy.rb +0 -15
  430. data/spec/support/templates/policies/store_policy.rb +0 -11
  431. data/spec/support/templates/policies/user_policy.rb +0 -11
  432. data/spec/support/templates/post_decorator.rb +0 -24
  433. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  434. data/spec/unit/action_builder_spec.rb +0 -158
  435. data/spec/unit/active_admin_spec.rb +0 -11
  436. data/spec/unit/application_spec.rb +0 -184
  437. data/spec/unit/asset_registration_spec.rb +0 -81
  438. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  439. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  440. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  441. data/spec/unit/auto_link_spec.rb +0 -93
  442. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  443. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  444. data/spec/unit/belongs_to_spec.rb +0 -76
  445. data/spec/unit/cancan_adapter_spec.rb +0 -43
  446. data/spec/unit/comments_spec.rb +0 -176
  447. data/spec/unit/component_spec.rb +0 -18
  448. data/spec/unit/config_shared_examples.rb +0 -59
  449. data/spec/unit/controller_filters_spec.rb +0 -41
  450. data/spec/unit/csv_builder_spec.rb +0 -313
  451. data/spec/unit/dependency_spec.rb +0 -135
  452. data/spec/unit/devise_spec.rb +0 -110
  453. data/spec/unit/dsl_spec.rb +0 -120
  454. data/spec/unit/filters/active_filter_spec.rb +0 -189
  455. data/spec/unit/filters/active_spec.rb +0 -24
  456. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  457. data/spec/unit/filters/resource_spec.rb +0 -128
  458. data/spec/unit/form_builder_spec.rb +0 -990
  459. data/spec/unit/generators/install_spec.rb +0 -31
  460. data/spec/unit/helpers/collection_spec.rb +0 -68
  461. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  462. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  463. data/spec/unit/helpers/settings_spec.rb +0 -30
  464. data/spec/unit/i18n_spec.rb +0 -29
  465. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  466. data/spec/unit/menu_collection_spec.rb +0 -62
  467. data/spec/unit/menu_item_spec.rb +0 -141
  468. data/spec/unit/menu_spec.rb +0 -71
  469. data/spec/unit/namespace/authorization_spec.rb +0 -27
  470. data/spec/unit/namespace/register_page_spec.rb +0 -99
  471. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  472. data/spec/unit/namespace_spec.rb +0 -124
  473. data/spec/unit/order_clause_spec.rb +0 -81
  474. data/spec/unit/page_controller_spec.rb +0 -5
  475. data/spec/unit/page_spec.rb +0 -128
  476. data/spec/unit/pretty_format_spec.rb +0 -82
  477. data/spec/unit/pundit_adapter_spec.rb +0 -98
  478. data/spec/unit/resource/action_items_spec.rb +0 -69
  479. data/spec/unit/resource/attributes_spec.rb +0 -49
  480. data/spec/unit/resource/includes_spec.rb +0 -21
  481. data/spec/unit/resource/menu_spec.rb +0 -18
  482. data/spec/unit/resource/naming_spec.rb +0 -122
  483. data/spec/unit/resource/ordering_spec.rb +0 -35
  484. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  485. data/spec/unit/resource/pagination_spec.rb +0 -38
  486. data/spec/unit/resource/routes_spec.rb +0 -125
  487. data/spec/unit/resource/scopes_spec.rb +0 -50
  488. data/spec/unit/resource/sidebars_spec.rb +0 -43
  489. data/spec/unit/resource_collection_spec.rb +0 -175
  490. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  491. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  492. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  493. data/spec/unit/resource_controller_spec.rb +0 -273
  494. data/spec/unit/resource_registration_spec.rb +0 -61
  495. data/spec/unit/resource_spec.rb +0 -320
  496. data/spec/unit/routing_spec.rb +0 -211
  497. data/spec/unit/scope_spec.rb +0 -209
  498. data/spec/unit/settings_spec.rb +0 -117
  499. data/spec/unit/view_factory_spec.rb +0 -19
  500. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  501. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  502. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  503. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  504. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  505. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  506. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  507. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  508. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  509. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  510. data/spec/unit/views/components/columns_spec.rb +0 -187
  511. data/spec/unit/views/components/index_list_spec.rb +0 -49
  512. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  513. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  514. data/spec/unit/views/components/panel_spec.rb +0 -58
  515. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  516. data/spec/unit/views/components/site_title_spec.rb +0 -76
  517. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  518. data/spec/unit/views/components/table_for_spec.rb +0 -436
  519. data/spec/unit/views/components/tabs_spec.rb +0 -67
  520. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  521. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  522. data/spec/unit/views/pages/form_spec.rb +0 -54
  523. data/spec/unit/views/pages/index_spec.rb +0 -60
  524. data/spec/unit/views/pages/layout_spec.rb +0 -59
  525. data/spec/unit/views/pages/show_spec.rb +0 -32
  526. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  527. data/tasks/docs.rake +0 -64
  528. data/tasks/lint.rake +0 -21
  529. data/tasks/local.rake +0 -25
  530. data/tasks/parallel_tests.rake +0 -66
  531. data/tasks/test.rake +0 -29
@@ -1,67 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Views::Tabs do
4
- describe "creating with the dsl" do
5
- context "when creating tabs with a symbol" do
6
- before do
7
- expect(I18n).to receive(:t).at_least(:once).with(:tab_key).and_return "テスト"
8
- end
9
-
10
- let(:tabs) do
11
- render_arbre_component do
12
- tabs do
13
- tab :overview
14
- tab I18n.t(:tab_key), { id: :something_unique }
15
- end
16
- end
17
- end
18
-
19
- let(:subject) { Capybara.string(tabs.to_s) }
20
-
21
- it "should create a tab navigation bar based on the symbol" do
22
- expect(subject).to have_content('Overview')
23
- end
24
-
25
- it "should have tab with id based on symbol" do
26
- expect(subject).to have_selector('div#overview')
27
- end
28
-
29
- it "should have link with fragment based on symbol" do
30
- expect(subject).to have_selector('a[href="#overview"]')
31
- end
32
-
33
- it "should handle translation" do
34
- expect(subject).to have_content('テスト')
35
- end
36
-
37
- it "should have tab with id based on options" do
38
- expect(subject).to have_selector('div#something_unique')
39
- end
40
-
41
- it "should have link with fragment based on options" do
42
- expect(subject).to have_selector('a[href="#something_unique"]')
43
- end
44
-
45
- end
46
-
47
- context "when creating a tab with a block" do
48
- let(:tabs) do
49
- render_arbre_component do
50
- tabs do
51
- tab :overview do
52
- span 'tab 1'
53
- end
54
- end
55
- end
56
- end
57
-
58
- it "should create a tab navigation bar based on the symbol" do
59
- expect(tabs.find_by_tag('li').first.content).to include "Overview"
60
- end
61
-
62
- it "should create a tab with a span inside of it" do
63
- expect(tabs.find_by_tag('span').first.content).to eq('tab 1')
64
- end
65
- end
66
- end
67
- end
@@ -1,41 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Views::UnsupportedBrowser do
4
- let(:helpers){ mock_action_view }
5
- let(:namespace) { double :namespace, unsupported_browser_matcher: /MSIE [1-8]\.0/ }
6
- let(:component) { double :unsupported_browser_component }
7
- let(:view_factory) { double :view_factory, unsupported_browser: component }
8
- let(:base) { ActiveAdmin::Views::Pages::Base.new }
9
-
10
- def build_panel
11
- render_arbre_component({}, helpers) do
12
- insert_tag ActiveAdmin::Views::UnsupportedBrowser
13
- end
14
- end
15
-
16
- it "should render the panel" do
17
- expect(I18n).to receive(:t).and_return("headline", "recommendation" , "turn_off_compatibility_view")
18
- expect(build_panel.content.gsub(/\s+/, "")).to eq "<h1>headline</h1><p>recommendation</p><p>turn_off_compatibility_view</p>"
19
- end
20
-
21
- describe "ActiveAdmin::Views::Pages::Base behavior" do
22
- context "when the reqex match" do
23
- it "should build the unsupported browser panel" do
24
- expect(base).to receive(:active_admin_namespace).and_return(namespace)
25
- expect(base).to receive_message_chain(:controller, :request, :user_agent).and_return("Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.2; Trident/6.0)")
26
- expect(base).to receive(:view_factory).and_return(view_factory)
27
- expect(base).to receive(:insert_tag).with(component)
28
- base.send(:build_unsupported_browser)
29
- end
30
- end
31
-
32
- context "when the regex not match" do
33
- it "should not build the unsupported browser panel" do
34
- expect(base).to receive(:active_admin_namespace).and_return(namespace)
35
- expect(base).to receive_message_chain(:controller, :request, :user_agent).and_return("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)")
36
- expect(base).to receive(:insert_tag).never
37
- base.send(:build_unsupported_browser)
38
- end
39
- end
40
- end
41
- end
@@ -1,76 +0,0 @@
1
- require 'rails_helper'
2
-
3
- include ActiveAdmin
4
- RSpec.describe ActiveAdmin::Views::IndexAsBlog do
5
- subject { described_class.new }
6
-
7
- describe '#build' do
8
- let(:page_presenter) { double('page_presenter', block: nil) }
9
- let(:collection) { double('collection') }
10
-
11
- before do
12
- expect(subject).to receive('build_posts')
13
- expect(subject).to receive('add_class').with('index')
14
- end
15
-
16
- context 'when page_presenter has no block' do
17
- before do
18
- subject.build(page_presenter, collection)
19
- end
20
-
21
- it do
22
- expect(subject.instance_variable_get(:@page_presenter))
23
- .to eq(page_presenter)
24
- expect(subject.instance_variable_get(:@collection)).to eq(collection)
25
- end
26
- end
27
-
28
- context 'when page_presenter has block' do
29
- let(:block) { Proc.new { double('proc_method') } }
30
-
31
- before do
32
- allow(page_presenter).to receive(:block).and_return(block)
33
- allow(subject).to receive('instance_exec')
34
- subject.build(page_presenter, collection)
35
- end
36
-
37
- it do
38
- expect(subject).to have_received('instance_exec')
39
- end
40
- end
41
- end
42
-
43
- %w(title body).each do |method|
44
- describe "#{method}" do
45
- context 'when block given' do
46
- let(:block_result) { double('block_result') }
47
-
48
- it "should use the block to set the #{method}" do
49
- expect(
50
- subject.public_send("#{method}") do
51
- block_result
52
- end.yield
53
- ).to eq(block_result)
54
- end
55
- end
56
-
57
- context 'when no block and method given' do
58
- let(:method) { double('method') }
59
-
60
- it "should use method to set the #{method}" do
61
- expect(subject.public_send("#{method}", method)).to eq(method)
62
- end
63
- end
64
-
65
- context 'when no block and no method given' do
66
- it 'should be nil' do
67
- expect(subject.public_send("#{method}")).to eq(nil)
68
- end
69
- end
70
- end
71
- end
72
-
73
- describe '.index_name' do
74
- it { expect(described_class.index_name).to eq('blog') }
75
- end
76
- end
@@ -1,54 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Views::Pages::Form do
4
- describe "#title" do
5
- let!(:application){ ActiveAdmin::Application.new }
6
- let(:namespace){ ActiveAdmin::Namespace.new(application, "Admin") }
7
- let!(:http_params){ { controller: "UsersController", action: "edit" } }
8
- let!(:params) { ActionController::Parameters.new(http_params) }
9
-
10
- let(:helpers) do
11
- helpers = mock_action_view
12
- allow(helpers).to receive(:active_admin_config).and_return(namespace.register(Post))
13
- allow(helpers).to receive(:params).and_return(params)
14
- helpers
15
- end
16
-
17
- let(:arbre_context) do
18
- OpenStruct.new(params: params, helpers: helpers, assigns: {})
19
- end
20
-
21
- context "when :title is set" do
22
- it "should show the set page title" do
23
-
24
- page = ActiveAdmin::Views::Pages::Form.new(arbre_context)
25
- expect(page).to receive(:resource)
26
- expect(page).to receive(:form_presenter).twice.and_return({ title: "My Page Title" })
27
- expect(page.title).to eq "My Page Title"
28
- end
29
- end
30
-
31
- context "when page_title is assigned" do
32
- it "should show the set page title" do
33
- arbre_context.assigns[:page_title] = "My Page Title"
34
- page = ActiveAdmin::Views::Pages::Form.new(arbre_context)
35
- expect(page.title).to eq "My Page Title"
36
- end
37
- end
38
-
39
- context "when page_title is not assigned" do
40
- {
41
- "new" => "New Post",
42
- "create" => "New Post",
43
- "edit" => "Edit Post",
44
- "update" => "Edit Post"
45
- }.each do |action, title|
46
- it "should show the correct I18n text on the #{action} action" do
47
- params[:action] = action
48
- page = ActiveAdmin::Views::Pages::Form.new(arbre_context)
49
- expect(page.title).to eq title
50
- end
51
- end
52
- end
53
- end
54
- end
@@ -1,60 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Views::Pages::Index do
4
- describe "#title" do
5
- let!(:application){ ActiveAdmin::Application.new }
6
- let(:namespace){ ActiveAdmin::Namespace.new(application, "Admin") }
7
- let!(:params){ ActionController::Parameters.new(controller: "UsersController", action: "edit") }
8
- let(:helpers) do
9
- helpers = mock_action_view
10
- allow(helpers).to receive(:active_admin_config).and_return(namespace.register(Post))
11
- allow(helpers).to receive(:params).and_return(params)
12
- helpers
13
- end
14
-
15
- let(:arbre_context) do
16
- OpenStruct.new(params: params, helpers: helpers, assigns: {})
17
- end
18
-
19
- context "when config[:title] is assigned" do
20
- context "with a Proc" do
21
- it "should return the value of the assigned Proc" do
22
- page = ActiveAdmin::Views::Pages::Index.new(arbre_context)
23
- allow(page).to receive(:config).and_return(title: ->{ "My Page Title" })
24
- expect(page.title).to eq "My Page Title"
25
- end
26
- end
27
-
28
- context "with a String" do
29
- it "should return the assigned String" do
30
- page = ActiveAdmin::Views::Pages::Index.new(arbre_context)
31
- allow(page).to receive(:config).and_return(title: ->{ "My Page Title" })
32
- expect(page.title).to eq "My Page Title"
33
- end
34
- end
35
-
36
- context "with a Integer" do
37
- it "should return the Integer" do
38
- page = ActiveAdmin::Views::Pages::Index.new(arbre_context)
39
- allow(page).to receive(:config).and_return(title: 1)
40
- expect(page.title).to eq 1
41
- end
42
- end
43
- end
44
-
45
- context "when page_title is assigned" do
46
- it "should return the set page title" do
47
- arbre_context.assigns[:page_title] = "My Page Title"
48
- page = ActiveAdmin::Views::Pages::Index.new(arbre_context)
49
- expect(page.title).to eq "My Page Title"
50
- end
51
- end
52
-
53
- context "when page_title is not assigned" do
54
- it "should return the correct I18n text" do
55
- page = ActiveAdmin::Views::Pages::Index.new(arbre_context)
56
- expect(page.title).to eq "Posts"
57
- end
58
- end
59
- end
60
- end
@@ -1,59 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Views::Pages::Layout do
4
-
5
- let(:assigns){ {} }
6
- let(:helpers) do
7
- helpers = mock_action_view
8
-
9
- { active_admin_application: active_admin_application,
10
- active_admin_config: double('Config', action_items?: nil, breadcrumb: nil, sidebar_sections?: nil),
11
- active_admin_namespace: active_admin_namespace,
12
- csrf_meta_tag: '',
13
- current_active_admin_user: nil,
14
- current_active_admin_user?: false,
15
- current_menu: double('Menu', items: []),
16
- params: {controller: 'UsersController', action: 'edit'},
17
- env: {}
18
- }.each do |method, returns|
19
- allow(helpers).to receive(method).and_return returns
20
- end
21
-
22
- helpers
23
- end
24
-
25
- let(:active_admin_namespace){ ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :myspace) }
26
- let(:active_admin_application){ ActiveAdmin.application }
27
- let(:view_factory) { ActiveAdmin::ViewFactory.new }
28
-
29
- let(:layout) do
30
- render_arbre_component assigns, helpers do
31
- insert_tag ActiveAdmin::Views::Pages::Layout
32
- end
33
- end
34
-
35
- it "should be the @page_title if assigned in the controller" do
36
- assigns[:page_title] = "My Page Title"
37
-
38
- expect(layout.title).to eq "My Page Title"
39
- end
40
-
41
- it "should be the default translation" do
42
- helpers.params[:action] = "edit"
43
-
44
- expect(layout.title).to eq "Edit"
45
- end
46
-
47
- describe "the body" do
48
-
49
- it "should have class 'active_admin'" do
50
- expect(layout.build.class_list).to include 'active_admin'
51
- end
52
-
53
- it "should have namespace class" do
54
- expect(layout.build.class_list).to include "#{active_admin_namespace.name}_namespace"
55
- end
56
-
57
- end
58
-
59
- end
@@ -1,32 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Views::Pages::Show do
4
-
5
- describe "the resource" do
6
- let(:helpers) { double resource: resource }
7
- let(:arbre_context) { Arbre::Context.new({}, helpers) }
8
- subject(:page) { ActiveAdmin::Views::Pages::Show.new(arbre_context) }
9
-
10
- context 'when the resource does not respond to #decorator' do
11
- let(:resource) { 'Test Resource' }
12
-
13
- it "normally returns the resource" do
14
- expect(page.resource).to eq 'Test Resource'
15
- end
16
- end
17
-
18
- context 'when you pass a block to main content' do
19
- let(:block) { lambda { } }
20
- let(:resource) { double('resource') }
21
-
22
- before { allow(page).to receive(:active_admin_config).and_return(double(comments?: false, resource_columns: [:field]))}
23
-
24
- it 'appends it to the output' do
25
- expect(page).to receive(:attributes_table).with(:field).and_yield
26
- page.default_main_content(&block)
27
- end
28
- end
29
-
30
- end
31
-
32
- end
@@ -1,158 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Views::TabbedNavigation do
4
-
5
- let(:menu){ ActiveAdmin::Menu.new }
6
-
7
- let(:assigns){ { active_admin_menu: menu } }
8
- let(:helpers){ mock_action_view }
9
-
10
- let(:tabbed_navigation) do
11
- arbre(assigns, helpers) {
12
- insert_tag(ActiveAdmin::Views::TabbedNavigation, active_admin_menu)
13
- }.children.first
14
- end
15
-
16
- let(:html) { Capybara.string(tabbed_navigation.to_s) }
17
-
18
- before do
19
- load_resources { ActiveAdmin.register Post }
20
- allow(helpers).to receive(:admin_logged_in?).and_return(false)
21
- end
22
-
23
- describe "rendering a menu" do
24
-
25
- before do
26
- menu.add label: "Blog Posts", url: :admin_posts_path
27
-
28
- menu.add label: "Reports", url: "/admin/reports" do |reports|
29
- reports.add label: "A Sub Reports", url: "/admin/a-sub-reports"
30
- reports.add label: "B Sub Reports", url: "/admin/b-sub-reports"
31
- reports.add label: proc{ "Label Proc Sub Reports" }, url: "/admin/label-proc-sub-reports", id: "Label Proc Sub Reports"
32
- end
33
-
34
- menu.add label: "Administration", url: "/admin/administration" do |administration|
35
- administration.add label: "User administration",
36
- url: '/admin/user-administration',
37
- priority: 10,
38
- if: proc { false }
39
- end
40
-
41
- menu.add label: "Management", url: "#" do |management|
42
- management.add label: "Order management",
43
- url: '/admin/order-management',
44
- priority: 10,
45
- if: proc { false }
46
- management.add label: "Bill management",
47
- url: '/admin/bill-management',
48
- priority: 10,
49
- if: :admin_logged_in?
50
- end
51
-
52
- menu.add label: "Charles Smith", id: "current_user", url: -> { nil }
53
- end
54
-
55
- it "should generate a ul" do
56
- expect(html).to have_selector("ul")
57
- end
58
-
59
- it "should generate an li for each item" do
60
- expect(html).to have_selector("ul > li")
61
- end
62
-
63
- it "should generate a link for each item" do
64
- expect(html).to have_selector("a[href='/admin/posts']", text: "Blog Posts")
65
- end
66
-
67
- it "should generate a nested list for children" do
68
- expect(html).to have_selector("li > ul")
69
- end
70
-
71
- it "should generate a nested list with li for each child" do
72
- expect(html).to have_selector("ul > li#a_sub_reports")
73
- expect(html).to have_selector("ul > li#b_sub_reports")
74
- end
75
-
76
- it "should generate a valid id from a label proc" do
77
- expect(html).to have_selector("ul > li#label_proc_sub_reports")
78
- end
79
-
80
- it "should not generate a link for user administration" do
81
- expect(html).to_not have_selector("a[href='/admin/user-administration']", text: "User administration")
82
- end
83
-
84
- it "should generate the administration parent menu" do
85
- expect(html).to have_selector("a[href='/admin/administration']", text: "Administration")
86
- end
87
-
88
- it "should not generate a link for order management" do
89
- expect(html).to_not have_selector("a[href='/admin/order-management']", text: "Order management")
90
- end
91
-
92
- it "should not generate a link for bill management" do
93
- expect(html).to_not have_selector("a[href='/admin/bill-management']", text: "Bill management")
94
- end
95
-
96
- it "should not generate the management parent menu" do
97
- expect(html).to_not have_selector("a[href='#']", text: "Management")
98
- end
99
-
100
- context "when url is nil" do
101
- it "should generate a span" do
102
- selector = "li#current_user > span"
103
- expect(html).to have_selector(selector, text: "Charles Smith")
104
- end
105
- end
106
-
107
- describe "marking current item" do
108
-
109
- it "should add the 'current' class to the li" do
110
- assigns[:current_tab] = menu["Blog Posts"]
111
- expect(html).to have_selector("li.current")
112
- end
113
-
114
- it "should add the 'current' and 'has_nested' classes to the li and 'current' to the sub li" do
115
- assigns[:current_tab] = menu["Reports"]["A Sub Reports"]
116
- expect(html).to have_selector("li#reports.current")
117
- expect(html).to have_selector("li#reports.has_nested")
118
- expect(html).to have_selector("li#a_sub_reports.current")
119
- end
120
-
121
- end
122
-
123
- end
124
-
125
- describe "returning the menu items to display" do
126
-
127
- it "should return one item with no if block" do
128
- menu.add label: "Hello World", url: "/"
129
- expect(tabbed_navigation.menu_items).to eq menu.items
130
- end
131
-
132
- it "should not include menu items with an if block that returns false" do
133
- menu.add label: "Don't Show", url: "/", priority: 10, if: proc{ false }
134
- expect(tabbed_navigation.menu_items).to be_empty
135
- end
136
-
137
- it "should not include menu items with an if block that calls a method that returns false" do
138
- menu.add label: "Don't Show", url: "/", priority: 10, if: :admin_logged_in?
139
- expect(tabbed_navigation.menu_items).to be_empty
140
- end
141
-
142
- it "should not display any items that have no children to display" do
143
- menu.add label: "Parent", url: "#" do |p|
144
- p.add label: "Child", url: "/", priority: 10, if: proc{ false }
145
- end
146
- expect(tabbed_navigation.menu_items).to be_empty
147
- end
148
-
149
- it "should display a parent that has a child to display" do
150
- menu.add label: "Parent", url: "#" do |p|
151
- p.add label: "Hidden Child", url: "/", priority: 10, if: proc{ false }
152
- p.add label: "Child", url: "/"
153
- end
154
- expect(tabbed_navigation.menu_items.size).to eq(1)
155
- end
156
-
157
- end
158
- end
data/tasks/docs.rake DELETED
@@ -1,64 +0,0 @@
1
- require 'yard'
2
- require 'yard/rake/yardoc_task'
3
-
4
- namespace :docs do
5
-
6
- YARD::Rake::YardocTask.new do |t|
7
- t.files = ['lib/**/*.rb']
8
- t.options = ['--no-output']
9
- end
10
-
11
- def jekyll_redirect_string(filename)
12
- <<-EOD.strip_heredoc
13
- ---
14
- redirect_from: /docs/3-index-pages/#{filename}
15
- ---
16
-
17
- EOD
18
- end
19
-
20
- def filename_from_module(mod)
21
- mod.name.to_s.underscore.tr('_', '-')
22
- end
23
-
24
- def write_docstrings_to(path, mods)
25
- mods.each do |mod|
26
- filename = filename_from_module(mod)
27
-
28
- File.open("#{path}/#{filename}.md", 'w+') do |f|
29
- f << jekyll_redirect_string("#{filename}.html") + mod.docstring + "\n"
30
- end
31
- end
32
- end
33
-
34
- def docs_syncronized?
35
- # Do not print diff and yield whether exit code was zero
36
- sh('git diff --quiet docs/3-index-pages') do |outcome, _|
37
- return if outcome
38
-
39
- # Output diff before raising error
40
- sh('git diff docs/3-index-pages')
41
-
42
- raise <<-MSG.strip_heredoc
43
- The docs/3-index-pages directory is out of sync.
44
- Run rake generate_cops_documentation and commit the results.
45
- MSG
46
- end
47
- end
48
-
49
- desc "Update docs in the docs folder"
50
- task build: :yard do
51
- require 'yard'
52
- require 'active_support/all'
53
-
54
- YARD::Registry.load!
55
- views = YARD::Registry.at("ActiveAdmin::Views")
56
-
57
- # Index Types
58
- index_types = views.children.select{|obj| obj.name.to_s =~ /^IndexAs/ }
59
- write_docstrings_to "docs/3-index-pages", index_types
60
-
61
- docs_syncronized? if ENV["CI"]
62
- end
63
-
64
- end
data/tasks/lint.rake DELETED
@@ -1,21 +0,0 @@
1
- desc "Lints ActiveAdmin code base"
2
- task lint: ["lint:rubocop", "lint:mdl"]
3
-
4
- namespace :lint do
5
- require "rubocop/rake_task"
6
- desc "Checks ruby code style with RuboCop"
7
- RuboCop::RakeTask.new
8
-
9
- desc "Checks markdown code style with Markdownlint"
10
- task :mdl do
11
- puts "Running mdl..."
12
-
13
- targets = [
14
- *Dir.glob("docs/**/*.md"),
15
- "CONTRIBUTING.md",
16
- ".github/ISSUE_TEMPLATE.md"
17
- ]
18
-
19
- abort unless system("mdl", *targets)
20
- end
21
- end
data/tasks/local.rake DELETED
@@ -1,25 +0,0 @@
1
- desc 'Runs a command agains the local sample application'
2
- task :local do
3
- Rake::Task['setup'].invoke(false,
4
- '.test-rails-apps',
5
- 'rails_template_with_data')
6
-
7
- app_folder = ".test-rails-apps/rails-#{Rails::VERSION::STRING}"
8
-
9
- # Discard the "local" argument (name of the task)
10
- argv = ARGV[1..-1]
11
-
12
- # If it's a rails command, or we're using Rails 5, auto add the rails script
13
- rails_commands = %w(generate console server db dbconsole g c s runner)
14
-
15
- if Rails::VERSION::MAJOR >= 5 || rails_commands.include?(argv[0])
16
- argv.unshift('rails')
17
- end
18
-
19
- command = ['bundle', 'exec', *argv].join(' ')
20
- env = { 'BUNDLE_GEMFILE' => ENV['BUNDLE_GEMFILE'] }
21
-
22
- Dir.chdir(app_folder) do
23
- Bundler.with_clean_env { Kernel.exec(env, command) }
24
- end
25
- end