Refactor to ExtensionBehaviour

This commit is contained in:
Mayel de Borniol 2022-10-21 20:51:00 +13:00
parent 00179eccbc
commit cd3cac2300
9 changed files with 23 additions and 15 deletions

View file

@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
## [Unreleased (2022-10-20)]
## [Unreleased (2022-10-21)]
### Added
- Enable/disable extensions [#448](https://github.com/bonfire-networks/bonfire-app/issues/448)
- Coordination MVP [#445](https://github.com/bonfire-networks/bonfire-app/issues/445) by mayel & ivanminutillo

View file

@ -48,7 +48,7 @@ pointable_schema_extensions = [
config :pointers, :search_path, pointable_schema_extensions
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a queries_module/0 or context_modules/0 function)
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a query_module/0 or context_modules/0 function)
context_and_queries_extensions =
pointable_schema_extensions ++
[

View file

@ -48,7 +48,7 @@ pointable_schema_extensions = [
config :pointers, :search_path, pointable_schema_extensions
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a queries_module/0 or context_modules/0 function)
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a query_module/0 or context_modules/0 function)
context_and_queries_extensions =
pointable_schema_extensions ++
[
@ -89,10 +89,17 @@ extensions_with_ui =
]
config :bonfire, :verb_names, verbs
config :bonfire, :context_modules_search_path, context_and_queries_extensions
config :bonfire, :query_modules_search_path, context_and_queries_extensions
config :bonfire, :config_modules_search_path, extensions_with_config
config :bonfire, :ui_modules_search_path, extensions_with_ui
# NOTE: these shouldn't be needed anymore since we scan all apps with Bonfire.Common.ExtensionBehaviour
config :bonfire, :extensions_grouped, %{
Bonfire.Common.ContextModule => context_and_queries_extensions,
Bonfire.Common.SchemaModule => context_and_queries_extensions,
Bonfire.Common.QueryModule => context_and_queries_extensions,
Bonfire.Common.ConfigModule => extensions_with_config,
Bonfire.Common.ExtensionModule => extensions_with_ui,
Bonfire.Common.WidgetModule => extensions_with_ui,
Bonfire.Common.NavModule => extensions_with_ui
}
# Search these apps/extensions for Verbs to index (i.e. they contain modules with a declare_verbs/0 function)
config :bonfire_data_access_control,

View file

@ -47,7 +47,7 @@ pointable_schema_extensions = [
config :pointers, :search_path, pointable_schema_extensions
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a queries_module/0 or context_modules/0 function)
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a query_module/0 or context_modules/0 function)
context_and_queries_extensions =
pointable_schema_extensions ++
[

View file

@ -47,7 +47,7 @@ pointable_schema_extensions = [
config :pointers, :search_path, pointable_schema_extensions
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a queries_module/0 or context_modules/0 function)
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a query_module/0 or context_modules/0 function)
context_and_queries_extensions =
pointable_schema_extensions ++
[

View file

@ -47,7 +47,7 @@ pointable_schema_extensions = [
config :pointers, :search_path, pointable_schema_extensions
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a queries_module/0 or context_modules/0 function)
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a query_module/0 or context_modules/0 function)
context_and_queries_extensions =
pointable_schema_extensions ++
[

View file

@ -61,7 +61,8 @@ defmodule Bonfire.Application do
# Database
@repo_module,
EctoSparkles.AutoMigrator,
# Bonfire.Common.ConfigModules,
# behaviour modules are already prepared as part of `Bonfire.Common.Config.LoadExtensionsConfig`
# Bonfire.Common.ExtensionBehaviour,
# Bonfire.Common.Config.LoadExtensionsConfig,
# load instance Settings from DB into Config
Bonfire.Me.Settings.LoadInstanceConfig,
@ -71,8 +72,8 @@ defmodule Bonfire.Application do
Pointers.Tables
# Bonfire.Data.AccessControl.Accesses,
## these populate on first call, so no need to run on startup:
# Bonfire.Common.ContextModules,
# Bonfire.Common.QueryModules,
# Bonfire.Common.ContextModule,
# Bonfire.Common.QueryModule,
# Bonfire.Federate.ActivityPub.FederationModules
# {PhoenixProfiler, name: Bonfire.Web.Profiler}
]

View file

@ -50,7 +50,7 @@ defmodule Bonfire.Web.HomeLive do
changelog: @changelog,
error: nil,
form: login_form(params),
nav_items: Bonfire.Common.ExtensionModules.default_nav(:bonfire_ui_social),
nav_items: Bonfire.Common.ExtensionModule.default_nav(:bonfire_ui_social),
# nav_header: false,
without_sidebar: true,
sidebar_widgets: [

View file

@ -17,7 +17,7 @@ defmodule Bonfire.Web.Router do
# include routes for active Bonfire extensions (no need to comment out, they'll be skipped if not available or if disabled)
# TODO: automatically include all active extensions
# ui_extensions = Application.compile_env!(:bonfire, :ui_modules_search_path)
# ui_extensions = Application.compile_env!(:bonfire, :extensions_grouped, Bonfire.Common.NavModule)
# |> Enum.flat_map(& Application.spec(&1, :modules) || [] )
# |> Enum.filter(& Code.ensure_loaded?(&1) and function_exported?(&1, :declare_routes, 0))
# |> debug()