avo 2.44.0 → 3.0.2

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 (411) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +28 -26
  3. data/Gemfile.lock +231 -161
  4. data/README.md +19 -27
  5. data/Rakefile +2 -0
  6. data/app/assets/stylesheets/avo.base.css +1 -1
  7. data/app/assets/svgs/font.svg +1 -0
  8. data/app/assets/svgs/triangle-up.svg +1 -0
  9. data/app/components/avo/actions_component.html.erb +19 -5
  10. data/app/components/avo/actions_component.rb +39 -19
  11. data/app/components/avo/asset_manager/javascript_component.html.erb +3 -0
  12. data/app/components/avo/asset_manager/javascript_component.rb +13 -0
  13. data/app/components/avo/asset_manager/stylesheet_component.html.erb +3 -0
  14. data/app/components/avo/asset_manager/stylesheet_component.rb +13 -0
  15. data/app/components/avo/base_component.rb +15 -12
  16. data/app/components/avo/button_component.rb +20 -3
  17. data/app/components/avo/empty_state_component.rb +1 -1
  18. data/app/components/avo/field_wrapper_component.html.erb +1 -1
  19. data/app/components/avo/field_wrapper_component.rb +9 -15
  20. data/app/components/avo/fields/area_field/edit_component.html.erb +2 -2
  21. data/app/components/avo/fields/belongs_to_field/edit_component.html.erb +75 -79
  22. data/app/components/avo/fields/belongs_to_field/edit_component.rb +7 -7
  23. data/app/components/avo/fields/belongs_to_field/index_component.html.erb +1 -1
  24. data/app/components/avo/fields/belongs_to_field/show_component.rb +2 -2
  25. data/app/components/avo/fields/boolean_field/edit_component.html.erb +1 -1
  26. data/app/components/avo/fields/boolean_field/index_component.html.erb +1 -1
  27. data/app/components/avo/fields/boolean_group_field/edit_component.html.erb +3 -3
  28. data/app/components/avo/fields/common/badge_viewer_component.rb +1 -1
  29. data/app/components/avo/fields/common/boolean_check_component.html.erb +1 -12
  30. data/app/components/avo/fields/common/boolean_check_component.rb +2 -1
  31. data/app/components/avo/fields/common/boolean_group_component.html.erb +2 -2
  32. data/app/components/avo/fields/common/files/view_type/grid_item_component.rb +2 -2
  33. data/app/components/avo/fields/common/gravatar_viewer_component.html.erb +1 -1
  34. data/app/components/avo/fields/common/gravatar_viewer_component.rb +2 -2
  35. data/app/components/avo/fields/common/heading_component.html.erb +3 -8
  36. data/app/components/avo/fields/common/heading_component.rb +1 -3
  37. data/app/components/avo/fields/common/key_value_component.html.erb +2 -2
  38. data/app/components/avo/fields/common/key_value_component.rb +2 -2
  39. data/app/components/avo/fields/common/progress_bar_component.rb +3 -9
  40. data/app/components/avo/fields/common/status_viewer_component.html.erb +3 -0
  41. data/app/components/avo/fields/edit_component.rb +2 -2
  42. data/app/components/avo/fields/external_image_field/index_component.html.erb +1 -1
  43. data/app/components/avo/fields/file_field/index_component.html.erb +2 -2
  44. data/app/components/avo/fields/gravatar_field/index_component.html.erb +1 -1
  45. data/app/components/avo/fields/has_one_field/index_component.html.erb +1 -1
  46. data/app/components/avo/fields/has_one_field/show_component.html.erb +3 -2
  47. data/app/components/avo/fields/has_one_field/show_component.rb +2 -2
  48. data/app/components/avo/fields/heading_field/edit_component.html.erb +1 -1
  49. data/app/components/avo/fields/heading_field/show_component.html.erb +1 -1
  50. data/app/components/avo/fields/id_field/index_component.html.erb +1 -1
  51. data/app/components/avo/fields/index_component.rb +6 -6
  52. data/app/components/avo/fields/location_field/edit_component.html.erb +12 -10
  53. data/app/components/avo/fields/preview_field/index_component.html.erb +10 -0
  54. data/app/components/avo/fields/preview_field/index_component.rb +4 -0
  55. data/app/components/avo/fields/select_field/edit_component.html.erb +1 -1
  56. data/app/components/avo/fields/show_component.rb +5 -2
  57. data/app/components/avo/fields/text_field/index_component.html.erb +1 -1
  58. data/app/components/avo/fields/trix_field/edit_component.html.erb +2 -2
  59. data/app/components/avo/fields/trix_field/edit_component.rb +1 -1
  60. data/app/components/avo/fields/trix_field/show_component.html.erb +1 -1
  61. data/app/components/avo/filters_component.html.erb +9 -3
  62. data/app/components/avo/filters_component.rb +4 -4
  63. data/app/components/avo/index/field_wrapper_component.rb +1 -13
  64. data/app/components/avo/index/grid_item_component.html.erb +13 -36
  65. data/app/components/avo/index/grid_item_component.rb +43 -16
  66. data/app/components/avo/index/resource_controls_component.html.erb +3 -81
  67. data/app/components/avo/index/resource_controls_component.rb +125 -18
  68. data/app/components/avo/index/resource_grid_component.html.erb +5 -3
  69. data/app/components/avo/index/resource_grid_component.rb +5 -2
  70. data/app/components/avo/index/resource_map_component.html.erb +1 -1
  71. data/app/components/avo/index/resource_map_component.rb +3 -3
  72. data/app/components/avo/index/resource_table_component.html.erb +5 -4
  73. data/app/components/avo/index/resource_table_component.rb +24 -7
  74. data/app/components/avo/index/table_row_component.html.erb +9 -5
  75. data/app/components/avo/index/table_row_component.rb +3 -2
  76. data/app/components/avo/items/panel_component.html.erb +25 -0
  77. data/app/components/avo/items/panel_component.rb +43 -0
  78. data/app/components/avo/items/switcher_component.html.erb +17 -0
  79. data/app/components/avo/items/switcher_component.rb +79 -0
  80. data/app/components/avo/items/visible_items_component.html.erb +10 -0
  81. data/app/components/avo/items/visible_items_component.rb +11 -0
  82. data/app/components/avo/modal_component.html.erb +3 -4
  83. data/app/components/avo/paginator_component.html.erb +29 -40
  84. data/app/components/avo/paginator_component.rb +23 -5
  85. data/app/components/avo/panel_component.html.erb +7 -5
  86. data/app/components/avo/referrer_params_component.html.erb +1 -1
  87. data/app/components/avo/resource_component.rb +205 -26
  88. data/app/components/avo/resource_sidebar_component.html.erb +15 -18
  89. data/app/components/avo/resource_sidebar_component.rb +5 -3
  90. data/app/components/avo/sidebar/link_component.rb +1 -1
  91. data/app/components/avo/sidebar_component.html.erb +10 -3
  92. data/app/components/avo/sidebar_component.rb +5 -3
  93. data/app/components/avo/sidebar_profile_component.html.erb +18 -12
  94. data/app/components/avo/tab_group_component.html.erb +14 -8
  95. data/app/components/avo/tab_group_component.rb +1 -6
  96. data/app/components/avo/tab_switcher_component.html.erb +17 -40
  97. data/app/components/avo/tab_switcher_component.rb +6 -41
  98. data/app/components/avo/views/resource_edit_component.html.erb +23 -84
  99. data/app/components/avo/views/resource_edit_component.rb +20 -19
  100. data/app/components/avo/views/resource_index_component.html.erb +42 -47
  101. data/app/components/avo/views/resource_index_component.rb +76 -13
  102. data/app/components/avo/views/resource_show_component.html.erb +16 -177
  103. data/app/components/avo/views/resource_show_component.rb +16 -10
  104. data/app/controllers/avo/actions_controller.rb +29 -31
  105. data/app/controllers/avo/application_controller.rb +119 -181
  106. data/app/controllers/avo/associations_controller.rb +34 -43
  107. data/app/controllers/avo/attachments_controller.rb +4 -4
  108. data/app/controllers/avo/base_controller.rb +145 -98
  109. data/app/controllers/avo/debug_controller.rb +17 -5
  110. data/app/controllers/avo/home_controller.rb +1 -1
  111. data/app/controllers/avo/search_controller.rb +56 -50
  112. data/app/controllers/concerns/avo/initializes_avo.rb +22 -0
  113. data/app/helpers/avo/application_helper.rb +18 -8
  114. data/app/helpers/avo/resources_helper.rb +1 -1
  115. data/app/helpers/avo/url_helpers.rb +28 -12
  116. data/app/javascript/avo.base.js +1 -0
  117. data/app/javascript/js/controllers/action_controller.js +3 -1
  118. data/app/javascript/js/controllers/actions_overflow_controller.js +62 -0
  119. data/app/javascript/js/controllers/fields/reload_belongs_to_field_controller.js +7 -7
  120. data/app/javascript/js/controllers/filter_controller.js +1 -1
  121. data/app/javascript/js/controllers/input_autofocus_controller.js +12 -0
  122. data/app/javascript/js/controllers/preview_controller.js +24 -0
  123. data/app/javascript/js/controllers/search_controller.js +4 -2
  124. data/app/javascript/js/controllers/self_destroy_controller.js +7 -0
  125. data/app/javascript/js/controllers/toggle_controller.js +48 -0
  126. data/app/javascript/js/controllers.js +11 -5
  127. data/app/javascript/js/custom-stream-actions.js +15 -0
  128. data/app/views/avo/actions/show.html.erb +9 -5
  129. data/app/views/avo/associations/new.html.erb +2 -2
  130. data/app/views/avo/base/_new_via_belongs_to.html.erb +1 -1
  131. data/app/views/avo/base/close_modal_and_reload_field.turbo_stream.erb +3 -3
  132. data/app/views/avo/base/create_fail_action.turbo_stream.erb +2 -2
  133. data/app/views/avo/base/edit.html.erb +1 -1
  134. data/app/views/avo/base/index.html.erb +4 -3
  135. data/app/views/avo/base/new.html.erb +2 -1
  136. data/app/views/avo/base/preview.html.erb +19 -0
  137. data/app/views/avo/base/show.html.erb +2 -2
  138. data/app/views/avo/debug/_valid_indicator.html.erb +9 -0
  139. data/app/views/avo/debug/report.html.erb +32 -17
  140. data/app/views/avo/debug/{index.html.erb → status.html.erb} +31 -14
  141. data/app/views/avo/partials/_custom_tools_alert.html.erb +2 -2
  142. data/app/views/avo/partials/_flash_alerts.turbo_stream.erb +1 -1
  143. data/app/views/avo/partials/_footer.html.erb +1 -1
  144. data/app/views/avo/partials/_javascript.html.erb +5 -0
  145. data/app/views/avo/partials/_logo.html.erb +1 -1
  146. data/app/views/avo/partials/_navbar.html.erb +3 -5
  147. data/app/views/avo/partials/_resource_search.html.erb +1 -0
  148. data/app/views/avo/partials/_table_header.html.erb +5 -11
  149. data/app/views/layouts/avo/application.html.erb +5 -4
  150. data/avo.gemspec +10 -8
  151. data/bin/dev +3 -1
  152. data/bin/prod +0 -0
  153. data/config/i18n-tasks.yml +1 -1
  154. data/config/initializers/pagy.rb +2 -0
  155. data/config/master.key +1 -0
  156. data/config/routes.rb +7 -10
  157. data/db/factories.rb +6 -0
  158. data/lib/avo/asset_manager.rb +30 -0
  159. data/lib/avo/base_action.rb +78 -60
  160. data/lib/avo/base_resource.rb +286 -225
  161. data/lib/avo/base_resource_tool.rb +9 -16
  162. data/lib/avo/concerns/borrow_items_holder.rb +35 -0
  163. data/lib/avo/concerns/breadcrumbs.rb +2 -2
  164. data/lib/avo/concerns/{can_replace_fields.rb → can_replace_items.rb} +5 -9
  165. data/lib/avo/concerns/filters_session_handler.rb +7 -5
  166. data/lib/avo/concerns/has_controls.rb +37 -0
  167. data/lib/avo/concerns/has_description.rb +23 -0
  168. data/lib/avo/concerns/has_helpers.rb +18 -0
  169. data/lib/avo/concerns/has_item_type.rb +42 -0
  170. data/lib/avo/concerns/has_items.rb +339 -0
  171. data/lib/avo/concerns/hydration.rb +17 -0
  172. data/lib/avo/concerns/is_resource_item.rb +16 -36
  173. data/lib/avo/concerns/is_visible.rb +15 -0
  174. data/lib/avo/concerns/model_class_constantized.rb +0 -2
  175. data/lib/avo/concerns/pagination.rb +53 -0
  176. data/lib/avo/concerns/visible_in_different_views.rb +132 -0
  177. data/lib/avo/concerns/visible_items.rb +7 -38
  178. data/lib/avo/configuration/branding.rb +0 -12
  179. data/lib/avo/configuration.rb +28 -11
  180. data/lib/avo/current.rb +39 -0
  181. data/lib/avo/dsl/field_parser.rb +3 -3
  182. data/lib/avo/dynamic_router.rb +18 -3
  183. data/lib/avo/engine.rb +35 -30
  184. data/lib/avo/error_manager.rb +25 -0
  185. data/lib/avo/execution_context.rb +14 -15
  186. data/lib/avo/fields/base_field.rb +84 -121
  187. data/lib/avo/fields/belongs_to_field.rb +19 -23
  188. data/lib/avo/fields/concerns/file_authorization.rb +2 -2
  189. data/lib/avo/fields/concerns/handles_field_args.rb +49 -0
  190. data/lib/avo/fields/concerns/has_default.rb +1 -5
  191. data/lib/avo/fields/concerns/has_field_name.rb +22 -0
  192. data/lib/avo/fields/concerns/has_html_attributes.rb +112 -0
  193. data/lib/avo/fields/concerns/is_disabled.rb +1 -5
  194. data/lib/avo/fields/concerns/is_readonly.rb +1 -5
  195. data/lib/avo/fields/concerns/is_required.rb +5 -7
  196. data/lib/avo/fields/concerns/is_searchable.rb +15 -0
  197. data/lib/avo/fields/concerns/use_resource.rb +5 -1
  198. data/lib/avo/fields/concerns/use_view_components.rb +45 -0
  199. data/lib/avo/fields/country_field.rb +4 -0
  200. data/lib/avo/fields/date_time_field.rb +1 -5
  201. data/lib/avo/fields/external_image_field.rb +2 -2
  202. data/lib/avo/fields/field_manager.rb +55 -0
  203. data/lib/avo/fields/file_field.rb +2 -2
  204. data/lib/avo/fields/gravatar_field.rb +2 -2
  205. data/lib/avo/fields/has_and_belongs_to_many_field.rb +1 -2
  206. data/lib/avo/fields/has_base_field.rb +21 -17
  207. data/lib/avo/fields/has_many_field.rb +5 -2
  208. data/lib/avo/fields/has_one_field.rb +8 -12
  209. data/lib/avo/fields/heading_field.rb +9 -14
  210. data/lib/avo/fields/hidden_field.rb +1 -1
  211. data/lib/avo/fields/id_field.rb +3 -3
  212. data/lib/avo/fields/location_field.rb +10 -10
  213. data/lib/avo/fields/password_field.rb +1 -1
  214. data/lib/avo/fields/preview_field.rb +14 -0
  215. data/lib/avo/fields/select_field.rb +12 -8
  216. data/lib/avo/fields/status_field.rb +7 -1
  217. data/lib/avo/fields/text_field.rb +2 -2
  218. data/lib/avo/filters/base_filter.rb +9 -4
  219. data/lib/avo/html/builder.rb +8 -8
  220. data/lib/avo/item_grapher.rb +78 -0
  221. data/lib/avo/licensing/h_q.rb +11 -73
  222. data/lib/avo/licensing/license.rb +5 -1
  223. data/lib/avo/licensing/license_manager.rb +1 -1
  224. data/lib/avo/licensing/pro_license.rb +1 -7
  225. data/lib/avo/loaders/fields_loader.rb +7 -1
  226. data/lib/avo/plugin.rb +36 -0
  227. data/lib/avo/plugin_manager.rb +56 -0
  228. data/lib/avo/prefixed_test_helpers.rb +20 -0
  229. data/lib/avo/reloader.rb +3 -0
  230. data/lib/avo/resources/controls/actions_list.rb +7 -12
  231. data/lib/avo/resources/controls/attach_button.rb +15 -0
  232. data/lib/avo/resources/controls/back_button.rb +1 -1
  233. data/lib/avo/resources/controls/base_control.rb +15 -49
  234. data/lib/avo/resources/controls/create_button.rb +15 -0
  235. data/lib/avo/resources/controls/delete_button.rb +5 -1
  236. data/lib/avo/resources/controls/detach_button.rb +4 -1
  237. data/lib/avo/resources/controls/edit_button.rb +4 -1
  238. data/lib/avo/resources/controls/order_controls.rb +8 -0
  239. data/lib/avo/resources/controls/save_button.rb +13 -0
  240. data/lib/avo/resources/controls/show_button.rb +15 -0
  241. data/lib/avo/resources/items/holder.rb +96 -0
  242. data/lib/avo/resources/items/item_group.rb +44 -0
  243. data/lib/avo/resources/items/main_panel.rb +12 -0
  244. data/lib/avo/resources/items/panel.rb +2 -0
  245. data/lib/avo/resources/items/row.rb +42 -0
  246. data/lib/avo/resources/items/sidebar.rb +46 -0
  247. data/lib/avo/resources/items/tab.rb +54 -0
  248. data/lib/avo/resources/items/tab_group.rb +62 -0
  249. data/lib/avo/resources/resource_manager.rb +179 -0
  250. data/lib/avo/services/authorization_service.rb +11 -110
  251. data/lib/avo/services/debug_service.rb +93 -0
  252. data/lib/avo/services/encryption_service.rb +8 -12
  253. data/lib/avo/services/telemetry_service.rb +85 -0
  254. data/lib/avo/test_helpers.rb +362 -0
  255. data/lib/avo/tools/tool_manager.rb +30 -0
  256. data/lib/avo/version.rb +1 -1
  257. data/lib/avo/view_inquirer.rb +36 -0
  258. data/lib/avo.rb +109 -24
  259. data/lib/generators/avo/action_generator.rb +8 -8
  260. data/lib/generators/avo/card_generator.rb +27 -0
  261. data/lib/generators/avo/concerns/parent_controller.rb +20 -0
  262. data/lib/generators/avo/controller_generator.rb +3 -0
  263. data/lib/generators/avo/eject_generator.rb +180 -15
  264. data/lib/generators/avo/field_generator.rb +49 -2
  265. data/lib/generators/avo/filter_generator.rb +8 -8
  266. data/lib/generators/avo/js/install_generator.rb +2 -2
  267. data/lib/generators/avo/resource_generator.rb +12 -9
  268. data/lib/generators/avo/scope_generator.rb +15 -0
  269. data/lib/generators/avo/tailwindcss/install_generator.rb +70 -26
  270. data/lib/generators/avo/templates/action.tt +8 -6
  271. data/lib/generators/avo/templates/cards/chartkick_card.tt +1 -1
  272. data/lib/generators/avo/templates/cards/chartkick_card_sample.tt +1 -1
  273. data/lib/generators/avo/templates/cards/metric_card.tt +1 -1
  274. data/lib/generators/avo/templates/cards/metric_card_sample.tt +1 -1
  275. data/lib/generators/avo/templates/cards/partial_card.tt +1 -1
  276. data/lib/generators/avo/templates/cards/partial_card_sample.tt +1 -1
  277. data/lib/generators/avo/templates/dashboards/dashboard.tt +5 -3
  278. data/lib/generators/avo/templates/field/%singular_name%_field.rb.tt +1 -1
  279. data/lib/generators/avo/templates/filters/boolean_filter.tt +1 -1
  280. data/lib/generators/avo/templates/filters/multiple_select_filter.tt +1 -1
  281. data/lib/generators/avo/templates/filters/select_filter.tt +1 -1
  282. data/lib/generators/avo/templates/filters/text_filter.tt +1 -1
  283. data/lib/generators/avo/templates/initializer/avo.tt +7 -3
  284. data/lib/generators/avo/templates/locales/avo.ar.yml +7 -6
  285. data/lib/generators/avo/templates/locales/avo.en.yml +6 -3
  286. data/lib/generators/avo/templates/locales/avo.es.yml +127 -0
  287. data/lib/generators/avo/templates/locales/avo.fr.yml +3 -0
  288. data/lib/generators/avo/templates/locales/avo.nb.yml +3 -0
  289. data/lib/generators/avo/templates/locales/avo.nn.yml +3 -0
  290. data/lib/generators/avo/templates/locales/avo.pt-BR.yml +3 -0
  291. data/lib/generators/avo/templates/locales/avo.pt.yml +3 -0
  292. data/lib/generators/avo/templates/locales/avo.ro.yml +8 -5
  293. data/lib/generators/avo/templates/locales/avo.tr.yml +3 -0
  294. data/lib/generators/avo/templates/resource/controller.tt +1 -1
  295. data/lib/generators/avo/templates/resource/resource.tt +7 -7
  296. data/lib/generators/avo/templates/resource_tools/partial.tt +2 -2
  297. data/lib/generators/avo/templates/resource_tools/resource_tool.tt +1 -1
  298. data/lib/generators/avo/templates/scope.tt +6 -0
  299. data/lib/generators/avo/templates/tailwindcss/Procfile.dev +1 -1
  300. data/lib/generators/avo/templates/tailwindcss/avo.tailwind.css +5 -3
  301. data/lib/generators/avo/templates/tailwindcss/tailwind.config.js +11 -0
  302. data/lib/tasks/avo_tasks.rake +72 -4
  303. data/public/avo-assets/avo.base.css +1893 -1187
  304. data/public/avo-assets/avo.base.js +217 -305
  305. data/public/avo-assets/avo.base.js.map +3 -3
  306. data/public/avo-assets/avo.css +9744 -0
  307. data/public/avo-assets/avo.js +513 -0
  308. data/public/avo-assets/avo.js.map +7 -0
  309. data/tailwind.custom.js +47 -0
  310. data/tailwind.preset.js +152 -0
  311. metadata +107 -114
  312. data/app/components/avo/card_component.html.erb +0 -46
  313. data/app/components/avo/card_component.rb +0 -25
  314. data/app/components/avo/dashboards/divider_component.html.erb +0 -9
  315. data/app/components/avo/dashboards/divider_component.rb +0 -19
  316. data/app/components/avo/fields/belongs_to_field/autocomplete_component.html.erb +0 -47
  317. data/app/components/avo/fields/belongs_to_field/autocomplete_component.rb +0 -95
  318. data/app/components/avo/fields/tags_field/edit_component.html.erb +0 -35
  319. data/app/components/avo/fields/tags_field/edit_component.rb +0 -4
  320. data/app/components/avo/fields/tags_field/index_component.html.erb +0 -10
  321. data/app/components/avo/fields/tags_field/index_component.rb +0 -9
  322. data/app/components/avo/fields/tags_field/show_component.html.erb +0 -7
  323. data/app/components/avo/fields/tags_field/show_component.rb +0 -5
  324. data/app/components/avo/fields/tags_field/tag_component.html.erb +0 -9
  325. data/app/components/avo/fields/tags_field/tag_component.rb +0 -11
  326. data/app/components/avo/index/ordering/base_component.rb +0 -9
  327. data/app/components/avo/index/ordering/button_component.html.erb +0 -11
  328. data/app/components/avo/index/ordering/button_component.rb +0 -23
  329. data/app/components/avo/index/ordering/buttons_component.html.erb +0 -32
  330. data/app/components/avo/index/ordering/buttons_component.rb +0 -47
  331. data/app/components/avo/item_switcher_component.html.erb +0 -27
  332. data/app/components/avo/item_switcher_component.rb +0 -48
  333. data/app/components/avo/sidebar/item_switcher_component.html.erb +0 -16
  334. data/app/components/avo/sidebar/item_switcher_component.rb +0 -15
  335. data/app/controllers/avo/dashboards/cards_controller.rb +0 -37
  336. data/app/controllers/avo/dashboards_controller.rb +0 -22
  337. data/app/controllers/avo/reorder_controller.rb +0 -25
  338. data/app/javascript/js/controllers/base_controller.js +0 -22
  339. data/app/javascript/js/controllers/fields/tags_field_controller.js +0 -127
  340. data/app/javascript/js/controllers/toggle_panel_controller.js +0 -18
  341. data/app/views/avo/dashboards/cards/_chartkick_card.html.erb +0 -3
  342. data/app/views/avo/dashboards/cards/_metric_card.html.erb +0 -5
  343. data/app/views/avo/dashboards/cards/chartkick_missing.html.erb +0 -14
  344. data/app/views/avo/dashboards/cards/show.html.erb +0 -3
  345. data/app/views/avo/dashboards/show.html.erb +0 -38
  346. data/app/views/avo/partials/_global_search.html.erb +0 -19
  347. data/app/views/avo/sidebar/_license_warnings.html.erb +0 -6
  348. data/lib/avo/app.rb +0 -237
  349. data/lib/avo/base_card.rb +0 -161
  350. data/lib/avo/concerns/fetches_things.rb +0 -150
  351. data/lib/avo/concerns/handles_field_args.rb +0 -47
  352. data/lib/avo/concerns/has_editable_controls.rb +0 -34
  353. data/lib/avo/concerns/has_fields.rb +0 -334
  354. data/lib/avo/concerns/has_html_attributes.rb +0 -108
  355. data/lib/avo/concerns/policy_helpers.rb +0 -31
  356. data/lib/avo/concerns/visible_in_dashboard.rb +0 -31
  357. data/lib/avo/dashboards/base_dashboard.rb +0 -89
  358. data/lib/avo/dashboards/base_divider.rb +0 -35
  359. data/lib/avo/dashboards/chartkick_card.rb +0 -77
  360. data/lib/avo/dashboards/dashboard_card.rb +0 -6
  361. data/lib/avo/dashboards/metric_card.rb +0 -9
  362. data/lib/avo/dashboards/partial_card.rb +0 -7
  363. data/lib/avo/fields/field_extensions/has_field_name.rb +0 -19
  364. data/lib/avo/fields/field_extensions/visible_in_different_views.rb +0 -111
  365. data/lib/avo/fields/tags_field.rb +0 -102
  366. data/lib/avo/grid_collector.rb +0 -42
  367. data/lib/avo/hosts/association_scope_host.rb +0 -8
  368. data/lib/avo/hosts/base_host.rb +0 -25
  369. data/lib/avo/hosts/card_visibility.rb +0 -20
  370. data/lib/avo/hosts/dashboard_card.rb +0 -22
  371. data/lib/avo/hosts/dashboard_visibility.rb +0 -19
  372. data/lib/avo/hosts/ordering.rb +0 -22
  373. data/lib/avo/hosts/record_host.rb +0 -7
  374. data/lib/avo/hosts/resource_record_host.rb +0 -7
  375. data/lib/avo/hosts/resource_view_record_host.rb +0 -7
  376. data/lib/avo/hosts/search_scope_host.rb +0 -7
  377. data/lib/avo/hosts/view_record_host.rb +0 -7
  378. data/lib/avo/hosts/visibility_host.rb +0 -12
  379. data/lib/avo/items_holder.rb +0 -96
  380. data/lib/avo/main_panel.rb +0 -3
  381. data/lib/avo/menu/base_item.rb +0 -25
  382. data/lib/avo/menu/builder.rb +0 -82
  383. data/lib/avo/menu/dashboard.rb +0 -22
  384. data/lib/avo/menu/group.rb +0 -2
  385. data/lib/avo/menu/link.rb +0 -6
  386. data/lib/avo/menu/menu.rb +0 -2
  387. data/lib/avo/menu/resource.rb +0 -22
  388. data/lib/avo/menu/section.rb +0 -2
  389. data/lib/avo/panel.rb +0 -24
  390. data/lib/avo/panel_builder.rb +0 -25
  391. data/lib/avo/resources/controls/action.rb +0 -38
  392. data/lib/avo/resources/controls/execution_context.rb +0 -58
  393. data/lib/avo/resources/controls/items_holder.rb +0 -19
  394. data/lib/avo/resources/controls/link_to.rb +0 -27
  395. data/lib/avo/row.rb +0 -26
  396. data/lib/avo/row_builder.rb +0 -24
  397. data/lib/avo/services/authorization_clients/nil_client.rb +0 -37
  398. data/lib/avo/services/authorization_clients/pundit_client.rb +0 -51
  399. data/lib/avo/sidebar.rb +0 -30
  400. data/lib/avo/sidebar_builder.rb +0 -24
  401. data/lib/avo/tab.rb +0 -72
  402. data/lib/avo/tab_builder.rb +0 -25
  403. data/lib/avo/tab_group.rb +0 -42
  404. data/lib/avo/tab_group_builder.rb +0 -43
  405. data/lib/avo/tools_manager.rb +0 -11
  406. data/lib/generators/avo/card/chartkick_generator.rb +0 -18
  407. data/lib/generators/avo/card/metric_generator.rb +0 -18
  408. data/lib/generators/avo/card/partial_generator.rb +0 -19
  409. data/lib/generators/avo/templates/js/avo.custom.js +0 -2
  410. data/lib/generators/avo/templates/standalone_action.tt +0 -8
  411. /data/app/assets/stylesheets/css/{tags.css → fields/tags.css} +0 -0
