avo 2.49.0 → 3.0.0.beta1

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 (377) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +26 -25
  3. data/Gemfile.lock +179 -147
  4. data/README.md +1 -1
  5. data/app/assets/stylesheets/avo.base.css +0 -1
  6. data/app/assets/svgs/font.svg +1 -0
  7. data/app/assets/svgs/triangle-up.svg +1 -0
  8. data/app/components/avo/actions_component.html.erb +19 -5
  9. data/app/components/avo/actions_component.rb +37 -17
  10. data/app/components/avo/asset_manager/javascript_component.html.erb +3 -0
  11. data/app/components/avo/asset_manager/javascript_component.rb +13 -0
  12. data/app/components/avo/asset_manager/stylesheet_component.html.erb +3 -0
  13. data/app/components/avo/asset_manager/stylesheet_component.rb +13 -0
  14. data/app/components/avo/base_component.rb +15 -12
  15. data/app/components/avo/button_component.rb +20 -3
  16. data/app/components/avo/empty_state_component.rb +1 -1
  17. data/app/components/avo/field_wrapper_component.html.erb +1 -1
  18. data/app/components/avo/field_wrapper_component.rb +15 -26
  19. data/app/components/avo/fields/area_field/edit_component.html.erb +2 -2
  20. data/app/components/avo/fields/belongs_to_field/edit_component.html.erb +96 -118
  21. data/app/components/avo/fields/belongs_to_field/edit_component.rb +6 -17
  22. data/app/components/avo/fields/belongs_to_field/index_component.html.erb +1 -1
  23. data/app/components/avo/fields/belongs_to_field/show_component.rb +2 -2
  24. data/app/components/avo/fields/boolean_field/edit_component.html.erb +1 -1
  25. data/app/components/avo/fields/boolean_group_field/edit_component.html.erb +3 -3
  26. data/app/components/avo/fields/common/badge_viewer_component.html.erb +24 -1
  27. data/app/components/avo/fields/common/badge_viewer_component.rb +0 -24
  28. data/app/components/avo/fields/common/boolean_group_component.html.erb +2 -2
  29. data/app/components/avo/fields/common/files/list_viewer_component.rb +3 -3
  30. data/app/components/avo/fields/common/files/view_type/{grid_item_component.html.erb → grid_component.html.erb} +2 -2
  31. data/app/components/avo/fields/common/files/view_type/{grid_item_component.rb → grid_component.rb} +4 -5
  32. data/app/components/avo/fields/common/files/view_type/{list_item_component.rb → list_component.rb} +1 -1
  33. data/app/components/avo/fields/edit_component.rb +1 -1
  34. data/app/components/avo/fields/file_field/edit_component.html.erb +1 -1
  35. data/app/components/avo/fields/file_field/show_component.html.erb +1 -1
  36. data/app/components/avo/fields/has_one_field/index_component.html.erb +1 -1
  37. data/app/components/avo/fields/has_one_field/show_component.html.erb +3 -2
  38. data/app/components/avo/fields/has_one_field/show_component.rb +2 -2
  39. data/app/components/avo/fields/hidden_field/edit_component.html.erb +1 -2
  40. data/app/components/avo/fields/index_component.rb +5 -5
  41. data/app/components/avo/fields/preview_field/index_component.html.erb +10 -0
  42. data/app/components/avo/fields/preview_field/index_component.rb +4 -0
  43. data/app/components/avo/fields/select_field/edit_component.html.erb +1 -1
  44. data/app/components/avo/fields/show_component.rb +4 -1
  45. data/app/components/avo/fields/trix_field/edit_component.rb +1 -1
  46. data/app/components/avo/filters_component.html.erb +9 -3
  47. data/app/components/avo/filters_component.rb +4 -4
  48. data/app/components/avo/index/field_wrapper_component.rb +0 -12
  49. data/app/components/avo/index/grid_item_component.html.erb +13 -36
  50. data/app/components/avo/index/grid_item_component.rb +43 -16
  51. data/app/components/avo/index/resource_controls_component.html.erb +3 -81
  52. data/app/components/avo/index/resource_controls_component.rb +124 -17
  53. data/app/components/avo/index/resource_grid_component.html.erb +5 -3
  54. data/app/components/avo/index/resource_grid_component.rb +5 -2
  55. data/app/components/avo/index/resource_map_component.html.erb +1 -1
  56. data/app/components/avo/index/resource_map_component.rb +3 -3
  57. data/app/components/avo/index/resource_table_component.html.erb +5 -4
  58. data/app/components/avo/index/resource_table_component.rb +14 -20
  59. data/app/components/avo/index/table_row_component.html.erb +8 -4
  60. data/app/components/avo/index/table_row_component.rb +3 -2
  61. data/app/components/avo/item_switcher_component.rb +2 -2
  62. data/app/components/avo/modal_component.html.erb +7 -12
  63. data/app/components/avo/modal_component.rb +0 -21
  64. data/app/components/avo/paginator_component.html.erb +40 -29
  65. data/app/components/avo/paginator_component.rb +5 -23
  66. data/app/components/avo/panel_component.html.erb +8 -6
  67. data/app/components/avo/referrer_params_component.html.erb +1 -2
  68. data/app/components/avo/resource_component.rb +189 -14
  69. data/app/components/avo/resource_sidebar_component.html.erb +6 -2
  70. data/app/components/avo/resource_sidebar_component.rb +1 -1
  71. data/app/components/avo/sidebar/link_component.rb +1 -1
  72. data/app/components/avo/sidebar_component.html.erb +10 -3
  73. data/app/components/avo/sidebar_component.rb +5 -3
  74. data/app/components/avo/sidebar_profile_component.html.erb +15 -8
  75. data/app/components/avo/tab_group_component.html.erb +13 -7
  76. data/app/components/avo/tab_group_component.rb +1 -6
  77. data/app/components/avo/tab_switcher_component.html.erb +17 -40
  78. data/app/components/avo/tab_switcher_component.rb +4 -39
  79. data/app/components/avo/views/resource_edit_component.html.erb +12 -48
  80. data/app/components/avo/views/resource_edit_component.rb +7 -18
  81. data/app/components/avo/views/resource_index_component.html.erb +41 -47
  82. data/app/components/avo/views/resource_index_component.rb +62 -12
  83. data/app/components/avo/views/resource_show_component.html.erb +6 -149
  84. data/app/components/avo/views/resource_show_component.rb +6 -11
  85. data/app/controllers/avo/actions_controller.rb +27 -24
  86. data/app/controllers/avo/application_controller.rb +105 -151
  87. data/app/controllers/avo/associations_controller.rb +34 -43
  88. data/app/controllers/avo/attachments_controller.rb +4 -4
  89. data/app/controllers/avo/base_controller.rb +102 -102
  90. data/app/controllers/avo/debug_controller.rb +17 -5
  91. data/app/controllers/avo/home_controller.rb +1 -1
  92. data/app/controllers/avo/search_controller.rb +30 -51
  93. data/app/controllers/avo/team_users_controller.rb +4 -0
  94. data/app/controllers/concerns/avo/initializes_avo.rb +21 -0
  95. data/app/helpers/avo/application_helper.rb +15 -9
  96. data/app/helpers/avo/resources_helper.rb +1 -1
  97. data/app/helpers/avo/url_helpers.rb +27 -11
  98. data/app/javascript/avo.base.js +1 -0
  99. data/app/javascript/js/application.js +0 -3
  100. data/app/javascript/js/controllers/action_controller.js +5 -3
  101. data/app/javascript/js/controllers/actions_overflow_controller.js +62 -0
  102. data/app/javascript/js/controllers/fields/date_field_controller.js +3 -7
  103. data/app/javascript/js/controllers/fields/key_value_controller.js +1 -2
  104. data/app/javascript/js/controllers/filter_controller.js +1 -1
  105. data/app/javascript/js/controllers/input_autofocus_controller.js +12 -0
  106. data/app/javascript/js/controllers/preview_controller.js +24 -0
  107. data/app/javascript/js/controllers/search_controller.js +2 -2
  108. data/app/javascript/js/controllers/self_destroy_controller.js +7 -0
  109. data/app/javascript/js/controllers/toggle_controller.js +48 -0
  110. data/app/javascript/js/controllers.js +10 -6
  111. data/app/javascript/js/custom-stream-actions.js +15 -0
  112. data/app/views/avo/actions/keep_modal_open.turbo_stream.erb +5 -0
  113. data/app/views/avo/actions/show.html.erb +10 -7
  114. data/app/views/avo/associations/new.html.erb +2 -2
  115. data/app/views/avo/base/index.html.erb +3 -2
  116. data/app/views/avo/base/new.html.erb +2 -1
  117. data/app/views/avo/base/preview.html.erb +19 -0
  118. data/app/views/avo/base/show.html.erb +1 -1
  119. data/app/views/avo/debug/_valid_indicator.html.erb +9 -0
  120. data/app/views/avo/debug/report.html.erb +32 -17
  121. data/app/views/avo/debug/{index.html.erb → status.html.erb} +31 -14
  122. data/app/views/avo/partials/_custom_tools_alert.html.erb +2 -2
  123. data/app/views/avo/partials/_footer.html.erb +1 -1
  124. data/app/views/avo/partials/_javascript.html.erb +5 -0
  125. data/app/views/avo/partials/_logo.html.erb +1 -1
  126. data/app/views/avo/partials/_navbar.html.erb +3 -5
  127. data/app/views/avo/partials/_table_header.html.erb +5 -11
  128. data/app/views/layouts/avo/application.html.erb +4 -2
  129. data/avo.gemspec +11 -12
  130. data/bin/dev +1 -1
  131. data/bin/prod +0 -0
  132. data/config/i18n-tasks.yml +1 -1
  133. data/config/initializers/pagy.rb +0 -2
  134. data/config/master.key +1 -0
  135. data/config/routes.rb +6 -10
  136. data/db/factories.rb +7 -1
  137. data/lib/avo/action_model.rb +20 -0
  138. data/lib/avo/asset_manager.rb +30 -0
  139. data/lib/avo/base_action.rb +57 -42
  140. data/lib/avo/base_resource.rb +264 -227
  141. data/lib/avo/base_resource_tool.rb +9 -16
  142. data/lib/avo/concerns/breadcrumbs.rb +2 -2
  143. data/lib/avo/concerns/{can_replace_fields.rb → can_replace_items.rb} +5 -9
  144. data/lib/avo/concerns/filters_session_handler.rb +5 -3
  145. data/lib/avo/concerns/has_controls.rb +37 -0
  146. data/lib/avo/concerns/has_description.rb +23 -0
  147. data/lib/avo/concerns/has_item_type.rb +42 -0
  148. data/lib/avo/concerns/has_items.rb +325 -0
  149. data/lib/avo/concerns/{has_resource_stimulus_controllers.rb → has_stimulus_controllers.rb} +1 -1
  150. data/lib/avo/concerns/is_resource_item.rb +24 -36
  151. data/lib/avo/concerns/is_visible.rb +15 -0
  152. data/lib/avo/concerns/model_class_constantized.rb +0 -2
  153. data/lib/avo/concerns/visible_in_different_views.rb +126 -0
  154. data/lib/avo/configuration/branding.rb +0 -12
  155. data/lib/avo/configuration.rb +1 -37
  156. data/lib/avo/current.rb +39 -0
  157. data/lib/avo/dsl/field_parser.rb +1 -1
  158. data/lib/avo/dynamic_router.rb +18 -3
  159. data/lib/avo/engine.rb +35 -30
  160. data/lib/avo/error_manager.rb +25 -0
  161. data/lib/avo/execution_context.rb +10 -14
  162. data/lib/avo/fields/badge_field.rb +1 -1
  163. data/lib/avo/fields/base_field.rb +91 -106
  164. data/lib/avo/fields/belongs_to_field.rb +18 -22
  165. data/lib/avo/fields/concerns/file_authorization.rb +2 -2
  166. data/lib/avo/fields/concerns/handles_field_args.rb +49 -0
  167. data/lib/avo/fields/concerns/has_default.rb +1 -5
  168. data/lib/avo/fields/concerns/has_field_name.rb +22 -0
  169. data/lib/avo/fields/concerns/has_html_attributes.rb +110 -0
  170. data/lib/avo/fields/concerns/is_disabled.rb +1 -5
  171. data/lib/avo/fields/concerns/is_readonly.rb +1 -5
  172. data/lib/avo/fields/concerns/is_required.rb +5 -7
  173. data/lib/avo/fields/concerns/is_searchable.rb +13 -0
  174. data/lib/avo/fields/concerns/use_resource.rb +5 -1
  175. data/lib/avo/fields/country_field.rb +4 -0
  176. data/lib/avo/fields/date_time_field.rb +3 -14
  177. data/lib/avo/fields/field_manager.rb +55 -0
  178. data/lib/avo/fields/has_and_belongs_to_many_field.rb +1 -2
  179. data/lib/avo/fields/has_base_field.rb +12 -15
  180. data/lib/avo/fields/has_many_field.rb +5 -2
  181. data/lib/avo/fields/has_one_field.rb +6 -10
  182. data/lib/avo/fields/heading_field.rb +4 -1
  183. data/lib/avo/fields/hidden_field.rb +1 -1
  184. data/lib/avo/fields/id_field.rb +1 -1
  185. data/lib/avo/fields/location_field.rb +8 -8
  186. data/lib/avo/fields/password_field.rb +1 -1
  187. data/lib/avo/fields/preview_field.rb +14 -0
  188. data/lib/avo/fields/select_field.rb +12 -8
  189. data/lib/avo/fields/status_field.rb +4 -0
  190. data/lib/avo/filters/base_filter.rb +8 -4
  191. data/lib/avo/html/builder.rb +7 -8
  192. data/lib/avo/item_grapher.rb +78 -0
  193. data/lib/avo/licensing/h_q.rb +8 -67
  194. data/lib/avo/licensing/license.rb +1 -1
  195. data/lib/avo/licensing/pro_license.rb +1 -7
  196. data/lib/avo/loaders/fields_loader.rb +7 -1
  197. data/lib/avo/plugin.rb +16 -0
  198. data/lib/avo/plugin_manager.rb +56 -0
  199. data/lib/avo/prefixed_test_helpers.rb +20 -0
  200. data/lib/avo/reloader.rb +3 -0
  201. data/lib/avo/resources/controls/actions_list.rb +7 -12
  202. data/lib/avo/resources/controls/attach_button.rb +15 -0
  203. data/lib/avo/resources/controls/back_button.rb +1 -1
  204. data/lib/avo/resources/controls/base_control.rb +15 -49
  205. data/lib/avo/resources/controls/create_button.rb +15 -0
  206. data/lib/avo/resources/controls/delete_button.rb +5 -1
  207. data/lib/avo/resources/controls/detach_button.rb +4 -1
  208. data/lib/avo/resources/controls/edit_button.rb +4 -1
  209. data/lib/avo/resources/controls/order_controls.rb +8 -0
  210. data/lib/avo/resources/controls/save_button.rb +13 -0
  211. data/lib/avo/resources/controls/show_button.rb +15 -0
  212. data/lib/avo/resources/items/holder.rb +84 -0
  213. data/lib/avo/resources/items/item_group.rb +49 -0
  214. data/lib/avo/resources/items/main_panel.rb +2 -0
  215. data/lib/avo/resources/items/panel.rb +2 -0
  216. data/lib/avo/resources/items/row.rb +54 -0
  217. data/lib/avo/resources/items/sidebar.rb +47 -0
  218. data/lib/avo/resources/items/tab.rb +60 -0
  219. data/lib/avo/resources/items/tab_group.rb +68 -0
  220. data/lib/avo/resources/resource_manager.rb +174 -0
  221. data/lib/avo/services/authorization_service.rb +11 -110
  222. data/lib/avo/services/debug_service.rb +93 -0
  223. data/lib/avo/services/encryption_service.rb +5 -1
  224. data/lib/avo/services/telemetry_service.rb +85 -0
  225. data/lib/avo/test_helpers.rb +362 -0
  226. data/lib/avo/tools/tool_manager.rb +30 -0
  227. data/lib/avo/version.rb +1 -1
  228. data/lib/avo.rb +115 -24
  229. data/lib/generators/avo/action_generator.rb +8 -8
  230. data/lib/generators/avo/card_generator.rb +27 -0
  231. data/lib/generators/avo/filter_generator.rb +8 -8
  232. data/lib/generators/avo/resource_generator.rb +4 -4
  233. data/lib/generators/avo/scope_generator.rb +15 -0
  234. data/lib/generators/avo/tailwindcss/install_generator.rb +1 -15
  235. data/lib/generators/avo/templates/action.tt +8 -6
  236. data/lib/generators/avo/templates/cards/chartkick_card.tt +1 -1
  237. data/lib/generators/avo/templates/cards/chartkick_card_sample.tt +1 -1
  238. data/lib/generators/avo/templates/cards/metric_card.tt +1 -1
  239. data/lib/generators/avo/templates/cards/metric_card_sample.tt +1 -1
  240. data/lib/generators/avo/templates/cards/partial_card.tt +1 -1
  241. data/lib/generators/avo/templates/cards/partial_card_sample.tt +1 -1
  242. data/lib/generators/avo/templates/dashboards/dashboard.tt +5 -3
  243. data/lib/generators/avo/templates/field/%singular_name%_field.rb.tt +1 -1
  244. data/lib/generators/avo/templates/filters/boolean_filter.tt +1 -1
  245. data/lib/generators/avo/templates/filters/multiple_select_filter.tt +1 -1
  246. data/lib/generators/avo/templates/filters/select_filter.tt +1 -1
  247. data/lib/generators/avo/templates/filters/text_filter.tt +1 -1
  248. data/lib/generators/avo/templates/initializer/avo.tt +1 -9
  249. data/lib/generators/avo/templates/locales/avo.ar.yml +6 -6
  250. data/lib/generators/avo/templates/locales/avo.en.yml +4 -5
  251. data/lib/generators/avo/templates/locales/avo.fr.yml +1 -2
  252. data/lib/generators/avo/templates/locales/avo.nb.yml +1 -2
  253. data/lib/generators/avo/templates/locales/avo.nn.yml +1 -2
  254. data/lib/generators/avo/templates/locales/avo.pt-BR.yml +1 -2
  255. data/lib/generators/avo/templates/locales/avo.pt.yml +1 -2
  256. data/lib/generators/avo/templates/locales/avo.ro.yml +6 -7
  257. data/lib/generators/avo/templates/locales/avo.tr.yml +1 -2
  258. data/lib/generators/avo/templates/resource/resource.tt +7 -7
  259. data/lib/generators/avo/templates/resource_tools/partial.tt +4 -4
  260. data/lib/generators/avo/templates/resource_tools/resource_tool.tt +1 -1
  261. data/lib/generators/avo/templates/scope.tt +6 -0
  262. data/lib/generators/avo/templates/tool/view.tt +2 -2
  263. data/lib/tasks/avo_tasks.rake +27 -0
  264. data/public/avo-assets/avo.base.css +1810 -1189
  265. data/public/avo-assets/avo.base.js +217 -307
  266. data/public/avo-assets/avo.base.js.map +3 -3
  267. data/public/avo-assets/avo.css +9744 -0
  268. data/public/avo-assets/avo.js +513 -0
  269. data/public/avo-assets/avo.js.map +7 -0
  270. metadata +102 -146
  271. data/app/assets/stylesheets/css/tags.css +0 -32
  272. data/app/components/avo/card_component.html.erb +0 -46
  273. data/app/components/avo/card_component.rb +0 -25
  274. data/app/components/avo/dashboards/divider_component.html.erb +0 -9
  275. data/app/components/avo/dashboards/divider_component.rb +0 -19
  276. data/app/components/avo/fields/belongs_to_field/autocomplete_component.html.erb +0 -47
  277. data/app/components/avo/fields/belongs_to_field/autocomplete_component.rb +0 -95
  278. data/app/components/avo/fields/tags_field/edit_component.html.erb +0 -35
  279. data/app/components/avo/fields/tags_field/edit_component.rb +0 -4
  280. data/app/components/avo/fields/tags_field/index_component.html.erb +0 -10
  281. data/app/components/avo/fields/tags_field/index_component.rb +0 -9
  282. data/app/components/avo/fields/tags_field/show_component.html.erb +0 -7
  283. data/app/components/avo/fields/tags_field/show_component.rb +0 -5
  284. data/app/components/avo/fields/tags_field/tag_component.html.erb +0 -9
  285. data/app/components/avo/fields/tags_field/tag_component.rb +0 -11
  286. data/app/components/avo/index/ordering/base_component.rb +0 -9
  287. data/app/components/avo/index/ordering/button_component.html.erb +0 -11
  288. data/app/components/avo/index/ordering/button_component.rb +0 -23
  289. data/app/components/avo/index/ordering/buttons_component.html.erb +0 -32
  290. data/app/components/avo/index/ordering/buttons_component.rb +0 -47
  291. data/app/components/avo/sidebar/item_switcher_component.html.erb +0 -16
  292. data/app/components/avo/sidebar/item_switcher_component.rb +0 -15
  293. data/app/controllers/avo/dashboards/cards_controller.rb +0 -37
  294. data/app/controllers/avo/dashboards_controller.rb +0 -22
  295. data/app/controllers/avo/reorder_controller.rb +0 -25
  296. data/app/javascript/js/controllers/base_controller.js +0 -22
  297. data/app/javascript/js/controllers/fields/reload_belongs_to_field_controller.js +0 -51
  298. data/app/javascript/js/controllers/fields/tags_field_controller.js +0 -127
  299. data/app/javascript/js/controllers/toggle_panel_controller.js +0 -18
  300. data/app/views/avo/base/_new_via_belongs_to.html.erb +0 -12
  301. data/app/views/avo/base/close_modal_and_reload_field.turbo_stream.erb +0 -8
  302. data/app/views/avo/base/create_fail_action.turbo_stream.erb +0 -13
  303. data/app/views/avo/dashboards/cards/_chartkick_card.html.erb +0 -3
  304. data/app/views/avo/dashboards/cards/_metric_card.html.erb +0 -5
  305. data/app/views/avo/dashboards/cards/chartkick_missing.html.erb +0 -14
  306. data/app/views/avo/dashboards/cards/show.html.erb +0 -3
  307. data/app/views/avo/dashboards/show.html.erb +0 -38
  308. data/app/views/avo/partials/_flash_alerts.turbo_stream.erb +0 -3
  309. data/app/views/avo/partials/_global_search.html.erb +0 -19
  310. data/app/views/avo/sidebar/_license_warnings.html.erb +0 -6
  311. data/lib/avo/app.rb +0 -237
  312. data/lib/avo/base_card.rb +0 -161
  313. data/lib/avo/concerns/fetches_things.rb +0 -150
  314. data/lib/avo/concerns/handles_field_args.rb +0 -47
  315. data/lib/avo/concerns/has_action_stimulus_controllers.rb +0 -15
  316. data/lib/avo/concerns/has_editable_controls.rb +0 -34
  317. data/lib/avo/concerns/has_fields.rb +0 -334
  318. data/lib/avo/concerns/has_html_attributes.rb +0 -123
  319. data/lib/avo/concerns/pagination.rb +0 -53
  320. data/lib/avo/concerns/policy_helpers.rb +0 -31
  321. data/lib/avo/concerns/visible_in_dashboard.rb +0 -31
  322. data/lib/avo/concerns/visible_items.rb +0 -51
  323. data/lib/avo/dashboards/base_dashboard.rb +0 -89
  324. data/lib/avo/dashboards/base_divider.rb +0 -35
  325. data/lib/avo/dashboards/chartkick_card.rb +0 -77
  326. data/lib/avo/dashboards/dashboard_card.rb +0 -6
  327. data/lib/avo/dashboards/metric_card.rb +0 -9
  328. data/lib/avo/dashboards/partial_card.rb +0 -7
  329. data/lib/avo/fields/field_extensions/has_field_name.rb +0 -19
  330. data/lib/avo/fields/field_extensions/visible_in_different_views.rb +0 -111
  331. data/lib/avo/fields/tags_field.rb +0 -102
  332. data/lib/avo/grid_collector.rb +0 -42
  333. data/lib/avo/hosts/association_scope_host.rb +0 -8
  334. data/lib/avo/hosts/base_host.rb +0 -25
  335. data/lib/avo/hosts/card_visibility.rb +0 -20
  336. data/lib/avo/hosts/dashboard_card.rb +0 -22
  337. data/lib/avo/hosts/dashboard_visibility.rb +0 -19
  338. data/lib/avo/hosts/ordering.rb +0 -22
  339. data/lib/avo/hosts/record_host.rb +0 -7
  340. data/lib/avo/hosts/resource_record_host.rb +0 -7
  341. data/lib/avo/hosts/resource_view_record_host.rb +0 -7
  342. data/lib/avo/hosts/search_scope_host.rb +0 -7
  343. data/lib/avo/hosts/view_record_host.rb +0 -7
  344. data/lib/avo/hosts/visibility_host.rb +0 -12
  345. data/lib/avo/items_holder.rb +0 -96
  346. data/lib/avo/main_panel.rb +0 -3
  347. data/lib/avo/menu/base_item.rb +0 -25
  348. data/lib/avo/menu/builder.rb +0 -82
  349. data/lib/avo/menu/dashboard.rb +0 -22
  350. data/lib/avo/menu/group.rb +0 -2
  351. data/lib/avo/menu/link.rb +0 -6
  352. data/lib/avo/menu/menu.rb +0 -2
  353. data/lib/avo/menu/resource.rb +0 -22
  354. data/lib/avo/menu/section.rb +0 -2
  355. data/lib/avo/panel.rb +0 -24
  356. data/lib/avo/panel_builder.rb +0 -25
  357. data/lib/avo/resources/controls/action.rb +0 -38
  358. data/lib/avo/resources/controls/execution_context.rb +0 -58
  359. data/lib/avo/resources/controls/items_holder.rb +0 -19
  360. data/lib/avo/resources/controls/link_to.rb +0 -27
  361. data/lib/avo/row.rb +0 -26
  362. data/lib/avo/row_builder.rb +0 -24
  363. data/lib/avo/services/authorization_clients/nil_client.rb +0 -37
  364. data/lib/avo/services/authorization_clients/pundit_client.rb +0 -51
  365. data/lib/avo/sidebar.rb +0 -30
  366. data/lib/avo/sidebar_builder.rb +0 -24
  367. data/lib/avo/tab.rb +0 -72
  368. data/lib/avo/tab_builder.rb +0 -25
  369. data/lib/avo/tab_group.rb +0 -42
  370. data/lib/avo/tab_group_builder.rb +0 -43
  371. data/lib/avo/tools_manager.rb +0 -11
  372. data/lib/generators/avo/card/chartkick_generator.rb +0 -18
  373. data/lib/generators/avo/card/metric_generator.rb +0 -18
  374. data/lib/generators/avo/card/partial_generator.rb +0 -19
  375. data/lib/generators/avo/templates/locales/avo.es.yml +0 -126
  376. data/lib/generators/avo/templates/standalone_action.tt +0 -8
  377. /data/app/components/avo/fields/common/files/view_type/{list_item_component.html.erb → list_component.html.erb} +0 -0
