activeadmin 1.0.0 → 2.13.1

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 (618) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +851 -68
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +80 -82
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +7 -35
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/app/assets/stylesheets/active_admin/_normalize.scss +349 -0
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +3 -4
  13. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  14. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  15. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  16. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  17. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  18. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  19. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  20. data/app/assets/stylesheets/active_admin/components/_tables.scss +5 -3
  21. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -10
  23. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  25. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  26. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  27. data/app/javascript/active_admin/base.js +28 -0
  28. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  29. data/app/javascript/active_admin/ext/jquery.js +9 -0
  30. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  31. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  32. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  33. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  34. data/app/javascript/active_admin/initializers/filters.js +10 -0
  35. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  36. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  37. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  38. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  39. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  40. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  41. data/app/javascript/active_admin/lib/filters.js +39 -0
  42. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  43. data/app/javascript/active_admin/lib/per-page.js +38 -0
  44. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  45. data/app/javascript/active_admin/lib/utils.js +40 -0
  46. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  47. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  48. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  49. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  50. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  51. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  52. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  53. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  54. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  55. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  56. data/app/views/active_admin/page/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/edit.html.arb +1 -0
  58. data/app/views/active_admin/resource/index.html.arb +1 -0
  59. data/app/views/active_admin/resource/new.html.arb +1 -0
  60. data/app/views/active_admin/resource/show.html.arb +1 -0
  61. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  63. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  64. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  65. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  66. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  67. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  68. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  69. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  70. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  71. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  72. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  73. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  74. data/app/views/layouts/active_admin.html.arb +1 -0
  75. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  76. data/config/locales/ar.yml +10 -11
  77. data/config/locales/az.yml +138 -0
  78. data/config/locales/bg.yml +1 -3
  79. data/config/locales/bs.yml +1 -2
  80. data/config/locales/ca.yml +1 -3
  81. data/config/locales/cs.yml +1 -2
  82. data/config/locales/da.yml +2 -3
  83. data/config/locales/de-CH.yml +2 -3
  84. data/config/locales/de.yml +30 -3
  85. data/config/locales/el.yml +2 -3
  86. data/config/locales/en-CA.yml +139 -0
  87. data/config/locales/en-GB.yml +46 -5
  88. data/config/locales/en.yml +32 -8
  89. data/config/locales/eo.yml +145 -0
  90. data/config/locales/es-MX.yml +6 -3
  91. data/config/locales/es.yml +36 -10
  92. data/config/locales/fa.yml +1 -2
  93. data/config/locales/fi.yml +2 -3
  94. data/config/locales/fr.yml +15 -7
  95. data/config/locales/he.yml +53 -7
  96. data/config/locales/hr.yml +1 -2
  97. data/config/locales/hu.yml +5 -2
  98. data/config/locales/id.yml +2 -3
  99. data/config/locales/it.yml +33 -7
  100. data/config/locales/ja.yml +9 -5
  101. data/config/locales/ko.yml +2 -3
  102. data/config/locales/lt.yml +27 -6
  103. data/config/locales/lv.yml +3 -4
  104. data/config/locales/mk.yml +134 -0
  105. data/config/locales/nb.yml +16 -7
  106. data/config/locales/nl.yml +14 -4
  107. data/config/locales/pl.yml +75 -5
  108. data/config/locales/pt-BR.yml +10 -3
  109. data/config/locales/pt-PT.yml +1 -2
  110. data/config/locales/ro.yml +4 -4
  111. data/config/locales/ru.yml +4 -3
  112. data/config/locales/sk.yml +60 -2
  113. data/config/locales/sv-SE.yml +4 -3
  114. data/config/locales/tr.yml +10 -2
  115. data/config/locales/uk.yml +4 -3
  116. data/config/locales/vi.yml +53 -12
  117. data/config/locales/zh-CN.yml +34 -7
  118. data/config/locales/zh-TW.yml +2 -3
  119. data/docs/.gitignore +1 -0
  120. data/docs/0-installation.md +42 -15
  121. data/docs/1-general-configuration.md +46 -4
  122. data/docs/10-custom-pages.md +24 -5
  123. data/docs/11-decorators.md +17 -5
  124. data/docs/12-arbre-components.md +47 -9
  125. data/docs/13-authorization-adapter.md +69 -35
  126. data/docs/14-gotchas.md +41 -22
  127. data/docs/2-resource-customization.md +57 -20
  128. data/docs/3-index-pages/custom-index.md +2 -1
  129. data/docs/3-index-pages/index-as-block.md +0 -5
  130. data/docs/3-index-pages/index-as-blog.md +1 -6
  131. data/docs/3-index-pages/index-as-grid.md +0 -5
  132. data/docs/3-index-pages/index-as-table.md +13 -14
  133. data/docs/3-index-pages.md +47 -12
  134. data/docs/4-csv-format.md +2 -1
  135. data/docs/5-forms.md +68 -24
  136. data/docs/6-show-pages.md +14 -1
  137. data/docs/7-sidebars.md +2 -1
  138. data/docs/8-custom-actions.md +16 -2
  139. data/docs/9-batch-actions.md +5 -3
  140. data/docs/CNAME +1 -1
  141. data/docs/Gemfile +4 -2
  142. data/docs/Gemfile.lock +283 -0
  143. data/docs/_config.yml +3 -1
  144. data/docs/_includes/toc.html +1 -1
  145. data/docs/_includes/top-menu.html +9 -1
  146. data/docs/documentation.md +21 -23
  147. data/docs/images/tidelift.svg +14 -0
  148. data/docs/index.html +110 -9
  149. data/docs/stylesheets/main.css +55 -2
  150. data/lib/active_admin/abstract_view_factory.rb +14 -51
  151. data/lib/active_admin/application.rb +65 -170
  152. data/lib/active_admin/application_settings.rb +43 -0
  153. data/lib/active_admin/asset_registration.rb +1 -0
  154. data/lib/active_admin/authorization_adapter.rb +4 -6
  155. data/lib/active_admin/base_controller/authorization.rb +18 -19
  156. data/lib/active_admin/base_controller/menu.rb +10 -9
  157. data/lib/active_admin/base_controller.rb +12 -12
  158. data/lib/active_admin/batch_actions/controller.rb +6 -5
  159. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  160. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  161. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  162. data/lib/active_admin/batch_actions/views/selection_cells.rb +8 -6
  163. data/lib/active_admin/batch_actions.rb +1 -0
  164. data/lib/active_admin/callbacks.rb +2 -1
  165. data/lib/active_admin/cancan_adapter.rb +2 -1
  166. data/lib/active_admin/collection_decorator.rb +32 -0
  167. data/lib/active_admin/component.rb +1 -0
  168. data/lib/active_admin/controller_action.rb +3 -1
  169. data/lib/active_admin/csv_builder.rb +17 -23
  170. data/lib/active_admin/dependency.rb +15 -78
  171. data/lib/active_admin/deprecation.rb +1 -25
  172. data/lib/active_admin/devise.rb +18 -7
  173. data/lib/active_admin/dsl.rb +5 -11
  174. data/lib/active_admin/dynamic_setting.rb +39 -0
  175. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  176. data/lib/active_admin/engine.rb +16 -7
  177. data/lib/active_admin/error.rb +5 -4
  178. data/lib/active_admin/filters/active.rb +14 -14
  179. data/lib/active_admin/filters/active_filter.rb +124 -0
  180. data/lib/active_admin/filters/active_sidebar.rb +28 -0
  181. data/lib/active_admin/filters/dsl.rb +1 -0
  182. data/lib/active_admin/filters/forms.rb +12 -9
  183. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  184. data/lib/active_admin/filters/resource_extension.rb +32 -35
  185. data/lib/active_admin/filters.rb +8 -5
  186. data/lib/active_admin/form_builder.rb +110 -70
  187. data/lib/active_admin/generators/boilerplate.rb +13 -4
  188. data/lib/active_admin/helpers/collection.rb +2 -0
  189. data/lib/active_admin/helpers/i18n.rb +1 -0
  190. data/lib/active_admin/helpers/optional_display.rb +3 -2
  191. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  192. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  193. data/lib/active_admin/inputs/datepicker_input.rb +14 -6
  194. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  195. data/lib/active_admin/inputs/filters/base.rb +2 -1
  196. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  197. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  198. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  199. data/lib/active_admin/inputs/filters/date_range_input.rb +24 -12
  200. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  201. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  202. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  203. data/lib/active_admin/inputs/filters/text_input.rb +1 -1
  204. data/lib/active_admin/inputs.rb +1 -0
  205. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  206. data/lib/active_admin/localizers.rb +2 -1
  207. data/lib/active_admin/menu.rb +13 -15
  208. data/lib/active_admin/menu_collection.rb +1 -2
  209. data/lib/active_admin/menu_item.rb +11 -38
  210. data/lib/active_admin/namespace.rb +34 -21
  211. data/lib/active_admin/namespace_settings.rb +127 -0
  212. data/lib/active_admin/order_clause.rb +4 -3
  213. data/lib/active_admin/orm/active_record/comments/comment.rb +6 -9
  214. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  215. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  216. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  217. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +37 -24
  218. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  219. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  220. data/lib/active_admin/orm/active_record.rb +2 -1
  221. data/lib/active_admin/orm/mongoid.rb +1 -0
  222. data/lib/active_admin/page.rb +2 -1
  223. data/lib/active_admin/page_controller.rb +2 -1
  224. data/lib/active_admin/page_dsl.rb +2 -1
  225. data/lib/active_admin/page_presenter.rb +3 -1
  226. data/lib/active_admin/pundit_adapter.rb +73 -16
  227. data/lib/active_admin/resource/action_items.rb +16 -6
  228. data/lib/active_admin/resource/attributes.rb +10 -6
  229. data/lib/active_admin/resource/belongs_to.rb +9 -3
  230. data/lib/active_admin/resource/controllers.rb +2 -1
  231. data/lib/active_admin/resource/includes.rb +1 -0
  232. data/lib/active_admin/resource/menu.rb +6 -5
  233. data/lib/active_admin/resource/model.rb +16 -0
  234. data/lib/active_admin/resource/naming.rb +6 -5
  235. data/lib/active_admin/resource/ordering.rb +1 -0
  236. data/lib/active_admin/resource/page_presenters.rb +2 -1
  237. data/lib/active_admin/resource/pagination.rb +1 -0
  238. data/lib/active_admin/resource/routes.rb +26 -15
  239. data/lib/active_admin/resource/scope_to.rb +8 -7
  240. data/lib/active_admin/resource/scopes.rb +5 -3
  241. data/lib/active_admin/resource/sidebars.rb +3 -2
  242. data/lib/active_admin/resource.rb +37 -22
  243. data/lib/active_admin/resource_collection.rb +3 -2
  244. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  245. data/lib/active_admin/resource_controller/data_access.rb +43 -14
  246. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  247. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  248. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  249. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  250. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  251. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  252. data/lib/active_admin/resource_controller.rb +15 -11
  253. data/lib/active_admin/resource_dsl.rb +18 -28
  254. data/lib/active_admin/router.rb +91 -84
  255. data/lib/active_admin/scope.rb +22 -13
  256. data/lib/active_admin/settings_node.rb +20 -0
  257. data/lib/active_admin/sidebar_section.rb +4 -1
  258. data/lib/active_admin/version.rb +2 -1
  259. data/lib/active_admin/view_factory.rb +18 -17
  260. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  261. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  262. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  263. data/lib/active_admin/view_helpers/display_helper.rb +26 -9
  264. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  265. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  266. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  267. data/lib/active_admin/view_helpers/form_helper.rb +2 -1
  268. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  269. data/lib/active_admin/view_helpers/scope_name_helper.rb +17 -0
  270. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  271. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  272. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  273. data/lib/active_admin/view_helpers.rb +3 -1
  274. data/lib/active_admin/views/action_items.rb +2 -1
  275. data/lib/active_admin/views/components/active_admin_form.rb +15 -9
  276. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  277. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  278. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  279. data/lib/active_admin/views/components/columns.rb +1 -0
  280. data/lib/active_admin/views/components/dropdown_menu.rb +9 -11
  281. data/lib/active_admin/views/components/index_list.rb +4 -5
  282. data/lib/active_admin/views/components/menu.rb +33 -0
  283. data/lib/active_admin/views/components/menu_item.rb +59 -0
  284. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  285. data/lib/active_admin/views/components/panel.rb +2 -1
  286. data/lib/active_admin/views/components/scopes.rb +19 -17
  287. data/lib/active_admin/views/components/sidebar.rb +14 -0
  288. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  289. data/lib/active_admin/views/components/site_title.rb +7 -7
  290. data/lib/active_admin/views/components/status_tag.rb +19 -23
  291. data/lib/active_admin/views/components/table_for.rb +22 -29
  292. data/lib/active_admin/views/components/tabs.rb +18 -5
  293. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  294. data/lib/active_admin/views/footer.rb +6 -8
  295. data/lib/active_admin/views/header.rb +4 -16
  296. data/lib/active_admin/views/index_as_block.rb +1 -0
  297. data/lib/active_admin/views/index_as_blog.rb +4 -4
  298. data/lib/active_admin/views/index_as_grid.rb +27 -26
  299. data/lib/active_admin/views/index_as_table.rb +53 -26
  300. data/lib/active_admin/views/pages/base.rb +47 -63
  301. data/lib/active_admin/views/pages/form.rb +1 -0
  302. data/lib/active_admin/views/pages/index.rb +16 -13
  303. data/lib/active_admin/views/pages/layout.rb +1 -0
  304. data/lib/active_admin/views/pages/page.rb +1 -0
  305. data/lib/active_admin/views/pages/show.rb +7 -1
  306. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  307. data/lib/active_admin/views/title_bar.rb +6 -5
  308. data/lib/active_admin/views.rb +2 -1
  309. data/lib/active_admin.rb +70 -68
  310. data/lib/activeadmin.rb +2 -1
  311. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  312. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  313. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  314. data/lib/generators/active_admin/devise/devise_generator.rb +7 -6
  315. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  316. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  317. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -1
  318. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  319. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  320. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  321. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  322. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  323. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  324. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  325. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  326. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  327. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  328. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  329. data/lib/ransack_ext.rb +10 -9
  330. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  331. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  332. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  333. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  334. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  335. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  336. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  337. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  338. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  339. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  340. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  341. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  342. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  343. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  344. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  345. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  346. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  347. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  348. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  349. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  350. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  351. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  352. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  353. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  354. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  355. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  356. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  357. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  358. metadata +158 -580
  359. data/.gitignore +0 -49
  360. data/.hound.yml +0 -14
  361. data/.rubocop.yml +0 -27
  362. data/.travis.yml +0 -66
  363. data/.yardopts +0 -8
  364. data/Appraisals +0 -41
  365. data/Gemfile +0 -49
  366. data/Rakefile +0 -65
  367. data/activeadmin.gemspec +0 -34
  368. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  369. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  370. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  371. data/app/assets/images/active_admin/orderable.png +0 -0
  372. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  373. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  374. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  375. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  376. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  377. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -22
  378. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  379. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
  380. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  381. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -44
  382. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  383. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  384. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  385. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  386. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -42
  387. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  388. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  389. data/codecov.yml +0 -23
  390. data/cucumber.yml +0 -3
  391. data/features/action_item.feature +0 -73
  392. data/features/authorization.feature +0 -64
  393. data/features/authorization_cancan.feature +0 -52
  394. data/features/authorization_pundit.feature +0 -37
  395. data/features/belongs_to.feature +0 -124
  396. data/features/breadcrumb.feature +0 -75
  397. data/features/comments/commenting.feature +0 -158
  398. data/features/comments/viewing_index.feature +0 -19
  399. data/features/create_another.feature +0 -55
  400. data/features/dashboard.feature +0 -16
  401. data/features/decorators.feature +0 -43
  402. data/features/development_reloading.feature +0 -28
  403. data/features/edit_page.feature +0 -116
  404. data/features/favicon.feature +0 -20
  405. data/features/first_boot.feature +0 -16
  406. data/features/footer.feature +0 -28
  407. data/features/global_navigation.feature +0 -29
  408. data/features/i18n.feature +0 -55
  409. data/features/index/batch_actions.feature +0 -218
  410. data/features/index/filters.feature +0 -199
  411. data/features/index/format_as_csv.feature +0 -203
  412. data/features/index/formats.feature +0 -88
  413. data/features/index/index_as_block.feature +0 -15
  414. data/features/index/index_as_blog.feature +0 -69
  415. data/features/index/index_as_grid.feature +0 -45
  416. data/features/index/index_as_table.feature +0 -291
  417. data/features/index/index_blank_slate.feature +0 -83
  418. data/features/index/index_parameters.feature +0 -75
  419. data/features/index/index_scope_to.feature +0 -56
  420. data/features/index/index_scopes.feature +0 -270
  421. data/features/index/page_title.feature +0 -41
  422. data/features/index/pagination.feature +0 -63
  423. data/features/index/switch_index_view.feature +0 -73
  424. data/features/menu.feature +0 -72
  425. data/features/meta_tags.feature +0 -21
  426. data/features/new_page.feature +0 -107
  427. data/features/registering_assets.feature +0 -34
  428. data/features/registering_pages.feature +0 -237
  429. data/features/registering_resources.feature +0 -33
  430. data/features/renamed_resource.feature +0 -30
  431. data/features/root_to.feature +0 -17
  432. data/features/show/columns.feature +0 -40
  433. data/features/show/default_content.feature +0 -44
  434. data/features/show/page_title.feature +0 -58
  435. data/features/show/tabs.feature +0 -27
  436. data/features/sidebar_sections.feature +0 -210
  437. data/features/site_title.feature +0 -47
  438. data/features/specifying_actions.feature +0 -118
  439. data/features/step_definitions/action_item_steps.rb +0 -7
  440. data/features/step_definitions/action_link_steps.rb +0 -20
  441. data/features/step_definitions/additional_web_steps.rb +0 -81
  442. data/features/step_definitions/asset_steps.rb +0 -15
  443. data/features/step_definitions/attribute_steps.rb +0 -18
  444. data/features/step_definitions/batch_action_steps.rb +0 -81
  445. data/features/step_definitions/blog_steps.rb +0 -3
  446. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  447. data/features/step_definitions/column_steps.rb +0 -8
  448. data/features/step_definitions/comment_steps.rb +0 -12
  449. data/features/step_definitions/configuration_steps.rb +0 -100
  450. data/features/step_definitions/dashboard_steps.rb +0 -15
  451. data/features/step_definitions/factory_steps.rb +0 -35
  452. data/features/step_definitions/filter_steps.rb +0 -39
  453. data/features/step_definitions/flash_steps.rb +0 -11
  454. data/features/step_definitions/footer_steps.rb +0 -11
  455. data/features/step_definitions/format_steps.rb +0 -56
  456. data/features/step_definitions/i18n_steps.rb +0 -11
  457. data/features/step_definitions/index_scope_steps.rb +0 -25
  458. data/features/step_definitions/index_views_steps.rb +0 -3
  459. data/features/step_definitions/layout_steps.rb +0 -3
  460. data/features/step_definitions/member_link_steps.rb +0 -7
  461. data/features/step_definitions/menu_steps.rb +0 -11
  462. data/features/step_definitions/meta_tag_steps.rb +0 -3
  463. data/features/step_definitions/pagination_steps.rb +0 -15
  464. data/features/step_definitions/sidebar_steps.rb +0 -11
  465. data/features/step_definitions/site_title_steps.rb +0 -17
  466. data/features/step_definitions/tab_steps.rb +0 -8
  467. data/features/step_definitions/table_steps.rb +0 -116
  468. data/features/step_definitions/user_steps.rb +0 -52
  469. data/features/step_definitions/web_steps.rb +0 -86
  470. data/features/sti_resource.feature +0 -65
  471. data/features/strong_parameters.feature +0 -69
  472. data/features/support/env.rb +0 -121
  473. data/features/support/paths.rb +0 -73
  474. data/features/support/selectors.rb +0 -45
  475. data/features/users/logging_in.feature +0 -36
  476. data/features/users/logging_out.feature +0 -13
  477. data/features/users/resetting_password.feature +0 -34
  478. data/gemfiles/rails_42.gemfile +0 -45
  479. data/gemfiles/rails_50.gemfile +0 -45
  480. data/gemfiles/rails_51.gemfile +0 -45
  481. data/lib/active_admin/event.rb +0 -24
  482. data/lib/active_admin/filters/humanized.rb +0 -68
  483. data/lib/active_admin/helpers/settings.rb +0 -115
  484. data/lib/active_admin/reloader.rb +0 -25
  485. data/lib/bug_report_templates/rails_5_master.rb +0 -118
  486. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  487. data/spec/bug_report_templates_spec.rb +0 -27
  488. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  489. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  490. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  491. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  492. data/spec/javascripts/fixtures/flashes.html +0 -2
  493. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  494. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  495. data/spec/javascripts/support/jasmine.yml +0 -74
  496. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  497. data/spec/rails_helper.rb +0 -62
  498. data/spec/requests/default_namespace_spec.rb +0 -81
  499. data/spec/requests/javascript_spec.rb +0 -22
  500. data/spec/requests/memory_spec.rb +0 -25
  501. data/spec/requests/stylesheets_spec.rb +0 -18
  502. data/spec/spec_helper.rb +0 -12
  503. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  504. data/spec/support/active_admin_request_helpers.rb +0 -39
  505. data/spec/support/jslint.yml +0 -80
  506. data/spec/support/rails_template.rb +0 -182
  507. data/spec/support/rails_template_with_data.rb +0 -68
  508. data/spec/support/templates/admin/stores.rb +0 -7
  509. data/spec/support/templates/en.yml +0 -8
  510. data/spec/support/templates/manifest.js +0 -3
  511. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  512. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  513. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  514. data/spec/support/templates/policies/application_policy.rb +0 -45
  515. data/spec/support/templates/policies/category_policy.rb +0 -7
  516. data/spec/support/templates/policies/post_policy.rb +0 -15
  517. data/spec/support/templates/policies/store_policy.rb +0 -11
  518. data/spec/support/templates/policies/user_policy.rb +0 -11
  519. data/spec/support/templates/post_decorator.rb +0 -11
  520. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  521. data/spec/unit/action_builder_spec.rb +0 -125
  522. data/spec/unit/active_admin_spec.rb +0 -11
  523. data/spec/unit/application_spec.rb +0 -180
  524. data/spec/unit/asset_registration_spec.rb +0 -52
  525. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  526. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  527. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  528. data/spec/unit/auto_link_spec.rb +0 -93
  529. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  530. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  531. data/spec/unit/belongs_to_spec.rb +0 -77
  532. data/spec/unit/cancan_adapter_spec.rb +0 -43
  533. data/spec/unit/comments_spec.rb +0 -176
  534. data/spec/unit/component_spec.rb +0 -18
  535. data/spec/unit/config_shared_examples.rb +0 -59
  536. data/spec/unit/controller_filters_spec.rb +0 -41
  537. data/spec/unit/csv_builder_spec.rb +0 -306
  538. data/spec/unit/dependency_spec.rb +0 -135
  539. data/spec/unit/devise_spec.rb +0 -110
  540. data/spec/unit/dsl_spec.rb +0 -122
  541. data/spec/unit/filters/active_spec.rb +0 -14
  542. data/spec/unit/filters/filter_form_builder_spec.rb +0 -500
  543. data/spec/unit/filters/humanized_spec.rb +0 -64
  544. data/spec/unit/filters/resource_spec.rb +0 -128
  545. data/spec/unit/form_builder_spec.rb +0 -990
  546. data/spec/unit/generators/install_spec.rb +0 -31
  547. data/spec/unit/helpers/collection_spec.rb +0 -68
  548. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  549. data/spec/unit/helpers/settings_spec.rb +0 -30
  550. data/spec/unit/i18n_spec.rb +0 -12
  551. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  552. data/spec/unit/menu_collection_spec.rb +0 -62
  553. data/spec/unit/menu_item_spec.rb +0 -143
  554. data/spec/unit/menu_spec.rb +0 -71
  555. data/spec/unit/namespace/authorization_spec.rb +0 -27
  556. data/spec/unit/namespace/register_page_spec.rb +0 -99
  557. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  558. data/spec/unit/namespace_spec.rb +0 -125
  559. data/spec/unit/order_clause_spec.rb +0 -81
  560. data/spec/unit/page_controller_spec.rb +0 -5
  561. data/spec/unit/page_spec.rb +0 -131
  562. data/spec/unit/pretty_format_spec.rb +0 -82
  563. data/spec/unit/pundit_adapter_spec.rb +0 -98
  564. data/spec/unit/resource/action_items_spec.rb +0 -65
  565. data/spec/unit/resource/attributes_spec.rb +0 -50
  566. data/spec/unit/resource/includes_spec.rb +0 -21
  567. data/spec/unit/resource/menu_spec.rb +0 -18
  568. data/spec/unit/resource/naming_spec.rb +0 -122
  569. data/spec/unit/resource/ordering_spec.rb +0 -38
  570. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  571. data/spec/unit/resource/pagination_spec.rb +0 -38
  572. data/spec/unit/resource/routes_spec.rb +0 -125
  573. data/spec/unit/resource/scopes_spec.rb +0 -50
  574. data/spec/unit/resource/sidebars_spec.rb +0 -43
  575. data/spec/unit/resource_collection_spec.rb +0 -175
  576. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  577. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  578. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  579. data/spec/unit/resource_controller_spec.rb +0 -274
  580. data/spec/unit/resource_registration_spec.rb +0 -61
  581. data/spec/unit/resource_spec.rb +0 -313
  582. data/spec/unit/routing_spec.rb +0 -213
  583. data/spec/unit/scope_spec.rb +0 -209
  584. data/spec/unit/settings_spec.rb +0 -118
  585. data/spec/unit/view_factory_spec.rb +0 -19
  586. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  587. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  588. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  589. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  590. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  591. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  592. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  593. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  594. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  595. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  596. data/spec/unit/views/components/columns_spec.rb +0 -189
  597. data/spec/unit/views/components/index_list_spec.rb +0 -49
  598. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  599. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  600. data/spec/unit/views/components/panel_spec.rb +0 -58
  601. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  602. data/spec/unit/views/components/site_title_spec.rb +0 -78
  603. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  604. data/spec/unit/views/components/table_for_spec.rb +0 -436
  605. data/spec/unit/views/components/tabs_spec.rb +0 -39
  606. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  607. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  608. data/spec/unit/views/pages/form_spec.rb +0 -54
  609. data/spec/unit/views/pages/index_spec.rb +0 -60
  610. data/spec/unit/views/pages/layout_spec.rb +0 -59
  611. data/spec/unit/views/pages/show_spec.rb +0 -32
  612. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  613. data/tasks/docs.rake +0 -37
  614. data/tasks/lint.rake +0 -8
  615. data/tasks/local.rake +0 -25
  616. data/tasks/parallel_tests.rake +0 -66
  617. data/tasks/test.rake +0 -46
  618. data/tasks/yard.rake +0 -9
