activeadmin 1.1.0 → 2.14.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 (592) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +871 -111
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +84 -63
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +521 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +4 -26
  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 +25 -123
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  14. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  15. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  16. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  17. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  18. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  19. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  20. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  21. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  23. data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
  24. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  25. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  26. data/app/javascript/active_admin/base.js +28 -0
  27. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  28. data/app/javascript/active_admin/ext/jquery.js +9 -0
  29. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  30. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  31. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  32. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  33. data/app/javascript/active_admin/initializers/filters.js +10 -0
  34. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  35. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  36. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  37. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  38. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  39. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  40. data/app/javascript/active_admin/lib/filters.js +39 -0
  41. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  42. data/app/javascript/active_admin/lib/per-page.js +38 -0
  43. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  44. data/app/javascript/active_admin/lib/utils.js +40 -0
  45. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  46. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  47. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  48. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  49. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  50. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  51. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  52. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  53. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  54. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  55. data/app/views/active_admin/page/index.html.arb +1 -0
  56. data/app/views/active_admin/resource/edit.html.arb +1 -0
  57. data/app/views/active_admin/resource/index.html.arb +1 -0
  58. data/app/views/active_admin/resource/new.html.arb +1 -0
  59. data/app/views/active_admin/resource/show.html.arb +1 -0
  60. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  61. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  62. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  63. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  64. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  65. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  66. data/app/views/layouts/active_admin.html.arb +1 -0
  67. data/app/views/layouts/active_admin_logged_out.html.erb +20 -9
  68. data/config/locales/ar.yml +9 -8
  69. data/config/locales/az.yml +138 -0
  70. data/config/locales/bg.yml +1 -1
  71. data/config/locales/bs.yml +1 -0
  72. data/config/locales/ca.yml +1 -1
  73. data/config/locales/cs.yml +1 -0
  74. data/config/locales/da.yml +1 -0
  75. data/config/locales/de-CH.yml +1 -0
  76. data/config/locales/de.yml +29 -0
  77. data/config/locales/el.yml +1 -0
  78. data/config/locales/en-CA.yml +4 -3
  79. data/config/locales/en-GB.yml +4 -3
  80. data/config/locales/en.yml +24 -4
  81. data/config/locales/eo.yml +145 -0
  82. data/config/locales/es-MX.yml +3 -1
  83. data/config/locales/es.yml +26 -6
  84. data/config/locales/fa.yml +1 -0
  85. data/config/locales/fi.yml +2 -1
  86. data/config/locales/fr.yml +9 -8
  87. data/config/locales/he.yml +1 -1
  88. data/config/locales/hr.yml +1 -0
  89. data/config/locales/hu.yml +5 -0
  90. data/config/locales/id.yml +1 -0
  91. data/config/locales/it.yml +31 -3
  92. data/config/locales/ja.yml +8 -2
  93. data/config/locales/ko.yml +2 -1
  94. data/config/locales/lt.yml +3 -2
  95. data/config/locales/lv.yml +3 -2
  96. data/config/locales/mk.yml +134 -0
  97. data/config/locales/nb.yml +16 -5
  98. data/config/locales/nl.yml +13 -1
  99. data/config/locales/pl.yml +72 -3
  100. data/config/locales/pt-BR.yml +9 -0
  101. data/config/locales/pt-PT.yml +1 -0
  102. data/config/locales/ro.yml +4 -2
  103. data/config/locales/ru.yml +3 -0
  104. data/config/locales/sk.yml +60 -0
  105. data/config/locales/sv-SE.yml +3 -0
  106. data/config/locales/tr.yml +10 -0
  107. data/config/locales/uk.yml +3 -0
  108. data/config/locales/vi.yml +82 -12
  109. data/config/locales/zh-CN.yml +68 -20
  110. data/config/locales/zh-TW.yml +1 -0
  111. data/lib/active_admin/abstract_view_factory.rb +14 -51
  112. data/lib/active_admin/application.rb +65 -172
  113. data/lib/active_admin/application_settings.rb +43 -0
  114. data/lib/active_admin/asset_registration.rb +4 -11
  115. data/lib/active_admin/authorization_adapter.rb +6 -3
  116. data/lib/active_admin/base_controller/authorization.rb +18 -18
  117. data/lib/active_admin/base_controller/menu.rb +1 -0
  118. data/lib/active_admin/base_controller.rb +12 -11
  119. data/lib/active_admin/batch_actions/controller.rb +6 -5
  120. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  121. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  122. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  123. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  124. data/lib/active_admin/batch_actions.rb +1 -0
  125. data/lib/active_admin/callbacks.rb +2 -1
  126. data/lib/active_admin/cancan_adapter.rb +2 -1
  127. data/lib/active_admin/collection_decorator.rb +32 -0
  128. data/lib/active_admin/component.rb +1 -0
  129. data/lib/active_admin/controller_action.rb +3 -1
  130. data/lib/active_admin/csv_builder.rb +15 -21
  131. data/lib/active_admin/dependency.rb +12 -79
  132. data/lib/active_admin/deprecation.rb +1 -25
  133. data/lib/active_admin/devise.rb +16 -5
  134. data/lib/active_admin/dsl.rb +3 -9
  135. data/lib/active_admin/dynamic_setting.rb +39 -0
  136. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  137. data/lib/active_admin/engine.rb +16 -7
  138. data/lib/active_admin/error.rb +5 -4
  139. data/lib/active_admin/filters/active.rb +2 -1
  140. data/lib/active_admin/filters/active_filter.rb +52 -15
  141. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  142. data/lib/active_admin/filters/dsl.rb +1 -0
  143. data/lib/active_admin/filters/forms.rb +13 -9
  144. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  145. data/lib/active_admin/filters/resource_extension.rb +34 -9
  146. data/lib/active_admin/filters.rb +8 -7
  147. data/lib/active_admin/form_builder.rb +110 -70
  148. data/lib/active_admin/generators/boilerplate.rb +13 -4
  149. data/lib/active_admin/helpers/collection.rb +2 -0
  150. data/lib/active_admin/helpers/i18n.rb +1 -0
  151. data/lib/active_admin/helpers/optional_display.rb +3 -2
  152. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  153. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  154. data/lib/active_admin/inputs/datepicker_input.rb +10 -2
  155. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  156. data/lib/active_admin/inputs/filters/base.rb +2 -1
  157. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  158. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  159. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  160. data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
  161. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  162. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  163. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  164. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  165. data/lib/active_admin/inputs.rb +1 -0
  166. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  167. data/lib/active_admin/localizers.rb +2 -1
  168. data/lib/active_admin/menu.rb +9 -11
  169. data/lib/active_admin/menu_collection.rb +1 -0
  170. data/lib/active_admin/menu_item.rb +11 -38
  171. data/lib/active_admin/namespace.rb +33 -20
  172. data/lib/active_admin/namespace_settings.rb +127 -0
  173. data/lib/active_admin/order_clause.rb +4 -3
  174. data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
  175. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  176. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  177. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  178. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +36 -25
  179. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  180. data/lib/active_admin/orm/active_record/comments.rb +41 -29
  181. data/lib/active_admin/orm/active_record.rb +2 -1
  182. data/lib/active_admin/orm/mongoid.rb +1 -0
  183. data/lib/active_admin/page.rb +2 -1
  184. data/lib/active_admin/page_controller.rb +1 -0
  185. data/lib/active_admin/page_dsl.rb +2 -1
  186. data/lib/active_admin/page_presenter.rb +3 -1
  187. data/lib/active_admin/pundit_adapter.rb +71 -16
  188. data/lib/active_admin/resource/action_items.rb +12 -6
  189. data/lib/active_admin/resource/attributes.rb +9 -5
  190. data/lib/active_admin/resource/belongs_to.rb +9 -3
  191. data/lib/active_admin/resource/controllers.rb +2 -1
  192. data/lib/active_admin/resource/includes.rb +1 -0
  193. data/lib/active_admin/resource/menu.rb +6 -5
  194. data/lib/active_admin/resource/model.rb +16 -0
  195. data/lib/active_admin/resource/naming.rb +6 -5
  196. data/lib/active_admin/resource/ordering.rb +1 -0
  197. data/lib/active_admin/resource/page_presenters.rb +1 -0
  198. data/lib/active_admin/resource/pagination.rb +1 -0
  199. data/lib/active_admin/resource/routes.rb +26 -14
  200. data/lib/active_admin/resource/scope_to.rb +8 -7
  201. data/lib/active_admin/resource/scopes.rb +4 -3
  202. data/lib/active_admin/resource/sidebars.rb +3 -2
  203. data/lib/active_admin/resource.rb +37 -22
  204. data/lib/active_admin/resource_collection.rb +3 -2
  205. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  206. data/lib/active_admin/resource_controller/data_access.rb +35 -5
  207. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  208. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  209. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  210. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  211. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  212. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  213. data/lib/active_admin/resource_controller.rb +14 -10
  214. data/lib/active_admin/resource_dsl.rb +17 -27
  215. data/lib/active_admin/router.rb +91 -84
  216. data/lib/active_admin/scope.rb +20 -11
  217. data/lib/active_admin/settings_node.rb +20 -0
  218. data/lib/active_admin/sidebar_section.rb +4 -1
  219. data/lib/active_admin/version.rb +2 -1
  220. data/lib/active_admin/view_factory.rb +18 -17
  221. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  222. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  223. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  224. data/lib/active_admin/view_helpers/display_helper.rb +25 -8
  225. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  226. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  227. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  228. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  229. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  230. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  231. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  232. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  233. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  234. data/lib/active_admin/view_helpers.rb +2 -1
  235. data/lib/active_admin/views/action_items.rb +1 -0
  236. data/lib/active_admin/views/components/active_admin_form.rb +14 -8
  237. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  238. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  239. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  240. data/lib/active_admin/views/components/columns.rb +1 -0
  241. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  242. data/lib/active_admin/views/components/index_list.rb +4 -3
  243. data/lib/active_admin/views/components/menu.rb +33 -0
  244. data/lib/active_admin/views/components/menu_item.rb +59 -0
  245. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  246. data/lib/active_admin/views/components/panel.rb +2 -1
  247. data/lib/active_admin/views/components/scopes.rb +18 -8
  248. data/lib/active_admin/views/components/sidebar.rb +14 -0
  249. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  250. data/lib/active_admin/views/components/site_title.rb +7 -7
  251. data/lib/active_admin/views/components/status_tag.rb +14 -26
  252. data/lib/active_admin/views/components/table_for.rb +22 -29
  253. data/lib/active_admin/views/components/tabs.rb +18 -5
  254. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  255. data/lib/active_admin/views/footer.rb +6 -8
  256. data/lib/active_admin/views/header.rb +4 -15
  257. data/lib/active_admin/views/index_as_block.rb +1 -0
  258. data/lib/active_admin/views/index_as_blog.rb +3 -2
  259. data/lib/active_admin/views/index_as_grid.rb +27 -26
  260. data/lib/active_admin/views/index_as_table.rb +34 -25
  261. data/lib/active_admin/views/pages/base.rb +47 -62
  262. data/lib/active_admin/views/pages/form.rb +1 -0
  263. data/lib/active_admin/views/pages/index.rb +16 -13
  264. data/lib/active_admin/views/pages/layout.rb +1 -0
  265. data/lib/active_admin/views/pages/page.rb +1 -0
  266. data/lib/active_admin/views/pages/show.rb +1 -0
  267. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  268. data/lib/active_admin/views/title_bar.rb +2 -1
  269. data/lib/active_admin/views.rb +2 -1
  270. data/lib/active_admin.rb +68 -63
  271. data/lib/activeadmin.rb +2 -1
  272. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  273. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  274. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  275. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  276. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  277. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +62 -3
  278. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  279. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  280. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  281. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  282. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  283. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  284. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  285. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  286. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  287. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  288. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  289. data/lib/ransack_ext.rb +10 -9
  290. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  291. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  292. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  293. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  294. metadata +123 -595
  295. data/.github/ISSUE_TEMPLATE.md +0 -20
  296. data/.gitignore +0 -49
  297. data/.mdlrc +0 -1
  298. data/.rubocop.yml +0 -76
  299. data/.simplecov +0 -13
  300. data/.travis.yml +0 -51
  301. data/.yardopts +0 -7
  302. data/Gemfile +0 -58
  303. data/Rakefile +0 -54
  304. data/activeadmin.gemspec +0 -32
  305. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  306. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  307. data/app/assets/images/active_admin/orderable.png +0 -0
  308. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  309. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  310. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  311. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  312. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  313. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  314. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  315. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  316. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  317. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  318. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  319. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  320. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  321. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  322. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  323. data/codecov.yml +0 -25
  324. data/config/i18n-tasks.yml +0 -26
  325. data/config/mdl_style.rb +0 -9
  326. data/cucumber.yml +0 -3
  327. data/docs/0-installation.md +0 -118
  328. data/docs/1-general-configuration.md +0 -189
  329. data/docs/10-custom-pages.md +0 -136
  330. data/docs/11-decorators.md +0 -59
  331. data/docs/12-arbre-components.md +0 -174
  332. data/docs/13-authorization-adapter.md +0 -266
  333. data/docs/14-gotchas.md +0 -138
  334. data/docs/2-resource-customization.md +0 -461
  335. data/docs/3-index-pages/custom-index.md +0 -35
  336. data/docs/3-index-pages/index-as-block.md +0 -19
  337. data/docs/3-index-pages/index-as-blog.md +0 -69
  338. data/docs/3-index-pages/index-as-grid.md +0 -27
  339. data/docs/3-index-pages/index-as-table.md +0 -227
  340. data/docs/3-index-pages.md +0 -311
  341. data/docs/4-csv-format.md +0 -74
  342. data/docs/5-forms.md +0 -218
  343. data/docs/6-show-pages.md +0 -81
  344. data/docs/7-sidebars.md +0 -75
  345. data/docs/8-custom-actions.md +0 -166
  346. data/docs/9-batch-actions.md +0 -237
  347. data/docs/CNAME +0 -1
  348. data/docs/Gemfile +0 -2
  349. data/docs/README.md +0 -24
  350. data/docs/_config.yml +0 -2
  351. data/docs/_includes/footer.html +0 -8
  352. data/docs/_includes/google-analytics.html +0 -16
  353. data/docs/_includes/head.html +0 -7
  354. data/docs/_includes/toc.html +0 -98
  355. data/docs/_includes/top-menu.html +0 -9
  356. data/docs/_layouts/default.html +0 -21
  357. data/docs/documentation.md +0 -60
  358. data/docs/images/activeadmin.png +0 -0
  359. data/docs/images/code-header.png +0 -0
  360. data/docs/images/divider.png +0 -0
  361. data/docs/images/features.png +0 -0
  362. data/docs/index.html +0 -125
  363. data/docs/stylesheets/main.css +0 -1152
  364. data/features/action_item.feature +0 -73
  365. data/features/authorization.feature +0 -64
  366. data/features/authorization_cancan.feature +0 -52
  367. data/features/authorization_pundit.feature +0 -37
  368. data/features/belongs_to.feature +0 -124
  369. data/features/breadcrumb.feature +0 -75
  370. data/features/comments/commenting.feature +0 -178
  371. data/features/comments/viewing_index.feature +0 -19
  372. data/features/create_another.feature +0 -55
  373. data/features/dashboard.feature +0 -16
  374. data/features/decorators.feature +0 -43
  375. data/features/development_reloading.feature +0 -28
  376. data/features/edit_page.feature +0 -116
  377. data/features/favicon.feature +0 -20
  378. data/features/first_boot.feature +0 -16
  379. data/features/footer.feature +0 -28
  380. data/features/global_navigation.feature +0 -29
  381. data/features/i18n.feature +0 -55
  382. data/features/index/batch_actions.feature +0 -218
  383. data/features/index/filters.feature +0 -239
  384. data/features/index/format_as_csv.feature +0 -220
  385. data/features/index/formats.feature +0 -88
  386. data/features/index/index_as_block.feature +0 -15
  387. data/features/index/index_as_blog.feature +0 -69
  388. data/features/index/index_as_grid.feature +0 -45
  389. data/features/index/index_as_table.feature +0 -291
  390. data/features/index/index_blank_slate.feature +0 -83
  391. data/features/index/index_parameters.feature +0 -75
  392. data/features/index/index_scope_to.feature +0 -56
  393. data/features/index/index_scopes.feature +0 -285
  394. data/features/index/page_title.feature +0 -41
  395. data/features/index/pagination.feature +0 -63
  396. data/features/index/switch_index_view.feature +0 -73
  397. data/features/menu.feature +0 -72
  398. data/features/meta_tags.feature +0 -21
  399. data/features/new_page.feature +0 -107
  400. data/features/registering_assets.feature +0 -38
  401. data/features/registering_pages.feature +0 -237
  402. data/features/registering_resources.feature +0 -33
  403. data/features/renamed_resource.feature +0 -30
  404. data/features/root_to.feature +0 -17
  405. data/features/show/attributes_table_title.feature +0 -54
  406. data/features/show/columns.feature +0 -40
  407. data/features/show/default_content.feature +0 -44
  408. data/features/show/page_title.feature +0 -58
  409. data/features/show/tabs.feature +0 -33
  410. data/features/sidebar_sections.feature +0 -210
  411. data/features/site_title.feature +0 -47
  412. data/features/specifying_actions.feature +0 -118
  413. data/features/step_definitions/action_item_steps.rb +0 -7
  414. data/features/step_definitions/action_link_steps.rb +0 -19
  415. data/features/step_definitions/additional_web_steps.rb +0 -81
  416. data/features/step_definitions/asset_steps.rb +0 -15
  417. data/features/step_definitions/attribute_steps.rb +0 -18
  418. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  419. data/features/step_definitions/batch_action_steps.rb +0 -81
  420. data/features/step_definitions/blog_steps.rb +0 -3
  421. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  422. data/features/step_definitions/column_steps.rb +0 -8
  423. data/features/step_definitions/comment_steps.rb +0 -32
  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 -35
  427. data/features/step_definitions/filter_steps.rb +0 -48
  428. data/features/step_definitions/flash_steps.rb +0 -11
  429. data/features/step_definitions/footer_steps.rb +0 -11
  430. data/features/step_definitions/format_steps.rb +0 -56
  431. data/features/step_definitions/i18n_steps.rb +0 -11
  432. data/features/step_definitions/index_scope_steps.rb +0 -29
  433. data/features/step_definitions/index_views_steps.rb +0 -3
  434. data/features/step_definitions/layout_steps.rb +0 -3
  435. data/features/step_definitions/member_link_steps.rb +0 -7
  436. data/features/step_definitions/menu_steps.rb +0 -11
  437. data/features/step_definitions/meta_tag_steps.rb +0 -3
  438. data/features/step_definitions/pagination_steps.rb +0 -15
  439. data/features/step_definitions/sidebar_steps.rb +0 -11
  440. data/features/step_definitions/site_title_steps.rb +0 -17
  441. data/features/step_definitions/tab_steps.rb +0 -8
  442. data/features/step_definitions/table_steps.rb +0 -116
  443. data/features/step_definitions/user_steps.rb +0 -52
  444. data/features/step_definitions/web_steps.rb +0 -86
  445. data/features/sti_resource.feature +0 -65
  446. data/features/strong_parameters.feature +0 -69
  447. data/features/support/env.rb +0 -122
  448. data/features/support/paths.rb +0 -73
  449. data/features/support/regular_env.rb +0 -7
  450. data/features/support/reload_env.rb +0 -7
  451. data/features/support/selectors.rb +0 -45
  452. data/features/users/logging_in.feature +0 -36
  453. data/features/users/logging_out.feature +0 -13
  454. data/features/users/resetting_password.feature +0 -34
  455. data/gemfiles/rails_42.gemfile +0 -10
  456. data/gemfiles/rails_50.gemfile +0 -10
  457. data/gemfiles/rails_51.gemfile +0 -10
  458. data/lib/active_admin/event.rb +0 -24
  459. data/lib/active_admin/helpers/settings.rb +0 -114
  460. data/lib/active_admin/reloader.rb +0 -25
  461. data/lib/bug_report_templates/active_admin_master.rb +0 -113
  462. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  463. data/spec/bug_report_templates_spec.rb +0 -26
  464. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  465. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  466. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  467. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  468. data/spec/javascripts/fixtures/flashes.html +0 -2
  469. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  470. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  471. data/spec/javascripts/support/jasmine.yml +0 -74
  472. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  473. data/spec/rails_helper.rb +0 -59
  474. data/spec/requests/default_namespace_spec.rb +0 -81
  475. data/spec/requests/memory_spec.rb +0 -25
  476. data/spec/requests/stylesheets_spec.rb +0 -18
  477. data/spec/spec_helper.rb +0 -1
  478. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  479. data/spec/support/active_admin_request_helpers.rb +0 -39
  480. data/spec/support/rails_template.rb +0 -150
  481. data/spec/support/rails_template_with_data.rb +0 -327
  482. data/spec/support/templates/admin/stores.rb +0 -7
  483. data/spec/support/templates/en.yml +0 -8
  484. data/spec/support/templates/manifest.js +0 -3
  485. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  486. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  487. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  488. data/spec/support/templates/policies/application_policy.rb +0 -44
  489. data/spec/support/templates/policies/category_policy.rb +0 -7
  490. data/spec/support/templates/policies/post_policy.rb +0 -15
  491. data/spec/support/templates/policies/store_policy.rb +0 -11
  492. data/spec/support/templates/policies/user_policy.rb +0 -11
  493. data/spec/support/templates/post_decorator.rb +0 -10
  494. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  495. data/spec/unit/action_builder_spec.rb +0 -125
  496. data/spec/unit/active_admin_spec.rb +0 -11
  497. data/spec/unit/application_spec.rb +0 -184
  498. data/spec/unit/asset_registration_spec.rb +0 -81
  499. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  500. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  501. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  502. data/spec/unit/auto_link_spec.rb +0 -93
  503. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  504. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  505. data/spec/unit/belongs_to_spec.rb +0 -76
  506. data/spec/unit/cancan_adapter_spec.rb +0 -43
  507. data/spec/unit/comments_spec.rb +0 -176
  508. data/spec/unit/component_spec.rb +0 -18
  509. data/spec/unit/config_shared_examples.rb +0 -59
  510. data/spec/unit/controller_filters_spec.rb +0 -41
  511. data/spec/unit/csv_builder_spec.rb +0 -304
  512. data/spec/unit/dependency_spec.rb +0 -135
  513. data/spec/unit/devise_spec.rb +0 -110
  514. data/spec/unit/dsl_spec.rb +0 -120
  515. data/spec/unit/filters/active_filter_spec.rb +0 -135
  516. data/spec/unit/filters/active_spec.rb +0 -24
  517. data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
  518. data/spec/unit/filters/resource_spec.rb +0 -128
  519. data/spec/unit/form_builder_spec.rb +0 -990
  520. data/spec/unit/generators/install_spec.rb +0 -31
  521. data/spec/unit/helpers/collection_spec.rb +0 -68
  522. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  523. data/spec/unit/helpers/settings_spec.rb +0 -30
  524. data/spec/unit/i18n_spec.rb +0 -29
  525. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  526. data/spec/unit/menu_collection_spec.rb +0 -62
  527. data/spec/unit/menu_item_spec.rb +0 -141
  528. data/spec/unit/menu_spec.rb +0 -71
  529. data/spec/unit/namespace/authorization_spec.rb +0 -27
  530. data/spec/unit/namespace/register_page_spec.rb +0 -99
  531. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  532. data/spec/unit/namespace_spec.rb +0 -124
  533. data/spec/unit/order_clause_spec.rb +0 -81
  534. data/spec/unit/page_controller_spec.rb +0 -5
  535. data/spec/unit/page_spec.rb +0 -128
  536. data/spec/unit/pretty_format_spec.rb +0 -82
  537. data/spec/unit/pundit_adapter_spec.rb +0 -98
  538. data/spec/unit/resource/action_items_spec.rb +0 -69
  539. data/spec/unit/resource/attributes_spec.rb +0 -49
  540. data/spec/unit/resource/includes_spec.rb +0 -21
  541. data/spec/unit/resource/menu_spec.rb +0 -18
  542. data/spec/unit/resource/naming_spec.rb +0 -122
  543. data/spec/unit/resource/ordering_spec.rb +0 -35
  544. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  545. data/spec/unit/resource/pagination_spec.rb +0 -38
  546. data/spec/unit/resource/routes_spec.rb +0 -125
  547. data/spec/unit/resource/scopes_spec.rb +0 -50
  548. data/spec/unit/resource/sidebars_spec.rb +0 -43
  549. data/spec/unit/resource_collection_spec.rb +0 -175
  550. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  551. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  552. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  553. data/spec/unit/resource_controller_spec.rb +0 -273
  554. data/spec/unit/resource_registration_spec.rb +0 -61
  555. data/spec/unit/resource_spec.rb +0 -320
  556. data/spec/unit/routing_spec.rb +0 -211
  557. data/spec/unit/scope_spec.rb +0 -209
  558. data/spec/unit/settings_spec.rb +0 -117
  559. data/spec/unit/view_factory_spec.rb +0 -19
  560. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  561. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  562. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  563. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  564. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  565. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  566. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  567. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  568. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  569. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  570. data/spec/unit/views/components/columns_spec.rb +0 -187
  571. data/spec/unit/views/components/index_list_spec.rb +0 -49
  572. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  573. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  574. data/spec/unit/views/components/panel_spec.rb +0 -58
  575. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  576. data/spec/unit/views/components/site_title_spec.rb +0 -76
  577. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  578. data/spec/unit/views/components/table_for_spec.rb +0 -436
  579. data/spec/unit/views/components/tabs_spec.rb +0 -67
  580. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  581. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  582. data/spec/unit/views/pages/form_spec.rb +0 -54
  583. data/spec/unit/views/pages/index_spec.rb +0 -60
  584. data/spec/unit/views/pages/layout_spec.rb +0 -59
  585. data/spec/unit/views/pages/show_spec.rb +0 -32
  586. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  587. data/tasks/docs.rake +0 -64
  588. data/tasks/lint.rake +0 -21
  589. data/tasks/local.rake +0 -25
  590. data/tasks/parallel_tests.rake +0 -66
  591. data/tasks/test.rake +0 -29
  592. /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Helpers
