avo 2.46.0 → 3.0.0.pre2

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

Potentially problematic release.


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

Files changed (417) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +23 -22
  3. data/Gemfile.lock +181 -160
  4. data/README.md +1 -1
  5. data/{public/avo-assets → app/assets/builds}/avo.base.css +479 -698
  6. data/app/assets/builds/avo.base.js +93804 -0
  7. data/app/assets/builds/avo.base.js.map +7 -0
  8. data/app/assets/stylesheets/avo.base.css +2 -2
  9. data/app/assets/svgs/failed_to_load.svg +1 -0
  10. data/app/assets/svgs/font.svg +1 -0
  11. data/app/assets/svgs/grid-empty-state.svg +1 -0
  12. data/app/assets/svgs/table-empty-state.svg +1 -0
  13. data/app/assets/svgs/triangle-up.svg +1 -0
  14. data/app/components/avo/actions_component.html.erb +18 -4
  15. data/app/components/avo/actions_component.rb +12 -18
  16. data/app/components/avo/alert_component.html.erb +1 -1
  17. data/app/components/avo/asset_manager/javascript_component.html.erb +3 -0
  18. data/app/components/avo/asset_manager/javascript_component.rb +13 -0
  19. data/app/components/avo/asset_manager/stylesheet_component.html.erb +3 -0
  20. data/app/components/avo/asset_manager/stylesheet_component.rb +13 -0
  21. data/app/components/avo/base_component.rb +14 -11
  22. data/app/components/avo/button_component.rb +20 -3
  23. data/app/components/avo/empty_state_component.rb +1 -1
  24. data/app/components/avo/field_wrapper_component.html.erb +4 -4
  25. data/app/components/avo/field_wrapper_component.rb +12 -23
  26. data/app/components/avo/fields/belongs_to_field/edit_component.html.erb +96 -118
  27. data/app/components/avo/fields/belongs_to_field/edit_component.rb +5 -20
  28. data/app/components/avo/fields/belongs_to_field/index_component.html.erb +1 -1
  29. data/app/components/avo/fields/belongs_to_field/show_component.rb +2 -2
  30. data/app/components/avo/fields/boolean_field/edit_component.html.erb +1 -2
  31. data/app/components/avo/fields/boolean_group_field/edit_component.html.erb +3 -3
  32. data/app/components/avo/fields/code_field/edit_component.html.erb +0 -1
  33. data/app/components/avo/fields/common/badge_viewer_component.html.erb +24 -1
  34. data/app/components/avo/fields/common/badge_viewer_component.rb +0 -24
  35. data/app/components/avo/fields/common/boolean_group_component.html.erb +2 -2
  36. data/app/components/avo/fields/common/files_list_viewer_component.html.erb +5 -0
  37. data/app/components/avo/fields/common/files_list_viewer_component.rb +8 -0
  38. data/app/components/avo/fields/common/heading_component.html.erb +1 -1
  39. data/app/components/avo/fields/common/single_file_viewer_component.html.erb +56 -0
  40. data/app/components/avo/fields/common/single_file_viewer_component.rb +55 -0
  41. data/app/components/avo/fields/country_field/edit_component.html.erb +1 -3
  42. data/app/components/avo/fields/edit_component.rb +1 -1
  43. data/app/components/avo/fields/file_field/edit_component.html.erb +2 -4
  44. data/app/components/avo/fields/file_field/edit_component.rb +0 -1
  45. data/app/components/avo/fields/file_field/index_component.rb +2 -2
  46. data/app/components/avo/fields/file_field/show_component.html.erb +1 -1
  47. data/app/components/avo/fields/files_field/edit_component.html.erb +2 -4
  48. data/app/components/avo/fields/files_field/edit_component.rb +0 -1
  49. data/app/components/avo/fields/files_field/show_component.html.erb +1 -1
  50. data/app/components/avo/fields/has_many_field/show_component.html.erb +1 -1
  51. data/app/components/avo/fields/has_one_field/index_component.html.erb +1 -1
  52. data/app/components/avo/fields/has_one_field/show_component.html.erb +2 -2
  53. data/app/components/avo/fields/has_one_field/show_component.rb +3 -7
  54. data/app/components/avo/fields/index_component.rb +5 -6
  55. data/app/components/avo/fields/markdown_field/edit_component.html.erb +3 -4
  56. data/app/components/avo/fields/markdown_field/show_component.html.erb +3 -3
  57. data/app/components/avo/fields/number_field/edit_component.html.erb +1 -3
  58. data/app/components/avo/fields/password_field/edit_component.html.erb +1 -3
  59. data/app/components/avo/fields/preview_field/index_component.html.erb +10 -0
  60. data/app/components/avo/fields/preview_field/index_component.rb +4 -0
  61. data/app/components/avo/fields/progress_bar_field/edit_component.html.erb +0 -1
  62. data/app/components/avo/fields/select_field/edit_component.html.erb +2 -3
  63. data/app/components/avo/fields/show_component.rb +4 -1
  64. data/app/components/avo/fields/status_field/edit_component.html.erb +1 -1
  65. data/app/components/avo/fields/text_field/edit_component.html.erb +2 -3
  66. data/app/components/avo/fields/textarea_field/edit_component.html.erb +0 -1
  67. data/app/components/avo/fields/trix_field/edit_component.html.erb +1 -2
  68. data/app/components/avo/fields/trix_field/edit_component.rb +1 -1
  69. data/app/components/avo/fields/trix_field/show_component.html.erb +1 -1
  70. data/app/components/avo/filters_component.html.erb +9 -3
  71. data/app/components/avo/filters_component.rb +4 -4
  72. data/app/components/avo/index/field_wrapper_component.html.erb +1 -1
  73. data/app/components/avo/index/grid_item_component.html.erb +5 -2
  74. data/app/components/avo/index/grid_item_component.rb +7 -6
  75. data/app/components/avo/index/resource_controls_component.html.erb +3 -81
  76. data/app/components/avo/index/resource_controls_component.rb +128 -18
  77. data/app/components/avo/index/resource_grid_component.html.erb +5 -3
  78. data/app/components/avo/index/resource_grid_component.rb +5 -2
  79. data/app/components/avo/index/resource_table_component.html.erb +5 -4
  80. data/app/components/avo/index/resource_table_component.rb +14 -20
  81. data/app/components/avo/index/table_row_component.html.erb +8 -4
  82. data/app/components/avo/index/table_row_component.rb +3 -2
  83. data/app/components/avo/item_switcher_component.html.erb +5 -10
  84. data/app/components/avo/item_switcher_component.rb +2 -3
  85. data/app/components/avo/modal_component.html.erb +7 -12
  86. data/app/components/avo/modal_component.rb +0 -21
  87. data/app/components/avo/paginator_component.html.erb +40 -29
  88. data/app/components/avo/paginator_component.rb +5 -23
  89. data/app/components/avo/panel_component.html.erb +8 -11
  90. data/app/components/avo/panel_component.rb +0 -1
  91. data/app/components/avo/profile_item_component.html.erb +2 -17
  92. data/app/components/avo/profile_item_component.rb +1 -13
  93. data/app/components/avo/referrer_params_component.html.erb +1 -4
  94. data/app/components/avo/resource_component.rb +142 -30
  95. data/app/components/avo/resource_sidebar_component.html.erb +6 -2
  96. data/app/components/avo/sidebar/link_component.html.erb +0 -2
  97. data/app/components/avo/sidebar/link_component.rb +3 -5
  98. data/app/components/avo/sidebar_component.html.erb +9 -2
  99. data/app/components/avo/sidebar_component.rb +5 -3
  100. data/app/components/avo/sidebar_profile_component.html.erb +27 -20
  101. data/app/components/avo/tab_group_component.html.erb +13 -7
  102. data/app/components/avo/tab_group_component.rb +1 -6
  103. data/app/components/avo/tab_switcher_component.html.erb +17 -40
  104. data/app/components/avo/tab_switcher_component.rb +4 -39
  105. data/app/components/avo/views/resource_edit_component.html.erb +16 -52
  106. data/app/components/avo/views/resource_edit_component.rb +7 -18
  107. data/app/components/avo/views/resource_index_component.html.erb +38 -53
  108. data/app/components/avo/views/resource_index_component.rb +60 -16
  109. data/app/components/avo/views/resource_show_component.html.erb +8 -151
  110. data/app/components/avo/views/resource_show_component.rb +6 -11
  111. data/app/controllers/avo/actions_controller.rb +19 -16
  112. data/app/controllers/avo/application_controller.rb +40 -109
  113. data/app/controllers/avo/associations_controller.rb +34 -41
  114. data/app/controllers/avo/attachments_controller.rb +10 -25
  115. data/app/controllers/avo/base_controller.rb +91 -103
  116. data/app/controllers/avo/debug_controller.rb +17 -5
  117. data/app/controllers/avo/search_controller.rb +29 -54
  118. data/app/controllers/avo/team_users_controller.rb +4 -0
  119. data/app/controllers/concerns/avo/initializes_avo.rb +26 -0
  120. data/app/helpers/avo/application_helper.rb +20 -21
  121. data/app/helpers/avo/resources_helper.rb +1 -1
  122. data/app/helpers/avo/url_helpers.rb +27 -11
  123. data/app/javascript/avo.base.js +1 -0
  124. data/app/javascript/js/application.js +0 -5
  125. data/app/javascript/js/controllers/action_controller.js +5 -3
  126. data/app/javascript/js/controllers/actions_overflow_controller.js +62 -0
  127. data/app/javascript/js/controllers/fields/{easy_mde_controller.js → simple_mde_controller.js} +3 -4
  128. data/app/javascript/js/controllers/filter_controller.js +1 -1
  129. data/app/javascript/js/controllers/input_autofocus_controller.js +12 -0
  130. data/app/javascript/js/controllers/preview_controller.js +24 -0
  131. data/app/javascript/js/controllers/search_controller.js +1 -3
  132. data/app/javascript/js/controllers/self_destroy_controller.js +7 -0
  133. data/app/javascript/js/controllers/toggle_controller.js +48 -0
  134. data/app/javascript/js/controllers.js +12 -8
  135. data/app/javascript/js/custom-stream-actions.js +15 -0
  136. data/app/views/avo/{attachments/destroy.turbo_stream.erb → actions/keep_modal_open.turbo_stream.erb} +0 -2
  137. data/app/views/avo/actions/show.html.erb +12 -11
  138. data/app/views/avo/associations/new.html.erb +4 -4
  139. data/app/views/avo/base/index.html.erb +3 -2
  140. data/app/views/avo/base/new.html.erb +2 -1
  141. data/app/views/avo/base/preview.html.erb +19 -0
  142. data/app/views/avo/base/show.html.erb +1 -1
  143. data/app/views/avo/debug/_valid_indicator.html.erb +9 -0
  144. data/app/views/avo/debug/report.html.erb +32 -17
  145. data/app/views/avo/debug/{index.html.erb → status.html.erb} +31 -15
  146. data/app/views/avo/home/index.html.erb +1 -1
  147. data/app/views/avo/partials/_custom_tools_alert.html.erb +2 -2
  148. data/app/views/avo/partials/_javascript.html.erb +5 -0
  149. data/app/views/avo/partials/_logo.html.erb +1 -1
  150. data/app/views/avo/partials/_navbar.html.erb +3 -5
  151. data/app/views/avo/partials/_table_header.html.erb +5 -3
  152. data/app/views/avo/partials/_view_toggle_button.html.erb +0 -9
  153. data/app/views/avo/private/design.html.erb +2 -2
  154. data/app/views/layouts/avo/application.html.erb +3 -0
  155. data/avo.gemspec +6 -7
  156. data/bin/dev +1 -1
  157. data/bin/prod +0 -0
  158. data/config/i18n-tasks.yml +1 -1
  159. data/config/initializers/pagy.rb +10 -14
  160. data/config/master.key +1 -0
  161. data/config/routes.rb +8 -12
  162. data/db/factories.rb +7 -18
  163. data/lib/avo/action_model.rb +20 -0
  164. data/lib/avo/app.rb +90 -162
  165. data/lib/avo/asset_manager.rb +30 -0
  166. data/lib/avo/base_action.rb +38 -36
  167. data/lib/avo/base_resource.rb +108 -96
  168. data/lib/avo/base_resource_tool.rb +9 -16
  169. data/lib/avo/concerns/{can_replace_fields.rb → can_replace_items.rb} +3 -3
  170. data/lib/avo/concerns/filters_session_handler.rb +1 -0
  171. data/lib/avo/concerns/has_controls.rb +37 -0
  172. data/lib/avo/concerns/has_item_type.rb +38 -0
  173. data/lib/avo/concerns/{has_fields.rb → has_items.rb} +110 -97
  174. data/lib/avo/concerns/{has_resource_stimulus_controllers.rb → has_stimulus_controllers.rb} +1 -1
  175. data/lib/avo/concerns/is_resource_item.rb +24 -36
  176. data/lib/avo/concerns/is_visible.rb +15 -0
  177. data/lib/avo/concerns/visible_in_different_views.rb +126 -0
  178. data/lib/avo/configuration/branding.rb +0 -12
  179. data/lib/avo/configuration.rb +8 -45
  180. data/lib/avo/current.rb +5 -0
  181. data/lib/avo/dsl/field_parser.rb +1 -1
  182. data/lib/avo/dynamic_router.rb +6 -2
  183. data/lib/avo/engine.rb +37 -30
  184. data/lib/avo/error_manager.rb +25 -0
  185. data/lib/avo/execution_context.rb +9 -15
  186. data/lib/avo/fields/badge_field.rb +1 -1
  187. data/lib/avo/fields/base_field.rb +72 -124
  188. data/lib/avo/fields/belongs_to_field.rb +14 -25
  189. data/lib/avo/fields/concerns/handles_field_args.rb +49 -0
  190. data/lib/avo/fields/concerns/has_default.rb +1 -5
  191. data/lib/avo/fields/concerns/has_field_name.rb +22 -0
  192. data/lib/avo/fields/concerns/has_html_attributes.rb +110 -0
  193. data/lib/avo/fields/concerns/is_disabled.rb +1 -5
  194. data/lib/avo/fields/concerns/is_readonly.rb +1 -5
  195. data/lib/avo/fields/concerns/is_required.rb +5 -7
  196. data/lib/avo/fields/concerns/is_searchable.rb +13 -0
  197. data/lib/avo/fields/concerns/use_resource.rb +5 -1
  198. data/lib/avo/fields/country_field.rb +4 -0
  199. data/lib/avo/fields/date_field.rb +3 -16
  200. data/lib/avo/fields/date_time_field.rb +1 -5
  201. data/lib/avo/fields/field_manager.rb +45 -0
  202. data/lib/avo/fields/file_field.rb +0 -2
  203. data/lib/avo/fields/files_field.rb +0 -6
  204. data/lib/avo/fields/has_and_belongs_to_many_field.rb +1 -2
  205. data/lib/avo/fields/has_base_field.rb +11 -14
  206. data/lib/avo/fields/has_many_field.rb +5 -2
  207. data/lib/avo/fields/has_one_field.rb +5 -10
  208. data/lib/avo/fields/heading_field.rb +4 -1
  209. data/lib/avo/fields/hidden_field.rb +1 -1
  210. data/lib/avo/fields/id_field.rb +2 -3
  211. data/lib/avo/fields/password_field.rb +1 -1
  212. data/lib/avo/fields/preview_field.rb +14 -0
  213. data/lib/avo/fields/select_field.rb +12 -8
  214. data/lib/avo/fields/status_field.rb +4 -0
  215. data/lib/avo/filters/base_filter.rb +3 -8
  216. data/lib/avo/grid_collector.rb +7 -9
  217. data/lib/avo/html/builder.rb +5 -8
  218. data/lib/avo/item_grapher.rb +78 -0
  219. data/lib/avo/licensing/h_q.rb +4 -68
  220. data/lib/avo/licensing/license.rb +2 -2
  221. data/lib/avo/licensing/license_manager.rb +1 -1
  222. data/lib/avo/licensing/{nil_license.rb → null_license.rb} +1 -1
  223. data/lib/avo/licensing/pro_license.rb +1 -7
  224. data/lib/avo/plugin.rb +6 -0
  225. data/lib/avo/plugin_manager.rb +58 -0
  226. data/lib/avo/prefixed_test_helpers.rb +20 -0
  227. data/lib/avo/reloader.rb +3 -0
  228. data/lib/avo/resources/controls/actions_list.rb +6 -12
  229. data/lib/avo/resources/controls/attach_button.rb +15 -0
  230. data/lib/avo/resources/controls/back_button.rb +1 -1
  231. data/lib/avo/resources/controls/base_control.rb +15 -49
  232. data/lib/avo/resources/controls/create_button.rb +15 -0
  233. data/lib/avo/resources/controls/delete_button.rb +5 -1
  234. data/lib/avo/resources/controls/detach_button.rb +4 -1
  235. data/lib/avo/resources/controls/edit_button.rb +4 -1
  236. data/lib/avo/resources/controls/order_controls.rb +8 -0
  237. data/lib/avo/resources/controls/save_button.rb +13 -0
  238. data/lib/avo/resources/controls/show_button.rb +15 -0
  239. data/lib/avo/resources/items/holder.rb +76 -0
  240. data/lib/avo/resources/items/item_group.rb +48 -0
  241. data/lib/avo/resources/items/main_panel.rb +2 -0
  242. data/lib/avo/resources/items/panel.rb +2 -0
  243. data/lib/avo/resources/items/sidebar.rb +47 -0
  244. data/lib/avo/resources/items/tab.rb +60 -0
  245. data/lib/avo/resources/items/tab_group.rb +68 -0
  246. data/lib/avo/resources/resource_manager.rb +181 -0
  247. data/lib/avo/services/authorization_service.rb +11 -110
  248. data/lib/avo/services/debug_service.rb +92 -0
  249. data/lib/avo/services/telemetry_service.rb +84 -0
  250. data/lib/avo/test_helpers.rb +362 -0
  251. data/lib/avo/tools/tool_manager.rb +30 -0
  252. data/lib/avo/version.rb +1 -1
  253. data/lib/avo.rb +7 -0
  254. data/lib/generators/avo/eject_generator.rb +0 -1
  255. data/lib/generators/avo/install_generator.rb +1 -11
  256. data/lib/generators/avo/resource_generator.rb +5 -23
  257. data/lib/generators/avo/scope_generator.rb +15 -0
  258. data/lib/generators/avo/tailwindcss/install_generator.rb +1 -18
  259. data/lib/generators/avo/templates/action.tt +1 -1
  260. data/lib/generators/avo/templates/cards/chartkick_card.tt +1 -1
  261. data/lib/generators/avo/templates/cards/chartkick_card_sample.tt +1 -1
  262. data/lib/generators/avo/templates/cards/metric_card.tt +1 -1
  263. data/lib/generators/avo/templates/cards/metric_card_sample.tt +1 -1
  264. data/lib/generators/avo/templates/cards/partial_card.tt +1 -1
  265. data/lib/generators/avo/templates/cards/partial_card_sample.tt +1 -1
  266. data/lib/generators/avo/templates/dashboards/dashboard.tt +1 -1
  267. data/lib/generators/avo/templates/field/%singular_name%_field.rb.tt +1 -1
  268. data/lib/generators/avo/templates/filters/boolean_filter.tt +1 -1
  269. data/lib/generators/avo/templates/filters/multiple_select_filter.tt +1 -1
  270. data/lib/generators/avo/templates/filters/select_filter.tt +1 -1
  271. data/lib/generators/avo/templates/filters/text_filter.tt +1 -1
  272. data/lib/generators/avo/templates/initializer/avo.tt +1 -11
  273. data/lib/generators/avo/templates/locales/avo.ar.yml +6 -6
  274. data/lib/generators/avo/templates/locales/avo.en.yml +4 -5
  275. data/lib/generators/avo/templates/locales/avo.fr.yml +1 -2
  276. data/lib/generators/avo/templates/locales/avo.nb.yml +1 -2
  277. data/lib/generators/avo/templates/locales/avo.nn.yml +1 -2
  278. data/lib/generators/avo/templates/locales/avo.pt-BR.yml +1 -2
  279. data/lib/generators/avo/templates/locales/avo.pt.yml +1 -2
  280. data/lib/generators/avo/templates/locales/avo.ro.yml +6 -7
  281. data/lib/generators/avo/templates/locales/avo.tr.yml +1 -2
  282. data/lib/generators/avo/templates/resource/resource.tt +1 -1
  283. data/lib/generators/avo/templates/resource_tools/partial.tt +4 -4
  284. data/lib/generators/avo/templates/resource_tools/resource_tool.tt +1 -1
  285. data/lib/generators/avo/templates/scope.tt +6 -0
  286. data/lib/generators/avo/templates/standalone_action.tt +1 -1
  287. data/lib/generators/avo/templates/tailwindcss/Procfile.dev +1 -1
  288. data/lib/generators/avo/templates/tool/view.tt +2 -2
  289. data/lib/tasks/avo_tasks.rake +22 -0
  290. metadata +82 -161
  291. data/app/assets/stylesheets/css/tags.css +0 -32
  292. data/app/assets/svgs/map-empty-state.svg +0 -35
  293. data/app/assets/svgs/map-view-type.svg +0 -3
  294. data/app/components/avo/card_component.html.erb +0 -46
  295. data/app/components/avo/card_component.rb +0 -25
  296. data/app/components/avo/dashboards/divider_component.html.erb +0 -9
  297. data/app/components/avo/dashboards/divider_component.rb +0 -19
  298. data/app/components/avo/fields/area_field/edit_component.html.erb +0 -7
  299. data/app/components/avo/fields/area_field/edit_component.rb +0 -4
  300. data/app/components/avo/fields/area_field/show_component.html.erb +0 -8
  301. data/app/components/avo/fields/area_field/show_component.rb +0 -4
  302. data/app/components/avo/fields/belongs_to_field/autocomplete_component.html.erb +0 -47
  303. data/app/components/avo/fields/belongs_to_field/autocomplete_component.rb +0 -95
  304. data/app/components/avo/fields/common/files/controls_component.html.erb +0 -29
  305. data/app/components/avo/fields/common/files/controls_component.rb +0 -19
  306. data/app/components/avo/fields/common/files/list_viewer_component.html.erb +0 -20
  307. data/app/components/avo/fields/common/files/list_viewer_component.rb +0 -41
  308. data/app/components/avo/fields/common/files/view_type/grid_item_component.html.erb +0 -27
  309. data/app/components/avo/fields/common/files/view_type/grid_item_component.rb +0 -52
  310. data/app/components/avo/fields/common/files/view_type/list_item_component.html.erb +0 -22
  311. data/app/components/avo/fields/common/files/view_type/list_item_component.rb +0 -15
  312. data/app/components/avo/fields/location_field/edit_component.html.erb +0 -22
  313. data/app/components/avo/fields/location_field/edit_component.rb +0 -4
  314. data/app/components/avo/fields/location_field/show_component.html.erb +0 -7
  315. data/app/components/avo/fields/location_field/show_component.rb +0 -4
  316. data/app/components/avo/fields/tags_field/edit_component.html.erb +0 -35
  317. data/app/components/avo/fields/tags_field/edit_component.rb +0 -4
  318. data/app/components/avo/fields/tags_field/index_component.html.erb +0 -10
  319. data/app/components/avo/fields/tags_field/index_component.rb +0 -9
  320. data/app/components/avo/fields/tags_field/show_component.html.erb +0 -7
  321. data/app/components/avo/fields/tags_field/show_component.rb +0 -5
  322. data/app/components/avo/fields/tags_field/tag_component.html.erb +0 -9
  323. data/app/components/avo/fields/tags_field/tag_component.rb +0 -11
  324. data/app/components/avo/index/ordering/base_component.rb +0 -9
  325. data/app/components/avo/index/ordering/button_component.html.erb +0 -11
  326. data/app/components/avo/index/ordering/button_component.rb +0 -23
  327. data/app/components/avo/index/ordering/buttons_component.html.erb +0 -32
  328. data/app/components/avo/index/ordering/buttons_component.rb +0 -47
  329. data/app/components/avo/index/resource_map_component.html.erb +0 -16
  330. data/app/components/avo/index/resource_map_component.rb +0 -109
  331. data/app/components/avo/row_component.html.erb +0 -3
  332. data/app/components/avo/row_component.rb +0 -12
  333. data/app/components/avo/sidebar/item_switcher_component.html.erb +0 -16
  334. data/app/components/avo/sidebar/item_switcher_component.rb +0 -15
  335. data/app/controllers/avo/dashboards/cards_controller.rb +0 -37
  336. data/app/controllers/avo/dashboards_controller.rb +0 -22
  337. data/app/controllers/avo/reorder_controller.rb +0 -25
  338. data/app/javascript/js/controllers/base_controller.js +0 -22
  339. data/app/javascript/js/controllers/fields/reload_belongs_to_field_controller.js +0 -51
  340. data/app/javascript/js/controllers/fields/tags_field_controller.js +0 -127
  341. data/app/javascript/js/controllers/toggle_panel_controller.js +0 -18
  342. data/app/views/avo/base/_new_via_belongs_to.html.erb +0 -12
  343. data/app/views/avo/base/close_modal_and_reload_field.turbo_stream.erb +0 -8
  344. data/app/views/avo/base/create_fail_action.turbo_stream.erb +0 -13
  345. data/app/views/avo/dashboards/cards/_chartkick_card.html.erb +0 -3
  346. data/app/views/avo/dashboards/cards/_metric_card.html.erb +0 -5
  347. data/app/views/avo/dashboards/cards/chartkick_missing.html.erb +0 -14
  348. data/app/views/avo/dashboards/cards/show.html.erb +0 -3
  349. data/app/views/avo/dashboards/show.html.erb +0 -38
  350. data/app/views/avo/partials/_flash_alerts.turbo_stream.erb +0 -3
  351. data/app/views/avo/partials/_global_search.html.erb +0 -19
  352. data/app/views/avo/partials/_profile_menu_extra.html.erb +0 -2
  353. data/app/views/avo/sidebar/_license_warnings.html.erb +0 -6
  354. data/lib/avo/base_card.rb +0 -161
  355. data/lib/avo/concerns/fetches_things.rb +0 -150
  356. data/lib/avo/concerns/handles_field_args.rb +0 -47
  357. data/lib/avo/concerns/has_action_stimulus_controllers.rb +0 -15
  358. data/lib/avo/concerns/has_editable_controls.rb +0 -34
  359. data/lib/avo/concerns/has_html_attributes.rb +0 -123
  360. data/lib/avo/concerns/pagination.rb +0 -53
  361. data/lib/avo/concerns/policy_helpers.rb +0 -31
  362. data/lib/avo/concerns/visible_in_dashboard.rb +0 -31
  363. data/lib/avo/concerns/visible_items.rb +0 -51
  364. data/lib/avo/dashboards/base_dashboard.rb +0 -89
  365. data/lib/avo/dashboards/base_divider.rb +0 -35
  366. data/lib/avo/dashboards/chartkick_card.rb +0 -77
  367. data/lib/avo/dashboards/dashboard_card.rb +0 -6
  368. data/lib/avo/dashboards/metric_card.rb +0 -9
  369. data/lib/avo/dashboards/partial_card.rb +0 -7
  370. data/lib/avo/fields/area_field.rb +0 -39
  371. data/lib/avo/fields/concerns/file_authorization.rb +0 -31
  372. data/lib/avo/fields/field_extensions/has_field_name.rb +0 -19
  373. data/lib/avo/fields/field_extensions/visible_in_different_views.rb +0 -111
  374. data/lib/avo/fields/location_field.rb +0 -86
  375. data/lib/avo/fields/tags_field.rb +0 -102
  376. data/lib/avo/hosts/association_scope_host.rb +0 -8
  377. data/lib/avo/hosts/base_host.rb +0 -25
  378. data/lib/avo/hosts/card_visibility.rb +0 -20
  379. data/lib/avo/hosts/dashboard_card.rb +0 -22
  380. data/lib/avo/hosts/dashboard_visibility.rb +0 -19
  381. data/lib/avo/hosts/ordering.rb +0 -22
  382. data/lib/avo/hosts/record_host.rb +0 -7
  383. data/lib/avo/hosts/resource_record_host.rb +0 -7
  384. data/lib/avo/hosts/resource_view_record_host.rb +0 -7
  385. data/lib/avo/hosts/search_scope_host.rb +0 -7
  386. data/lib/avo/hosts/view_record_host.rb +0 -7
  387. data/lib/avo/hosts/visibility_host.rb +0 -12
  388. data/lib/avo/items_holder.rb +0 -96
  389. data/lib/avo/main_panel.rb +0 -3
  390. data/lib/avo/menu/base_item.rb +0 -25
  391. data/lib/avo/menu/builder.rb +0 -82
  392. data/lib/avo/menu/dashboard.rb +0 -22
  393. data/lib/avo/menu/group.rb +0 -2
  394. data/lib/avo/menu/link.rb +0 -6
  395. data/lib/avo/menu/menu.rb +0 -2
  396. data/lib/avo/menu/resource.rb +0 -22
  397. data/lib/avo/menu/section.rb +0 -2
  398. data/lib/avo/panel.rb +0 -24
  399. data/lib/avo/panel_builder.rb +0 -25
  400. data/lib/avo/resources/controls/action.rb +0 -38
  401. data/lib/avo/resources/controls/execution_context.rb +0 -58
  402. data/lib/avo/resources/controls/items_holder.rb +0 -19
  403. data/lib/avo/resources/controls/link_to.rb +0 -27
  404. data/lib/avo/row.rb +0 -26
  405. data/lib/avo/row_builder.rb +0 -24
  406. data/lib/avo/services/authorization_clients/nil_client.rb +0 -37
  407. data/lib/avo/services/authorization_clients/pundit_client.rb +0 -51
  408. data/lib/avo/sidebar.rb +0 -30
  409. data/lib/avo/sidebar_builder.rb +0 -24
  410. data/lib/avo/tab.rb +0 -72
  411. data/lib/avo/tab_builder.rb +0 -25
  412. data/lib/avo/tab_group.rb +0 -42
  413. data/lib/avo/tab_group_builder.rb +0 -43
  414. data/lib/avo/tools_manager.rb +0 -11
  415. data/lib/generators/avo/templates/locales/avo.es.yml +0 -126
  416. data/public/avo-assets/avo.base.js +0 -1037
  417. data/public/avo-assets/avo.base.js.map +0 -7
@@ -0,0 +1,30 @@
1
+ module Avo
2
+ module Tools
3
+ class ToolManager
4
+ class << self
5
+ def build
6
+ new
7
+ end
8
+ end
9
+
10
+ # Insert any partials that we find in app/views/avo/sidebar/items.
11
+ def get_sidebar_partials
12
+ Dir.glob(Rails.root.join("app", "views", "avo", "sidebar", "items", "*.html.erb"))
13
+ .map do |path|
14
+ File.basename path
15
+ end
16
+ .map do |filename|
17
+ # remove the leading underscore (_)
18
+ filename[0] = ""
19
+ # remove the extension
20
+ filename.gsub!(".html.erb", "")
21
+ filename
22
+ end
23
+ end
24
+
25
+ def tools_for_navigation
26
+ get_sidebar_partials
27
+ end
28
+ end
29
+ end
30
+ end
data/lib/avo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Avo
2
- VERSION = "2.46.0" unless const_defined?(:VERSION)
2
+ VERSION = "3.0.0.pre2" unless const_defined?(:VERSION)
3
3
  end
data/lib/avo.rb CHANGED
@@ -42,6 +42,7 @@ module Avo
42
42
  COOKIES_KEY = "avo"
43
43
  ENTITIES = {
44
44
  cards: ["app", "avo", "cards"],
45
+ scopes: ["app", "avo", "scopes"],
45
46
  fields: ["app", "avo", "fields"],
46
47
  filters: ["app", "avo", "filters"],
47
48
  actions: ["app", "avo", "actions"],
@@ -59,6 +60,12 @@ module Avo
59
60
  class NoPolicyError < StandardError; end
60
61
 
61
62
  class MissingGemError < StandardError; end
63
+
64
+ class << self
65
+ def avo_filters_installed?
66
+ defined?(AvoFilters).present?
67
+ end
68
+ end
62
69
  end
63
70
 
64
71
  loader.eager_load
@@ -17,7 +17,6 @@ module Generators
17
17
  pre_head: "app/views/avo/partials/_pre_head.html.erb",
18
18
  scripts: "app/views/avo/partials/_scripts.html.erb",
19
19
  sidebar_extra: "app/views/avo/partials/_sidebar_extra.html.erb",
20
- profile_menu_extra: "app/views/avo/partials/_profile_menu_extra.html.erb",
21
20
  }
22
21
 
23
22
  def handle
@@ -13,17 +13,7 @@ module Generators
13
13
  route "mount Avo::Engine, at: Avo.configuration.root_path"
14
14
 
15
15
  template "initializer/avo.tt", "config/initializers/avo.rb"
16
- create_resources
17
- end
18
-
19
- def create_resources
20
- if defined?(User).present?
21
- Rails::Generators.invoke("avo:resource", ["user", "-q"], {destination_root: Rails.root })
22
- end
23
-
24
- if defined?(Account).present?
25
- Rails::Generators.invoke("avo:resource", ["account", "-q"], {destination_root: Rails.root })
26
- end
16
+ directory File.join(__dir__, "templates", "locales"), "config/locales"
27
17
  end
28
18
  end
29
19
  end
@@ -18,7 +18,7 @@ module Generators
18
18
  end
19
19
 
20
20
  def resource_class
21
- "#{class_name.remove(":")}Resource"
21
+ "#{class_name.remove(":")}"
22
22
  end
23
23
 
24
24
  def controller_class
@@ -26,7 +26,7 @@ module Generators
26
26
  end
27
27
 
28
28
  def resource_name
29
- "#{model_resource_name}_resource"
29
+ "#{model_resource_name}"
30
30
  end
31
31
 
32
32
  def controller_name
