activeadmin-rails 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (584) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +64 -0
  3. data/.github/ISSUE_TEMPLATE.md +20 -0
  4. data/.github/workflows/ci.yaml +64 -0
  5. data/.github/workflows/daily.yaml +64 -0
  6. data/.github/workflows/pages.yml +72 -0
  7. data/.gitignore +23 -0
  8. data/.mdlrc +1 -0
  9. data/.rubocop.yml +84 -0
  10. data/.simplecov +13 -0
  11. data/.yardopts +7 -0
  12. data/CHANGELOG.md +514 -0
  13. data/CODE_OF_CONDUCT.md +22 -0
  14. data/CONTRIBUTING.md +190 -0
  15. data/Gemfile +51 -0
  16. data/LICENSE +20 -0
  17. data/README.md +84 -0
  18. data/Rakefile +56 -0
  19. data/activeadmin-rails.gemspec +39 -0
  20. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  21. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  22. data/app/assets/images/active_admin/orderable.png +0 -0
  23. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  24. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  25. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  26. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  27. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  28. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  29. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  30. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
  31. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  32. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  33. data/app/assets/javascripts/active_admin/lib/has_many.es6 +89 -0
  34. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  35. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  36. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  37. data/app/assets/stylesheets/active_admin/_base.scss +41 -0
  38. data/app/assets/stylesheets/active_admin/_forms.scss +338 -0
  39. data/app/assets/stylesheets/active_admin/_header.scss +156 -0
  40. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -0
  41. data/app/assets/stylesheets/active_admin/_typography.scss +100 -0
  42. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +6 -0
  43. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +30 -0
  44. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
  45. data/app/assets/stylesheets/active_admin/components/_buttons.scss +6 -0
  46. data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
  47. data/app/assets/stylesheets/active_admin/components/_comments.scss +41 -0
  48. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +149 -0
  49. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +152 -0
  50. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  51. data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
  52. data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
  53. data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
  54. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  55. data/app/assets/stylesheets/active_admin/components/_pagination.scss +55 -0
  56. data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
  57. data/app/assets/stylesheets/active_admin/components/_scopes.scss +13 -0
  58. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +17 -0
  59. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  60. data/app/assets/stylesheets/active_admin/components/_tables.scss +113 -0
  61. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  62. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  63. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -0
  64. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +65 -0
  65. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  66. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  67. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +41 -0
  68. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +15 -0
  69. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
  70. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +17 -0
  71. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +34 -0
  72. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
  73. data/app/assets/stylesheets/active_admin/print.scss +287 -0
  74. data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
  75. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
  76. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +41 -0
  77. data/app/views/active_admin/_head.html.erb +14 -0
  78. data/app/views/active_admin/base/_action_items.html.arb +7 -0
  79. data/app/views/active_admin/base/_breadcrumbs.html.arb +8 -0
  80. data/app/views/active_admin/base/_footer.html.arb +11 -0
  81. data/app/views/active_admin/base/_header.html.arb +5 -0
  82. data/app/views/active_admin/base/_sidebar.html.arb +3 -0
  83. data/app/views/active_admin/base/_title_bar.html.arb +9 -0
  84. data/app/views/active_admin/base/_unsupported_browser.html.erb +5 -0
  85. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  86. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
  87. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
  88. data/app/views/active_admin/devise/passwords/edit.html.erb +18 -0
  89. data/app/views/active_admin/devise/passwords/new.html.erb +15 -0
  90. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  91. data/app/views/active_admin/devise/sessions/new.html.erb +20 -0
  92. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  93. data/app/views/active_admin/devise/shared/_links.erb +33 -0
  94. data/app/views/active_admin/devise/unlocks/new.html.erb +15 -0
  95. data/app/views/active_admin/page/_content.html.arb +1 -0
  96. data/app/views/active_admin/page/index.html.arb +8 -0
  97. data/app/views/active_admin/resource/_filters_form.html.erb +1 -0
  98. data/app/views/active_admin/resource/_form.html.arb +11 -0
  99. data/app/views/active_admin/resource/_index_as_table.html.arb +8 -0
  100. data/app/views/active_admin/resource/_show.html.arb +1 -0
  101. data/app/views/active_admin/resource/edit.html.arb +13 -0
  102. data/app/views/active_admin/resource/index.html.arb +101 -0
  103. data/app/views/active_admin/resource/new.html.arb +13 -0
  104. data/app/views/active_admin/resource/show.html.arb +22 -0
  105. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  106. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  107. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  108. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  109. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  110. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  111. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  112. data/app/views/layouts/active_admin.html.erb +33 -0
  113. data/app/views/layouts/active_admin_logged_out.html.erb +39 -0
  114. data/codecov.yml +25 -0
  115. data/config/i18n-tasks.yml +26 -0
  116. data/config/locales/ar.yml +133 -0
  117. data/config/locales/bg.yml +118 -0
  118. data/config/locales/bs.yml +119 -0
  119. data/config/locales/ca.yml +104 -0
  120. data/config/locales/cs.yml +107 -0
  121. data/config/locales/da.yml +135 -0
  122. data/config/locales/de-CH.yml +99 -0
  123. data/config/locales/de.yml +142 -0
  124. data/config/locales/el.yml +124 -0
  125. data/config/locales/en-CA.yml +137 -0
  126. data/config/locales/en-GB.yml +137 -0
  127. data/config/locales/en.yml +160 -0
  128. data/config/locales/eo.yml +143 -0
  129. data/config/locales/es-MX.yml +94 -0
  130. data/config/locales/es.yml +160 -0
  131. data/config/locales/fa.yml +117 -0
  132. data/config/locales/fi.yml +110 -0
  133. data/config/locales/fr.yml +139 -0
  134. data/config/locales/he.yml +140 -0
  135. data/config/locales/hr.yml +121 -0
  136. data/config/locales/hu.yml +96 -0
  137. data/config/locales/id.yml +133 -0
  138. data/config/locales/it.yml +142 -0
  139. data/config/locales/ja.yml +139 -0
  140. data/config/locales/ko.yml +118 -0
  141. data/config/locales/lt.yml +140 -0
  142. data/config/locales/lv.yml +90 -0
  143. data/config/locales/nb.yml +128 -0
  144. data/config/locales/nl.yml +142 -0
  145. data/config/locales/pl.yml +166 -0
  146. data/config/locales/pt-BR.yml +141 -0
  147. data/config/locales/pt-PT.yml +90 -0
  148. data/config/locales/ro.yml +94 -0
  149. data/config/locales/ru.yml +139 -0
  150. data/config/locales/sk.yml +107 -0
  151. data/config/locales/sv-SE.yml +133 -0
  152. data/config/locales/tr.yml +142 -0
  153. data/config/locales/uk.yml +134 -0
  154. data/config/locales/vi.yml +132 -0
  155. data/config/locales/zh-CN.yml +141 -0
  156. data/config/locales/zh-TW.yml +133 -0
  157. data/config/mdl_style.rb +9 -0
  158. data/cucumber.yml +6 -0
  159. data/docs/0-installation.md +121 -0
  160. data/docs/1-general-configuration.md +207 -0
  161. data/docs/10-custom-pages.md +148 -0
  162. data/docs/11-decorators.md +66 -0
  163. data/docs/12-arbo-components.md +200 -0
  164. data/docs/13-authorization-adapter.md +288 -0
  165. data/docs/14-gotchas.md +141 -0
  166. data/docs/2-resource-customization.md +480 -0
  167. data/docs/3-index-pages/custom-index.md +39 -0
  168. data/docs/3-index-pages/index-as-block.md +23 -0
  169. data/docs/3-index-pages/index-as-blog.md +73 -0
  170. data/docs/3-index-pages/index-as-grid.md +31 -0
  171. data/docs/3-index-pages/index-as-table.md +259 -0
  172. data/docs/3-index-pages.md +349 -0
  173. data/docs/4-csv-format.md +86 -0
  174. data/docs/5-forms.md +233 -0
  175. data/docs/6-show-pages.md +61 -0
  176. data/docs/7-sidebars.md +63 -0
  177. data/docs/8-custom-actions.md +160 -0
  178. data/docs/9-batch-actions.md +248 -0
  179. data/docs/CNAME +1 -0
  180. data/docs/Gemfile +7 -0
  181. data/docs/README.md +24 -0
  182. data/docs/_config.yml +15 -0
  183. data/docs/_includes/nav_footer_custom.html +3 -0
  184. data/docs/documentation.md +61 -0
  185. data/docs/images/activeadmin.png +0 -0
  186. data/docs/images/divider.png +0 -0
  187. data/docs/images/features.png +0 -0
  188. data/docs/index.css +835 -0
  189. data/docs/index.html +105 -0
  190. data/features/action_item.feature +73 -0
  191. data/features/authorization.feature +64 -0
  192. data/features/authorization_cancan.feature +52 -0
  193. data/features/authorization_pundit.feature +37 -0
  194. data/features/belongs_to.feature +124 -0
  195. data/features/breadcrumb.feature +76 -0
  196. data/features/comments/commenting.feature +178 -0
  197. data/features/comments/viewing_index.feature +18 -0
  198. data/features/create_another.feature +55 -0
  199. data/features/dashboard.feature +16 -0
  200. data/features/decorators.feature +43 -0
  201. data/features/development_reloading.feature +28 -0
  202. data/features/edit_page.feature +116 -0
  203. data/features/favicon.feature +20 -0
  204. data/features/filter_attributes.feature +46 -0
  205. data/features/first_boot.feature +16 -0
  206. data/features/footer.feature +29 -0
  207. data/features/global_navigation.feature +29 -0
  208. data/features/i18n.feature +55 -0
  209. data/features/index/batch_actions.feature +218 -0
  210. data/features/index/filters.feature +251 -0
  211. data/features/index/format_as_csv.feature +273 -0
  212. data/features/index/formats.feature +88 -0
  213. data/features/index/index_as_block.feature +15 -0
  214. data/features/index/index_as_blog.feature +69 -0
  215. data/features/index/index_as_grid.feature +45 -0
  216. data/features/index/index_as_table.feature +291 -0
  217. data/features/index/index_blank_slate.feature +83 -0
  218. data/features/index/index_parameters.feature +75 -0
  219. data/features/index/index_scope_to.feature +56 -0
  220. data/features/index/index_scopes.feature +325 -0
  221. data/features/index/page_title.feature +41 -0
  222. data/features/index/pagination.feature +63 -0
  223. data/features/index/switch_index_view.feature +73 -0
  224. data/features/menu.feature +85 -0
  225. data/features/meta_tags.feature +21 -0
  226. data/features/new_page.feature +136 -0
  227. data/features/registering_assets.feature +34 -0
  228. data/features/registering_pages.feature +237 -0
  229. data/features/registering_resources.feature +33 -0
  230. data/features/renamed_resource.feature +29 -0
  231. data/features/root_to.feature +18 -0
  232. data/features/show/attributes_table_title.feature +54 -0
  233. data/features/show/columns.feature +40 -0
  234. data/features/show/default_content.feature +44 -0
  235. data/features/show/page_title.feature +58 -0
  236. data/features/show/tabs.feature +47 -0
  237. data/features/sidebar_sections.feature +210 -0
  238. data/features/site_title.feature +47 -0
  239. data/features/specifying_actions.feature +118 -0
  240. data/features/step_definitions/action_item_steps.rb +7 -0
  241. data/features/step_definitions/action_link_steps.rb +19 -0
  242. data/features/step_definitions/additional_web_steps.rb +81 -0
  243. data/features/step_definitions/asset_steps.rb +15 -0
  244. data/features/step_definitions/attribute_steps.rb +18 -0
  245. data/features/step_definitions/attributes_table_title_steps.rb +11 -0
  246. data/features/step_definitions/batch_action_steps.rb +78 -0
  247. data/features/step_definitions/blog_steps.rb +3 -0
  248. data/features/step_definitions/breadcrumb_steps.rb +13 -0
  249. data/features/step_definitions/column_steps.rb +8 -0
  250. data/features/step_definitions/comment_steps.rb +32 -0
  251. data/features/step_definitions/configuration_steps.rb +102 -0
  252. data/features/step_definitions/dashboard_steps.rb +15 -0
  253. data/features/step_definitions/factory_steps.rb +35 -0
  254. data/features/step_definitions/filter_steps.rb +57 -0
  255. data/features/step_definitions/flash_steps.rb +11 -0
  256. data/features/step_definitions/footer_steps.rb +21 -0
  257. data/features/step_definitions/format_steps.rb +60 -0
  258. data/features/step_definitions/i18n_steps.rb +11 -0
  259. data/features/step_definitions/index_scope_steps.rb +42 -0
  260. data/features/step_definitions/index_views_steps.rb +3 -0
  261. data/features/step_definitions/layout_steps.rb +3 -0
  262. data/features/step_definitions/member_link_steps.rb +7 -0
  263. data/features/step_definitions/menu_steps.rb +11 -0
  264. data/features/step_definitions/meta_tag_steps.rb +3 -0
  265. data/features/step_definitions/pagination_steps.rb +15 -0
  266. data/features/step_definitions/root_steps.rb +9 -0
  267. data/features/step_definitions/sidebar_steps.rb +11 -0
  268. data/features/step_definitions/site_title_steps.rb +31 -0
  269. data/features/step_definitions/tab_steps.rb +17 -0
  270. data/features/step_definitions/table_steps.rb +116 -0
  271. data/features/step_definitions/user_steps.rb +52 -0
  272. data/features/step_definitions/web_steps.rb +86 -0
  273. data/features/sti_resource.feature +65 -0
  274. data/features/strong_parameters.feature +69 -0
  275. data/features/support/env.rb +129 -0
  276. data/features/support/paths.rb +75 -0
  277. data/features/support/regular_env.rb +7 -0
  278. data/features/support/reload_env.rb +7 -0
  279. data/features/support/selectors.rb +45 -0
  280. data/features/users/logging_in.feature +32 -0
  281. data/features/users/logging_out.feature +29 -0
  282. data/features/users/resetting_password.feature +30 -0
  283. data/gemfiles/rails_42.gemfile +12 -0
  284. data/gemfiles/rails_52.gemfile +15 -0
  285. data/gemfiles/rails_60.gemfile +16 -0
  286. data/gemfiles/rails_61.gemfile +15 -0
  287. data/gemfiles/rails_61_turbolinks.gemfile +15 -0
  288. data/gemfiles/rails_70.gemfile +15 -0
  289. data/gemfiles/rails_70_hotwire.gemfile +15 -0
  290. data/gemfiles/rails_71.gemfile +17 -0
  291. data/lib/active_admin/abstract_view_factory.rb +47 -0
  292. data/lib/active_admin/application.rb +255 -0
  293. data/lib/active_admin/application_settings.rb +42 -0
  294. data/lib/active_admin/asset_registration.rb +29 -0
  295. data/lib/active_admin/authorization_adapter.rb +129 -0
  296. data/lib/active_admin/base_controller/authorization.rb +126 -0
  297. data/lib/active_admin/base_controller/menu.rb +34 -0
  298. data/lib/active_admin/base_controller.rb +91 -0
  299. data/lib/active_admin/batch_actions/controller.rb +45 -0
  300. data/lib/active_admin/batch_actions/resource_extension.rb +151 -0
  301. data/lib/active_admin/batch_actions/views/batch_action_form.rb +45 -0
  302. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +58 -0
  303. data/lib/active_admin/batch_actions/views/selection_cells.rb +38 -0
  304. data/lib/active_admin/batch_actions.rb +16 -0
  305. data/lib/active_admin/callbacks.rb +88 -0
  306. data/lib/active_admin/cancan_adapter.rb +36 -0
  307. data/lib/active_admin/component.rb +5 -0
  308. data/lib/active_admin/controller_action.rb +12 -0
  309. data/lib/active_admin/csv_builder.rb +136 -0
  310. data/lib/active_admin/dependency.rb +96 -0
  311. data/lib/active_admin/deprecation.rb +10 -0
  312. data/lib/active_admin/devise.rb +80 -0
  313. data/lib/active_admin/dsl.rb +193 -0
  314. data/lib/active_admin/dynamic_setting.rb +38 -0
  315. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  316. data/lib/active_admin/engine.rb +22 -0
  317. data/lib/active_admin/error.rb +62 -0
  318. data/lib/active_admin/event.rb +24 -0
  319. data/lib/active_admin/filters/active.rb +29 -0
  320. data/lib/active_admin/filters/active_filter.rb +123 -0
  321. data/lib/active_admin/filters/active_sidebar.rb +50 -0
  322. data/lib/active_admin/filters/dsl.rb +21 -0
  323. data/lib/active_admin/filters/forms.rb +85 -0
  324. data/lib/active_admin/filters/formtastic_addons.rb +79 -0
  325. data/lib/active_admin/filters/resource_extension.rb +153 -0
  326. data/lib/active_admin/filters.rb +11 -0
  327. data/lib/active_admin/form_builder.rb +182 -0
  328. data/lib/active_admin/generators/boilerplate.rb +45 -0
  329. data/lib/active_admin/helpers/collection.rb +19 -0
  330. data/lib/active_admin/helpers/i18n.rb +7 -0
  331. data/lib/active_admin/helpers/optional_display.rb +38 -0
  332. data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
  333. data/lib/active_admin/helpers/scope_chain.rb +23 -0
  334. data/lib/active_admin/inputs/datepicker_input.rb +27 -0
  335. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  336. data/lib/active_admin/inputs/filters/base.rb +44 -0
  337. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  338. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  339. data/lib/active_admin/inputs/filters/date_picker_input.rb +13 -0
  340. data/lib/active_admin/inputs/filters/date_range_input.rb +49 -0
  341. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  342. data/lib/active_admin/inputs/filters/select_input.rb +58 -0
  343. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  344. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  345. data/lib/active_admin/inputs.rb +21 -0
  346. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  347. data/lib/active_admin/localizers.rb +11 -0
  348. data/lib/active_admin/menu.rb +106 -0
  349. data/lib/active_admin/menu_collection.rb +55 -0
  350. data/lib/active_admin/menu_item.rb +79 -0
  351. data/lib/active_admin/namespace.rb +325 -0
  352. data/lib/active_admin/namespace_settings.rb +107 -0
  353. data/lib/active_admin/order_clause.rb +48 -0
  354. data/lib/active_admin/orm/active_record/comments/comment.rb +35 -0
  355. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +14 -0
  356. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +17 -0
  357. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +95 -0
  358. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  359. data/lib/active_admin/orm/active_record/comments.rb +99 -0
  360. data/lib/active_admin/orm/active_record.rb +5 -0
  361. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  362. data/lib/active_admin/orm/mongoid.rb +1 -0
  363. data/lib/active_admin/page.rb +114 -0
  364. data/lib/active_admin/page_controller.rb +29 -0
  365. data/lib/active_admin/page_dsl.rb +35 -0
  366. data/lib/active_admin/page_presenter.rb +32 -0
  367. data/lib/active_admin/pundit_adapter.rb +68 -0
  368. data/lib/active_admin/resource/action_items.rb +120 -0
  369. data/lib/active_admin/resource/attributes.rb +47 -0
  370. data/lib/active_admin/resource/belongs_to.rb +48 -0
  371. data/lib/active_admin/resource/controllers.rb +19 -0
  372. data/lib/active_admin/resource/includes.rb +12 -0
  373. data/lib/active_admin/resource/menu.rb +65 -0
  374. data/lib/active_admin/resource/naming.rb +62 -0
  375. data/lib/active_admin/resource/ordering.rb +11 -0
  376. data/lib/active_admin/resource/page_presenters.rb +90 -0
  377. data/lib/active_admin/resource/pagination.rb +23 -0
  378. data/lib/active_admin/resource/routes.rb +134 -0
  379. data/lib/active_admin/resource/scope_to.rb +74 -0
  380. data/lib/active_admin/resource/scopes.rb +52 -0
  381. data/lib/active_admin/resource/sidebars.rb +32 -0
  382. data/lib/active_admin/resource.rb +215 -0
  383. data/lib/active_admin/resource_collection.rb +72 -0
  384. data/lib/active_admin/resource_controller/action_builder.rb +21 -0
  385. data/lib/active_admin/resource_controller/data_access.rb +341 -0
  386. data/lib/active_admin/resource_controller/decorators.rb +102 -0
  387. data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
  388. data/lib/active_admin/resource_controller/scoping.rb +31 -0
  389. data/lib/active_admin/resource_controller/sidebars.rb +18 -0
  390. data/lib/active_admin/resource_controller/streaming.rb +47 -0
  391. data/lib/active_admin/resource_controller.rb +116 -0
  392. data/lib/active_admin/resource_dsl.rb +221 -0
  393. data/lib/active_admin/router.rb +113 -0
  394. data/lib/active_admin/scope.rb +60 -0
  395. data/lib/active_admin/settings_node.rb +19 -0
  396. data/lib/active_admin/sidebar_section.rb +37 -0
  397. data/lib/active_admin/version.rb +3 -0
  398. data/lib/active_admin/view_factory.rb +10 -0
  399. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
  400. data/lib/active_admin/view_helpers/auto_link_helper.rb +45 -0
  401. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +52 -0
  402. data/lib/active_admin/view_helpers/display_helper.rb +95 -0
  403. data/lib/active_admin/view_helpers/download_format_links_helper.rb +58 -0
  404. data/lib/active_admin/view_helpers/fields_for.rb +50 -0
  405. data/lib/active_admin/view_helpers/flash_helper.rb +14 -0
  406. data/lib/active_admin/view_helpers/form_helper.rb +20 -0
  407. data/lib/active_admin/view_helpers/layout_helper.rb +32 -0
  408. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +97 -0
  409. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  410. data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
  411. data/lib/active_admin/view_helpers/title_helper.rb +11 -0
  412. data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
  413. data/lib/active_admin/view_helpers.rb +21 -0
  414. data/lib/active_admin/views/components/action_link.rb +13 -0
  415. data/lib/active_admin/views/components/active_admin_form.rb +163 -0
  416. data/lib/active_admin/views/components/attributes_panel.rb +23 -0
  417. data/lib/active_admin/views/components/attributes_table.rb +94 -0
  418. data/lib/active_admin/views/components/blank_slate.rb +17 -0
  419. data/lib/active_admin/views/components/columns.rb +161 -0
  420. data/lib/active_admin/views/components/dropdown_menu.rb +71 -0
  421. data/lib/active_admin/views/components/index_list.rb +69 -0
  422. data/lib/active_admin/views/components/menu.rb +32 -0
  423. data/lib/active_admin/views/components/menu_item.rb +58 -0
  424. data/lib/active_admin/views/components/paginated_collection.rb +159 -0
  425. data/lib/active_admin/views/components/panel.rb +38 -0
  426. data/lib/active_admin/views/components/scopes.rb +72 -0
  427. data/lib/active_admin/views/components/sidebar_section.rb +34 -0
  428. data/lib/active_admin/views/components/site_title.rb +28 -0
  429. data/lib/active_admin/views/components/status_tag.rb +88 -0
  430. data/lib/active_admin/views/components/table_for.rb +209 -0
  431. data/lib/active_admin/views/components/tabs.rb +40 -0
  432. data/lib/active_admin/views/index_as_block.rb +36 -0
  433. data/lib/active_admin/views/index_as_blog.rb +155 -0
  434. data/lib/active_admin/views/index_as_grid.rb +80 -0
  435. data/lib/active_admin/views/index_as_table.rb +377 -0
  436. data/lib/active_admin/views.rb +8 -0
  437. data/lib/active_admin.rb +132 -0
  438. data/lib/activeadmin-rails.rb +1 -0
  439. data/lib/bug_report_templates/active_admin_main.rb +110 -0
  440. data/lib/generators/active_admin/assets/assets_generator.rb +14 -0
  441. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  442. data/lib/generators/active_admin/assets/templates/active_admin.scss +17 -0
  443. data/lib/generators/active_admin/devise/devise_generator.rb +68 -0
  444. data/lib/generators/active_admin/install/install_generator.rb +45 -0
  445. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +300 -0
  446. data/lib/generators/active_admin/install/templates/admin_users.rb.erb +28 -0
  447. data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
  448. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +16 -0
  449. data/lib/generators/active_admin/page/USAGE +8 -0
  450. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  451. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  452. data/lib/generators/active_admin/resource/resource_generator.rb +20 -0
  453. data/lib/generators/active_admin/resource/templates/admin.rb.erb +6 -0
  454. data/lib/ransack_ext.rb +20 -0
  455. data/spec/bug_report_templates_spec.rb +28 -0
  456. data/spec/changelog_spec.rb +15 -0
  457. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
  458. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
  459. data/spec/javascripts/fixtures/checkboxes.html +9 -0
  460. data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
  461. data/spec/javascripts/helpers/SpecHelper.js +3 -0
  462. data/spec/javascripts/support/jasmine.yml +74 -0
  463. data/spec/javascripts/support/jasmine_runner.rb +19 -0
  464. data/spec/rails_helper.rb +67 -0
  465. data/spec/requests/default_namespace_spec.rb +81 -0
  466. data/spec/requests/memory_spec.rb +25 -0
  467. data/spec/requests/pages/form_spec.rb +73 -0
  468. data/spec/requests/pages/index_spec.rb +96 -0
  469. data/spec/requests/pages/layout_spec.rb +59 -0
  470. data/spec/requests/pages/show_spec.rb +38 -0
  471. data/spec/requests/stylesheets_spec.rb +18 -0
  472. data/spec/spec_helper.rb +1 -0
  473. data/spec/support/active_admin_integration_spec_helper.rb +79 -0
  474. data/spec/support/active_admin_request_helpers.rb +39 -0
  475. data/spec/support/rails_template.rb +224 -0
  476. data/spec/support/rails_template_with_data.rb +328 -0
  477. data/spec/support/templates/admin/stores.rb +7 -0
  478. data/spec/support/templates/en.yml +8 -0
  479. data/spec/support/templates/manifest.js +3 -0
  480. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  481. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  482. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  483. data/spec/support/templates/policies/application_policy.rb +44 -0
  484. data/spec/support/templates/policies/category_policy.rb +7 -0
  485. data/spec/support/templates/policies/post_policy.rb +15 -0
  486. data/spec/support/templates/policies/store_policy.rb +11 -0
  487. data/spec/support/templates/policies/user_policy.rb +11 -0
  488. data/spec/support/templates/post_decorator.rb +24 -0
  489. data/spec/unit/abstract_view_factory_spec.rb +78 -0
  490. data/spec/unit/action_builder_spec.rb +160 -0
  491. data/spec/unit/active_admin_spec.rb +11 -0
  492. data/spec/unit/application_spec.rb +180 -0
  493. data/spec/unit/asset_registration_spec.rb +52 -0
  494. data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
  495. data/spec/unit/authorization/controller_authorization_spec.rb +43 -0
  496. data/spec/unit/authorization/index_overriding_spec.rb +23 -0
  497. data/spec/unit/auto_link_spec.rb +103 -0
  498. data/spec/unit/batch_actions/resource_spec.rb +84 -0
  499. data/spec/unit/batch_actions/settings_spec.rb +61 -0
  500. data/spec/unit/belongs_to_spec.rb +76 -0
  501. data/spec/unit/cancan_adapter_spec.rb +43 -0
  502. data/spec/unit/comments_spec.rb +204 -0
  503. data/spec/unit/component_spec.rb +18 -0
  504. data/spec/unit/config_shared_examples.rb +59 -0
  505. data/spec/unit/controller_filters_spec.rb +41 -0
  506. data/spec/unit/csv_builder_spec.rb +321 -0
  507. data/spec/unit/dependency_spec.rb +135 -0
  508. data/spec/unit/devise_spec.rb +110 -0
  509. data/spec/unit/dsl_spec.rb +120 -0
  510. data/spec/unit/dynamic_settings_spec.rb +28 -0
  511. data/spec/unit/filters/active_filter_spec.rb +222 -0
  512. data/spec/unit/filters/active_spec.rb +24 -0
  513. data/spec/unit/filters/filter_form_builder_spec.rb +524 -0
  514. data/spec/unit/filters/resource_spec.rb +128 -0
  515. data/spec/unit/form_builder_spec.rb +1013 -0
  516. data/spec/unit/generators/install_spec.rb +31 -0
  517. data/spec/unit/helpers/collection_spec.rb +68 -0
  518. data/spec/unit/helpers/scope_chain_spec.rb +35 -0
  519. data/spec/unit/i18n_spec.rb +29 -0
  520. data/spec/unit/localizers/resource_localizer_spec.rb +36 -0
  521. data/spec/unit/menu_collection_spec.rb +40 -0
  522. data/spec/unit/menu_item_spec.rb +82 -0
  523. data/spec/unit/menu_spec.rb +60 -0
  524. data/spec/unit/namespace/authorization_spec.rb +27 -0
  525. data/spec/unit/namespace/register_page_spec.rb +99 -0
  526. data/spec/unit/namespace/register_resource_spec.rb +162 -0
  527. data/spec/unit/namespace_spec.rb +132 -0
  528. data/spec/unit/order_clause_spec.rb +81 -0
  529. data/spec/unit/page_controller_spec.rb +5 -0
  530. data/spec/unit/page_spec.rb +128 -0
  531. data/spec/unit/pretty_format_spec.rb +133 -0
  532. data/spec/unit/pundit_adapter_spec.rb +98 -0
  533. data/spec/unit/resource/action_items_spec.rb +83 -0
  534. data/spec/unit/resource/attributes_spec.rb +56 -0
  535. data/spec/unit/resource/includes_spec.rb +21 -0
  536. data/spec/unit/resource/menu_spec.rb +18 -0
  537. data/spec/unit/resource/naming_spec.rb +120 -0
  538. data/spec/unit/resource/ordering_spec.rb +35 -0
  539. data/spec/unit/resource/page_presenters_spec.rb +44 -0
  540. data/spec/unit/resource/pagination_spec.rb +38 -0
  541. data/spec/unit/resource/routes_spec.rb +125 -0
  542. data/spec/unit/resource/scopes_spec.rb +50 -0
  543. data/spec/unit/resource/sidebars_spec.rb +43 -0
  544. data/spec/unit/resource_collection_spec.rb +175 -0
  545. data/spec/unit/resource_controller/data_access_spec.rb +234 -0
  546. data/spec/unit/resource_controller/decorators_spec.rb +94 -0
  547. data/spec/unit/resource_controller/sidebars_spec.rb +37 -0
  548. data/spec/unit/resource_controller_spec.rb +290 -0
  549. data/spec/unit/resource_registration_spec.rb +61 -0
  550. data/spec/unit/resource_spec.rb +320 -0
  551. data/spec/unit/routing_spec.rb +211 -0
  552. data/spec/unit/scope_spec.rb +225 -0
  553. data/spec/unit/settings_node_spec.rb +26 -0
  554. data/spec/unit/view_factory_spec.rb +13 -0
  555. data/spec/unit/view_helpers/breadcrumbs_spec.rb +255 -0
  556. data/spec/unit/view_helpers/display_helper_spec.rb +203 -0
  557. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
  558. data/spec/unit/view_helpers/fields_for_spec.rb +50 -0
  559. data/spec/unit/view_helpers/flash_helper_spec.rb +24 -0
  560. data/spec/unit/view_helpers/form_helper_spec.rb +42 -0
  561. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +138 -0
  562. data/spec/unit/views/components/attributes_table_spec.rb +271 -0
  563. data/spec/unit/views/components/batch_action_selector_spec.rb +43 -0
  564. data/spec/unit/views/components/blank_slate_spec.rb +27 -0
  565. data/spec/unit/views/components/columns_spec.rb +187 -0
  566. data/spec/unit/views/components/index_list_spec.rb +49 -0
  567. data/spec/unit/views/components/index_table_for_spec.rb +127 -0
  568. data/spec/unit/views/components/menu_item_spec.rb +29 -0
  569. data/spec/unit/views/components/menu_spec.rb +168 -0
  570. data/spec/unit/views/components/paginated_collection_spec.rb +249 -0
  571. data/spec/unit/views/components/panel_spec.rb +58 -0
  572. data/spec/unit/views/components/sidebar_section_spec.rb +68 -0
  573. data/spec/unit/views/components/site_title_spec.rb +82 -0
  574. data/spec/unit/views/components/status_tag_spec.rb +265 -0
  575. data/spec/unit/views/components/table_for_spec.rb +441 -0
  576. data/spec/unit/views/components/tabs_spec.rb +99 -0
  577. data/spec/unit/views/index_as_blog_spec.rb +76 -0
  578. data/tasks/docs.rake +64 -0
  579. data/tasks/lint.rake +21 -0
  580. data/tasks/local.rake +25 -0
  581. data/tasks/parallel_tests.rake +66 -0
  582. data/tasks/test.rake +24 -0
  583. data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
  584. metadata +1012 -0