3
4
  module I18n
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  # Shareable module to give a #display_on?(action) method
@@ -15,7 +16,7 @@ module ActiveAdmin
15
16
 
16
17
  module OptionalDisplay
17
18
  def display_on?(action, render_context = self)
18
- return false if @options[:only] && !@options[:only].include?(action.to_sym)
19
+ return false if @options[:only] && !@options[:only].include?(action.to_sym)
19
20
  return false if @options[:except] && @options[:except].include?(action.to_sym)
20
21
 
21
22
  case condition = @options[:if]
@@ -31,7 +32,7 @@ module ActiveAdmin
31
32
  private
32
33
 
33
34
  def normalize_display_options!
34
- @options[:only] = Array(@options[:only]) if @options[:only]
35
+ @options[:only] = Array(@options[:only]) if @options[:only]
35
36
  @options[:except] = Array(@options[:except]) if @options[:except]
36
37
  end
37
38
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Helpers
3
4
  module Routes
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ScopeChain
4
+ private
3
5
  # Scope an ActiveRecord::Relation chain
4
6
  #
5
7
  # Example:
@@ -1,18 +1,26 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  class DatepickerInput < ::Formtastic::Inputs::StringInput
4
5
  def input_html_options
5
6
  super.tap do |options|
6
- options[:class] = [options[:class], "datepicker"].compact.join(' ')
7
+ options[:class] = [options[:class], "datepicker"].compact.join(" ")
7
8
  options[:data] ||= {}
