activeadmin 3.2.0 → 4.0.0.beta2

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 (339) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -22
  3. data/CONTRIBUTING.md +28 -109
  4. data/README.md +17 -30
  5. data/app/assets/config/active_admin_manifest.js +2 -0
  6. data/app/controllers/active_admin/base_controller/menu.rb +39 -0
  7. data/{lib → app/controllers}/active_admin/base_controller.rb +46 -18
  8. data/{lib → app/controllers}/active_admin/page_controller.rb +0 -4
  9. data/{lib → app/controllers}/active_admin/resource_controller/action_builder.rb +1 -1
  10. data/{lib → app/controllers}/active_admin/resource_controller/data_access.rb +2 -2
  11. data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
  12. data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +2 -2
  13. data/app/controllers/active_admin/resource_controller.rb +102 -0
  14. data/app/helpers/active_admin/auto_link_helper.rb +66 -0
  15. data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
  16. data/app/helpers/active_admin/display_helper.rb +117 -0
  17. data/app/helpers/active_admin/form_helper.rb +95 -0
  18. data/app/helpers/active_admin/index_helper.rb +40 -0
  19. data/app/helpers/active_admin/layout_helper.rb +63 -0
  20. data/app/javascript/active_admin/features/batch_actions.js +89 -0
  21. data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
  22. data/app/javascript/active_admin/features/filters.js +34 -0
  23. data/app/javascript/active_admin/features/has_many.js +28 -0
  24. data/app/javascript/active_admin/features/main_menu.js +12 -0
  25. data/app/javascript/active_admin/features/per_page.js +9 -0
  26. data/app/javascript/active_admin/utils/dom.js +17 -0
  27. data/app/javascript/active_admin.js +10 -0
  28. data/app/views/active_admin/_flash_messages.html.erb +22 -0
  29. data/app/views/active_admin/_html_head.html.erb +13 -0
  30. data/app/views/active_admin/_main_navigation.html.erb +28 -0
  31. data/app/views/active_admin/_page_header.html.erb +27 -0
  32. data/app/views/active_admin/_sidebar.html.erb +5 -0
  33. data/app/views/active_admin/_site_footer.html.erb +7 -0
  34. data/app/views/active_admin/_site_header.html.erb +30 -0
  35. data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
  36. data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
  37. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  38. data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
  39. data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
  40. data/app/views/active_admin/devise/shared/_links.erb +3 -1
  41. data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
  42. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
  43. data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
  44. data/app/views/active_admin/kaminari/_page.html.erb +14 -0
  45. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
  46. data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
  47. data/app/views/active_admin/page/index.html.arb +5 -1
  48. data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
  49. data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
  50. data/app/views/active_admin/resource/_form.html.arb +16 -0
  51. data/app/views/active_admin/resource/_form_default.html.arb +12 -0
  52. data/app/views/active_admin/resource/_index_as_table_default.html.arb +9 -0
  53. data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
  54. data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
  55. data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
  56. data/app/views/active_admin/resource/_show_default.html.arb +3 -0
  57. data/app/views/active_admin/resource/edit.html.arb +1 -1
  58. data/app/views/active_admin/resource/index.html.arb +94 -1
  59. data/app/views/active_admin/resource/new.html.arb +1 -1
  60. data/app/views/active_admin/resource/show.html.arb +12 -1
  61. data/app/views/active_admin/shared/_action_items.html.erb +3 -0
  62. data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
  63. data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
  64. data/app/views/active_admin/shared/_sidebar_section.html.arb +7 -0
  65. data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
  66. data/app/views/layouts/active_admin.html.erb +20 -0
  67. data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
  68. data/config/locales/ar.yml +0 -16
  69. data/config/locales/az.yml +0 -16
  70. data/config/locales/bg.yml +0 -9
  71. data/config/locales/bs.yml +0 -7
  72. data/config/locales/ca.yml +0 -9
  73. data/config/locales/cs.yml +0 -9
  74. data/config/locales/da.yml +0 -16
  75. data/config/locales/de-CH.yml +0 -10
  76. data/config/locales/de.yml +0 -16
  77. data/config/locales/el.yml +0 -13
  78. data/config/locales/en-CA.yml +0 -16
  79. data/config/locales/en-GB.yml +0 -16
  80. data/config/locales/en.yml +18 -28
  81. data/config/locales/eo.yml +0 -17
  82. data/config/locales/es-MX.yml +0 -9
  83. data/config/locales/es.yml +0 -16
  84. data/config/locales/fa.yml +0 -9
  85. data/config/locales/fi.yml +0 -9
  86. data/config/locales/fr.yml +32 -26
  87. data/config/locales/he.yml +0 -16
  88. data/config/locales/hr.yml +0 -9
  89. data/config/locales/hu.yml +0 -6
  90. data/config/locales/id.yml +0 -16
  91. data/config/locales/it.yml +0 -16
  92. data/config/locales/ja.yml +0 -16
  93. data/config/locales/ko.yml +0 -9
  94. data/config/locales/lt.yml +0 -16
  95. data/config/locales/lv.yml +0 -6
  96. data/config/locales/mk.yml +0 -15
  97. data/config/locales/nb.yml +0 -12
  98. data/config/locales/nl.yml +21 -29
  99. data/config/locales/pl.yml +0 -16
  100. data/config/locales/pt-BR.yml +0 -16
  101. data/config/locales/pt-PT.yml +0 -6
  102. data/config/locales/ro.yml +0 -6
  103. data/config/locales/ru.yml +0 -16
  104. data/config/locales/sk.yml +0 -16
  105. data/config/locales/sv-SE.yml +0 -16
  106. data/config/locales/tr.yml +0 -16
  107. data/config/locales/uk.yml +0 -16
  108. data/config/locales/vi.yml +0 -16
  109. data/config/locales/zh-CN.yml +0 -16
  110. data/config/locales/zh-TW.yml +0 -16
  111. data/lib/active_admin/application.rb +1 -9
  112. data/lib/active_admin/batch_actions/controller.rb +1 -4
  113. data/lib/active_admin/batch_actions/resource_extension.rb +6 -13
  114. data/lib/active_admin/batch_actions/views/batch_action_form.rb +0 -6
  115. data/lib/active_admin/batch_actions/views/selection_cells.rb +2 -2
  116. data/lib/active_admin/batch_actions.rb +0 -5
  117. data/lib/active_admin/callbacks.rb +6 -4
  118. data/lib/active_admin/component.rb +0 -1
  119. data/lib/active_admin/csv_builder.rb +1 -1
  120. data/lib/active_admin/devise.rb +3 -3
  121. data/lib/active_admin/dsl.rb +2 -2
  122. data/lib/active_admin/dynamic_settings_node.rb +4 -4
  123. data/lib/active_admin/engine.rb +19 -6
  124. data/lib/active_admin/filters/active.rb +6 -4
  125. data/lib/active_admin/filters/active_filter.rb +1 -3
  126. data/lib/active_admin/filters/forms.rb +1 -42
  127. data/lib/active_admin/filters/resource_extension.rb +17 -9
  128. data/lib/active_admin/filters.rb +0 -2
  129. data/lib/active_admin/form_builder.rb +15 -14
  130. data/lib/active_admin/inputs/filters/base/search_method_select.rb +8 -10
  131. data/lib/active_admin/inputs/filters/base.rb +1 -1
  132. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
  133. data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
  134. data/lib/active_admin/inputs.rb +0 -3
  135. data/lib/active_admin/menu.rb +10 -7
  136. data/lib/active_admin/menu_collection.rb +1 -1
  137. data/lib/active_admin/menu_item.rb +24 -3
  138. data/lib/active_admin/namespace.rb +2 -44
  139. data/lib/active_admin/namespace_settings.rb +2 -35
  140. data/lib/active_admin/order_clause.rb +4 -1
  141. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -75
  142. data/lib/active_admin/orm/active_record/comments.rb +10 -5
  143. data/lib/active_admin/resource/action_items.rb +15 -20
  144. data/lib/active_admin/resource/naming.rb +1 -2
  145. data/lib/active_admin/resource.rb +1 -0
  146. data/lib/active_admin/resource_dsl.rb +1 -1
  147. data/lib/active_admin/scope.rb +1 -1
  148. data/lib/active_admin/settings_node.rb +1 -1
  149. data/lib/active_admin/sidebar_section.rb +0 -5
  150. data/lib/active_admin/version.rb +1 -1
  151. data/lib/active_admin/view_helpers.rb +0 -12
  152. data/lib/active_admin/views/components/active_admin_form.rb +20 -16
  153. data/lib/active_admin/views/components/attributes_table.rb +4 -12
  154. data/lib/active_admin/views/components/index_list.rb +10 -23
  155. data/lib/active_admin/views/components/paginated_collection.rb +34 -39
  156. data/lib/active_admin/views/components/panel.rb +2 -10
  157. data/lib/active_admin/views/components/scopes.rb +12 -21
  158. data/lib/active_admin/views/components/status_tag.rb +22 -19
  159. data/lib/active_admin/views/components/table_for.rb +19 -24
  160. data/lib/active_admin/views/components/tabs.rb +10 -11
  161. data/lib/active_admin/views/index_as_table.rb +24 -97
  162. data/lib/active_admin.rb +7 -11
  163. data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
  164. data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
  165. data/lib/generators/active_admin/assets/templates/tailwind.config.js +18 -0
  166. data/lib/generators/active_admin/install/install_generator.rb +2 -8
  167. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
  168. data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
  169. data/lib/generators/active_admin/page/page_generator.rb +0 -1
  170. data/lib/generators/active_admin/resource/resource_generator.rb +46 -7
  171. data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
  172. data/lib/generators/active_admin/views_generator.rb +18 -0
  173. data/vendor/javascript/flowbite.js +2 -0
  174. metadata +68 -201
  175. data/app/assets/javascripts/active_admin/base.js +0 -521
  176. data/app/assets/stylesheets/active_admin/_base.scss +0 -57
  177. data/app/assets/stylesheets/active_admin/_forms.scss +0 -316
  178. data/app/assets/stylesheets/active_admin/_header.scss +0 -188
  179. data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
  180. data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
  181. data/app/assets/stylesheets/active_admin/_print.scss +0 -287
  182. data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
  183. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
  184. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
  185. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
  186. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
  187. data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
  188. data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
  189. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
  190. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -151
  191. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
  192. data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
  193. data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
  194. data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
  195. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
  196. data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -55
  197. data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
  198. data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
  199. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
  200. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -67
  201. data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
  202. data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -65
  203. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
  204. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
  205. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
  206. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
  207. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
  208. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
  209. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
  210. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
  211. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
  212. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
  213. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
  214. data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
  215. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
  216. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -40
  217. data/app/javascript/active_admin/base.js +0 -28
  218. data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
  219. data/app/javascript/active_admin/ext/jquery.js +0 -9
  220. data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
  221. data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
  222. data/app/javascript/active_admin/initializers/datepicker.js +0 -16
  223. data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
  224. data/app/javascript/active_admin/initializers/filters.js +0 -10
  225. data/app/javascript/active_admin/initializers/has-many.js +0 -98
  226. data/app/javascript/active_admin/initializers/per-page.js +0 -13
  227. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
  228. data/app/javascript/active_admin/initializers/tabs.js +0 -6
  229. data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
  230. data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
  231. data/app/javascript/active_admin/lib/filters.js +0 -39
  232. data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
  233. data/app/javascript/active_admin/lib/per-page.js +0 -38
  234. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
  235. data/app/javascript/active_admin/lib/utils.js +0 -40
  236. data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
  237. data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
  238. data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
  239. data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
  240. data/app/views/kaminari/active_admin/_page.html.erb +0 -12
  241. data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
  242. data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
  243. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
  244. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
  245. data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
  246. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
  247. data/app/views/layouts/active_admin.html.arb +0 -2
  248. data/lib/active_admin/abstract_view_factory.rb +0 -48
  249. data/lib/active_admin/asset_registration.rb +0 -30
  250. data/lib/active_admin/base_controller/menu.rb +0 -35
  251. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
  252. data/lib/active_admin/filters/active_sidebar.rb +0 -28
  253. data/lib/active_admin/generators/boilerplate.rb +0 -54
  254. data/lib/active_admin/helpers/collection.rb +0 -21
  255. data/lib/active_admin/helpers/i18n.rb +0 -8
  256. data/lib/active_admin/inputs/datepicker_input.rb +0 -28
  257. data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
  258. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
  259. data/lib/active_admin/orm/mongoid.rb +0 -2
  260. data/lib/active_admin/resource_controller/sidebars.rb +0 -19
  261. data/lib/active_admin/resource_controller.rb +0 -68
  262. data/lib/active_admin/view_factory.rb +0 -28
  263. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
  264. data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
  265. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
  266. data/lib/active_admin/view_helpers/display_helper.rb +0 -119
  267. data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
  268. data/lib/active_admin/view_helpers/fields_for.rb +0 -51
  269. data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
  270. data/lib/active_admin/view_helpers/form_helper.rb +0 -21
  271. data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
  272. data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
  273. data/lib/active_admin/view_helpers/title_helper.rb +0 -12
  274. data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
  275. data/lib/active_admin/views/action_items.rb +0 -18
  276. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
  277. data/lib/active_admin/views/components/blank_slate.rb +0 -18
  278. data/lib/active_admin/views/components/columns.rb +0 -162
  279. data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
  280. data/lib/active_admin/views/components/menu.rb +0 -33
  281. data/lib/active_admin/views/components/menu_item.rb +0 -59
  282. data/lib/active_admin/views/components/sidebar.rb +0 -14
  283. data/lib/active_admin/views/components/sidebar_section.rb +0 -35
  284. data/lib/active_admin/views/components/site_title.rb +0 -55
  285. data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
  286. data/lib/active_admin/views/footer.rb +0 -32
  287. data/lib/active_admin/views/header.rb +0 -20
  288. data/lib/active_admin/views/index_as_block.rb +0 -37
  289. data/lib/active_admin/views/index_as_blog.rb +0 -156
  290. data/lib/active_admin/views/index_as_grid.rb +0 -81
  291. data/lib/active_admin/views/pages/base.rb +0 -134
  292. data/lib/active_admin/views/pages/form.rb +0 -65
  293. data/lib/active_admin/views/pages/index.rb +0 -166
  294. data/lib/active_admin/views/pages/layout.rb +0 -27
  295. data/lib/active_admin/views/pages/page.rb +0 -31
  296. data/lib/active_admin/views/pages/show.rb +0 -60
  297. data/lib/active_admin/views/tabbed_navigation.rb +0 -12
  298. data/lib/active_admin/views/title_bar.rb +0 -56
  299. data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
  300. data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
  301. data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
  302. data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
  303. data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
  304. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
  305. data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
  306. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
  307. data/vendor/assets/javascripts/jquery-ui/data.js +0 -41
  308. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -48
  309. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
  310. data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -86
  311. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -80
  312. data/vendor/assets/javascripts/jquery-ui/form.js +0 -22
  313. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -17
  314. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -47
  315. data/vendor/assets/javascripts/jquery-ui/labels.js +0 -65
  316. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -46
  317. data/vendor/assets/javascripts/jquery-ui/position.js +0 -500
  318. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -42
  319. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -23
  320. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -47
  321. data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -38
  322. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -51
  323. data/vendor/assets/javascripts/jquery-ui/version.js +0 -17
  324. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -735
  325. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -391
  326. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -291
  327. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -300
  328. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2123
  329. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -954
  330. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1259
  331. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -230
  332. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1207
  333. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1561
  334. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  335. /data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +0 -0
  336. /data/{lib → app/controllers}/active_admin/resource_controller/decorators.rb +0 -0
  337. /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
  338. /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
  339. /data/lib/{active_admin/orm/mongoid/.gitkeep → generators/active_admin/assets/templates/builds/.keep} +0 -0
