activeadmin 1.0.0 → 2.11.0

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

Potentially problematic release.


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

Files changed (618) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +778 -68
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +80 -82
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +7 -35
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/app/assets/stylesheets/active_admin/_normalize.scss +349 -0
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +3 -4
  13. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  14. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  15. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  16. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  17. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  18. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  19. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  20. data/app/assets/stylesheets/active_admin/components/_tables.scss +5 -3
  21. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -10
  23. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  25. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  26. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  27. data/app/javascript/active_admin/base.js +28 -0
  28. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  29. data/app/javascript/active_admin/ext/jquery.js +9 -0
  30. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  31. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  32. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  33. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  34. data/app/javascript/active_admin/initializers/filters.js +10 -0
  35. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  36. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  37. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  38. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  39. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  40. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  41. data/app/javascript/active_admin/lib/filters.js +39 -0
  42. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  43. data/app/javascript/active_admin/lib/per-page.js +38 -0
  44. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  45. data/app/javascript/active_admin/lib/utils.js +40 -0
  46. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  47. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  48. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  49. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  50. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  51. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  52. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  53. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  54. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  55. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  56. data/app/views/active_admin/page/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/edit.html.arb +1 -0
  58. data/app/views/active_admin/resource/index.html.arb +1 -0
  59. data/app/views/active_admin/resource/new.html.arb +1 -0
  60. data/app/views/active_admin/resource/show.html.arb +1 -0
  61. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  63. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  64. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  65. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  66. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  67. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  68. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  69. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  70. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  71. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  72. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  73. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  74. data/app/views/layouts/active_admin.html.arb +1 -0
  75. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  76. data/config/locales/ar.yml +10 -11
  77. data/config/locales/az.yml +138 -0
  78. data/config/locales/bg.yml +1 -3
  79. data/config/locales/bs.yml +1 -2
  80. data/config/locales/ca.yml +1 -3
  81. data/config/locales/cs.yml +1 -2
  82. data/config/locales/da.yml +2 -3
  83. data/config/locales/de-CH.yml +2 -3
  84. data/config/locales/de.yml +30 -3
  85. data/config/locales/el.yml +2 -3
  86. data/config/locales/en-CA.yml +139 -0
  87. data/config/locales/en-GB.yml +46 -5
  88. data/config/locales/en.yml +32 -8
  89. data/config/locales/eo.yml +145 -0
  90. data/config/locales/es-MX.yml +6 -3
  91. data/config/locales/es.yml +36 -10
  92. data/config/locales/fa.yml +1 -2
  93. data/config/locales/fi.yml +2 -3
  94. data/config/locales/fr.yml +15 -7
  95. data/config/locales/he.yml +53 -7
  96. data/config/locales/hr.yml +1 -2
  97. data/config/locales/hu.yml +5 -2
  98. data/config/locales/id.yml +2 -3
  99. data/config/locales/it.yml +33 -7
  100. data/config/locales/ja.yml +9 -5
  101. data/config/locales/ko.yml +2 -3
  102. data/config/locales/lt.yml +27 -6
  103. data/config/locales/lv.yml +3 -4
  104. data/config/locales/mk.yml +134 -0
  105. data/config/locales/nb.yml +16 -7
  106. data/config/locales/nl.yml +14 -4
  107. data/config/locales/pl.yml +75 -5
  108. data/config/locales/pt-BR.yml +10 -3
  109. data/config/locales/pt-PT.yml +1 -2
  110. data/config/locales/ro.yml +4 -4
  111. data/config/locales/ru.yml +4 -3
  112. data/config/locales/sk.yml +60 -2
  113. data/config/locales/sv-SE.yml +4 -3
  114. data/config/locales/tr.yml +10 -2
  115. data/config/locales/uk.yml +4 -3
  116. data/config/locales/vi.yml +53 -12
  117. data/config/locales/zh-CN.yml +34 -7
  118. data/config/locales/zh-TW.yml +2 -3
  119. data/docs/.gitignore +1 -0
  120. data/docs/0-installation.md +42 -15
  121. data/docs/1-general-configuration.md +46 -4
  122. data/docs/10-custom-pages.md +24 -5
  123. data/docs/11-decorators.md +17 -5
  124. data/docs/12-arbre-components.md +47 -9
  125. data/docs/13-authorization-adapter.md +69 -35
  126. data/docs/14-gotchas.md +41 -22
  127. data/docs/2-resource-customization.md +57 -20
  128. data/docs/3-index-pages/custom-index.md +2 -1
  129. data/docs/3-index-pages/index-as-block.md +0 -5
  130. data/docs/3-index-pages/index-as-blog.md +1 -6
  131. data/docs/3-index-pages/index-as-grid.md +0 -5
  132. data/docs/3-index-pages/index-as-table.md +13 -14
  133. data/docs/3-index-pages.md +47 -12
  134. data/docs/4-csv-format.md +2 -1
  135. data/docs/5-forms.md +65 -22
  136. data/docs/6-show-pages.md +14 -1
  137. data/docs/7-sidebars.md +2 -1
  138. data/docs/8-custom-actions.md +16 -2
  139. data/docs/9-batch-actions.md +5 -3
  140. data/docs/CNAME +1 -1
  141. data/docs/Gemfile +4 -2
  142. data/docs/Gemfile.lock +283 -0
  143. data/docs/_config.yml +3 -1
  144. data/docs/_includes/toc.html +1 -1
  145. data/docs/_includes/top-menu.html +9 -1
  146. data/docs/documentation.md +21 -23
  147. data/docs/images/tidelift.svg +14 -0
  148. data/docs/index.html +110 -9
  149. data/docs/stylesheets/main.css +55 -2
  150. data/lib/active_admin/abstract_view_factory.rb +14 -51
  151. data/lib/active_admin/application.rb +65 -170
  152. data/lib/active_admin/application_settings.rb +43 -0
  153. data/lib/active_admin/asset_registration.rb +1 -0
  154. data/lib/active_admin/authorization_adapter.rb +4 -6
  155. data/lib/active_admin/base_controller/authorization.rb +18 -19
  156. data/lib/active_admin/base_controller/menu.rb +10 -9
  157. data/lib/active_admin/base_controller.rb +12 -12
  158. data/lib/active_admin/batch_actions/controller.rb +6 -5
  159. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  160. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  161. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  162. data/lib/active_admin/batch_actions/views/selection_cells.rb +8 -6
  163. data/lib/active_admin/batch_actions.rb +1 -0
  164. data/lib/active_admin/callbacks.rb +2 -1
  165. data/lib/active_admin/cancan_adapter.rb +2 -1
  166. data/lib/active_admin/collection_decorator.rb +32 -0
  167. data/lib/active_admin/component.rb +1 -0
  168. data/lib/active_admin/controller_action.rb +3 -1
  169. data/lib/active_admin/csv_builder.rb +22 -14
  170. data/lib/active_admin/dependency.rb +15 -78
  171. data/lib/active_admin/deprecation.rb +1 -25
  172. data/lib/active_admin/devise.rb +18 -7
  173. data/lib/active_admin/dsl.rb +5 -11
  174. data/lib/active_admin/dynamic_setting.rb +39 -0
  175. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  176. data/lib/active_admin/engine.rb +16 -7
  177. data/lib/active_admin/error.rb +5 -4
  178. data/lib/active_admin/filters/active.rb +14 -14
  179. data/lib/active_admin/filters/active_filter.rb +124 -0
  180. data/lib/active_admin/filters/active_sidebar.rb +28 -0
  181. data/lib/active_admin/filters/dsl.rb +1 -0
  182. data/lib/active_admin/filters/forms.rb +12 -9
  183. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  184. data/lib/active_admin/filters/resource_extension.rb +32 -35
  185. data/lib/active_admin/filters.rb +8 -5
  186. data/lib/active_admin/form_builder.rb +110 -70
  187. data/lib/active_admin/generators/boilerplate.rb +13 -4
  188. data/lib/active_admin/helpers/collection.rb +2 -0
  189. data/lib/active_admin/helpers/i18n.rb +1 -0
  190. data/lib/active_admin/helpers/optional_display.rb +3 -2
  191. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  192. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  193. data/lib/active_admin/inputs/datepicker_input.rb +14 -6
  194. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  195. data/lib/active_admin/inputs/filters/base.rb +2 -1
  196. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  197. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  198. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  199. data/lib/active_admin/inputs/filters/date_range_input.rb +24 -12
  200. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  201. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  202. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  203. data/lib/active_admin/inputs/filters/text_input.rb +1 -1
  204. data/lib/active_admin/inputs.rb +1 -0
  205. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  206. data/lib/active_admin/localizers.rb +2 -1
  207. data/lib/active_admin/menu.rb +13 -15
  208. data/lib/active_admin/menu_collection.rb +1 -2
  209. data/lib/active_admin/menu_item.rb +11 -38
  210. data/lib/active_admin/namespace.rb +33 -20
  211. data/lib/active_admin/namespace_settings.rb +127 -0
  212. data/lib/active_admin/order_clause.rb +4 -3
  213. data/lib/active_admin/orm/active_record/comments/comment.rb +6 -9
  214. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  215. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  216. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  217. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +37 -24
  218. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  219. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  220. data/lib/active_admin/orm/active_record.rb +2 -1
  221. data/lib/active_admin/orm/mongoid.rb +1 -0
  222. data/lib/active_admin/page.rb +2 -1
  223. data/lib/active_admin/page_controller.rb +2 -1
  224. data/lib/active_admin/page_dsl.rb +2 -1
  225. data/lib/active_admin/page_presenter.rb +3 -1
  226. data/lib/active_admin/pundit_adapter.rb +23 -9
  227. data/lib/active_admin/resource/action_items.rb +16 -6
  228. data/lib/active_admin/resource/attributes.rb +10 -6
  229. data/lib/active_admin/resource/belongs_to.rb +9 -3
  230. data/lib/active_admin/resource/controllers.rb +2 -1
  231. data/lib/active_admin/resource/includes.rb +1 -0
  232. data/lib/active_admin/resource/menu.rb +6 -5
  233. data/lib/active_admin/resource/model.rb +16 -0
  234. data/lib/active_admin/resource/naming.rb +6 -5
  235. data/lib/active_admin/resource/ordering.rb +1 -0
  236. data/lib/active_admin/resource/page_presenters.rb +2 -1
  237. data/lib/active_admin/resource/pagination.rb +1 -0
  238. data/lib/active_admin/resource/routes.rb +26 -15
  239. data/lib/active_admin/resource/scope_to.rb +8 -7
  240. data/lib/active_admin/resource/scopes.rb +5 -3
  241. data/lib/active_admin/resource/sidebars.rb +3 -2
  242. data/lib/active_admin/resource.rb +37 -22
  243. data/lib/active_admin/resource_collection.rb +3 -2
  244. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  245. data/lib/active_admin/resource_controller/data_access.rb +16 -12
  246. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  247. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  248. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  249. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  250. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  251. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  252. data/lib/active_admin/resource_controller.rb +15 -11
  253. data/lib/active_admin/resource_dsl.rb +18 -28
  254. data/lib/active_admin/router.rb +91 -84
  255. data/lib/active_admin/scope.rb +22 -13
  256. data/lib/active_admin/settings_node.rb +20 -0
  257. data/lib/active_admin/sidebar_section.rb +4 -1
  258. data/lib/active_admin/version.rb +2 -1
  259. data/lib/active_admin/view_factory.rb +18 -17
  260. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  261. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  262. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  263. data/lib/active_admin/view_helpers/display_helper.rb +26 -9
  264. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  265. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  266. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  267. data/lib/active_admin/view_helpers/form_helper.rb +2 -1
  268. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  269. data/lib/active_admin/view_helpers/scope_name_helper.rb +17 -0
  270. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  271. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  272. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  273. data/lib/active_admin/view_helpers.rb +3 -1
  274. data/lib/active_admin/views/action_items.rb +2 -1
  275. data/lib/active_admin/views/components/active_admin_form.rb +15 -9
  276. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  277. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  278. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  279. data/lib/active_admin/views/components/columns.rb +1 -0
  280. data/lib/active_admin/views/components/dropdown_menu.rb +9 -11
  281. data/lib/active_admin/views/components/index_list.rb +4 -5
  282. data/lib/active_admin/views/components/menu.rb +33 -0
  283. data/lib/active_admin/views/components/menu_item.rb +59 -0
  284. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  285. data/lib/active_admin/views/components/panel.rb +2 -1
  286. data/lib/active_admin/views/components/scopes.rb +19 -17
  287. data/lib/active_admin/views/components/sidebar.rb +14 -0
  288. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  289. data/lib/active_admin/views/components/site_title.rb +7 -7
  290. data/lib/active_admin/views/components/status_tag.rb +19 -23
  291. data/lib/active_admin/views/components/table_for.rb +22 -29
  292. data/lib/active_admin/views/components/tabs.rb +18 -5
  293. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  294. data/lib/active_admin/views/footer.rb +6 -8
  295. data/lib/active_admin/views/header.rb +4 -16
  296. data/lib/active_admin/views/index_as_block.rb +1 -0
  297. data/lib/active_admin/views/index_as_blog.rb +4 -4
  298. data/lib/active_admin/views/index_as_grid.rb +27 -26
  299. data/lib/active_admin/views/index_as_table.rb +53 -26
  300. data/lib/active_admin/views/pages/base.rb +47 -63
  301. data/lib/active_admin/views/pages/form.rb +1 -0
  302. data/lib/active_admin/views/pages/index.rb +16 -13
  303. data/lib/active_admin/views/pages/layout.rb +1 -0
  304. data/lib/active_admin/views/pages/page.rb +1 -0
  305. data/lib/active_admin/views/pages/show.rb +7 -1
  306. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  307. data/lib/active_admin/views/title_bar.rb +6 -5
  308. data/lib/active_admin/views.rb +2 -1
  309. data/lib/active_admin.rb +70 -68
  310. data/lib/activeadmin.rb +2 -1
  311. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  312. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  313. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  314. data/lib/generators/active_admin/devise/devise_generator.rb +7 -6
  315. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  316. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  317. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -1
  318. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  319. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  320. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  321. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  322. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  323. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  324. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  325. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  326. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  327. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  328. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  329. data/lib/ransack_ext.rb +10 -9
  330. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  331. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  332. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  333. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  334. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  335. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  336. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  337. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  338. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  339. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  340. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  341. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  342. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  343. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  344. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  345. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  346. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  347. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  348. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  349. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  350. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  351. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  352. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  353. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  354. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  355. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  356. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  357. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  358. metadata +158 -580
  359. data/.gitignore +0 -49
  360. data/.hound.yml +0 -14
  361. data/.rubocop.yml +0 -27
  362. data/.travis.yml +0 -66
  363. data/.yardopts +0 -8
  364. data/Appraisals +0 -41
  365. data/Gemfile +0 -49
  366. data/Rakefile +0 -65
  367. data/activeadmin.gemspec +0 -34
  368. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  369. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  370. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  371. data/app/assets/images/active_admin/orderable.png +0 -0
  372. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  373. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  374. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  375. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  376. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  377. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -22
  378. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  379. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
  380. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  381. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -44
  382. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  383. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  384. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  385. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  386. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -42
  387. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  388. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  389. data/codecov.yml +0 -23
  390. data/cucumber.yml +0 -3
  391. data/features/action_item.feature +0 -73
  392. data/features/authorization.feature +0 -64
  393. data/features/authorization_cancan.feature +0 -52
  394. data/features/authorization_pundit.feature +0 -37
  395. data/features/belongs_to.feature +0 -124
  396. data/features/breadcrumb.feature +0 -75
  397. data/features/comments/commenting.feature +0 -158
  398. data/features/comments/viewing_index.feature +0 -19
  399. data/features/create_another.feature +0 -55
  400. data/features/dashboard.feature +0 -16
  401. data/features/decorators.feature +0 -43
  402. data/features/development_reloading.feature +0 -28
  403. data/features/edit_page.feature +0 -116
  404. data/features/favicon.feature +0 -20
  405. data/features/first_boot.feature +0 -16
  406. data/features/footer.feature +0 -28
  407. data/features/global_navigation.feature +0 -29
  408. data/features/i18n.feature +0 -55
  409. data/features/index/batch_actions.feature +0 -218
  410. data/features/index/filters.feature +0 -199
  411. data/features/index/format_as_csv.feature +0 -203
  412. data/features/index/formats.feature +0 -88
  413. data/features/index/index_as_block.feature +0 -15
  414. data/features/index/index_as_blog.feature +0 -69
  415. data/features/index/index_as_grid.feature +0 -45
  416. data/features/index/index_as_table.feature +0 -291
  417. data/features/index/index_blank_slate.feature +0 -83
  418. data/features/index/index_parameters.feature +0 -75
  419. data/features/index/index_scope_to.feature +0 -56
  420. data/features/index/index_scopes.feature +0 -270
  421. data/features/index/page_title.feature +0 -41
  422. data/features/index/pagination.feature +0 -63
  423. data/features/index/switch_index_view.feature +0 -73
  424. data/features/menu.feature +0 -72
  425. data/features/meta_tags.feature +0 -21
  426. data/features/new_page.feature +0 -107
  427. data/features/registering_assets.feature +0 -34
  428. data/features/registering_pages.feature +0 -237
  429. data/features/registering_resources.feature +0 -33
  430. data/features/renamed_resource.feature +0 -30
  431. data/features/root_to.feature +0 -17
  432. data/features/show/columns.feature +0 -40
  433. data/features/show/default_content.feature +0 -44
  434. data/features/show/page_title.feature +0 -58
  435. data/features/show/tabs.feature +0 -27
  436. data/features/sidebar_sections.feature +0 -210
  437. data/features/site_title.feature +0 -47
  438. data/features/specifying_actions.feature +0 -118
  439. data/features/step_definitions/action_item_steps.rb +0 -7
  440. data/features/step_definitions/action_link_steps.rb +0 -20
  441. data/features/step_definitions/additional_web_steps.rb +0 -81
  442. data/features/step_definitions/asset_steps.rb +0 -15
  443. data/features/step_definitions/attribute_steps.rb +0 -18
  444. data/features/step_definitions/batch_action_steps.rb +0 -81
  445. data/features/step_definitions/blog_steps.rb +0 -3
  446. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  447. data/features/step_definitions/column_steps.rb +0 -8
  448. data/features/step_definitions/comment_steps.rb +0 -12
  449. data/features/step_definitions/configuration_steps.rb +0 -100
  450. data/features/step_definitions/dashboard_steps.rb +0 -15
  451. data/features/step_definitions/factory_steps.rb +0 -35
  452. data/features/step_definitions/filter_steps.rb +0 -39
  453. data/features/step_definitions/flash_steps.rb +0 -11
  454. data/features/step_definitions/footer_steps.rb +0 -11
  455. data/features/step_definitions/format_steps.rb +0 -56
  456. data/features/step_definitions/i18n_steps.rb +0 -11
  457. data/features/step_definitions/index_scope_steps.rb +0 -25
  458. data/features/step_definitions/index_views_steps.rb +0 -3
  459. data/features/step_definitions/layout_steps.rb +0 -3
  460. data/features/step_definitions/member_link_steps.rb +0 -7
  461. data/features/step_definitions/menu_steps.rb +0 -11
  462. data/features/step_definitions/meta_tag_steps.rb +0 -3
  463. data/features/step_definitions/pagination_steps.rb +0 -15
  464. data/features/step_definitions/sidebar_steps.rb +0 -11
  465. data/features/step_definitions/site_title_steps.rb +0 -17
  466. data/features/step_definitions/tab_steps.rb +0 -8
  467. data/features/step_definitions/table_steps.rb +0 -116
  468. data/features/step_definitions/user_steps.rb +0 -52
  469. data/features/step_definitions/web_steps.rb +0 -86
  470. data/features/sti_resource.feature +0 -65
  471. data/features/strong_parameters.feature +0 -69
  472. data/features/support/env.rb +0 -121
  473. data/features/support/paths.rb +0 -73
  474. data/features/support/selectors.rb +0 -45
  475. data/features/users/logging_in.feature +0 -36
  476. data/features/users/logging_out.feature +0 -13
  477. data/features/users/resetting_password.feature +0 -34
  478. data/gemfiles/rails_42.gemfile +0 -45
  479. data/gemfiles/rails_50.gemfile +0 -45
  480. data/gemfiles/rails_51.gemfile +0 -45
  481. data/lib/active_admin/event.rb +0 -24
  482. data/lib/active_admin/filters/humanized.rb +0 -68
  483. data/lib/active_admin/helpers/settings.rb +0 -115
  484. data/lib/active_admin/reloader.rb +0 -25
  485. data/lib/bug_report_templates/rails_5_master.rb +0 -118
  486. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  487. data/spec/bug_report_templates_spec.rb +0 -27
  488. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  489. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  490. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  491. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  492. data/spec/javascripts/fixtures/flashes.html +0 -2
  493. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  494. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  495. data/spec/javascripts/support/jasmine.yml +0 -74
  496. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  497. data/spec/rails_helper.rb +0 -62
  498. data/spec/requests/default_namespace_spec.rb +0 -81
  499. data/spec/requests/javascript_spec.rb +0 -22
  500. data/spec/requests/memory_spec.rb +0 -25
  501. data/spec/requests/stylesheets_spec.rb +0 -18
  502. data/spec/spec_helper.rb +0 -12
  503. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  504. data/spec/support/active_admin_request_helpers.rb +0 -39
  505. data/spec/support/jslint.yml +0 -80
  506. data/spec/support/rails_template.rb +0 -182
  507. data/spec/support/rails_template_with_data.rb +0 -68
  508. data/spec/support/templates/admin/stores.rb +0 -7
  509. data/spec/support/templates/en.yml +0 -8
  510. data/spec/support/templates/manifest.js +0 -3
  511. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  512. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  513. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  514. data/spec/support/templates/policies/application_policy.rb +0 -45
  515. data/spec/support/templates/policies/category_policy.rb +0 -7
  516. data/spec/support/templates/policies/post_policy.rb +0 -15
  517. data/spec/support/templates/policies/store_policy.rb +0 -11
  518. data/spec/support/templates/policies/user_policy.rb +0 -11
  519. data/spec/support/templates/post_decorator.rb +0 -11
  520. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  521. data/spec/unit/action_builder_spec.rb +0 -125
  522. data/spec/unit/active_admin_spec.rb +0 -11
  523. data/spec/unit/application_spec.rb +0 -180
  524. data/spec/unit/asset_registration_spec.rb +0 -52
  525. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  526. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  527. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  528. data/spec/unit/auto_link_spec.rb +0 -93
  529. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  530. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  531. data/spec/unit/belongs_to_spec.rb +0 -77
  532. data/spec/unit/cancan_adapter_spec.rb +0 -43
  533. data/spec/unit/comments_spec.rb +0 -176
  534. data/spec/unit/component_spec.rb +0 -18
  535. data/spec/unit/config_shared_examples.rb +0 -59
  536. data/spec/unit/controller_filters_spec.rb +0 -41
  537. data/spec/unit/csv_builder_spec.rb +0 -306
  538. data/spec/unit/dependency_spec.rb +0 -135
  539. data/spec/unit/devise_spec.rb +0 -110
  540. data/spec/unit/dsl_spec.rb +0 -122
  541. data/spec/unit/filters/active_spec.rb +0 -14
  542. data/spec/unit/filters/filter_form_builder_spec.rb +0 -500
  543. data/spec/unit/filters/humanized_spec.rb +0 -64
  544. data/spec/unit/filters/resource_spec.rb +0 -128
  545. data/spec/unit/form_builder_spec.rb +0 -990
  546. data/spec/unit/generators/install_spec.rb +0 -31
  547. data/spec/unit/helpers/collection_spec.rb +0 -68
  548. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  549. data/spec/unit/helpers/settings_spec.rb +0 -30
  550. data/spec/unit/i18n_spec.rb +0 -12
  551. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  552. data/spec/unit/menu_collection_spec.rb +0 -62
  553. data/spec/unit/menu_item_spec.rb +0 -143
  554. data/spec/unit/menu_spec.rb +0 -71
  555. data/spec/unit/namespace/authorization_spec.rb +0 -27
  556. data/spec/unit/namespace/register_page_spec.rb +0 -99
  557. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  558. data/spec/unit/namespace_spec.rb +0 -125
  559. data/spec/unit/order_clause_spec.rb +0 -81
  560. data/spec/unit/page_controller_spec.rb +0 -5
  561. data/spec/unit/page_spec.rb +0 -131
  562. data/spec/unit/pretty_format_spec.rb +0 -82
  563. data/spec/unit/pundit_adapter_spec.rb +0 -98
  564. data/spec/unit/resource/action_items_spec.rb +0 -65
  565. data/spec/unit/resource/attributes_spec.rb +0 -50
  566. data/spec/unit/resource/includes_spec.rb +0 -21
  567. data/spec/unit/resource/menu_spec.rb +0 -18
  568. data/spec/unit/resource/naming_spec.rb +0 -122
  569. data/spec/unit/resource/ordering_spec.rb +0 -38
  570. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  571. data/spec/unit/resource/pagination_spec.rb +0 -38
  572. data/spec/unit/resource/routes_spec.rb +0 -125
  573. data/spec/unit/resource/scopes_spec.rb +0 -50
  574. data/spec/unit/resource/sidebars_spec.rb +0 -43
  575. data/spec/unit/resource_collection_spec.rb +0 -175
  576. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  577. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  578. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  579. data/spec/unit/resource_controller_spec.rb +0 -274
  580. data/spec/unit/resource_registration_spec.rb +0 -61
  581. data/spec/unit/resource_spec.rb +0 -313
  582. data/spec/unit/routing_spec.rb +0 -213
  583. data/spec/unit/scope_spec.rb +0 -209
  584. data/spec/unit/settings_spec.rb +0 -118
  585. data/spec/unit/view_factory_spec.rb +0 -19
  586. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  587. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  588. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  589. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  590. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  591. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  592. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  593. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  594. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  595. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  596. data/spec/unit/views/components/columns_spec.rb +0 -189
  597. data/spec/unit/views/components/index_list_spec.rb +0 -49
  598. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  599. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  600. data/spec/unit/views/components/panel_spec.rb +0 -58
  601. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  602. data/spec/unit/views/components/site_title_spec.rb +0 -78
  603. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  604. data/spec/unit/views/components/table_for_spec.rb +0 -436
  605. data/spec/unit/views/components/tabs_spec.rb +0 -39
  606. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  607. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  608. data/spec/unit/views/pages/form_spec.rb +0 -54
  609. data/spec/unit/views/pages/index_spec.rb +0 -60
  610. data/spec/unit/views/pages/layout_spec.rb +0 -59
  611. data/spec/unit/views/pages/show_spec.rb +0 -32
  612. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  613. data/tasks/docs.rake +0 -37
  614. data/tasks/lint.rake +0 -8
  615. data/tasks/local.rake +0 -25
  616. data/tasks/parallel_tests.rake +0 -66
  617. data/tasks/test.rake +0 -46
  618. data/tasks/yard.rake +0 -9
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  # Build a StatusTag
@@ -5,16 +6,15 @@ module ActiveAdmin
5
6
  builder_method :status_tag
6
7
 
7
8
  def tag_name
8
- 'span'
9
+ "span"
9
10
  end
10
11
 
11
12
  def default_class_name
12
- 'status_tag'
13
+ "status_tag"
13
14
  end
14
15
 
15
- # @overload status_tag(status, type = nil, options = {})
16
+ # @overload status_tag(status, options = {})
16
17
  # @param [String] status the status to display. One of the span classes will be an underscored version of the status.
17
- # @param [Symbol] type type of status. Will become a class of the span. ActiveAdmin provide style for :ok, :warning and :error.
18
18
  # @param [Hash] options
19
19
  # @option options [String] :class to override the default class
20
20
  # @option options [String] :id to override the default id
@@ -26,31 +26,23 @@ module ActiveAdmin
26
26
  # # => <span class='status_tag in_progress'>In Progress</span>
27
27
  #
28
28
  # @example
29
- # status_tag('active', :ok)
30
- # # => <span class='status_tag active ok'>Active</span>
29
+ # status_tag('active', class: 'important', id: 'status_123', label: 'on')
30
+ # # => <span class='status_tag active important' id='status_123'>on</span>
31
31
  #
32
- # @example
33
- # status_tag('active', :ok, class: 'important', id: 'status_123', label: 'on')
34
- # # => <span class='status_tag active ok important' id='status_123'>on</span>
35
- #
36
- def build(*args)
37
- options = args.extract_options!
38
- status = args[0]
39
- type = args[1]
32
+ def build(status, options = {})
40
33
  label = options.delete(:label)