8
9
  options[:data].merge! datepicker_options
9
10
  end
10
11
  end
11
12
 
13
+ # Can pass proc to filter label option
14
+ def label_from_options
15
+ res = super
16
+ res = res.call if res.is_a? Proc
17
+ res
18
+ end
19
+
12
20
  private
13
21
  def datepicker_options
14
22
  options = self.options.fetch(:datepicker_options, {})
15
- options = Hash[options.map{ |k, v| [k.to_s.camelcase(:lower), v] }]
23
+ options = Hash[options.map { |k, v| [k.to_s.camelcase(:lower), v] }]
16
24
  { datepicker_options: options }
17
25
  end
18
26
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This is a common set of Formtastic overrides needed to build a filter form
2
3
  # that lets you select from a set of search methods for a given attribute.
3
4
  #
@@ -31,15 +32,15 @@ module ActiveAdmin
31
32
 
32
33
  def wrapper_html_options
33
34
  opts = super
34
- (opts[:class] ||= '') << ' select_and_search' unless seems_searchable?
35
+ (opts[:class] ||= "") << " select_and_search" unless seems_searchable?
35
36
  opts
36
37
  end
37
38
 
38
39
  def to_html
39
40
  input_wrapping do
40
- label_html << # your label
41
+ label_html << # your label
41
42
  select_html << # the dropdown that holds the available search methods
