avo 3.0.0.pre12 → 3.0.0.pre14
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.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +2 -1
- data/app/assets/stylesheets/avo.base.css +1 -1
- data/app/components/avo/actions_component.html.erb +1 -1
- data/app/components/avo/actions_component.rb +40 -16
- data/app/components/avo/alert_component.html.erb +1 -1
- data/app/components/avo/base_component.rb +7 -7
- data/app/components/avo/field_wrapper_component.html.erb +2 -2
- data/app/components/avo/field_wrapper_component.rb +1 -1
- data/app/components/avo/fields/area_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/belongs_to_field/edit_component.html.erb +5 -5
- data/app/components/avo/fields/belongs_to_field/edit_component.rb +4 -4
- data/app/components/avo/fields/boolean_field/edit_component.html.erb +1 -0
- data/app/components/avo/fields/boolean_group_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/code_field/edit_component.html.erb +1 -0
- data/app/components/avo/fields/common/heading_component.html.erb +1 -1
- data/app/components/avo/fields/country_field/edit_component.html.erb +1 -0
- data/app/components/avo/fields/file_field/index_component.rb +2 -2
- data/app/components/avo/fields/has_one_field/show_component.html.erb +1 -0
- data/app/components/avo/fields/index_component.rb +1 -0
- data/app/components/avo/fields/location_field/show_component.html.erb +1 -1
- data/app/components/avo/fields/markdown_field/edit_component.html.erb +4 -3
- data/app/components/avo/fields/markdown_field/show_component.html.erb +3 -3
- data/app/components/avo/fields/number_field/edit_component.html.erb +1 -0
- data/app/components/avo/fields/password_field/edit_component.html.erb +1 -0
- data/app/components/avo/fields/progress_bar_field/edit_component.html.erb +1 -0
- data/app/components/avo/fields/status_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/text_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/textarea_field/edit_component.html.erb +1 -0
- data/app/components/avo/fields/trix_field/edit_component.html.erb +2 -1
- data/app/components/avo/fields/trix_field/show_component.html.erb +1 -1
- data/app/components/avo/index/field_wrapper_component.html.erb +1 -1
- data/app/components/avo/index/grid_item_component.html.erb +9 -35
- data/app/components/avo/index/grid_item_component.rb +36 -10
- data/app/components/avo/index/resource_controls_component.rb +6 -6
- data/app/components/avo/item_switcher_component.html.erb +9 -4
- data/app/components/avo/item_switcher_component.rb +2 -1
- data/app/components/avo/panel_component.html.erb +1 -1
- data/app/components/avo/profile_item_component.html.erb +17 -2
- data/app/components/avo/profile_item_component.rb +13 -1
- data/app/components/avo/resource_component.rb +6 -3
- data/app/components/avo/resource_sidebar_component.rb +1 -1
- data/app/components/avo/row_component.html.erb +3 -0
- data/app/components/avo/row_component.rb +12 -0
- data/app/components/avo/sidebar/link_component.html.erb +2 -0
- data/app/components/avo/sidebar/link_component.rb +5 -3
- data/app/components/avo/sidebar_component.html.erb +3 -3
- data/app/components/avo/sidebar_component.rb +4 -4
- data/app/components/avo/sidebar_profile_component.html.erb +27 -27
- data/app/components/avo/views/resource_edit_component.rb +1 -1
- data/app/components/avo/views/resource_index_component.html.erb +1 -1
- data/app/components/avo/views/resource_index_component.rb +8 -8
- data/app/controllers/avo/actions_controller.rb +22 -8
- data/app/controllers/avo/application_controller.rb +71 -66
- data/app/controllers/avo/associations_controller.rb +4 -6
- data/app/controllers/avo/attachments_controller.rb +1 -1
- data/app/controllers/avo/base_controller.rb +36 -17
- data/app/controllers/avo/home_controller.rb +1 -1
- data/app/controllers/avo/search_controller.rb +18 -20
- data/app/controllers/concerns/avo/initializes_avo.rb +2 -5
- data/app/javascript/js/controllers/fields/{simple_mde_controller.js → easy_mde_controller.js} +4 -3
- data/app/javascript/js/controllers/search_controller.js +3 -1
- data/app/javascript/js/controllers.js +2 -2
- data/app/views/avo/actions/show.html.erb +2 -1
- data/app/views/avo/associations/new.html.erb +1 -1
- data/app/views/avo/debug/status.html.erb +1 -1
- data/app/views/avo/partials/_custom_tools_alert.html.erb +2 -2
- data/app/views/avo/partials/_footer.html.erb +1 -1
- data/app/views/avo/partials/_javascript.html.erb +1 -1
- data/app/views/avo/partials/_navbar.html.erb +1 -1
- data/app/views/avo/partials/_profile_menu_extra.html.erb +2 -0
- data/app/views/layouts/avo/application.html.erb +2 -2
- data/avo.gemspec +1 -0
- data/config/initializers/pagy.rb +12 -10
- data/config/routes.rb +3 -3
- data/db/factories.rb +2 -1
- data/lib/avo/base_action.rb +12 -2
- data/lib/avo/base_resource.rb +178 -178
- data/lib/avo/concerns/filters_session_handler.rb +0 -1
- data/lib/avo/concerns/has_item_type.rb +4 -0
- data/lib/avo/concerns/has_items.rb +28 -23
- data/lib/avo/concerns/model_class_constantized.rb +0 -2
- data/lib/avo/configuration.rb +6 -2
- data/lib/avo/current.rb +22 -1
- data/lib/avo/dsl/field_parser.rb +1 -1
- data/lib/avo/dynamic_router.rb +12 -1
- data/lib/avo/engine.rb +8 -6
- data/lib/avo/fields/base_field.rb +25 -7
- data/lib/avo/fields/belongs_to_field.rb +20 -13
- data/lib/avo/fields/concerns/is_searchable.rb +1 -1
- data/lib/avo/fields/concerns/use_resource.rb +1 -1
- data/lib/avo/fields/field_manager.rb +13 -3
- data/lib/avo/fields/has_base_field.rb +5 -5
- data/lib/avo/fields/has_one_field.rb +1 -1
- data/lib/avo/fields/location_field.rb +18 -1
- data/lib/avo/licensing/h_q.rb +11 -6
- data/lib/avo/licensing/license.rb +1 -1
- data/lib/avo/licensing/license_manager.rb +1 -1
- data/lib/avo/licensing/{null_license.rb → nil_license.rb} +1 -1
- data/lib/avo/loaders/fields_loader.rb +7 -1
- data/lib/avo/plugin_manager.rb +2 -4
- data/lib/avo/reloader.rb +1 -1
- data/lib/avo/resources/controls/actions_list.rb +2 -1
- data/lib/avo/resources/items/holder.rb +5 -1
- data/lib/avo/resources/items/item_group.rb +1 -0
- data/lib/avo/resources/items/row.rb +54 -0
- data/lib/avo/resources/resource_manager.rb +4 -7
- data/lib/avo/services/debug_service.rb +6 -6
- data/lib/avo/services/telemetry_service.rb +3 -3
- data/lib/avo/version.rb +1 -1
- data/lib/avo.rb +107 -25
- data/lib/generators/avo/action_generator.rb +8 -8
- data/lib/generators/avo/card_generator.rb +27 -0
- data/lib/generators/avo/eject_generator.rb +1 -0
- data/lib/generators/avo/filter_generator.rb +8 -8
- data/lib/generators/avo/install_generator.rb +0 -1
- data/lib/generators/avo/resource_generator.rb +4 -1
- data/lib/generators/avo/templates/action.tt +3 -3
- data/lib/generators/avo/templates/cards/chartkick_card.tt +1 -1
- data/lib/generators/avo/templates/cards/chartkick_card_sample.tt +1 -1
- data/lib/generators/avo/templates/cards/metric_card.tt +1 -1
- data/lib/generators/avo/templates/cards/metric_card_sample.tt +1 -1
- data/lib/generators/avo/templates/cards/partial_card.tt +1 -1
- data/lib/generators/avo/templates/cards/partial_card_sample.tt +1 -1
- data/lib/generators/avo/templates/dashboards/dashboard.tt +1 -1
- data/lib/generators/avo/templates/resource/resource.tt +3 -4
- data/lib/generators/avo/templates/scope.tt +1 -1
- data/lib/tasks/avo_tasks.rake +1 -1
- data/public/avo-assets/avo.base.css +295 -165
- data/public/avo-assets/avo.base.js +307 -278
- data/public/avo-assets/avo.base.js.map +3 -3
- metadata +23 -10
- data/lib/avo/app.rb +0 -170
- data/lib/avo/grid_collector.rb +0 -40
- data/lib/generators/avo/card/chartkick_generator.rb +0 -18
- data/lib/generators/avo/card/metric_generator.rb +0 -18
- data/lib/generators/avo/card/partial_generator.rb +0 -19
- data/lib/generators/avo/templates/standalone_action.tt +0 -15
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0.
|
4
|
+
version: 3.0.0.pre14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrian Marin
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-07-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -25,6 +25,20 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '6.1'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: activesupport
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '6.1'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '6.1'
|
28
42
|
- !ruby/object:Gem::Dependency
|
29
43
|
name: actionview
|
30
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1553,6 +1567,8 @@ files:
|
|
1553
1567
|
- app/components/avo/resource_component.rb
|
1554
1568
|
- app/components/avo/resource_sidebar_component.html.erb
|
1555
1569
|
- app/components/avo/resource_sidebar_component.rb
|
1570
|
+
- app/components/avo/row_component.html.erb
|
1571
|
+
- app/components/avo/row_component.rb
|
1556
1572
|
- app/components/avo/sidebar/base_item_component.rb
|
1557
1573
|
- app/components/avo/sidebar/group_component.html.erb
|
1558
1574
|
- app/components/avo/sidebar/group_component.rb
|
@@ -1607,9 +1623,9 @@ files:
|
|
1607
1623
|
- app/javascript/js/controllers/fields/belongs_to_field_controller.js
|
1608
1624
|
- app/javascript/js/controllers/fields/code_field_controller.js
|
1609
1625
|
- app/javascript/js/controllers/fields/date_field_controller.js
|
1626
|
+
- app/javascript/js/controllers/fields/easy_mde_controller.js
|
1610
1627
|
- app/javascript/js/controllers/fields/key_value_controller.js
|
1611
1628
|
- app/javascript/js/controllers/fields/progress_bar_field_controller.js
|
1612
|
-
- app/javascript/js/controllers/fields/simple_mde_controller.js
|
1613
1629
|
- app/javascript/js/controllers/fields/tags_field_helpers.js
|
1614
1630
|
- app/javascript/js/controllers/fields/trix_field_controller.js
|
1615
1631
|
- app/javascript/js/controllers/filter_controller.js
|
@@ -1670,6 +1686,7 @@ files:
|
|
1670
1686
|
- app/views/avo/partials/_logo.html.erb
|
1671
1687
|
- app/views/avo/partials/_navbar.html.erb
|
1672
1688
|
- app/views/avo/partials/_pre_head.html.erb
|
1689
|
+
- app/views/avo/partials/_profile_menu_extra.html.erb
|
1673
1690
|
- app/views/avo/partials/_resource_search.html.erb
|
1674
1691
|
- app/views/avo/partials/_scripts.html.erb
|
1675
1692
|
- app/views/avo/partials/_sidebar_extra.html.erb
|
@@ -1701,7 +1718,6 @@ files:
|
|
1701
1718
|
- db/factories.rb
|
1702
1719
|
- lib/avo.rb
|
1703
1720
|
- lib/avo/action_model.rb
|
1704
|
-
- lib/avo/app.rb
|
1705
1721
|
- lib/avo/asset_manager.rb
|
1706
1722
|
- lib/avo/base_action.rb
|
1707
1723
|
- lib/avo/base_resource.rb
|
@@ -1778,7 +1794,6 @@ files:
|
|
1778
1794
|
- lib/avo/filters/multiple_select_filter.rb
|
1779
1795
|
- lib/avo/filters/select_filter.rb
|
1780
1796
|
- lib/avo/filters/text_filter.rb
|
1781
|
-
- lib/avo/grid_collector.rb
|
1782
1797
|
- lib/avo/grid_fields/body_field.rb
|
1783
1798
|
- lib/avo/grid_fields/grid_field.rb
|
1784
1799
|
- lib/avo/grid_fields/preview_field.rb
|
@@ -1789,7 +1804,7 @@ files:
|
|
1789
1804
|
- lib/avo/licensing/h_q.rb
|
1790
1805
|
- lib/avo/licensing/license.rb
|
1791
1806
|
- lib/avo/licensing/license_manager.rb
|
1792
|
-
- lib/avo/licensing/
|
1807
|
+
- lib/avo/licensing/nil_license.rb
|
1793
1808
|
- lib/avo/licensing/pro_license.rb
|
1794
1809
|
- lib/avo/loaders/actions_loader.rb
|
1795
1810
|
- lib/avo/loaders/fields_loader.rb
|
@@ -1814,6 +1829,7 @@ files:
|
|
1814
1829
|
- lib/avo/resources/items/item_group.rb
|
1815
1830
|
- lib/avo/resources/items/main_panel.rb
|
1816
1831
|
- lib/avo/resources/items/panel.rb
|
1832
|
+
- lib/avo/resources/items/row.rb
|
1817
1833
|
- lib/avo/resources/items/sidebar.rb
|
1818
1834
|
- lib/avo/resources/items/tab.rb
|
1819
1835
|
- lib/avo/resources/items/tab_group.rb
|
@@ -1829,9 +1845,7 @@ files:
|
|
1829
1845
|
- lib/avo/version.rb
|
1830
1846
|
- lib/generators/avo/action_generator.rb
|
1831
1847
|
- lib/generators/avo/base_generator.rb
|
1832
|
-
- lib/generators/avo/
|
1833
|
-
- lib/generators/avo/card/metric_generator.rb
|
1834
|
-
- lib/generators/avo/card/partial_generator.rb
|
1848
|
+
- lib/generators/avo/card_generator.rb
|
1835
1849
|
- lib/generators/avo/controller_generator.rb
|
1836
1850
|
- lib/generators/avo/dashboard_generator.rb
|
1837
1851
|
- lib/generators/avo/eject_generator.rb
|
@@ -1883,7 +1897,6 @@ files:
|
|
1883
1897
|
- lib/generators/avo/templates/resource_tools/partial.tt
|
1884
1898
|
- lib/generators/avo/templates/resource_tools/resource_tool.tt
|
1885
1899
|
- lib/generators/avo/templates/scope.tt
|
1886
|
-
- lib/generators/avo/templates/standalone_action.tt
|
1887
1900
|
- lib/generators/avo/templates/tailwindcss/Procfile.dev
|
1888
1901
|
- lib/generators/avo/templates/tailwindcss/avo.tailwind.css
|
1889
1902
|
- lib/generators/avo/templates/tool/controller.tt
|
data/lib/avo/app.rb
DELETED
@@ -1,170 +0,0 @@
|
|
1
|
-
module Avo
|
2
|
-
class App
|
3
|
-
class_attribute :field_manager
|
4
|
-
class_attribute :cache_store, default: nil
|
5
|
-
class_attribute :logger
|
6
|
-
|
7
|
-
include ActiveModel::Model
|
8
|
-
|
9
|
-
attr_accessor :request, :context, :current_user, :view_context
|
10
|
-
attr_accessor :cache_store
|
11
|
-
attr_accessor :resource_manager
|
12
|
-
attr_accessor :dashboard_manager
|
13
|
-
attr_accessor :tool_manager
|
14
|
-
attr_accessor :error_manager
|
15
|
-
|
16
|
-
class << self
|
17
|
-
def eager_load(entity)
|
18
|
-
paths = Avo::ENTITIES.fetch entity
|
19
|
-
|
20
|
-
return unless paths.present?
|
21
|
-
|
22
|
-
pathname = Rails.root.join(*paths)
|
23
|
-
if pathname.directory?
|
24
|
-
Rails.autoloaders.main.eager_load_dir(pathname.to_s)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def boot
|
29
|
-
init_logger
|
30
|
-
init_fields
|
31
|
-
self.cache_store = get_cache_store
|
32
|
-
::Avo.plugin_manager.boot_plugins
|
33
|
-
end
|
34
|
-
|
35
|
-
def get_cache_store
|
36
|
-
if Rails.env.production?
|
37
|
-
case Rails.cache.class.to_s
|
38
|
-
when "ActiveSupport::Cache::MemCacheStore", "ActiveSupport::Cache::RedisCacheStore"
|
39
|
-
Rails.cache
|
40
|
-
else
|
41
|
-
ActiveSupport::Cache.lookup_store(:file_store, Rails.root.join("tmp", "cache"))
|
42
|
-
end
|
43
|
-
elsif Rails.env.test?
|
44
|
-
Rails.cache
|
45
|
-
else
|
46
|
-
ActiveSupport::Cache.lookup_store(:memory_store)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def init_logger
|
51
|
-
file_logger = ActiveSupport::Logger.new(Rails.root.join("log", "avo.log"))
|
52
|
-
|
53
|
-
file_logger.datetime_format = "%Y-%m-%d %H:%M:%S"
|
54
|
-
file_logger.formatter = proc do |severity, time, progname, msg|
|
55
|
-
"[Avo] #{time}: #{msg}\n".tap do |i|
|
56
|
-
puts i
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
self.logger = file_logger
|
61
|
-
end
|
62
|
-
|
63
|
-
def init_fields
|
64
|
-
self.field_manager = Avo::Fields::FieldManager.build
|
65
|
-
end
|
66
|
-
|
67
|
-
def fields
|
68
|
-
field_manager
|
69
|
-
end
|
70
|
-
|
71
|
-
def build(request:, context:, current_user:, view_context:)
|
72
|
-
@app || new(request: request, context: context, current_user: current_user, view_context: view_context)
|
73
|
-
end
|
74
|
-
|
75
|
-
def license
|
76
|
-
Current.license
|
77
|
-
end
|
78
|
-
|
79
|
-
def instance
|
80
|
-
Current.app
|
81
|
-
end
|
82
|
-
|
83
|
-
def resources
|
84
|
-
Current.app.resource_manager
|
85
|
-
end
|
86
|
-
|
87
|
-
def dashboards
|
88
|
-
Current.app.dashboard_manager
|
89
|
-
end
|
90
|
-
|
91
|
-
def tools
|
92
|
-
Current.app.tool_manager
|
93
|
-
end
|
94
|
-
|
95
|
-
def errors
|
96
|
-
Current.app.error_manager
|
97
|
-
end
|
98
|
-
|
99
|
-
# Renerate a dynamic root path using the URIService
|
100
|
-
def root_path(paths: [], query: {}, **args)
|
101
|
-
Avo::Services::URIService.parse(Avo::Current.view_context.avo.root_url.to_s)
|
102
|
-
.append_paths(paths)
|
103
|
-
.append_query(query)
|
104
|
-
.to_s
|
105
|
-
end
|
106
|
-
|
107
|
-
def mount_path
|
108
|
-
Avo::Engine.routes.find_script_name({})
|
109
|
-
end
|
110
|
-
|
111
|
-
def has_main_menu?
|
112
|
-
return false if Avo::App.license.lacks_with_trial(:menu_editor)
|
113
|
-
return false if Avo.configuration.main_menu.nil?
|
114
|
-
|
115
|
-
true
|
116
|
-
end
|
117
|
-
|
118
|
-
def has_profile_menu?
|
119
|
-
return false if Avo::App.license.lacks_with_trial(:menu_editor)
|
120
|
-
return false if Avo.configuration.profile_menu.nil?
|
121
|
-
|
122
|
-
true
|
123
|
-
end
|
124
|
-
|
125
|
-
def main_menu
|
126
|
-
return unless Avo.plugin_manager.installed?(:avo_menu)
|
127
|
-
|
128
|
-
# Return empty menu if the app doesn't have the profile menu configured
|
129
|
-
return AvoMenu::Builder.new.build unless has_main_menu?
|
130
|
-
|
131
|
-
AvoMenu::Builder.parse_menu(&Avo.configuration.main_menu)
|
132
|
-
end
|
133
|
-
|
134
|
-
def profile_menu
|
135
|
-
return unless Avo.plugin_manager.installed?(:avo_menu)
|
136
|
-
|
137
|
-
# Return empty menu if the app doesn't have the profile menu configured
|
138
|
-
return AvoMenu::Builder.new.build unless has_profile_menu?
|
139
|
-
|
140
|
-
AvoMenu::Builder.parse_menu(&Avo.configuration.profile_menu)
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
def init
|
145
|
-
self.error_manager = Avo::ErrorManager.build
|
146
|
-
self.resource_manager = Avo::Resources::ResourceManager.build
|
147
|
-
self.tool_manager = Avo::Tools::ToolManager.build
|
148
|
-
end
|
149
|
-
|
150
|
-
# Renerate a dynamic root path using the URIService
|
151
|
-
def root_path(paths: [], query: {}, **args)
|
152
|
-
Avo::Services::URIService.parse(view_context.avo.root_url.to_s)
|
153
|
-
.append_paths(paths)
|
154
|
-
.append_query(query)
|
155
|
-
.to_s
|
156
|
-
end
|
157
|
-
|
158
|
-
def mount_path
|
159
|
-
Avo::Engine.routes.find_script_name({})
|
160
|
-
end
|
161
|
-
|
162
|
-
def app_status
|
163
|
-
Current.license.valid?
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
def self.logger
|
168
|
-
Avo::App.logger
|
169
|
-
end
|
170
|
-
end
|
data/lib/avo/grid_collector.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
module Avo
|
2
|
-
class GridCollector
|
3
|
-
attr_accessor :cover_field
|
4
|
-
attr_accessor :title_field
|
5
|
-
attr_accessor :body_field
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@cover_field = nil
|
9
|
-
@title_field = nil
|
10
|
-
@body_field = nil
|
11
|
-
end
|
12
|
-
|
13
|
-
def cover(field_name, as:, **args, &block)
|
14
|
-
field_parser = Avo::Dsl::FieldParser.new(id: field_name, as: as, **args, &block).parse
|
15
|
-
self.cover_field = field_parser.instance if field_parser.valid?
|
16
|
-
end
|
17
|
-
|
18
|
-
def title(field_name, as:, **args, &block)
|
19
|
-
field_parser = Avo::Dsl::FieldParser.new(id: field_name, as: as, **args, &block).parse
|
20
|
-
self.title_field = field_parser.instance if field_parser.valid?
|
21
|
-
end
|
22
|
-
|
23
|
-
def body(field_name, as:, **args, &block)
|
24
|
-
field_parser = Avo::Dsl::FieldParser.new(id: field_name, as: as, **args, &block).parse
|
25
|
-
self.body_field = field_parser.instance if field_parser.valid?
|
26
|
-
end
|
27
|
-
|
28
|
-
def hydrate(record:, view:, resource:)
|
29
|
-
cover_field.hydrate(record: record, view: view, resource: resource) if cover_field.present?
|
30
|
-
title_field.hydrate(record: record, view: view, resource: resource) if title_field.present?
|
31
|
-
body_field.hydrate(record: record, view: view, resource: resource) if body_field.present?
|
32
|
-
|
33
|
-
self
|
34
|
-
end
|
35
|
-
|
36
|
-
def blank?
|
37
|
-
title_field.blank?
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require_relative "../named_base_generator"
|
2
|
-
|
3
|
-
module Generators
|
4
|
-
module Avo
|
5
|
-
module Card
|
6
|
-
class ChartkickGenerator < Generators::Avo::NamedBaseGenerator
|
7
|
-
source_root File.expand_path("../templates", __dir__)
|
8
|
-
|
9
|
-
namespace "avo:card:chartkick"
|
10
|
-
desc "Add a chartkick card for your Avo dashboard."
|
11
|
-
|
12
|
-
def handle
|
13
|
-
template "cards/chartkick_card_sample.tt", "app/avo/cards/#{name.underscore}.rb"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require_relative "../named_base_generator"
|
2
|
-
|
3
|
-
module Generators
|
4
|
-
module Avo
|
5
|
-
module Card
|
6
|
-
class MetricGenerator < Generators::Avo::NamedBaseGenerator
|
7
|
-
source_root File.expand_path("../templates", __dir__)
|
8
|
-
|
9
|
-
namespace "avo:card:metric"
|
10
|
-
desc "Add a metric card for your Avo dashboard."
|
11
|
-
|
12
|
-
def handle
|
13
|
-
template "cards/metric_card_sample.tt", "app/avo/cards/#{name.underscore}.rb"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require_relative "../named_base_generator"
|
2
|
-
|
3
|
-
module Generators
|
4
|
-
module Avo
|
5
|
-
module Card
|
6
|
-
class PartialGenerator < Generators::Avo::NamedBaseGenerator
|
7
|
-
source_root File.expand_path("../templates", __dir__)
|
8
|
-
|
9
|
-
namespace "avo:card:partial"
|
10
|
-
desc "Add a partial card for your Avo dashboard."
|
11
|
-
|
12
|
-
def handle
|
13
|
-
template "cards/partial_card_sample.tt", "app/avo/cards/#{name.underscore}.rb"
|
14
|
-
template "cards/partial_card_partial.tt", "app/views/avo/cards/_#{name.underscore}.html.erb"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
class Avo::Actions::<%= class_name.camelize %> < Avo::BaseAction
|
2
|
-
self.name = "<%= name.underscore.humanize %>"
|
3
|
-
self.standalone = true
|
4
|
-
# self.visible = -> do
|
5
|
-
# true
|
6
|
-
# end
|
7
|
-
|
8
|
-
# def fields
|
9
|
-
# # Add Action fields here
|
10
|
-
# end
|
11
|
-
|
12
|
-
def handle(fields:, current_user:, resource:)
|
13
|
-
# Do something here
|
14
|
-
end
|
15
|
-
end
|