41
34
  classes = options.delete(:class)
42
35
  status = convert_to_boolean_status(status)
43
36
 
44
37
  if status
45
38
  content = label || if s = status.to_s and s.present?
46
- I18n.t "active_admin.status_tag.#{s.downcase}", default: s.titleize
47
- end
39
+ I18n.t "active_admin.status_tag.#{s.downcase}", default: s.titleize
40
+ end
48
41
  end
49
42
 
50
43
  super(content, options)
51
44
 
52
45
  add_class(status_to_class(status)) if status
53
- add_class(type.to_s) if type
54
46
  add_class(classes) if classes
55
47
  end
56
48
 
@@ -58,10 +50,12 @@ module ActiveAdmin
58
50
 
59
51
  def convert_to_boolean_status(status)
60
52
  case status
61
- when true, 'true'
62
- 'Yes'
63
- when false, 'false', nil
64
- 'No'
53
+ when true, "true"
54
+ "Yes"
55
+ when false, "false"
56
+ "No"
57
+ when nil
58
+ "Unset"
65
59
  else
66
60
  status
67
61
  end
@@ -69,10 +63,12 @@ module ActiveAdmin
69
63
 
70
64
  def status_to_class(status)
71
65
  case status
66
+ when "Unset"
67
+ "unset no"
72
68
  when String, Symbol
73
- status.to_s.titleize.gsub(/\s/, '').underscore
69
+ status.to_s.titleize.gsub(/\s/, "").underscore
74
70
  else
75
- ''
71
+ ""
76
72
  end
77
73
  end
78
74
  end
@@ -1,20 +1,22 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class TableFor < Arbre::HTML::Table
4
5
  builder_method :table_for
5
6
 
6
7
  def tag_name
7
- 'table'
8
+ "table"
8
9
  end
9
10
 
10
11
  def build(obj, *attrs)
11
- options = attrs.extract_options!
12
- @sortable = options.delete(:sortable)
13
- @collection = obj.respond_to?(:each) && !obj.is_a?(Hash) ? obj : [obj]
12
+ options = attrs.extract_options!
13
+ @sortable = options.delete(:sortable)
14
+ @collection = obj.respond_to?(:each) && !obj.is_a?(Hash) ? obj : [obj]
14
15
  @resource_class = options.delete(:i18n)
15
16
  @resource_class ||= @collection.klass if @collection.respond_to? :klass
16
- @columns = []
17
- @row_class = options.delete(:row_class)
17
+
18
+ @columns = []
19
+ @row_class = options.delete(:row_class)
18
20
 
19
21
  build_table
20
22
  super(options)
@@ -22,13 +24,13 @@ module ActiveAdmin
22
24
  end
23
25
 
24
26
  def columns(*attrs)
25
- attrs.each {|attr| column(attr) }
27
+ attrs.each { |attr| column(attr) }
26
28
  end
27
29
 
28
30
  def column(*args, &block)
29
31
  options = default_options.merge(args.extract_options!)
30
32
  title = args[0]
31
- data = args[1] || args[0]
33
+ data = args[1] || args[0]
32
34
 
33
35
  col = Column.new(title, data, @resource_class, options, &block)
34
36
  @columns << col
@@ -64,12 +66,12 @@ module ActiveAdmin
64
66
  end
65
67
 
66
68
  def build_table_header(col)
67
- classes = Arbre::HTML::ClassList.new
69
+ classes = Arbre::HTML::ClassList.new
68
70
  sort_key = sortable? && col.sortable? && col.sort_key
69
- params = request.query_parameters.except :page, :order, :commit, :format
71
+ params = request.query_parameters.except :page, :order, :commit, :format
70
72
 
71
- classes << 'sortable' if sort_key
72
- classes << "sorted-#{current_sort[1]}" if sort_key && current_sort[0] == sort_key
73
+ classes << "sortable" if sort_key
74
+ classes << "sorted-#{current_sort[1]}" if sort_key && current_sort[0] == sort_key
73
75
  classes << col.html_class
74
76
 
75
77
  if sort_key
@@ -85,13 +87,13 @@ module ActiveAdmin
85
87
  @tbody = tbody do
86
88
  # Build enough rows for our collection
87
89
  @collection.each do |elem|
88
- classes = [helpers.cycle('odd', 'even')]
90
+ classes = [helpers.cycle("odd", "even")]
89
91
 
90
92
  if @row_class
91
93
  classes << @row_class.call(elem)
92
94
  end
93
95
 
94
- tr(class: classes.flatten.join(' '), id: dom_id_for(elem))
96
+ tr(class: classes.flatten.join(" "), id: dom_id_for(elem))
95
97
  end
96
98
  end
97
99
  end
@@ -125,8 +127,8 @@ module ActiveAdmin
125
127
  # 'desc' it will return 'asc'
126
128
  def order_for_sort_key(sort_key)
127
129
  current_key, current_order = current_sort
128
- return 'desc' unless current_key == sort_key
129
- current_order == 'desc' ? 'asc' : 'desc'
130
+ return "desc" unless current_key == sort_key
131
+ current_order == "desc" ? "asc" : "desc"
130
132
  end
131
133
 
132
134
  def default_options
@@ -137,7 +139,7 @@ module ActiveAdmin
137
139
 
138
140
  class Column
139
141
 
140
- attr_accessor :title, :data , :html_class
142
+ attr_accessor :title, :data, :html_class
141
143
 
142
144
  def initialize(*args, &block)
143
145
  @options = args.extract_options!
@@ -147,9 +149,9 @@ module ActiveAdmin
147
149
  if @options.has_key?(:class)
148
150
  html_classes << @options.delete(:class)
149
151
  elsif @title.present?
150
- html_classes << "col-#{ActiveAdmin::Dependency.rails.parameterize(@title.to_s)}"
152
+ html_classes << "col-#{@title.to_s.parameterize(separator: "_")}"
151
153
  end
152
- @html_class = html_classes.join(' ')
154
+ @html_class = html_classes.join(" ")
153
155
  @data = args[1] || args[0]
154
156
  @data = block if block
155
157
  @resource_class = args[2]
@@ -176,18 +178,9 @@ module ActiveAdmin
176
178
  # to the sortable option:
177
179
  # column :username, sortable: 'other_column_to_sort_on'
178
180
  #
179
- # If you pass a block to be rendered for this column, the column
180
- # will not be sortable unless you pass a string to sortable to
181
- # sort the column on:
182
- #
183
- # column('Username', sortable: 'login'){ @user.pretty_name }
184
- # # => Sort key will be 'login'
185
- #
186
181
  def sort_key
187
182
  # If boolean or nil, use the default sort key.
188
- if @options[:sortable] == true || @options[:sortable] == false
189
- @data.to_s
190
- elsif @options[:sortable].nil?
183
+ if @options[:sortable].nil? || @options[:sortable] == true || @options[:sortable] == false
191
184
  sort_column_name
192
185
  else
193
186
  @options[:sortable].to_s
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class Tabs < ActiveAdmin::Component
@@ -10,19 +11,31 @@ module ActiveAdmin
10
11
  end
11
12
 
12
13
  def build(&block)
13
- @menu = ul(class: 'nav nav-tabs', role: "tablist")
14
- @tabs_content = div(class: 'tab-content')
14
+ @menu = ul(class: "nav nav-tabs", role: "tablist")
15
+ @tabs_content = div(class: "tab-content")
15
16
  end
16
17
 
17
18
  def build_menu_item(title, options, &block)
18
- options = options.reverse_merge({})
19
- li { link_to title, "##{title.parameterize}", options }
19
+ fragment = options.fetch(:id, fragmentize(title))
20
+
21
+ html_options = options.fetch(:html_options, {})
22
+ li html_options do
23
+ link_to title, "##{fragment}"
24
+ end
20
25
  end
21
26
 
22
27
  def build_content_item(title, options, &block)
23
- options = options.reverse_merge(id: title.parameterize)
28
+ options = options.reverse_merge(id: fragmentize(title))
24
29
  div(options, &block)
25
30
  end
31
+
32
+ private
33
+
34
+ def fragmentize(string)
35
+ result = string.parameterize
36
+ result = CGI.escape(string) if result.blank?
37
+ result
38
+ end
26
39
  end
27
40
  end
28
41
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class UnsupportedBrowser < Component
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class Footer < Component
@@ -6,26 +7,23 @@ module ActiveAdmin
6
7
  super id: "footer"
7
8
  @namespace = namespace
8
9
 
9
- if footer?
10
+ if footer_text.present?
10
11
  para footer_text
11
12
  else
12
13
  para powered_by_message
13
14
  end
14
15
  end
15
16
 
16
- def footer?
17
- @namespace.footer.present?
18
- end
19
-
20
17
  private