42
- input_html # your input field
43
+ input_html # your input field
43
44
  end
44
45
  end
45
46
 
@@ -48,7 +49,7 @@ module ActiveAdmin
48
49
  end
49
50
 
50
51
  def select_html
51
- template.select_tag '', template.options_for_select(filter_options, current_filter)
52
+ template.select_tag "", template.options_for_select(filter_options, current_filter)
52
53
  end
53
54
 
54
55
  def filters
@@ -57,8 +58,8 @@ module ActiveAdmin
57
58
 
58
59
  def current_filter
59
60
  @current_filter ||= begin
60
- methods = filters.map{ |f| "#{method}_#{f}" }
61
- methods.detect{ |m| @object.public_send m } || methods.first
61
+ methods = filters.map { |f| "#{method}_#{f}" }
62
+ methods.detect { |m| @object.public_send m } || methods.first
62
63
  end
63
64
  end
64
65
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  module Filters
@@ -25,7 +26,7 @@ module ActiveAdmin
25
26
 
26
27
  def wrapper_html_options
27
28
  opts = super
28
- (opts[:class] ||= '') << " filter_form_field filter_#{as}"
29
+ (opts[:class] ||= "") << " filter_form_field filter_#{as}"
29
30
  opts
30
31
  end
31
32
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  module Filters
@@ -16,7 +17,7 @@ module ActiveAdmin
16
17
 
