Implements settings for member fields closes #223 #300
1 changed files with 13 additions and 27 deletions
|
|
@ -141,33 +141,6 @@ defmodule MvWeb.GlobalSettingsLive do
|
||||||
{:noreply, put_flash(socket, :error, gettext("Slug does not match. Deletion cancelled."))}
|
{:noreply, put_flash(socket, :error, gettext("Slug does not match. Deletion cancelled."))}
|
||||||
end
|
end
|
||||||
|
|
||||||
@impl true
|
|
||||||
def handle_info({:member_field_visibility_updated}, socket) do
|
|
||||||
# Reload settings to get updated member_field_visibility
|
|
||||||
{:ok, updated_settings} = Membership.get_settings()
|
|
||||||
|
|
||||||
{:noreply,
|
|
||||||
socket
|
|
||||||
|> assign(:settings, updated_settings)
|
|
||||||
|> put_flash(:info, gettext("Member field visibility updated successfully"))}
|
|
||||||
end
|
|
||||||
|
|
||||||
@impl true
|
|
||||||
def handle_info({:member_field_visibility_error, error}, socket) do
|
|
||||||
error_message =
|
|
||||||
case error do
|
|
||||||
%Ash.Error.Invalid{} = invalid_error ->
|
|
||||||
gettext("Failed to update member field visibility: %{error}",
|
|
||||||
error: Ash.ErrorKind.message(invalid_error)
|
|
||||||
)
|
|
||||||
|
|
||||||
error ->
|
|
||||||
gettext("Failed to update member field visibility: %{error}", error: inspect(error))
|
|
||||||
end
|
|
||||||
|
|
||||||
{:noreply, put_flash(socket, :error, error_message)}
|
|
||||||
end
|
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def handle_info({:editing_section_changed, section}, socket) do
|
def handle_info({:editing_section_changed, section}, socket) do
|
||||||
{:noreply, assign(socket, :active_editing_section, section)}
|
{:noreply, assign(socket, :active_editing_section, section)}
|
||||||
|
|
@ -192,6 +165,19 @@ defmodule MvWeb.GlobalSettingsLive do
|
||||||
|> put_flash(:info, gettext("Member field %{action} successfully", action: action))}
|
|> put_flash(:info, gettext("Member field %{action} successfully", action: action))}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@impl true
|
||||||
|
def handle_info({:member_field_visibility_updated}, socket) do
|
||||||
|
# Legacy event - reload settings and update component
|
||||||
|
{:ok, updated_settings} = Membership.get_settings()
|
||||||
|
|
||||||
|
send_update(MvWeb.MemberFieldLive.IndexComponent,
|
||||||
|
id: "member-fields-component",
|
||||||
|
settings: updated_settings
|
||||||
|
)
|
||||||
|
|
||||||
|
{:noreply, assign(socket, :settings, updated_settings)}
|
||||||
|
end
|
||||||
|
|
||||||
defp assign_form(%{assigns: %{settings: settings}} = socket) do
|
defp assign_form(%{assigns: %{settings: settings}} = socket) do
|
||||||
form =
|
form =
|
||||||
AshPhoenix.Form.for_update(
|
AshPhoenix.Form.for_update(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue