refactor: fix credo warnings, update gettext
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
05c81af6e9
commit
5e0b6580ae
6 changed files with 487 additions and 83 deletions
|
|
@ -27,40 +27,46 @@ defmodule MvWeb.GroupLive.Form do
|
|||
action = if params["slug"], do: :update, else: :create
|
||||
resource = Mv.Membership.Group
|
||||
|
||||
unless can?(actor, action, resource) do
|
||||
{:ok, redirect(socket, to: ~p"/groups")}
|
||||
else
|
||||
socket =
|
||||
case params["slug"] do
|
||||
nil ->
|
||||
# New group
|
||||
socket
|
||||
|> assign(:group, nil)
|
||||
|> assign(:page_title, gettext("Create Group"))
|
||||
|> assign(:return_to, "index")
|
||||
|
||||
slug ->
|
||||
# Edit existing group
|
||||
case Membership.get_group_by_slug(slug, actor: actor) do
|
||||
{:ok, nil} ->
|
||||
socket
|
||||
|> put_flash(:error, gettext("Group not found."))
|
||||
|> redirect(to: ~p"/groups")
|
||||
|
||||
{:ok, group} ->
|
||||
socket
|
||||
|> assign(:group, group)
|
||||
|> assign(:page_title, gettext("Edit Group"))
|
||||
|> assign(:return_to, "show")
|
||||
|
||||
{:error, _error} ->
|
||||
socket
|
||||
|> put_flash(:error, gettext("Failed to load group."))
|
||||
|> redirect(to: ~p"/groups")
|
||||
end
|
||||
end
|
||||
|
||||
if can?(actor, action, resource) do
|
||||
socket = load_group_for_form(socket, params, actor)
|
||||
{:ok, assign_form(socket)}
|
||||
else
|
||||
{:ok, redirect(socket, to: ~p"/groups")}
|
||||
end
|
||||
end
|
||||
|
||||
defp load_group_for_form(socket, params, actor) do
|
||||
case params["slug"] do
|
||||
nil ->
|
||||
# New group
|
||||
socket
|
||||
|> assign(:group, nil)
|
||||
|> assign(:page_title, gettext("Create Group"))
|
||||
|> assign(:return_to, "index")
|
||||
|
||||
slug ->
|
||||
# Edit existing group
|
||||
load_existing_group(socket, slug, actor)
|
||||
end
|
||||
end
|
||||
|
||||
defp load_existing_group(socket, slug, actor) do
|
||||
case Membership.get_group_by_slug(slug, actor: actor) do
|
||||
{:ok, nil} ->
|
||||
socket
|
||||
|> put_flash(:error, gettext("Group not found."))
|
||||
|> redirect(to: ~p"/groups")
|
||||
|
||||
{:ok, group} ->
|
||||
socket
|
||||
|> assign(:group, group)
|
||||
|> assign(:page_title, gettext("Edit Group"))
|
||||
|> assign(:return_to, "show")
|
||||
|
||||
{:error, _error} ->
|
||||
socket
|
||||
|> put_flash(:error, gettext("Failed to load group."))
|
||||
|> redirect(to: ~p"/groups")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue