activeadmin 3.4.0 → 4.0.0.beta18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -102
  3. data/CONTRIBUTING.md +32 -117
  4. data/README.md +17 -30
  5. data/UPGRADING.md +241 -0
  6. data/app/assets/config/active_admin_manifest.js +2 -0
  7. data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +1 -1
  8. data/app/controllers/active_admin/base_controller/menu.rb +39 -0
  9. data/{lib → app/controllers}/active_admin/base_controller.rb +46 -18
  10. data/{lib → app/controllers}/active_admin/page_controller.rb +0 -4
  11. data/{lib → app/controllers}/active_admin/resource_controller/action_builder.rb +1 -1
  12. data/{lib → app/controllers}/active_admin/resource_controller/data_access.rb +11 -6
  13. data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
  14. data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +4 -4
  15. data/app/controllers/active_admin/resource_controller.rb +102 -0
  16. data/app/helpers/active_admin/auto_link_helper.rb +66 -0
  17. data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
  18. data/app/helpers/active_admin/display_helper.rb +117 -0
  19. data/app/helpers/active_admin/form_helper.rb +95 -0
  20. data/app/helpers/active_admin/index_helper.rb +40 -0
  21. data/app/helpers/active_admin/layout_helper.rb +63 -0
  22. data/app/javascript/active_admin/features/batch_actions.js +95 -0
  23. data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
  24. data/app/javascript/active_admin/features/filters.js +34 -0
  25. data/app/javascript/active_admin/features/has_many.js +28 -0
  26. data/app/javascript/active_admin/features/main_menu.js +12 -0
  27. data/app/javascript/active_admin/features/per_page.js +9 -0
  28. data/app/javascript/active_admin/utils/dom.js +17 -0
  29. data/app/javascript/active_admin.js +10 -0
  30. data/app/views/active_admin/_flash_messages.html.erb +22 -0
  31. data/app/views/active_admin/_html_head.html.erb +13 -0
  32. data/app/views/active_admin/_main_navigation.html.erb +28 -0
  33. data/app/views/active_admin/_page_header.html.erb +27 -0
  34. data/app/views/active_admin/_sidebar.html.erb +5 -0
  35. data/app/views/active_admin/_site_footer.html.erb +7 -0
  36. data/app/views/active_admin/_site_header.html.erb +30 -0
  37. data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
  38. data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
  39. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  40. data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
  41. data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
  42. data/app/views/active_admin/devise/shared/_links.erb +3 -1
  43. data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
  44. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
  45. data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
  46. data/app/views/active_admin/kaminari/_page.html.erb +14 -0
  47. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
  48. data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
  49. data/app/views/active_admin/page/index.html.arb +5 -2
  50. data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
  51. data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
  52. data/app/views/active_admin/resource/_form.html.arb +15 -0
  53. data/app/views/active_admin/resource/_form_default.html.arb +11 -0
  54. data/app/views/active_admin/resource/_index_as_table_default.html.arb +8 -0
  55. data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
  56. data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
  57. data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
  58. data/app/views/active_admin/resource/_show_default.html.arb +2 -0
  59. data/app/views/active_admin/resource/edit.html.arb +1 -2
  60. data/app/views/active_admin/resource/index.html.arb +94 -2
  61. data/app/views/active_admin/resource/new.html.arb +1 -2
  62. data/app/views/active_admin/resource/show.html.arb +12 -2
  63. data/app/views/active_admin/shared/_action_items.html.erb +3 -0
  64. data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
  65. data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
  66. data/app/views/active_admin/shared/_sidebar_section.html.arb +6 -0
  67. data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
  68. data/app/views/layouts/active_admin.html.erb +20 -0
  69. data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
  70. data/config/importmap.rb +5 -0
  71. data/config/locales/ar.yml +136 -116
  72. data/config/locales/az.yml +103 -118
  73. data/config/locales/bg.yml +91 -99
  74. data/config/locales/bs.yml +95 -101
  75. data/config/locales/ca.yml +131 -86
  76. data/config/locales/cs.yml +82 -90
  77. data/config/locales/da.yml +102 -117
  78. data/config/locales/de.yml +130 -141
  79. data/config/locales/el.yml +94 -106
  80. data/config/locales/en-CA.yml +104 -119
  81. data/config/locales/en-GB.yml +104 -119
  82. data/config/locales/en.yml +134 -140
  83. data/config/locales/eo.yml +107 -123
  84. data/config/locales/es-MX.yml +70 -78
  85. data/config/locales/es.yml +129 -138
  86. data/config/locales/fa.yml +91 -99
  87. data/config/locales/fi.yml +84 -92
  88. data/config/locales/fr.yml +135 -120
  89. data/config/locales/he.yml +103 -118
  90. data/config/locales/hr.yml +95 -103
  91. data/config/locales/hu.yml +76 -81
  92. data/config/locales/id.yml +97 -112
  93. data/config/locales/it.yml +134 -140
  94. data/config/locales/ja.yml +109 -120
  95. data/config/locales/ko.yml +136 -101
  96. data/config/locales/lt.yml +106 -121
  97. data/config/locales/lv.yml +70 -75
  98. data/config/locales/mk.yml +100 -114
  99. data/config/locales/nb.yml +98 -109
  100. data/config/locales/nl.yml +113 -122
  101. data/config/locales/pl.yml +137 -146
  102. data/config/locales/pt-BR.yml +134 -121
  103. data/config/locales/pt-PT.yml +71 -76
  104. data/config/locales/ro.yml +74 -79
  105. data/config/locales/ru.yml +142 -122
  106. data/config/locales/sk.yml +131 -146
  107. data/config/locales/sv-SE.yml +126 -141
  108. data/config/locales/tr.yml +105 -120
  109. data/config/locales/uk.yml +140 -119
  110. data/config/locales/vi.yml +125 -140
  111. data/config/locales/zh-CN.yml +135 -141
  112. data/config/locales/zh-TW.yml +136 -116
  113. data/lib/active_admin/application.rb +6 -14
  114. data/lib/active_admin/application_settings.rb +1 -1
  115. data/lib/active_admin/async_count.rb +23 -0
  116. data/lib/active_admin/batch_actions/controller.rb +1 -4
  117. data/lib/active_admin/batch_actions/resource_extension.rb +8 -15
  118. data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -7
  119. data/lib/active_admin/batch_actions/views/selection_cells.rb +3 -3
  120. data/lib/active_admin/batch_actions.rb +4 -9
  121. data/lib/active_admin/callbacks.rb +6 -4
  122. data/lib/active_admin/collection_decorator.rb +1 -1
  123. data/lib/active_admin/component.rb +0 -1
  124. data/lib/active_admin/csv_builder.rb +2 -2
  125. data/lib/active_admin/devise.rb +3 -3
  126. data/lib/active_admin/dsl.rb +3 -3
  127. data/lib/active_admin/dynamic_settings_node.rb +6 -6
  128. data/lib/active_admin/engine.rb +23 -7
  129. data/lib/active_admin/filters/active.rb +8 -6
  130. data/lib/active_admin/filters/active_filter.rb +2 -10
  131. data/lib/active_admin/filters/forms.rb +1 -45
  132. data/lib/active_admin/filters/resource_extension.rb +18 -10
  133. data/lib/active_admin/filters.rb +5 -7
  134. data/lib/active_admin/form_builder.rb +14 -17
  135. data/lib/active_admin/helpers/optional_display.rb +1 -1
  136. data/lib/active_admin/inputs/filters/base/search_method_select.rb +10 -12
  137. data/lib/active_admin/inputs/filters/base.rb +1 -1
  138. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
  139. data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
  140. data/lib/active_admin/inputs.rb +0 -3
  141. data/lib/active_admin/localizers.rb +1 -1
  142. data/lib/active_admin/menu.rb +10 -7
  143. data/lib/active_admin/menu_collection.rb +1 -1
  144. data/lib/active_admin/menu_item.rb +24 -3
  145. data/lib/active_admin/namespace.rb +3 -45
  146. data/lib/active_admin/namespace_settings.rb +3 -36
  147. data/lib/active_admin/order_clause.rb +4 -1
  148. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +4 -76
  149. data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
  150. data/lib/active_admin/orm/active_record/comments.rb +13 -8
  151. data/lib/active_admin/orm/active_record.rb +1 -1
  152. data/lib/active_admin/pundit_adapter.rb +3 -3
  153. data/lib/active_admin/resource/action_items.rb +18 -23
  154. data/lib/active_admin/resource/naming.rb +2 -3
  155. data/lib/active_admin/resource/page_presenters.rb +2 -2
  156. data/lib/active_admin/resource/sidebars.rb +1 -1
  157. data/lib/active_admin/resource.rb +17 -16
  158. data/lib/active_admin/resource_collection.rb +1 -1
  159. data/lib/active_admin/resource_dsl.rb +3 -3
  160. data/lib/active_admin/scope.rb +11 -1
  161. data/lib/active_admin/settings_node.rb +1 -1
  162. data/lib/active_admin/sidebar_section.rb +0 -5
  163. data/lib/active_admin/version.rb +1 -1
  164. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +1 -1
  165. data/lib/active_admin/view_helpers.rb +0 -12
  166. data/lib/active_admin/views/components/active_admin_form.rb +21 -29
  167. data/lib/active_admin/views/components/attributes_table.rb +14 -16
  168. data/lib/active_admin/views/components/index_list.rb +10 -23
  169. data/lib/active_admin/views/components/paginated_collection.rb +34 -39
  170. data/lib/active_admin/views/components/panel.rb +3 -11
  171. data/lib/active_admin/views/components/scopes.rb +39 -26
  172. data/lib/active_admin/views/components/status_tag.rb +22 -19
  173. data/lib/active_admin/views/components/table_for.rb +25 -25
  174. data/lib/active_admin/views/index_as_table.rb +39 -101
  175. data/lib/active_admin.rb +16 -15
  176. data/lib/activeadmin.rb +1 -1
  177. data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
  178. data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
  179. data/lib/generators/active_admin/assets/templates/tailwind.config.js +21 -0
  180. data/lib/generators/active_admin/devise/devise_generator.rb +2 -2
  181. data/lib/generators/active_admin/install/install_generator.rb +2 -8
  182. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
  183. data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
  184. data/lib/generators/active_admin/page/page_generator.rb +0 -1
  185. data/lib/generators/active_admin/resource/resource_generator.rb +50 -7
  186. data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
  187. data/lib/generators/active_admin/views_generator.rb +18 -0
  188. data/plugin.js +414 -0
  189. data/vendor/bundle/offense.rb +1 -0
  190. data/vendor/javascript/flowbite.js +1 -0
  191. data/vendor/javascript/rails_ujs_esm.js +1 -0
  192. metadata +80 -207
  193. data/app/assets/javascripts/active_admin/base.js +0 -517
  194. data/app/assets/stylesheets/active_admin/_base.scss +0 -57
  195. data/app/assets/stylesheets/active_admin/_forms.scss +0 -315
  196. data/app/assets/stylesheets/active_admin/_header.scss +0 -188
  197. data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
  198. data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
  199. data/app/assets/stylesheets/active_admin/_print.scss +0 -287
  200. data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
  201. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
  202. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
  203. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
  204. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
  205. data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
  206. data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
  207. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
  208. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -154
  209. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
  210. data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
  211. data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
  212. data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
  213. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
  214. data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -58
  215. data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
  216. data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
  217. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
  218. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -70
  219. data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
  220. data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -68
  221. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
  222. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
  223. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
  224. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
  225. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
  226. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
  227. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
  228. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
  229. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
  230. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
  231. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
  232. data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
  233. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
  234. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -43
  235. data/app/javascript/active_admin/base.js +0 -28
  236. data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
  237. data/app/javascript/active_admin/ext/jquery.js +0 -9
  238. data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
  239. data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
  240. data/app/javascript/active_admin/initializers/datepicker.js +0 -16
  241. data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
  242. data/app/javascript/active_admin/initializers/filters.js +0 -10
  243. data/app/javascript/active_admin/initializers/has-many.js +0 -98
  244. data/app/javascript/active_admin/initializers/per-page.js +0 -13
  245. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
  246. data/app/javascript/active_admin/initializers/tabs.js +0 -6
  247. data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
  248. data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
  249. data/app/javascript/active_admin/lib/filters.js +0 -39
  250. data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
  251. data/app/javascript/active_admin/lib/per-page.js +0 -38
  252. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
  253. data/app/javascript/active_admin/lib/utils.js +0 -40
  254. data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
  255. data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
  256. data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
  257. data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
  258. data/app/views/kaminari/active_admin/_page.html.erb +0 -12
  259. data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
  260. data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
  261. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
  262. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
  263. data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
  264. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
  265. data/app/views/layouts/active_admin.html.arb +0 -2
  266. data/config/locales/de-CH.yml +0 -94
  267. data/lib/active_admin/abstract_view_factory.rb +0 -48
  268. data/lib/active_admin/asset_registration.rb +0 -30
  269. data/lib/active_admin/base_controller/menu.rb +0 -35
  270. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
  271. data/lib/active_admin/filters/active_sidebar.rb +0 -28
  272. data/lib/active_admin/generators/boilerplate.rb +0 -54
  273. data/lib/active_admin/helpers/collection.rb +0 -21
  274. data/lib/active_admin/helpers/i18n.rb +0 -8
  275. data/lib/active_admin/inputs/datepicker_input.rb +0 -28
  276. data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
  277. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
  278. data/lib/active_admin/orm/mongoid.rb +0 -2
  279. data/lib/active_admin/resource_controller/sidebars.rb +0 -19
  280. data/lib/active_admin/resource_controller.rb +0 -68
  281. data/lib/active_admin/view_factory.rb +0 -28
  282. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
  283. data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
  284. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
  285. data/lib/active_admin/view_helpers/display_helper.rb +0 -119
  286. data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
  287. data/lib/active_admin/view_helpers/fields_for.rb +0 -51
  288. data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
  289. data/lib/active_admin/view_helpers/form_helper.rb +0 -21
  290. data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
  291. data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
  292. data/lib/active_admin/view_helpers/title_helper.rb +0 -12
  293. data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
  294. data/lib/active_admin/views/action_items.rb +0 -18
  295. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
  296. data/lib/active_admin/views/components/blank_slate.rb +0 -18
  297. data/lib/active_admin/views/components/columns.rb +0 -162
  298. data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
  299. data/lib/active_admin/views/components/menu.rb +0 -33
  300. data/lib/active_admin/views/components/menu_item.rb +0 -59
  301. data/lib/active_admin/views/components/sidebar.rb +0 -14
  302. data/lib/active_admin/views/components/sidebar_section.rb +0 -35
  303. data/lib/active_admin/views/components/site_title.rb +0 -55
  304. data/lib/active_admin/views/components/tabs.rb +0 -41
  305. data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
  306. data/lib/active_admin/views/footer.rb +0 -32
  307. data/lib/active_admin/views/header.rb +0 -20
  308. data/lib/active_admin/views/index_as_block.rb +0 -37
  309. data/lib/active_admin/views/index_as_blog.rb +0 -156
  310. data/lib/active_admin/views/index_as_grid.rb +0 -81
  311. data/lib/active_admin/views/pages/base.rb +0 -134
  312. data/lib/active_admin/views/pages/form.rb +0 -65
  313. data/lib/active_admin/views/pages/index.rb +0 -166
  314. data/lib/active_admin/views/pages/layout.rb +0 -27
  315. data/lib/active_admin/views/pages/page.rb +0 -31
  316. data/lib/active_admin/views/pages/show.rb +0 -60
  317. data/lib/active_admin/views/tabbed_navigation.rb +0 -12
  318. data/lib/active_admin/views/title_bar.rb +0 -56
  319. data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
  320. data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
  321. data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
  322. data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
  323. data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
  324. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
  325. data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
  326. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
  327. data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
  328. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -51
  329. data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -89
  330. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -83
  331. data/vendor/assets/javascripts/jquery-ui/form.js +0 -25
  332. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
  333. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
  334. data/vendor/assets/javascripts/jquery-ui/labels.js +0 -71
  335. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
  336. data/vendor/assets/javascripts/jquery-ui/position.js +0 -513
  337. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
  338. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
  339. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
  340. data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -41
  341. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
  342. data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
  343. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -758
  344. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -454
  345. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -294
  346. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -304
  347. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2243
  348. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -971
  349. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
  350. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
  351. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1228
  352. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1622
  353. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  354. /data/{lib → app/controllers}/active_admin/resource_controller/decorators.rb +0 -0
  355. /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
  356. /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
  357. /data/lib/{active_admin/orm/mongoid/.gitkeep → generators/active_admin/assets/templates/builds/.keep} +0 -0