@@ -559,7 +559,7 @@ caption {
559
559
  body {
560
560
  background: #f6f4f1;
561
561
  color: #676767;
562
- width: 676px;
562
+ width: 768px;
563
563
  padding: 0 20px;
564
564
  font-size: 95%;
565
565
  margin: 25px auto;
@@ -594,6 +594,56 @@ body #header {
594
594
  margin: 40px 0;
595
595
  }
596
596
 
597
+ body #header h1 {
598
+ margin-bottom: 0;
599
+ }
600
+
601
+ body #tidelift {
602
+ display: flex;
603
+ justify-content: flex-start;
604
+ }
605
+
606
+ body #tidelift a {
607
+ border: 1px solid #666666;
608
+ margin-left: auto;
609
+ padding: 10px;
610
+ text-decoration: none;
611
+ }
612
+
613
+ body #tidelift a .cta {
614
+ background: url("../images/tidelift.svg") no-repeat;
615
+ padding-left: 30px;
616
+ }
617
+
618
+ body .tidelift-buttons a {
619
+ display: table;
620
+ width: 200px;
621
+ border: 2px solid #407985;
622
+ border-radius: 4px;
623
+ text-decoration: none;
624
+ font-family: 'Yanone Kaffeesatz', 'Helvetica Neue', Arial, Helvetica, sans-serif;
625
+ font-size: 18px;
626
+ letter-spacing: 1px;
627
+ margin: 0 10px;
628
+ }
629
+
630
+ body .tidelift-buttons a:first-child {
631
+ float: left;
632
+ color: #407985;
633
+ background: #FFF;
634
+ }
635
+
636
+ body .tidelift-buttons a:last-child {
637
+ color: #FFF;
638
+ background: #407985;
639
+ }
640
+
641
+ body .tidelift-buttons a span {
642
+ display: table-cell;
643
+ vertical-align: middle;
644
+ text-align: center;
645
+ }
646
+
597
647
  body .clear {
598
648
  clear: both;
599
649
  }
@@ -629,11 +679,14 @@ body h3 {
629
679
  font-weight: 300;
630
680
  }
631
681
 
632
- body #nav {
682
+ body #nav, body #tidelift .cta {
633
683
  font-family: 'Yanone Kaffeesatz', 'Helvetica Neue', Arial, Helvetica, sans-serif;
634
684
  font-weight: 400;
635
685
  font-size: 1.2em;
636
686
  text-transform: uppercase;
687
+ }
688
+
689
+ body #nav {
637
690
  position: absolute;
638
691
  right: 0;
639
692
  top: 20px;
@@ -1,15 +1,20 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
- class AbstractViewFactory
3
- @@default_views = {}
3
+ class AbstractViewFactory < SettingsNode
4
4
 
5
5
  def self.register(view_hash)
6
6
  view_hash.each do |view_key, view_class|
7
- @@default_views[view_key] = view_class
7
+ super view_key, view_class
8
+ add_writer(view_key)
9
+ send "#{view_key}=", view_class
8
10
  end
9
11
  end
10
12
 
11
- def initialize
12
- @views = {}
13
+ def self.add_writer(name)
14
+ define_singleton_method("#{name}=") do |value|
15
+ value.builder_method name
16
+ instance_variable_set :"@#{name}", value
17
+ end
13
18
  end
14
19
 
15
20
  # Register a new view key with the view factory
@@ -25,61 +30,19 @@ module ActiveAdmin
25
30
  # another_view: OtherViewClass
26
31
  #
27
32
  def register(view_hash)
28
- view_hash.each do |view_key, view_class|
29
- @views[view_key] = view_class
30
- end
33
+ self.class.register view_hash
31
34
  end
32
35
 
33
36
  def default_for(key)
34
- @@default_views[key.to_sym]
35
- end
36
-
37
- def has_key?(key)
38
- @views.has_key?(key.to_sym) || @@default_views.has_key?(key.to_sym)
37
+ self.class.send key
39
38
  end
40
39
 
41
40
  def [](key)
42
- get_view_for_key(key)
41
+ send key
43
42
  end
44
43
 
45
44
  def []=(key, value)
46
- set_view_for_key(key, value)
47
- end
48
-
49
- def respond_to_missing?(method, include_private)
50
- key = key_from_method_name(method)
51
- if has_key?(key)
52
- true
53
- else
54
- super
55
- end
56
- end
57
-
58
- private
59
-
60
- def method_missing(method, *args)
61
- key = key_from_method_name(method)
62
- if has_key?(key)
63
- if method.to_s.include?('=')
64
- set_view_for_key key, args.first
65
- else
66
- get_view_for_key key
67
- end
68
- else
69
- super
70
- end
71
- end
72
-
73
- def key_from_method_name(method)
74
- method.to_s.tr('=', '').to_sym
75
- end
76
-
77
- def get_view_for_key(key)
78
- @views[key.to_sym] || @@default_views[key.to_sym]
79
- end
80
-
81
- def set_view_for_key(key, view)
82
- @views[key.to_sym] = view
45
+ send "#{key}=", value
83
46
  end
84
47
  end
85
48
  end
@@ -1,160 +1,53 @@
1
- require 'active_admin/router'
2
- require 'active_admin/reloader'
3
- require 'active_admin/helpers/settings'
1
+ # frozen_string_literal: true
2
+ require "active_admin/router"
3
+ require "active_admin/application_settings"
4
+ require "active_admin/namespace_settings"
4
5
 
5
6
  module ActiveAdmin
6
7
  class Application
7
- include Settings
8
- include Settings::Inheritance
9
8
 
10
- settings_inherited_by Namespace
11
-
12
- # The default namespace to put controllers and routes inside. Set this
13
- # in config/initializers/active_admin.rb using:
14
- #
15
- # config.default_namespace = :super_admin
16
- #
17
- setting :default_namespace, :admin
9
+ class << self
10
+ def setting(name, default)
11
+ ApplicationSettings.register name, default
12
+ end
18
13
 
19
- attr_reader :namespaces
20
- def initialize
21
- @namespaces = Namespace::Store.new
14
+ def inheritable_setting(name, default)
15
+ NamespaceSettings.register name, default
16
+ end
22
17
  end
23
18
 
24
- # Load paths for admin configurations. Add folders to this load path
25
- # to load up other resources for administration. External gems can
26
- # include their paths in this load path to provide active_admin UIs
27
- setting :load_paths, [File.expand_path('app/admin', Rails.root)]
28
-
29
- # The default number of resources to display on index pages
30
- inheritable_setting :default_per_page, 30
31
-
32
- # The max number of resources to display on index pages and batch exports
33
- inheritable_setting :max_per_page, 10_000
34
-
35
- # The title which gets displayed in the main layout
36
- inheritable_setting :site_title, ""
37
-
38
- # Set the site title link href (defaults to AA dashboard)
39
- inheritable_setting :site_title_link, ""
40
-
41
- # Set the site title image displayed in the main layout (has precendence over :site_title)
42
- inheritable_setting :site_title_image, ""
43
-
44
- # Set the site footer text (defaults to Powered by ActiveAdmin text with version)
45
- inheritable_setting :footer, ""
46
-
47
- # Set a favicon
48
- inheritable_setting :favicon, false
49
-
50
- # Additional meta tags to place in head of logged in pages.
51
- inheritable_setting :meta_tags, {}
52
-
53
- # Additional meta tags to place in head of logged out pages.
54
- inheritable_setting :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
55
-
56
- # The view factory to use to generate all the view classes. Take
57
- # a look at ActiveAdmin::ViewFactory
58
- inheritable_setting :view_factory, ActiveAdmin::ViewFactory.new
59
-
60
- # The method to call in controllers to get the current user
61
- inheritable_setting :current_user_method, false
62
-
63
- # The method to call in the controllers to ensure that there
64
- # is a currently authenticated admin user
65
- inheritable_setting :authentication_method, false
66
-
67
- # The path to log user's out with. If set to a symbol, we assume
68
- # that it's a method to call which returns the path
69
- inheritable_setting :logout_link_path, :destroy_admin_user_session_path
70
-
71
- # The method to use when generating the link for user logout
72
- inheritable_setting :logout_link_method, :get
73
-
74
- # Whether the batch actions are enabled or not
75
- inheritable_setting :batch_actions, false
76
-
77
- # Whether filters are enabled
78
- inheritable_setting :filters, true
79
-
80
- # The namespace root.
81
- inheritable_setting :root_to, 'dashboard#index'
82
-
83
- # Options that a passed to root_to.
84
- inheritable_setting :root_to_options, {}
85
-
86
- # Options passed to the routes, i.e. { path: '/custom' }
87
- inheritable_setting :route_options, {}
88
-
89
- # Display breadcrumbs
90
- inheritable_setting :breadcrumb, true
91
-
92
- # Display create another checkbox on a new page
93
- # @return [Boolean] (true)
94
- inheritable_setting :create_another, false
95
-
96
- # Default CSV options
97
- inheritable_setting :csv_options, { col_sep: ',', byte_order_mark: "\xEF\xBB\xBF" }
98
-
99
- # Default Download Links options
100
- inheritable_setting :download_links, true
101
-
102
- # The authorization adapter to use
103
- inheritable_setting :authorization_adapter, ActiveAdmin::AuthorizationAdapter
104
-
105
- # A proc to be used when a user is not authorized to view the current resource
106
- inheritable_setting :on_unauthorized_access, :rescue_active_admin_access_denied
107
-
108
- # A regex to detect unsupported browser, set to false to disable
109
- inheritable_setting :unsupported_browser_matcher, /MSIE [1-8]\.0/
110
-
111
- # Whether to display 'Current Filters' on search screen
112
- inheritable_setting :current_filters, true
113
-
114
- # class to handle ordering
115
- inheritable_setting :order_clause, ActiveAdmin::OrderClause
116
-
117
- # Request parameters that are permitted by default
118
- inheritable_setting :permitted_params, [
119
- :utf8, :_method, :authenticity_token, :commit, :id
120
- ]
121
-
122
- # Set flash message keys that shouldn't show in ActiveAdmin
123
- inheritable_setting :flash_keys_to_except, ['timedout']
124
-
125
- # Set default localize format for Date/Time values
126
- setting :localize_format, :long
127
-
128
- # Include association filters by default
129
- inheritable_setting :include_default_association_filters, true
19
+ def settings
20
+ @settings ||= SettingsNode.build(ApplicationSettings)
21
+ end
130
22
 
