improve invites, record usage
This commit is contained in:
@ -1,11 +1,11 @@
|
||||
defmodule CanneryWeb.InviteLive.FormComponent do
|
||||
@moduledoc """
|
||||
Livecomponent that can update or create an Cannery.Invites.Invite
|
||||
Livecomponent that can update or create an Cannery.Accounts.Invite
|
||||
"""
|
||||
|
||||
use CanneryWeb, :live_component
|
||||
alias Cannery.{Accounts.User, Invites, Invites.Invite}
|
||||
alias Ecto.Changeset
|
||||
alias Cannery.Accounts.{Invite, Invites, User}
|
||||
alias Phoenix.LiveView.Socket
|
||||
|
||||
@impl true
|
||||
|
@ -1,11 +1,12 @@
|
||||
defmodule CanneryWeb.InviteLive.Index do
|
||||
@moduledoc """
|
||||
Liveview to show a Cannery.Invites.Invite index
|
||||
Liveview to show a Cannery.Accounts.Invite index
|
||||
"""
|
||||
|
||||
use CanneryWeb, :live_view
|
||||
import CanneryWeb.Components.{InviteCard, UserCard}
|
||||
alias Cannery.{Accounts, Invites, Invites.Invite}
|
||||
alias Cannery.Accounts
|
||||
alias Cannery.Accounts.{Invite, Invites}
|
||||
alias CanneryWeb.{Endpoint, HomeLive}
|
||||
alias Phoenix.LiveView.JS
|
||||
|
||||
@ -17,7 +18,7 @@ defmodule CanneryWeb.InviteLive.Index do
|
||||
else
|
||||
prompt = dgettext("errors", "You are not authorized to view this page")
|
||||
return_to = Routes.live_path(Endpoint, HomeLive)
|
||||
socket |> put_flash(:error, prompt) |> push_navigate(to: return_to)
|
||||
socket |> put_flash(:error, prompt) |> push_redirect(to: return_to)
|
||||
end
|
||||
|
||||
{:ok, socket}
|
||||
@ -50,7 +51,7 @@ defmodule CanneryWeb.InviteLive.Index do
|
||||
%{name: invite_name} =
|
||||
id |> Invites.get_invite!(current_user) |> Invites.delete_invite!(current_user)
|
||||
|
||||
prompt = dgettext("prompts", "%{name} deleted succesfully", name: invite_name)
|
||||
prompt = dgettext("prompts", "%{invite_name} deleted succesfully", invite_name: invite_name)
|
||||
{:noreply, socket |> put_flash(:info, prompt) |> display_invites()}
|
||||
end
|
||||
|
||||
@ -61,10 +62,12 @@ defmodule CanneryWeb.InviteLive.Index do
|
||||
) do
|
||||
socket =
|
||||
Invites.get_invite!(id, current_user)
|
||||
|> Invites.update_invite(%{"uses_left" => nil}, current_user)
|
||||
|> Invites.update_invite(%{uses_left: nil}, current_user)
|
||||
|> case do
|
||||
{:ok, %{name: invite_name}} ->
|
||||
prompt = dgettext("prompts", "%{name} updated succesfully", name: invite_name)
|
||||
prompt =
|
||||
dgettext("prompts", "%{invite_name} updated succesfully", invite_name: invite_name)
|
||||
|
||||
socket |> put_flash(:info, prompt) |> display_invites()
|
||||
|
||||
{:error, changeset} ->
|
||||
@ -81,10 +84,12 @@ defmodule CanneryWeb.InviteLive.Index do
|
||||
) do
|
||||
socket =
|
||||
Invites.get_invite!(id, current_user)
|
||||
|> Invites.update_invite(%{"uses_left" => nil, "disabled_at" => nil}, current_user)
|
||||
|> Invites.update_invite(%{uses_left: nil, disabled_at: nil}, current_user)
|
||||
|> case do
|
||||
{:ok, %{name: invite_name}} ->
|
||||
prompt = dgettext("prompts", "%{name} enabled succesfully", name: invite_name)
|
||||
prompt =
|
||||
dgettext("prompts", "%{invite_name} enabled succesfully", invite_name: invite_name)
|
||||
|
||||
socket |> put_flash(:info, prompt) |> display_invites()
|
||||
|
||||
{:error, changeset} ->
|
||||
@ -103,10 +108,12 @@ defmodule CanneryWeb.InviteLive.Index do
|
||||
|
||||
socket =
|
||||
Invites.get_invite!(id, current_user)
|
||||
|> Invites.update_invite(%{"uses_left" => 0, "disabled_at" => now}, current_user)
|
||||
|> Invites.update_invite(%{uses_left: 0, disabled_at: now}, current_user)
|
||||
|> case do
|
||||
{:ok, %{name: invite_name}} ->
|
||||
prompt = dgettext("prompts", "%{name} disabled succesfully", name: invite_name)
|
||||
prompt =
|
||||
dgettext("prompts", "%{invite_name} disabled succesfully", invite_name: invite_name)
|
||||
|
||||
socket |> put_flash(:info, prompt) |> display_invites()
|
||||
|
||||
{:error, changeset} ->
|
||||
@ -130,7 +137,7 @@ defmodule CanneryWeb.InviteLive.Index do
|
||||
) do
|
||||
%{email: user_email} = Accounts.get_user!(id) |> Accounts.delete_user!(current_user)
|
||||
|
||||
prompt = dgettext("prompts", "%{name} deleted succesfully", name: user_email)
|
||||
prompt = dgettext("prompts", "%{user_email} deleted succesfully", user_email: user_email)
|
||||
|
||||
{:noreply, socket |> put_flash(:info, prompt) |> display_invites()}
|
||||
end
|
||||
|
@ -19,7 +19,7 @@
|
||||
<% end %>
|
||||
|
||||
<div class="w-full flex flex-row flex-wrap justify-center items-stretch">
|
||||
<.invite_card :for={invite <- @invites} invite={invite}>
|
||||
<.invite_card :for={invite <- @invites} invite={invite} current_user={@current_user}>
|
||||
<:code_actions>
|
||||
<form phx-submit="copy_to_clipboard">
|
||||
<button
|
||||
@ -45,8 +45,8 @@
|
||||
phx-click="delete_invite"
|
||||
phx-value-id={invite.id}
|
||||
data-confirm={
|
||||
dgettext("prompts", "Are you sure you want to delete the invite for %{name}?",
|
||||
name: invite.name
|
||||
dgettext("prompts", "Are you sure you want to delete the invite for %{invite_name}?",
|
||||
invite_name: invite.name
|
||||
)
|
||||
}
|
||||
data-qa={"delete-#{invite.id}"}
|
||||
@ -70,8 +70,8 @@
|
||||
phx-click="set_unlimited"
|
||||
phx-value-id={invite.id}
|
||||
data-confirm={
|
||||
dgettext("prompts", "Are you sure you want to make %{name} unlimited?",
|
||||
name: invite.name
|
||||
dgettext("prompts", "Are you sure you want to make %{invite_name} unlimited?",
|
||||
invite_name: invite.name
|
||||
)
|
||||
}
|
||||
>
|
||||
|
Reference in New Issue
Block a user