activeadmin 1.3.0 → 2.0.0.rc1

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 (423) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +307 -123
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +90 -46
  5. data/README.md +66 -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 +55 -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/layouts/active_admin_logged_out.html.erb +2 -2
  33. data/config/locales/bg.yml +0 -1
  34. data/config/locales/de.yml +10 -0
  35. data/config/locales/en.yml +19 -1
  36. data/config/locales/es.yml +20 -1
  37. data/config/locales/fi.yml +1 -1
  38. data/config/locales/he.yml +0 -1
  39. data/config/locales/hu.yml +4 -0
  40. data/config/locales/it.yml +4 -0
  41. data/config/locales/lt.yml +2 -2
  42. data/config/locales/nb.yml +15 -5
  43. data/config/locales/nl.yml +11 -0
  44. data/config/locales/pl.yml +71 -3
  45. data/config/locales/ru.yml +2 -0
  46. data/config/locales/tr.yml +9 -0
  47. data/config/locales/uk.yml +2 -0
  48. data/config/locales/zh-CN.yml +33 -5
  49. data/docs/.gitignore +1 -0
  50. data/docs/0-installation.md +2 -2
  51. data/docs/1-general-configuration.md +16 -1
  52. data/docs/10-custom-pages.md +14 -0
  53. data/docs/12-arbre-components.md +28 -1
  54. data/docs/13-authorization-adapter.md +40 -21
  55. data/docs/2-resource-customization.md +8 -3
  56. data/docs/3-index-pages/custom-index.md +1 -1
  57. data/docs/3-index-pages/index-as-blog.md +1 -1
  58. data/docs/3-index-pages/index-as-table.md +5 -5
  59. data/docs/3-index-pages.md +17 -0
  60. data/docs/5-forms.md +16 -2
  61. data/docs/8-custom-actions.md +11 -0
  62. data/docs/CNAME +1 -1
  63. data/docs/Gemfile +2 -0
  64. data/docs/Gemfile.lock +249 -0
  65. data/docs/_config.yml +1 -1
  66. data/docs/_includes/toc.html +1 -1
  67. data/docs/_includes/top-menu.html +9 -1
  68. data/docs/documentation.md +1 -1
  69. data/docs/images/tidelift.svg +14 -0
  70. data/docs/index.html +2 -2
  71. data/docs/stylesheets/main.css +26 -2
  72. data/lib/active_admin/abstract_view_factory.rb +13 -51
  73. data/lib/active_admin/application.rb +49 -155
  74. data/lib/active_admin/application_settings.rb +42 -0
  75. data/lib/active_admin/asset_registration.rb +0 -8
  76. data/lib/active_admin/base_controller/authorization.rb +3 -6
  77. data/lib/active_admin/base_controller.rb +6 -6
  78. data/lib/active_admin/batch_actions/controller.rb +2 -2
  79. data/lib/active_admin/batch_actions/resource_extension.rb +4 -4
  80. data/lib/active_admin/callbacks.rb +1 -1
  81. data/lib/active_admin/csv_builder.rb +1 -1
  82. data/lib/active_admin/dependency.rb +1 -69
  83. data/lib/active_admin/deprecation.rb +0 -25
  84. data/lib/active_admin/dsl.rb +1 -8
  85. data/lib/active_admin/dynamic_setting.rb +38 -0
  86. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  87. data/lib/active_admin/engine.rb +5 -0
  88. data/lib/active_admin/error.rb +1 -1
  89. data/lib/active_admin/filters/active_filter.rb +4 -2
  90. data/lib/active_admin/filters/active_sidebar.rb +5 -1
  91. data/lib/active_admin/filters/forms.rb +7 -4
  92. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  93. data/lib/active_admin/filters/resource_extension.rb +4 -4
  94. data/lib/active_admin/form_builder.rb +97 -62
  95. data/lib/active_admin/generators/boilerplate.rb +1 -1
  96. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  97. data/lib/active_admin/inputs/datepicker_input.rb +8 -1
  98. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  99. data/lib/active_admin/menu.rb +2 -8
  100. data/lib/active_admin/menu_item.rb +4 -32
  101. data/lib/active_admin/namespace.rb +20 -8
  102. data/lib/active_admin/namespace_settings.rb +110 -0
  103. data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
  104. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
  105. data/lib/active_admin/orm/active_record/comments.rb +15 -4
  106. data/lib/active_admin/page_dsl.rb +1 -1
  107. data/lib/active_admin/pundit_adapter.rb +13 -4
  108. data/lib/active_admin/resource/action_items.rb +7 -2
  109. data/lib/active_admin/resource/attributes.rb +7 -4
  110. data/lib/active_admin/resource/menu.rb +3 -3
  111. data/lib/active_admin/resource/naming.rb +3 -3
  112. data/lib/active_admin/resource/routes.rb +9 -4
  113. data/lib/active_admin/resource/scopes.rb +3 -3
  114. data/lib/active_admin/resource/sidebars.rb +1 -1
  115. data/lib/active_admin/resource.rb +2 -2
  116. data/lib/active_admin/resource_collection.rb +2 -2
  117. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  118. data/lib/active_admin/resource_controller/decorators.rb +3 -3
  119. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  120. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  121. data/lib/active_admin/resource_dsl.rb +5 -3
  122. data/lib/active_admin/router.rb +89 -84
  123. data/lib/active_admin/scope.rb +9 -5
  124. data/lib/active_admin/settings_node.rb +19 -0
  125. data/lib/active_admin/version.rb +1 -1
  126. data/lib/active_admin/view_helpers/display_helper.rb +10 -2
  127. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  128. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  129. data/lib/active_admin/view_helpers.rb +1 -1
  130. data/lib/active_admin/views/components/active_admin_form.rb +9 -4
  131. data/lib/active_admin/views/components/attributes_table.rb +3 -3
  132. data/lib/active_admin/views/components/menu.rb +32 -0
  133. data/lib/active_admin/views/components/menu_item.rb +58 -0
  134. data/lib/active_admin/views/components/paginated_collection.rb +1 -1
  135. data/lib/active_admin/views/components/scopes.rb +11 -4
  136. data/lib/active_admin/views/components/sidebar.rb +13 -0
  137. data/lib/active_admin/views/components/sidebar_section.rb +0 -3
  138. data/lib/active_admin/views/components/site_title.rb +5 -6
  139. data/lib/active_admin/views/components/status_tag.rb +1 -18
  140. data/lib/active_admin/views/components/table_for.rb +3 -12
  141. data/lib/active_admin/views/components/tabs.rb +15 -3
  142. data/lib/active_admin/views/footer.rb +3 -7
  143. data/lib/active_admin/views/header.rb +3 -15
  144. data/lib/active_admin/views/index_as_blog.rb +1 -1
  145. data/lib/active_admin/views/index_as_grid.rb +25 -25
  146. data/lib/active_admin/views/index_as_table.rb +11 -10
  147. data/lib/active_admin/views/pages/base.rb +30 -53
  148. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  149. data/lib/active_admin/views.rb +1 -1
  150. data/lib/active_admin.rb +9 -4
  151. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  152. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  153. data/lib/generators/active_admin/install/install_generator.rb +6 -2
  154. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -1
  155. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  156. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  157. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  158. data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
  159. data/lib/ransack_ext.rb +3 -3
  160. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  161. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  162. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  163. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  164. metadata +120 -523
  165. data/.github/ISSUE_TEMPLATE.md +0 -20
  166. data/.gitignore +0 -49
  167. data/.mdlrc +0 -1
  168. data/.rubocop.yml +0 -76
  169. data/.simplecov +0 -13
  170. data/.travis.yml +0 -51
  171. data/.yardopts +0 -7
  172. data/Gemfile +0 -58
  173. data/Rakefile +0 -54
  174. data/activeadmin.gemspec +0 -32
  175. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  176. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  177. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  178. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  179. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  180. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  181. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  182. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  183. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  184. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  185. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  186. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  187. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  188. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  189. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  190. data/codecov.yml +0 -25
  191. data/config/i18n-tasks.yml +0 -26
  192. data/config/mdl_style.rb +0 -9
  193. data/cucumber.yml +0 -3
  194. data/features/action_item.feature +0 -73
  195. data/features/authorization.feature +0 -64
  196. data/features/authorization_cancan.feature +0 -52
  197. data/features/authorization_pundit.feature +0 -37
  198. data/features/belongs_to.feature +0 -124
  199. data/features/breadcrumb.feature +0 -75
  200. data/features/comments/commenting.feature +0 -178
  201. data/features/comments/viewing_index.feature +0 -19
  202. data/features/create_another.feature +0 -55
  203. data/features/dashboard.feature +0 -16
  204. data/features/decorators.feature +0 -43
  205. data/features/development_reloading.feature +0 -28
  206. data/features/edit_page.feature +0 -116
  207. data/features/favicon.feature +0 -20
  208. data/features/first_boot.feature +0 -16
  209. data/features/footer.feature +0 -28
  210. data/features/global_navigation.feature +0 -29
  211. data/features/i18n.feature +0 -55
  212. data/features/index/batch_actions.feature +0 -218
  213. data/features/index/filters.feature +0 -250
  214. data/features/index/format_as_csv.feature +0 -220
  215. data/features/index/formats.feature +0 -88
  216. data/features/index/index_as_block.feature +0 -15
  217. data/features/index/index_as_blog.feature +0 -69
  218. data/features/index/index_as_grid.feature +0 -45
  219. data/features/index/index_as_table.feature +0 -291
  220. data/features/index/index_blank_slate.feature +0 -83
  221. data/features/index/index_parameters.feature +0 -75
  222. data/features/index/index_scope_to.feature +0 -56
  223. data/features/index/index_scopes.feature +0 -285
  224. data/features/index/page_title.feature +0 -41
  225. data/features/index/pagination.feature +0 -63
  226. data/features/index/switch_index_view.feature +0 -73
  227. data/features/menu.feature +0 -72
  228. data/features/meta_tags.feature +0 -21
  229. data/features/new_page.feature +0 -136
  230. data/features/registering_assets.feature +0 -38
  231. data/features/registering_pages.feature +0 -237
  232. data/features/registering_resources.feature +0 -33
  233. data/features/renamed_resource.feature +0 -30
  234. data/features/root_to.feature +0 -17
  235. data/features/show/attributes_table_title.feature +0 -54
  236. data/features/show/columns.feature +0 -40
  237. data/features/show/default_content.feature +0 -44
  238. data/features/show/page_title.feature +0 -58
  239. data/features/show/tabs.feature +0 -33
  240. data/features/sidebar_sections.feature +0 -210
  241. data/features/site_title.feature +0 -47
  242. data/features/specifying_actions.feature +0 -118
  243. data/features/step_definitions/action_item_steps.rb +0 -7
  244. data/features/step_definitions/action_link_steps.rb +0 -19
  245. data/features/step_definitions/additional_web_steps.rb +0 -81
  246. data/features/step_definitions/asset_steps.rb +0 -15
  247. data/features/step_definitions/attribute_steps.rb +0 -18
  248. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  249. data/features/step_definitions/batch_action_steps.rb +0 -81
  250. data/features/step_definitions/blog_steps.rb +0 -3
  251. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  252. data/features/step_definitions/column_steps.rb +0 -8
  253. data/features/step_definitions/comment_steps.rb +0 -32
  254. data/features/step_definitions/configuration_steps.rb +0 -100
  255. data/features/step_definitions/dashboard_steps.rb +0 -15
  256. data/features/step_definitions/factory_steps.rb +0 -35
  257. data/features/step_definitions/filter_steps.rb +0 -47
  258. data/features/step_definitions/flash_steps.rb +0 -11
  259. data/features/step_definitions/footer_steps.rb +0 -11
  260. data/features/step_definitions/format_steps.rb +0 -56
  261. data/features/step_definitions/i18n_steps.rb +0 -11
  262. data/features/step_definitions/index_scope_steps.rb +0 -29
  263. data/features/step_definitions/index_views_steps.rb +0 -3
  264. data/features/step_definitions/layout_steps.rb +0 -3
  265. data/features/step_definitions/member_link_steps.rb +0 -7
  266. data/features/step_definitions/menu_steps.rb +0 -11
  267. data/features/step_definitions/meta_tag_steps.rb +0 -3
  268. data/features/step_definitions/pagination_steps.rb +0 -15
  269. data/features/step_definitions/sidebar_steps.rb +0 -11
  270. data/features/step_definitions/site_title_steps.rb +0 -17
  271. data/features/step_definitions/tab_steps.rb +0 -8
  272. data/features/step_definitions/table_steps.rb +0 -116
  273. data/features/step_definitions/user_steps.rb +0 -52
  274. data/features/step_definitions/web_steps.rb +0 -86
  275. data/features/sti_resource.feature +0 -65
  276. data/features/strong_parameters.feature +0 -69
  277. data/features/support/env.rb +0 -122
  278. data/features/support/paths.rb +0 -73
  279. data/features/support/regular_env.rb +0 -7
  280. data/features/support/reload_env.rb +0 -7
  281. data/features/support/selectors.rb +0 -45
  282. data/features/users/logging_in.feature +0 -36
  283. data/features/users/logging_out.feature +0 -13
  284. data/features/users/resetting_password.feature +0 -34
  285. data/gemfiles/rails_42.gemfile +0 -10
  286. data/gemfiles/rails_50.gemfile +0 -10
  287. data/gemfiles/rails_51.gemfile +0 -10
  288. data/gemfiles/rails_52.gemfile +0 -11
  289. data/lib/active_admin/event.rb +0 -24
  290. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  291. data/lib/active_admin/helpers/settings.rb +0 -114
  292. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  293. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  294. data/spec/bug_report_templates_spec.rb +0 -26
  295. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  296. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  297. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  298. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  299. data/spec/javascripts/fixtures/flashes.html +0 -2
  300. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  301. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  302. data/spec/javascripts/support/jasmine.yml +0 -74
  303. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  304. data/spec/rails_helper.rb +0 -59
  305. data/spec/requests/default_namespace_spec.rb +0 -81
  306. data/spec/requests/memory_spec.rb +0 -25
  307. data/spec/requests/stylesheets_spec.rb +0 -18
  308. data/spec/spec_helper.rb +0 -1
  309. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  310. data/spec/support/active_admin_request_helpers.rb +0 -39
  311. data/spec/support/rails_template.rb +0 -153
  312. data/spec/support/rails_template_with_data.rb +0 -327
  313. data/spec/support/templates/admin/stores.rb +0 -7
  314. data/spec/support/templates/en.yml +0 -8
  315. data/spec/support/templates/manifest.js +0 -3
  316. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  317. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  318. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  319. data/spec/support/templates/policies/application_policy.rb +0 -44
  320. data/spec/support/templates/policies/category_policy.rb +0 -7
  321. data/spec/support/templates/policies/post_policy.rb +0 -15
  322. data/spec/support/templates/policies/store_policy.rb +0 -11
  323. data/spec/support/templates/policies/user_policy.rb +0 -11
  324. data/spec/support/templates/post_decorator.rb +0 -24
  325. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  326. data/spec/unit/action_builder_spec.rb +0 -158
  327. data/spec/unit/active_admin_spec.rb +0 -11
  328. data/spec/unit/application_spec.rb +0 -184
  329. data/spec/unit/asset_registration_spec.rb +0 -81
  330. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  331. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  332. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  333. data/spec/unit/auto_link_spec.rb +0 -93
  334. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  335. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  336. data/spec/unit/belongs_to_spec.rb +0 -76
  337. data/spec/unit/cancan_adapter_spec.rb +0 -43
  338. data/spec/unit/comments_spec.rb +0 -176
  339. data/spec/unit/component_spec.rb +0 -18
  340. data/spec/unit/config_shared_examples.rb +0 -59
  341. data/spec/unit/controller_filters_spec.rb +0 -41
  342. data/spec/unit/csv_builder_spec.rb +0 -313
  343. data/spec/unit/dependency_spec.rb +0 -135
  344. data/spec/unit/devise_spec.rb +0 -110
  345. data/spec/unit/dsl_spec.rb +0 -120
  346. data/spec/unit/filters/active_filter_spec.rb +0 -189
  347. data/spec/unit/filters/active_spec.rb +0 -24
  348. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  349. data/spec/unit/filters/resource_spec.rb +0 -128
  350. data/spec/unit/form_builder_spec.rb +0 -990
  351. data/spec/unit/generators/install_spec.rb +0 -31
  352. data/spec/unit/helpers/collection_spec.rb +0 -68
  353. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  354. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  355. data/spec/unit/helpers/settings_spec.rb +0 -30
  356. data/spec/unit/i18n_spec.rb +0 -29
  357. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  358. data/spec/unit/menu_collection_spec.rb +0 -62
  359. data/spec/unit/menu_item_spec.rb +0 -141
  360. data/spec/unit/menu_spec.rb +0 -71
  361. data/spec/unit/namespace/authorization_spec.rb +0 -27
  362. data/spec/unit/namespace/register_page_spec.rb +0 -99
  363. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  364. data/spec/unit/namespace_spec.rb +0 -124
  365. data/spec/unit/order_clause_spec.rb +0 -81
  366. data/spec/unit/page_controller_spec.rb +0 -5
  367. data/spec/unit/page_spec.rb +0 -128
  368. data/spec/unit/pretty_format_spec.rb +0 -82
  369. data/spec/unit/pundit_adapter_spec.rb +0 -98
  370. data/spec/unit/resource/action_items_spec.rb +0 -69
  371. data/spec/unit/resource/attributes_spec.rb +0 -49
  372. data/spec/unit/resource/includes_spec.rb +0 -21
  373. data/spec/unit/resource/menu_spec.rb +0 -18
  374. data/spec/unit/resource/naming_spec.rb +0 -122
  375. data/spec/unit/resource/ordering_spec.rb +0 -35
  376. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  377. data/spec/unit/resource/pagination_spec.rb +0 -38
  378. data/spec/unit/resource/routes_spec.rb +0 -125
  379. data/spec/unit/resource/scopes_spec.rb +0 -50
  380. data/spec/unit/resource/sidebars_spec.rb +0 -43
  381. data/spec/unit/resource_collection_spec.rb +0 -175
  382. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  383. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  384. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  385. data/spec/unit/resource_controller_spec.rb +0 -273
  386. data/spec/unit/resource_registration_spec.rb +0 -61
  387. data/spec/unit/resource_spec.rb +0 -320
  388. data/spec/unit/routing_spec.rb +0 -211
  389. data/spec/unit/scope_spec.rb +0 -209
  390. data/spec/unit/settings_spec.rb +0 -117
  391. data/spec/unit/view_factory_spec.rb +0 -19
  392. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  393. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  394. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  395. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  396. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  397. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  398. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  399. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  400. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  401. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  402. data/spec/unit/views/components/columns_spec.rb +0 -187
  403. data/spec/unit/views/components/index_list_spec.rb +0 -49
  404. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  405. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  406. data/spec/unit/views/components/panel_spec.rb +0 -58
  407. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  408. data/spec/unit/views/components/site_title_spec.rb +0 -76
  409. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  410. data/spec/unit/views/components/table_for_spec.rb +0 -436
  411. data/spec/unit/views/components/tabs_spec.rb +0 -67
  412. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  413. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  414. data/spec/unit/views/pages/form_spec.rb +0 -54
  415. data/spec/unit/views/pages/index_spec.rb +0 -60
  416. data/spec/unit/views/pages/layout_spec.rb +0 -59
  417. data/spec/unit/views/pages/show_spec.rb +0 -32
  418. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  419. data/tasks/docs.rake +0 -64
  420. data/tasks/lint.rake +0 -21
  421. data/tasks/local.rake +0 -25
  422. data/tasks/parallel_tests.rake +0 -66
  423. data/tasks/test.rake +0 -29
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,13 @@ 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_52.gemfile
36
- ```
29
+ You'll also need chrome and [chromedriver] installed in order to run cucumber
30
+ scenarios.
37
31
 
38
32
  Now install the development dependencies:
39
33
 
@@ -44,36 +38,45 @@ bundle install
44
38
  Now you should be able to run the entire suite using:
45
39
 
46
40
  ```sh