@@ -33,20 +33,20 @@ module ActiveAdmin
33
33
  end
34
34
 
35
35
  @opening_tag, @closing_tag = split_string_on(form_string, "</form>")
36
- instance_eval(&block) if block_given?
36
+ instance_eval(&block) if block
37
37
 
38
38
  # Rails sets multipart automatically if a file field is present,
39
39
  # but the form tag has already been rendered before the block eval.
40
- if multipart? && @opening_tag !~ /multipart/
40
+ if multipart? && !@opening_tag.include?('multipart')
41
41
  @opening_tag.sub!(/<form/, '<form enctype="multipart/form-data"')
42
42
  end
43
43
  end
44
44
 
45
45
  def inputs(*args, &block)
46
- if block_given?
46
+ if block
47
47
  form_builder.template.assigns[:has_many_block] = true
48
48
  end
49
- if block_given? && block.arity == 0
49
+ if block && block.arity == 0
50
50
  wrapped_block = proc do
51
51
  wrap_it = form_builder.already_in_an_inputs_block ? true : false
52
52
  form_builder.already_in_an_inputs_block = true
@@ -73,13 +73,15 @@ module ActiveAdmin
73
73
  end
74
74
 
75
75
  def actions(*args, &block)
76
- block_given? ?
77
- insert_tag(SemanticActionsProxy, form_builder, *args, &block) :
76
+ if block
77
+ insert_tag(SemanticActionsProxy, form_builder, *args, &block)
78
+ else
79
+ add_create_another_checkbox
78
80
  actions(*args) { commit_action_with_cancel_link }
81
+ end
79
82
  end
80
83
 
81
84
  def commit_action_with_cancel_link
82
- add_create_another_checkbox
83
85
  action(:submit)
84
86
  cancel_link
85
87
  end
@@ -108,14 +110,16 @@ module ActiveAdmin
108
110
  create_another = params[:create_another]
109
111
  label = @resource.class.model_name.human
110
112
  Arbre::Context.new do
111
- li class: "create_another" do
112
- input(
113
- checked: create_another,
114
- id: "create_another",
115
- name: "create_another",
116
- type: "checkbox"
117
- )
118
- label(I18n.t("active_admin.create_another", model: label), for: "create_another")
113
+ div class: "boolean input input-create-another" do
114
+ label for: "create_another" do
115
+ input(
116
+ checked: create_another,
117
+ id: "create_another",
118
+ name: "create_another",
119
+ type: "checkbox"
120
+ )
121
+ text_node I18n.t("active_admin.create_another", model: label)
122
+ end
119
123
  end
120
124
  end
121
125
  end
@@ -127,24 +131,12 @@ module ActiveAdmin
127
131
  html_options[:class] ||= "inputs"
128
132
  legend = args.shift if args.first.is_a?(::String)
129
133
  legend = html_options.delete(:name) if html_options.key?(:name)
