activeadmin 1.1.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (465) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +469 -100
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +89 -47
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  8. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  9. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  10. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  11. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  12. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  13. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
  14. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  15. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  16. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  17. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  18. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  19. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  20. data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
  21. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  22. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  23. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  25. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  26. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  27. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  28. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  29. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  30. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  31. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  32. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  33. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  34. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  35. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  36. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  37. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  38. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  39. data/config/locales/ar.yml +3 -2
  40. data/config/locales/bg.yml +1 -1
  41. data/config/locales/bs.yml +1 -0
  42. data/config/locales/ca.yml +1 -1
  43. data/config/locales/cs.yml +1 -0
  44. data/config/locales/da.yml +1 -0
  45. data/config/locales/de-CH.yml +1 -0
  46. data/config/locales/de.yml +29 -0
  47. data/config/locales/el.yml +1 -0
  48. data/config/locales/en-CA.yml +1 -0
  49. data/config/locales/en-GB.yml +1 -0
  50. data/config/locales/en.yml +21 -1
  51. data/config/locales/eo.yml +145 -0
  52. data/config/locales/es-MX.yml +1 -0
  53. data/config/locales/es.yml +21 -1
  54. data/config/locales/fa.yml +1 -0
  55. data/config/locales/fi.yml +2 -1
  56. data/config/locales/fr.yml +2 -1
  57. data/config/locales/he.yml +1 -1
  58. data/config/locales/hr.yml +1 -0
  59. data/config/locales/hu.yml +5 -0
  60. data/config/locales/id.yml +1 -0
  61. data/config/locales/it.yml +13 -3
  62. data/config/locales/ja.yml +6 -0
  63. data/config/locales/ko.yml +1 -0
  64. data/config/locales/lt.yml +3 -2
  65. data/config/locales/lv.yml +1 -0
  66. data/config/locales/mk.yml +134 -0
  67. data/config/locales/nb.yml +16 -5
  68. data/config/locales/nl.yml +12 -0
  69. data/config/locales/pl.yml +72 -3
  70. data/config/locales/pt-BR.yml +9 -0
  71. data/config/locales/pt-PT.yml +1 -0
  72. data/config/locales/ro.yml +1 -0
  73. data/config/locales/ru.yml +3 -0
  74. data/config/locales/sk.yml +60 -0
  75. data/config/locales/sv-SE.yml +3 -0
  76. data/config/locales/tr.yml +10 -0
  77. data/config/locales/uk.yml +3 -0
  78. data/config/locales/vi.yml +48 -6
  79. data/config/locales/zh-CN.yml +34 -5
  80. data/config/locales/zh-TW.yml +1 -0
  81. data/docs/.gitignore +1 -0
  82. data/docs/0-installation.md +2 -2
  83. data/docs/1-general-configuration.md +16 -1
  84. data/docs/10-custom-pages.md +14 -0
  85. data/docs/12-arbre-components.md +41 -1
  86. data/docs/13-authorization-adapter.md +41 -22
  87. data/docs/2-resource-customization.md +10 -5
  88. data/docs/3-index-pages/custom-index.md +1 -1
  89. data/docs/3-index-pages/index-as-blog.md +1 -1
  90. data/docs/3-index-pages/index-as-table.md +12 -5
  91. data/docs/3-index-pages.md +17 -0
  92. data/docs/5-forms.md +16 -2
  93. data/docs/8-custom-actions.md +11 -0
  94. data/docs/CNAME +1 -1
  95. data/docs/Gemfile +2 -1
  96. data/docs/Gemfile.lock +248 -0
  97. data/docs/_config.yml +3 -1
  98. data/docs/_includes/toc.html +1 -1
  99. data/docs/_includes/top-menu.html +9 -1
  100. data/docs/documentation.md +1 -1
  101. data/docs/images/tidelift.svg +14 -0
  102. data/docs/index.html +109 -8
  103. data/docs/stylesheets/main.css +55 -2
  104. data/lib/active_admin/abstract_view_factory.rb +13 -51
  105. data/lib/active_admin/application.rb +52 -159
  106. data/lib/active_admin/application_settings.rb +42 -0
  107. data/lib/active_admin/asset_registration.rb +0 -8
  108. data/lib/active_admin/base_controller/authorization.rb +4 -6
  109. data/lib/active_admin/base_controller.rb +6 -6
  110. data/lib/active_admin/batch_actions/controller.rb +2 -2
  111. data/lib/active_admin/batch_actions/resource_extension.rb +9 -5
  112. data/lib/active_admin/callbacks.rb +1 -1
  113. data/lib/active_admin/controller_action.rb +2 -1
  114. data/lib/active_admin/csv_builder.rb +10 -7
  115. data/lib/active_admin/dependency.rb +3 -67
  116. data/lib/active_admin/deprecation.rb +0 -25
  117. data/lib/active_admin/dsl.rb +1 -8
  118. data/lib/active_admin/dynamic_setting.rb +38 -0
  119. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  120. data/lib/active_admin/engine.rb +5 -0
  121. data/lib/active_admin/error.rb +4 -2
  122. data/lib/active_admin/filters/active_filter.rb +49 -12
  123. data/lib/active_admin/filters/active_sidebar.rb +6 -2
  124. data/lib/active_admin/filters/forms.rb +7 -4
  125. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  126. data/lib/active_admin/filters/resource_extension.rb +28 -4
  127. data/lib/active_admin/form_builder.rb +98 -63
  128. data/lib/active_admin/generators/boilerplate.rb +12 -4
  129. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  130. data/lib/active_admin/inputs/datepicker_input.rb +8 -1
  131. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  132. data/lib/active_admin/inputs/filters/select_input.rb +5 -1
  133. data/lib/active_admin/menu.rb +2 -8
  134. data/lib/active_admin/menu_item.rb +4 -32
  135. data/lib/active_admin/namespace.rb +20 -8
  136. data/lib/active_admin/namespace_settings.rb +123 -0
  137. data/lib/active_admin/order_clause.rb +2 -2
  138. data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
  139. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +17 -7
  140. data/lib/active_admin/orm/active_record/comments.rb +15 -4
  141. data/lib/active_admin/page_dsl.rb +1 -1
  142. data/lib/active_admin/page_presenter.rb +2 -1
  143. data/lib/active_admin/pundit_adapter.rb +18 -5
  144. data/lib/active_admin/resource/action_items.rb +7 -2
  145. data/lib/active_admin/resource/attributes.rb +7 -4
  146. data/lib/active_admin/resource/belongs_to.rb +6 -1
  147. data/lib/active_admin/resource/menu.rb +3 -3
  148. data/lib/active_admin/resource/model.rb +15 -0
  149. data/lib/active_admin/resource/naming.rb +3 -3
  150. data/lib/active_admin/resource/routes.rb +20 -7
  151. data/lib/active_admin/resource/scopes.rb +3 -3
  152. data/lib/active_admin/resource/sidebars.rb +1 -1
  153. data/lib/active_admin/resource.rb +17 -3
  154. data/lib/active_admin/resource_collection.rb +2 -2
  155. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  156. data/lib/active_admin/resource_controller/data_access.rb +5 -1
  157. data/lib/active_admin/resource_controller/decorators.rb +5 -5
  158. data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
  159. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  160. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  161. data/lib/active_admin/resource_controller.rb +2 -0
  162. data/lib/active_admin/resource_dsl.rb +7 -3
  163. data/lib/active_admin/router.rb +90 -84
  164. data/lib/active_admin/scope.rb +16 -8
  165. data/lib/active_admin/settings_node.rb +19 -0
  166. data/lib/active_admin/sidebar_section.rb +3 -1
  167. data/lib/active_admin/version.rb +1 -1
  168. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
  169. data/lib/active_admin/view_helpers/display_helper.rb +13 -4
  170. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  171. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  172. data/lib/active_admin/view_helpers.rb +1 -1
  173. data/lib/active_admin/views/components/active_admin_form.rb +9 -4
  174. data/lib/active_admin/views/components/attributes_table.rb +3 -3
  175. data/lib/active_admin/views/components/menu.rb +32 -0
  176. data/lib/active_admin/views/components/menu_item.rb +58 -0
  177. data/lib/active_admin/views/components/paginated_collection.rb +3 -3
  178. data/lib/active_admin/views/components/scopes.rb +11 -4
  179. data/lib/active_admin/views/components/sidebar.rb +13 -0
  180. data/lib/active_admin/views/components/site_title.rb +5 -6
  181. data/lib/active_admin/views/components/status_tag.rb +6 -19
  182. data/lib/active_admin/views/components/table_for.rb +3 -12
  183. data/lib/active_admin/views/components/tabs.rb +15 -3
  184. data/lib/active_admin/views/footer.rb +3 -7
  185. data/lib/active_admin/views/header.rb +3 -15
  186. data/lib/active_admin/views/index_as_blog.rb +1 -1
  187. data/lib/active_admin/views/index_as_grid.rb +25 -25
  188. data/lib/active_admin/views/index_as_table.rb +18 -10
  189. data/lib/active_admin/views/pages/base.rb +30 -53
  190. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  191. data/lib/active_admin/views.rb +1 -1
  192. data/lib/active_admin.rb +10 -4
  193. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  194. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  195. data/lib/generators/active_admin/install/install_generator.rb +7 -3
  196. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +38 -3
  197. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  198. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  199. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  200. data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
  201. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  202. data/lib/ransack_ext.rb +3 -3
  203. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  204. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  205. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  206. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  207. metadata +127 -523
  208. data/.github/ISSUE_TEMPLATE.md +0 -20
  209. data/.gitignore +0 -49
  210. data/.mdlrc +0 -1
  211. data/.rubocop.yml +0 -76
  212. data/.simplecov +0 -13
  213. data/.travis.yml +0 -51
  214. data/.yardopts +0 -7
  215. data/Gemfile +0 -58
  216. data/Rakefile +0 -54
  217. data/activeadmin.gemspec +0 -32
  218. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  219. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  220. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  221. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  222. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  223. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  224. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  225. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  226. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  227. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  228. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  229. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  230. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  231. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  232. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  233. data/codecov.yml +0 -25
  234. data/config/i18n-tasks.yml +0 -26
  235. data/config/mdl_style.rb +0 -9
  236. data/cucumber.yml +0 -3
  237. data/features/action_item.feature +0 -73
  238. data/features/authorization.feature +0 -64
  239. data/features/authorization_cancan.feature +0 -52
  240. data/features/authorization_pundit.feature +0 -37
  241. data/features/belongs_to.feature +0 -124
  242. data/features/breadcrumb.feature +0 -75
  243. data/features/comments/commenting.feature +0 -178
  244. data/features/comments/viewing_index.feature +0 -19
  245. data/features/create_another.feature +0 -55
  246. data/features/dashboard.feature +0 -16
  247. data/features/decorators.feature +0 -43
  248. data/features/development_reloading.feature +0 -28
  249. data/features/edit_page.feature +0 -116
  250. data/features/favicon.feature +0 -20
  251. data/features/first_boot.feature +0 -16
  252. data/features/footer.feature +0 -28
  253. data/features/global_navigation.feature +0 -29
  254. data/features/i18n.feature +0 -55
  255. data/features/index/batch_actions.feature +0 -218
  256. data/features/index/filters.feature +0 -239
  257. data/features/index/format_as_csv.feature +0 -220
  258. data/features/index/formats.feature +0 -88
  259. data/features/index/index_as_block.feature +0 -15
  260. data/features/index/index_as_blog.feature +0 -69
  261. data/features/index/index_as_grid.feature +0 -45
  262. data/features/index/index_as_table.feature +0 -291
  263. data/features/index/index_blank_slate.feature +0 -83
  264. data/features/index/index_parameters.feature +0 -75
  265. data/features/index/index_scope_to.feature +0 -56
  266. data/features/index/index_scopes.feature +0 -285
  267. data/features/index/page_title.feature +0 -41
  268. data/features/index/pagination.feature +0 -63
  269. data/features/index/switch_index_view.feature +0 -73
  270. data/features/menu.feature +0 -72
  271. data/features/meta_tags.feature +0 -21
  272. data/features/new_page.feature +0 -107
  273. data/features/registering_assets.feature +0 -38
  274. data/features/registering_pages.feature +0 -237
  275. data/features/registering_resources.feature +0 -33
  276. data/features/renamed_resource.feature +0 -30
  277. data/features/root_to.feature +0 -17
  278. data/features/show/attributes_table_title.feature +0 -54
  279. data/features/show/columns.feature +0 -40
  280. data/features/show/default_content.feature +0 -44
  281. data/features/show/page_title.feature +0 -58
  282. data/features/show/tabs.feature +0 -33
  283. data/features/sidebar_sections.feature +0 -210
  284. data/features/site_title.feature +0 -47
  285. data/features/specifying_actions.feature +0 -118
  286. data/features/step_definitions/action_item_steps.rb +0 -7
  287. data/features/step_definitions/action_link_steps.rb +0 -19
  288. data/features/step_definitions/additional_web_steps.rb +0 -81
  289. data/features/step_definitions/asset_steps.rb +0 -15
  290. data/features/step_definitions/attribute_steps.rb +0 -18
  291. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  292. data/features/step_definitions/batch_action_steps.rb +0 -81
  293. data/features/step_definitions/blog_steps.rb +0 -3
  294. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  295. data/features/step_definitions/column_steps.rb +0 -8
  296. data/features/step_definitions/comment_steps.rb +0 -32
  297. data/features/step_definitions/configuration_steps.rb +0 -100
  298. data/features/step_definitions/dashboard_steps.rb +0 -15
  299. data/features/step_definitions/factory_steps.rb +0 -35
  300. data/features/step_definitions/filter_steps.rb +0 -48
  301. data/features/step_definitions/flash_steps.rb +0 -11
  302. data/features/step_definitions/footer_steps.rb +0 -11
  303. data/features/step_definitions/format_steps.rb +0 -56
  304. data/features/step_definitions/i18n_steps.rb +0 -11
  305. data/features/step_definitions/index_scope_steps.rb +0 -29
  306. data/features/step_definitions/index_views_steps.rb +0 -3
  307. data/features/step_definitions/layout_steps.rb +0 -3
  308. data/features/step_definitions/member_link_steps.rb +0 -7
  309. data/features/step_definitions/menu_steps.rb +0 -11
  310. data/features/step_definitions/meta_tag_steps.rb +0 -3
  311. data/features/step_definitions/pagination_steps.rb +0 -15
  312. data/features/step_definitions/sidebar_steps.rb +0 -11
  313. data/features/step_definitions/site_title_steps.rb +0 -17
  314. data/features/step_definitions/tab_steps.rb +0 -8
  315. data/features/step_definitions/table_steps.rb +0 -116
  316. data/features/step_definitions/user_steps.rb +0 -52
  317. data/features/step_definitions/web_steps.rb +0 -86
  318. data/features/sti_resource.feature +0 -65
  319. data/features/strong_parameters.feature +0 -69
  320. data/features/support/env.rb +0 -122
  321. data/features/support/paths.rb +0 -73
  322. data/features/support/regular_env.rb +0 -7
  323. data/features/support/reload_env.rb +0 -7
  324. data/features/support/selectors.rb +0 -45
  325. data/features/users/logging_in.feature +0 -36
  326. data/features/users/logging_out.feature +0 -13
  327. data/features/users/resetting_password.feature +0 -34
  328. data/gemfiles/rails_42.gemfile +0 -10
  329. data/gemfiles/rails_50.gemfile +0 -10
  330. data/gemfiles/rails_51.gemfile +0 -10
  331. data/lib/active_admin/event.rb +0 -24
  332. data/lib/active_admin/helpers/settings.rb +0 -114
  333. data/lib/active_admin/reloader.rb +0 -25
  334. data/lib/bug_report_templates/active_admin_master.rb +0 -113
  335. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  336. data/spec/bug_report_templates_spec.rb +0 -26
  337. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  338. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  339. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  340. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  341. data/spec/javascripts/fixtures/flashes.html +0 -2
  342. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  343. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  344. data/spec/javascripts/support/jasmine.yml +0 -74
  345. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  346. data/spec/rails_helper.rb +0 -59
  347. data/spec/requests/default_namespace_spec.rb +0 -81
  348. data/spec/requests/memory_spec.rb +0 -25
  349. data/spec/requests/stylesheets_spec.rb +0 -18
  350. data/spec/spec_helper.rb +0 -1
  351. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  352. data/spec/support/active_admin_request_helpers.rb +0 -39
  353. data/spec/support/rails_template.rb +0 -150
  354. data/spec/support/rails_template_with_data.rb +0 -327
  355. data/spec/support/templates/admin/stores.rb +0 -7
  356. data/spec/support/templates/en.yml +0 -8
  357. data/spec/support/templates/manifest.js +0 -3
  358. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  359. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  360. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  361. data/spec/support/templates/policies/application_policy.rb +0 -44
  362. data/spec/support/templates/policies/category_policy.rb +0 -7
  363. data/spec/support/templates/policies/post_policy.rb +0 -15
  364. data/spec/support/templates/policies/store_policy.rb +0 -11
  365. data/spec/support/templates/policies/user_policy.rb +0 -11
  366. data/spec/support/templates/post_decorator.rb +0 -10
  367. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  368. data/spec/unit/action_builder_spec.rb +0 -125
  369. data/spec/unit/active_admin_spec.rb +0 -11
  370. data/spec/unit/application_spec.rb +0 -184
  371. data/spec/unit/asset_registration_spec.rb +0 -81
  372. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  373. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  374. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  375. data/spec/unit/auto_link_spec.rb +0 -93
  376. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  377. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  378. data/spec/unit/belongs_to_spec.rb +0 -76
  379. data/spec/unit/cancan_adapter_spec.rb +0 -43
  380. data/spec/unit/comments_spec.rb +0 -176
  381. data/spec/unit/component_spec.rb +0 -18
  382. data/spec/unit/config_shared_examples.rb +0 -59
  383. data/spec/unit/controller_filters_spec.rb +0 -41
  384. data/spec/unit/csv_builder_spec.rb +0 -304
  385. data/spec/unit/dependency_spec.rb +0 -135
  386. data/spec/unit/devise_spec.rb +0 -110
  387. data/spec/unit/dsl_spec.rb +0 -120
  388. data/spec/unit/filters/active_filter_spec.rb +0 -135
  389. data/spec/unit/filters/active_spec.rb +0 -24
  390. data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
  391. data/spec/unit/filters/resource_spec.rb +0 -128
  392. data/spec/unit/form_builder_spec.rb +0 -990
  393. data/spec/unit/generators/install_spec.rb +0 -31
  394. data/spec/unit/helpers/collection_spec.rb +0 -68
  395. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  396. data/spec/unit/helpers/settings_spec.rb +0 -30
  397. data/spec/unit/i18n_spec.rb +0 -29
  398. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  399. data/spec/unit/menu_collection_spec.rb +0 -62
  400. data/spec/unit/menu_item_spec.rb +0 -141
  401. data/spec/unit/menu_spec.rb +0 -71
  402. data/spec/unit/namespace/authorization_spec.rb +0 -27
  403. data/spec/unit/namespace/register_page_spec.rb +0 -99
  404. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  405. data/spec/unit/namespace_spec.rb +0 -124
  406. data/spec/unit/order_clause_spec.rb +0 -81
  407. data/spec/unit/page_controller_spec.rb +0 -5
  408. data/spec/unit/page_spec.rb +0 -128
  409. data/spec/unit/pretty_format_spec.rb +0 -82
  410. data/spec/unit/pundit_adapter_spec.rb +0 -98
  411. data/spec/unit/resource/action_items_spec.rb +0 -69
  412. data/spec/unit/resource/attributes_spec.rb +0 -49
  413. data/spec/unit/resource/includes_spec.rb +0 -21
  414. data/spec/unit/resource/menu_spec.rb +0 -18
  415. data/spec/unit/resource/naming_spec.rb +0 -122
  416. data/spec/unit/resource/ordering_spec.rb +0 -35
  417. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  418. data/spec/unit/resource/pagination_spec.rb +0 -38
  419. data/spec/unit/resource/routes_spec.rb +0 -125
  420. data/spec/unit/resource/scopes_spec.rb +0 -50
  421. data/spec/unit/resource/sidebars_spec.rb +0 -43
  422. data/spec/unit/resource_collection_spec.rb +0 -175
  423. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  424. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  425. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  426. data/spec/unit/resource_controller_spec.rb +0 -273
  427. data/spec/unit/resource_registration_spec.rb +0 -61
  428. data/spec/unit/resource_spec.rb +0 -320
  429. data/spec/unit/routing_spec.rb +0 -211
  430. data/spec/unit/scope_spec.rb +0 -209
  431. data/spec/unit/settings_spec.rb +0 -117
  432. data/spec/unit/view_factory_spec.rb +0 -19
  433. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  434. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  435. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  436. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  437. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  438. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  439. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  440. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  441. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  442. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  443. data/spec/unit/views/components/columns_spec.rb +0 -187
  444. data/spec/unit/views/components/index_list_spec.rb +0 -49
  445. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  446. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  447. data/spec/unit/views/components/panel_spec.rb +0 -58
  448. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  449. data/spec/unit/views/components/site_title_spec.rb +0 -76
  450. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  451. data/spec/unit/views/components/table_for_spec.rb +0 -436
  452. data/spec/unit/views/components/tabs_spec.rb +0 -67
  453. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  454. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  455. data/spec/unit/views/pages/form_spec.rb +0 -54
  456. data/spec/unit/views/pages/index_spec.rb +0 -60
  457. data/spec/unit/views/pages/layout_spec.rb +0 -59
  458. data/spec/unit/views/pages/show_spec.rb +0 -32
  459. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  460. data/tasks/docs.rake +0 -64
  461. data/tasks/lint.rake +0 -21
  462. data/tasks/local.rake +0 -25
  463. data/tasks/parallel_tests.rake +0 -66
  464. data/tasks/test.rake +0 -29
  465. /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