@@ -87,20 +87,12 @@ module Generators
87
87
  end
88
88
  end
89
89
 
90
- def rich_texts
91
- @rich_texts ||= reflections.select do |_, reflection|
92
- reflection.options[:class_name] == "ActionText::RichText"
93
- end
94
- end
95
-
96
90
  def tags
97
91
  @tags ||= reflections.select { |_, reflection| reflection.options[:as] == :taggable }
98
92
  end
99
93
 
100
94
  def associations
101
- @associations ||= reflections.reject do |key|
102
- attachments.key?(key) || tags.key?(key) || rich_texts.key?(key)
103
- end
95
+ @associations ||= reflections.reject { |key| attachments.key?(key) || tags.key?(key) }
104
96
  end
105
97
 
106
98
  def fields
@@ -123,7 +115,6 @@ module Generators
123
115
  fields_from_model_enums
124
116
  fields_from_model_attachements
125
117
  fields_from_model_associations
126
- fields_from_model_rich_texts
127
118
  fields_from_model_tags
128
119
 
129
120
  generated_fields_template
@@ -135,9 +126,6 @@ module Generators
135
126
  fields_string = "\n # Fields generated from the model"
136
127
 
137
128
  fields.each do |field_name, field_options|
138
- # if field_options are not available (likely a missing resource for an association), skip the field
139
- fields_string += "\n # Could not generate a field for #{field_name}" and next unless field_options
140
-
141
129
  options = ""