47
- bundle exec rake
41
+ bin/rake
48
42
  ```
49
43
 
50
- The test run will generate a sample Rails application in `spec/rails` to run the
44
+ The test run will generate a sample Rails application in `tmp/rails` to run the
51
45
  tests against.
52
46
 
53
- If your tests are passing locally but they're failing on Travis, reset your test
54
- environment:
47
+ If your tests are passing locally but they're failing on CircleCI, it's probably
48
+ because of some breaking change or problem with the latest version of some
49
+ dependency. You should be able to reproduce the issue locally by:
50
+
51
+ * Removing the `Gemfile.lock` file.
52
+ * Running `bundle install`.
53
+ * Re-running the tests again like you did previously.
54
+
55
+ This is not your fault though, so if this happens feel free to investigate, but
56
+ also feel free to ping maintainers about the issue you just found.
57
+
58
+ If you want to test against a Rails version different from the latest, make sure
59
+ you use the correct Gemfile, for example:
55
60
 
56
61
  ```sh
57
- rm -rf spec/rails && bundle update
62
+ export BUNDLE_GEMFILE=gemfiles/rails_51.gemfile
58
63
  ```
59
64
 
60
- ### 4. Did you find a bug?
65
+ ### Did you find a bug?
61
66
 
62
- * **Ensure the bug was not already reported** by [searching all
63
- issues](https://github.com/activeadmin/activeadmin/issues?q=).
67
+ * **Ensure the bug was not already reported** by [searching all issues][].
64
68
 
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.
69
+ * If you're unable to find an open issue addressing the problem,
70
+ [open a new one][new issue]. Be sure to include a **title and clear
71
+ description**, as much relevant information as possible, and a **code sample**
72
+ or an **executable test case** demonstrating the expected behavior that is not
73
+ occurring.
70
74
 
71
75
  * If possible, use the relevant bug report templates to create the issue.
72
76
  Simply copy the content of the appropriate template into a .rb file, make the
73
77
  necessary changes to demonstrate the issue, and **paste the content into the
74
78
  issue description**:
75
- * [**ActiveAdmin** master
76
- issues](https://github.com/activeadmin/activeadmin/blob/master/lib/bug_report_templates/active_admin_master.rb)
79
+ * [**ActiveAdmin** master issues][master template]
77
80
 
78
81
  ### 5. Implement your fix or feature
79
82
 
@@ -88,7 +91,7 @@ a look at your changes in a browser.
88
91
  To boot up a test Rails app:
89
92
 
90
93
  ```sh
91
- bundle exec rake local server
94
+ bin/rake local server
92
95
  ```
93
96
 
94
97
  This will automatically create a Rails app if none already exists, and store it
@@ -104,16 +107,24 @@ If you need to perform any other commands on the test application, just pass
104
107
  them to the `local` rake task. For example, to boot the rails console:
105
108
 
106
109
  ```sh
107
- bundle exec rake local console
110
+ bin/rake local console
108
111
  ```
109
112
 
110
- Or to migrate the database:
113
+ Or to migrate the database, if you create a new migration or just play around
114
+ with the db:
111
115
 
112
116
  ```sh
113
- bundle exec rake local db:migrate
117
+ bin/rake local db:migrate
114
118
  ```
115
119
 
116
- ### 7. Make a Pull Request
120
+ ### Get the style right
121
+
122
+ Your patch should follow the same conventions & pass the same code quality
123
+ checks as the rest of the project. `bin/rake lint` will give you feedback in
124
+ this regard. You can check & fix style issues by running each linter
125
+ individually. Run `bin/rake -T lint` to see the available linters.
126
+
127
+ ### Make a Pull Request
117
128
 
118
129
  At this point, you should switch back to your master branch and make sure it's
119
130
  up to date with Active Admin's master branch:
@@ -132,26 +143,22 @@ git rebase master
132
143
  git push --set-upstream origin 325-add-japanese-translations
133
144
  ```
