avo 2.45.0 → 3.0.0.pre1

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 (415) 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 +9 -9
  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 +11 -10
  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 -35
  167. data/lib/avo/base_resource.rb +107 -95
  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/is_resource_item.rb +24 -36
  175. data/lib/avo/concerns/is_visible.rb +15 -0
  176. data/lib/avo/concerns/visible_in_different_views.rb +126 -0
  177. data/lib/avo/configuration/branding.rb +0 -12
  178. data/lib/avo/configuration.rb +8 -45
  179. data/lib/avo/current.rb +5 -0
  180. data/lib/avo/dsl/field_parser.rb +1 -1
  181. data/lib/avo/dynamic_router.rb +6 -2
  182. data/lib/avo/engine.rb +37 -30
  183. data/lib/avo/error_manager.rb +25 -0
  184. data/lib/avo/execution_context.rb +9 -15
  185. data/lib/avo/fields/badge_field.rb +1 -1
  186. data/lib/avo/fields/base_field.rb +72 -123
  187. data/lib/avo/fields/belongs_to_field.rb +14 -25
  188. data/lib/avo/fields/concerns/handles_field_args.rb +49 -0
  189. data/lib/avo/fields/concerns/has_default.rb +1 -5
  190. data/lib/avo/fields/concerns/has_field_name.rb +22 -0
  191. data/lib/avo/fields/concerns/has_html_attributes.rb +110 -0
  192. data/lib/avo/fields/concerns/is_disabled.rb +1 -5
  193. data/lib/avo/fields/concerns/is_readonly.rb +1 -5
  194. data/lib/avo/fields/concerns/is_required.rb +5 -7
  195. data/lib/avo/fields/concerns/is_searchable.rb +13 -0
  196. data/lib/avo/fields/concerns/use_resource.rb +5 -1
  197. data/lib/avo/fields/country_field.rb +4 -0
  198. data/lib/avo/fields/date_field.rb +3 -16
  199. data/lib/avo/fields/date_time_field.rb +1 -5
  200. data/lib/avo/fields/field_manager.rb +45 -0
  201. data/lib/avo/fields/file_field.rb +0 -2
  202. data/lib/avo/fields/files_field.rb +0 -6
  203. data/lib/avo/fields/has_and_belongs_to_many_field.rb +1 -2
  204. data/lib/avo/fields/has_base_field.rb +11 -14
  205. data/lib/avo/fields/has_many_field.rb +5 -2
  206. data/lib/avo/fields/has_one_field.rb +5 -10
  207. data/lib/avo/fields/heading_field.rb +4 -1
  208. data/lib/avo/fields/hidden_field.rb +1 -1
  209. data/lib/avo/fields/id_field.rb +2 -3
  210. data/lib/avo/fields/password_field.rb +1 -1
  211. data/lib/avo/fields/preview_field.rb +14 -0
  212. data/lib/avo/fields/select_field.rb +12 -8
  213. data/lib/avo/fields/status_field.rb +4 -0
  214. data/lib/avo/filters/base_filter.rb +3 -8
  215. data/lib/avo/grid_collector.rb +7 -9
  216. data/lib/avo/html/builder.rb +5 -8
  217. data/lib/avo/item_grapher.rb +78 -0
  218. data/lib/avo/licensing/h_q.rb +3 -67
  219. data/lib/avo/licensing/license.rb +2 -2
  220. data/lib/avo/licensing/license_manager.rb +1 -1
  221. data/lib/avo/licensing/{nil_license.rb → null_license.rb} +1 -1
  222. data/lib/avo/licensing/pro_license.rb +1 -7
  223. data/lib/avo/plugin.rb +6 -0
  224. data/lib/avo/plugin_manager.rb +58 -0
  225. data/lib/avo/prefixed_test_helpers.rb +20 -0
  226. data/lib/avo/reloader.rb +3 -0
  227. data/lib/avo/resources/controls/actions_list.rb +6 -12
  228. data/lib/avo/resources/controls/attach_button.rb +15 -0
  229. data/lib/avo/resources/controls/back_button.rb +1 -1
  230. data/lib/avo/resources/controls/base_control.rb +15 -49
  231. data/lib/avo/resources/controls/create_button.rb +15 -0
  232. data/lib/avo/resources/controls/delete_button.rb +5 -1
  233. data/lib/avo/resources/controls/detach_button.rb +4 -1
  234. data/lib/avo/resources/controls/edit_button.rb +4 -1
  235. data/lib/avo/resources/controls/order_controls.rb +8 -0
  236. data/lib/avo/resources/controls/save_button.rb +13 -0
  237. data/lib/avo/resources/controls/show_button.rb +15 -0
  238. data/lib/avo/resources/items/holder.rb +76 -0
  239. data/lib/avo/resources/items/item_group.rb +48 -0
  240. data/lib/avo/resources/items/main_panel.rb +2 -0
  241. data/lib/avo/resources/items/panel.rb +2 -0
  242. data/lib/avo/resources/items/sidebar.rb +47 -0
  243. data/lib/avo/resources/items/tab.rb +60 -0
  244. data/lib/avo/resources/items/tab_group.rb +68 -0
  245. data/lib/avo/resources/resource_manager.rb +181 -0
  246. data/lib/avo/services/authorization_service.rb +11 -110
  247. data/lib/avo/services/debug_service.rb +92 -0
  248. data/lib/avo/services/telemetry_service.rb +84 -0
  249. data/lib/avo/test_helpers.rb +362 -0
  250. data/lib/avo/tools/tool_manager.rb +30 -0
  251. data/lib/avo/version.rb +1 -1
  252. data/lib/avo.rb +7 -0
  253. data/lib/generators/avo/eject_generator.rb +0 -1
  254. data/lib/generators/avo/install_generator.rb +1 -11
  255. data/lib/generators/avo/resource_generator.rb +5 -23
  256. data/lib/generators/avo/scope_generator.rb +15 -0
  257. data/lib/generators/avo/tailwindcss/install_generator.rb +1 -18
  258. data/lib/generators/avo/templates/action.tt +1 -1
  259. data/lib/generators/avo/templates/cards/chartkick_card.tt +1 -1
  260. data/lib/generators/avo/templates/cards/chartkick_card_sample.tt +1 -1
  261. data/lib/generators/avo/templates/cards/metric_card.tt +1 -1
  262. data/lib/generators/avo/templates/cards/metric_card_sample.tt +1 -1
  263. data/lib/generators/avo/templates/cards/partial_card.tt +1 -1
  264. data/lib/generators/avo/templates/cards/partial_card_sample.tt +1 -1
  265. data/lib/generators/avo/templates/dashboards/dashboard.tt +1 -1
  266. data/lib/generators/avo/templates/field/%singular_name%_field.rb.tt +1 -1
  267. data/lib/generators/avo/templates/filters/boolean_filter.tt +1 -1
  268. data/lib/generators/avo/templates/filters/multiple_select_filter.tt +1 -1
  269. data/lib/generators/avo/templates/filters/select_filter.tt +1 -1
  270. data/lib/generators/avo/templates/filters/text_filter.tt +1 -1
  271. data/lib/generators/avo/templates/initializer/avo.tt +1 -11
  272. data/lib/generators/avo/templates/locales/avo.ar.yml +5 -5
  273. data/lib/generators/avo/templates/locales/avo.en.yml +4 -5
  274. data/lib/generators/avo/templates/locales/avo.fr.yml +1 -2
  275. data/lib/generators/avo/templates/locales/avo.nb.yml +1 -2
  276. data/lib/generators/avo/templates/locales/avo.nn.yml +1 -2
  277. data/lib/generators/avo/templates/locales/avo.pt-BR.yml +1 -2
  278. data/lib/generators/avo/templates/locales/avo.pt.yml +1 -2
  279. data/lib/generators/avo/templates/locales/avo.ro.yml +6 -7
  280. data/lib/generators/avo/templates/locales/avo.tr.yml +1 -2
  281. data/lib/generators/avo/templates/resource/resource.tt +1 -1
  282. data/lib/generators/avo/templates/resource_tools/partial.tt +4 -4
  283. data/lib/generators/avo/templates/resource_tools/resource_tool.tt +1 -1
  284. data/lib/generators/avo/templates/scope.tt +6 -0
  285. data/lib/generators/avo/templates/standalone_action.tt +1 -1
  286. data/lib/generators/avo/templates/tailwindcss/Procfile.dev +1 -1
  287. data/lib/generators/avo/templates/tool/view.tt +2 -2
  288. data/lib/tasks/avo_tasks.rake +22 -0
  289. metadata +81 -159
  290. data/app/assets/stylesheets/css/tags.css +0 -32
  291. data/app/assets/svgs/map-empty-state.svg +0 -35
  292. data/app/assets/svgs/map-view-type.svg +0 -3
  293. data/app/components/avo/card_component.html.erb +0 -46
  294. data/app/components/avo/card_component.rb +0 -25
  295. data/app/components/avo/dashboards/divider_component.html.erb +0 -9
  296. data/app/components/avo/dashboards/divider_component.rb +0 -19
  297. data/app/components/avo/fields/area_field/edit_component.html.erb +0 -7
  298. data/app/components/avo/fields/area_field/edit_component.rb +0 -4
  299. data/app/components/avo/fields/area_field/show_component.html.erb +0 -8
  300. data/app/components/avo/fields/area_field/show_component.rb +0 -4
  301. data/app/components/avo/fields/belongs_to_field/autocomplete_component.html.erb +0 -47
  302. data/app/components/avo/fields/belongs_to_field/autocomplete_component.rb +0 -95
  303. data/app/components/avo/fields/common/files/controls_component.html.erb +0 -29
  304. data/app/components/avo/fields/common/files/controls_component.rb +0 -19
  305. data/app/components/avo/fields/common/files/list_viewer_component.html.erb +0 -20
  306. data/app/components/avo/fields/common/files/list_viewer_component.rb +0 -41
  307. data/app/components/avo/fields/common/files/view_type/grid_item_component.html.erb +0 -27
  308. data/app/components/avo/fields/common/files/view_type/grid_item_component.rb +0 -52
  309. data/app/components/avo/fields/common/files/view_type/list_item_component.html.erb +0 -22
  310. data/app/components/avo/fields/common/files/view_type/list_item_component.rb +0 -15
  311. data/app/components/avo/fields/location_field/edit_component.html.erb +0 -22
  312. data/app/components/avo/fields/location_field/edit_component.rb +0 -4
  313. data/app/components/avo/fields/location_field/show_component.html.erb +0 -7
  314. data/app/components/avo/fields/location_field/show_component.rb +0 -4
  315. data/app/components/avo/fields/tags_field/edit_component.html.erb +0 -35
  316. data/app/components/avo/fields/tags_field/edit_component.rb +0 -4
  317. data/app/components/avo/fields/tags_field/index_component.html.erb +0 -10
  318. data/app/components/avo/fields/tags_field/index_component.rb +0 -9
  319. data/app/components/avo/fields/tags_field/show_component.html.erb +0 -7
  320. data/app/components/avo/fields/tags_field/show_component.rb +0 -5
  321. data/app/components/avo/fields/tags_field/tag_component.html.erb +0 -9
  322. data/app/components/avo/fields/tags_field/tag_component.rb +0 -11
  323. data/app/components/avo/index/ordering/base_component.rb +0 -9
  324. data/app/components/avo/index/ordering/button_component.html.erb +0 -11
  325. data/app/components/avo/index/ordering/button_component.rb +0 -23
  326. data/app/components/avo/index/ordering/buttons_component.html.erb +0 -32
  327. data/app/components/avo/index/ordering/buttons_component.rb +0 -47
  328. data/app/components/avo/index/resource_map_component.html.erb +0 -16
  329. data/app/components/avo/index/resource_map_component.rb +0 -109
  330. data/app/components/avo/row_component.html.erb +0 -3
  331. data/app/components/avo/row_component.rb +0 -12
  332. data/app/components/avo/sidebar/item_switcher_component.html.erb +0 -16
  333. data/app/components/avo/sidebar/item_switcher_component.rb +0 -15
  334. data/app/controllers/avo/dashboards/cards_controller.rb +0 -37
  335. data/app/controllers/avo/dashboards_controller.rb +0 -22
  336. data/app/controllers/avo/reorder_controller.rb +0 -25
  337. data/app/javascript/js/controllers/base_controller.js +0 -22
  338. data/app/javascript/js/controllers/fields/reload_belongs_to_field_controller.js +0 -51
  339. data/app/javascript/js/controllers/fields/tags_field_controller.js +0 -127
  340. data/app/javascript/js/controllers/toggle_panel_controller.js +0 -18
  341. data/app/views/avo/base/_new_via_belongs_to.html.erb +0 -12
  342. data/app/views/avo/base/close_modal_and_reload_field.turbo_stream.erb +0 -8
  343. data/app/views/avo/base/create_fail_action.turbo_stream.erb +0 -13
  344. data/app/views/avo/dashboards/cards/_chartkick_card.html.erb +0 -3
  345. data/app/views/avo/dashboards/cards/_metric_card.html.erb +0 -5
  346. data/app/views/avo/dashboards/cards/chartkick_missing.html.erb +0 -14
  347. data/app/views/avo/dashboards/cards/show.html.erb +0 -3
  348. data/app/views/avo/dashboards/show.html.erb +0 -38
  349. data/app/views/avo/partials/_flash_alerts.turbo_stream.erb +0 -3
  350. data/app/views/avo/partials/_global_search.html.erb +0 -19
  351. data/app/views/avo/partials/_profile_menu_extra.html.erb +0 -2
  352. data/app/views/avo/sidebar/_license_warnings.html.erb +0 -6
  353. data/lib/avo/base_card.rb +0 -161
  354. data/lib/avo/concerns/fetches_things.rb +0 -150
  355. data/lib/avo/concerns/handles_field_args.rb +0 -47
  356. data/lib/avo/concerns/has_editable_controls.rb +0 -34
  357. data/lib/avo/concerns/has_html_attributes.rb +0 -108
  358. data/lib/avo/concerns/pagination.rb +0 -53
  359. data/lib/avo/concerns/policy_helpers.rb +0 -31
  360. data/lib/avo/concerns/visible_in_dashboard.rb +0 -31
  361. data/lib/avo/concerns/visible_items.rb +0 -51
  362. data/lib/avo/dashboards/base_dashboard.rb +0 -89
  363. data/lib/avo/dashboards/base_divider.rb +0 -35
  364. data/lib/avo/dashboards/chartkick_card.rb +0 -77
  365. data/lib/avo/dashboards/dashboard_card.rb +0 -6
  366. data/lib/avo/dashboards/metric_card.rb +0 -9
  367. data/lib/avo/dashboards/partial_card.rb +0 -7
  368. data/lib/avo/fields/area_field.rb +0 -39
  369. data/lib/avo/fields/concerns/file_authorization.rb +0 -31
  370. data/lib/avo/fields/field_extensions/has_field_name.rb +0 -19
  371. data/lib/avo/fields/field_extensions/visible_in_different_views.rb +0 -111
  372. data/lib/avo/fields/location_field.rb +0 -86
  373. data/lib/avo/fields/tags_field.rb +0 -102
  374. data/lib/avo/hosts/association_scope_host.rb +0 -8
  375. data/lib/avo/hosts/base_host.rb +0 -25
  376. data/lib/avo/hosts/card_visibility.rb +0 -20
  377. data/lib/avo/hosts/dashboard_card.rb +0 -22
  378. data/lib/avo/hosts/dashboard_visibility.rb +0 -19
  379. data/lib/avo/hosts/ordering.rb +0 -22
  380. data/lib/avo/hosts/record_host.rb +0 -7
  381. data/lib/avo/hosts/resource_record_host.rb +0 -7
  382. data/lib/avo/hosts/resource_view_record_host.rb +0 -7
  383. data/lib/avo/hosts/search_scope_host.rb +0 -7
  384. data/lib/avo/hosts/view_record_host.rb +0 -7
  385. data/lib/avo/hosts/visibility_host.rb +0 -12
  386. data/lib/avo/items_holder.rb +0 -96
  387. data/lib/avo/main_panel.rb +0 -3
  388. data/lib/avo/menu/base_item.rb +0 -25
  389. data/lib/avo/menu/builder.rb +0 -82
  390. data/lib/avo/menu/dashboard.rb +0 -22
  391. data/lib/avo/menu/group.rb +0 -2
  392. data/lib/avo/menu/link.rb +0 -6
  393. data/lib/avo/menu/menu.rb +0 -2
  394. data/lib/avo/menu/resource.rb +0 -22
  395. data/lib/avo/menu/section.rb +0 -2
  396. data/lib/avo/panel.rb +0 -24
  397. data/lib/avo/panel_builder.rb +0 -25
  398. data/lib/avo/resources/controls/action.rb +0 -38
  399. data/lib/avo/resources/controls/execution_context.rb +0 -58
  400. data/lib/avo/resources/controls/items_holder.rb +0 -19
  401. data/lib/avo/resources/controls/link_to.rb +0 -27
  402. data/lib/avo/row.rb +0 -26
  403. data/lib/avo/row_builder.rb +0 -24
  404. data/lib/avo/services/authorization_clients/nil_client.rb +0 -37
  405. data/lib/avo/services/authorization_clients/pundit_client.rb +0 -51
  406. data/lib/avo/sidebar.rb +0 -30
  407. data/lib/avo/sidebar_builder.rb +0 -24
  408. data/lib/avo/tab.rb +0 -72
  409. data/lib/avo/tab_builder.rb +0 -25
  410. data/lib/avo/tab_group.rb +0 -42
  411. data/lib/avo/tab_group_builder.rb +0 -43
  412. data/lib/avo/tools_manager.rb +0 -11
  413. data/lib/generators/avo/templates/locales/avo.es.yml +0 -126
  414. data/public/avo-assets/avo.base.js +0 -1037
  415. data/public/avo-assets/avo.base.js.map +0 -7
@@ -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,7 +1,7 @@
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: هل أنت متأكد؟
@@ -10,8 +10,8 @@ ar:
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
@@ -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 %> < AvoPro::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,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.standalone = true
4
4
 
@@ -1,2 +1,2 @@
1
1
  web: bin/rails server -p 3000
2
- avo_css: yarn avo:tailwindcss --watch
2
+ avo_css: bin/rails avo:tailwindcss:watch
@@ -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>
@@ -36,3 +36,25 @@ def get_gem_spec(name)
36
36
 
37
37
  spec
38
38
  end
39
+
40
+ desc "Finds all Avo gems and outputs theyr paths"
41
+ task "avo:gem_paths" do
42
+ config = YAML.load_file("../support/gems.yml")
43
+
44
+ existing_gems = config["gems"].keys
45
+ .map do |gem|
46
+ path = `bundle show #{gem} 2> /dev/null`.chomp
47
+
48
+ unless path.empty?
49
+ "#{gem}:#{path}"
50
+ end
51
+ end
52
+ .reject(&:nil?)
53
+ result = existing_gems.join(",")
54
+
55
+ # Outputs a CSV "hash-like" string in this format
56
+ #
57
+ # GEM_NAME:GEM_PATH,SECOND_GEM_NAME:SECOND_GEM_PATH
58
+ # avo:/Users/adrian/work/avocado/avo-3,avo_filters:/Users/adrian/work/avocado/advanced/avo_filters
59
+ puts result
60
+ end