142
130
  field_options[:options].each { |k, v| options += ", #{k}: #{v}" } if field_options[:options].present?
143
131
 
@@ -161,12 +149,6 @@ module Generators
161
149
  generated_fields_template
162
150
  end
163
151
 
164
- def fields_from_model_rich_texts
165
- rich_texts.each do |name, _|
166
- fields[(name.delete_prefix("rich_text_"))] = {field: "trix"}
167
- end
168
- end
169
-
170
152
  def fields_from_model_tags
171
153
  tags.each do |name, _|
172
154
  fields[(remove_last_word_from name).pluralize] = {field: "tags"}
@@ -184,7 +166,7 @@ module Generators
184
166
  end
185
167
 
186
168
  def field_from_through_association(association)
187
- if association.through_reflection.is_a?(ActiveRecord::Reflection::HasManyReflection) || association.through_reflection.is_a?(ActiveRecord::Reflection::ThroughReflection)
169
+ if association.through_reflection.is_a? ActiveRecord::Reflection::HasManyReflection
188
170
  {
189
171
  field: "has_many",
190
172
  options: {
@@ -219,7 +201,7 @@ module Generators
219
201
  fields[enum] = {
220
202
  field: "select",
221
203
  options: {
222
- enum: "::#{model_class.classify}.#{enum.pluralize}"
204
+ enum: "::#{model_class.capitalize}.#{enum.pluralize}"
223
205
  }
224
206
  }
225
207
  end
@@ -0,0 +1,15 @@
1
+ require_relative "named_base_generator"
2
+
3
+ module Generators
4
+ module Avo
5
+ class ScopeGenerator < NamedBaseGenerator
6
+ source_root File.expand_path("templates", __dir__)
7
+
8
+ namespace "avo:scope"
9
+
10
+ def create
11
+ template "scope.tt", "app/avo/scopes/#{singular_name}.rb"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -21,7 +21,7 @@ module Generators
21
21
  end
22
22
 
23
23
  if Rails.root.join("Procfile.dev").exist?
24
- append_to_file "Procfile.dev", "avo_css: yarn avo:tailwindcss --watch\n"
24
+ append_to_file "Procfile.dev", "avo_css: bin/rails avo:tailwindcss:watch\n"
25
25
  else
26
26
  say "Add default Procfile.dev"
27
27
  copy_file template_path("Procfile.dev"), "Procfile.dev"
@@ -38,20 +38,9 @@ module Generators
38
38
 
39
39
  say "Adding the CSS asset to the partial"
40
40
  prepend_to_file Rails.root.join("app", "views", "avo", "partials", "_pre_head.html.erb"), "<%= stylesheet_link_tag \"avo.tailwind.css\", media: \"all\" %>"
41
-
42
- tailwind_script = setup_tailwind_script
43
- say "Ensure you have the following script in your package.json file.", :yellow
44
- say %("scripts": { "avo:tailwindcss": "#{tailwind_script}" --minify }), :green
45
41
  end
46
42
 
47
43
  no_tasks do
48
- def setup_tailwind_script
49
- tailwind_config_path = tailwindcss_config_path()
50
- tailwind_script = "tailwindcss -i ./app/assets/stylesheets/avo.tailwind.css -o ./app/assets/builds/avo.tailwind.css"
51
- tailwind_script += " -c #{tailwind_config_path}" if tailwind_config_path
52
- tailwind_script
53
- end
54
-
55
44
  def template_path(filename)
56
45
  Pathname.new(__dir__).join("..", "templates", "tailwindcss", filename).to_s
57
46
  end
@@ -59,12 +48,6 @@ module Generators
59
48
  def tailwindcss_installed?
60
49
  Rails.root.join("config", "tailwind.config.js").exist? || Rails.root.join("tailwind.config.js").exist?
61
50
  end
62
-
63
- def tailwindcss_config_path
64
- if Rails.root.join("config", "tailwind.config.js").exist?
65
- "./config/tailwind.config.js"
66
- end
67
- end
68
51
  end
69
52
  end
70
53
  end
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::BaseAction
1
+ class Avo::Actions::<%= class_name.camelize %> < Avo::BaseAction
2
2
  self.name = "<%= name.underscore.humanize %>"
3
3
  # self.visible = -> do
4
4
  # true
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Dashboards::ChartkickCard
1
+ class Avo::Cards::<%= class_name.camelize %> < AvoDashboards::ChartkickCard
2
2
  self.id = "<%= name.underscore %>"
3
3
  self.label = "<%= name.underscore.humanize %>"
4
4
  self.chart_type = :area_chart
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Dashboards::ChartkickCard
1
+ class Avo::Cards::<%= class_name.camelize %> < AvoDashboards::ChartkickCard
2
2
  self.id = "<%= name.underscore %>"
3
3
  self.label = "<%= name.underscore.humanize %>"
4
4
  self.chart_type = :area_chart
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Dashboards::MetricCard
1
+ class Avo::Cards::<%= class_name.camelize %> < AvoDashboards::MetricCard
2
2
  self.id = "<%= name.underscore %>"
3
3
  self.label = "<%= name.underscore.humanize %>"
4
4
 
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Dashboards::MetricCard
1
+ class Avo::Cards::<%= class_name.camelize %> < AvoDashboards::MetricCard
2
2
  self.id = "<%= name.underscore %>"
3
3
  self.label = "<%= name.underscore.humanize %>"
4
4
  # self.description = "Some description"
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Dashboards::PartialCard
1
+ class Avo::Cards::<%= class_name.camelize %> < AvoDashboards::PartialCard
2
2
  self.id = "<%= name.underscore %>"
3
3
  self.label = "<%= name.underscore.humanize %>"
4
4
  self.partial = "avo/cards/<%= name.underscore %>"
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Dashboards::PartialCard
1
+ class Avo::Cards::<%= class_name.camelize %> < AvoDashboards::PartialCard
2
2
  self.id = "<%= name.underscore %>"
3
3
  self.label = "<%= name.underscore.humanize %>"
4
4
  self.partial = "avo/cards/<%= name.underscore %>"
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Dashboards::BaseDashboard
1
+ class Avo::Dashboards::<%= class_name.camelize %> < AvoDashboards::BaseDashboard
2
2
  self.id = "<%= name.underscore %>"
3
3
  self.name = "<%= name.underscore.humanize %>"
4
4
  # self.description = "Tiny dashboard description"
@@ -1,4 +1,4 @@
1
- class <%= class_name %>Field < Avo::Fields::BaseField
1
+ class Avo::Fields::<%= class_name %>Field < Avo::Fields::BaseField
2
2
  def initialize(name, **args, &block)
3
3
  super(name, **args, &block)
4
4
  end
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Filters::BooleanFilter
1
+ class Avo::Filters::<%= class_name.camelize %> < Avo::Filters::BooleanFilter
2
2
  self.name = "<%= name.underscore.humanize %>"
3
3
  # self.visible = -> do
4
4
  # true
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Filters::MultipleSelectFilter
1
+ class Avo::Filters::<%= class_name.camelize %> < Avo::Filters::MultipleSelectFilter
2
2
  self.name = "<%= name.underscore.humanize %>"
3
3
  # self.visible = -> do
4
4
  # true
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Filters::SelectFilter
1
+ class Avo::Filters::<%= class_name.camelize %> < Avo::Filters::SelectFilter
2
2
  self.name = "<%= name.underscore.humanize %>"
3
3
  # self.visible = -> do
4
4
  # true
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Filters::TextFilter
1
+ class Avo::Filters::<%= class_name.camelize %> < Avo::Filters::TextFilter
2
2
  self.name = "<%= name.underscore.humanize %>"
3
3
  self.button_label = 'Filter by <%= class_name.underscore.humanize.downcase.gsub(' filter', '') %>'
4
4
  # self.visible = -> do
@@ -2,8 +2,6 @@
2
2
  Avo.configure do |config|
3
3
  ## == Routing ==
4
4
  config.root_path = '/<%= options[:path] %>'
5
- # used only when you have custom `map` configuration in your config.ru
6
- # config.prefix_path = "/internal"
7
5
 
8
6
  # Where should the user be redirected when visting the `/<%= options[:path] %>` url
9
7
  # config.home_path = nil
@@ -31,7 +29,6 @@ Avo.configure do |config|
31
29
  # update: 'update?',
32
30
  # create: 'create?',
33
31
  # destroy: 'destroy?',
34
- # search: 'search?',
35
32
  # }
36
33
  # config.raise_error_on_missing_policy = false
37
34
  # config.authorization_client = :pundit
@@ -47,13 +44,6 @@ Avo.configure do |config|
47
44
  # config.per_page_steps = [12, 24, 48, 72]
48
45
  # config.via_per_page = 8
49
46
  # config.id_links_to_resource = false
50
-
51
- ## == Cache options ==
52
- ## Provide a lambda to customize the cache store used by Avo.
53
- ## We compute the cache store by default, this is NOT the default, just an example.
54
- # config.cache_store = -> {
55
- # ActiveSupport::Cache.lookup_store(:solid_cache_store)
56
- # }
57
47
  # config.cache_resources_on_index_view = true
58
48
  ## permanent enable or disable cache_resource_filters, default value is false
59
49
  # config.cache_resource_filters = false
@@ -71,7 +61,7 @@ Avo.configure do |config|
71
61
  # config.view_component_path = "app/components"
72
62
  # config.display_license_request_timeout_error = true
73
63
  # config.disabled_features = []
74
- # config.tabs_style = :tabs # can be :tabs or :pills
64
+ # config.resource_controls = :right
75
65
  # config.buttons_on_form_footers = true
76
66
  # config.field_wrapper_layout = true
77
67
 
@@ -1,17 +1,17 @@
1
1
  ---
2
2
  ar:
3
3
  avo:
4
- action_ran_successfully: تم تنفيذ الأمر بنجاح!
4
+ action_ran_successfully: 'تم تنفيذ الأمر بنجاح!'
5
5
  actions: أوامر
6
6
  and_x_other_resources: و %{count} موارد أخرى
7
7
  are_you_sure: هل أنت متأكد؟
8
- are_you_sure_detach_item: هل أنت متأكد أنك تريد فصل هذا الـ%{item}؟
8
+ are_you_sure_detach_item: هل أنت متأكد أنك تريد فصل هذا الـ٪{item}؟
9
9
  are_you_sure_you_want_to_run_this_option: هل أنت متأكد أنك تريد تشغيل هذا الخيار؟
10
10
  attach: ربط
11
11
  attach_and_attach_another: ربط وربط آخر
12
12
  attach_item: ربط %{item}
13
- attachment_class_attached: "%{attachment_class} تم ربط"
14
- attachment_class_detached: "%{attachment_class} تم فصل"
13
+ attachment_class_attached: '%{attachment_class} تم ربط'
14
+ attachment_class_detached: '%{attachment_class} تم فصل'
15
15
  attachment_destroyed: تم حذف المرفق
16
16
  cancel: إلغاء
17
17
  choose_a_country: اختر دولة
@@ -80,7 +80,6 @@ ar:
80
80
  to_top: حرك السجل للأعلى بشكل كامل
81
81
  per_page: لكل صفحة
82
82
  prev_page: الصفحة السابقة
83
- records_selected_from_all_pages_html: جميع السجلات مختارة من جميع الصفحات
84
83
  remove_selection: إزالة التحديد
85
84
  reset_filters: إعادة تعيين الفلاتر
86
85
  resource_created: تم إنشاء السجل
@@ -122,5 +121,6 @@ ar:
122
121
  zero: لا توجد عناصر إضافية
123
122
  x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> السجلات المحددة في هذه الصفحة من إجمالي<span class="font-bold text-gray-700">%{count}</span>
124
123
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> السجلات المحددة من كل الصفحات
125
- x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> السجلات المختارة في هذه الصفحة
126
124
  you_missed_something_check_form: ربما نسيت شيئًا، يرجى التحقق من البيانات.
125
+
126
+
@@ -23,6 +23,7 @@ en:
23
23
  create_new_item: Create new %{item}
24
24
  dashboard: Dashboard
25
25
  dashboards: Dashboards
26
+ default_scope: All
26
27
  delete: delete
27
28
  delete_file: Delete file
28
29
  delete_item: Delete %{item}
@@ -43,9 +44,9 @@ en:
43
44
  other: files
44
45
  zero: files
45
46
  people:
46
- one: peep
47
- other: peeps
48
- zero: peeps
47
+ one: person
48
+ other: people
49
+ zero: people
49
50
  filter_by: Filter by
50
51
  filters: Filters
51
52
  go_back: Go back
@@ -80,7 +81,6 @@ en:
80
81
  to_top: Move record to top
81
82
  per_page: Per page
82
83
  prev_page: Previous page
83
- records_selected_from_all_pages_html: All records selected from all pages
84
84
  remove_selection: Remove selection
85
85
  reset_filters: Reset filters
86
86
  resource_created: Record created
@@ -122,5 +122,4 @@ en:
122
122
  zero: no more items
123
123
  x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> records selected on this page from a total of <span class="font-bold text-gray-700">%{count}</span>
124
124
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> records selected from all pages
125
- x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> records selected on this page
126
125
  you_missed_something_check_form: You might have missed something. Please check the form.
@@ -23,6 +23,7 @@ fr:
23
23
  create_new_item: Créer un nouveau %{item}
24
24
  dashboard: Tableau de bord
25
25
  dashboards: Tableaux de bord
26
+ default_scope: Tout
26
27
  delete: supprimer
27
28
  delete_file: Supprimer le fichier
28
29
  delete_item: Supprimer %{item}
@@ -80,7 +81,6 @@ fr:
80
81
  to_top: Déplacer tout en haut
81
82
  per_page: Par page
82
83
  prev_page: Page précédente
83
- records_selected_from_all_pages_html: tous les éléments sélectionnés de toutes les pages
84
84
  remove_selection: Supprimer la sélection
85
85
  reset_filters: Réinitialiser les filtres
86
86
  resource_created: Ressource créee
@@ -118,5 +118,4 @@ fr:
118
118
  zero: aucun élément supplémentaire
119
119
  x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> enregistrements sélectionnés sur cette page sur un total de <span class="font-bold text-gray-700">%{count}</span>
120
120
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> enregistrements sélectionnés dans toutes les pages
121
- x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> éléments sélectionnés de cette page
122
121
  you_missed_something_check_form: Vous avez peut-être oublié quelque chose. Veuillez vérifier le formulaire
@@ -23,6 +23,7 @@ nb:
23
23
  create_new_item: Lag ny %{item}
24
24
  dashboard: Dashboard
25
25
  dashboards: Dashboards
26
+ default_scope: Alle
26
27
  delete: slett
27
28
  delete_file: Slett fil
28
29
  delete_item: Slett %{item}
@@ -80,7 +81,6 @@ nb:
80
81
  to_top: Flytt elementet til toppen
81
82
  per_page: Per side
82
83
  prev_page: Forrige side
83
- records_selected_from_all_pages_html: Alle poster valgt fra alle sider
84
84
  remove_selection: Fjern valg
85
85
  reset_filters: Nullstill filter
86
86
  resource_created: Ressurs generert
@@ -118,5 +118,4 @@ nb:
118
118
  zero: ingen flere elementer
119
119
  x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> poster valgt på denne siden fra totalt <span class="font-bold text-gray-700">%{count}</span>
120
120
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> poster valgt fra alle sider
121
- x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> poster valgt på denne siden
122
121
  you_missed_something_check_form: Her mangler du noe. Vennligst sjekk skjemaet.
@@ -23,6 +23,7 @@ nn:
23
23
  create_new_item: Lag ny %{item}
24
24
  dashboard: Dashboard
25
25
  dashboards: Dashboards
26
+ default_scope: Alle
26
27
  delete: slett
27
28
  delete_file: Slett fil
28
29
  delete_item: Slett %{item}
@@ -80,7 +81,6 @@ nn:
80
81
  to_top: Flytt elementet til toppen
81
82
  per_page: Per side
82
83
  prev_page: Førre side
83
- records_selected_from_all_pages_html: Alle poster valgt fra alle sider
84
84
  remove_selection: Fjern val
85
85
  reset_filters: Nullstill filter
86
86
  resource_created: Ressurs generert
@@ -118,5 +118,4 @@ nn:
118
118
  zero: ingen fleire element
119
119
  x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> valde postar på denne sida av totalt <span class="font-bold text-gray-700">%{count}</span>
120
120
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> valde postar frå alle sider
121
- x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> poster valgt på denne siden
122
121
  you_missed_something_check_form: Her manglar du noko. Ver venleg og sjekk skjemaet.
@@ -23,6 +23,7 @@ pt-BR:
23
23
  create_new_item: Criar novo %{item}
24
24
  dashboard: Painel
25
25
  dashboards: Painéis
26
+ default_scope: Todos
26
27
  delete: deletar
27
28
  delete_file: Deletar arquivo
28
29
  delete_item: Deletar %{item}
@@ -80,7 +81,6 @@ pt-BR:
80
81
  to_top: Mover registro para cima
81
82
  per_page: Por página
82
83
  prev_page: Página anterior
83
- records_selected_from_all_pages_html: Todos os registros de todas as páginas selecionados
84
84
  remove_selection: Remover seleção
85
85
  reset_filters: Limpar filtros
86
86
  resource_created: Recurso criado
@@ -118,5 +118,4 @@ pt-BR:
118
118
  zero: mais nenhum item
119
119
  x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> registros selecionados nesta página de um total de <span class="font-bold text-gray-700">%{count}</span>
120
120
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> registros selecionados de todas as páginas
121
- x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> registros selecionados nesta página
122
121
  you_missed_something_check_form: Você pode ter esquecido algo. Por favor, cheque o formulário.
@@ -23,6 +23,7 @@ pt:
23
23
  create_new_item: Criar novo %{item}
24
24
  dashboard: Painel
25
25
  dashboards: Painéis
26
+ default_scope: Todos
26
27
  delete: apagar
27
28
  delete_file: Apagar arquivo
28
29
  delete_item: Apagar %{item}
@@ -80,7 +81,6 @@ pt:
80
81
  to_top: Mover recurso para o topo
81
82
  per_page: Por página
82
83
  prev_page: Página anterior
83
- records_selected_from_all_pages_html: Todos os itens de todas as páginas selecionados
84
84
  remove_selection: Remover seleção
85
85
  reset_filters: Limpar filtros
86
86
  resource_created: Recurso criado
@@ -118,5 +118,4 @@ pt:
118
118
  zero: mais nenhum item
119
119
  x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> itens selecionados nesta página de um total de <span class="font-bold text-gray-700">%{count}</span>
120
120
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> itens selecionados de todas as páginas
121
- x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> itens selecionados nesta página
122
121
  you_missed_something_check_form: Pode ter-se esquecido algo. Por favor, verifique o formulário.
@@ -23,6 +23,7 @@ ro:
23
23
  create_new_item: Creează %{item}
24
24
  dashboard: Panou de control
25
25
  dashboards: Panouri de control
26
+ default_scope: Tot
26
27
  delete: șterge
27
28
  delete_file: Șterge fișierul
28
29
  delete_item: Șterge %{item}
@@ -43,9 +44,9 @@ ro:
43
44
  other: fișiere
44
45
  zero: fișiere
45
46
  people:
46
- one: peep
47
- other: peeps
48
- zero: peeps
47
+ one: persoana
48
+ other: persoane
49
+ zero: persoane
49
50
  filter_by: Filtează după
50
51
  filters: Filtre
51
52
  go_back: Înapoi
@@ -62,7 +63,7 @@ ro:
62
63
  more: Mai multe
63
64
  new: nou
64
65
  next_page: Pagina următoare
65
- no_cards_present: Niciun card disponibil
66
+ no_cards_present: Nici un card găsit
66
67
  no_item_found: Nici un articol găsit
67
68
  no_options_available: Nicio opțiune disponibilă
68
69
  no_related_item_found: Nici un articol asociat găsit
@@ -80,7 +81,6 @@ ro:
80
81
  to_top: Mutați înregistrarea sus de tot
81
82
  per_page: Pe pagină
82
83
  prev_page: Pagina anterioara
83
- records_selected_from_all_pages_html: Toate selectate din toate paginile
84
84
  remove_selection: Șterge selecția
85
85
  reset_filters: Resetați filtrele
86
86
  resource_created: Resursă creata
@@ -90,7 +90,7 @@ ro:
90
90
  one: utilizator
91
91
  other: utilizatori
92
92
  zero: utilizatori
93
- resource_updated: Resursă actualizata
93
+ resource_updated: Resursă actualizată
94
94
  resources: Resurse
95
95
  run: Rulează
96
96
  save: Salvează
@@ -118,5 +118,4 @@ ro:
118
118
  zero: zero articole
119
119
  x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> selectate dintr-un total de <span class="font-bold text-gray-700">%{count}</span>
120
120
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> selectate din toate paginile
121
- x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> selectate
122
121
  you_missed_something_check_form: S-ar putea să fi omis ceva. Vă rugăm să verificați formularul.
@@ -23,6 +23,7 @@ tr:
23
23
  create_new_item: Yeni bir %{item} oluşturun
24
24
  dashboard: Yönetim Paneli
25
25
  dashboards: Yönetim Panelleri
26
+ default_scope: Herşey
26
27
  delete: sil
27
28
  delete_file: Dosyayı sil
28
29
  delete_item: "%{item} öğresini sil"
@@ -80,7 +81,6 @@ tr:
80
81
  to_top: Kaydı en üste taşı
81
82
  per_page: Sayfa başına
82
83
  prev_page: Önceki sayfa
83
- records_selected_from_all_pages_html: Tüm sayfalardan seçilen tüm kayıtlar
84
84
  remove_selection: Seçimi sil
85
85
  reset_filters: Filtreleri sıfırla
86
86
  resource_created: Kayıt oluşturuldu
@@ -118,5 +118,4 @@ tr:
118
118
  zero: daha fazla öğe yok
119
119
  x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> bu sayfada seçilen toplam kayıtlar <span class="font-bold text-gray-700">%{count}</span>
120
120
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> tüm sayfalardan seçilen kayıtlar
121
- x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> bu sayfada seçilen kayıtlar
122
121
  you_missed_something_check_form: Bir şeyleri kaçırmış olabilirsiniz. Lütfen formu kontrol edin.
@@ -1,4 +1,4 @@
1
- class <%= resource_class %> < Avo::BaseResource
1
+ class Avo::Resources::<%= resource_class %> < Avo::BaseResource
2
2
  self.title = :id
3
3
  self.includes = []<%= model_class_from_args %>
4
4
  # self.search_query = -> do