Module: Avo

Extended by:
ActiveSupport::LazyLoadHooks
Defined in:
lib/avo/view_inquirer.rb,
lib/avo.rb,
lib/avo/engine.rb,
lib/avo/plugin.rb,
lib/avo/version.rb,
lib/avo/base_action.rb,
lib/avo/action_model.rb,
lib/avo/test_helpers.rb,
lib/avo/asset_manager.rb,
lib/avo/base_resource.rb,
lib/avo/configuration.rb,
lib/avo/error_manager.rb,
lib/avo/licensing/h_q.rb,
lib/avo/dynamic_router.rb,
lib/avo/loaders/loader.rb,
lib/avo/plugin_manager.rb,
lib/avo/fields/id_field.rb,
lib/avo/dsl/field_parser.rb,
lib/avo/execution_context.rb,
lib/avo/fields/area_field.rb,
lib/avo/fields/base_field.rb,
lib/avo/fields/code_field.rb,
lib/avo/fields/date_field.rb,
lib/avo/fields/file_field.rb,
lib/avo/fields/text_field.rb,
lib/avo/fields/time_field.rb,
lib/avo/fields/trix_field.rb,
lib/avo/licensing/license.rb,
lib/avo/base_resource_tool.rb,
lib/avo/concerns/has_items.rb,
lib/avo/fields/badge_field.rb,
lib/avo/fields/files_field.rb,
lib/avo/tools/tool_manager.rb,
app/helpers/avo/url_helpers.rb,
lib/avo/concerns/is_visible.rb,
lib/avo/fields/hidden_field.rb,
lib/avo/fields/number_field.rb,
lib/avo/fields/select_field.rb,
lib/avo/fields/status_field.rb,
lib/avo/filters/base_filter.rb,
lib/avo/filters/text_filter.rb,
lib/avo/concerns/breadcrumbs.rb,
lib/avo/concerns/has_helpers.rb,
lib/avo/fields/boolean_field.rb,
lib/avo/fields/country_field.rb,
lib/avo/fields/field_manager.rb,
lib/avo/fields/has_one_field.rb,
lib/avo/fields/heading_field.rb,
lib/avo/fields/preview_field.rb,
lib/avo/services/uri_service.rb,
lib/avo/concerns/has_controls.rb,
lib/avo/fields/gravatar_field.rb,
lib/avo/fields/has_base_field.rb,
lib/avo/fields/has_many_field.rb,
lib/avo/fields/location_field.rb,
lib/avo/fields/markdown_field.rb,
lib/avo/fields/password_field.rb,
lib/avo/fields/textarea_field.rb,
lib/avo/filters/select_filter.rb,
lib/avo/licensing/nil_license.rb,
lib/avo/licensing/pro_license.rb,
lib/avo/loaders/fields_loader.rb,
lib/avo/prefixed_test_helpers.rb,
lib/avo/concerns/has_item_type.rb,
lib/avo/concerns/visible_items.rb,
lib/avo/fields/date_time_field.rb,
lib/avo/fields/key_value_field.rb,
lib/avo/filters/boolean_filter.rb,
lib/avo/grid_fields/body_field.rb,
lib/avo/grid_fields/grid_field.rb,
lib/avo/loaders/actions_loader.rb,
lib/avo/loaders/filters_loader.rb,
lib/avo/fields/belongs_to_field.rb,
lib/avo/grid_fields/title_field.rb,
app/helpers/avo/resources_helper.rb,
lib/avo/concerns/has_description.rb,
lib/avo/concerns/is_resource_item.rb,
lib/avo/fields/progress_bar_field.rb,
lib/avo/grid_fields/preview_field.rb,
lib/avo/licensing/license_manager.rb,
app/helpers/avo/application_helper.rb,
lib/avo/concerns/can_replace_items.rb,
lib/avo/fields/boolean_group_field.rb,
lib/avo/resources/resource_manager.rb,
app/controllers/avo/base_controller.rb,
app/controllers/avo/home_controller.rb,
lib/avo/fields/concerns/has_default.rb,
lib/avo/fields/concerns/is_disabled.rb,
lib/avo/fields/concerns/is_readonly.rb,
lib/avo/fields/concerns/is_required.rb,
lib/avo/fields/external_image_field.rb,
lib/avo/licensing/community_license.rb,
lib/avo/services/encryption_service.rb,
app/controllers/avo/debug_controller.rb,
lib/avo/fields/concerns/use_resource.rb,
app/controllers/avo/search_controller.rb,
lib/avo/fields/concerns/is_searchable.rb,
app/controllers/avo/actions_controller.rb,
app/controllers/avo/private_controller.rb,
lib/avo/fields/concerns/has_field_name.rb,
lib/avo/filters/multiple_select_filter.rb,
lib/avo/resources/controls/back_button.rb,
lib/avo/resources/controls/edit_button.rb,
lib/avo/resources/controls/save_button.rb,
lib/avo/resources/controls/show_button.rb,
lib/avo/services/authorization_service.rb,
lib/avo/resources/controls/actions_list.rb,
lib/avo/resources/controls/base_control.rb,
app/controllers/avo/resources_controller.rb,
lib/avo/concerns/filters_session_handler.rb,
lib/avo/resources/controls/attach_button.rb,
lib/avo/resources/controls/create_button.rb,
lib/avo/resources/controls/delete_button.rb,
lib/avo/resources/controls/detach_button.rb,
lib/avo/concerns/has_stimulus_controllers.rb,
lib/avo/concerns/model_class_constantized.rb,
lib/avo/resources/controls/order_controls.rb,
app/controllers/avo/application_controller.rb,
app/controllers/avo/attachments_controller.rb,
lib/avo/fields/concerns/file_authorization.rb,
lib/avo/fields/concerns/handles_field_args.rb,
app/controllers/avo/associations_controller.rb,
lib/avo/concerns/visible_in_different_views.rb,
lib/avo/fields/concerns/has_html_attributes.rb,
lib/avo/fields/concerns/use_view_components.rb,
app/controllers/concerns/avo/initializes_avo.rb,
lib/avo/configuration/resource_configuration.rb,
lib/avo/fields/has_and_belongs_to_many_field.rb,
app/components/avo/fields/concerns/item_labels.rb,
app/components/avo/index/resource_map_component.rb,
lib/avo/fields/field_extensions/has_include_blank.rb