@@ -1,75 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
  require "active_admin/views"
3
- require "active_admin/views/components/panel"
4
3
 
5
4
  module ActiveAdmin
6
5
  module Comments
7
6
  module Views
8
-
9
- class Comments < ActiveAdmin::Views::Panel
7
+ class Comments < Arbre::Element
10
8
  builder_method :active_admin_comments_for
11
9
 
12
- attr_accessor :resource
13
-
14
10
  def build(resource)
15
11
  if authorized?(ActiveAdmin::Auth::READ, ActiveAdmin::Comment)
16
- @resource = resource
17
- @comments = active_admin_authorization.scope_collection(ActiveAdmin::Comment.find_for_resource_in_namespace(resource, active_admin_namespace.name).includes(:author).page(params[:page]))
18
- super(title, for: resource)
19
- build_comments
12
+ comments = active_admin_authorization.scope_collection(ActiveAdmin::Comment.find_for_resource_in_namespace(resource, active_admin_namespace.name).includes(:author).page(params[:page]))
13
+ render("active_admin/shared/resource_comments", resource: resource, comments: comments, comment_form_url: comment_form_url)
20
14
  end
21
15
  end
22
16
 
23
17
  protected
24
18
 
25
- def title
26
- I18n.t "active_admin.comments.title_content", count: @comments.total_count
27
- end
28
-
29
- def build_comments
30
- if @comments.any?
31
- @comments.each(&method(:build_comment))
32
- div page_entries_info(@comments).html_safe, class: "pagination_information"
33
- else
34
- build_empty_message
35
- end
36
-
37
- text_node paginate @comments
38
-
39
- if authorized?(ActiveAdmin::Auth::NEW, ActiveAdmin::Comment)
40
- build_comment_form
41
- end
42
- end
43
-
44
- def build_comment(comment)
45
- div for: comment do
46
- div class: "active_admin_comment_meta" do
47
- h4 class: "active_admin_comment_author" do
48
- comment.author ? auto_link(comment.author) : I18n.t("active_admin.comments.author_missing")
49
- end
50
- span pretty_format comment.created_at
51
- if authorized?(ActiveAdmin::Auth::DESTROY, comment)
52
- text_node link_to I18n.t("active_admin.comments.delete"), comments_url(comment.id), method: :delete, data: { confirm: I18n.t("active_admin.comments.delete_confirmation") }
53
- end
54
- end
55
- div class: "active_admin_comment_body" do
56
- simple_format comment.body
57
- end
58
- end
59
- end
60
-
61
- def build_empty_message
62
- span I18n.t("active_admin.comments.no_comments_yet"), class: "empty"
63
- end
64
-
65
- def comments_url(*args)
66
- parts = []
67
- parts << active_admin_namespace.name unless active_admin_namespace.root?
68
- parts << active_admin_namespace.comments_registration_name.underscore
69
- parts << "path"
70
- send parts.join("_"), *args
71
- end
72
-
73
19
  def comment_form_url
74
20
  parts = []
75
21
  parts << active_admin_namespace.name unless active_admin_namespace.root?
@@ -77,25 +23,7 @@ module ActiveAdmin
77
23
  parts << "path"
78
24
  send parts.join "_"
79
25
  end
80
-
81
- def build_comment_form
82
- active_admin_form_for(ActiveAdmin::Comment.new, url: comment_form_url) do |f|
83
- f.inputs do
84
- f.input :resource_type, as: :hidden, input_html: { value: ActiveAdmin::Comment.resource_type(parent.resource) }
85
- f.input :resource_id, as: :hidden, input_html: { value: parent.resource.id }
86
- f.input :body, label: false, input_html: { size: "80x8" }
87
- end
88
- f.actions do
89
- f.action :submit, label: I18n.t("active_admin.comments.add")
90
- end
91
- end
92
- end
93
-
94
- def default_id_for_prefix
95
- "active_admin_comments_for"
96
- end
97
26
  end
98
-
99
27
  end
100
28
  end
101
29
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  require "active_admin/orm/active_record/comments/views"
3
- require "active_admin/orm/active_record/comments/show_page_helper"
4
3
  require "active_admin/orm/active_record/comments/namespace_helper"
5
4
  require "active_admin/orm/active_record/comments/resource_helper"
6
5
 
@@ -13,7 +12,6 @@ ActiveAdmin::Application.inheritable_setting :comments_menu, {}
13
12
  # Insert helper modules
14
13
  ActiveAdmin::Namespace.send :include, ActiveAdmin::Comments::NamespaceHelper
15
14
  ActiveAdmin::Resource.send :include, ActiveAdmin::Comments::ResourceHelper
16
- ActiveAdmin.application.view_factory.show_page.send :include, ActiveAdmin::Comments::ShowPageHelper
17
15
 
18
16
  # Load the model as soon as it's referenced. By that point, Rails & Kaminari will be ready
19
17
  ActiveAdmin.autoload :Comment, "active_admin/orm/active_record/comments/comment"
@@ -77,6 +75,11 @@ ActiveAdmin.after_load do |app|
77
75
  def destroy
78
76
  destroy! do |success, failure|
79
77
  success.html do
78
+ # If deleting from the Comments resource page then this will fail, as redirecting back
79
+ # will be to the comment show page, but comment was deleted. The following can be used
80
+ # to alleviate that, but then deleting comments on commentable resource pages will
81
+ # redirect to the comments index which may be undesirable.
82
+ # redirect_to({ action: :index }, fallback_location: active_admin_root)
80
83
  redirect_back fallback_location: active_admin_root