130
- legend_tag = legend ? helpers.tag.legend(helpers.tag.span(legend), class: "fieldset-title") : ""
131
- fieldset_attrs = tag_attributes html_options
134
+ legend_tag = legend ? helpers.tag.legend(legend, class: "fieldset-title") : ""
135
+ fieldset_attrs = helpers.tag.attributes html_options
132
136
  @opening_tag = "<fieldset #{fieldset_attrs}>#{legend_tag}<ol>"
133
137
  @closing_tag = "</ol></fieldset>"
134
138
  super(*(args << html_options), &block)
135
139
  end
136
-
137
- private
138
-
139
- def tag_attributes(html_options)
140
- if Rails::VERSION::MAJOR <= 6
141
- # Reimplement tag.attributes to backport support for Rails 6.1.
142
- # TODO: this can be removed when support for Rails 6.x is dropped
143
- helpers.tag.tag_options(html_options.to_h).to_s.strip.html_safe
144
- else
145
- helpers.tag.attributes html_options
146
- end
147
- end
148
140
  end
149
141
 
150
142
  class SemanticActionsProxy < FormtasticProxy
@@ -11,6 +11,7 @@ module ActiveAdmin
11
11
  options = {}
12
12
  options[:for] = @collection.first if single_record?
13
13
  super(options)