Overview

This concern helps us figure out what kind of items (field, tool, tab_group, or panel) have been passed to the resource or action.

Defined Under Namespace

Modules: ApplicationHelper, Concerns, Dsl, Fields, Filters, GridFields, Index, InitializesAvo, Licensing, Loaders, PrefixedTestHelpers, Resources, ResourcesHelper, Services, TestHelpers, Tools, UrlHelpers Classes: ActionModel, ActionsComponent, ActionsController, AlertComponent, ApplicationController, AssetManager, AssociationsController, AttachmentsController, BaseAction, BaseComponent, BaseController, BaseResource, BaseResourceTool, BlankFieldComponent, ButtonComponent, Configuration, Current, DebugController, DeprecatedAPIError, DynamicRouter, EmptyStateComponent, Engine, ErrorManager, ExecutionContext, FieldWrapperComponent, FiltersComponent, FlashAlertsComponent, HomeController, ItemGrapher, ItemSwitcherComponent, LicenseInvalidError, LicenseVerificationTemperedError, LoadingComponent, MissingGemError, ModalComponent, NoPolicyError, NotAuthorizedError, PaginatorComponent, PanelComponent, Plugin, PluginManager, PrivateController, ProfileItemComponent, ReferrerParamsComponent, Reloader, ResourceComponent, ResourceSidebarComponent, ResourcesController, RowComponent, SearchController, SidebarComponent, SidebarProfileComponent, SvgFinder, TabGroupComponent, TabSwitcherComponent, TeamUsersController, TurboFrameWrapperComponent, ViewInquirer

Constant Summary collapse

ROOT_PATH =
Pathname.new(File.join(__dir__, ".."))
IN_DEVELOPMENT =
ENV["AVO_IN_DEVELOPMENT"] == "1"
PACKED =
!IN_DEVELOPMENT
COOKIES_KEY =
"avo"
ENTITIES =
{
  cards: ["app", "avo", "cards"],
  scopes: ["app", "avo", "scopes"],
  fields: ["app", "avo", "fields"],
  filters: ["app", "avo", "filters"],
  actions: ["app", "avo", "actions"],
  resources: ["app", "avo", "resources"],
  dashboards: ["app", "avo", "dashboards"],
  resource_tools: ["app", "avo", "resource_tools"]
}
VERSION =
"3.0.1.beta16"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.cache_storeObject (readonly)

Returns the value of attribute cache_store.



46
47
48
# File 'lib/avo.rb', line 46

def cache_store
  @cache_store
end

.field_managerObject (readonly)

Returns the value of attribute field_manager.



47
48
49
# File 'lib/avo.rb', line 47

def field_manager
  @field_manager
end

.loggerObject (readonly)

Returns the value of attribute logger.



45
46
47
# File 'lib/avo.rb', line 45

def logger
  @logger
end

Class Method Details

.app_statusObject



97
98
99
# File 'lib/avo.rb', line 97

def app_status
  license.valid?
end

.asset_managerObject



27
28
29
# File 'lib/avo/asset_manager.rb', line 27

def self.asset_manager
  @manager ||= AssetManager.new
end

.avo_filters_installed?Boolean

Returns:

  • (Boolean)


101
102
103
# File 'lib/avo.rb', line 101

def avo_filters_installed?
  defined?(Avo::DynamicFilters).present?
end

.bootObject



51
52
53
54
55
56
57
# File 'lib/avo.rb', line 51

def boot
  boot_logger
  boot_fields
  @cache_store = get_cache_store
  plugin_manager.boot_plugins
  Avo.run_load_hooks(:boot, self)
end

.configurationObject



169
170
171
# File 'lib/avo/configuration.rb', line 169

def self.configuration
  @configuration ||= Configuration.new
end

.configuration=(config) ⇒ Object



173
174
175
# File 'lib/avo/configuration.rb', line 173

def self.configuration=(config)
  @configuration = config
end

.configure {|configuration| ... } ⇒ Object

Yields:



177
178
179
# File 'lib/avo/configuration.rb', line 177

def self.configure
  yield configuration
end

.has_main_menu?Boolean

Returns:

  • (Boolean)


105
106
107
108
109
110
# File 'lib/avo.rb', line 105

def has_main_menu?
  return false if Avo.license.lacks_with_trial(:menu_editor)
  return false if Avo.configuration.main_menu.nil?

  true
end

.has_profile_menu?Boolean

Returns:

  • (Boolean)


112
113
114
115
116
117
# File 'lib/avo.rb', line 112

def has_profile_menu?
  return false if Avo.license.lacks_with_trial(:menu_editor)
  return false if Avo.configuration.profile_menu.nil?

  true
end

.initObject



59
60
61
62
63
64
65
# File 'lib/avo.rb', line 59

def init
  Avo::Current.error_manager = Avo::ErrorManager.build
  Avo::Current.resource_manager = Avo::Resources::ResourceManager.build
  Avo::Current.tool_manager = Avo::Tools::ToolManager.build

  Avo.run_load_hooks(:init, self)
end


79
80
81
82
83
84
85
86
# File 'lib/avo.rb', line 79

def main_menu
  return unless Avo.plugin_manager.installed?("avo-menu")

  # Return empty menu if the app doesn't have the profile menu configured
  return Avo::Menu::Builder.new.build unless has_main_menu?

  Avo::Menu::Builder.parse_menu(&Avo.configuration.main_menu)
end

.mount_enginesObject

Mount all Avo engines



120
121
122
123
124
125
126
# File 'lib/avo.rb', line 120

def mount_engines
  -> {
    mount Avo::DynamicFilters::Engine, at: "/avo-dynamic_filters" if defined?(Avo::DynamicFilters::Engine)
    mount Avo::Dashboards::Engine, at: "/dashboards" if defined?(Avo::Dashboards::Engine)
    mount Avo::Pro::Engine, at: "/avo-pro" if defined?(Avo::Pro::Engine)
  }
end

.mount_pathObject



75
76
77
# File 'lib/avo.rb', line 75

def mount_path
  Avo::Engine.routes.find_script_name({})
end

.plugin_managerObject



53
54
55
# File 'lib/avo/plugin_manager.rb', line 53

def self.plugin_manager
  @plugin_manager ||= PluginManager.new
end

.profile_menuObject



88
89
90
91
92
93
94
95
# File 'lib/avo.rb', line 88

def profile_menu
  return unless Avo.plugin_manager.installed?("avo-menu")

  # Return empty menu if the app doesn't have the profile menu configured
  return Avo::Menu::Builder.new.build unless has_profile_menu?

  Avo::Menu::Builder.parse_menu(&Avo.configuration.profile_menu)
end

.root_path(paths: [], query: {}, **args) ⇒ Object

Renerate a dynamic root path using the URIService



68
69
70
71
72
73
# File 'lib/avo.rb', line 68

def root_path(paths: [], query: {}, **args)
  Avo::Services::URIService.parse(Avo::Current.view_context.avo.root_url.to_s)
    .append_paths(paths)
    .append_query(query)
    .to_s
end