@@ -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
@@ -1,15 +1,19 @@
1
1
  # For more information regarding these settings check out our docs https://docs.avohq.io
2
+ # The values disaplayed here are the default ones. Uncomment and change them to fit your needs.
2
3
  Avo.configure do |config|
3
4
  ## == Routing ==
4
5
  config.root_path = '/<%= options[:path] %>'
5
6
  # used only when you have custom `map` configuration in your config.ru
6
7
  # config.prefix_path = "/internal"
7
8
 
9
+ # Sometimes you migth want to mount Avo's engines yourself.
10
+ # https://docs.avohq.io/3.0/routing.html
11
+ # config.mount_avo_engines = true
12
+
8
13
  # Where should the user be redirected when visting the `/<%= options[:path] %>` url
9
14
  # config.home_path = nil
10
15
 
11
16
  ## == Licensing ==
12
- config.license = 'community' # change this to 'pro' when you add the license key
13
17
  # config.license_key = ENV['AVO_LICENSE_KEY']
14
18
 
15
19
  ## == Set the context ==
@@ -58,7 +62,7 @@ Avo.configure do |config|
58
62
  ## permanent enable or disable cache_resource_filters, default value is false
59
63
  # config.cache_resource_filters = false
60
64
  ## 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?}
65
+ # config.cache_resource_filters = -> { current_user.cache_resource_filters? }
62
66
 
63
67
  ## == Customization ==
64
68
  # config.app_name = 'Avocadelicious'
@@ -71,9 +75,9 @@ Avo.configure do |config|
71
75
  # config.view_component_path = "app/components"
72
76
  # config.display_license_request_timeout_error = true
73
77
  # config.disabled_features = []
74
- # config.tabs_style = :tabs # can be :tabs or :pills
75
78
  # config.buttons_on_form_footers = true
76
79
  # config.field_wrapper_layout = true
80
+ # config.resource_parent_controller = "Avo::ResourcesController"
77
81
 
78
82
  ## == Branding ==
79
83
  # config.branding = {
@@ -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: اختر دولة
@@ -23,6 +23,7 @@ ar:
23
23
  create_new_item: إنشاء %{item} جديد
24
24
  dashboard: لوحة القيادة
25
25
  dashboards: لوحات القيادة
26
+ default_scope: الجميع
26
27
  delete: حذف
27
28
  delete_file: حذف الملف
28
29
  delete_item: حذف %{item}
@@ -80,6 +81,7 @@ ar:
80
81
  to_top: حرك السجل للأعلى بشكل كامل
81
82
  per_page: لكل صفحة
82
83
  prev_page: الصفحة السابقة
84
+ records_selected_from_all_pages_html: جميع السجلات مختارة من جميع الصفحات
83
85
  remove_selection: إزالة التحديد
84
86
  reset_filters: إعادة تعيين الفلاتر
85
87
  resource_created: تم إنشاء السجل
@@ -121,6 +123,5 @@ ar:
121
123
  zero: لا توجد عناصر إضافية
122
124
  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>
123
125
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> السجلات المحددة من كل الصفحات
126
+ x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> السجلات المختارة في هذه الصفحة
124
127
  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,6 +81,7 @@ en:
80
81
  to_top: Move record to top
81
82
  per_page: Per page
82
83
  prev_page: Previous page
84
+ records_selected_from_all_pages_html: All records selected from all pages
83
85
  remove_selection: Remove selection
84
86
  reset_filters: Reset filters
85
87
  resource_created: Record created
@@ -121,4 +123,5 @@ en:
121
123
  zero: no more items
122
124
  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>
123
125
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> records selected from all pages
126
+ x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> records selected on this page
124
127
  you_missed_something_check_form: You might have missed something. Please check the form.
@@ -0,0 +1,127 @@
1
+ ---
2
+ es:
3
+ avo:
4
+ action_ran_successfully: "¡Acción ejecutada con éxito!"
5
+ actions: Acciones
6
+ and_x_other_resources: y %{count} otros recursos
7
+ are_you_sure: "¿Estás seguro?"
8
+ are_you_sure_detach_item: "¿Estás seguro de que quieres separar este/a %{item}?"
9
+ are_you_sure_you_want_to_run_this_option: "¿Estás seguro de que quieres ejectuar esta acción?"
10
+ attach: Adjuntar
11
+ attach_and_attach_another: Adjuntar y adjuntar otro
12
+ attach_item: Adjuntar %{item}
13
+ attachment_class_attached: "%{attachment_class} adjuntado/a."
14
+ attachment_class_detached: "%{attachment_class} adjuntado/a."
15
+ attachment_destroyed: Adjunto eliminado
16
+ cancel: Cancelar
17
+ choose_a_country: Elige un país
18
+ choose_an_option: Elige una opción
19
+ choose_item: Elige %{item}
20
+ clear_value: Borrar el valor
21
+ click_to_reveal_filters: Pulsa para mostrar los filtros
22
+ confirm: Confirmar
23
+ create_new_item: Crear nuevo/a %{item}
24
+ dashboard: Panel
25
+ dashboards: Paneles
26
+ default_scope: Todos
27
+ delete: eliminar
28
+ delete_file: Eliminar fichero
29
+ delete_item: Eliminar %{item}
30
+ detach_item: separar %{item}
31
+ details: detalles
32
+ download: Descargar
33
+ download_file: Descargar fichero
34
+ download_item: Descargar %{item}
35
+ edit: editar
36
+ edit_item: editar %{item}
37
+ empty_dashboard_message: Añadir tarjetas a este panel
38
+ failed: Fallo
39
+ failed_to_find_attachment: No se ha encontrado el archivo adjunto
40
+ failed_to_load: No se ha podido cargar
41
+ field_translations:
42
+ file:
43
+ one: fichero
44
+ other: ficheros
45
+ zero: ficheros
46
+ people:
47
+ one: persona
48
+ other: personas
49
+ zero: personas
50
+ filter_by: Filtrar por
51
+ filters: Filtros
52
+ go_back: Volver
53
+ grid_view: Vista en cuardrícula
54
+ hide_content: Ocultar contenido
55
+ home: Inicio
56
+ key_value_field:
57
+ add_row: Añadir fila
58
+ delete_row: Eliminar fila
59
+ key: Clave
60
+ value: Valor
61
+ list_is_empty: La lista está vacía
62
+ loading: Cargando
63
+ more: Más
64
+ new: nuevo/a
65
+ next_page: Página siguiente
66
+ no_cards_present: No hay tarjetas
67
+ no_item_found: No se ha encontrado ningún elemento
68
+ no_options_available: No hay opciones disponibles
69
+ no_related_item_found: No se ha encontrado ningún elemento relacionado
70
+ not_authorized: No estás autorizado/a a realizar esta acción.
71
+ number_of_items:
72
+ one: un/a %{item}
73
+ other: "%{count} %{item}"
74
+ zero: ningún/a %{item}
75
+ oops_nothing_found: Oops! No se ha encontrado nada...
76
+ order:
77
+ higher: Mover arriba
78
+ lower: Mover abajo
79
+ reorder_record: Reordenar registro
80
+ to_bottom: Mover abajo del todo
81
+ to_top: Mover arriba del todo
82
+ per_page: Por página
83
+ prev_page: Página anterior
84
+ records_selected_from_all_pages_html: Todos los registros seleccionados de todas las páginas.
85
+ remove_selection: Quitar la selección
86
+ reset_filters: Reiniciar filtros
87
+ resource_created: Recurso creado
88
+ resource_destroyed: Recurso eliminado
89
+ resource_translations:
90
+ team_members:
91
+ one: miembro del equipo
92
+ other: miembros del equipo
93
+ zero: miembros del equipo
94
+ user:
95
+ one: usuario/a
96
+ other: usuarios/as
97
+ zero: usuarios/as
98
+ resource_updated: Recurso actualizado
99
+ resources: Recursos
100
+ run: Ejecutar
101
+ save: Guardar
102
+ search:
103
+ cancel_button: Cancelar
104
+ placeholder: Buscar
105
+ select_all: Seleccionar todo
106
+ select_all_matching: Seleccionar todas las coincidencias
107
+ select_item: Selecionar elemento
108
+ show_content: Mostrar contenido
109
+ sign_out: Salir
110
+ switch_to_view: Cambiar a la vista %{view_type}
111
+ table_view: Vista en tabla
112
+ tools: Herramientas
113
+ type_to_search: Escribe para buscar.
114
+ unauthorized: No autorizado
115
+ undo: deshacer
116
+ view: Vista
117
+ view_item: ver %{item}
118
+ was_successfully_created: se ha creado con éxito
119
+ was_successfully_updated: se ha actualizado con éxito
120
+ x_items_more:
121
+ one: un elemento más
122
+ other: "%{count} elementos más"
123
+ zero: ningún elemento más
124
+ x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> registros seleccionados en esta página de un total de <span class="font-bold text-gray-700">%{count}</span>
125
+ x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> registros seleccionados en todas las páginas
126
+ x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> registros seleccionados en esta página
127
+ you_missed_something_check_form: Es posible que hayas pasado algo por alto. Comprueba el formulario.
@@ -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,6 +81,7 @@ fr:
80
81
  to_top: Déplacer tout en haut
81
82
  per_page: Par page
82
83
  prev_page: Page précédente
84
+ records_selected_from_all_pages_html: tous les éléments sélectionnés de toutes les pages
83
85
  remove_selection: Supprimer la sélection
84
86
  reset_filters: Réinitialiser les filtres
85
87
  resource_created: Ressource créee
@@ -117,4 +119,5 @@ fr:
117
119
  zero: aucun élément supplémentaire
118
120
  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>
119
121
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> enregistrements sélectionnés dans toutes les pages
122
+ x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> éléments sélectionnés de cette page
120
123
  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,6 +81,7 @@ nb:
80
81
  to_top: Flytt elementet til toppen
81
82
  per_page: Per side
82
83
  prev_page: Forrige side
84
+ records_selected_from_all_pages_html: Alle poster valgt fra alle sider
83
85
  remove_selection: Fjern valg
84
86
  reset_filters: Nullstill filter
85
87
  resource_created: Ressurs generert
@@ -117,4 +119,5 @@ nb:
117
119
  zero: ingen flere elementer
118
120
  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>
119
121
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> poster valgt fra alle sider
122
+ x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> poster valgt på denne siden
120
123
  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,6 +81,7 @@ nn:
80
81
  to_top: Flytt elementet til toppen
81
82
  per_page: Per side
82
83
  prev_page: Førre side
84
+ records_selected_from_all_pages_html: Alle poster valgt fra alle sider
83
85
  remove_selection: Fjern val
84
86
  reset_filters: Nullstill filter
85
87
  resource_created: Ressurs generert
@@ -117,4 +119,5 @@ nn:
117
119
  zero: ingen fleire element
118
120
  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>
119
121
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> valde postar frå alle sider
122
+ x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> poster valgt på denne siden
120
123
  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,6 +81,7 @@ pt-BR:
80
81
  to_top: Mover registro para cima
81
82
  per_page: Por página
82
83
  prev_page: Página anterior
84
+ records_selected_from_all_pages_html: Todos os registros de todas as páginas selecionados
83
85
  remove_selection: Remover seleção
84
86
  reset_filters: Limpar filtros
85
87
  resource_created: Recurso criado
@@ -117,4 +119,5 @@ pt-BR:
117
119
  zero: mais nenhum item
118
120
  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>
119
121
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> registros selecionados de todas as páginas
122
+ x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> registros selecionados nesta página
120
123
  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,6 +81,7 @@ pt:
80
81
  to_top: Mover recurso para o topo
81
82
  per_page: Por página
82
83
  prev_page: Página anterior
84
+ records_selected_from_all_pages_html: Todos os itens de todas as páginas selecionados
83
85
  remove_selection: Remover seleção
84
86
  reset_filters: Limpar filtros
85
87
  resource_created: Recurso criado
@@ -117,4 +119,5 @@ pt:
117
119
  zero: mais nenhum item
118
120
  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>
119
121
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> itens selecionados de todas as páginas
122
+ x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> itens selecionados nesta página
120
123
  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,6 +81,7 @@ ro:
80
81
  to_top: Mutați înregistrarea sus de tot
81
82
  per_page: Pe pagină
82
83
  prev_page: Pagina anterioara
84
+ records_selected_from_all_pages_html: Toate selectate din toate paginile
83
85
  remove_selection: Șterge selecția
84
86
  reset_filters: Resetați filtrele
85
87
  resource_created: Resursă creata
@@ -89,7 +91,7 @@ ro:
89
91
  one: utilizator
90
92
  other: utilizatori
91
93
  zero: utilizatori
92
- resource_updated: Resursă actualizata
94
+ resource_updated: Resursă actualizată
93
95
  resources: Resurse
94
96
  run: Rulează
95
97
  save: Salvează
@@ -117,4 +119,5 @@ ro:
117
119
  zero: zero articole
118
120
  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>
119
121
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> selectate din toate paginile
122
+ x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> selectate
120
123
  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,6 +81,7 @@ tr:
80
81
  to_top: Kaydı en üste taşı
81
82
  per_page: Sayfa başına
82
83
  prev_page: Önceki sayfa
84
+ records_selected_from_all_pages_html: Tüm sayfalardan seçilen tüm kayıtlar
83
85
  remove_selection: Seçimi sil
84
86
  reset_filters: Filtreleri sıfırla
85
87
  resource_created: Kayıt oluşturuldu
@@ -117,4 +119,5 @@ tr:
117
119
  zero: daha fazla öğe yok
118
120
  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>
119
121
  x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> tüm sayfalardan seçilen kayıtlar
122
+ x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> bu sayfada seçilen kayıtlar
120
123
  you_missed_something_check_form: Bir şeyleri kaçırmış olabilirsiniz. Lütfen formu kontrol edin.
@@ -1,4 +1,4 @@
1
1
  # This controller has been generated to enable Rails' resource routes.
2
2
  # More information on https://docs.avohq.io/2.0/controllers.html
3
- class <%= controller_class %> < Avo::ResourcesController
3
+ class <%= controller_class %> < <%= parent_controller %>
4
4
  end
@@ -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
@@ -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,2 +1,2 @@
1
1
  web: bin/rails server -p 3000
2
- avo_css: yarn avo:tailwindcss --watch
2
+ avo_css: yarn avo:tailwind:css --watch
@@ -1,6 +1,8 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
1
+ @import 'tailwindcss/base';
2
+ /* Have all of Avo's custom and plugins styles available. */
3
+ @import '../../../../tmp/avo/base.css';
4
+ @import 'tailwindcss/components';
5
+ @import 'tailwindcss/utilities';
4
6
 
5
7
  /*
6
8
 
@@ -0,0 +1,11 @@
1
+ const avoPreset = require('../../tmp/avo/tailwind.preset.js')
2
+
3
+ module.exports = {
4
+ presets: [avoPreset],
5
+ content: [
6
+ ...avoPreset.content,
7
+ './app/views/**/*.html.erb',
8
+ './app/helpers/**/*.rb',
9
+ './app/javascript/**/*.js',
10
+ ]
11
+ }
@@ -1,7 +1,7 @@
1
- # desc 'Explaining what the task does'
2
- # task :avo do
3
- # # Task goes here
4
- # end
1
+ desc "Runs the update command for all Avo gems."
2
+ task "avo:update" do
3
+ system "bundle update avo avo-pro avo-advanced avo-dashboards avo_filters avo-menu avo_upgrade"
4
+ end
5
5
 
6
6
  desc "Installs Avo assets and bundles them for when you want to use the GitHub repo in your app"
7
7
  task "avo:build-assets" do
@@ -16,6 +16,7 @@ task "avo:build-assets" do
16
16
 
17
17
  Dir.chdir(path) do
18
18
  system "yarn"
19
+ system "bundle exec rails avo:sym_link"
19
20
  system "yarn prod:build"
20
21
  end
21
22
 
@@ -36,3 +37,70 @@ def get_gem_spec(name)
36
37
 
37
38
  spec
38
39
  end
40
+
41
+ desc "Finds all Avo gems and outputs theyr paths"
42
+ task "avo:gem_paths" do
43
+ config = YAML.load_file("../support/gems.yml")
44
+
45
+ existing_gems = config["gems"].keys
46
+ .map do |gem|
47
+ path = `bundle show #{gem} 2> /dev/null`.chomp
48
+
49
+ unless path.empty?
50
+ "#{gem}:#{path}"
51
+ end
52
+ end
53
+ .reject(&:nil?)
54
+ result = existing_gems.join(",")
55
+
56
+ # Outputs a CSV "hash-like" string in this format
57
+ #
58
+ # GEM_NAME:GEM_PATH,SECOND_GEM_NAME:SECOND_GEM_PATH
59
+ # avo:/Users/adrian/work/avocado/avo-3,avo_filters:/Users/adrian/work/avocado/advanced/avo_filters
60
+ puts result
61
+ end
62
+
63
+ desc "Symlinks all Avo gems to tmp/avo/packages"
64
+ task "avo:sym_link" do
65
+ base_path = Rails.root.join("tmp", "avo").to_s.gsub("/spec/dummy", "")
66
+ packages_path = "#{base_path}/packages"
67
+ if Dir.exist?(packages_path)
68
+ `rm -rf #{packages_path}/*`
69
+ else
70
+ `mkdir -p #{packages_path}`
71
+ `touch #{packages_path}/.keep`
72
+ end
73
+
74
+ ["avo-advanced", "avo-pro", "avo-dynamic_filters", "avo-dashboards", "avo-menu"].each do |gem|
75
+ path = `bundle show #{gem} 2> /dev/null`.chomp
76
+
77
+ # If path is emty we check if package is defined outside of root (on release process it is)
78
+ if path.empty?
79
+ next if !Dir.exist?("../#{gem}")
80
+
81
+ path = File.expand_path("../#{gem}")
82
+ end
83
+
84
+ puts "[Avo->] Linking #{gem} to #{path}"
85
+ `ln -s #{path} #{packages_path}/#{gem}`
86
+ end
87
+
88
+ base_css_path = Avo::Engine.root.join("app", "assets", "builds", "avo.base.css")
89
+ dest_css_path = "#{base_path}/base.css"
90
+ `rm #{dest_css_path}` if File.exist?("#{dest_css_path}")
91
+ puts "[Avo->] Linking avo.base.css to #{base_css_path}"
92
+ `ln -s #{base_css_path} #{dest_css_path}`
93
+
94
+ base_preset_path = Avo::Engine.root.join("tailwind.preset.js")
95
+ dest_preset_path = "#{base_path}/tailwind.preset.js"
96
+ `rm #{dest_preset_path}` if File.exist?("#{dest_preset_path}")
97
+ puts "[Avo->] Linking tailwind.preset.js to #{base_preset_path}"
98
+ `ln -s #{base_preset_path} #{dest_preset_path}`
99
+ end
100
+
101
+ desc "Installs yarn dependencies for Avo"
102
+ task "avo:yarn_install" do
103
+ # tailwind.preset.js needs this dependencies in order to be required
104
+ puts "[Avo->] Adding yarn dependencies"
105
+ `yarn add tailwindcss @tailwindcss/forms @tailwindcss/typography --cwd #{Avo::Engine.root}`
106
+ end