81
84
  end
82
85
  failure.html do
@@ -90,11 +93,13 @@ ActiveAdmin.after_load do |app|
90
93
 
91
94
  index do
92
95
  column I18n.t("active_admin.comments.resource_type"), :resource_type
96
+ column I18n.t("active_admin.comments.resource"), :resource, class: "min-w-[7rem]"
93
97
  column I18n.t("active_admin.comments.author_type"), :author_type
94
- column I18n.t("active_admin.comments.resource"), :resource
95
98
  column I18n.t("active_admin.comments.author"), :author
96
- column I18n.t("active_admin.comments.body"), :body
97
- column I18n.t("active_admin.comments.created_at"), :created_at
99
+ column I18n.t("active_admin.comments.body"), :body, class: "min-w-[16rem]" do |comment|
100
+ truncate(comment.body, length: 60, separator: " ")
101
+ end
102
+ column I18n.t("active_admin.comments.created_at"), :created_at, class: "min-w-[13rem]"
98
103
  actions
99
104
  end
100
105
  end
@@ -64,32 +64,31 @@ module ActiveAdmin
64
64
 
65
65
  # Adds the default New link on index
66
66
  def add_default_new_action_item
67
- add_action_item :new, only: :index do
68
- if controller.action_methods.include?("new") && authorized?(ActiveAdmin::Auth::NEW, active_admin_config.resource_class)
69
- localizer = ActiveAdmin::Localizers.resource(active_admin_config)
70
- link_to localizer.t(:new_model), new_resource_path
71
- end
67
+ add_action_item :new, only: :index, if: -> { new_action_authorized?(active_admin_config.resource_class) } do
68
+ localizer = ActiveAdmin::Localizers.resource(active_admin_config)
69
+ link_to localizer.t(:new_model), new_resource_path, class: "action-item-button"
72
70
  end