134
145
 
135
- Finally, go to GitHub and
136
- [make a Pull Request](https://help.github.com/articles/creating-a-pull-request)
137
- :D
146
+ Finally, go to GitHub and [make a Pull Request][] :D
138
147
 
139
- Travis CI will run our test suite against all supported Rails versions. We care
148
+ CircleCI will run our test suite against all supported Rails versions. We care
140
149
  about quality, so your PR won't be merged until all tests pass. It's unlikely,
141
150
  but it's possible that your changes pass tests in one Rails version but fail in
142
151
  another. In that case, you'll have to setup your development environment (as
143
152
  explained in step 3) to use the problematic Rails version, and investigate
144
153
  what's going on!
145
154
 
146
- ### 8. Keeping your Pull Request updated
155
+ ### Keeping your Pull Request updated
147
156
 
148
157
  If a maintainer asks you to "rebase" your PR, they're saying that a lot of code
149
158
  has changed, and that you need to update your branch so it's easier to merge.
150
159
 
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:
160
+ To learn more about rebasing in Git, there are a lot of [good][git rebasing]
161
+ [resources][interactive rebase] but here's the suggested workflow:
155
162
 
156
163
  ```sh
157
164
  git checkout 325-add-japanese-translations
@@ -159,7 +166,7 @@ git pull --rebase upstream master
159
166
  git push --force-with-lease 325-add-japanese-translations
160
167
  ```
