Class: Avo::Configuration
- Inherits:
-
Object
- Object
- Avo::Configuration
- Defined in:
- lib/avo/configuration.rb
Defined Under Namespace
Classes: Appearance
Constant Summary collapse
- CONTAINER_WIDTH_DEFAULTS =
{ index: :large, show: :small, new: :small, edit: :small, create: :small, update: :small }.freeze
- VALID_CONTAINER_WIDTHS =
%i[full large small].freeze
- CONTAINER_WIDTH_GROUPS =
{ forms: %i[new edit create update], display: %i[index show], single: %i[show new edit create update] }.freeze
- RESOURCE_ROW_CONTROLS_CONFIG_DEFAULTS =
{ placement: :right, float: false, show_on_hover: false }.freeze
- HOTKEYS_DEFAULTS =
{ enabled: true, show_key_badges: true }.freeze
- BACK_TO_TOP_DEFAULTS =
{ enabled: false, threshold: 64 }.freeze
- SIDEBAR_DEFAULTS =
{ toggle_visible: true, resizable: true }.freeze
- ASSOCIATIONS_DEFAULTS =
{ lookup_list_limit: 1000, frames: { loading: :lazy, # 15 minutes, in seconds. Kept as a literal (not `15.minutes`) because # this constant is evaluated at require time, before ActiveSupport's # `Integer#minutes` core extension is guaranteed to be loaded. auto_load_for: 15 * 60 } }.freeze
- RTL_LOCALES =
Known RTL (Right-to-Left) locale codes
%w[ar he fa ur yi ps sd ku ckb ug dv].freeze
Instance Attribute Summary collapse
-
#alert_dismiss_time ⇒ Object
Returns the value of attribute alert_dismiss_time.
- #app_name ⇒ Object
- #associations ⇒ Object
-
#authenticate ⇒ Object
Returns the value of attribute authenticate.
-
#authorization_client ⇒ Object
Returns the value of attribute authorization_client.
-
#authorization_methods ⇒ Object
Returns the value of attribute authorization_methods.
- #back_to_top ⇒ Object
- #body_classes ⇒ Object
-
#buttons_on_form_footers ⇒ Object
Returns the value of attribute buttons_on_form_footers.
-
#cache_resources_on_index_view ⇒ Object
Returns the value of attribute cache_resources_on_index_view.
- #cache_store ⇒ Object
-
#click_row_to_view_record ⇒ Object
Returns the value of attribute click_row_to_view_record.
-
#column_names_mapping ⇒ Object
Returns the value of attribute column_names_mapping.
-
#column_types_mapping ⇒ Object
Returns the value of attribute column_types_mapping.
-
#context ⇒ Object
Returns the value of attribute context.
-
#currency ⇒ Object
Returns the value of attribute currency.
-
#current_user ⇒ Object
Returns the value of attribute current_user.
-
#current_user_resource_name ⇒ Object
Returns the value of attribute current_user_resource_name.
-
#default_editor_url ⇒ Object
Returns the value of attribute default_editor_url.
-
#default_url_options ⇒ Object
Returns the value of attribute default_url_options.
-
#default_view_type ⇒ Object
Returns the value of attribute default_view_type.
-
#density ⇒ Object
Returns the value of attribute density.
-
#display_license_request_timeout_error ⇒ Object
Returns the value of attribute display_license_request_timeout_error.
- #exclude_from_status ⇒ Object
- #explicit_authorization ⇒ Object
-
#field_wrapper_layout ⇒ Object
Returns the value of attribute field_wrapper_layout.
-
#first_sorting_option ⇒ Object
Returns the value of attribute first_sorting_option.
-
#global_search ⇒ Object
Returns the value of attribute global_search.
-
#header_menu ⇒ Object
Returns the value of attribute header_menu.
-
#hide_layout_when_printing ⇒ Object
Returns the value of attribute hide_layout_when_printing.
-
#home_path ⇒ Object
Returns the value of attribute home_path.
- #hotkeys ⇒ Object
-
#id_links_to_resource ⇒ Object
Returns the value of attribute id_links_to_resource.
-
#initial_breadcrumbs ⇒ Object
Returns the value of attribute initial_breadcrumbs.
-
#is_admin_method ⇒ Object
Returns the value of attribute is_admin_method.
-
#is_developer_method ⇒ Object
Returns the value of attribute is_developer_method.
-
#license_key ⇒ Object
Returns the value of attribute license_key.
-
#locale ⇒ Object
Returns the value of attribute locale.
- #logger ⇒ Object
-
#main_menu ⇒ Object
Returns the value of attribute main_menu.
-
#model_generator_hook ⇒ Object
Returns the value of attribute model_generator_hook.
-
#model_resource_mapping ⇒ Object
Returns the value of attribute model_resource_mapping.
-
#mount_lookbook ⇒ Object
Returns the value of attribute mount_lookbook.
- #pagination ⇒ Object
-
#per_page ⇒ Object
Returns the value of attribute per_page.
-
#per_page_steps ⇒ Object
Returns the value of attribute per_page_steps.
- #persistence ⇒ Object
-
#prefix_path ⇒ Object
Returns the value of attribute prefix_path.
-
#profile_menu ⇒ Object
Returns the value of attribute profile_menu.
-
#raise_error_on_missing_policy ⇒ Object
Returns the value of attribute raise_error_on_missing_policy.
-
#resource_default_view ⇒ Object
Returns the value of attribute resource_default_view.
-
#resource_parent_controller ⇒ Object
Returns the value of attribute resource_parent_controller.
- #resource_row_controls_config ⇒ Object
-
#resources ⇒ Object
Returns the value of attribute resources.
- #root_path ⇒ Object
-
#search_debounce ⇒ Object
Returns the value of attribute search_debounce.
-
#search_results_count ⇒ Object
Returns the value of attribute search_results_count.
-
#send_metadata ⇒ Object
Returns the value of attribute send_metadata.
-
#sidebar ⇒ Object
default_widthis clamped into the same [SIDEBAR_WIDTH_MIN, SIDEBAR_WIDTH_MAX] range the drag and the persisted cookie use — outside it the sidebar would start at a width the handle cannot drag back to, and aria-valuenow would sit outside its own declared min/max. -
#sign_out_path_name ⇒ Object
Returns the value of attribute sign_out_path_name.
- #tailwindcss_content_sources ⇒ Object
-
#tailwindcss_integration_enabled ⇒ Object
Returns the value of attribute tailwindcss_integration_enabled.
-
#timezone ⇒ Object
Returns the value of attribute timezone.
- #turbo ⇒ Object
-
#use_stacked_fields ⇒ Object
Returns the value of attribute use_stacked_fields.
-
#via_per_page ⇒ Object
Returns the value of attribute via_per_page.
-
#view_component_path ⇒ Object
Returns the value of attribute view_component_path.
Class Method Summary collapse
-
.rtl_locale?(locale = I18n.locale) ⇒ Boolean
Check if the given locale is RTL.
Instance Method Summary collapse
- #appearance ⇒ Object
- #appearance=(options = {}) ⇒ Object
-
#associations_lookup_list_limit ⇒ Object
Backward-compatible flat accessor — the canonical home is now
config.associations[:lookup_list_limit]. - #associations_lookup_list_limit=(value) ⇒ Object
- #authenticate_with(&block) ⇒ Object
-
#authorization_enabled? ⇒ Boolean
Authorization is enabled when: (avo-authorization gem is installed) AND (authorization_client is NOT nil).
-
#computed_cache_store ⇒ Object
When not in production we'll just use the FileStore which is good enough.
- #container_width ⇒ Object
- #container_width=(value) ⇒ Object
- #current_user_method(&block) ⇒ Object
- #current_user_method=(method) ⇒ Object
- #default_locale ⇒ Object
- #default_logger ⇒ Object
- #default_turbo ⇒ Object
-
#header_menu_items ⇒ Object
Returns the Link items produced by evaluating the
header_menulambda. -
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
- #mount_avo_engines= ⇒ Object
- #namespace ⇒ Object
-
#rtl? ⇒ Boolean
Check if the current locale is RTL.
- #session_persistence_enabled? ⇒ Boolean
- #set_context(&block) ⇒ Object
- #set_initial_breadcrumbs(&block) ⇒ Object
-
#sidebar_toggle_visible ⇒ Object
Backward-compatible flat accessor — the canonical home is now
config.sidebar[:toggle_visible]. - #sidebar_toggle_visible=(value) ⇒ Object
-
#text_direction ⇒ Object
Returns "rtl" or "ltr" based on current locale.
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 |
# File 'lib/avo/configuration.rb', line 132 def initialize @root_path = "/avo" @app_name = ::Rails.application.class.to_s.split("::").first.underscore.humanize(keep_id_suffix: true) @timezone = "UTC" @per_page = 24 @per_page_steps = [12, 24, 48, 72] @via_per_page = 8 @locale = nil @currency = "USD" @default_view_type = :table @license_key = nil @current_user = proc {} @authenticate = proc {} @explicit_authorization = true @authorization_methods = { index: "index?", show: "show?", edit: "edit?", new: "new?", update: "update?", create: "create?", destroy: "destroy?" } @id_links_to_resource = false @cache_resources_on_index_view = Avo::PACKED @persistence = { driver: nil } @context = proc {} @initial_breadcrumbs = proc { title: I18n.t("avo.home").humanize, path: avo.root_path, icon: "tabler/outline/home" } @hide_layout_when_printing = false @home_path = nil @search_debounce = 300 @view_component_path = "app/components" @display_license_request_timeout_error = true @current_user_resource_name = "user" @raise_error_on_missing_policy = false @buttons_on_form_footers = false @main_menu = nil @profile_menu = nil @header_menu = nil @model_resource_mapping = {} @resource_default_view = Avo::ViewInquirer.new("show") @authorization_client = :pundit @field_wrapper_layout = :inline @resources = nil @resource_parent_controller = "Avo::ResourcesController" @cache_store = computed_cache_store @logger = default_logger @turbo = default_turbo @default_url_options = [] @pagination = {} @click_row_to_view_record = true @density = :normal @alert_dismiss_time = 5000 @is_admin_method = :is_admin? @is_developer_method = :is_developer? @search_results_count = 8 @first_sorting_option = :desc # :desc or :asc @exclude_from_status = ["license_key"] @column_names_mapping = {} @column_types_mapping = {} @resource_row_controls_config = {} @hotkeys = {} @back_to_top = {} @associations = {} @global_search = { enabled: true, navigation_section: true } @model_generator_hook = true @send_metadata = true @use_stacked_fields = false @default_editor_url = "cursor://file/%{path}" @sidebar = {} @body_classes = [] @tailwindcss_integration_enabled = true @mount_lookbook = false end |
Instance Attribute Details
#alert_dismiss_time ⇒ Object
Returns the value of attribute alert_dismiss_time.
56 57 58 |
# File 'lib/avo/configuration.rb', line 56 def alert_dismiss_time @alert_dismiss_time end |
#app_name ⇒ Object
357 358 359 |
# File 'lib/avo/configuration.rb', line 357 def app_name Avo::ExecutionContext.new(target: @app_name).handle end |
#associations ⇒ Object
295 296 297 |
# File 'lib/avo/configuration.rb', line 295 def associations ASSOCIATIONS_DEFAULTS.deep_merge(@associations) end |
#authenticate ⇒ Object
Returns the value of attribute authenticate.
27 28 29 |
# File 'lib/avo/configuration.rb', line 27 def authenticate @authenticate end |
#authorization_client ⇒ Object
Returns the value of attribute authorization_client.
47 48 49 |
# File 'lib/avo/configuration.rb', line 47 def @authorization_client end |
#authorization_methods ⇒ Object
Returns the value of attribute authorization_methods.
26 27 28 |
# File 'lib/avo/configuration.rb', line 26 def @authorization_methods end |
#back_to_top ⇒ Object
291 292 293 |
# File 'lib/avo/configuration.rb', line 291 def back_to_top BACK_TO_TOP_DEFAULTS.merge @back_to_top end |
#body_classes ⇒ Object
457 458 459 |
# File 'lib/avo/configuration.rb', line 457 def body_classes Avo::ExecutionContext.new(target: @body_classes).handle end |
#buttons_on_form_footers ⇒ Object
Returns the value of attribute buttons_on_form_footers.
41 42 43 |
# File 'lib/avo/configuration.rb', line 41 def @buttons_on_form_footers end |
#cache_resources_on_index_view ⇒ Object
Returns the value of attribute cache_resources_on_index_view.
30 31 32 |
# File 'lib/avo/configuration.rb', line 30 def cache_resources_on_index_view @cache_resources_on_index_view end |
#cache_store ⇒ Object
365 366 367 368 369 370 |
# File 'lib/avo/configuration.rb', line 365 def cache_store Avo::ExecutionContext.new( target: @cache_store, production_rejected_cache_stores: %w[ActiveSupport::Cache::MemoryStore ActiveSupport::Cache::NullStore] ).handle end |
#click_row_to_view_record ⇒ Object
Returns the value of attribute click_row_to_view_record.
54 55 56 |
# File 'lib/avo/configuration.rb', line 54 def click_row_to_view_record @click_row_to_view_record end |
#column_names_mapping ⇒ Object
Returns the value of attribute column_names_mapping.
61 62 63 |
# File 'lib/avo/configuration.rb', line 61 def column_names_mapping @column_names_mapping end |
#column_types_mapping ⇒ Object
Returns the value of attribute column_types_mapping.
62 63 64 |
# File 'lib/avo/configuration.rb', line 62 def column_types_mapping @column_types_mapping end |
#context ⇒ Object
Returns the value of attribute context.
31 32 33 |
# File 'lib/avo/configuration.rb', line 31 def context @context end |
#currency ⇒ Object
Returns the value of attribute currency.
23 24 25 |
# File 'lib/avo/configuration.rb', line 23 def currency @currency end |
#current_user ⇒ Object
Returns the value of attribute current_user.
28 29 30 |
# File 'lib/avo/configuration.rb', line 28 def current_user @current_user end |
#current_user_resource_name ⇒ Object
Returns the value of attribute current_user_resource_name.
38 39 40 |
# File 'lib/avo/configuration.rb', line 38 def current_user_resource_name @current_user_resource_name end |
#default_editor_url ⇒ Object
Returns the value of attribute default_editor_url.
66 67 68 |
# File 'lib/avo/configuration.rb', line 66 def default_editor_url @default_editor_url end |
#default_url_options ⇒ Object
Returns the value of attribute default_url_options.
53 54 55 |
# File 'lib/avo/configuration.rb', line 53 def @default_url_options end |
#default_view_type ⇒ Object
Returns the value of attribute default_view_type.
24 25 26 |
# File 'lib/avo/configuration.rb', line 24 def default_view_type @default_view_type end |
#density ⇒ Object
Returns the value of attribute density.
55 56 57 |
# File 'lib/avo/configuration.rb', line 55 def density @density end |
#display_license_request_timeout_error ⇒ Object
Returns the value of attribute display_license_request_timeout_error.
37 38 39 |
# File 'lib/avo/configuration.rb', line 37 def display_license_request_timeout_error @display_license_request_timeout_error end |
#exclude_from_status ⇒ Object
415 416 417 |
# File 'lib/avo/configuration.rb', line 415 def exclude_from_status Avo::ExecutionContext.new(target: @exclude_from_status).handle end |
#explicit_authorization ⇒ Object
453 454 455 |
# File 'lib/avo/configuration.rb', line 453 def Avo::ExecutionContext.new(target: @explicit_authorization).handle end |
#field_wrapper_layout ⇒ Object
Returns the value of attribute field_wrapper_layout.
48 49 50 |
# File 'lib/avo/configuration.rb', line 48 def field_wrapper_layout @field_wrapper_layout end |
#first_sorting_option ⇒ Object
Returns the value of attribute first_sorting_option.
60 61 62 |
# File 'lib/avo/configuration.rb', line 60 def first_sorting_option @first_sorting_option end |
#global_search ⇒ Object
Returns the value of attribute global_search.
40 41 42 |
# File 'lib/avo/configuration.rb', line 40 def global_search @global_search end |
#header_menu ⇒ Object
Returns the value of attribute header_menu.
44 45 46 |
# File 'lib/avo/configuration.rb', line 44 def @header_menu end |
#hide_layout_when_printing ⇒ Object
Returns the value of attribute hide_layout_when_printing.
32 33 34 |
# File 'lib/avo/configuration.rb', line 32 def hide_layout_when_printing @hide_layout_when_printing end |
#home_path ⇒ Object
Returns the value of attribute home_path.
34 35 36 |
# File 'lib/avo/configuration.rb', line 34 def home_path @home_path end |
#hotkeys ⇒ Object
287 288 289 |
# File 'lib/avo/configuration.rb', line 287 def hotkeys HOTKEYS_DEFAULTS.merge @hotkeys end |
#id_links_to_resource ⇒ Object
Returns the value of attribute id_links_to_resource.
29 30 31 |
# File 'lib/avo/configuration.rb', line 29 def id_links_to_resource @id_links_to_resource end |
#initial_breadcrumbs ⇒ Object
Returns the value of attribute initial_breadcrumbs.
33 34 35 |
# File 'lib/avo/configuration.rb', line 33 def @initial_breadcrumbs end |
#is_admin_method ⇒ Object
Returns the value of attribute is_admin_method.
57 58 59 |
# File 'lib/avo/configuration.rb', line 57 def is_admin_method @is_admin_method end |
#is_developer_method ⇒ Object
Returns the value of attribute is_developer_method.
58 59 60 |
# File 'lib/avo/configuration.rb', line 58 def is_developer_method @is_developer_method end |
#license_key ⇒ Object
Returns the value of attribute license_key.
25 26 27 |
# File 'lib/avo/configuration.rb', line 25 def license_key @license_key end |
#locale ⇒ Object
Returns the value of attribute locale.
22 23 24 |
# File 'lib/avo/configuration.rb', line 22 def locale @locale end |
#logger ⇒ Object
392 393 394 |
# File 'lib/avo/configuration.rb', line 392 def logger Avo::ExecutionContext.new(target: @logger).handle end |
#main_menu ⇒ Object
Returns the value of attribute main_menu.
42 43 44 |
# File 'lib/avo/configuration.rb', line 42 def @main_menu end |
#model_generator_hook ⇒ Object
Returns the value of attribute model_generator_hook.
63 64 65 |
# File 'lib/avo/configuration.rb', line 63 def model_generator_hook @model_generator_hook end |
#model_resource_mapping ⇒ Object
Returns the value of attribute model_resource_mapping.
45 46 47 |
# File 'lib/avo/configuration.rb', line 45 def model_resource_mapping @model_resource_mapping end |
#mount_lookbook ⇒ Object
Returns the value of attribute mount_lookbook.
70 71 72 |
# File 'lib/avo/configuration.rb', line 70 def mount_lookbook @mount_lookbook end |
#pagination ⇒ Object
427 428 429 |
# File 'lib/avo/configuration.rb', line 427 def pagination Avo::ExecutionContext.new(target: @pagination).handle end |
#per_page ⇒ Object
Returns the value of attribute per_page.
19 20 21 |
# File 'lib/avo/configuration.rb', line 19 def per_page @per_page end |
#per_page_steps ⇒ Object
Returns the value of attribute per_page_steps.
20 21 22 |
# File 'lib/avo/configuration.rb', line 20 def per_page_steps @per_page_steps end |
#persistence ⇒ Object
485 486 487 |
# File 'lib/avo/configuration.rb', line 485 def persistence Avo::ExecutionContext.new(target: @persistence).handle end |
#prefix_path ⇒ Object
Returns the value of attribute prefix_path.
51 52 53 |
# File 'lib/avo/configuration.rb', line 51 def prefix_path @prefix_path end |
#profile_menu ⇒ Object
Returns the value of attribute profile_menu.
43 44 45 |
# File 'lib/avo/configuration.rb', line 43 def @profile_menu end |
#raise_error_on_missing_policy ⇒ Object
Returns the value of attribute raise_error_on_missing_policy.
39 40 41 |
# File 'lib/avo/configuration.rb', line 39 def raise_error_on_missing_policy @raise_error_on_missing_policy end |
#resource_default_view ⇒ Object
Returns the value of attribute resource_default_view.
46 47 48 |
# File 'lib/avo/configuration.rb', line 46 def resource_default_view @resource_default_view end |
#resource_parent_controller ⇒ Object
Returns the value of attribute resource_parent_controller.
52 53 54 |
# File 'lib/avo/configuration.rb', line 52 def resource_parent_controller @resource_parent_controller end |
#resource_row_controls_config ⇒ Object
283 284 285 |
# File 'lib/avo/configuration.rb', line 283 def resource_row_controls_config RESOURCE_ROW_CONTROLS_CONFIG_DEFAULTS.merge @resource_row_controls_config end |
#resources ⇒ Object
Returns the value of attribute resources.
50 51 52 |
# File 'lib/avo/configuration.rb', line 50 def resources @resources end |
#root_path ⇒ Object
343 344 345 346 347 |
# File 'lib/avo/configuration.rb', line 343 def root_path return "" if @root_path === "/" @root_path end |
#search_debounce ⇒ Object
Returns the value of attribute search_debounce.
35 36 37 |
# File 'lib/avo/configuration.rb', line 35 def search_debounce @search_debounce end |
#search_results_count ⇒ Object
Returns the value of attribute search_results_count.
59 60 61 |
# File 'lib/avo/configuration.rb', line 59 def search_results_count @search_results_count end |
#send_metadata ⇒ Object
Returns the value of attribute send_metadata.
64 65 66 |
# File 'lib/avo/configuration.rb', line 64 def @send_metadata end |
#sidebar ⇒ Object
default_width is clamped into the same [SIDEBAR_WIDTH_MIN,
SIDEBAR_WIDTH_MAX] range the drag and the persisted cookie use — outside it
the sidebar would start at a width the handle cannot drag back to, and
aria-valuenow would sit outside its own declared min/max. Anything
unparseable falls back to the built-in default rather than clamping to the
minimum, so a typo does not silently ship a 200px sidebar. The bounds
constants stay private (lib/avo.rb): this hash is the only host-facing knob.
468 469 470 471 472 473 |
# File 'lib/avo/configuration.rb', line 468 def config = SIDEBAR_DEFAULTS.merge(@sidebar) width = Integer(config[:default_width], exception: false)&.clamp(SIDEBAR_WIDTH_MIN, SIDEBAR_WIDTH_MAX) config.merge(default_width: width || SIDEBAR_WIDTH_DEFAULT) end |
#sign_out_path_name ⇒ Object
Returns the value of attribute sign_out_path_name.
49 50 51 |
# File 'lib/avo/configuration.rb', line 49 def sign_out_path_name @sign_out_path_name end |
#tailwindcss_content_sources ⇒ Object
124 125 126 127 128 129 130 |
# File 'lib/avo/configuration.rb', line 124 def tailwindcss_content_sources if @tailwindcss_content_sources.nil? [Rails.root.join("app")] else Array(@tailwindcss_content_sources) end end |
#tailwindcss_integration_enabled ⇒ Object
Returns the value of attribute tailwindcss_integration_enabled.
69 70 71 |
# File 'lib/avo/configuration.rb', line 69 def tailwindcss_integration_enabled @tailwindcss_integration_enabled end |
#timezone ⇒ Object
Returns the value of attribute timezone.
18 19 20 |
# File 'lib/avo/configuration.rb', line 18 def timezone @timezone end |
#turbo ⇒ Object
411 412 413 |
# File 'lib/avo/configuration.rb', line 411 def turbo Avo::ExecutionContext.new(target: @turbo).handle end |
#use_stacked_fields ⇒ Object
Returns the value of attribute use_stacked_fields.
65 66 67 |
# File 'lib/avo/configuration.rb', line 65 def use_stacked_fields @use_stacked_fields end |
#via_per_page ⇒ Object
Returns the value of attribute via_per_page.
21 22 23 |
# File 'lib/avo/configuration.rb', line 21 def via_per_page @via_per_page end |
#view_component_path ⇒ Object
Returns the value of attribute view_component_path.
36 37 38 |
# File 'lib/avo/configuration.rb', line 36 def view_component_path @view_component_path end |
Class Method Details
.rtl_locale?(locale = I18n.locale) ⇒ Boolean
Check if the given locale is RTL
439 440 441 |
# File 'lib/avo/configuration.rb', line 439 def self.rtl_locale?(locale = I18n.locale) RTL_LOCALES.include?(locale.to_s.split("-").first.downcase) end |
Instance Method Details
#appearance ⇒ Object
349 350 351 |
# File 'lib/avo/configuration.rb', line 349 def appearance @appearance ||= Avo::Configuration::Appearance.new end |
#appearance=(options = {}) ⇒ Object
353 354 355 |
# File 'lib/avo/configuration.rb', line 353 def appearance=( = {}) @appearance = Avo::Configuration::Appearance.new() end |
#associations_lookup_list_limit ⇒ Object
Backward-compatible flat accessor — the canonical home is now
config.associations[:lookup_list_limit].
301 302 303 |
# File 'lib/avo/configuration.rb', line 301 def associations_lookup_list_limit associations[:lookup_list_limit] end |
#associations_lookup_list_limit=(value) ⇒ Object
305 306 307 |
# File 'lib/avo/configuration.rb', line 305 def associations_lookup_list_limit=(value) @associations[:lookup_list_limit] = value end |
#authenticate_with(&block) ⇒ Object
323 324 325 |
# File 'lib/avo/configuration.rb', line 323 def authenticate_with(&block) @authenticate = block if block.present? end |
#authorization_enabled? ⇒ Boolean
Authorization is enabled when: (avo-authorization gem is installed) AND (authorization_client is NOT nil)
311 312 313 |
# File 'lib/avo/configuration.rb', line 311 def @authorization_enabled ||= Avo.plugin_manager.installed?("avo-authorization") && !.nil? end |
#computed_cache_store ⇒ Object
When not in production we'll just use the FileStore which is good enough. When running in production we'll use Rails.cache if it's not ActiveSupport::Cache::MemoryStore or ActiveSupport::Cache::NullStore. If it's one of rejected cache stores, we'll use the FileStore. We decided against the MemoryStore in production because it will not be shared between multiple processes (when using Puma).
376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 |
# File 'lib/avo/configuration.rb', line 376 def computed_cache_store file_store_instance = ActiveSupport::Cache.lookup_store(:file_store, Rails.root.join("tmp", "cache")) -> { if Rails.env.production? if Rails.cache.class.to_s.in?(production_rejected_cache_stores) file_store_instance else Rails.cache end else file_store_instance end } end |
#container_width ⇒ Object
120 121 122 |
# File 'lib/avo/configuration.rb', line 120 def container_width @container_width || CONTAINER_WIDTH_DEFAULTS end |
#container_width=(value) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/avo/configuration.rb', line 91 def container_width=(value) case value when NilClass @container_width = nil when Symbol raise ArgumentError, "Invalid container width: #{value}. Must be one of #{VALID_CONTAINER_WIDTHS}" unless VALID_CONTAINER_WIDTHS.include?(value) @container_width = CONTAINER_WIDTH_DEFAULTS.transform_values { value } when Hash valid_keys = CONTAINER_WIDTH_DEFAULTS.keys + CONTAINER_WIDTH_GROUPS.keys invalid_keys = value.keys.reject { |k| valid_keys.include?(k) } raise ArgumentError, "Invalid container width keys: #{invalid_keys}. Valid keys: #{valid_keys}" if invalid_keys.any? invalid_values = value.values.reject { |v| VALID_CONTAINER_WIDTHS.include?(v) } raise ArgumentError, "Invalid container widths: #{invalid_values}" if invalid_values.any? # Expand group aliases first = value .select { |k, _| CONTAINER_WIDTH_GROUPS.key?(k) } .each_with_object({}) do |(alias_key, width), result| CONTAINER_WIDTH_GROUPS[alias_key].each { |view| result[view] = width } end # Specific keys win over group aliases specific_keys = value.reject { |k, _| CONTAINER_WIDTH_GROUPS.key?(k) } @container_width = CONTAINER_WIDTH_DEFAULTS.merge().merge(specific_keys) end end |
#current_user_method(&block) ⇒ Object
315 316 317 |
# File 'lib/avo/configuration.rb', line 315 def current_user_method(&block) @current_user = block if block.present? end |
#current_user_method=(method) ⇒ Object
319 320 321 |
# File 'lib/avo/configuration.rb', line 319 def current_user_method=(method) @current_user = method if method.present? end |
#default_locale ⇒ Object
431 432 433 |
# File 'lib/avo/configuration.rb', line 431 def default_locale @locale || I18n.default_locale end |
#default_logger ⇒ Object
396 397 398 399 400 401 402 403 404 405 406 407 408 409 |
# File 'lib/avo/configuration.rb', line 396 def default_logger -> { file_logger = ActiveSupport::Logger.new(Rails.root.join("log", "avo.log")) file_logger.datetime_format = "%Y-%m-%d %H:%M:%S" file_logger.formatter = proc do |severity, time, progname, msg| "[Avo->] #{time}: #{msg}\n".tap do |i| puts i end end file_logger } end |
#default_turbo ⇒ Object
419 420 421 422 423 424 425 |
# File 'lib/avo/configuration.rb', line 419 def default_turbo -> do { instant_click: true } end end |
#header_menu_items ⇒ Object
Returns the Link items produced by evaluating the header_menu lambda.
Empty when unset or when avo-menu (which owns the DSL) isn't installed.
501 502 503 504 505 506 507 508 |
# File 'lib/avo/configuration.rb', line 501 def return [] if @header_menu.nil? return [] unless Avo.plugin_manager.installed?("avo-menu") Avo::Menu::Builder.(&@header_menu).items.select do |item| item.is_a?(Avo::Menu::Link) end end |
#mount_avo_engines= ⇒ Object
493 494 495 496 497 |
# File 'lib/avo/configuration.rb', line 493 def mount_avo_engines=(...) raise "'mount_avo_engines' option is now obsolete. \n" \ "Please refer to the upgrade guide for details on the new mounting point: \n" \ "https://docs.avohq.io/3.0/upgrade.html#Avo's%20mounting%20point%20update" end |
#namespace ⇒ Object
335 336 337 338 339 340 341 |
# File 'lib/avo/configuration.rb', line 335 def namespace if Avo.configuration.root_path.present? Avo.configuration.root_path.delete "/" else root_path.delete "/" end end |
#rtl? ⇒ Boolean
Check if the current locale is RTL
444 445 446 |
# File 'lib/avo/configuration.rb', line 444 def rtl? self.class.rtl_locale?(I18n.locale) end |
#session_persistence_enabled? ⇒ Boolean
489 490 491 |
# File 'lib/avo/configuration.rb', line 489 def session_persistence_enabled? persistence[:driver] == :session end |
#set_context(&block) ⇒ Object
327 328 329 |
# File 'lib/avo/configuration.rb', line 327 def set_context(&block) @context = block if block.present? end |
#set_initial_breadcrumbs(&block) ⇒ Object
331 332 333 |
# File 'lib/avo/configuration.rb', line 331 def (&block) @initial_breadcrumbs = block if block.present? end |
#sidebar_toggle_visible ⇒ Object
Backward-compatible flat accessor — the canonical home is now
config.sidebar[:toggle_visible].
477 478 479 |
# File 'lib/avo/configuration.rb', line 477 def [:toggle_visible] end |
#sidebar_toggle_visible=(value) ⇒ Object
481 482 483 |
# File 'lib/avo/configuration.rb', line 481 def (value) @sidebar[:toggle_visible] = value end |
#text_direction ⇒ Object
Returns "rtl" or "ltr" based on current locale
449 450 451 |
# File 'lib/avo/configuration.rb', line 449 def text_direction rtl? ? "rtl" : "ltr" end |