73
71
  end
74
72
 
75
73
  # Adds the default Edit link on show
76
74
  def add_default_edit_action_item
77
- add_action_item :edit, only: :show do
78
- if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::EDIT, resource)
79
- localizer = ActiveAdmin::Localizers.resource(active_admin_config)
80
- link_to localizer.t(:edit_model), edit_resource_path(resource)
81
- end
75
+ add_action_item :edit, only: :show, if: -> { edit_action_authorized?(resource) } do
76
+ localizer = ActiveAdmin::Localizers.resource(active_admin_config)
77
+ link_to localizer.t(:edit_model), edit_resource_path(resource), class: "action-item-button"
82
78
  end
83
79
  end
84
80
 
85
81
  # Adds the default Destroy link on show
86
82
  def add_default_show_action_item
87
- add_action_item :destroy, only: :show do
88
- if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
89
- localizer = ActiveAdmin::Localizers.resource(active_admin_config)
90
- link_to localizer.t(:delete_model), resource_path(resource), method: :delete,
91
- data: { confirm: localizer.t(:delete_confirmation) }
92
- end
83
+ add_action_item :destroy, only: :show, if: -> { destroy_action_authorized?(resource) } do
84
+ localizer = ActiveAdmin::Localizers.resource(active_admin_config)
85
+ link_to(
86
+ localizer.t(:delete_model),
87
+ resource_path(resource),
88
+ class: "action-item-button",
89
+ method: :delete,
90
+ data: { confirm: localizer.t(:delete_confirmation) }
91
+ )
93
92
  end
94
93
  end
95
94
 