21
18
 
22
19
  def footer_text
23
- helpers.render_or_call_method_or_proc_on(self, @namespace.footer)
20
+ @footer_text ||= @namespace.footer(self)
24
21
  end
25
22
 
26
23
  def powered_by_message
27
- I18n.t('active_admin.powered_by',
28
- active_admin: link_to("Active Admin", "http://www.activeadmin.info"),
24
+ I18n.t(
25
+ "active_admin.powered_by",
26
+ active_admin: link_to("Active Admin", "https://activeadmin.info"),
29
27
  version: ActiveAdmin::VERSION).html_safe
30
28
  end
31
29
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class Header < Component
@@ -9,22 +10,9 @@ module ActiveAdmin
9
10
  @menu = menu
10
11
  @utility_menu = @namespace.fetch_menu(:utility_navigation)
11
12
 
12
- build_site_title
13
- build_global_navigation
14
- build_utility_navigation
15
- end
16
-
17
-
18
- def build_site_title
19
- insert_tag view_factory.site_title, @namespace
20
- end
21
-
22
- def build_global_navigation
23
- insert_tag view_factory.global_navigation, @menu, class: 'header-item tabs'
24
- end
25
-
26
- def build_utility_navigation
27
- insert_tag view_factory.utility_navigation, @utility_menu, id: "utility_nav", class: 'header-item tabs'
13
+ site_title @namespace
14
+ global_navigation @menu, class: "header-item tabs"
15
+ utility_navigation @utility_menu, id: "utility_nav", class: "header-item tabs"
28
16
  end
29
17
 
30
18
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -27,7 +28,7 @@ module ActiveAdmin
27
28
  # ```
28
29
  #
29
30
  # Second, you can pass a block to the tile option which will then be
30
- # used as the contents fo the title. The resource being rendered
31
+ # used as the contents of the title. The resource being rendered
31
32
  # is passed in to the block. For Example:
32
33
  #
33
34
  # ```ruby
@@ -89,7 +90,6 @@ module ActiveAdmin
89
90
  @title
90
91
  end
91
92
 
92
-
93
93
  # Setter method for the configuration of the body
94
94
  #
95
95
  def body(method = nil, &block)
@@ -124,7 +124,7 @@ module ActiveAdmin
124
124
  if @title
125
125
  h3 do
126
126
  a(href: resource_path(post)) do
127
- render_method_on_post_or_call_proc post, @title
127
+ render_method_on_post_or_call_proc post, @title
128
128
  end
129
129
  end
130
130
  else
@@ -136,7 +136,7 @@ module ActiveAdmin
136
136
 
137
137
  def build_body(post)
138
138
  if @body
139
- div class: 'content' do
139
+ div class: "content" do
140
140
  render_method_on_post_or_call_proc post, @body
141
141
  end
142
142
  end
@@ -1,31 +1,32 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
4
- # # Index as a Grid
5
- #
6
- # Sometimes you want to display the index screen for a set of resources as a grid
7
- # (possibly a grid of thumbnail images). To do so, use the :grid option for the
8
- # index block.
9
- #
10
- # ```ruby
11
- # index as: :grid do |product|
12
- # link_to image_tag(product.image_path), admin_product_path(product)
13
- # end
14
- # ```
15
- #
16
- # The block is rendered within a cell in the grid once for each resource in the
17
- # collection. The resource is passed into the block for you to use in the view.
18
- #
19
- # You can customize the number of columns that are rendered using the columns
20
- # option:
21
- #
22
- # ```ruby
23
- # index as: :grid, columns: 5 do |product|
24
- # link_to image_tag(product.image_path), admin_product_path(product)
25
- # end
26
- # ```
27
- #
28
- class IndexAsGrid < ActiveAdmin::Component
5
+ # # Index as a Grid
6
+ #
7
+ # Sometimes you want to display the index screen for a set of resources as a grid
8
+ # (possibly a grid of thumbnail images). To do so, use the :grid option for the
9
+ # index block.
10
+ #
11
+ # ```ruby
12
+ # index as: :grid do |product|
13
+ # link_to image_tag(product.image_path), admin_product_path(product)
14
+ # end
15
+ # ```
16
+ #
17
+ # The block is rendered within a cell in the grid once for each resource in the
18
+ # collection. The resource is passed into the block for you to use in the view.
19
+ #
20
+ # You can customize the number of columns that are rendered using the columns
21
+ # option:
22
+ #
23
+ # ```ruby
24
+ # index as: :grid, columns: 5 do |product|
25
+ # link_to image_tag(product.image_path), admin_product_path(product)
26
+ # end
27
+ # ```
28
+ #
29
+ class IndexAsGrid < ActiveAdmin::Component
29
30
 
30
31
  def build(page_presenter, collection)
31
32
  @page_presenter = page_presenter
@@ -68,7 +69,7 @@ module ActiveAdmin
68
69
  end
69
70
 
70
71
  def build_empty_cell
71
- td '&nbsp;'.html_safe
72
+ td "&nbsp;".html_safe
72
73
  end
73
74
 
74
75
  def default_number_of_columns
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -110,7 +111,8 @@ module ActiveAdmin
110
111
  # end
111
112
  # ```
112
113
  #
113
- # In addition, you can insert the position of the row in the greater collection by using the index_column special command:
114
+ # In addition, you can insert the position of the row in the greater
115
+ # collection by using the index_column special command:
114
116
  #
115
117
  # ```ruby
116
118
  # index do
@@ -120,7 +122,8 @@ module ActiveAdmin
120
122
  # end
121
123
  # ```
122
124
  #
123
- # index_column take an optional offset parameter to allow a developer to set the starting number for the index (default is 1).
125
+ # index_column take an optional offset parameter to allow a developer to set
126
+ # the starting number for the index (default is 1).
124
127
  #
125
128
  # ## Sorting
126
129
  #
@@ -128,9 +131,7 @@ module ActiveAdmin
128
131
  # sortable by default. If you are creating a custom column, you may need to give
129
132
  # Active Admin a hint for how to sort the table.
130
133
  #
131
- # If a column is defined using a block, you must pass the key to turn on sorting. The key
132
- # is the attribute which gets used to sort objects using Active Record.
133
- #
134
+ # You can pass the key specifying the attribute which gets used to sort objects using Active Record.
134
135
  # By default, this is the column on the resource's table that the attribute corresponds to.
135
136
  # Otherwise, any attribute that the resource collection responds to can be used.
136
137
  #
@@ -159,6 +160,24 @@ module ActiveAdmin
159
160
  # end
160
161
  # ```
161
162
  #
163
+ # ## Custom sorting
164
+ #
165
+ # It is also possible to use database specific expressions and options for sorting by column
166
+ #
167
+ # ```ruby
168
+ # order_by(:title) do |order_clause|
169
+ # if order_clause.order == 'desc'
170
+ # [order_clause.to_sql, 'NULLS LAST'].join(' ')
171
+ # else
172
+ # [order_clause.to_sql, 'NULLS FIRST'].join(' ')
173
+ # end
174
+ # end
175
+ #
176
+ # index do
177
+ # column :title
178
+ # end
179
+ # ```
180
+ #
162
181
  # ## Associated Sorting
163
182
  #
164
183
  # You're normally able to sort columns alphabetically, but by default you
@@ -174,6 +193,13 @@ module ActiveAdmin
174
193
  # end
175
194
  # ```
176
195
  #
196
+ # You can also define associated objects to include outside of the
197
+ # `scoped_collection` method:
198
+ #
199
+ # ```ruby
200
+ # includes :publisher
201
+ # ```
202
+ #
177
203
  # Then it's simple to sort by any Publisher attribute from within the index table:
178
204
  #
179
205
  # ```ruby
@@ -253,13 +279,13 @@ module ActiveAdmin
253
279
  # Display a column for checkbox
254
280
  def selectable_column
255
281
  return unless active_admin_config.batch_actions.any?
256
- column resource_selection_toggle_cell, class: 'col-selectable', sortable: false do |resource|
282
+ column resource_selection_toggle_cell, class: "col-selectable", sortable: false do |resource|
257
283
  resource_selection_cell resource
258
284
  end
259
285
  end
260
286
 
261
287
  def index_column(start_value = 1)
262
- column '#', class: 'col-index', sortable: false do |resource|
288
+ column "#", class: "col-index", sortable: false do |resource|
263
289
  @collection.offset_value + @collection.index(resource) + start_value
264
290
  end
265
291
  end
@@ -268,9 +294,9 @@ module ActiveAdmin
268
294
  def id_column
269
295
  raise "#{resource_class.name} has no primary_key!" unless resource_class.primary_key
270
296
  column(resource_class.human_attribute_name(resource_class.primary_key), sortable: resource_class.primary_key) do |resource|
271
- if controller.action_methods.include?('show')
297
+ if controller.action_methods.include?("show")
272
298
  link_to resource.id, resource_path(resource), class: "resource_id_link"
273
- elsif controller.action_methods.include?('edit')
299
+ elsif controller.action_methods.include?("edit")
274
300
  link_to resource.id, edit_resource_path(resource), class: "resource_id_link"
275
301
  else
276
302
  resource.id
@@ -279,7 +305,7 @@ module ActiveAdmin
279
305
  end
280
306
 
281
307
  def default_actions
282
- raise '`default_actions` is no longer provided in ActiveAdmin 1.x. Use `actions` instead.'
308
+ raise "`default_actions` is no longer provided in ActiveAdmin 1.x. Use `actions` instead."
283
309
  end
284
310
 
285
311
  # Add links to perform actions.
@@ -319,12 +345,12 @@ module ActiveAdmin
319
345
  #
320
346
  # ```
321
347
  def actions(options = {}, &block)
322
- name = options.delete(:name) { '' }
323
- defaults = options.delete(:defaults) { true }
324
- dropdown = options.delete(:dropdown) { false }
325
- dropdown_name = options.delete(:dropdown_name) { I18n.t 'active_admin.dropdown_actions.button_label', default: 'Actions' }
348
+ name = options.delete(:name) { "" }
349
+ defaults = options.delete(:defaults) { true }
350
+ dropdown = options.delete(:dropdown) { false }
351
+ dropdown_name = options.delete(:dropdown_name) { I18n.t "active_admin.dropdown_actions.button_label", default: "Actions" }
326
352
 
327
- options[:class] ||= 'col-actions'
353
+ options[:class] ||= "col-actions"
328
354
 
329
355
  column name, options do |resource|
330
356
  if dropdown
@@ -344,30 +370,31 @@ module ActiveAdmin
344
370
  end
345
371
  end
346
372
 
347
- private
373
+ private
348
374
 
349
375
  def defaults(resource, options = {})
350
- if controller.action_methods.include?('show') && authorized?(ActiveAdmin::Auth::READ, resource)
351
- item I18n.t('active_admin.view'), resource_path(resource), class: "view_link #{options[:css_class]}", title: I18n.t('active_admin.view')
376
+ localizer = ActiveAdmin::Localizers.resource(active_admin_config)
377
+ if controller.action_methods.include?("show") && authorized?(ActiveAdmin::Auth::READ, resource)
378
+ item localizer.t(:view), resource_path(resource), class: "view_link #{options[:css_class]}", title: localizer.t(:view)
352
379
  end
353
- if controller.action_methods.include?('edit') && authorized?(ActiveAdmin::Auth::UPDATE, resource)
354
- item I18n.t('active_admin.edit'), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: I18n.t('active_admin.edit')
380
+ if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::UPDATE, resource)
381
+ item localizer.t(:edit), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: localizer.t(:edit)
355
382
  end
356
- if controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, resource)
357
- item I18n.t('active_admin.delete'), resource_path(resource), class: "delete_link #{options[:css_class]}", title: I18n.t('active_admin.delete'),
358
- method: :delete, data: {confirm: I18n.t('active_admin.delete_confirmation')}
383
+ if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
384
+ item localizer.t(:delete), resource_path(resource), class: "delete_link #{options[:css_class]}", title: localizer.t(:delete),
385
+ method: :delete, data: { confirm: localizer.t(:delete_confirmation) }
359
386
  end
360
387
  end
361
388
 
362
389
  class TableActions < ActiveAdmin::Component
363
390
  builder_method :table_actions
364
391
 
365
- def item *args
366
- text_node link_to *args
392
+ def item *args, **kwargs
393
+ text_node link_to(*args, **kwargs)
367
394
  end
368
395
  end
369
396
  end # IndexTableFor
370
397
 
371
- end # IndexAsTable
398
+ end
372
399
  end
373
400
  end