17
18
  # Provide the AA translation to the blank input field.
18
19
  def include_blank
19
- I18n.t 'active_admin.any' if super
20
+ I18n.t "active_admin.any" if super
20
21
  end
21
22
  end
22
23
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  module Filters
@@ -22,7 +23,7 @@ module ActiveAdmin
22
23
 
23
24
  # Add whitespace before label
24
25
  def choice_label(choice)
25
- ' ' + super
26
+ " " + super
26
27
  end
27
28
 
28
29
  # Don't wrap in UL tag
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  module Filters
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  module Filters
@@ -7,8 +8,8 @@ module ActiveAdmin
7
8
  def to_html
8
9
  input_wrapping do
9
10
  [ label_html,
10
- builder.text_field(gt_input_name, input_html_options(gt_input_name, gt_input_placeholder)),
11
- builder.text_field(lt_input_name, input_html_options(lt_input_name, lt_input_placeholder)),
11
+ builder.text_field(gt_input_name, input_html_options_for(gt_input_name, gt_input_placeholder)),
12
+ builder.text_field(lt_input_name, input_html_options_for(lt_input_name, lt_input_placeholder)),
12
13
  ].join("\n").html_safe
13
14
  end
14
15
  end
@@ -22,18 +23,21 @@ module ActiveAdmin
22
23
  column && column.type == :date ? "#{method}_lteq" : "#{method}_lteq_datetime"
