Module: AdminSuite

Defined in:
lib/admin_suite.rb,
lib/admin_suite/engine.rb,
lib/admin_suite/version.rb,
lib/admin_suite/configuration.rb,
lib/admin_suite/theme_palette.rb,
lib/admin_suite/portal_registry.rb,
lib/admin_suite/markdown_renderer.rb,
lib/admin_suite/portal_definition.rb,
app/helpers/admin_suite/base_helper.rb,
app/helpers/admin_suite/icon_helper.rb,
app/helpers/admin_suite/theme_helper.rb,
app/helpers/admin_suite/panels_helper.rb,
lib/admin_suite/ui/form_field_renderer.rb,
lib/admin_suite/ui/dashboard_definition.rb,
lib/admin_suite/ui/show_value_formatter.rb,
app/helpers/admin_suite/resources_helper.rb,
lib/admin_suite/ui/field_renderer_registry.rb,
lib/admin_suite/ui/show_formatter_registry.rb,
app/controllers/admin_suite/docs_controller.rb,
app/controllers/admin_suite/portals_controller.rb,
app/controllers/admin_suite/dashboard_controller.rb,
app/controllers/admin_suite/resources_controller.rb,
app/controllers/admin_suite/application_controller.rb,
lib/generators/admin_suite/install/install_generator.rb,
lib/generators/admin_suite/resource/resource_generator.rb,
lib/generators/admin_suite/scaffold/scaffold_generator.rb

Defined Under Namespace

Modules: BaseHelper, Generators, IconHelper, PanelsHelper, PortalRegistry, ResourcesHelper, ThemeHelper, ThemePalette, UI, Version Classes: ApplicationController, Configuration, DashboardController, DocsController, Engine, MarkdownRenderer, PortalDefinition, PortalsController, ResourcesController

Constant Summary collapse

VERSION =

Backward-compatible constant.

Version::VERSION

Class Method Summary collapse

Class Method Details

.configAdminSuite::Configuration



24
25
26
# File 'lib/admin_suite.rb', line 24

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ AdminSuite::Configuration

Yield Parameters:

Returns:



30
31
32
33
# File 'lib/admin_suite.rb', line 30

def configure
  yield(config)
  config
end

.portal(key) { ... } ⇒ AdminSuite::PortalDefinition

Defines (or updates) a portal using a Ruby DSL.

Host apps typically place these in:

  • ‘config/admin_suite/portals/*.rb` (recommended; not a Zeitwerk autoload path)

  • ‘app/admin_suite/portals/*.rb` (supported; AdminSuite ignores for Zeitwerk)

  • ‘app/admin/portals/*.rb` (supported; AdminSuite will ignore for Zeitwerk if files contain AdminSuite.portal)

Parameters:

  • key (Symbol, String)

Yields:

  • Portal definition DSL

Returns:



45
46
47
48
49
50
# File 'lib/admin_suite.rb', line 45

def portal(key, &block)
  definition = PortalDefinition.new(key)
  definition.instance_eval(&block) if block_given?
  PortalRegistry.register(definition)
  definition
end

.portal_definitionsHash{Symbol=>AdminSuite::PortalDefinition}

Returns:



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

def portal_definitions
  PortalRegistry.all
end

.reset_root_dashboard!void

This method returns an undefined value.

Clears the root dashboard definition (useful for development reloads).



81
82
83
84
85
86
# File 'lib/admin_suite.rb', line 81

def reset_root_dashboard!
  config.root_dashboard_definition = nil
  config.root_dashboard_loaded = false
rescue StandardError
  # best-effort
end

.root_dashboard { ... } ⇒ AdminSuite::UI::DashboardDefinition

Defines (or updates) the root dashboard shown at the engine root (/).

This uses the same dashboard DSL as portal dashboards.

Host apps typically place these in:

  • config/admin_suite/dashboard.rb (recommended; not a Zeitwerk autoload path)

  • app/admin_suite/dashboard.rb (supported; AdminSuite ignores for Zeitwerk)

Yields:

  • Dashboard definition DSL

Returns:



67
68
69
70
71
# File 'lib/admin_suite.rb', line 67

def root_dashboard(&block)
  config.root_dashboard_definition ||= UI::DashboardDefinition.new
  UI::DashboardDSL.new(config.root_dashboard_definition).instance_eval(&block) if block_given?
  config.root_dashboard_definition
end

.root_dashboard_definitionAdminSuite::UI::DashboardDefinition?



74
75
76
# File 'lib/admin_suite.rb', line 74

def root_dashboard_definition
  config.root_dashboard_definition
end