data/CODE_OF_CONDUCT.md CHANGED
@@ -1,22 +1,74 @@
1
- # Contributor Code of Conduct
1
+ # Contributor Covenant Code of Conduct
2
2
 
3
- As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
3
+ ## Our Pledge
4
4
 
5
- We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, sex characteristics, gender identity and expression,
9
+ level of experience, education, socio-economic status, nationality, personal
10
+ appearance, race, religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
6
22
 
7
23
  Examples of unacceptable behavior by participants include:
8
24
 
9
- * The use of sexualized language or imagery
10
- * Personal attacks
11
- * Trolling or insulting/derogatory comments
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
12
28
  * Public or private harassment
13
- * Publishing other's private information, such as physical or electronic addresses, without explicit permission
14
- * Other unethical or unprofessional conduct.
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting one or more of the project maintainers. All complaints
59
+ will be reviewed and investigated and will result in a response that is deemed
60
+ necessary and appropriate to the circumstances. The project team is obligated to
61
+ maintain confidentiality with regard to the reporter of an incident. Further
62
+ details of specific enforcement policies may be posted separately.
15
63
 
16
- Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
17
67
 
18
- This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
68
+ ## Attribution
19
69
 
20
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available [here][source].
21
72
 
22
- This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
73
+ [homepage]: https://www.contributor-covenant.org
74
+ [source]: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
data/CONTRIBUTING.md CHANGED
@@ -3,20 +3,17 @@
3
3
  First off, thank you for considering contributing to Active Admin. It's people