@@ -109,10 +108,6 @@ module ActiveAdmin
109
108
  normalize_display_options!
110
109
  end
111
110
 
112
- def html_class
113
- "action_item #{@options[:class]}".rstrip
114
- end
115
-
116
111
  def priority
117
112
  @options[:priority] || 10
118
113
  end
@@ -23,8 +23,7 @@ module ActiveAdmin
23
23
 
24
24
  # Returns the plural version of this resource such as "Bank Accounts"
25
25
  def plural_resource_label(options = {})
26
- defaults = { count: Helpers::I18n::PLURAL_MANY_COUNT,
27
- default: resource_label.pluralize.titleize }
26
+ defaults = { count: 2.1, default: resource_label.pluralize.titleize }
28
27
  resource_name.translate defaults.merge options
29
28
  end
30
29
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require "active_admin/view_helpers/method_or_proc_helper"
2
3
  require "active_admin/resource/action_items"
3
4
  require "active_admin/resource/attributes"
4
5
  require "active_admin/resource/controllers"
@@ -192,7 +192,7 @@ module ActiveAdmin
192
192
  delegate :before_destroy, :after_destroy, to: :controller
193
193
 
194
194
  standard_rails_filters =
195
- AbstractController::Callbacks::ClassMethods.public_instance_methods.select { |m| m.match(/_action\z/) }
195
+ AbstractController::Callbacks::ClassMethods.public_instance_methods.select { |m| m.end_with?('_action') }
196
196
  delegate *standard_rails_filters, to: :controller
197
197
 
198
198
  # Specify which actions to create in the controller
@@ -41,7 +41,7 @@ module ActiveAdmin
41
41
  end
42
42
 
43
43
  @scope_method = nil if @scope_method == :all
44
- if block_given?
44
+ if block
45
45
  @scope_method = nil
46
46
  @scope_block = block
47
47
  end
@@ -13,7 +13,7 @@ module ActiveAdmin
13
13
 
14
14
  def register(name, value)
15
15
  class_attribute name
16
- send "#{name}=", value
16
+ send :"#{name}=", value
17
17
  end
18
18
  end
19
19
  end
@@ -18,11 +18,6 @@ module ActiveAdmin
18
18
  "#{name.downcase.underscore}_sidebar_section".parameterize
19
19
  end
20
20
 
21
- # The title gets displayed within the section in the view
22
- def title
23
- I18n.t("active_admin.sidebars.#{name}", default: name.titlecase)
24
- end
25
-
26
21
  # If a block is not passed in, the name of the partial to render
27
22
  def partial_name
28
23
  options[:partial] || "#{name.downcase.tr(' ', '_')}_sidebar"
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ActiveAdmin
3
- VERSION = "3.2.0"
3
+ VERSION = "4.0.0.beta2"
4
4
  end
@@ -1,21 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
  module ActiveAdmin
3
3
  module ViewHelpers
4
-
5
4
  # Require all ruby files in the view helpers dir
6
5
  Dir[File.expand_path("view_helpers", __dir__) + "/*.rb"].each { |f| require f }
7
6
 
8
- include ActiveAdminApplicationHelper
9
- include AutoLinkHelper
10
- include BreadcrumbHelper
11
- include DisplayHelper
12
7
  include MethodOrProcHelper
13
- include SidebarHelper
14
- include FormHelper
15
- include TitleHelper
16
- include ViewFactoryHelper
17
- include FlashHelper
18
- include ScopeNameHelper
19
-
20
8
  end
21
9
  end
@@ -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,7 +131,7 @@ 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 ? "<legend><span>#{legend}</span></legend>" : ""
134
+ legend_tag = legend ? "<legend class=\"fieldset-title\">#{legend}</legend>" : ""
131
135
  fieldset_attrs = html_options.map { |k, v| %Q{#{k}="#{v}"} }.join(" ")
132
136
  @opening_tag = "<fieldset #{fieldset_attrs}>#{legend_tag}<ol>"
133
137
  @closing_tag = "</ol></fieldset>"
@@ -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)
@@ -23,13 +24,7 @@ module ActiveAdmin
23
24
  def row(*args, &block)
24
25
  title = args[0]
25
26
  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(" ")
27
+ options["data-row"] = title.to_s.parameterize(separator: "_") if title.present?
33
28
 
34
29
  @table << tr(options) do
35
30
  th do
@@ -59,10 +54,7 @@ module ActiveAdmin
59
54
  within @table do
60
55
  col # column for row headers
61
56
  @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)
