mix selecto.gen.saved_view_configs (selecto_mix v0.3.16)
Generate SavedViewConfigs implementation for separate view type configurations.
This task generates the necessary files to implement saved view configurations that are separate by view type (detail, aggregate, graph) in your SelectoComponents application.
Examples
# Generate for MyApp with default naming
mix selecto.gen.saved_view_configs MyApp
# Generate with custom context module name
mix selecto.gen.saved_view_configs MyApp --context-module MyApp.ViewConfigs.Context
# Generate with custom schema module name
mix selecto.gen.saved_view_configs MyApp --schema-module MyApp.ViewConfigs.SavedConfig
# Generate with custom table name
mix selecto.gen.saved_view_configs MyApp --table-name view_configurations
# Show what would be generated without creating files
mix selecto.gen.saved_view_configs MyApp --dry-runOptions
--context-module- Name for the context module (default: APP.SavedViewConfigContext)--schema-module- Name for the schema module (default: APP.SavedViewConfig)--table-name- Database table name (default: saved_view_configs)--repo-module- Repository module name (default: APP.Repo)--dry-run- Show what would be generated without creating files
Generated Files
This task generates:
- Migration file for the saved_view_configs table with view_type separation
- Ecto schema module for SavedViewConfig
- Context module with view_type filtering support
Usage in Domains
After running the generator, use the context in your domains:
defmodule MyApp.Domains.UserDomain do
use MyApp.SavedViewConfigContext
# ... rest of domain configuration
endThen in your LiveView, use the new saved view configurations:
def handle_event("save_view_config", params, socket) do
view_type = socket.assigns.view_config.view_mode
MyApp.Domains.UserDomain.save_view_config(
params["name"],
socket.assigns.saved_view_context,
view_type,
view_config_to_params(socket.assigns.view_config),
user_id: socket.assigns.current_user.id,
description: params["description"]
)
{:noreply, socket}
end