@@ -5,20 +5,20 @@ module Generators
5
5
  class FilterGenerator < NamedBaseGenerator
6
6
  source_root File.expand_path("templates", __dir__)
7
7
 
8
- class_option :multiple_select, type: :boolean
9
- class_option :select, type: :boolean
10
- class_option :text, type: :boolean
8
+ class_option :type, type: :string, default: "boolean"
11
9
 
12
10
  namespace "avo:filter"
13
11
 
14
12
  def create_resource_file
15
- type = "boolean"
13
+ raise "Invalid filter type '#{options[:type]}'" unless filter_types.include? options[:type]
16
14
 
17
- type = "multiple_select" if options[:multiple_select]
18
- type = "select" if options[:select]
19
- type = "text" if options[:text]
15
+ template "filters/#{options[:type]}_filter.tt", "app/avo/filters/#{singular_name}.rb"
16
+ end
17
+
18
+ private
20
19
 
21
- template "filters/#{type}_filter.tt", "app/avo/filters/#{singular_name}.rb"
20
+ def filter_types
21
+ %w[boolean select text multiple_select]
22
22
  end
23
23
  end
24
24
  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
@@ -132,12 +132,12 @@ module Generators
132
132
  def generated_fields_template
133
133
  return if fields.blank?
134
134
 