14
+ add_class "attributes-table"
14
15
  @table = table
15
16
  build_colgroups
16
17
  rows(*attrs)
@@ -22,14 +23,9 @@ module ActiveAdmin
22
23
 
23
24
  def row(*args, &block)
24
25
  title = args[0]
26
+ data = args[1] || args[0]
25
27
  options = args.extract_options!
26
- classes = [:row]
27
- if options[:class]
28
- classes << options[:class]
29
- elsif title.present?
30
- classes << "row-#{title.to_s.parameterize(separator: "_")}"
31
- end
32
- options[:class] = classes.join(" ")
28
+ options["data-row"] = title.to_s.parameterize(separator: "_") if title.present?
33
29
 
34
30
  @table << tr(options) do
35
31
  th do
@@ -37,7 +33,7 @@ module ActiveAdmin
37
33
  end
38
34
  @collection.each do |record|
39
35
  td do
40
- content_for(record, block || title)
36
+ content_for(record, block || data)
41
37
  end
42
38
  end
43
39
  end
@@ -59,24 +55,26 @@ module ActiveAdmin
59
55
  within @table do
60
56
  col # column for row headers
61
57
  @collection.each do |record|
62
- classes = Arbre::HTML::ClassList.new
63
- classes << cycle(:even, :odd, name: self.class.to_s)
64
- classes << dom_class_name_for(record)
65
- col(id: dom_id_for(record), class: classes)
58
+ col(id: dom_id_for(record))
66
59
  end
67
60
  end
68
61
  end
69
62
 
70
63
  def header_content_for(attr)
71
- if @resource_class.respond_to?(:human_attribute_name)
72
- @resource_class.human_attribute_name(attr, default: attr.to_s.titleize)
64
+ if attr.is_a?(Symbol)
65
+ default = attr.to_s.titleize
66
+ if @resource_class.respond_to?(:human_attribute_name)
67
+ @resource_class.human_attribute_name(attr, default: default)
68
+ else
69
+ default
70
+ end
73
71
  else
74
- attr.to_s.titleize
72
+ attr.to_s
75
73
  end
76
74
  end
77
75
 
78
76
  def empty_value
79
- span I18n.t("active_admin.empty"), class: "empty"
77
+ span I18n.t("active_admin.empty"), class: "attributes-table-empty-value"
80
78
  end
81
79
 
82
80
  def content_for(record, attr)
@@ -1,28 +1,18 @@
1
1
  # frozen_string_literal: true
2
- require "active_admin/helpers/collection"
3
-
4
2
  module ActiveAdmin
5
3
  module Views
6
-
7
4
  # Renders a collection of index views available to the resource
8
5
  # as a list with a separator
9
6
  class IndexList < ActiveAdmin::Component
10
- builder_method :index_list_renderer
11
-
12
- include ::ActiveAdmin::Helpers::Collection
13
-
14
- def default_class_name
15
- "indexes table_tools_segmented_control"
16
- end
17
-
18
7
  def tag_name
19
- "ul"
8
+ "div"
20
9
  end
21
10
 
22
11
  # Builds the links for presenting different index views to the user
23
12
  #
24
13
  # @param [Array] index_classes The class constants that represent index page presenters
25
14
  def build(index_classes)
15
+ add_class "index-button-group index-list"
26
16
  unless current_filter_search_empty?
27
17
  index_classes.each do |index_class|
28
18
  build_index_list(index_class)
@@ -36,20 +26,18 @@ module ActiveAdmin
36
26
  #
37
27
  # @param [Class] index_class The class on which to build the link and html classes
38
28
  def build_index_list(index_class)
39
- li class: classes_for_index(index_class) do
40
- params = request.query_parameters.except :page, :commit, :format
41
- url_with_params = url_for(**params.merge(as: index_class.index_name.to_sym).symbolize_keys)
29
+ params = request.query_parameters.except :page, :commit, :format
30
+ url_with_params = url_for(**params.merge(as: index_class.index_name.to_sym).symbolize_keys)
42
31
 
43
- a href: url_with_params, class: "table_tools_button" do
44
- name = index_class.index_name
45
- I18n.t("active_admin.index_list.#{name}", default: name.to_s.titleize)
46
- end
32
+ a href: url_with_params, class: classes_for_index(index_class) do
33
+ name = index_class.index_name
34
+ I18n.t("active_admin.index_list.#{name}", default: name.to_s.titleize)
47
35
  end
48
36
  end
49
37
 
50
38
  def classes_for_index(index_class)
51
- classes = ["index"]
52
- classes << "selected" if current_index?(index_class)
39
+ classes = ["index-button"]
40
+ classes << "index-button-selected" if current_index?(index_class)
53
41
  classes.join(" ")
54
42
  end
