From 77ae5c48884935946f35498bdf68ab47a9fe00a0 Mon Sep 17 00:00:00 2001 From: Moritz Date: Tue, 13 Jan 2026 14:05:44 +0100 Subject: [PATCH] refactor: Use submit_form wrapper in all LiveView forms - Replace AshPhoenix.Form.submit with submit_form/3 wrapper - Import current_actor and submit_form from LiveHelpers - Consistent actor handling in all form submissions --- lib/mv_web/live/custom_field_live/form_component.ex | 4 +++- lib/mv_web/live/custom_field_value_live/form.ex | 6 ++++-- lib/mv_web/live/global_settings_live.ex | 4 +++- lib/mv_web/live/member_live/form.ex | 7 ++----- lib/mv_web/live/membership_fee_settings_live.ex | 4 +++- lib/mv_web/live/membership_fee_type_live/form.ex | 6 ++++-- lib/mv_web/live/role_live/form.ex | 4 +++- 7 files changed, 22 insertions(+), 13 deletions(-) diff --git a/lib/mv_web/live/custom_field_live/form_component.ex b/lib/mv_web/live/custom_field_live/form_component.ex index 71bdd03..54ef4a7 100644 --- a/lib/mv_web/live/custom_field_live/form_component.ex +++ b/lib/mv_web/live/custom_field_live/form_component.ex @@ -91,7 +91,9 @@ defmodule MvWeb.CustomFieldLive.FormComponent do @impl true def handle_event("save", %{"custom_field" => custom_field_params}, socket) do - case AshPhoenix.Form.submit(socket.assigns.form, params: custom_field_params) do + actor = MvWeb.LiveHelpers.current_actor(socket) + + case MvWeb.LiveHelpers.submit_form(socket.assigns.form, custom_field_params, actor) do {:ok, custom_field} -> action = case socket.assigns.form.source.type do diff --git a/lib/mv_web/live/custom_field_value_live/form.ex b/lib/mv_web/live/custom_field_value_live/form.ex index fde54c3..599ce1d 100644 --- a/lib/mv_web/live/custom_field_value_live/form.ex +++ b/lib/mv_web/live/custom_field_value_live/form.ex @@ -33,7 +33,7 @@ defmodule MvWeb.CustomFieldValueLive.Form do use MvWeb, :live_view on_mount {MvWeb.LiveHelpers, :ensure_user_role_loaded} - import MvWeb.LiveHelpers, only: [current_actor: 1] + import MvWeb.LiveHelpers, only: [current_actor: 1, submit_form: 3] @impl true def render(assigns) do @@ -228,7 +228,9 @@ defmodule MvWeb.CustomFieldValueLive.Form do custom_field_value_params end - case AshPhoenix.Form.submit(socket.assigns.form, params: updated_params) do + actor = current_actor(socket) + + case submit_form(socket.assigns.form, updated_params, actor) do {:ok, custom_field_value} -> notify_parent({:saved, custom_field_value}) diff --git a/lib/mv_web/live/global_settings_live.ex b/lib/mv_web/live/global_settings_live.ex index a4332d3..97fd81e 100644 --- a/lib/mv_web/live/global_settings_live.ex +++ b/lib/mv_web/live/global_settings_live.ex @@ -90,7 +90,9 @@ defmodule MvWeb.GlobalSettingsLive do @impl true def handle_event("save", %{"setting" => setting_params}, socket) do - case AshPhoenix.Form.submit(socket.assigns.form, params: setting_params) do + actor = MvWeb.LiveHelpers.current_actor(socket) + + case MvWeb.LiveHelpers.submit_form(socket.assigns.form, setting_params, actor) do {:ok, _updated_settings} -> # Reload settings from database to ensure all dependent data is updated {:ok, fresh_settings} = Membership.get_settings() diff --git a/lib/mv_web/live/member_live/form.ex b/lib/mv_web/live/member_live/form.ex index 1f5ab2d..07d4e2d 100644 --- a/lib/mv_web/live/member_live/form.ex +++ b/lib/mv_web/live/member_live/form.ex @@ -23,7 +23,7 @@ defmodule MvWeb.MemberLive.Form do on_mount {MvWeb.LiveHelpers, :ensure_user_role_loaded} - import MvWeb.LiveHelpers, only: [current_actor: 1] + import MvWeb.LiveHelpers, only: [current_actor: 1, submit_form: 3] alias Mv.MembershipFees alias Mv.MembershipFees.MembershipFeeType @@ -290,10 +290,7 @@ defmodule MvWeb.MemberLive.Form do try do actor = current_actor(socket) - case AshPhoenix.Form.submit(socket.assigns.form, - params: member_params, - action_opts: [actor: actor] - ) do + case submit_form(socket.assigns.form, member_params, actor) do {:ok, member} -> handle_save_success(socket, member) diff --git a/lib/mv_web/live/membership_fee_settings_live.ex b/lib/mv_web/live/membership_fee_settings_live.ex index 61774e8..a98ccdb 100644 --- a/lib/mv_web/live/membership_fee_settings_live.ex +++ b/lib/mv_web/live/membership_fee_settings_live.ex @@ -63,7 +63,9 @@ defmodule MvWeb.MembershipFeeSettingsLive do Map.put(params, "include_joining_cycle", false) end - case AshPhoenix.Form.submit(socket.assigns.form, params: normalized_params) do + actor = MvWeb.LiveHelpers.current_actor(socket) + + case MvWeb.LiveHelpers.submit_form(socket.assigns.form, normalized_params, actor) do {:ok, updated_settings} -> {:noreply, socket diff --git a/lib/mv_web/live/membership_fee_type_live/form.ex b/lib/mv_web/live/membership_fee_type_live/form.ex index 4d2f0b5..76d3bfa 100644 --- a/lib/mv_web/live/membership_fee_type_live/form.ex +++ b/lib/mv_web/live/membership_fee_type_live/form.ex @@ -14,7 +14,7 @@ defmodule MvWeb.MembershipFeeTypeLive.Form do use MvWeb, :live_view on_mount {MvWeb.LiveHelpers, :ensure_user_role_loaded} - import MvWeb.LiveHelpers, only: [current_actor: 1] + import MvWeb.LiveHelpers, only: [current_actor: 1, submit_form: 3] require Ash.Query @@ -308,7 +308,9 @@ defmodule MvWeb.MembershipFeeTypeLive.Form do if socket.assigns.show_amount_warning do {:noreply, put_flash(socket, :error, gettext("Please confirm the amount change first"))} else - case AshPhoenix.Form.submit(socket.assigns.form, params: params) do + actor = current_actor(socket) + + case submit_form(socket.assigns.form, params, actor) do {:ok, membership_fee_type} -> notify_parent({:saved, membership_fee_type}) diff --git a/lib/mv_web/live/role_live/form.ex b/lib/mv_web/live/role_live/form.ex index 7b74c7e..0ad0fdd 100644 --- a/lib/mv_web/live/role_live/form.ex +++ b/lib/mv_web/live/role_live/form.ex @@ -162,7 +162,9 @@ defmodule MvWeb.RoleLive.Form do end def handle_event("save", %{"role" => role_params}, socket) do - case AshPhoenix.Form.submit(socket.assigns.form, params: role_params) do + actor = MvWeb.LiveHelpers.current_actor(socket) + + case MvWeb.LiveHelpers.submit_form(socket.assigns.form, role_params, actor) do {:ok, role} -> notify_parent({:saved, role})