131
- # Active Admin makes educated guesses when displaying objects, this is
132
- # the list of methods it tries calling in order
133
- # Note that Formtastic also has 'collection_label_methods' similar to this
134
- # used by auto generated dropdowns in filter or belongs_to field of Active Admin
135
- setting :display_name_methods, [ :display_name,
136
- :full_name,
137
- :name,
138
- :username,
139
- :login,
140
- :title,
141
- :email,
142
- :to_s ]
23
+ def namespace_settings
24
+ @namespace_settings ||= SettingsNode.build(NamespaceSettings)
25
+ end
143
26
 
144
- # To make debugging easier, by default don't stream in development
145
- setting :disable_streaming_in, ['development']
27
+ def respond_to_missing?(method, include_private = false)
28
+ [settings, namespace_settings].any? { |sets| sets.respond_to?(method) } || super
29
+ end
146
30
 
147
- # == Deprecated Settings
31
+ def method_missing(method, *args)
32
+ if settings.respond_to?(method)
33
+ settings.send(method, *args)
34
+ elsif namespace_settings.respond_to?(method)
35
+ namespace_settings.send(method, *args)
36
+ else
37
+ super
38
+ end
39
+ end
148
40
 
149
- def allow_comments=(*)
150
- raise "`config.allow_comments` is no longer provided in ActiveAdmin 1.x. Use `config.comments` instead."
41
+ attr_reader :namespaces
42
+ def initialize
43
+ @namespaces = Namespace::Store.new
151
44
  end
152
45
 
153
46
  include AssetRegistration
154
47
 
155
48
  # Event that gets triggered on load of Active Admin
156
- BeforeLoadEvent = 'active_admin.application.before_load'.freeze
157
- AfterLoadEvent = 'active_admin.application.after_load'.freeze
49
+ BeforeLoadEvent = "active_admin.application.before_load".freeze
50
+ AfterLoadEvent = "active_admin.application.after_load".freeze
158
51
 