55
43
 
@@ -62,9 +50,8 @@ module ActiveAdmin
62
50
  end
63
51
 
64
52
  def current_filter_search_empty?
65
- params.include?(:q) && collection_is_empty?
53
+ params.include?(:q) && collection_empty?
66
54
  end
67
-
68
55
  end
69
56
  end
70
57
  end
@@ -1,10 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require "active_admin/helpers/collection"
3
- require "active_admin/view_helpers/download_format_links_helper"
4
-
5
2
  module ActiveAdmin
6
3
  module Views
7
-
8
4
  # Wraps the content with pagination and available formats.
9
5
  #
10
6
  # *Example:*
@@ -19,8 +15,8 @@ module ActiveAdmin
19
15
  # posts in one of the following formats:
20
16
  #
21
17
  # * "No Posts found"
22
- # * "Displaying all 10 Posts"
23
- # * "Displaying Posts 1 - 30 of 31 in total"
18
+ # * "Showing all 10 Posts"
19
+ # * "Showing Posts 1 - 30 of 31 in total"
24
20
  #
25
21
  # It will also generate pagination links.
26
22
  #
@@ -46,11 +42,11 @@ module ActiveAdmin
46
42
  @display_total = options.delete(:pagination_total) { true }
47
43
  @per_page = options.delete(:per_page)
48
44
 
49
- unless collection.respond_to?(:total_pages)
45
+ unless @collection.respond_to?(:total_pages)
50
46
  raise(StandardError, "Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection.")
51
47
  end
52
-
53
- @contents = div(class: "paginated_collection_contents")
48
+ add_class "paginated-collection"
49
+ @contents = div(class: "paginated-collection-contents")
54
50
  build_pagination_with_formats(options)
55
51
  @built = true
56
52
  end
@@ -67,25 +63,28 @@ module ActiveAdmin
67
63
  protected
68
64
 
69
65
  def build_pagination_with_formats(options)
70
- div id: "index_footer" do
71
- build_per_page_select if @per_page.is_a?(Array)
66
+ div class: "paginated-collection-pagination" do
67
+ div page_entries_info(options).html_safe, class: "pagination-information"
72
68
  build_pagination
73
- div(page_entries_info(options).html_safe, class: "pagination_information")
74
-
75
- formats = build_download_formats @download_links
76
- build_download_format_links formats if formats.any?
69
+ end
70
+ formats = build_download_formats @download_links
71
+ if @per_page.is_a?(Array) || formats.any?
72
+ div class: "paginated-collection-footer" do
73
+ build_per_page_select if @per_page.is_a?(Array)
74
+ render("active_admin/shared/download_format_links", formats: formats) if formats.any?
75
+ end
77
76
  end
78
77
  end
79
78
 
80
79
  def build_per_page_select
81
- div class: "pagination_per_page" do
80
+ div do
82
81
  text_node I18n.t("active_admin.pagination.per_page")
83
- select do
82
+ select class: "pagination-per-page" do
84
83
  @per_page.each do |per_page|
85
84
  option(
86
85
  per_page,
87
86
  value: per_page,
88
- selected: collection.limit_value == per_page ? "selected" : nil
87
+ selected: @collection.limit_value == per_page ? "selected" : nil
89
88
  )
90
89
  end
91
90
  end
@@ -93,7 +92,7 @@ module ActiveAdmin
93
92
  end
94
93
 
95
94
  def build_pagination
96
- options = { theme: @display_total ? "active_admin" : "active_admin_countless" }
95
+ options = { views_prefix: :active_admin, outer_window: 1, window: 2 }
97
96
  options[:params] = @params if @params
98
97
  options[:param_name] = @param_name if @param_name
99
98
 
@@ -103,62 +102,58 @@ module ActiveAdmin
103
102
  # you pass in the :total_pages option. We issue a query to determine
104
103
  # if there is another page or not, but the limit/offset make this
105
104
  # query fast.
106
- offset_scope = collection.offset(collection.current_page * collection.limit_value)
105
+ offset_scope = @collection.offset(@collection.current_page * @collection.limit_value)
107
106
  # Support array collections. Kaminari::PaginatableArray does not respond to except
108
107
  offset_scope = offset_scope.except(:select, :order) if offset_scope.respond_to?(:except)
109
108
  offset = offset_scope.limit(1).count
110
- options[:total_pages] = collection.current_page + offset
109
+ options[:total_pages] = @collection.current_page + offset
111
110
  options[:right] = 0
112
111
  end
113
112
 
114
- text_node paginate collection, **options
113
+ text_node paginate @collection, **options
115
114
  end
116
115
 
117
- include ::ActiveAdmin::Helpers::Collection
118
- include ::ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
119
-
120
116
  # modified from will_paginate
121
117
  def page_entries_info(options = {})
122
118
  if options[:entry_name]
123
119
  entry_name = options[:entry_name]
124
120
  entries_name = options[:entries_name] || entry_name.pluralize
125
- elsif collection_is_empty?
121
+ elsif collection_empty?(@collection)
126
122
  entry_name = I18n.t "active_admin.pagination.entry", count: 1, default: "entry"
127
123
  entries_name = I18n.t "active_admin.pagination.entry", count: 2, default: "entries"