57
+ col(id: dom_id_for(record))
66
58
  end
67
59
  end
68
60
  end
@@ -76,7 +68,7 @@ module ActiveAdmin
76
68
  end
77
69
 
78
70
  def empty_value
79
- span I18n.t("active_admin.empty"), class: "empty"
71
+ span I18n.t("active_admin.empty"), class: "attributes-table-empty-value"
80
72
  end
81
73
 
82
74
  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,59 +102,55 @@ 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 = collection.offset(collection.current_page * collection.limit_value).limit(1).count
107
- options[:total_pages] = collection.current_page + offset
105
+ offset = @collection.offset(@collection.current_page * @collection.limit_value).limit(1).count
106
+ options[:total_pages] = @collection.current_page + offset
108
107
  options[:right] = 0
109
108
  end
110
109
 
111
- text_node paginate collection, **options
110
+ text_node paginate @collection, **options
112
111
  end
113
112
 
114
- include ::ActiveAdmin::Helpers::Collection
115
- include ::ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
116
-
117
113
  # modified from will_paginate
118
114
  def page_entries_info(options = {})
119
115
  if options[:entry_name]
120
116
  entry_name = options[:entry_name]
121
117
  entries_name = options[:entries_name] || entry_name.pluralize
122
- elsif collection_is_empty?
118
+ elsif collection_empty?(@collection)
123
119
  entry_name = I18n.t "active_admin.pagination.entry", count: 1, default: "entry"
124
120
  entries_name = I18n.t "active_admin.pagination.entry", count: 2, default: "entries"
125
121
  else
126
- key = "activerecord.models." + collection.first.class.model_name.i18n_key.to_s
122
+ key = "activerecord.models." + @collection.first.class.model_name.i18n_key.to_s
127
123
 
128
- entry_name = I18n.translate key, count: 1, default: collection.first.class.name.underscore.sub("_", " ")
129
- entries_name = I18n.translate key, count: collection.size, default: entry_name.pluralize
124
+ entry_name = I18n.translate key, count: 1, default: @collection.first.class.name.underscore.sub("_", " ")
125
+ entries_name = I18n.translate key, count: @collection.size, default: entry_name.pluralize
130
126
  end
131
127
 
132
128
  if @display_total
133
- if collection.total_pages < 2
134
- case collection_size
129
+ if @collection.total_pages < 2
130
+ case collection_size(@collection)
135
131
  when 0; I18n.t("active_admin.pagination.empty", model: entries_name)
136
132
  when 1; I18n.t("active_admin.pagination.one", model: entry_name)
137
- else; I18n.t("active_admin.pagination.one_page", model: entries_name, n: collection.total_count)
133
+ else; I18n.t("active_admin.pagination.one_page", model: entries_name, n: @collection.total_count)
138
134
  end
139
135
  else
140
- offset = (collection.current_page - 1) * collection.limit_value
141
- total = collection.total_count
136
+ offset = (@collection.current_page - 1) * @collection.limit_value
137
+ total = @collection.total_count
142
138
  I18n.t "active_admin.pagination.multiple",
143
139
  model: entries_name,
144
140
  total: total,
145
141
  from: offset + 1,
146
- to: offset + collection_size
142
+ to: offset + collection_size(@collection)
147
143
  end
148
144
  else
149
145
  # Do not display total count, in order to prevent a `SELECT count(*)`.
150
- # To do so we must not call `collection.total_pages`
151
- offset = (collection.current_page - 1) * collection.limit_value
146
+ # To do so we must not call `@collection.total_pages`
147
+ offset = (@collection.current_page - 1) * @collection.limit_value
152
148
  I18n.t "active_admin.pagination.multiple_without_total",
153
149
  model: entries_name,
154
150
  from: offset + 1,
155
- to: offset + collection_size
151
+ to: offset + collection_size(@collection)
156
152
  end
157
153
  end
158
-
159
154
  end
160
155
  end
161
156
  end