159
52
  # Runs before the app's AA initializer
160
53
  def setup!
@@ -169,7 +62,7 @@ module ActiveAdmin
169
62
 
170
63
  # Registers a brand new configuration for the given resource.
171
64
  def register(resource, options = {}, &block)
172
- ns = options.fetch(:namespace){ default_namespace }
65
+ ns = options.fetch(:namespace) { default_namespace }
173
66
  namespace(ns).register resource, options, &block
174
67
  end
175
68
 
@@ -181,9 +74,9 @@ module ActiveAdmin
181
74
  def namespace(name)
182
75
  name ||= :root
183
76
 
184
- namespace = namespaces[name] ||= begin
77
+ namespace = namespaces[name.to_sym] ||= begin
185
78
  namespace = Namespace.new(self, name)
186
- ActiveSupport::Notifications.publish ActiveAdmin::Namespace::RegisterEvent, namespace
79
+ ActiveSupport::Notifications.instrument ActiveAdmin::Namespace::RegisterEvent, { active_admin_namespace: namespace }
187
80
  namespace
188
81
  end
189
82
 
@@ -199,7 +92,7 @@ module ActiveAdmin
199
92
  # @&block The registration block.
200
93
  #
201
94
  def register_page(name, options = {}, &block)
202
- ns = options.fetch(:namespace){ default_namespace }
95
+ ns = options.fetch(:namespace) { default_namespace }
203
96
  namespace(ns).register_page name, options, &block
204
97
  end
205
98
 
@@ -219,42 +112,46 @@ module ActiveAdmin
219
112
  # To reload everything simply call `ActiveAdmin.unload!`
220
113
  def load!
221
114
  unless loaded?
222
- ActiveSupport::Notifications.publish BeforeLoadEvent, self # before_load hook
223
- files.each{ |file| load file } # load files
224
- namespace(default_namespace) # init AA resources
225
- ActiveSupport::Notifications.publish AfterLoadEvent, self # after_load hook
115
+ ActiveSupport::Notifications.instrument BeforeLoadEvent, { active_admin_application: self } # before_load hook
116
+ files.each { |file| load file } # load files
117
+ namespace(default_namespace) # init AA resources
118
+ ActiveSupport::Notifications.instrument AfterLoadEvent, { active_admin_application: self } # after_load hook
226
119
  @@loaded = true
227
120
  end
228
121
  end
229
122
 
230
123
  def load(file)
231
- DatabaseHitDuringLoad.capture{ super }
124
+ DatabaseHitDuringLoad.capture { super }
232
125
  end
233
126
 
234
127
  # Returns ALL the files to be loaded
235
128
  def files
236
- load_paths.flatten.compact.uniq.flat_map{ |path| Dir["#{path}/**/*.rb"] }
129
+ load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"].sort }
237
130
  end
238
131
 
239
- def router
240
- @router ||= Router.new(self)
241
- end
242
-
243
- # One-liner called by user's config/routes.rb file
132
+ # Creates all the necessary routes for the ActiveAdmin configurations
133
+ #
134
+ # Use this within the routes.rb file:
135
+ #
136
+ # Application.routes.draw do |map|
137
+ # ActiveAdmin.routes(self)
138
+ # end
139
+ #
140
+ # @param rails_router [ActionDispatch::Routing::Mapper]
244
141
  def routes(rails_router)
245
142
  load!
246
- router.apply(rails_router)
143
+ Router.new(router: rails_router, namespaces: namespaces).apply
247
144
  end
248
145
 
249
146
  # Adds before, around and after filters to all controllers.
250
147
  # Example usage:
251
- # ActiveAdmin.before_filter :authenticate_admin!
148
+ # ActiveAdmin.before_action :authenticate_admin!
252
149
  #
253
150
  AbstractController::Callbacks::ClassMethods.public_instance_methods.
254
- select { |m| m.match(/(filter|action)/) }.each do |name|
151
+ select { |m| m.match(/_action\z/) }.each do |name|
255
152
  define_method name do |*args, &block|
256
- controllers_for_filters.each do |controller|
257
- controller.public_send name, *args, &block
153
+ ActiveSupport.on_load(:active_admin_controller) do
154
+ public_send name, *args, &block
258
155
  end
259
156
  end
260
157
  end
@@ -265,13 +162,11 @@ module ActiveAdmin
265
162
  controllers
266
163
  end
267
164
 
268
- private
165
+ private
269
166
 
270
167
  def register_default_assets
271
- register_stylesheet 'active_admin.css', media: 'screen'
272
- register_stylesheet 'active_admin/print.css', media: 'print'
273
-
274
- register_javascript 'active_admin.js'
168
+ register_stylesheet "active_admin.css", media: "all"
169
+ register_javascript "active_admin.js"
275
170
  end
276
171
 
277
172
  # Since app/admin is alphabetically before app/models, we have to remove it
@@ -281,7 +176,7 @@ module ActiveAdmin
281
176
  # files from being loaded twice in production.
282
177
  def remove_active_admin_load_paths_from_rails_autoload_and_eager_load
283
178
  ActiveSupport::Dependencies.autoload_paths -= load_paths
284
- Rails.application.config.eager_load_paths -= load_paths
179
+ Rails.application.config.eager_load_paths -= load_paths
285
180
  end
286
181
 
287
182
  # Hook into the Rails code reloading mechanism so that things are reloaded
@@ -298,11 +193,11 @@ module ActiveAdmin
298
193
  # Rails is about to unload all the app files (e.g. models), so we
299
194
  # should first unload the classes generated by Active Admin, otherwise
300
195
  # they will contain references to the stale (unloaded) classes.
301
- Reloader.to_prepare(prepend: true, &unload_active_admin)
196
+ ActiveSupport::Reloader.to_prepare(prepend: true, &unload_active_admin)
302
197
  else
303
198
  # If the user has configured the app to always reload app files after
304
199
  # each request, so we should unload the generated classes too.
305
- Reloader.to_complete(&unload_active_admin)
200
+ ActiveSupport::Reloader.to_complete(&unload_active_admin)
306
201
  end
307
202
 
308
203
  admin_dirs = {}
@@ -317,7 +212,7 @@ module ActiveAdmin
317
212
 
318
213
  app.reloaders << routes_reloader
319
214
 
320
- Reloader.to_prepare do
215
+ ActiveSupport::Reloader.to_prepare do
321
216
  # Rails might have reloaded the routes for other reasons (e.g.
322
217
  # routes.rb has changed), in which case Active Admin would have been