128
124
  else
129
- key = "activerecord.models." + collection.first.class.model_name.i18n_key.to_s
125
+ key = "activerecord.models." + @collection.first.class.model_name.i18n_key.to_s
130
126
 
131
- entry_name = I18n.translate key, count: 1, default: collection.first.class.name.underscore.sub("_", " ")
132
- entries_name = I18n.translate key, count: collection.size, default: entry_name.pluralize
127
+ entry_name = I18n.translate key, count: 1, default: @collection.first.class.name.underscore.sub("_", " ")
128
+ entries_name = I18n.translate key, count: @collection.size, default: entry_name.pluralize
133
129
  end
134
130
 
135
131
  if @display_total
136
- if collection.total_pages < 2
137
- case collection_size
132
+ if @collection.total_pages < 2
133
+ case collection_size(@collection)
138
134
  when 0; I18n.t("active_admin.pagination.empty", model: entries_name)
139
135
  when 1; I18n.t("active_admin.pagination.one", model: entry_name)
140
- else; I18n.t("active_admin.pagination.one_page", model: entries_name, n: collection.total_count)
136
+ else; I18n.t("active_admin.pagination.one_page", model: entries_name, n: @collection.total_count)
141
137
  end
142
138
  else
143
- offset = (collection.current_page - 1) * collection.limit_value
144
- total = collection.total_count
139
+ offset = (@collection.current_page - 1) * @collection.limit_value
140
+ total = @collection.total_count
145
141
  I18n.t "active_admin.pagination.multiple",
146
142
  model: entries_name,
147
143
  total: total,
148
144
  from: offset + 1,
149
- to: offset + collection_size
145
+ to: offset + collection_size(@collection)
150
146
  end
151
147
  else
152
148
  # Do not display total count, in order to prevent a `SELECT count(*)`.
153
- # To do so we must not call `collection.total_pages`
154
- offset = (collection.current_page - 1) * collection.limit_value
149
+ # To do so we must not call `@collection.total_pages`
150
+ offset = (@collection.current_page - 1) * @collection.limit_value
155
151
  I18n.t "active_admin.pagination.multiple_without_total",
156
152
  model: entries_name,
157
153
  from: offset + 1,
158
- to: offset + collection_size
154
+ to: offset + collection_size(@collection)
159
155
  end
160
156
  end
161
-
162
157
  end
163
158
  end
164
159
  end
@@ -8,8 +8,8 @@ module ActiveAdmin
8
8
  def build(title, attributes = {})
9
9
  super(attributes)
10
10
  add_class "panel"
11
- @title = h3(title.to_s)
12
- @contents = div(class: "panel_contents")
11
+ @title = h3(title.to_s, class: "panel-title")
12
+ @contents = div(class: "panel-body")
13
13
  end
14
14
 
15
15
  def add_child(child)
@@ -22,18 +22,10 @@ module ActiveAdmin
22
22
 
23
23
  # Override children? to only report children when the panel's
24
24
  # contents have been added to. This ensures that the panel
25
- # correcly appends string values, etc.
25
+ # correctly appends string values, etc.
26
26
  def children?
27
27
  @contents.children?
28
28
  end
29
-
30
- def header_action(*args)
31
- action = args[0]
32
-
33
- @title << div(class: "header_action") do
34
- action
35
- end
36
- end
37
29
  end
38
30
  end
39
31
  end
@@ -1,31 +1,27 @@
1
1
  # frozen_string_literal: true
2
- require "active_admin/helpers/collection"
3
- require "active_admin/view_helpers/method_or_proc_helper"
2
+ require_relative "../../async_count"
3
+ require_relative "../../view_helpers/method_or_proc_helper"
4
4
 
5
5
  module ActiveAdmin
6
6
  module Views
7
-
8
7
  # Renders a collection of ActiveAdmin::Scope objects as a
9
- # simple list with a seperator
8
+ # simple list with a separator
10
9
  class Scopes < ActiveAdmin::Component
11
- builder_method :scopes_renderer
12
-
13
10
  include ActiveAdmin::ScopeChain
14
- include ::ActiveAdmin::Helpers::Collection
15
-
16
- def default_class_name
17
- "scopes"
18
- end
19
11
 
20
12
  def tag_name
21
13
  "div"
22
14
  end
23
15
 
24
16
  def build(scopes, options = {})
17
+ super({ role: "toolbar" })
18
+ add_class "scopes"
19
+ prepare_async_counts(scopes, options)
20
+
25
21
  scopes.group_by(&:group).each do |group, group_scopes|
26
- ul class: "table_tools_segmented_control #{group_class(group)}" do
22
+ div class: "index-button-group", role: "group", data: { "group": group_name(group) } do
27
23
  group_scopes.each do |scope|
28
- build_scope(scope, options) if call_method_or_exec_proc(scope.display_if_block)
24
+ build_scope(scope, options) if display_scope?(scope)
29
25
  end
30
26
 
31
27
  nil
@@ -36,21 +32,19 @@ module ActiveAdmin
36
32
  protected
37
33
 
38
34
  def build_scope(scope, options)