23
24
  end
24
25
 
25
- def input_html_options(input_name = gt_input_name, placeholder = gt_input_placeholder)
26
- current_value = begin
27
- #cast value to date object before rendering input
28
- @object.public_send(input_name).to_s.to_date
29
- rescue
30
- nil
31
- end
26
+ def input_html_options
32
27
  { size: 12,
33
28
  class: "datepicker",
34
- maxlength: 10,
35
- placeholder: placeholder,
36
- value: current_value ? current_value.strftime("%Y-%m-%d") : "" }
29
+ maxlength: 10 }.merge(options[:input_html] || {})
30
+ end
31
+
32
+ def input_html_options_for(input_name, placeholder)
33
+ current_value = begin
34
+ #cast value to date object before rendering input
35
+ @object.public_send(input_name).to_s.to_date
36
+ rescue
37
+ nil
38
+ end
39
+ { placeholder: placeholder,
40
+ value: current_value ? current_value.strftime("%Y-%m-%d") : "" }.merge(input_html_options)
37
41
  end
38
42
 
39
43
  def gt_input_placeholder
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  module Filters
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  module Filters
@@ -7,7 +8,7 @@ module ActiveAdmin
7
8
  def input_name
8
9
  return method if seems_searchable?
9
10
 
10
- searchable_method_name + (multiple? ? '_in' : '_eq')
11
+ searchable_method_name + (multiple? ? "_in" : "_eq")
11
12
  end
12
13
 
13
14
  def searchable_method_name
@@ -15,14 +16,14 @@ module ActiveAdmin
15
16
  "#{reflection.through_reflection.name}_#{reflection.foreign_key}"
16
17
  else
17
18
  name = method.to_s
18
- name.concat '_id' if reflection
19
+ name.concat "_#{reflection.association_primary_key}" if reflection_searchable?
19
20
  name
20
21
  end
21
22
  end
22
23
 
23
24
  # Provide the AA translation to the blank input field.
24
25
  def include_blank
25
- I18n.t 'active_admin.any' if super
26
+ I18n.t "active_admin.any" if super
26
27
  end
27
28
 
28
29
  def input_html_options_name
@@ -48,6 +49,10 @@ module ActiveAdmin
48
49
  klass.reorder("#{method} asc").distinct.pluck method
49
50
  end
50
51
 
52
+ def reflection_searchable?
53
+ reflection && !reflection.polymorphic?
54
+ end
55
+
51
56
  end
52
57
  end
53
58
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  module Filters
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  module Filters
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Inputs
3
4
  extend ActiveSupport::Autoload
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Localizers
3
4
  class ResourceLocalizer
@@ -19,16 +20,16 @@ module ActiveAdmin
19
20
 
20
21
  def translate(key, options = {})
21
22
  scope = options.delete(:scope)
22
- specific_key = array_to_key('resources', @model_name, scope, key)
23
+ specific_key = array_to_key("resources", @model_name, scope, key)
23
24
  defaults = [array_to_key(scope, key), key.to_s.titleize]
24
- ::I18n.t specific_key, options.reverse_merge(model: @model, default: defaults, scope: 'active_admin')
25
+ ::I18n.t specific_key, **options.reverse_merge(model: @model, default: defaults, scope: "active_admin")
25
26
  end
26
27
  alias_method :t, :translate
27
28
 
28
29
  protected
29
30
 
30
31
  def array_to_key(*arr)
31
- arr.flatten.compact.join('.').to_sym
32
+ arr.flatten.compact.join(".").to_sym
32
33
  end
33
34
  end
34
35
  end
@@ -1,4 +1,5 @@
1
- require 'active_admin/localizers/resource_localizer'
1
+ # frozen_string_literal: true
2
+ require "active_admin/localizers/resource_localizer"
2
3
 
3
4
  module ActiveAdmin
4
5
  module Localizers
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  # Each Namespace builds up it's own menu as the global navigation
@@ -47,7 +48,10 @@ module ActiveAdmin
47
48
  # menu.add parent: 'Dashboard', label: 'My Child Dashboard'
48
49
  #
49
50
  def add(options)
50
- item = if parent = options.delete(:parent)
51
+ parent_chain = Array.wrap(options.delete(:parent))
52
+
53
+ item = if parent = parent_chain.shift
54
+ options[:parent] = parent_chain if parent_chain.any?
51
55
  (self[parent] || add(label: parent)).add options
52
56
  else
53
57
  _add options.merge parent: self
@@ -60,7 +64,7 @@ module ActiveAdmin
60
64
 
61
65
  # Whether any children match the given item.
62
66
  def include?(item)
63
- @children.values.include? item
67
+ @children.values.include?(item) || @children.values.any? { |child| child.include?(item) }
64
68
  end
65
69
 