data/CHANGELOG.md ADDED
@@ -0,0 +1,514 @@
1
+ # Changelog
2
+
3
+ ## 1.7.0 [☰](https://github.com/varyonic/activeadmin-rails/compare/v1.6.0...v1.7.0)
4
+
5
+ This release replaces Arbre::Pages with a conventional Rails layout and view partials.
6
+ It also allows and encourages implementing Rails controllers explicitly instead of depending on Active Admin meta-programming.
7
+
8
+ ### Enhancements
9
+
10
+ #### Major
11
+
12
+ * Add Webpacker compatibility with opt-in config switch and installation generator. [#5855] by [@sgara]
13
+ * Rewrite CoffeeScript components in ES6. [#5081] by [@javierjulio]
14
+
15
+ * Rails 7.1 support. [#43] by [@varyonic]
16
+ * Add `ActiveAdmin.configure_resource` and `configure_page`. Don't unload manually defined Rails Controller classes. [#40], [#45] by [@varyonic]
17
+ * Extract partial `breadcrumbs`. [#39] by [@varyonic]
18
+ * Add `Page#add_page_route`, `Resource#add_member_route` and `add_collection_route`. [#37] by [@varyonic]
19
+ * Add `Resource#set_page_options`, `add_sidebar_section`. [#35], [#36] by [@varyonic]
20
+ * Use Arbo in place of Arbre. [#31] by [@varyonic]
21
+ * Extract partial `filters_form`. [#28] by [@varyonic]
22
+ * Use Rails partial `_action_items.html.arb` instead of Views::ActionItems component. [#27] by [@varyonic]
23
+ * Add Hotwire support. [#25] by [@varyonic]
24
+ * Make rendering a partial the default behavior for `show`, `new`, `edit`, `index as: table` and `content` [#19], [#20], [#21], [#22], [#23], [#33] by [@varyonic]
25
+ * Use Rails layout for all pages. [#16] by [@varyonic]
26
+
27
+ #### Minor
28
+
29
+ * Fix double modal issue in applications using turbolinks 5. [#5842] by [@sgara]
30
+ * Tabs are not correctly created when using non-transliteratable characters as title. [#5650] by [@panasyuk]
31
+ * Update JS components. [#5121] by [@javierjulio]
32
+ * Remove unused flash JS component. [#5107] by [@javierjulio]
33
+
34
+ * Ransack 4 support. [#42] by [@varyonic]
35
+ * ActionLink view component. [#41] by [@varyonic]
36
+ * Verify Ruby 3.2 support. [#38] by [@varyonic]
37
+ * Extract protected method ResourceController::csv_builder. [#29] by [@varyonic]
38
+ * Accept content_for(:page_title). [#26] by [@varyonic]
39
+ * Invoke named batch action method if defined in controller. [#19] by [@varyonic]
40
+ * Simplify permitted_params implementation. [#18] by [@varyonic]
41
+ * Don't clobber defined controller action method if action DSL block not given. [#17] by [@varyonic]
42
+ * Use template partial to render content of head. [#15] by [@varyonic]
43
+ * Use new render_in strategy added to varyonic/arbre. [#14] by [@varyonic]
44
+
45
+ ### Security Fixes
46
+
47
+ * Prevent leaking hashed passwords via user CSV export and adds a config option for sensitive attributes. [#5486] by [@chrp]
48
+
49
+ ## 1.6.0 [☰](https://github.com/varyonic/activeadmin-rails/compare/v1.5.2...v1.6.0)
50
+
51
+ ### Enhancements
52
+
53
+ * Add Rails 7 Support. [#7235] by [@tagliala]
54
+
55
+ ### Bug Fixes
56
+
57
+ * Fix frozen string error when downloading CSV and streaming disabled. [#7332] by [@deivid-rodriguez]
58
+
59
+ ## 1.5.2 [☰](https://github.com/varyonic/activeadmin-rails/compare/v1.5.1...v1.5.2)
60
+
61
+ * Fix Ruby 2.7 warnings about keyword args. [#6000], [#6237] by [@vcsjones] and [@deivid-rodriguez]
62
+ * Fix CSVBuilder not respecting `ActiveAdmin.application.csv_options = { humanize_name: false }` setting. [#5800] by [@HappyKadaver]
63
+
64
+ ## 1.5.1 [☰](https://github.com/varyonic/activeadmin-rails/compare/v1.5.0...v1.5.1)
65
+
66
+ * More fixes to support final release of Rails 6.0.
67
+
68
+ ## 1.5.0 [☰](https://github.com/varyonic/activeadmin-rails/compare/v1.4.0...v1.5.0)
69
+
70
+ ### Enhancements
71
+
72
+ #### Major
73
+
74
+ * Rails 6.0 support. [#5702] by [@ionut998]
75
+
76
+ ## 1.4.0 [☰](https://github.com/varyonic/activeadmin-rails/compare/v1.3.1...v1.4.0)
77
+
78
+ ### Enhancements
79
+
80
+ #### Minor
81
+ * Fix batch_actions.delete_confirmation translation in zh-CN.yml. [#5453] by [@ShallmentMo]
82
+ * Add some missing italian translations. [#5433] by [@stefsava]
83
+ * Enhance some chinese translations. [#5413] by [@shouya]
84
+ * Add missing filter predicate translations to nb. [#5357] by [@rogerkk]
85
+ * Add missing norwegian comment translations. [#5375] by [@rogerkk]
86
+ * Add missing dutch translations. [#5368] by [@dennisvdvliet]
87
+ * Add missing german translations. [#5341] by [@eikes]
88
+ * Add missing spanish translation. [#5336] by [@mconiglio]
89
+ * Add from and to predicates for russian language. [#5330] by [@glebtv]
90
+ * Fix typo in finnish translation. [#5320] by [@JiiHu]
91
+ * Add missing turkish translations. [#5295] by [@kobeumut]
92
+ * Add missing chinese translations. [#5266] by [@jasl]
93
+ * Allow proc label in datepicker input. [#5408] by [@tiagotex]
94
+ * Add `group` attribute to scopes in order to show them in grouped. [#5359] by [@leio10]
95
+ * Add missing polish translations and improve existing ones. [#5537] by [@Wowu]
96
+ * Add `priority` option to `action_item`. [#5334] by [@andreslemik]
97
+
98
+ ### Bug Fixes
99
+
100
+ * Fixed "create anoter" checkbox styling. [#5324] by [@faucct]
101
+ * Fix `input_html` filter option evaluated only once. [#5376] by [@kjeldahl]
102
+ * Fixed the string representation of the resolved `sort_key` when no explicit `sortable` attribute is passed. [#5464] by [@chumakoff]
103
+ * Fixed docs on the column `sortable` attribute (which actually doesn't have to be explicitly specified when a block is passed to column). [#5464] by [@chumakoff]
104
+ * Add missing I18n for comments. [#5458], [#5461] by [@mauriciopasquier]
105
+ * Fixed `if:` scope option when a lambda is passed. [#5501] by [@deivid-rodriguez]
106
+ * Comment validation adding redundant errors when resource is missing. [#5517] by [@deivid-rodriguez]
107
+ * Fixed resource filtering by association when the resource has custom primary key. [#5446] by [@wasifhossain]
108
+ * Fix menu item link with method delete. [#5583] by [@tiagotex]
109
+
110
+ ## 1.3.1 [☰](https://github.com/activeadmin/activeadmin/compare/v1.3.0...v1.3.1)
111
+
112
+ ### Bug Fixes
113
+
114
+ * gemspec should have more permissive ransack dependency. [#5448] by [@varyonic]
115
+
116
+ ### Removals
117
+
118
+ * Rails 4.2 support has been dropped. [#5104][] by [@javierjulio][] and [@deivid-rodriguez][]
119
+
120
+ ## 1.3.0 [☰](https://github.com/activeadmin/activeadmin/compare/v1.2.1...v1.3.0)
121
+
122
+ ### Enhancements
123
+
124
+ #### Major
125
+
126
+ * Rails 5.2 support [#5343] by [@varyonic], [#5399], [#5401] by [@zorab47]
127
+
128
+ ## 1.2.1 [☰](https://github.com/activeadmin/activeadmin/compare/v1.2.0...v1.2.1)
129
+
130
+ ### Bug Fixes
131
+
132
+ * Resolve issue with [#5275] preventing XSS in filters sidebar. [#5299] by [@faucct]
133
+
134
+ ## 1.2.0 [☰](https://github.com/activeadmin/activeadmin/compare/v1.1.0...v1.2.0)
135
+
136
+ ### Enhancements
137
+
138
+ #### Minor
139
+
140
+ * Do not display pagination info when there are no comments. [#5119] by [@alex-bogomolov]
141
+ * Revert generated config files to pluralized. [#5120] by [@varyonic], [#5137] by [@deivid-rodriguez]
142
+ * Warn when action definition overwrites controller method. [#5167] by [@aarek]
143
+ * Better performance of comments show view. [#5208] by [@dhyegofernando]
144
+ * Mitigate memory bloat [#4118] with CSV exports. [#5251] by [@f1sherman]
145
+ * Fix issue applying custom decorations. [#5253] by [@faucct]
146
+ * Brazilian locale updated. [#5125] by [@renotocn]
147
+ * Japanese locale updated. [#5143] by [@5t111111], [#5157] by [@innparusu95]
148
+ * Italian locale updated. [#5180] by [@blocknotes]
149
+ * Swedish locale updated. [#5187] by [@jawa]
150
+ * Vietnamese locale updated. [#5194] by [@Nguyenanh]
151
+ * Esperanto locale added. [#5210] by [@RobinvanderVliet]
152
+
153
+ ### Bug Fixes
154
+
155
+ * Fix a couple of issues rendering filter labels. [#5223] by [@wspurgin]
156
+ * Prevent NameError when filtering on a namespaced association. [#5240] by [@DanielHeath]
157
+ * Fix undefined method error in Ransack when building filters. [#5238] by [@wspurgin]
158
+ * Fixed [#5198] Prevent XSS on sidebar's current filter rendering. [#5275] by [@deivid-rodriguez]
159
+ * Sanitize display_name. [#5284] by [@markstory]
160
+
161
+ ## 1.1.0 [☰](https://github.com/activeadmin/activeadmin/compare/v1.0.0...v1.1.0)
162
+
163
+ ### Bug Fixes
164
+
165
+ * Fixed [#5093] Handle table prefix & table suffix for `ActiveAdminComment` model
166
+ * Fixed [#4173] by including the default Kaminari templates. [#5069] by [@javierjulio]
167
+ * Fixed [#5043]. Do not crash in sidebar rendering when a default scope is not specified. [#5044] by [@Fivell]
168
+ * Fixed [#3894]. Make tab's component work with non-ascii titles. [#5046] by [@Fivell]
169
+
170
+ ### Removals
171
+
172
+ * Ruby 2.1 support has been dropped. [#5003] by [@deivid-rodriguez]
173
+ * Replaced `sass-rails` with `sass` dependency. [#5037] by [@javierjulio]
174
+ * AA won't work properly with jQuery 1 & 2. Use jQuery 3 instead (`#= require jquery3`
175
+ in `active_admin.js.coffee`)
176
+
177
+ ### Deprecations
178
+
179
+ * Deprecated `type` param from `status_tag` and related CSS classes [#4989] by [@javierjulio]
180
+ * The method signature has changed from:
181
+
182
+ ```ruby
183
+ status_tag(status, :ok, class: 'completed', label: 'on')
184
+ ```
185
+
186
+ to:
187
+
188
+ ```ruby
189
+ status_tag(status, class: 'completed ok', label: 'on')
190
+ ```
191
+
192
+ * The following CSS classes have been deprecated and will be removed in the future:
193
+
194
+ ```css
195
+ .status_tag {
196
+ &.ok, &.published, &.complete, &.completed, &.green { background: #8daa92; }
197
+ &.warn, &.warning, &.orange { background: #e29b20; }
198
+ &.error, &.errored, &.red { background: #d45f53; }
199
+ }
200
+ ```
201
+
202
+ ### Enhancements
203
+
204
+ #### Minor
205
+
206
+ * Support proc as an input_html option value when declaring filters. [#5029] by [@Fivell]
207
+ * Base localization support, better associations handling for active filters sidebar. [#4951] by [@Fivell]
208
+ * Allow AA scopes to return paginated collections. [#4996] by [@Fivell]
209
+ * Added `scopes_show_count` configuration to setup show_count attribute for scopes globally. [#4950] by [@Fivell]
210
+ * Allow custom panel title given with `attributes_table`. [#4940] by [@ajw725]
211
+ * Allow passing a class to `action_item` block. [#4997] by [@Fivell]
212
+ * Add pagination to the comments section. [#5088] by [@alex-bogomolov]
213
+
214
+ ## 1.0.0 [☰](https://github.com/activeadmin/activeadmin/compare/v0.6.3...v1.0.0)
215
+
216
+ ### Breaking Changes
217
+
218
+ * Rename `allow_comments` to `comments` for more consistent naming. [#3695] by [@pranas]
219
+ * JavaScript `window.AA` has been removed, use `window.ActiveAdmin`. [#3606] by [@timoschilling]
220
+ * `f.form_buffers` has been removed. [#3486] by [@varyonic]
221
+ * Iconic has been removed. [#3553] by [@timoschilling]
222
+ * `config.show_comments_in_menu` has been removed, see `config.comments_menu`. [#4187] by [@drn]
223
+ * Rails 3.2 & Ruby 1.9.3 support has been dropped. [#4848] by [@deivid-rodriguez]
224
+ * Ruby 2.0.0 support has been dropped. [#4851] by [@deivid-rodriguez]
225
+ * Rails 4.0 & 4.1 support has been dropped. [#4870] by [@deivid-rodriguez]
226
+
227
+ ### Enhancements
228
+
229
+ #### Major
230
+
231
+ * Migration from Metasearch to Ransack. [#1979] by [@seanlinsley]
232
+ * Rails 4 support. [#2326] by many people :heart:
233
+ * Rails 4.2 support. [#3731] by [@gonzedge] and [@timoschilling]
234
+ * Rails 5 support. [#4254] by [@seanlinsley]
235
+ * Rails 5.1 support. [#4882] by [@varyonic]
236
+
237
+ #### Minor
238
+
239
+ * "Create another" checkbox for the new resource page. [#4477] by [@bolshakov]
240
+ * Page supports belongs_to. [#4759] by [@Fivell] and [@zorab47]
241
+ * Support for custom sorting strategies. [#4768] by [@Fivell]
242
+ * Stream CSV downloads as they're generated. [#3038] by [@craigmcnamara]
243
+ * Disable streaming in development for easier debugging. [#3535] by [@seanlinsley]
244
+ * Improved code reloading. [#3783] by [@chancancode]
245
+ * Do not auto link to inaccessible actions. [#3686] by [@pranas]
246
+ * Allow to enable comments on per-resource basis. [#3695] by [@pranas]
247
+ * Unify DSL for index `actions` and `actions dropdown: true`. [#3463] by [@timoschilling]
248
+ * Add DSL method `includes` for `ActiveRecord::Relation#includes`. [#3464] by [@timoschilling]
249
+ * BOM (byte order mark) configurable for CSV download. [#3519] by [@timoschilling]
250
+ * Column block on table index is now sortable by default. [#3075] by [@dmitry]
251
+ * Allow Arbre to be used inside ActiveAdmin forms. [#3486] by [@varyonic]
252
+ * Make AA ORM-agnostic. [#2545] by [@johnnyshields]
253
+ * Add multi-record support to `attributes_table_for`. [#2544] by [@zorab47]
254
+ * Table CSS classes are now prefixed to prevent clashes. [#2532] by [@TimPetricola]
255
+ * Allow Inherited Resources shorthand for redirection. [#2001] by [@seanlinsley]
256
+
257
+ ```ruby
258
+ controller do
259
+ # Redirects to index page instead of rendering updated resource
260
+ def update
261
+ update!{ collection_path }
262
+ end
263
+ end
264
+ ```
265
+
266
+ * Accept block for download links. [#2040] by [@potatosalad]
267
+
268
+ ```ruby
269
+ index download_links: ->{ can?(:view_all_download_links) || [:pdf] }
270
+ ```
271
+
272
+ * Comments menu can be customized via configuration passed to `config.comments_menu`. [#4187] by [@drn]
273
+ * Added `config.route_options` to namespace to customize routes. [#4731] by [@stereoscott]
274
+
275
+ ### Security Fixes
276
+
277
+ * Prevents access to formats that the user not permitted to see. [#4867] by [@Fivell] and [@timoschilling]
278
+ * Prevents potential DOS attack via Ruby symbols. [#1926] by [@seanlinsley]
279
+ * [this isn't an issue for those using Ruby >= 2.2](http://rubykaigi.org/2014/presentation/S-NarihiroNakamura)
280
+
281
+ ### Bug Fixes
282
+
283
+ * Fixes filters for `has_many :through` relationships. [#2541] by [@shekibobo]
284
+ * "New" action item now only shows up on the index page. bf659bc by [@seanlinsley]
285
+ * Fixes comment creation bug with aliased resources. 9a082486 by [@seanlinsley]
286
+ * Fixes the deletion of `:if` and `:unless` from filters. [#2523] by [@PChambino]
287
+
288
+ ### Deprecations
289
+
290
+ * `ActiveAdmin::Event` (`ActiveAdmin::EventDispatcher`). [#3435] by [@timoschilling]
291
+ `ActiveAdmin::Event` will be removed in a future version, ActiveAdmin switched
292
+ to use `ActiveSupport::Notifications`.
293
+ NOTE: The blog parameters has changed:
294
+
295
+ ```ruby
296
+ ActiveSupport::Notifications.subscribe ActiveAdmin::Application::BeforeLoadEvent do |event, *args|
297
+ # some code
298
+ end
299
+
300
+ ActiveSupport::Notifications.publish ActiveAdmin::Application::BeforeLoadEvent, "some data"
301
+ ```
302
+
303
+ ## Previous Changes
304
+
305
+ Please check [0-6-stable] for previous changes.
306
+
307
+ [0-6-stable]: https://github.com/activeadmin/activeadmin/blob/0-6-stable/CHANGELOG.md
308
+
309
+ [#1926]: https://github.com/activeadmin/activeadmin/issues/1926
310
+ [#1979]: https://github.com/activeadmin/activeadmin/issues/1979
311
+ [#2001]: https://github.com/activeadmin/activeadmin/issues/2001
312
+ [#2040]: https://github.com/activeadmin/activeadmin/issues/2040
313
+ [#2326]: https://github.com/activeadmin/activeadmin/issues/2326
314
+ [#2523]: https://github.com/activeadmin/activeadmin/issues/2523
315
+ [#2532]: https://github.com/activeadmin/activeadmin/issues/2532
316
+ [#2541]: https://github.com/activeadmin/activeadmin/issues/2541
317
+ [#2544]: https://github.com/activeadmin/activeadmin/issues/2544
318
+ [#2545]: https://github.com/activeadmin/activeadmin/issues/2545
319
+ [#3038]: https://github.com/activeadmin/activeadmin/issues/3038
320
+ [#3075]: https://github.com/activeadmin/activeadmin/issues/3075
321
+ [#3463]: https://github.com/activeadmin/activeadmin/issues/3463
322
+ [#3464]: https://github.com/activeadmin/activeadmin/issues/3464
323
+ [#3486]: https://github.com/activeadmin/activeadmin/issues/3486
324
+ [#3519]: https://github.com/activeadmin/activeadmin/issues/3519
325
+ [#3535]: https://github.com/activeadmin/activeadmin/issues/3535
326
+ [#3553]: https://github.com/activeadmin/activeadmin/issues/3553
327
+ [#3606]: https://github.com/activeadmin/activeadmin/issues/3606
328
+ [#3686]: https://github.com/activeadmin/activeadmin/issues/3686
329
+ [#3695]: https://github.com/activeadmin/activeadmin/issues/3695
330
+ [#3731]: https://github.com/activeadmin/activeadmin/issues/3731
331
+ [#3783]: https://github.com/activeadmin/activeadmin/issues/3783
332
+ [#3894]: https://github.com/activeadmin/activeadmin/issues/3894
333
+ [#4118]: https://github.com/activeadmin/activeadmin/issues/4118
334
+ [#4187]: https://github.com/activeadmin/activeadmin/issues/4187
335
+ [#4173]: https://github.com/activeadmin/activeadmin/issues/4173
336
+ [#4254]: https://github.com/activeadmin/activeadmin/issues/4254
337
+ [#5043]: https://github.com/activeadmin/activeadmin/issues/5043
338
+ [#5198]: https://github.com/activeadmin/activeadmin/issues/5198
339
+
340
+ [#3435]: https://github.com/activeadmin/activeadmin/pull/3435
341
+ [#4477]: https://github.com/activeadmin/activeadmin/pull/4477
342
+ [#4731]: https://github.com/activeadmin/activeadmin/pull/4731
343
+ [#4759]: https://github.com/activeadmin/activeadmin/pull/4759
344
+ [#4768]: https://github.com/activeadmin/activeadmin/pull/4768
345
+ [#4848]: https://github.com/activeadmin/activeadmin/pull/4848
346
+ [#4851]: https://github.com/activeadmin/activeadmin/pull/4851
347
+ [#4867]: https://github.com/activeadmin/activeadmin/pull/4867
348
+ [#4870]: https://github.com/activeadmin/activeadmin/pull/4870
349
+ [#4882]: https://github.com/activeadmin/activeadmin/pull/4882
350
+ [#4940]: https://github.com/activeadmin/activeadmin/pull/4940
351
+ [#4950]: https://github.com/activeadmin/activeadmin/pull/4950
352
+ [#4951]: https://github.com/activeadmin/activeadmin/pull/4951
353
+ [#4989]: https://github.com/activeadmin/activeadmin/pull/4989
354
+ [#4996]: https://github.com/activeadmin/activeadmin/pull/4996
355
+ [#4997]: https://github.com/activeadmin/activeadmin/pull/4997
356
+ [#5029]: https://github.com/activeadmin/activeadmin/pull/5029
357
+ [#5003]: https://github.com/activeadmin/activeadmin/pull/5003
358
+ [#5037]: https://github.com/activeadmin/activeadmin/pull/5037
359
+ [#5044]: https://github.com/activeadmin/activeadmin/pull/5044
360
+ [#5046]: https://github.com/activeadmin/activeadmin/pull/5046
361
+ [#5060]: https://github.com/activeadmin/activeadmin/pull/5060
362
+ [#5069]: https://github.com/activeadmin/activeadmin/pull/5069
363
+ [#5081]: https://github.com/activeadmin/activeadmin/pull/5081
364
+ [#5088]: https://github.com/activeadmin/activeadmin/pull/5088
365
+ [#5093]: https://github.com/activeadmin/activeadmin/pull/5093
366
+ [#5104]: https://github.com/activeadmin/activeadmin/pull/5104
367
+ [#5107]: https://github.com/activeadmin/activeadmin/pull/5107
368
+ [#5119]: https://github.com/activeadmin/activeadmin/pull/5119
369
+ [#5120]: https://github.com/activeadmin/activeadmin/pull/5120
370
+ [#5121]: https://github.com/activeadmin/activeadmin/pull/5121
371
+ [#5125]: https://github.com/activeadmin/activeadmin/pull/5125
372
+ [#5137]: https://github.com/activeadmin/activeadmin/pull/5137
373
+ [#5143]: https://github.com/activeadmin/activeadmin/pull/5143
374
+ [#5157]: https://github.com/activeadmin/activeadmin/pull/5157
375
+ [#5167]: https://github.com/activeadmin/activeadmin/pull/5167
376
+ [#5180]: https://github.com/activeadmin/activeadmin/pull/5180
377
+ [#5187]: https://github.com/activeadmin/activeadmin/pull/5187
378
+ [#5194]: https://github.com/activeadmin/activeadmin/pull/5194
379
+ [#5208]: https://github.com/activeadmin/activeadmin/pull/5208
380
+ [#5210]: https://github.com/activeadmin/activeadmin/pull/5210
381
+ [#5251]: https://github.com/activeadmin/activeadmin/pull/5251
382
+ [#5223]: https://github.com/activeadmin/activeadmin/pull/5223
383
+ [#5238]: https://github.com/activeadmin/activeadmin/pull/5238
384
+ [#5240]: https://github.com/activeadmin/activeadmin/pull/5240
385
+ [#5253]: https://github.com/activeadmin/activeadmin/pull/5253
386
+ [#5272]: https://github.com/activeadmin/activeadmin/pull/5272
387
+ [#5275]: https://github.com/activeadmin/activeadmin/pull/5275
388
+ [#5284]: https://github.com/activeadmin/activeadmin/pull/5284
389
+ [#5295]: https://github.com/activeadmin/activeadmin/pull/5295
390
+ [#5299]: https://github.com/activeadmin/activeadmin/pull/5299
391
+ [#5320]: https://github.com/activeadmin/activeadmin/pull/5320
392
+ [#5324]: https://github.com/activeadmin/activeadmin/pull/5324
393
+ [#5330]: https://github.com/activeadmin/activeadmin/pull/5330
394
+ [#5336]: https://github.com/activeadmin/activeadmin/pull/5336
395
+ [#5341]: https://github.com/activeadmin/activeadmin/pull/5341
396
+ [#5343]: https://github.com/activeadmin/activeadmin/pull/5343
397
+ [#5357]: https://github.com/activeadmin/activeadmin/pull/5357
398
+ [#5359]: https://github.com/activeadmin/activeadmin/pull/5359
399
+ [#5368]: https://github.com/activeadmin/activeadmin/pull/5368
400
+ [#5399]: https://github.com/activeadmin/activeadmin/pull/5399
401
+ [#5401]: https://github.com/activeadmin/activeadmin/pull/5401
402
+ [#5408]: https://github.com/activeadmin/activeadmin/pull/5408
403
+ [#5413]: https://github.com/activeadmin/activeadmin/pull/5413
404
+ [#5433]: https://github.com/activeadmin/activeadmin/pull/5433
405
+ [#5446]: https://github.com/activeadmin/activeadmin/pull/5446
406
+ [#5453]: https://github.com/activeadmin/activeadmin/pull/5453
407
+ [#5458]: https://github.com/activeadmin/activeadmin/pull/5458
408
+ [#5461]: https://github.com/activeadmin/activeadmin/pull/5461
409
+ [#5464]: https://github.com/activeadmin/activeadmin/pull/5464
410
+ [#5486]: https://github.com/activeadmin/activeadmin/pull/5486
411
+ [#5501]: https://github.com/activeadmin/activeadmin/pull/5501
412
+ [#5516]: https://github.com/activeadmin/activeadmin/pull/5516
413
+ [#5583]: https://github.com/activeadmin/activeadmin/pull/5583
414
+ [#5842]: https://github.com/activeadmin/activeadmin/pull/5842
415
+ [#5650]: https://github.com/activeadmin/activeadmin/pull/5650
416
+ [#5702]: https://github.com/activeadmin/activeadmin/pull/5702
417
+ [#5800]: https://github.com/activeadmin/activeadmin/pull/5800
418
+ [#6000]: https://github.com/activeadmin/activeadmin/pull/6000
419
+ [#6237]: https://github.com/activeadmin/activeadmin/pull/6237
420
+ [#7235]: https://github.com/activeadmin/activeadmin/pull/7235
421
+ [#7332]: https://github.com/activeadmin/activeadmin/pull/7332
422
+
423
+ [#14]: https://github.com/varyonic/activeadmin-rails/pull/14
424
+ [#15]: https://github.com/varyonic/activeadmin-rails/pull/15
425
+ [#16]: https://github.com/varyonic/activeadmin-rails/pull/16
426
+ [#17]: https://github.com/varyonic/activeadmin-rails/pull/17
427
+ [#18]: https://github.com/varyonic/activeadmin-rails/pull/18
428
+ [#19]: https://github.com/varyonic/activeadmin-rails/pull/19
429
+ [#20]: https://github.com/varyonic/activeadmin-rails/pull/20
430
+ [#21]: https://github.com/varyonic/activeadmin-rails/pull/21
431
+ [#22]: https://github.com/varyonic/activeadmin-rails/pull/22
432
+ [#23]: https://github.com/varyonic/activeadmin-rails/pull/23
433
+ [#25]: https://github.com/varyonic/activeadmin-rails/pull/25
434
+ [#26]: https://github.com/varyonic/activeadmin-rails/pull/26
435
+ [#27]: https://github.com/varyonic/activeadmin-rails/pull/27
436
+ [#28]: https://github.com/varyonic/activeadmin-rails/pull/28
437
+ [#29]: https://github.com/varyonic/activeadmin-rails/pull/29
438
+ [#31]: https://github.com/varyonic/activeadmin-rails/pull/31
439
+ [#33]: https://github.com/varyonic/activeadmin-rails/pull/33
440
+ [#35]: https://github.com/varyonic/activeadmin-rails/pull/35
441
+ [#36]: https://github.com/varyonic/activeadmin-rails/pull/36
442
+ [#37]: https://github.com/varyonic/activeadmin-rails/pull/37
443
+ [#38]: https://github.com/varyonic/activeadmin-rails/pull/38
444
+ [#39]: https://github.com/varyonic/activeadmin-rails/pull/39
445
+ [#40]: https://github.com/varyonic/activeadmin-rails/pull/40
446
+ [#41]: https://github.com/varyonic/activeadmin-rails/pull/41
447
+ [#42]: https://github.com/varyonic/activeadmin-rails/pull/42
448
+ [#43]: https://github.com/varyonic/activeadmin-rails/pull/43
449
+ [#45]: https://github.com/varyonic/activeadmin-rails/pull/45
450
+
451
+ [@5t111111]: https://github.com/5t111111
452
+ [@aarek]: https://github.com/aarek
453
+ [@ajw725]: https://github.com/ajw725
454
+ [@alex-bogomolov]: https://github.com/alex-bogomolov
455
+ [@andreslemik]: https://github.com/andreslemik
456
+ [@blocknotes]: https://github.com/blocknotes
457
+ [@bolshakov]: https://github.com/bolshakov
458
+ [@buren]: https://github.com/buren
459
+ [@chancancode]: https://github.com/chancancode
460
+ [@chrp]: https://github.com/chrp
461
+ [@chumakoff]: https://github.com/chumakoff
462
+ [@craigmcnamara]: https://github.com/craigmcnamara
463
+ [@DanielHeath]: https://github.com/DanielHeath
464
+ [@deivid-rodriguez]: https://github.com/deivid-rodriguez
465
+ [@dennisvdvliet]: https://github.com/dennisvdvliet
466
+ [@dhyegofernando]: https://github.com/dhyegofernando
467
+ [@dkniffin]: https://github.com/dkniffin
468
+ [@dmitry]: https://github.com/dmitry
469
+ [@drn]: https://github.com/drn
470
+ [@eikes]: https://github.com/eikes
471
+ [@f1sherman]: https://github.com/f1sherman
472
+ [@faucct]: https://github.com/faucct
473
+ [@Fivell]: https://github.com/Fivell
474
+ [@glebtv]: https://github.com/glebtv
475
+ [@gonzedge]: https://github.com/gonzedge
476
+ [@HappyKadaver]: https://github.com/HappyKadaver
477
+ [@innparusu95]: https://github.com/innparusu95
478
+ [@ionut998]: https://github.com/ionut998
479
+ [@jasl]: https://github.com/jasl
480
+ [@javierjulio]: https://github.com/javierjulio
481
+ [@jawa]: https://github.com/jawa
482
+ [@JiiHu]: https://github.com/JiiHu
483
+ [@johnnyshields]: https://github.com/johnnyshields
484
+ [@kjeldahl]: https://github.com/kjeldahl
485
+ [@kobeumut]: https://github.com/kobeumut
486
+ [@leio10]: https://github.com/leio10
487
+ [@markstory]: https://github.com/markstory
488
+ [@mauriciopasquier]: https://github.com/mauriciopasquier
489
+ [@mconiglio]: https://github.com/mconiglio
490
+ [@Nguyenanh]: https://github.com/Nguyenanh
491
+ [@panasyuk]: https://github.com/panasyuk
492
+ [@PChambino]: https://github.com/PChambino
493
+ [@potatosalad]: https://github.com/potatosalad
494
+ [@pranas]: https://github.com/pranas
495
+ [@renotocn]: https://github.com/renotocn
496
+ [@RobinvanderVliet]: https://github.com/RobinvanderVliet
497
+ [@rogerkk]: https://github.com/rogerkk
498
+ [@seanlinsley]: https://github.com/seanlinsley
499
+ [@sgara]: https://github.com/sgara
500
+ [@ShallmentMo]: https://github.com/ShallmentMo
501
+ [@shekibobo]: https://github.com/shekibobo
502
+ [@shouya]: https://github.com/shouya
503
+ [@stefsava]: https://github.com/stefsava
504
+ [@tagliala]: https://github.com/tagliala
505
+ [@stereoscott]: https://github.com/stereoscott
506
+ [@tiagotex]: https://github.com/tiagotex
507
+ [@timoschilling]: https://github.com/timoschilling
508
+ [@TimPetricola]: https://github.com/TimPetricola
509
+ [@varyonic]: https://github.com/varyonic
510
+ [@vcsjones]: https://github.com/vcsjones
511
+ [@wasifhossain]: https://github.com/wasifhossain
512
+ [@Wowu]: https://github.com/Wowu
513
+ [@wspurgin]: https://github.com/wspurgin
514
+ [@zorab47]: https://github.com/zorab47
@@ -0,0 +1,22 @@
1
+ # Contributor Code of Conduct
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.
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.
6
+
7
+ Examples of unacceptable behavior by participants include:
8
+
9
+ * The use of sexualized language or imagery
10
+ * Personal attacks
11
+ * Trolling or insulting/derogatory comments
12
+ * 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.
15
+
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.
17
+
18
+ This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
19
+
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.
21
+
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/)