323
218
  # loaded via the `ActiveAdmin.routes` call in `routes.rb`.
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/settings_node"
3
+
4
+ module ActiveAdmin
5
+ class ApplicationSettings < SettingsNode
6
+
7
+ # The default namespace to put controllers and routes inside. Set this
8
+ # in config/initializers/active_admin.rb using:
9
+ #
10
+ # config.default_namespace = :super_admin
11
+ #
12
+ register :default_namespace, :admin
13
+
14
+ register :app_path, Rails.root
15
+
16
+ # Load paths for admin configurations. Add folders to this load path
17
+ # to load up other resources for administration. External gems can
18
+ # include their paths in this load path to provide active_admin UIs
19
+ register :load_paths, [File.expand_path("app/admin", Rails.root)]
20
+
21
+ # Set default localize format for Date/Time values
22
+ register :localize_format, :long
23
+
24
+ # Active Admin makes educated guesses when displaying objects, this is
25
+ # the list of methods it tries calling in order
26
+ # Note that Formtastic also has 'collection_label_methods' similar to this
27
+ # used by auto generated dropdowns in filter or belongs_to field of Active Admin
28
+ register :display_name_methods, [ :display_name,
29
+ :full_name,
30
+ :name,
31
+ :username,
32
+ :login,
33
+ :title,
34
+ :email,
35
+ :to_s ]
36
+
37
+ # To make debugging easier, by default don't stream in development
38
+ register :disable_streaming_in, ["development"]
39
+
40
+ # Remove sensitive attributes from being displayed, made editable, or exported by default
41
+ register :filter_attributes, [:encrypted_password, :password, :password_confirmation]
42
+ end
43
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module AssetRegistration
3
4
 
@@ -1,16 +1,16 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  # Default Authorization permissions for Active Admin
4
5
  module Authorization
5
- READ = :read
6
- CREATE = :create
7
- UPDATE = :update
6
+ READ = :read
7
+ CREATE = :create
8
+ UPDATE = :update
8
9
  DESTROY = :destroy
9
10
  end
10
11
 
11
12
  Auth = Authorization
12
13
 
13
-
14
14
  # Active Admin's default authorization adapter. This adapter returns true
15
15
  # for all requests to `#authorized?`. It should be the starting point for
16
16
  # implementing your own authorization adapter.
@@ -19,7 +19,6 @@ module ActiveAdmin
19
19
  class AuthorizationAdapter
20
20
  attr_reader :resource, :user
21
21
 
22
-
23
22
  # Initialize a new authorization adapter. This happens on each and
24
23
  # every request to a controller.
25
24
  #
@@ -54,7 +53,6 @@ module ActiveAdmin
54
53
  true
55
54
  end
56
55
 
57
-
58
56
  # A hook method for authorization libraries to scope the collection. By
59
57
  # default, we just return the same collection. The returned scope is used
60
58
  # as the starting point for all queries to the db in the controller.
@@ -1,16 +1,16 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class BaseController < ::InheritedResources::Base
3
4
  module Authorization
4
- include MethodOrProcHelper
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  ACTIONS_DICTIONARY = {
8
- index: ActiveAdmin::Authorization::READ,
9
- show: ActiveAdmin::Authorization::READ,
10
- new: ActiveAdmin::Authorization::CREATE,
11
- create: ActiveAdmin::Authorization::CREATE,
12
- edit: ActiveAdmin::Authorization::UPDATE,
13
- update: ActiveAdmin::Authorization::UPDATE,
8
+ index: ActiveAdmin::Authorization::READ,
9
+ show: ActiveAdmin::Authorization::READ,
10
+ new: ActiveAdmin::Authorization::CREATE,
11
+ create: ActiveAdmin::Authorization::CREATE,
12
+ edit: ActiveAdmin::Authorization::UPDATE,
13
+ update: ActiveAdmin::Authorization::UPDATE,
14
14
  destroy: ActiveAdmin::Authorization::DESTROY
15
15
  }
16
16
 
@@ -19,6 +19,7 @@ module ActiveAdmin
19
19
 
20
20
  helper_method :authorized?
21
21
  helper_method :authorize!
22
+ helper_method :active_admin_authorization
22
23
  end
23
24
 
24
25
  protected
@@ -38,7 +39,6 @@ module ActiveAdmin
38
39
  active_admin_authorization.authorized?(action, subject)
39
40
  end
40
41
 
41
-
42
42
  # Authorize the action and subject. Available in the controller
43
43
  # as well as all the views. If the action is not allowd, it raises
44
44
  # an ActiveAdmin::AccessDenied exception.
@@ -53,9 +53,10 @@ module ActiveAdmin
53
53
  # an ActiveAdmin::AccessDenied.
54
54
  def authorize!(action, subject = nil)
55
55
  unless authorized? action, subject
56
- raise ActiveAdmin::AccessDenied.new(current_active_admin_user,
57
- action,
58
- subject)
56
+ raise ActiveAdmin::AccessDenied.new(
57
+ current_active_admin_user,
58
+ action,
59
+ subject)
59
60
  end
60
61
  end
61
62
 
@@ -81,7 +82,7 @@ module ActiveAdmin
81
82
  def active_admin_authorization_adapter
82
83
  adapter = active_admin_namespace.authorization_adapter
83
84
  if adapter.is_a? String
84
- ActiveSupport::Dependencies.constantize adapter
85
+ adapter.constantize
85
86
  else
86
87
  adapter
87
88
  end
@@ -101,7 +102,7 @@ module ActiveAdmin
101
102
  end
102
103
 
103
104
  def dispatch_active_admin_access_denied(exception)
104
- call_method_or_exec_proc active_admin_namespace.on_unauthorized_access, exception
105
+ instance_exec(self, exception, &active_admin_namespace.on_unauthorized_access.to_proc)
105
106
  end
106
107
 
107
108
  def rescue_active_admin_access_denied(exception)
@@ -113,16 +114,14 @@ module ActiveAdmin
113
114
  redirect_backwards_or_to_root
114
115
  end
115
116
 
116
- body = ActiveAdmin::Dependency.rails.render_key
117
-
118
- format.csv { render body => error, status: :unauthorized }
119
- format.json { render json: { error: error }, status: :unauthorized }
120
- format.xml { render xml: "<error>#{error}</error>", status: :unauthorized }
117
+ format.csv { render body: error, status: :unauthorized }
118
+ format.json { render json: { error: error }, status: :unauthorized }
119
+ format.xml { render xml: "<error>#{error}</error>", status: :unauthorized }
121
120
  end
122
121
  end
123
122
 
124
123
  def redirect_backwards_or_to_root
125
- ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
124
+ redirect_back fallback_location: active_admin_root
126
125
  end
127
126
 
128
127
  end