66
70
  # Used in the UI to visually distinguish which menu item is selected.
@@ -68,14 +72,8 @@ module ActiveAdmin
68
72
  self == item || include?(item)
69
73
  end
70
74
 
71
- # Returns sorted array of menu items that should be displayed in this context.
72
- # Sorts by priority first, then alphabetically by label if needed.
73
- def items(context = nil)
74
- @children.values.select{ |i| i.display?(context) }.sort do |a, b|
75
- result = a.priority <=> b.priority
76
- result = a.label(context) <=> b.label(context) if result == 0
77
- result
78
- end
75
+ def items
76
+ @children.values
79
77
  end
80
78
 
81
79
  attr_reader :children
@@ -93,7 +91,7 @@ module ActiveAdmin
93
91
  def normalize_id(id)
94
92
  case id
95
93
  when String, Symbol, ActiveModel::Name
96
- id.to_s.downcase.tr ' ', '_'
94
+ id.to_s.downcase.tr " ", "_"
97
95
  when ActiveAdmin::Resource::Name
98
96
  id.param_key
99
97
  else
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  DEFAULT_MENU = :default
@@ -1,9 +1,7 @@
1
- require 'active_admin/view_helpers/method_or_proc_helper'
2
-
1
+ # frozen_string_literal: true
3
2
  module ActiveAdmin
4
3
  class MenuItem
5
4
  include Menu::MenuNode
6
- include MethodOrProcHelper
7
5
 
8
6
  attr_reader :html_options, :parent, :priority
9
7
 
@@ -48,13 +46,13 @@ module ActiveAdmin
48
46
  #
49
47
  def initialize(options = {})
50
48
  super() # MenuNode
51
- @label = options[:label]
52
- @dirty_id = options[:id] || options[:label]
53
- @url = options[:url] || '#'
54
- @priority = options[:priority] || 10
55
- @html_options = options[:html_options] || {}
56
- @should_display = options[:if] || proc{true}
57
- @parent = options[:parent]
49
+ @label = options[:label]
50
+ @dirty_id = options[:id] || options[:label]
51
+ @url = options[:url] || "#"
52
+ @priority = options[:priority] || 10
53
+ @html_options = options[:html_options] || {}
54
+ @should_display = options[:if] || proc { true }
55
+ @parent = options[:parent]
58
56
 
59
57
  yield(self) if block_given? # Builder style syntax
60
58
  end
@@ -63,35 +61,10 @@ module ActiveAdmin
63
61
  @id ||= normalize_id @dirty_id
64
62
  end
65
63
 
66
- def label(context = nil)
67
- render_in_context context, @label
68
- end
69
-
70
- def url(context = nil)
71
- render_in_context context, @url
72
- end
64
+ attr_reader :label
65
+ attr_reader :url
73
66
 
74
67
  # Don't display if the :if option passed says so
75
- # Don't display if the link isn't real, we have children, and none of the children are being displayed.
76
- def display?(context = nil)
77
- return false unless render_in_context(context, @should_display)
78
- return false if !real_url?(context) && @children.any? && !items(context).any?
79
- true
80
- end
81
-
82
- # Returns an array of the ancestry of this menu item.
83
- # The first item is the immediate parent of the item.
84
- def ancestors
85
- parent ? [parent, parent.ancestors].flatten : []
86
- end
87
-
88
- private
89
-
90
- # URL is not nil, empty, or '#'
91
- def real_url?(context = nil)
92
- url = url context
93
- url.present? && url != '#'
94
- end
95
-
68
+ attr_reader :should_display
96
69
  end
97
70
  end
@@ -1,4 +1,5 @@
1
- require 'active_admin/resource_collection'
1
+ # frozen_string_literal: true
2
+ require "active_admin/resource_collection"
2
3
 
3
4
  module ActiveAdmin
4
5
 
@@ -25,7 +26,13 @@ module ActiveAdmin
25
26
  # resource will be accessible from "/posts" and the controller will be PostsController.
26
27
  #
27
28
  class Namespace
28
- RegisterEvent = 'active_admin.namespace.register'.freeze
29
+ class << self
30
+ def setting(name, default)
31
+ Deprecation.warn "This method does not do anything and will be removed."
32
+ end
33
+ end
34
+
35
+ RegisterEvent = "active_admin.namespace.register".freeze
29
36
 
30
37
  attr_reader :application, :resources, :menus
31
38
 
@@ -41,7 +48,19 @@ module ActiveAdmin
41
48
  @name.to_sym
42
49
  end
43
50
 
44
- # Register a resource into this namespace. The preffered method to access this is to
51
+ def settings
52
+ @settings ||= SettingsNode.build(application.namespace_settings)
53
+ end
54
+
55
+ def respond_to_missing?(method, include_private = false)
56
+ settings.respond_to?(method) || super
57
+ end
58
+
59
+ def method_missing(method, *args)
60
+ settings.respond_to?(method) ? settings.send(method, *args) : super
61
+ end
62
+
63
+ # Register a resource into this namespace. The preferred method to access this is to
45
64
  # use the global registration ActiveAdmin.register which delegates to the proper
46
65
  # namespace instance.
47
66
  def register(resource_class, options = {}, &block)
@@ -53,7 +72,7 @@ module ActiveAdmin
53
72
  reset_menu!
54
73
 
55
74
  # Dispatch a registration event
56
- ActiveSupport::Notifications.publish ActiveAdmin::Resource::RegisterEvent, config
75
+ ActiveSupport::Notifications.instrument ActiveAdmin::Resource::RegisterEvent, { active_admin_resource: config }
57
76
 
58
77
  # Return the config
59
78
  config
@@ -100,12 +119,6 @@ module ActiveAdmin
100
119
  resources[klass]
101
120
  end
102
121
 
103
- # Override from ActiveAdmin::Settings to inherit default attributes
104
- # from the application
105
- def read_default_setting(name)
106
- application.public_send name
107
- end
108
-
109
122
  def fetch_menu(name)
110
123
  @menus.fetch(name)
111
124
  end
@@ -137,10 +150,10 @@ module ActiveAdmin
137
150
  def add_logout_button_to_menu(menu, priority = 20, html_options = {})
138
151
  if logout_link_path