135
- fields_string = "\n # Fields generated from the model"
135
+ fields_string = ""
136
136
 
137
137
  fields.each do |field_name, field_options|
138
138
  # if field_options are not available (likely a missing resource for an association), skip the field
139
139
  fields_string += "\n # Could not generate a field for #{field_name}" and next unless field_options
140
-
140
+
141
141
  options = ""
142
142
  field_options[:options].each { |k, v| options += ", #{k}: #{v}" } if field_options[:options].present?
143
143
 
@@ -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
@@ -39,19 +39,11 @@ module Generators
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
41
 
42
- tailwind_script = setup_tailwind_script
43
42
  say "Ensure you have the following script in your package.json file.", :yellow
44
- say %("scripts": { "avo:tailwindcss": "#{tailwind_script}" --minify }), :green
43
+ say %("scripts": { "avo:tailwindcss": "tailwindcss -i ./app/assets/stylesheets/avo.tailwind.css -o ./app/assets/builds/avo.tailwind.css --minify" }), :green
45
44
  end
46
45
 
47
46
  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
47
  def template_path(filename)
56
48
  Pathname.new(__dir__).join("..", "templates", "tailwindcss", filename).to_s
57
49
  end
@@ -59,12 +51,6 @@ module Generators
59
51
  def tailwindcss_installed?
60
52
  Rails.root.join("config", "tailwind.config.js").exist? || Rails.root.join("tailwind.config.js").exist?
61
53
  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
54
  end
69
55
  end
70
56
  end
@@ -1,14 +1,16 @@
1
- class <%= class_name.camelize %> < Avo::BaseAction
2
- self.name = "<%= name.underscore.humanize %>"
1
+ class Avo::Actions::<%= class_name.camelize %> < Avo::BaseAction
2
+ <%= configuration_options %>
3
3
  # self.visible = -> do
4
4
  # true
5
5
  # end
6
6
 
7
- def handle(**args)
8
- models, fields, current_user, resource = args.values_at(:models, :fields, :current_user, :resource)
7
+ # def fields
8
+ # # Add Action fields here
9
+ # end
9
10
 
10
- models.each do |model|
11
- # Do something with your models.
11
+ def handle(records:, fields:, current_user:, resource:, **args)
12
+ records.each do |record|
13
+ # Do something with your records.
12
14
  end
13
15
  end
14
16
  end
@@ -1,4 +1,4 @@
1
- class <%= class_name.camelize %> < Avo::Dashboards::ChartkickCard
1
+ class Avo::Cards::<%= class_name.camelize %> < Avo::Dashboards::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 %> < Avo::Dashboards::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 %> < Avo::Dashboards::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 %> < Avo::Dashboards::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 %> < Avo::Dashboards::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 %> < Avo::Dashboards::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 %> < Avo::Dashboards::BaseDashboard
2
2
  self.id = "<%= name.underscore %>"
3
3
  self.name = "<%= name.underscore.humanize %>"
4
4
  # self.description = "Tiny dashboard description"
@@ -7,6 +7,8 @@ class <%= class_name.camelize %> < Avo::Dashboards::BaseDashboard
7
7
  # true
8
8
  # end
9
9
 
10
- # cards go here
11
- # card UsersCount
10
+ def cards
11
+ # cards go here
12
+ # card UsersCount
13
+ end
12
14
  end
@@ -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
@@ -47,18 +47,11 @@ Avo.configure do |config|
47
47
  # config.per_page_steps = [12, 24, 48, 72]
48
48
  # config.via_per_page = 8
49
49
  # 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
50
  # config.cache_resources_on_index_view = true
58
51
  ## permanent enable or disable cache_resource_filters, default value is false
59
52
  # config.cache_resource_filters = false
60
53
  ## provide a lambda to enable or disable cache_resource_filters per user/resource.
61
- # config.cache_resource_filters = ->(current_user:, resource:) { current_user.cache_resource_filters?}
54
+ # config.cache_resource_filters = -> { current_user.cache_resource_filters? }
62
55
 
63
56
  ## == Customization ==
64
57
  # config.app_name = 'Avocadelicious'
@@ -71,7 +64,6 @@ Avo.configure do |config|
71
64
  # config.view_component_path = "app/components"
72
65
  # config.display_license_request_timeout_error = true
73
66
  # config.disabled_features = []
74
- # config.tabs_style = :tabs # can be :tabs or :pills
75
67
  # config.buttons_on_form_footers = true
76
68
  # config.field_wrapper_layout = true
77
69
 
@@ -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,10 +1,10 @@
1
- class <%= resource_class %> < Avo::BaseResource
2
- self.title = :id
1
+ class Avo::Resources::<%= resource_class %> < Avo::BaseResource
3
2
  self.includes = []<%= model_class_from_args %>
4
- # self.search_query = -> do
5
- # scope.ransack(id_eq: params[:q], m: "or").result(distinct: false)
6
- # end
3
+ # self.search = {
4
+ # query: -> { query.ransack(id_eq: params[:q], m: "or").result(distinct: false) }
5
+ # }
7
6
 
8
- field :id, as: :id<%= generate_fields %>
9
- # add fields here
7
+ def fields
8
+ field :id, as: :id<%= generate_fields %>
9
+ end
10
10
  end
@@ -1,12 +1,12 @@
1
1
  <div class="flex flex-col">
2
2
  <%%= render Avo::PanelComponent.new(name: "<%= human_name %>") do |c| %>
3
- <%% c.with_tools do %>
3
+ <%% c.tools do %>
4
4
  <%%= a_link('/avo', icon: 'heroicons/solid/academic-cap', color: :primary, style: :primary) do %>
5
5
  Dummy link
6
6
  <%% end %>
7
7
  <%% end %>
8
8
 
9
- <%% c.with_body do %>
9
+ <%% c.body do %>
10
10
  <div class="flex flex-col p-4 min-h-24">
11
11
  <div class="space-y-4">
12
12
  <h3>🪧 This partial is waiting to be updated</h3>
@@ -23,9 +23,9 @@
23
23
  # In this partial you have access to the following variables:
24
24
  # tool
25
25
  # @resource
26
- # @resource.model
26
+ # @resource.record
27
27
  # params
28
- # Avo::App.context
28
+ # Avo::Current.context
29
29
  # current_user
30
30
  %>
31
31
  </div>
@@ -1,4 +1,4 @@
1
- class <%= class_name %> < Avo::BaseResourceTool
1
+ class Avo::ResourceTools::<%= class_name %> < Avo::BaseResourceTool
2
2
  self.name = "<%= human_name %>"
3
3
  # self.partial = "avo/resource_tools/<%= file_name %>"
4
4
  end
@@ -0,0 +1,6 @@
1
+ class Avo::Scopes::<%= class_name.camelize %> < Avo::Pro::Scopes::BaseScope
2
+ self.name = "<%= name.underscore.humanize %>"
3
+ self.description = "<%= name.underscore.humanize %>"
4
+ self.scope = -> { query.all }
5
+ self.visible = -> { true }
6
+ end
@@ -1,10 +1,10 @@
1
1
  <div class="flex flex-col">
2
2
  <%%= render Avo::PanelComponent.new(name: '<%= human_name %>', display_breadcrumbs: true) do |c| %>
3
- <%% c.with_tools do %>
3
+ <%% c.tools do %>
4
4
  <div class="text-sm italic">This is the panels tools section.</div>
5
5
  <%% end %>
6
6
 
7
- <%% c.with_body do %>
7
+ <%% c.body do %>
8
8
  <div class="flex flex-col justify-between py-6 min-h-24">
9
9
  <div class="px-6 space-y-4">
10
10
  <h3>What a nice new tool 👋</h3>
@@ -3,6 +3,11 @@
3
3
  # # Task goes here
4
4
  # end
5
5
 
6
+ desc "Runs the update command for all Avo gems."
7
+ task "avo:update" do
8
+ system "bundle update avo avo-pro avo-advanced avo-dashboards avo_filters avo-menu avo_upgrade"
9
+ end
10
+
6
11
  desc "Installs Avo assets and bundles them for when you want to use the GitHub repo in your app"
7
12
  task "avo:build-assets" do
8
13
  spec = get_gem_spec "avo"
@@ -36,3 +41,25 @@ def get_gem_spec(name)
36
41
 
37
42
  spec
38
43
  end
44
+
45
+ desc "Finds all Avo gems and outputs theyr paths"
46
+ task "avo:gem_paths" do
47
+ config = YAML.load_file("../support/gems.yml")
48
+
49
+ existing_gems = config["gems"].keys
50
+ .map do |gem|
51
+ path = `bundle show #{gem} 2> /dev/null`.chomp
52
+
53
+ unless path.empty?
54
+ "#{gem}:#{path}"
55
+ end
56
+ end
57
+ .reject(&:nil?)
58
+ result = existing_gems.join(",")
59
+
60
+ # Outputs a CSV "hash-like" string in this format
61
+ #
62
+ # GEM_NAME:GEM_PATH,SECOND_GEM_NAME:SECOND_GEM_PATH
63
+ # avo:/Users/adrian/work/avocado/avo-3,avo_filters:/Users/adrian/work/avocado/advanced/avo_filters
64
+ puts result
65
+ end