feat: show only edit or list view in settings

This commit is contained in:
carla 2026-01-07 18:11:07 +01:00
parent 38d106a69e
commit 4a6e7cf51a
2 changed files with 32 additions and 1 deletions

View file

@ -31,6 +31,7 @@ defmodule MvWeb.GlobalSettingsLive do
socket
|> assign(:page_title, gettext("Settings"))
|> assign(:settings, settings)
|> assign(:active_editing_section, nil)
|> assign_form()}
end
@ -65,12 +66,14 @@ defmodule MvWeb.GlobalSettingsLive do
<%!-- Memberdata Section --%>
<.form_section title={gettext("Memberdata")}>
<.live_component
:if={@active_editing_section != :custom_fields}
module={MvWeb.MemberFieldLive.IndexComponent}
id="member-fields-component"
settings={@settings}
/>
<%!-- Custom Fields Section --%>
<.live_component
:if={@active_editing_section != :member_fields}
module={MvWeb.CustomFieldLive.IndexComponent}
id="custom-fields-component"
/>
@ -113,7 +116,9 @@ defmodule MvWeb.GlobalSettingsLive do
)
{:noreply,
put_flash(socket, :info, gettext("Custom field %{action} successfully", action: action))}
socket
|> assign(:active_editing_section, nil)
|> put_flash(:info, gettext("Custom field %{action} successfully", action: action))}
end
@impl true
@ -163,6 +168,11 @@ defmodule MvWeb.GlobalSettingsLive do
{:noreply, put_flash(socket, :error, error_message)}
end
@impl true
def handle_info({:editing_section_changed, section}, socket) do
{:noreply, assign(socket, :active_editing_section, section)}
end
@impl true
def handle_info({:member_field_saved, _member_field, action}, socket) do
# Reload settings to get updated member_field_visibility
@ -178,6 +188,7 @@ defmodule MvWeb.GlobalSettingsLive do
{:noreply,
socket
|> assign(:settings, updated_settings)
|> assign(:active_editing_section, nil)
|> put_flash(:info, gettext("Member field %{action} successfully", action: action))}
end