avo 1.4.0.pre.1 → 1.4.4.pre.1

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 (347) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +10 -4
  4. data/README.md +5 -4
  5. data/app/components/avo/fields/badge_field/index_component.html.erb +3 -0
  6. data/app/components/avo/fields/badge_field/index_component.rb +4 -0
  7. data/app/components/avo/fields/badge_field/show_component.html.erb +3 -0
  8. data/app/components/avo/fields/badge_field/show_component.rb +4 -0
  9. data/app/components/avo/{edit/fields/belongs_to_field_component.html.erb → fields/belongs_to_field/edit_component.html.erb} +0 -0
  10. data/app/components/avo/{edit/fields/belongs_to_field_component.rb → fields/belongs_to_field/edit_component.rb} +1 -1
  11. data/app/components/avo/{index/fields/belongs_to_field_component.html.erb → fields/belongs_to_field/index_component.html.erb} +0 -0
  12. data/app/components/avo/fields/belongs_to_field/index_component.rb +4 -0
  13. data/app/components/avo/{show/fields/belongs_to_field_component.html.erb → fields/belongs_to_field/show_component.html.erb} +0 -0
  14. data/app/components/avo/fields/belongs_to_field/show_component.rb +4 -0
  15. data/app/components/avo/{edit/fields/boolean_field_component.html.erb → fields/boolean_field/edit_component.html.erb} +0 -0
  16. data/app/components/avo/fields/boolean_field/edit_component.rb +4 -0
  17. data/app/components/avo/fields/boolean_field/index_component.html.erb +3 -0
  18. data/app/components/avo/fields/boolean_field/index_component.rb +4 -0
  19. data/app/components/avo/{show/fields/boolean_field_component.html.erb → fields/boolean_field/show_component.html.erb} +1 -1
  20. data/app/components/avo/fields/boolean_field/show_component.rb +4 -0
  21. data/app/components/avo/{edit/fields/boolean_group_field_component.html.erb → fields/boolean_group_field/edit_component.html.erb} +0 -0
  22. data/app/components/avo/fields/boolean_group_field/edit_component.rb +4 -0
  23. data/app/components/avo/fields/boolean_group_field/index_component.html.erb +3 -0
  24. data/app/components/avo/fields/boolean_group_field/index_component.rb +4 -0
  25. data/app/components/avo/fields/boolean_group_field/show_component.html.erb +3 -0
  26. data/app/components/avo/fields/boolean_group_field/show_component.rb +4 -0
  27. data/app/components/avo/{edit/fields/code_field_component.html.erb → fields/code_field/edit_component.html.erb} +0 -0
  28. data/app/components/avo/fields/code_field/edit_component.rb +4 -0
  29. data/app/components/avo/{show/fields/code_field_component.html.erb → fields/code_field/show_component.html.erb} +0 -0
  30. data/app/components/avo/fields/code_field/show_component.rb +4 -0
  31. data/app/components/avo/{common → fields/common}/badge_viewer_component.html.erb +0 -0
  32. data/app/components/avo/{common → fields/common}/badge_viewer_component.rb +1 -1
  33. data/app/components/avo/{common → fields/common}/boolean_check_component.html.erb +0 -0
  34. data/app/components/avo/{common → fields/common}/boolean_check_component.rb +1 -1
  35. data/app/components/avo/{common → fields/common}/boolean_group_component.html.erb +1 -1
  36. data/app/components/avo/{common → fields/common}/boolean_group_component.rb +1 -1
  37. data/app/components/avo/fields/common/files_list_viewer_component.html.erb +5 -0
  38. data/app/components/avo/{common → fields/common}/files_list_viewer_component.rb +1 -1
  39. data/app/components/avo/{common → fields/common}/gravatar_viewer_component.html.erb +0 -0
  40. data/app/components/avo/{common → fields/common}/gravatar_viewer_component.rb +1 -1
  41. data/app/components/avo/{common → fields/common}/heading_component.html.erb +0 -0
  42. data/app/components/avo/{common → fields/common}/heading_component.rb +1 -1
  43. data/app/components/avo/{common → fields/common}/key_value_component.html.erb +0 -0
  44. data/app/components/avo/{common → fields/common}/key_value_component.rb +1 -1
  45. data/app/components/avo/{common → fields/common}/multiple_file_viewer_component.html.erb +0 -0
  46. data/app/components/avo/{common → fields/common}/multiple_file_viewer_component.rb +1 -1
  47. data/app/components/avo/{common → fields/common}/single_file_viewer_component.html.erb +0 -0
  48. data/app/components/avo/{common → fields/common}/single_file_viewer_component.rb +1 -1
  49. data/app/components/avo/fields/common/status_viewer_component.html.erb +18 -0
  50. data/app/components/avo/{common → fields/common}/status_viewer_component.rb +1 -1
  51. data/app/components/avo/{edit/fields/country_field_component.html.erb → fields/country_field/edit_component.html.erb} +0 -0
  52. data/app/components/avo/fields/country_field/edit_component.rb +4 -0
  53. data/app/components/avo/{index/fields/country_field_component.html.erb → fields/country_field/index_component.html.erb} +0 -0
  54. data/app/components/avo/fields/country_field/index_component.rb +4 -0
  55. data/app/components/avo/{show/fields/country_field_component.html.erb → fields/country_field/show_component.html.erb} +0 -0
  56. data/app/components/avo/fields/country_field/show_component.rb +4 -0
  57. data/app/components/avo/{edit/fields/date_field_component.html.erb → fields/date_field/edit_component.html.erb} +0 -0
  58. data/app/components/avo/fields/date_field/edit_component.rb +4 -0
  59. data/app/components/avo/{index/fields/date_field_component.html.erb → fields/date_field/index_component.html.erb} +0 -0
  60. data/app/components/avo/fields/date_field/index_component.rb +4 -0
  61. data/app/components/avo/{show/fields/date_field_component.html.erb → fields/date_field/show_component.html.erb} +0 -0
  62. data/app/components/avo/fields/date_field/show_component.rb +4 -0
  63. data/app/components/avo/{edit/fields/date_time_field_component.html.erb → fields/date_time_field/edit_component.html.erb} +0 -0
  64. data/app/components/avo/fields/date_time_field/edit_component.rb +4 -0
  65. data/app/components/avo/{index/fields/date_time_field_component.html.erb → fields/date_time_field/index_component.html.erb} +0 -0
  66. data/app/components/avo/fields/date_time_field/index_component.rb +4 -0
  67. data/app/components/avo/{show/fields/date_time_field_component.html.erb → fields/date_time_field/show_component.html.erb} +0 -0
  68. data/app/components/avo/fields/date_time_field/show_component.rb +4 -0
  69. data/app/components/avo/{edit/fields/field_component.rb → fields/edit_component.rb} +1 -1
  70. data/app/components/avo/{edit/fields/external_image_field_component.html.erb → fields/external_image_field/edit_component.html.erb} +0 -0
  71. data/app/components/avo/fields/external_image_field/edit_component.rb +4 -0
  72. data/app/components/avo/{index/fields/external_image_field_component.html.erb → fields/external_image_field/index_component.html.erb} +0 -0
  73. data/app/components/avo/fields/external_image_field/index_component.rb +4 -0
  74. data/app/components/avo/{show/fields/external_image_field_component.html.erb → fields/external_image_field/show_component.html.erb} +0 -0
  75. data/app/components/avo/fields/external_image_field/show_component.rb +4 -0
  76. data/app/components/avo/{edit/fields/file_field_component.html.erb → fields/file_field/edit_component.html.erb} +1 -1
  77. data/app/components/avo/fields/file_field/edit_component.rb +4 -0
  78. data/app/components/avo/{index/fields/file_field_component.html.erb → fields/file_field/index_component.html.erb} +1 -1
  79. data/app/components/avo/fields/file_field/index_component.rb +4 -0
  80. data/app/components/avo/fields/file_field/show_component.html.erb +3 -0
  81. data/app/components/avo/fields/file_field/show_component.rb +4 -0
  82. data/app/components/avo/{edit/fields/files_field_component.html.erb → fields/files_field/edit_component.html.erb} +1 -1
  83. data/app/components/avo/fields/files_field/edit_component.rb +4 -0
  84. data/app/components/avo/{index/fields/files_field_component.html.erb → fields/files_field/index_component.html.erb} +0 -0
  85. data/app/components/avo/fields/files_field/index_component.rb +4 -0
  86. data/app/components/avo/fields/files_field/show_component.html.erb +3 -0
  87. data/app/components/avo/fields/files_field/show_component.rb +4 -0
  88. data/app/components/avo/{index/fields/gravatar_field_component.html.erb → fields/gravatar_field/index_component.html.erb} +2 -2
  89. data/app/components/avo/fields/gravatar_field/index_component.rb +4 -0
  90. data/app/components/avo/{show/fields/gravatar_field_component.html.erb → fields/gravatar_field/show_component.html.erb} +1 -1
  91. data/app/components/avo/fields/gravatar_field/show_component.rb +4 -0
  92. data/app/components/avo/{show/fields/has_many_field_component.html.erb → fields/has_many_field/show_component.html.erb} +0 -0
  93. data/app/components/avo/fields/has_many_field/show_component.rb +4 -0
  94. data/app/components/avo/{index/fields/has_one_field_component.html.erb → fields/has_one_field/index_component.html.erb} +0 -0
  95. data/app/components/avo/fields/has_one_field/index_component.rb +4 -0
  96. data/app/components/avo/{show/fields/has_one_field_component.html.erb → fields/has_one_field/show_component.html.erb} +0 -0
  97. data/app/components/avo/fields/has_one_field/show_component.rb +5 -0
  98. data/app/components/avo/{show/fields/heading_field_component.html.erb → fields/heading_field/edit_component.html.erb} +1 -1
  99. data/app/components/avo/fields/heading_field/edit_component.rb +4 -0
  100. data/app/components/avo/{edit/fields/heading_field_component.html.erb → fields/heading_field/show_component.html.erb} +1 -1
  101. data/app/components/avo/fields/heading_field/show_component.rb +4 -0
  102. data/app/components/avo/{edit/fields/hidden_field_component.html.erb → fields/hidden_field/edit_component.html.erb} +0 -0
  103. data/app/components/avo/fields/hidden_field/edit_component.rb +4 -0
  104. data/app/components/avo/{edit/fields/id_field_component.html.erb → fields/id_field/edit_component.html.erb} +0 -0
  105. data/app/components/avo/fields/id_field/edit_component.rb +4 -0
  106. data/app/components/avo/fields/id_field/index_component.html.erb +3 -0
  107. data/app/components/avo/fields/id_field/index_component.rb +4 -0
  108. data/app/components/avo/{show/fields/id_field_component.html.erb → fields/id_field/show_component.html.erb} +0 -0
  109. data/app/components/avo/fields/id_field/show_component.rb +4 -0
  110. data/app/components/avo/fields/index_component.rb +20 -0
  111. data/app/components/avo/{edit/fields/key_value_field_component.html.erb → fields/key_value_field/edit_component.html.erb} +1 -1
  112. data/app/components/avo/fields/key_value_field/edit_component.rb +4 -0
  113. data/app/components/avo/{show/fields/key_value_field_component.html.erb → fields/key_value_field/show_component.html.erb} +1 -1
  114. data/app/components/avo/fields/key_value_field/show_component.rb +4 -0
  115. data/app/components/avo/{edit/fields/markdown_field_component.html.erb → fields/markdown_field/edit_component.html.erb} +0 -0
  116. data/app/components/avo/fields/markdown_field/edit_component.rb +4 -0
  117. data/app/components/avo/{show/fields/markdown_field_component.html.erb → fields/markdown_field/show_component.html.erb} +1 -1
  118. data/app/components/avo/fields/markdown_field/show_component.rb +4 -0
  119. data/app/components/avo/{edit/fields/number_field_component.html.erb → fields/number_field/edit_component.html.erb} +3 -3
  120. data/app/components/avo/fields/number_field/edit_component.rb +4 -0
  121. data/app/components/avo/{index/fields/number_field_component.html.erb → fields/number_field/index_component.html.erb} +0 -0
  122. data/app/components/avo/fields/number_field/index_component.rb +4 -0
  123. data/app/components/avo/{show/fields/number_field_component.html.erb → fields/number_field/show_component.html.erb} +0 -0
  124. data/app/components/avo/fields/number_field/show_component.rb +4 -0
  125. data/app/components/avo/{edit/fields/password_field_component.html.erb → fields/password_field/edit_component.html.erb} +0 -0
  126. data/app/components/avo/fields/password_field/edit_component.rb +4 -0
  127. data/app/components/avo/fields/progress_bar_field/edit_component.html.erb +26 -0
  128. data/app/components/avo/fields/progress_bar_field/edit_component.rb +4 -0
  129. data/app/components/avo/fields/progress_bar_field/index_component.html.erb +8 -0
  130. data/app/components/avo/fields/progress_bar_field/index_component.rb +4 -0
  131. data/app/components/avo/fields/progress_bar_field/show_component.html.erb +8 -0
  132. data/app/components/avo/fields/progress_bar_field/show_component.rb +4 -0
  133. data/app/components/avo/{edit/fields/select_field_component.html.erb → fields/select_field/edit_component.html.erb} +0 -0
  134. data/app/components/avo/fields/select_field/edit_component.rb +4 -0
  135. data/app/components/avo/{index/fields/select_field_component.html.erb → fields/select_field/index_component.html.erb} +0 -0
  136. data/app/components/avo/fields/select_field/index_component.rb +4 -0
  137. data/app/components/avo/{show/fields/select_field_component.html.erb → fields/select_field/show_component.html.erb} +0 -0
  138. data/app/components/avo/fields/select_field/show_component.rb +4 -0
  139. data/app/components/avo/{show/fields/field_component.rb → fields/show_component.rb} +1 -1
  140. data/app/components/avo/{edit/fields/status_field_component.html.erb → fields/status_field/edit_component.html.erb} +0 -0
  141. data/app/components/avo/fields/status_field/edit_component.rb +4 -0
  142. data/app/components/avo/fields/status_field/index_component.html.erb +3 -0
  143. data/app/components/avo/fields/status_field/index_component.rb +4 -0
  144. data/app/components/avo/fields/status_field/show_component.html.erb +3 -0
  145. data/app/components/avo/fields/status_field/show_component.rb +4 -0
  146. data/app/components/avo/{edit/fields/text_field_component.html.erb → fields/text_field/edit_component.html.erb} +0 -0
  147. data/app/components/avo/fields/text_field/edit_component.rb +4 -0
  148. data/app/components/avo/fields/text_field/index_component.html.erb +3 -0
  149. data/app/components/avo/fields/text_field/index_component.rb +4 -0
  150. data/app/components/avo/{show/fields/text_field_component.html.erb → fields/text_field/show_component.html.erb} +0 -0
  151. data/app/components/avo/fields/text_field/show_component.rb +4 -0
  152. data/app/components/avo/{edit/fields/textarea_field_component.html.erb → fields/textarea_field/edit_component.html.erb} +1 -1
  153. data/app/components/avo/fields/textarea_field/edit_component.rb +4 -0
  154. data/app/components/avo/{show/fields/textarea_field_component.html.erb → fields/textarea_field/show_component.html.erb} +0 -0
  155. data/app/components/avo/fields/textarea_field/show_component.rb +4 -0
  156. data/app/components/avo/{edit/fields/trix_field_component.html.erb → fields/trix_field/edit_component.html.erb} +1 -2
  157. data/app/components/avo/fields/trix_field/edit_component.rb +4 -0
  158. data/app/components/avo/{show/fields/trix_field_component.html.erb → fields/trix_field/show_component.html.erb} +0 -0
  159. data/app/components/avo/fields/trix_field/show_component.rb +4 -0
  160. data/app/components/avo/index/resource_controls_component.html.erb +2 -3
  161. data/app/components/avo/index/table_row_component.html.erb +1 -1
  162. data/app/components/avo/panel_component.html.erb +1 -1
  163. data/app/components/avo/panel_component.rb +4 -4
  164. data/app/components/avo/views/resource_edit_component.html.erb +2 -2
  165. data/app/components/avo/views/resource_index_component.html.erb +6 -6
  166. data/app/components/avo/views/resource_new_component.html.erb +2 -2
  167. data/app/components/avo/views/resource_show_component.html.erb +5 -5
  168. data/app/controllers/avo/application_controller.rb +14 -7
  169. data/app/controllers/avo/base_controller.rb +26 -2
  170. data/app/controllers/avo/home_controller.rb +1 -1
  171. data/app/controllers/avo/relations_controller.rb +1 -1
  172. data/app/controllers/avo/search_controller.rb +50 -35
  173. data/app/helpers/avo/resources_helper.rb +0 -44
  174. data/app/packs/entrypoints/application.css +3 -1
  175. data/app/packs/entrypoints/application.js +3 -0
  176. data/app/packs/js/controllers/fields/key_value_controller.js +0 -1
  177. data/app/packs/js/controllers/search_controller.js +120 -0
  178. data/app/packs/js/helpers/debounce_promise.js +13 -0
  179. data/app/packs/stylesheets/components/progress.css +13 -0
  180. data/app/packs/stylesheets/components/status.css +31 -20
  181. data/app/packs/stylesheets/search.css +79 -0
  182. data/app/packs/svgs/check-circle-sm.svg +3 -0
  183. data/app/packs/svgs/x-circle-sm.svg +3 -0
  184. data/app/views/avo/actions/show.html.erb +1 -1
  185. data/app/views/avo/partials/_global_search.html.erb +17 -0
  186. data/app/views/avo/partials/_profile_dropdown.html.erb +19 -0
  187. data/app/views/avo/partials/_resource_search.html.erb +10 -0
  188. data/app/views/layouts/avo/application.html.erb +7 -6
  189. data/avo.gemspec +2 -1
  190. data/config/routes.rb +2 -6
  191. data/db/factories.rb +3 -0
  192. data/db/migrate/20210421064037_add_color_to_teams.rb +5 -0
  193. data/db/migrate/20210423075924_add_progress_to_projects.rb +5 -0
  194. data/lib/avo/app.rb +12 -21
  195. data/lib/avo/base_resource.rb +91 -7
  196. data/lib/avo/configuration.rb +3 -1
  197. data/lib/avo/engine.rb +1 -0
  198. data/lib/avo/fields/badge_field.rb +4 -6
  199. data/lib/avo/fields/base_field.rb +68 -83
  200. data/lib/avo/fields/belongs_to_field.rb +11 -11
  201. data/lib/avo/fields/boolean_field.rb +2 -7
  202. data/lib/avo/fields/boolean_group_field.rb +2 -7
  203. data/lib/avo/fields/code_field.rb +3 -7
  204. data/lib/avo/fields/country_field.rb +3 -6
  205. data/lib/avo/fields/currency_field.rb +4 -13
  206. data/lib/avo/fields/date_field.rb +2 -8
  207. data/lib/avo/fields/date_time_field.rb +2 -3
  208. data/lib/avo/fields/external_image_field.rb +3 -7
  209. data/lib/avo/fields/file_field.rb +8 -8
  210. data/lib/avo/fields/files_field.rb +6 -8
  211. data/lib/avo/fields/gravatar_field.rb +6 -9
  212. data/lib/avo/fields/has_and_belongs_to_many_field.rb +6 -7
  213. data/lib/avo/fields/has_many_field.rb +3 -9
  214. data/lib/avo/fields/has_one_field.rb +3 -8
  215. data/lib/avo/fields/heading_field.rb +10 -8
  216. data/lib/avo/fields/hidden_field.rb +2 -6
  217. data/lib/avo/fields/id_field.rb +5 -17
  218. data/lib/avo/fields/key_value_field.rb +4 -6
  219. data/lib/avo/fields/markdown_field.rb +3 -5
  220. data/lib/avo/fields/number_field.rb +8 -11
  221. data/lib/avo/fields/password_field.rb +2 -6
  222. data/lib/avo/fields/progress_bar_field.rb +19 -0
  223. data/lib/avo/fields/select_field.rb +13 -12
  224. data/lib/avo/fields/status_field.rb +2 -6
  225. data/lib/avo/fields/text_field.rb +3 -6
  226. data/lib/avo/fields/textarea_field.rb +4 -7
  227. data/lib/avo/fields/trix_field.rb +5 -9
  228. data/lib/avo/fields_collector.rb +47 -11
  229. data/lib/avo/licensing/license.rb +10 -0
  230. data/lib/avo/licensing/pro_license.rb +4 -1
  231. data/lib/avo/services/authorization_service.rb +1 -1
  232. data/lib/avo/version.rb +1 -1
  233. data/lib/generators/avo/eject_generator.rb +1 -0
  234. data/lib/generators/avo/field_generator.rb +17 -0
  235. data/lib/generators/avo/filter_generator.rb +1 -1
  236. data/lib/generators/avo/templates/field/%singular_name%_field.rb.tt +5 -0
  237. data/lib/generators/avo/templates/field/components/edit_component.html.erb.tt +6 -0
  238. data/lib/generators/avo/templates/field/components/edit_component.rb.tt +4 -0
  239. data/lib/generators/avo/templates/field/components/index_component.html.erb.tt +3 -0
  240. data/lib/generators/avo/templates/field/components/index_component.rb.tt +4 -0
  241. data/lib/generators/avo/templates/field/components/show_component.html.erb.tt +3 -0
  242. data/lib/generators/avo/templates/field/components/show_component.rb.tt +4 -0
  243. data/lib/generators/avo/templates/initializer/avo.tt +1 -0
  244. data/lib/generators/avo/templates/resource/resource.tt +3 -0
  245. data/lib/generators/avo/templates/tool/view.tt +1 -1
  246. data/public/avo-packs/css/{application-5bdca030.css → application-d69fe930.css} +303 -50
  247. data/public/avo-packs/css/application-d69fe930.css.br +0 -0
  248. data/public/avo-packs/css/application-d69fe930.css.gz +0 -0
  249. data/public/avo-packs/css/application-d69fe930.css.map +1 -0
  250. data/public/avo-packs/css/application-d69fe930.css.map.br +0 -0
  251. data/public/avo-packs/css/application-d69fe930.css.map.gz +0 -0
  252. data/public/avo-packs/js/application-7b3d507875f4bc1f6677.js +26 -0
  253. data/public/avo-packs/js/{application-16a456a2b7cb56b01153.js.LICENSE.txt → application-7b3d507875f4bc1f6677.js.LICENSE.txt} +0 -0
  254. data/public/avo-packs/js/application-7b3d507875f4bc1f6677.js.br +0 -0
  255. data/public/avo-packs/js/application-7b3d507875f4bc1f6677.js.gz +0 -0
  256. data/public/avo-packs/js/{application-16a456a2b7cb56b01153.js.map → application-7b3d507875f4bc1f6677.js.map} +1 -1
  257. data/public/avo-packs/js/application-7b3d507875f4bc1f6677.js.map.br +0 -0
  258. data/public/avo-packs/js/application-7b3d507875f4bc1f6677.js.map.gz +0 -0
  259. data/public/avo-packs/manifest.json +15 -15
  260. metadata +206 -173
  261. data/app/components/avo/common/files_list_viewer_component.html.erb +0 -5
  262. data/app/components/avo/common/status_viewer_component.html.erb +0 -10
  263. data/app/components/avo/edit/fields/boolean_field_component.rb +0 -4
  264. data/app/components/avo/edit/fields/boolean_group_field_component.rb +0 -4
  265. data/app/components/avo/edit/fields/code_field_component.rb +0 -4
  266. data/app/components/avo/edit/fields/country_field_component.rb +0 -4
  267. data/app/components/avo/edit/fields/date_field_component.rb +0 -4
  268. data/app/components/avo/edit/fields/date_time_field_component.rb +0 -4
  269. data/app/components/avo/edit/fields/external_image_field_component.rb +0 -4
  270. data/app/components/avo/edit/fields/file_field_component.rb +0 -4
  271. data/app/components/avo/edit/fields/files_field_component.rb +0 -4
  272. data/app/components/avo/edit/fields/heading_field_component.rb +0 -4
  273. data/app/components/avo/edit/fields/hidden_field_component.rb +0 -4
  274. data/app/components/avo/edit/fields/id_field_component.rb +0 -4
  275. data/app/components/avo/edit/fields/key_value_field_component.rb +0 -4
  276. data/app/components/avo/edit/fields/markdown_field_component.rb +0 -4
  277. data/app/components/avo/edit/fields/number_field_component.rb +0 -4
  278. data/app/components/avo/edit/fields/password_field_component.rb +0 -4
  279. data/app/components/avo/edit/fields/select_field_component.rb +0 -4
  280. data/app/components/avo/edit/fields/status_field_component.rb +0 -4
  281. data/app/components/avo/edit/fields/text_field_component.rb +0 -4
  282. data/app/components/avo/edit/fields/textarea_field_component.rb +0 -4
  283. data/app/components/avo/edit/fields/trix_field_component.rb +0 -4
  284. data/app/components/avo/index/fields/badge_field_component.html.erb +0 -3
  285. data/app/components/avo/index/fields/badge_field_component.rb +0 -4
  286. data/app/components/avo/index/fields/belongs_to_field_component.rb +0 -4
  287. data/app/components/avo/index/fields/boolean_field_component.html.erb +0 -3
  288. data/app/components/avo/index/fields/boolean_field_component.rb +0 -4
  289. data/app/components/avo/index/fields/boolean_group_field_component.html.erb +0 -3
  290. data/app/components/avo/index/fields/boolean_group_field_component.rb +0 -4
  291. data/app/components/avo/index/fields/country_field_component.rb +0 -4
  292. data/app/components/avo/index/fields/date_field_component.rb +0 -4
  293. data/app/components/avo/index/fields/date_time_field_component.rb +0 -4
  294. data/app/components/avo/index/fields/external_image_field_component.rb +0 -4
  295. data/app/components/avo/index/fields/field_component.html.erb +0 -1
  296. data/app/components/avo/index/fields/field_component.rb +0 -11
  297. data/app/components/avo/index/fields/file_field_component.rb +0 -4
  298. data/app/components/avo/index/fields/files_field_component.rb +0 -4
  299. data/app/components/avo/index/fields/gravatar_field_component.rb +0 -4
  300. data/app/components/avo/index/fields/has_one_field_component.rb +0 -4
  301. data/app/components/avo/index/fields/id_field_component.html.erb +0 -10
  302. data/app/components/avo/index/fields/id_field_component.rb +0 -4
  303. data/app/components/avo/index/fields/number_field_component.rb +0 -4
  304. data/app/components/avo/index/fields/select_field_component.rb +0 -4
  305. data/app/components/avo/index/fields/status_field_component.html.erb +0 -3
  306. data/app/components/avo/index/fields/status_field_component.rb +0 -4
  307. data/app/components/avo/index/fields/text_field_component.html.erb +0 -3
  308. data/app/components/avo/index/fields/text_field_component.rb +0 -4
  309. data/app/components/avo/show/fields/badge_field_component.html.erb +0 -3
  310. data/app/components/avo/show/fields/badge_field_component.rb +0 -4
  311. data/app/components/avo/show/fields/belongs_to_field_component.rb +0 -4
  312. data/app/components/avo/show/fields/boolean_field_component.rb +0 -4
  313. data/app/components/avo/show/fields/boolean_group_field_component.html.erb +0 -3
  314. data/app/components/avo/show/fields/boolean_group_field_component.rb +0 -4
  315. data/app/components/avo/show/fields/code_field_component.rb +0 -4
  316. data/app/components/avo/show/fields/country_field_component.rb +0 -4
  317. data/app/components/avo/show/fields/date_field_component.rb +0 -4
  318. data/app/components/avo/show/fields/date_time_field_component.rb +0 -4
  319. data/app/components/avo/show/fields/external_image_field_component.rb +0 -4
  320. data/app/components/avo/show/fields/file_field_component.html.erb +0 -3
  321. data/app/components/avo/show/fields/file_field_component.rb +0 -4
  322. data/app/components/avo/show/fields/files_field_component.html.erb +0 -3
  323. data/app/components/avo/show/fields/files_field_component.rb +0 -4
  324. data/app/components/avo/show/fields/gravatar_field_component.rb +0 -4
  325. data/app/components/avo/show/fields/has_many_field_component.rb +0 -4
  326. data/app/components/avo/show/fields/has_one_field_component.rb +0 -5
  327. data/app/components/avo/show/fields/heading_field_component.rb +0 -4
  328. data/app/components/avo/show/fields/id_field_component.rb +0 -4
  329. data/app/components/avo/show/fields/key_value_field_component.rb +0 -4
  330. data/app/components/avo/show/fields/markdown_field_component.rb +0 -4
  331. data/app/components/avo/show/fields/number_field_component.rb +0 -4
  332. data/app/components/avo/show/fields/select_field_component.rb +0 -4
  333. data/app/components/avo/show/fields/status_field_component.html.erb +0 -3
  334. data/app/components/avo/show/fields/status_field_component.rb +0 -4
  335. data/app/components/avo/show/fields/text_field_component.rb +0 -4
  336. data/app/components/avo/show/fields/textarea_field_component.rb +0 -4
  337. data/app/components/avo/show/fields/trix_field_component.rb +0 -4
  338. data/public/avo-packs/css/application-5bdca030.css.br +0 -0
  339. data/public/avo-packs/css/application-5bdca030.css.gz +0 -0
  340. data/public/avo-packs/css/application-5bdca030.css.map +0 -1
  341. data/public/avo-packs/css/application-5bdca030.css.map.br +0 -0
  342. data/public/avo-packs/css/application-5bdca030.css.map.gz +0 -0
  343. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js +0 -26
  344. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js.br +0 -0
  345. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js.gz +0 -0
  346. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js.map.br +0 -0
  347. data/public/avo-packs/js/application-16a456a2b7cb56b01153.js.map.gz +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc2704b71b6989b5f292a21a2f906d05df0240764a9caffb39e6a89e8a52e1bc