39
- li class: classes_for_scope(scope) do
40
- params = request.query_parameters.except :page, :scope, :commit, :format
41
-
42
- a href: url_for(scope: scope.id, params: params), class: "table_tools_button" do
43
- text_node scope_name(scope)
44
- span class: "count" do
45
- "(#{get_scope_count(scope)})"
46
- end if options[:scope_count] && scope.show_count
35
+ params = request.query_parameters.except :page, :scope, :commit, :format
36
+
37
+ a href: url_for(scope: scope.id, params: params), class: classes_for_scope(scope) do
38
+ text_node scope_name(scope)
39
+ if options[:scope_count] && scope.show_count
40
+ span get_scope_count(scope), class: "scopes-count"
47
41
  end
48
42
  end
49
43
  end
50
44
 
51
45
  def classes_for_scope(scope)
52
- classes = ["scope", scope.id]
53
- classes << "selected" if current_scope?(scope)
46
+ classes = ["index-button"]
47
+ classes << "index-button-selected" if current_scope?(scope)
54
48
  classes.join(" ")
55
49
  end
56
50
 
@@ -64,11 +58,30 @@ module ActiveAdmin
64
58
 
65
59
  # Return the count for the scope passed in.
66
60
  def get_scope_count(scope)
67
- collection_size(scope_chain(scope, collection_before_scope))
61
+ chained = @async_counts[scope] || scope_chain(scope, collection_before_scope)
62
+
63
+ collection_size(chained)
64
+ end
65
+
66
+ def group_name(group)
67
+ group.present? ? group : "default"
68
+ end
69
+
70
+ private
71
+
72
+ def display_scope?(scope)
73
+ call_method_or_exec_proc(scope.display_if_block)
68
74
  end
69
75
 
70
- def group_class(group)
71
- group.present? ? "scope-group-#{group}" : "scope-default-group"
76
+ def prepare_async_counts(scopes, options)
77
+ @async_counts = if options[:scope_count]
78
+ scopes
79
+ .select(&:async_count?)
80
+ .select { |scope| display_scope?(scope) }
81
+ .index_with { |scope| AsyncCount.new(scope_chain(scope, collection_before_scope)) }
82
+ else
83
+ {}
84
+ end
72
85
  end
73
86
  end
74
87
  end
@@ -9,12 +9,8 @@ module ActiveAdmin
9
9
  "span"
10
10
  end
11
11
 
12
- def default_class_name
13
- "status_tag"
14
- end
15
-
16
12
  # @overload status_tag(status, options = {})
17
- # @param [String] status the status to display. One of the span classes will be an underscored version of the status.
13
+ # @param [String] status the status to display.
18
14
  # @param [Hash] options
19
15
  # @option options [String] :class to override the default class
20
16
  # @option options [String] :id to override the default id
@@ -22,17 +18,30 @@ module ActiveAdmin
22
18
  # @return [ActiveAdmin::Views::StatusTag]
23
19
  #
24
20
  # @example
21
+ # status_tag(true)
22
+ # # => <span class="status-tag" data-status="yes">Yes</span>
23
+ #
24
+ # @example
25
+ # status_tag(false)
26
+ # # => <span class="status-tag" data-status="no">No</span>
27
+ #
28
+ # @example
29
+ # status_tag(nil)
30
+ # # => <span class="status-tag" data-status="unset">Unknown</span>
31
+ #
32
+ # @example
25
33
  # status_tag('In Progress')
26
- # # => <span class='status_tag in_progress'>In Progress</span>
34
+ # # => <span class="status-tag" data-status="in_progress">In Progress</span>
27
35
  #
28
36
  # @example
29
- # status_tag('active', class: 'important', id: 'status_123', label: 'on')
30
- # # => <span class='status_tag active important' id='status_123'>on</span>
37
+ # status_tag('Active', class: 'important', id: 'status_123', label: 'on')
38
+ # # => <span class="status-tag important" id="status_123" data-status="active">on</span>
31
39
  #
32
40
  def build(status, options = {})
33
41
  label = options.delete(:label)
34
42
  classes = options.delete(:class)
35
- status = convert_to_boolean_status(status)
43
+ boolean_status = convert_to_boolean_status(status)
44
+ status = boolean_status || status
36
45
 
37
46
  if status
38
47
  content = label || if s = status.to_s and s.present?
@@ -41,8 +50,8 @@ module ActiveAdmin
41
50
  end
42
51
 
43
52
  super(content, options)
44
-
45
- add_class(status_to_class(status)) if status
53
+ add_class "status-tag"
54
+ set_attribute("data-status", convert_status(status)) if status
46
55
  add_class(classes) if classes
47
56
  end
48
57
 
@@ -56,19 +65,13 @@ module ActiveAdmin
56
65
  "No"
57
66
  when nil
58
67
  "Unset"
59
- else
60
- status
61
68
  end
62
69
  end
63
70
 
64
- def status_to_class(status)
71
+ def convert_status(status)
65
72
  case status
66
- when "Unset"
67
- "unset no"
68
73
  when String, Symbol
69
- status.to_s.titleize.gsub(/\s/, "").underscore
70
- else
71
- ""
74
+ status.to_s.titleize.delete(" ").underscore
72
75
  end
73
76
  end
74
77
  end