4
4
  like you that make Active Admin such a great tool.
5
5
 
6
- ### 1. Where do I go from here?
6
+ ### Where do I go from here?
7
7
 
8
8
  If you've noticed a bug or have a question that doesn't belong on the
9
- [mailing list](http://groups.google.com/group/activeadmin) or
10
- [Stack Overflow](http://stackoverflow.com/questions/tagged/activeadmin),
11
- [search the issue tracker](https://github.com/activeadmin/activeadmin/issues?q=something)
12
- to see if someone else in the community has already created a ticket.
13
- If not, go ahead and [make one](https://github.com/activeadmin/activeadmin/issues/new)!
9
+ [mailing list][] or [Stack Overflow][], [search the issue tracker][] to see if
10
+ someone else in the community has already created a ticket. If not, go ahead and
11
+ [make one][new issue]!
14
12
 
15
- ### 2. Fork & create a branch
13
+ ### Fork & create a branch
16
14
 
17
- If this is something you think you can fix, then
18
- [fork Active Admin](https://help.github.com/articles/fork-a-repo)
19
- and create a branch with a descriptive name.
15
+ If this is something you think you can fix, then [fork Active Admin][] and
16
+ create a branch with a descriptive name.
20
17
 
21
18
  A good branch name would be (where issue #325 is the ticket you're working on):
22
19
 
@@ -24,16 +21,12 @@ A good branch name would be (where issue #325 is the ticket you're working on):
24
21
  git checkout -b 325-add-japanese-translations
25
22
  ```
26
23
 
27
- ### 3. Get the test suite running
24
+ ### Get the test suite running
28
25
 
29
26
  Make sure you're using a recent ruby and have the `bundler` gem installed, at
30
27
  least version `1.14.3`.
31
28
 
32
- Select the Gemfile for your preferred Rails version, preferably the latest:
33
-
34
- ```sh
35
- export BUNDLE_GEMFILE=gemfiles/rails_51.gemfile
36
- ```
29
+ You'll also need chrome installed in order to run cucumber scenarios.
37
30
 
38
31
  Now install the development dependencies:
39
32
 
@@ -44,36 +37,45 @@ bundle install
44
37
  Now you should be able to run the entire suite using:
45
38
 
46
39
  ```sh
47
- bundle exec rake
40
+ bin/rake
48
41
  ```
49
42
 
50
- The test run will generate a sample Rails application in `spec/rails` to run the
43
+ The test run will generate a sample Rails application in `tmp/test_apps` to run the
51
44
  tests against.
52
45
 
53
- If your tests are passing locally but they're failing on Travis, reset your test
54
- environment:
46
+ If your tests are passing locally but they're failing on CircleCI, it's probably
47
+ because of some breaking change or problem with the latest version of some
48
+ dependency. You should be able to reproduce the issue locally by:
49
+
50
+ * Removing the `Gemfile.lock` file.
51
+ * Running `bundle install`.
52
+ * Re-running the tests again like you did previously.
53
+
54
+ This is not your fault though, so if this happens feel free to investigate, but
55
+ also feel free to ping maintainers about the issue you just found.
56
+
57
+ If you want to test against a Rails version different from the latest, make sure
58
+ you use the correct Gemfile, for example:
55
59
 
56
60
  ```sh
57
- rm -rf spec/rails && bundle update
61
+ export BUNDLE_GEMFILE=gemfiles/rails_51.gemfile
58
62
  ```
59
63
 
60
- ### 4. Did you find a bug?
64
+ ### Did you find a bug?
61
65
 
62
- * **Ensure the bug was not already reported** by [searching all
63
- issues](https://github.com/activeadmin/activeadmin/issues?q=).
66
+ * **Ensure the bug was not already reported** by [searching all issues][].
64
67
 
65
- * If you're unable to find an open issue addressing the problem, [open a new
66
- one](https://github.com/activeadmin/activeadmin/issues/new). Be sure to
67
- include a **title and clear description**, as much relevant information as
68
- possible, and a **code sample** or an **executable test case** demonstrating
69
- the expected behavior that is not occurring.
68
+ * If you're unable to find an open issue addressing the problem,
69
+ [open a new one][new issue]. Be sure to include a **title and clear
70
+ description**, as much relevant information as possible, and a **code sample**
71
+ or an **executable test case** demonstrating the expected behavior that is not
72
+ occurring.
70
73
 
71
74
  * If possible, use the relevant bug report templates to create the issue.
72
75
  Simply copy the content of the appropriate template into a .rb file, make the
73
76
  necessary changes to demonstrate the issue, and **paste the content into the
74
77
  issue description**:
75
- * [**ActiveAdmin** master
76
- issues](https://github.com/activeadmin/activeadmin/blob/master/lib/bug_report_templates/active_admin_master.rb)
78
+ * [**ActiveAdmin** master issues][master template]
77
79
 
78
80
  ### 5. Implement your fix or feature
79
81
 
@@ -88,11 +90,11 @@ a look at your changes in a browser.
88
90
  To boot up a test Rails app:
89
91
 
90
92
  ```sh
91
- bundle exec rake local server
93
+ bin/rake local server
92
94
  ```
93
95
 
94
96
  This will automatically create a Rails app if none already exists, and store it
95
- in the `.test-rails-apps` folder.
97
+ in the `tmp/development_apps` folder.
96
98
 
97
99
  You should now be able to open <http://localhost:3000/admin> in your browser.
98
100
  You can log in using:
@@ -104,16 +106,24 @@ If you need to perform any other commands on the test application, just pass
104
106
  them to the `local` rake task. For example, to boot the rails console:
105
107
 
106
108
  ```sh
107
- bundle exec rake local console
109
+ bin/rake local console
108
110
  ```
109
111
 
110
- Or to migrate the database:
112
+ Or to migrate the database, if you create a new migration or just play around
113
+ with the db:
111
114
 
112
115
  ```sh
113
- bundle exec rake local db:migrate
116
+ bin/rake local db:migrate
114
117
  ```
115
118
 
116
- ### 7. Make a Pull Request
119
+ ### Get the style right
120
+
121
+ Your patch should follow the same conventions & pass the same code quality
122
+ checks as the rest of the project. `bin/rake lint` will give you feedback in
123
+ this regard. You can check & fix style issues by running each linter
124
+ individually. Run `bin/rake -T lint` to see the available linters.
125
+
126
+ ### Make a Pull Request
117
127
 
118
128
  At this point, you should switch back to your master branch and make sure it's
119
129
  up to date with Active Admin's master branch:
@@ -132,26 +142,22 @@ git rebase master
132
142
  git push --set-upstream origin 325-add-japanese-translations
133
143
  ```
134
144
 
135
- Finally, go to GitHub and
136
- [make a Pull Request](https://help.github.com/articles/creating-a-pull-request)
137
- :D
145
+ Finally, go to GitHub and [make a Pull Request][] :D
138
146
 
139
- Travis CI will run our test suite against all supported Rails versions. We care
147
+ CircleCI will run our test suite against all supported Rails versions. We care
140
148
  about quality, so your PR won't be merged until all tests pass. It's unlikely,
141
149
  but it's possible that your changes pass tests in one Rails version but fail in
142
150
  another. In that case, you'll have to setup your development environment (as
143
151
  explained in step 3) to use the problematic Rails version, and investigate
144
152
  what's going on!
145
153
 
146
- ### 8. Keeping your Pull Request updated
154
+ ### Keeping your Pull Request updated
147
155
 
148
156
  If a maintainer asks you to "rebase" your PR, they're saying that a lot of code
149
157
  has changed, and that you need to update your branch so it's easier to merge.
150
158
 
151
- To learn more about rebasing in Git, there are a lot of
152
- [good](http://git-scm.com/book/en/Git-Branching-Rebasing)
153
- [resources](https://help.github.com/articles/interactive-rebase),
154
- but here's the suggested workflow:
159
+ To learn more about rebasing in Git, there are a lot of [good][git rebasing]
160
+ [resources][interactive rebase] but here's the suggested workflow:
155
161
 
156
162
  ```sh
157
163
  git checkout 325-add-japanese-translations
@@ -159,7 +165,7 @@ git pull --rebase upstream master
159
165
  git push --force-with-lease 325-add-japanese-translations
160
166
  ```
161
167
 
162
- ### 9. Merging a PR (maintainers only)
168
+ ### Merging a PR (maintainers only)
163
169
 
164
170
  A PR can only be merged into master by a maintainer if:
165
171
 
@@ -171,3 +177,39 @@ A PR can only be merged into master by a maintainer if:
171
177
 
172
178
  Any maintainer is allowed to merge a PR if all of these conditions are
173
179
  met.
180
+
181
+ ### Shipping a release (maintainers only)
182
+
183
+ Maintainers need to do the following to push out a release:
184
+
185
+ * Make sure all pull requests are in and that changelog is current
186
+ * Update `version.rb` file and changelog with new version number
187
+ * If it's not a patch level release, create a stable branch for that release,
188
+ otherwise switch to the stable branch corresponding to the patch release you
189
+ want to ship:
190
+
191
+ ```sh
192
+ git checkout master
193
+ git fetch activeadmin
194
+ git rebase activeadmin/master
195
+ # If the release is 2.1.x then this should be: 2-1-stable
196
+ git checkout -b N-N-stable
197
+ git push activeadmin N-N-stable:N-N-stable
198
+ ```
199
+
200
+ * Make sure you have [chandler] properly configured. Chandler is used to
201
+ automatically submit github release notes from the changelog right after
202
+ pushing the gem to rubygems.
203
+ * `bin/rake release`
204
+
205
+ [chandler]: https://github.com/mattbrictson/chandler#2-configure-credentials
206
+ [mailing list]: http://groups.google.com/group/activeadmin
207
+ [Stack Overflow]: http://stackoverflow.com/questions/tagged/activeadmin
208
+ [search the issue tracker]: https://github.com/activeadmin/activeadmin/issues?q=something
209
+ [new issue]: https://github.com/activeadmin/activeadmin/issues/new
210
+ [fork Active Admin]: https://help.github.com/articles/fork-a-repo
211
+ [searching all issues]: https://github.com/activeadmin/activeadmin/issues?q=
212
+ [master template]: https://github.com/activeadmin/activeadmin/blob/master/tasks/bug_report_template.rb
213
+ [make a pull request]: https://help.github.com/articles/creating-a-pull-request
214
+ [git rebasing]: http://git-scm.com/book/en/Git-Branching-Rebasing
215
+ [interactive rebase]: https://help.github.com/articles/interactive-rebase
data/README.md CHANGED
@@ -1,30 +1,34 @@
1
1
  # Active Admin
2
2
 
3
- [Active Admin](https://www.activeadmin.info) is a Ruby on Rails framework for creating elegant backends for website administration.
3
+ [Active Admin](https://activeadmin.info) is a Ruby on Rails framework for
4
+ creating elegant backends for website administration.
4
5
 
5
- [![Version ](http://img.shields.io/gem/v/activeadmin.svg) ](https://rubygems.org/gems/activeadmin)
6
- [![Travis CI ](http://img.shields.io/travis/activeadmin/activeadmin/master.svg) ](https://travis-ci.org/activeadmin/activeadmin)
7
- [![Quality ](http://img.shields.io/codeclimate/github/activeadmin/activeadmin.svg) ](https://codeclimate.com/github/activeadmin/activeadmin)
8
- [![Coverage ](https://codecov.io/gh/activeadmin/activeadmin/branch/master/graph/badge.svg)](https://codecov.io/gh/activeadmin/activeadmin)
9
- [![Inch CI ](http://inch-ci.org/github/activeadmin/activeadmin.svg?branch=master) ](http://inch-ci.org/github/activeadmin/activeadmin)
10
- [![Gratipay Team ](https://img.shields.io/gratipay/team/Active-Admin.svg)](https://gratipay.com/Active-Admin/)
6
+ [![Version ][rubygems_badge]][rubygems]
7
+ [![Circle CI ][circle_badge]][circle]
8
+ [![Coverage ][coverage_badge]][coverage]
9
+ [![Tidelift ][tidelift_badge]][tidelift]
10
+ [![Inch CI ][inch_badge]][inch]
11
11
 
12
12
  ## Goals
13
13
 
14
- 1. Enable developers to quickly create good-looking administration interfaces.
15
- 2. Build a DSL for developers and an interface for businesses.
16
- 3. Ensure that developers can easily customize every nook and cranny.
14
+ * Enable developers to quickly create good-looking administration interfaces.
15
+ * Build a DSL for developers and an interface for businesses.
16
+ * Ensure that developers can easily customize every nook and cranny.
17
17
 
18
18
  ## Getting started
19
19
 
20
- * Check out [the docs](http://activeadmin.info/0-installation.html)!
21
- * Try the [live demo](http://demo.activeadmin.info/admin)
22
- * The [wiki](https://github.com/activeadmin/activeadmin/wiki) includes links to tutorials, articles and sample projects.
20
+ * Check out [the docs][docs].
21
+ * Try the [live demo][demo].
22
+ * The [wiki] includes links to tutorials, articles and sample projects.
23
+
24
+ ## For enterprise
25
+
26
+ Active Admin for enterprise is available via the Tidelift subscription. [Learn
27
+ More][tidelift_enterprise].
23
28
 
24
29
  ## Need help?
25
30
 
26
- Please use [StackOverflow](http://stackoverflow.com/questions/tagged/activeadmin) for
27
- help requests and how-to questions.
31
+ Please use [StackOverflow][stackoverflow] for help requests and how-to questions.
28
32
 
29
33
  Please open GitHub issues for bugs and enhancements only, not general help requests.
30
34
  Please search previous issues (and Google and StackOverflow) before creating a new issue.
@@ -33,14 +37,22 @@ Google Groups, IRC #activeadmin and Gitter are not actively monitored.
33
37
 
34
38
  ## Want to contribute?
35
39
 
36
- The [contributing guide](https://github.com/activeadmin/activeadmin/blob/master/CONTRIBUTING.md)
37
- is a good place to start. If you have questions, feel free to ask.
40
+ If you want to contribute through code or documentation, the [Contributing
41
+ guide is the best place to start][contributing]. If you have questions, feel free
42
+ to ask.
38
43
 
39
44
  ## Want to support us?
40
45
 
41
- You can support us with a weekly tip via [Gratipay](https://gratipay.com).
46
+ If you want to support us financially, you can [help fund the project
47
+ through a Tidelift subscription][tidelift_support]. By buying a Tidelift subscription
48
+ you make sure your whole dependency stack is properly maintained, while also
49
+ getting a comprehensive view of outdated dependencies, new releases, security
50
+ alerts, and licensing compatibility issues.
51
+
52
+ You can also support us with a weekly tip via [Liberapay].
42
53
 
43
- [![Support via Gratipay](https://cdn.rawgit.com/gratipay/gratipay-badge/2.1.3/dist/gratipay.png)](https://gratipay.com/Active-Admin)
54
+ Finally, we have an [Open Collective][opencollective page] where you can become a backer or
55
+ sponsor for the project, and also submit expenses to it.
44
56
 
45
57
  ## Dependencies
46
58
 
@@ -55,9 +67,51 @@ Tool | Description
55
67
  [Kaminari] | Elegant pagination for any sort of collection
56
68
  [Ransack] | Provides a simple search API to query your data
57
69
 
70
+ ## Security contact information
71
+
72
+ Please use the Tidelift security contact to [report a security vulnerability][Tidelift security contact].
73
+ Tidelift will coordinate the fix and disclosure.
74
+
75
+ ## Acknowledgements
76
+
77
+ Thanks to [Greg Bell][Greg] for creating and sharing this project with the open source community.
78
+
79
+ Thanks to [all the people that ever contributed through code][contributors] or
80
+ other means such as bug reports, issue triaging, feature suggestions, code
81
+ snippet tips, Slack discussions and so on.
82
+
83
+ Thanks to [Tidelift][tidelift] and all our Tidelift subscribers.
84
+
85
+ Thanks to [Open Collective][opencollective contributors] and all our Open Collective contributors.
86
+
58
87
  [Arbre]: https://github.com/activeadmin/arbre
59
88
  [Devise]: https://github.com/plataformatec/devise
60
89
  [Formtastic]: https://github.com/justinfrench/formtastic
61
90
  [Inherited Resources]: https://github.com/activeadmin/inherited_resources
62
91
  [Kaminari]: https://github.com/kaminari/kaminari
63
92
  [Ransack]: https://github.com/activerecord-hackery/ransack
93
+
94
+ [rubygems_badge]: http://img.shields.io/gem/v/activeadmin.svg
95
+ [rubygems]: https://rubygems.org/gems/activeadmin
96
+ [circle_badge]: https://circleci.com/gh/activeadmin/activeadmin/tree/master.svg
97
+ [circle]: https://circleci.com/gh/activeadmin/activeadmin/tree/master
98
+ [coverage_badge]: https://api.codeclimate.com/v1/badges/779e407d22bacff19733/test_coverage
99
+ [coverage]: https://codeclimate.com/github/activeadmin/activeadmin/test_coverage
100
+ [inch_badge]: http://inch-ci.org/github/activeadmin/activeadmin.svg?branch=master
101
+ [inch]: http://inch-ci.org/github/activeadmin/activeadmin
102
+ [tidelift_badge]: https://tidelift.com/badges/github/activeadmin/activeadmin
103
+ [tidelift]: https://tidelift.com/subscription/pkg/rubygems-activeadmin?utm_source=rubygems-activeadmin&utm_medium=readme
104
+ [tidelift_enterprise]: https://tidelift.com/subscription/pkg/rubygems-activeadmin?utm_source=rubygems-activeadmin&utm_medium=referral&utm_campaign=github&utm_content=enterprise
105
+ [tidelift_support]: https://tidelift.com/subscription/pkg/rubygems-activeadmin?utm_source=rubygems-activeadmin&utm_medium=referral&utm_campaign=github&utm_content=support
106
+
107
+ [docs]: http://activeadmin.info/0-installation.html
108
+ [demo]: http://demo.activeadmin.info/admin
109
+ [wiki]: https://github.com/activeadmin/activeadmin/wiki
110
+ [stackoverflow]: http://stackoverflow.com/questions/tagged/activeadmin
111
+ [contributing]: https://github.com/activeadmin/activeadmin/blob/master/CONTRIBUTING.md
112
+ [Liberapay]: https://liberapay.com/Active-Admin/donate
113
+ [Tidelift security contact]: https://tidelift.com/security
114
+ [Greg]: https://github.com/gregbell
115
+ [contributors]: https://github.com/activeadmin/activeadmin/graphs/contributors
116
+ [opencollective page]: https://opencollective.com/activeadmin
117
+ [opencollective contributors]: https://opencollective.com/activeadmin#contributors
@@ -0,0 +1,23 @@
1
+ //= require jquery3
2
+ //= require jquery-ui/widgets/datepicker
3
+ //= require jquery-ui/widgets/dialog
4
+ //= require jquery-ui/widgets/sortable
5
+ //= require jquery-ui/widgets/tabs
6
+ //= require jquery-ui/widget
7
+ //= require jquery_ujs
8
+ //= require_self
9
+ //= require ./ext/jquery
10
+ //= require ./ext/jquery-ui
11
+ //= require ./lib/active_admin
12
+ //= require ./lib/batch_actions
13
+ //= require ./lib/dropdown-menu
14
+ //= require ./lib/has_many
15
+ //= require ./lib/modal_dialog
16
+ //= require ./lib/per_page
17
+ //= require ./lib/checkbox-toggler
18
+ //= require ./lib/table-checkbox-toggler
19
+ //= require ./initializers/datepicker
20
+ //= require ./initializers/filters
21
+ //= require ./initializers/tabs
22
+
23
+ window.ActiveAdmin = {}
@@ -0,0 +1,7 @@
1
+ // Short-circuits `_focusTabbable` to focus on the modal itself instead of
2
+ // elements inside the modal. Without this, if a datepicker is the first input,
3
+ // it'll immediately pop up when the modal opens.
4
+ // See this ticket for more info: http://bugs.jqueryui.com/ticket/4731
5
+ $.ui.dialog.prototype._focusTabbable = function() {
6
+ this.uiDialog.focus();
7
+ };
@@ -0,0 +1,9 @@
1
+ // `serializeArray` generates => [{ name: 'foo', value: 'bar' }]
2
+ // This function remaps it to => { foo: 'bar' }
3
+ $.fn.serializeObject = function() {
4
+ return this.serializeArray()
5
+ .reduce((obj, item) => {
6
+ obj[item.name] = item.value
7
+ return obj
8
+ }, {});
9
+ };
@@ -0,0 +1,16 @@
1
+ (($) => {
2
+
3
+ $(document)
4
+ .on('focus', 'input.datepicker:not(.hasDatepicker)', function() {
5
+ const input = $(this);
6
+
7
+ // Only create datepickers in compatible browsers
8
+ if (input[0].type === 'date') { return; }
9
+
10
+ const defaults = { dateFormat: 'yy-mm-dd' };
11
+ const options = input.data('datepicker-options');
12
+
13
+ input.datepicker($.extend(defaults, options));
14
+ });
15
+
16
+ })(jQuery);
@@ -0,0 +1,45 @@
1
+ (($, ActiveAdmin) => {
2
+
3
+ class Filters {
4
+
5
+ static _clearForm(event) {
6
+ const regex = /^(q\[|q%5B|q%5b|page|utf8|commit)/;
7
+ const params = ActiveAdmin
8
+ .queryStringToParams()
9
+ .filter(({name}) => !name.match(regex));
10
+
11
+ event.preventDefault();
12
+
13
+ if (ActiveAdmin.turbolinks) {
14
+ ActiveAdmin.turbolinksVisit(params);
15
+ } else {
16
+ window.location.search = ActiveAdmin.toQueryString(params);
17
+ }
18
+ }
19
+
20
+ static _disableEmptyInputFields(event) {
21
+ const params = $(this)
22
+ .find(':input')
23
+ .filter((i, input) => input.value === '')
24
+ .prop({ disabled: true })
25
+ .end()
26
+ .serializeArray();
27
+
28
+ if (ActiveAdmin.turbolinks) {
29
+ event.preventDefault();
30
+ ActiveAdmin.turbolinksVisit(params);
31
+ }
32
+ }
33
+
34
+ static _setSearchType() {
35
+ $(this).siblings('input').prop({name: `q[${this.value}]`});
36
+ }
37
+
38
+ }
39
+
40
+ $(document).
41
+ on('click', '.clear_filters_btn', Filters._clearForm).
42
+ on('submit', '.filter_form', Filters._disableEmptyInputFields).
43
+ on('change', '.filter_form_field.select_and_search select', Filters._setSearchType);
44
+
45
+ })(jQuery, window.activeadmin);
@@ -0,0 +1,6 @@
1
+ let onDOMReady = () =>
2
+ $('#active_admin_content .tabs').tabs()
3
+
4
+ $(document).
5
+ ready(onDOMReady).
6
+ on('page:load turbolinks:load', onDOMReady)
@@ -0,0 +1,41 @@
1
+ ((window, $) => {
2
+
3
+ class ActiveAdmin {
4
+
5
+ static get turbolinks() {
6
+ return (typeof Turbolinks !== 'undefined' && Turbolinks.supported);
7
+ }
8
+
9
+ static turbolinksVisit(params) {
10
+ const path = [window.location.pathname, '?', this.toQueryString(params)].join('')
11
+ Turbolinks.visit(path);
12
+ }
13
+
14
+ static queryString() {
15
+ return (window.location.search || '').replace(/^\?/, '');
16
+ }
17
+
18
+ static queryStringToParams() {
19
+ const decode = (value) => decodeURIComponent((value || '').replace(/\+/g, '%20'));
20
+
21
+ return this.queryString()
22
+ .split("&")
23
+ .map(pair => pair.split("="))
24
+ .map(([key, value]) => {
25
+ return { name: decode(key), value: decode(value) }
26
+ });
27
+ }
28
+
29
+ static toQueryString(params) {
30
+ const encode = (value) => encodeURIComponent(value || '');
31
+
32
+ return params
33
+ .map(({name, value}) => [ encode(name), encode(value) ])
34
+ .map(pair => pair.join('='))
35
+ .join('&')
36
+ }
37
+ }
38
+
39
+ window.activeadmin = ActiveAdmin
40
+
41
+ })(window, jQuery);
@@ -0,0 +1,59 @@
1
+ const onDOMReady = function() {
2
+ // Detach any previously attached handlers before re-attaching them.
3
+ // This avoids double-registered handlers when Turbolinks is enabled
4
+ $('.batch_actions_selector li a').off('click confirm:complete');
5
+
6
+ //
7
+ // Use ActiveAdmin.modal_dialog to prompt user if
8
+ // confirmation is required for current Batch Action
9
+ //
10
+ $('.batch_actions_selector li a').on('click', function(event){
11
+ let message;
12
+ event.stopPropagation(); // prevent Rails UJS click event
13
+ event.preventDefault();
14
+ if ((message = $(this).data('confirm'))) {
15
+ ActiveAdmin.modal_dialog(message, $(this).data('inputs'), inputs => {
16
+ $(this).trigger('confirm:complete', inputs);
17
+ });
18
+ } else {
19
+ $(this).trigger('confirm:complete');
20
+ }
21
+ });
22
+
23
+ $('.batch_actions_selector li a').on('confirm:complete', function(event, inputs){
24
+ let val;
25
+ if ((val = JSON.stringify(inputs))) {
26
+ $('#batch_action_inputs').removeAttr('disabled').val(val);
27
+ } else {
28
+ $('#batch_action_inputs').attr('disabled', 'disabled');
29
+ }
30
+
31
+ $('#batch_action').val($(this).data('action'));
32
+ $('#collection_selection').submit();
33
+ });
34
+
35
+ //
36
+ // Add checkbox selection to resource tables and lists if batch actions are enabled
37
+ //
38
+
39
+ if ($(".batch_actions_selector").length && $(":checkbox.toggle_all").length) {
40
+
41
+ if ($(".paginated_collection table.index_table").length) {
42
+ $(".paginated_collection table.index_table").tableCheckboxToggler();
43
+ } else {
44
+ $(".paginated_collection").checkboxToggler();
45
+ }
46
+
47
+ $(document).on('change', '.paginated_collection :checkbox', function() {
48
+ if ($(".paginated_collection :checkbox:checked").length && $(".dropdown_menu_list").children().length) {
49
+ $(".batch_actions_selector").each(function() { $(this).aaDropdownMenu("enable"); });
50
+ } else {
51
+ $(".batch_actions_selector").each(function() { $(this).aaDropdownMenu("disable"); });
52
+ }
53
+ });
54
+ }
55
+ };
56
+
57
+ $(document).
58
+ ready(onDOMReady).
59
+ on('page:load turbolinks:load', onDOMReady);