4
- data.tar.gz: 2cf8653fc50133c1618f891cb618c934bf195c510098f95ed3ca19488585518f
3
+ metadata.gz: e6f0c2d5d6e682ac63dd8df4b1ab8abc4044d8108790ae9e99df9b045b6a300d
4
+ data.tar.gz: a57bd4485774a118a2856bd6507ff16e55552b62dfa1d8818c4764d93ed119dc
5
5
  SHA512:
6
- metadata.gz: 6206068ce49294ee565b56a08ebf1fb3c0595ebf1fa3379ed19cb2672db28d59b02ad6a1d3e11f19303dbd643d4a98ce3d82c2539f1e7d4cea4fa981c98c17c8
7
- data.tar.gz: 71a144f0942247c4e9ca8f4d48adb48755d25d1f93642afc793ef826a49e7810bed17fb4d3e0b21905e5bf5aff3c564b47f9095ab3bb6f95b0f6d3a0fcdaf67f
6
+ metadata.gz: 67738924720441151703681c6638a773bb4ce0c666b9ff21cecf719b5dce767fa816f9a5a63776aaf298da63466a59ace314cef70cb067da89081ee7074d4d70
7
+ data.tar.gz: 34f5f367d6f2b5da48a481ab1f3e4e3e448d68ffba91d44a510c639e496d44de876f3b39ffdb43540aee0ca2354c7f479f47ca4957b20e6e376c8d2e7579ab01
data/Gemfile CHANGED
@@ -125,3 +125,5 @@ gem 'meta-tags'
125
125
  gem 'breadcrumbs_on_rails'
126
126
 
127
127
  gem 'manifester'
128
+
129
+ gem 'ransack'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- avo (1.4.0.pre.1)
4
+ avo (1.4.4.pre.1)
5
5
  active_link_to
6
6
  addressable
7
7
  breadcrumbs_on_rails
@@ -11,9 +11,10 @@ PATH
11
11
  image_processing
12
12
  manifester
13
13
  meta-tags
14
- pagy (>= 3.1.3, < 4.0)
14
+ pagy
15
15
  pundit
16
16
  rails (>= 6.0)
17
+ ransack
17
18
  view_component
18
19
  zeitwerk
19
20
 
@@ -87,7 +88,7 @@ GEM
87
88
  ast (2.4.2)
88
89
  bcrypt (3.1.16)
89
90
  bindex (0.8.1)
90
- bootsnap (1.4.8)
91
+ bootsnap (1.7.3)
91
92
  msgpack (~> 1.0)
92
93
  breadcrumbs_on_rails (4.0.0)
93
94
  rails (>= 5.0)
@@ -178,7 +179,7 @@ GEM
178
179
  mini_mime (1.1.0)
179
180
  mini_portile2 (2.5.0)
180
181
  minitest (5.14.4)
181
- msgpack (1.3.3)
182
+ msgpack (1.4.2)
182
183
  multi_xml (0.6.0)
183
184
  nio4r (2.5.7)
184
185
  nokogiri (1.11.3)
@@ -235,6 +236,10 @@ GEM
235
236
  thor (>= 0.20.3, < 2.0)
236
237
  rainbow (3.0.0)
237
238
  rake (13.0.3)
239
+ ransack (2.4.2)
240
+ activerecord (>= 5.2.4)
241
+ activesupport (>= 5.2.4)
242
+ i18n
238
243
  rb-fsevent (0.10.4)
239
244
  rb-inotify (0.10.1)
240
245
  ffi (~> 1.0)
@@ -390,6 +395,7 @@ DEPENDENCIES
390
395
  pundit
391
396
  rails (~> 6.0.2, >= 6.0.2.2)
392
397
  rails-controller-testing
398
+ ransack
393
399
  rspec-rails (~> 4.0.0)
394
400
  ruby-debug-ide
395
401
  sass-rails (>= 6)
data/README.md CHANGED
@@ -1,3 +1,4 @@
1
+ [![Gem Version](https://badge.fury.io/rb/avo.svg)](https://badge.fury.io/rb/avo)
1
2
  ![Tests](https://github.com/avo-hq/avo/workflows/Tests/badge.svg)
2
3
  ![reviewdog](https://github.com/avo-hq/avo/workflows/reviewdog/badge.svg)
3
4
  [![codecov](https://codecov.io/gh/avo-hq/avo/branch/master/graph/badge.svg?token=Q2LMFE4989)](https://codecov.io/gh/avo-hq/avo)
@@ -28,13 +29,13 @@ Avo is a beautiful next-generation framework that empowers you, the developer, t
28
29
  - **Actions** - Run custom actions to one or more of your resources with as little as pressing a button 💪
29
30
  - **Filters** - Write your own custom filters to quickly segment your data.
30
31
  - **Keeps your app clean** - You don't need to change your app to use Avo. Drop it in your existing app or add it to a new one and you're done 🙌
31
- - **Custom fields***- No worries if we missed a field you need. Generate a custom field in a jiffy.
32
- - **Dashboard widgets and metrics*** - Customize your dashboard with the tools and analytics you need.
32
+ - **Custom fields**- No worries if we missed a field you need. Generate a custom field in a jiffy.
33
33
  - **Custom tools** - You need to add a page with something completely new, you've got it!
34
34
  - **Authorization** - Leverage Pundit policies to build a robust and scalable authorization system.
35
- - **Themable*** - Dress it up into your own colors.
36
- - **Localization*** - Have it available in any language you need.
35
+ - **Localization** - Have it available in any language you need.
37
36
  - **No asset pipeline pollution** - Bring your own asset pipeline.
37
+ - **Dashboard widgets and metrics*** - Customize your dashboard with the tools and analytics you need.
38
+ - **Themable*** - Dress it up into your own colors.
38
39
 
39
40
  *Features still under development
40
41
 
@@ -0,0 +1,3 @@
1
+ <%= index_field_wrapper field: @field do %>
2
+ <%= render Avo::Fields::Common::BadgeViewerComponent.new value: @field.value, options: @field.options %>
3
+ <% end %>
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::BadgeField::IndexComponent < Avo::Fields::IndexComponent
4
+ end
@@ -0,0 +1,3 @@
1
+ <%= show_field_wrapper field: @field, index: @index do %>
2
+ <%= render Avo::Fields::Common::BadgeViewerComponent.new value: @field.value, options: @field.options %>
3
+ <% end %>
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::BadgeField::ShowComponent < Avo::Fields::ShowComponent
4
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Edit::Fields::BelongsToFieldComponent < Avo::Edit::Fields::FieldComponent
3
+ class Avo::Fields::BelongsToField::EditComponent < Avo::Fields::EditComponent
4
4
  def disabled
5
5
  return true if @field.readonly
6
6
  return true if @field.target_resource.model_class.name == params[:via_resource_class]
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::BelongsToField::IndexComponent < Avo::Fields::IndexComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::BelongsToField::ShowComponent < Avo::Fields::ShowComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::BooleanField::EditComponent < Avo::Fields::EditComponent
4
+ end
@@ -0,0 +1,3 @@
1
+ <%= index_field_wrapper field: @field, dash_if_blank: false do %>
2
+ <%= render Avo::Fields::Common::BooleanCheckComponent.new checked: @field.value %>
3
+ <% end %>
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::BooleanField::IndexComponent < Avo::Fields::IndexComponent
4
+ end
@@ -1,3 +1,3 @@
1
1
  <%= show_field_wrapper field: @field, index: @index, dash_if_blank: false do %>
2
- <%= render Avo::Common::BooleanCheckComponent.new checked: @field.value %>
2
+ <%= render Avo::Fields::Common::BooleanCheckComponent.new checked: @field.value %>
3
3
  <% end %>
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::BooleanField::ShowComponent < Avo::Fields::ShowComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::BooleanGroupField::EditComponent < Avo::Fields::EditComponent
4
+ end
@@ -0,0 +1,3 @@
1
+ <%= index_field_wrapper field: @field, dash_if_blank: false do %>
2
+ <%= render Avo::Fields::Common::BooleanGroupComponent.new options: @field.options, value: @field.value %>
3
+ <% end %>
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::BooleanGroupField::IndexComponent < Avo::Fields::IndexComponent
4
+ end
@@ -0,0 +1,3 @@
1
+ <%= show_field_wrapper field: @field, index: @index, dash_if_blank: false do %>
2
+ <%= render Avo::Fields::Common::BooleanGroupComponent.new options: @field.options, value: @field.value %>
3
+ <% end %>
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::BooleanGroupField::ShowComponent < Avo::Fields::ShowComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::CodeField::EditComponent < Avo::Fields::EditComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::CodeField::ShowComponent < Avo::Fields::ShowComponent
4
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Common::BadgeViewerComponent < ViewComponent::Base
3
+ class Avo::Fields::Common::BadgeViewerComponent < ViewComponent::Base
4
4
  def initialize(value:, options:)
5
5
  @value = value
6
6
  @options = options
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Common::BooleanCheckComponent < ViewComponent::Base
3
+ class Avo::Fields::Common::BooleanCheckComponent < ViewComponent::Base
4
4
  def initialize(checked: false)
5
5
  @checked = checked
6
6
  end
@@ -7,7 +7,7 @@
7
7
  checked = @value.present? && @value[id.to_s].present?
8
8
  %>
9
9
  <div>
10
- <%= render Avo::Common::BooleanCheckComponent.new checked: checked %>
10
+ <%= render Avo::Fields::Common::BooleanCheckComponent.new checked: checked %>
11
11
  <div class="ml-6 text-left py-px"><%= label %></div>
12
12
  </div>
13
13
  <% end %>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Common::BooleanGroupComponent < ViewComponent::Base
3
+ class Avo::Fields::Common::BooleanGroupComponent < ViewComponent::Base
4
4
  def initialize(options: {}, value: nil)
5
5
  @options = options
6
6
  @value = value
@@ -0,0 +1,5 @@
1
+ <div class="relative p-3 bg-blue-gray-200 grid grid-cols-3 xl:grid-cols-4 gap-3 rounded-xl">
2
+ <% @field.value.attachments.each do |file| %>
3
+ <%= render Avo::Fields::Common::MultipleFileViewerComponent.new id: @field.id, file: file, is_image: @field.is_image, button_size: :xs, resource: @resource %>
4
+ <% end %>
5
+ </div>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Common::FilesListViewerComponent < ViewComponent::Base
3
+ class Avo::Fields::Common::FilesListViewerComponent < ViewComponent::Base
4
4
  def initialize(field:, resource:)
5
5
  @field = field
6
6
  @resource = resource
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Common::GravatarViewerComponent < ViewComponent::Base
3
+ class Avo::Fields::Common::GravatarViewerComponent < ViewComponent::Base
4
4
  def initialize(md5: nil, link: nil, default: nil, size: nil, rounded: false, link_to_resource: false, title: nil)
5
5
  @md5 = md5
6
6
  @link = link
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Common::HeadingComponent < ViewComponent::Base
3
+ class Avo::Fields::Common::HeadingComponent < ViewComponent::Base
4
4
  def initialize(value:, as_html:)
5
5
  @value = value
6
6
  @as_html = as_html
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Common::KeyValueComponent < ViewComponent::Base
3
+ class Avo::Fields::Common::KeyValueComponent < ViewComponent::Base
4
4
  include Avo::ApplicationHelper
5
5
 
6
6
  def initialize(field:, form: nil, view: :show)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Common::MultipleFileViewerComponent < ViewComponent::Base
3
+ class Avo::Fields::Common::MultipleFileViewerComponent < ViewComponent::Base
4
4
  include Avo::ApplicationHelper
5
5
 
6
6
  def initialize(id:, file:, is_image:, resource:, button_size: :md)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Common::SingleFileViewerComponent < ViewComponent::Base
3
+ class Avo::Fields::Common::SingleFileViewerComponent < ViewComponent::Base
4
4
  include Avo::ApplicationHelper
5
5
 
6
6
  def initialize(id:, file:, is_image:, resource:, button_size: :md)
@@ -0,0 +1,18 @@
1
+ <%
2
+ classes = "inline-block"
3
+ classes += " text-red-600" if @status == 'failed'
4
+ classes += " text-green-600" if @status == 'success'
5
+ %>
6
+ <div class="flex flex-shrink-0 <%= classes %> items-center">
7
+ <% if @status == 'success' %>
8
+ <%= helpers.svg 'check-circle-sm', class: 'h-4' %>
9
+ <% elsif @status == 'failed' %>
10
+ <%= helpers.svg 'x-circle-sm', class: 'h-4' %>
11
+ <% elsif @status == 'loading' %>
12
+ <div class="spinner">
13
+ <div class="double-bounce1 bg-gray-600"></div>
14
+ <div class="double-bounce2 bg-gray-800"></div>
15
+ </div>
16
+ <% end %>
17
+ <span class="ml-1"><%= @label %></span>
18
+ </div>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Avo::Common::StatusViewerComponent < ViewComponent::Base
3
+ class Avo::Fields::Common::StatusViewerComponent < ViewComponent::Base
4
4
  def initialize(status:, label:)
5
5
  @status = status
6
6
  @label = label
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::CountryField::EditComponent < Avo::Fields::EditComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::CountryField::IndexComponent < Avo::Fields::IndexComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::CountryField::ShowComponent < Avo::Fields::ShowComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::DateField::EditComponent < Avo::Fields::EditComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::DateField::IndexComponent < Avo::Fields::IndexComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::DateField::ShowComponent < Avo::Fields::ShowComponent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Avo::Fields::DateTimeField::EditComponent < Avo::Fields::EditComponent
4
+ end