139
152
  html_options = html_options.reverse_merge(method: logout_link_method || :get)
140
- menu.add id: 'logout', priority: priority, html_options: html_options,
141
- label: ->{ I18n.t 'active_admin.logout' },
142
- url: ->{ render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
143
- if: :current_active_admin_user?
153
+ menu.add id: "logout", priority: priority, html_options: html_options,
154
+ label: -> { I18n.t "active_admin.logout" },
155
+ url: -> { render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
156
+ if: :current_active_admin_user?
144
157
  end
145
158
  end
146
159
 
@@ -152,10 +165,10 @@ module ActiveAdmin
152
165
  #
153
166
  def add_current_user_to_menu(menu, priority = 10, html_options = {})
154
167
  if current_user_method
155
- menu.add id: 'current_user', priority: priority, html_options: html_options,
156
- label: -> { display_name current_active_admin_user },
157
- url: -> { auto_url_for(current_active_admin_user) },
158
- if: :current_active_admin_user?
168
+ menu.add id: "current_user", priority: priority, html_options: html_options,
169
+ label: -> { display_name current_active_admin_user },
170
+ url: -> { auto_url_for(current_active_admin_user) },
171
+ if: :current_active_admin_user?
159
172
  end
160
173
  end
161
174
 
@@ -199,8 +212,8 @@ module ActiveAdmin
199
212
 
200
213
  def unload_resources!
201
214
  resources.each do |resource|
202
- parent = (module_name || 'Object').constantize
203
- name = resource.controller_name.split('::').last
215
+ parent = (module_name || "Object").constantize
216
+ name = resource.controller_name.split("::").last
204
217
  parent.send(:remove_const, name) if parent.const_defined?(name, false)
205
218
 
206
219
  # Remove circular references
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/dynamic_settings_node"
3
+
4
+ module ActiveAdmin
5
+ class NamespaceSettings < DynamicSettingsNode
6
+ # The default number of resources to display on index pages
7
+ register :default_per_page, 30
8
+
9
+ # The max number of resources to display on index pages and batch exports
10
+ register :max_per_page, 10_000
11
+
12
+ # The title which gets displayed in the main layout
13
+ register :site_title, "", :string_symbol_or_proc
14
+
15
+ # Set the site title link href (defaults to AA dashboard)
16
+ register :site_title_link, ""
17
+
18
+ # Set the site title image displayed in the main layout (has precendence over :site_title)
19
+ register :site_title_image, "", :string_symbol_or_proc
20
+
21
+ # Add to the site head
22
+ register :head, "", :string_symbol_or_proc
23
+
24
+ # Set the site footer text (defaults to Powered by ActiveAdmin text with version)
25
+ register :footer, "", :string_symbol_or_proc
26
+
27
+ # Set a favicon
28
+ register :favicon, false
29
+
30
+ # Additional meta tags to place in head of logged in pages
31
+ register :meta_tags, {}
32
+
33
+ # Additional meta tags to place in head of logged out pages
34
+ register :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
35
+
36
+ # The view factory to use to generate all the view classes. Take
37
+ # a look at ActiveAdmin::ViewFactory
38
+ register :view_factory, ActiveAdmin::ViewFactory.new
39
+
40
+ # The method to call in controllers to get the current user
41
+ register :current_user_method, false
42
+
43
+ # The method to call in the controllers to ensure that there
44
+ # is a currently authenticated admin user
45
+ register :authentication_method, false
46
+
47
+ # The path to log user's out with. If set to a symbol, we assume
48
+ # that it's a method to call which returns the path
49
+ register :logout_link_path, :destroy_admin_user_session_path
50
+
51
+ # The method to use when generating the link for user logout
52
+ register :logout_link_method, :get
53
+
54
+ # Whether the batch actions are enabled or not
55
+ register :batch_actions, false
56
+
57
+ # Whether filters are enabled
58
+ register :filters, true
59
+
60
+ # The namespace root
61
+ register :root_to, "dashboard#index"
62
+
63
+ # Options that are passed to root_to
64
+ register :root_to_options, {}
65
+
66
+ # Options passed to the routes, i.e. { path: '/custom' }
67
+ register :route_options, {}
68
+
69
+ # Display breadcrumbs
70
+ register :breadcrumb, true
71
+
72
+ # Display create another checkbox on a new page
73
+ # @return [Boolean] (true)
74
+ register :create_another, false
75
+
76
+ # Default CSV options
77
+ register :csv_options, { col_sep: ",", byte_order_mark: "\xEF\xBB\xBF" }
78
+
79
+ # Default Download Links options
80
+ register :download_links, true
81
+
82
+ # The authorization adapter to use
83
+ register :authorization_adapter, ActiveAdmin::AuthorizationAdapter
84
+
85
+ # A proc to be used when a user is not authorized to view the current resource
86
+ register :on_unauthorized_access, :rescue_active_admin_access_denied
87
+
88
+ # A regex to detect unsupported browser, set to false to disable
89
+ register :unsupported_browser_matcher, /MSIE [1-8]\.0/
90
+
91
+ # Whether to display 'Current Filters' on search screen
92
+ register :current_filters, true
93
+
94
+ # class to handle ordering
95
+ register :order_clause, ActiveAdmin::OrderClause
96
+
97
+ # default show_count for scopes
98
+ register :scopes_show_count, true
99
+
100
+ # Request parameters that are permitted by default
101
+ register :permitted_params, [
102
+ :utf8, :_method, :authenticity_token, :commit, :id
103
+ ]
104
+
105
+ # Set flash message keys that shouldn't show in ActiveAdmin
106
+ register :flash_keys_to_except, ["timedout"]
107
+
108
+ # Include association filters by default
109
+ register :include_default_association_filters, true
110
+
111
+ register :maximum_association_filter_arity, :unlimited
112
+
113
+ register :filter_columns_for_large_association, [
114
+ :display_name,
115
+ :full_name,
116
+ :name,
117
+ :username,
118
+ :login,
119
+ :title,
120
+ :email,
121
+ ]
122
+ register :filter_method_for_large_association, "_starts_with"
123
+
124
+ # Switch between asset pipeline and webpacker assets
125
+ register :use_webpacker, false
126
+ end
127
+ end