161
168
 
162
- ### 9. Merging a PR (maintainers only)
169
+ ### Merging a PR (maintainers only)
163
170
 
164
171
  A PR can only be merged into master by a maintainer if:
165
172
 
@@ -171,3 +178,40 @@ A PR can only be merged into master by a maintainer if:
171
178
 
172
179
  Any maintainer is allowed to merge a PR if all of these conditions are
173
180
  met.
181
+
182
+ ### Shipping a release (maintainers only)
183
+
184
+ Maintainers need to do the following to push out a release:
185
+
186
+ * Make sure all pull requests are in and that changelog is current
187
+ * Update `version.rb` file and changelog with new version number
188
+ * If it's not a patch level release, create a stable branch for that release,
189
+ otherwise switch to the stable branch corresponding to the patch release you
190
+ want to ship:
191
+
192
+ ```sh
193
+ git checkout master
194
+ git fetch activeadmin
195
+ git rebase activeadmin/master
196
+ # If the release is 2.1.x then this should be: 2-1-stable
197
+ git checkout -b N-N-stable
198
+ git push activeadmin N-N-stable:N-N-stable
199
+ ```
200
+
201
+ * Make sure you have [chandler] properly configured. Chandler is used to
202
+ automatically submit github release notes from the changelog right after
203
+ pushing the gem to rubygems.
204
+ * `bin/rake release`
205
+
206
+ [chandler]: https://github.com/mattbrictson/chandler#2-configure-credentials
207
+ [chromedriver]: https://sites.google.com/a/chromium.org/chromedriver/getting-started
208
+ [mailing list]: http://groups.google.com/group/activeadmin
209
+ [Stack Overflow]: http://stackoverflow.com/questions/tagged/activeadmin
210
+ [search the issue tracker]: https://github.com/activeadmin/activeadmin/issues?q=something
211
+ [new issue]: https://github.com/activeadmin/activeadmin/issues/new
212
+ [fork Active Admin]: https://help.github.com/articles/fork-a-repo
213
+ [searching all issues]: https://github.com/activeadmin/activeadmin/issues?q=
214
+ [master template]: https://github.com/activeadmin/activeadmin/blob/master/tasks/bug_report_template.rb
215
+ [make a pull request]: https://help.github.com/articles/creating-a-pull-request
216
+ [git rebasing]: http://git-scm.com/book/en/Git-Branching-Rebasing
217
+ [interactive rebase]: https://help.github.com/articles/interactive-rebase
data/README.md CHANGED
@@ -1,30 +1,29 @@
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
23
 
24
24
  ## Need help?
25
25
 
26
- Please use [StackOverflow](http://stackoverflow.com/questions/tagged/activeadmin) for
27
- help requests and how-to questions.
26
+ Please use [StackOverflow][stackoverflow] for help requests and how-to questions.
28
27
 
29
28
  Please open GitHub issues for bugs and enhancements only, not general help requests.
30
29
  Please search previous issues (and Google and StackOverflow) before creating a new issue.
@@ -33,14 +32,22 @@ Google Groups, IRC #activeadmin and Gitter are not actively monitored.
33
32
 
34
33
  ## Want to contribute?
35
34
 
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.
35
+ If you want to contribute through code or documentation, the [Contributing
36
+ guide is the best place to start][contributing]. If you have questions, feel free
37
+ to ask.
38
38
 
39
39
  ## Want to support us?
40
40
 
41
- You can support us with a weekly tip via [Gratipay](https://gratipay.com).
41
+ If you want to support us financially, you can [help fund the project
42
+ through a Tidelift subscription][tidelift]. By buying a Tidelift subscription
43
+ you make sure your whole dependency stack is properly maintained, while also
44
+ getting a comprehensive view of outdated dependencies, new releases, security
45
+ alerts, and licensing compatibility issues.
42
46
 
43
- [![Support via Gratipay](https://cdn.rawgit.com/gratipay/gratipay-badge/2.1.3/dist/gratipay.png)](https://gratipay.com/Active-Admin)
47
+ You can also support us with a weekly tip via [Liberapay].
48
+
49
+ Finally, we have an [Open Collective][opencollective page] where you can become a backer or
50
+ sponsor for the project, and also submit expenses to it.
44
51
 
45
52
  ## Dependencies
46
53
 
@@ -55,9 +62,49 @@ Tool | Description
55
62
  [Kaminari] | Elegant pagination for any sort of collection
56
63
  [Ransack] | Provides a simple search API to query your data
57
64
 
65
+ ## Security contact information
66
+
67
+ Please use the Tidelift security contact to [report a security vulnerability][Tidelift security contact].
68
+ Tidelift will coordinate the fix and disclosure.
69
+
70
+ ## Acknowledgements
71
+
72
+ Thanks to [Greg Bell][Greg] for creating and sharing this project with the open source community.
73
+
74
+ Thanks to [all the people that ever contributed through code][contributors] or
75
+ other means such as bug reports, issue triaging, feature suggestions, code
76
+ snippet tips, Slack discussions and so on.
77
+
78
+ Thanks to [Tidelift][tidelift] and all our Tidelift subscribers.
79
+
80
+ Thanks to [Open Collective][opencollective contributors] and all our Open Collective contributors.
81
+
58
82
  [Arbre]: https://github.com/activeadmin/arbre
59
83
  [Devise]: https://github.com/plataformatec/devise
60
84
  [Formtastic]: https://github.com/justinfrench/formtastic
61
85
  [Inherited Resources]: https://github.com/activeadmin/inherited_resources
62
86
  [Kaminari]: https://github.com/kaminari/kaminari
63
87
  [Ransack]: https://github.com/activerecord-hackery/ransack
88
+
89
+ [rubygems_badge]: http://img.shields.io/gem/v/activeadmin.svg
90
+ [rubygems]: https://rubygems.org/gems/activeadmin
91
+ [circle_badge]: https://circleci.com/gh/activeadmin/activeadmin/tree/master.svg
92
+ [circle]: https://circleci.com/gh/activeadmin/activeadmin/tree/master
93
+ [coverage_badge]: https://api.codeclimate.com/v1/badges/779e407d22bacff19733/test_coverage
94
+ [coverage]: https://codeclimate.com/github/activeadmin/activeadmin/test_coverage
95
+ [inch_badge]: http://inch-ci.org/github/activeadmin/activeadmin.svg?branch=master
96
+ [inch]: http://inch-ci.org/github/activeadmin/activeadmin
97
+ [tidelift_badge]: https://tidelift.com/badges/github/activeadmin/activeadmin
98
+ [tidelift]: https://tidelift.com/subscription/pkg/rubygems-activeadmin?utm_source=rubygems-activeadmin&utm_medium=readme
99
+
100
+ [docs]: http://activeadmin.info/0-installation.html
101
+ [demo]: http://demo.activeadmin.info/admin
102
+ [wiki]: https://github.com/activeadmin/activeadmin/wiki
103
+ [stackoverflow]: http://stackoverflow.com/questions/tagged/activeadmin
104
+ [contributing]: https://github.com/activeadmin/activeadmin/blob/master/CONTRIBUTING.md
105
+ [Liberapay]: https://liberapay.com/Active-Admin/donate
106
+ [Tidelift security contact]: https://tidelift.com/security
107
+ [Greg]: https://github.com/gregbell
108
+ [contributors]: https://github.com/activeadmin/activeadmin/graphs/contributors
109
+ [opencollective page]: https://opencollective.com/activeadmin
110
+ [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,55 @@
1
+ const onDOMReady = function() {
2
+ //
3
+ // Use ActiveAdmin.modal_dialog to prompt user if
4
+ // confirmation is required for current Batch Action
5
+ //
6
+ $('.batch_actions_selector li a').click(function(event){
7
+ let message;
8
+ event.stopPropagation(); // prevent Rails UJS click event
9
+ event.preventDefault();
10
+ if ((message = $(this).data('confirm'))) {
11
+ ActiveAdmin.modal_dialog(message, $(this).data('inputs'), inputs => {
12
+ $(this).trigger('confirm:complete', inputs);
13
+ });
14
+ } else {
15
+ $(this).trigger('confirm:complete');
16
+ }
17
+ });
18
+
19
+ $('.batch_actions_selector li a').on('confirm:complete', function(event, inputs){
20
+ let val;
21
+ if ((val = JSON.stringify(inputs))) {
22
+ $('#batch_action_inputs').removeAttr('disabled').val(val);
23
+ } else {
24
+ $('#batch_action_inputs').attr('disabled', 'disabled');
25
+ }
26
+
27
+ $('#batch_action').val($(this).data('action'));
28
+ $('#collection_selection').submit();
29
+ });
30
+
31
+ //
32
+ // Add checkbox selection to resource tables and lists if batch actions are enabled
33
+ //
34
+
35
+ if ($(".batch_actions_selector").length && $(":checkbox.toggle_all").length) {
36
+
37
+ if ($(".paginated_collection table.index_table").length) {
38
+ $(".paginated_collection table.index_table").tableCheckboxToggler();
39
+ } else {
40
+ $(".paginated_collection").checkboxToggler();
41
+ }
42
+
43
+ $(document).on('change', '.paginated_collection :checkbox', function() {
44
+ if ($(".paginated_collection :checkbox:checked").length && $(".dropdown_menu_list").children().length) {
45
+ $(".batch_actions_selector").each(function() { $(this).aaDropdownMenu("enable"); });
46
+ } else {
47
+ $(".batch_actions_selector").each(function() { $(this).aaDropdownMenu("disable"); });
48
+ }
49
+ });
50
+ }
51
+ };
52
+
53
+ $(document).
54
+ ready(onDOMReady).
55
+ on('page:load turbolinks:load', onDOMReady);