improve templates

This commit is contained in:
shibao 2023-02-04 09:16:51 -05:00 committed by oliviasculley
parent f19d024d8a
commit 7b60938a75
30 changed files with 743 additions and 473 deletions

View File

@ -48,11 +48,9 @@ defmodule LokalWeb.Components.InviteCard do
<%= render_slot(@code_actions) %>
</div>
<%= if @inner_block do %>
<div class="flex space-x-4 justify-center items-center">
<%= render_slot(@inner_block) %>
</div>
<% end %>
<div :if={@inner_block} class="flex space-x-4 justify-center items-center">
<%= render_slot(@inner_block) %>
</div>
</div>
"""
end

View File

@ -33,20 +33,16 @@
</tr>
</thead>
<tbody>
<%= for values <- @rows do %>
<tr>
<%= for %{key: key} = value <- @columns do %>
<td class={["p-2", value[:class]]}>
<%= case values |> Map.get(key) do %>
<% {_custom_sort_value, value} -> %>
<%= value %>
<% value -> %>
<%= value %>
<% end %>
</td>
<tr :for={values <- @rows}>
<td :for={%{key: key} = value <- @columns} class={["p-2", value[:class]]}>
<%= case values |> Map.get(key) do %>
<% {_custom_sort_value, value} -> %>
<%= value %>
<% value -> %>
<%= value %>
<% end %>
</tr>
<% end %>
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -53,16 +53,14 @@ defmodule LokalWeb.Components.Topbar do
<% end %>
</datalist>
</form>
<%= if @current_user.role == :admin do %>
<li class="mx-2 my-1">
<.link
navigate={Routes.invite_index_path(Endpoint, :index)}
class="text-white text-white hover:underline"
>
<%= gettext("Invites") %>
</.link>
</li>
<% end %>
<li :if={@current_user.role == :admin} class="mx-2 my-1">
<.link
navigate={Routes.invite_index_path(Endpoint, :index)}
class="text-white text-white hover:underline"
>
<%= gettext("Invites") %>
</.link>
</li>
<li class="mx-2 my-1">
<.link
navigate={Routes.user_settings_path(Endpoint, :edit)}
@ -80,27 +78,28 @@ defmodule LokalWeb.Components.Topbar do
<i class="fas fa-sign-out-alt"></i>
</.link>
</li>
<%= if @current_user.role == :admin and function_exported?(Routes, :live_dashboard_path, 2) do %>
<li class="mx-2 my-1">
<.link
navigate={Routes.live_dashboard_path(Endpoint, :home)}
class="text-white text-white hover:underline"
>
<i class="fas fa-gauge"></i>
</.link>
</li>
<% end %>
<li
:if={
@current_user.role == :admin and function_exported?(Routes, :live_dashboard_path, 2)
}
class="mx-2 my-1"
>
<.link
navigate={Routes.live_dashboard_path(Endpoint, :home)}
class="text-white text-white hover:underline"
>
<i class="fas fa-gauge"></i>
</.link>
</li>
<% else %>
<%= if Accounts.allow_registration?() do %>
<li class="mx-2 my-1">
<.link
navigate={Routes.user_registration_path(Endpoint, :new)}
class="text-white text-white hover:underline truncate"
>
<%= dgettext("actions", "Register") %>
</.link>
</li>
<% end %>
<li :if={Accounts.allow_registration?()} class="mx-2 my-1">
<.link
navigate={Routes.user_registration_path(Endpoint, :new)}
class="text-white text-white hover:underline truncate"
>
<%= dgettext("actions", "Register") %>
</.link>
</li>
<li class="mx-2 my-1">
<.link
navigate={Routes.user_session_path(Endpoint, :new)}

View File

@ -10,8 +10,8 @@ defmodule LokalWeb.Components.UserCard do
<div
id={"user-#{@user.id}"}
class="mx-4 my-2 px-8 py-4 flex flex-col justify-center items-center text-center
border border-gray-400 rounded-lg shadow-lg hover:shadow-md
transition-all duration-300 ease-in-out"
border border-gray-400 rounded-lg shadow-lg hover:shadow-md
transition-all duration-300 ease-in-out"
>
<h1 class="px-4 py-2 rounded-lg title text-xl break-all">
<%= @user.email %>
@ -39,11 +39,9 @@ defmodule LokalWeb.Components.UserCard do
</p>
</h3>
<%= if @inner_block do %>
<div class="px-4 py-2 flex space-x-4 justify-center items-center">
<%= render_slot(@inner_block) %>
</div>
<% end %>
<div :if={@inner_block} class="px-4 py-2 flex space-x-4 justify-center items-center">
<%= render_slot(@inner_block) %>
</div>
</div>
"""
end

View File

@ -1,43 +1,18 @@
defmodule LokalWeb.HomeLive do
@moduledoc """
Liveview for the main home page
Liveview for the home page
"""
use LokalWeb, :live_view
alias Lokal.Accounts
alias LokalWeb.Endpoint
@version Mix.Project.config()[:version]
@impl true
def mount(_params, _session, socket) do
{:ok, socket |> assign(page_title: gettext("Home"), query: "", results: %{})}
end
@impl true
def handle_event("suggest", %{"q" => query}, socket) do
{:noreply, socket |> assign(results: search(query), query: query)}
end
@impl true
def handle_event("search", %{"q" => query}, socket) do
case search(query) do
%{^query => vsn} ->
{:noreply, socket |> redirect(external: "https://hexdocs.pm/#{query}/#{vsn}")}
_ ->
{:noreply,
socket
|> put_flash(:error, "No dependencies found matching \"#{query}\"")
|> assign(results: %{}, query: query)}
end
end
defp search(query) do
if not LokalWeb.Endpoint.config(:code_reloader) do
raise "action disabled when not in development"
end
for {app, desc, vsn} <- Application.started_applications(),
app = to_string(app),
String.starts_with?(app, query) and not List.starts_with?(desc, ~c"ERTS"),
into: %{},
do: {app, vsn}
admins = Accounts.list_users_by_role(:admin)
socket = socket |> assign(page_title: gettext("Home"), admins: admins, version: @version)
{:ok, socket}
end
end

View File

@ -1,9 +1,135 @@
<div class="flex flex-col justify-center items-center text-center space-y-4">
<h1 class="title text-primary-500 text-2xl">
<div class="mx-auto px-8 sm:px-16 flex flex-col justify-center items-center text-center space-y-4 max-w-3xl">
<h1 class="title text-primary-600 text-2xl">
<%= gettext("Welcome to Lokal") %>
</h1>
<p class="title text-primary-500 text-lg">
<%= gettext("Shop from your community") %>
</p>
<h2 class="title text-primary-600 text-lg">
<%= gettext("Shop from your local community") %>
</h2>
<hr class="hr" />
<ul class="flex flex-col space-y-4 text-center">
<li class="flex flex-col justify-center items-center
space-y-2">
<b class="whitespace-nowrap">
<%= gettext("Easy to Use:") %>
</b>
<p>
<%= gettext("Lokal lets you easily shop from your local community") %>
</p>
</li>
<li class="flex flex-col justify-center items-center space-y-2">
<b class="whitespace-nowrap">
<%= gettext("Secure:") %>
</b>
<p>
<%= gettext("Self-host your own instance, or use an instance from someone you trust.") %>
<%= gettext("Your data stays with you, period") %>
</p>
</li>
<li class="flex flex-col justify-center items-center
space-y-2">
<b class="whitespace-nowrap">
<%= gettext("Simple:") %>
</b>
<p>
<%= gettext("Access from any internet-capable device") %>
</p>
</li>
</ul>
<hr class="hr" />
<ul class="flex flex-col space-y-2 text-center justify-center">
<h2 class="title text-primary-600 text-lg">
<%= gettext("Instance Information") %>
</h2>
<li class="flex flex-col justify-center space-x-2">
<b>
<%= gettext("Admins:") %>
</b>
<p>
<%= if @admins |> Enum.empty?() do %>
<.link href={Routes.user_registration_path(Endpoint, :new)} class="hover:underline">
<%= dgettext("prompts", "Register to setup Lokal") %>
</.link>
<% else %>
<div class="flex flex-wrap justify-center space-x-2">
<a :for={%{email: email} <- @admins} class="hover:underline" href={"mailto:#{email}"}>
<%= email %>
</a>
</div>
<% end %>
</p>
</li>
<li class="flex flex-row justify-center space-x-2">
<b><%= gettext("Registration:") %></b>
<p>
<%= case Application.get_env(:lokal, Lokal.Accounts)[:registration] do
"public" -> gettext("Public Signups")
_ -> gettext("Invite Only")
end %>
</p>
</li>
<li class="flex flex-row justify-center items-center space-x-2">
<b><%= gettext("Version:") %></b>
<.link
href="https://gitea.bubbletea.dev/shibao/lokal/src/branch/stable/CHANGELOG.md"
class="flex flex-row justify-center items-center space-x-2 hover:underline"
target="_blank"
rel="noopener noreferrer"
>
<p>
<%= @version %>
</p>
<i class="fas fa-md fa-info-circle"></i>
</.link>
</li>
</ul>
<hr class="hr" />
<ul class="flex flex-col space-y-2 text-center justify-center">
<h2 class="title text-primary-600 text-lg">
<%= gettext("Get involved!") %>
</h2>
<li class="flex flex-col justify-center space-x-2">
<.link
class="flex flex-row justify-center items-center space-x-2 hover:underline"
href="https://gitea.bubbletea.dev/shibao/lokal"
target="_blank"
rel="noopener noreferrer"
>
<p><%= gettext("View the source code") %></p>
<i class="fas fa-md fa-code"></i>
</.link>
</li>
<li class="flex flex-col justify-center space-x-2">
<.link
class="flex flex-row justify-center items-center space-x-2 hover:underline"
href="https://weblate.bubbletea.dev/engage/lokal"
target="_blank"
rel="noopener noreferrer"
>
<p><%= gettext("Help translate") %></p>
<i class="fas fa-md fa-language"></i>
</.link>
</li>
<li class="flex flex-col justify-center space-x-2">
<.link
class="flex flex-row justify-center items-center space-x-2 hover:underline"
href="https://gitea.bubbletea.dev/shibao/lokal/issues/new"
target="_blank"
rel="noopener noreferrer"
>
<p><%= gettext("Report bugs or request features") %></p>
<i class="fas fa-md fa-spider"></i>
</.link>
</li>
</ul>
</div>

View File

@ -11,11 +11,12 @@
phx-change="validate"
phx-submit="save"
>
<%= if @changeset.action && not @changeset.valid? do %>
<div class="invalid-feedback col-span-3 text-center">
<%= changeset_errors(@changeset) %>
</div>
<% end %>
<div
:if={@changeset.action && not @changeset.valid?()}
class="invalid-feedback col-span-3 text-center"
>
<%= changeset_errors(@changeset) %>
</div>
<%= label(f, :name, gettext("Name"), class: "title text-lg text-primary-600") %>
<%= text_input(f, :name, class: "input input-primary col-span-2") %>

View File

@ -61,7 +61,7 @@ defmodule LokalWeb.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 =
@ -83,7 +83,7 @@ defmodule LokalWeb.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 =
@ -107,7 +107,7 @@ defmodule LokalWeb.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 =

View File

@ -18,69 +18,65 @@
<% end %>
<div class="w-full flex flex-row flex-wrap justify-center items-center">
<%= for invite <- @invites do %>
<.invite_card invite={invite}>
<:code_actions>
<form phx-submit="copy_to_clipboard">
<button
type="submit"
class="mx-2 my-1 btn btn-primary"
phx-click={JS.dispatch("lokal:clipcopy", to: "#code-#{invite.id}")}
>
<%= dgettext("actions", "Copy to clipboard") %>
</button>
</form>
</:code_actions>
<.link
patch={Routes.invite_index_path(Endpoint, :edit, invite)}
class="text-primary-600 link"
data-qa={"edit-#{invite.id}"}
>
<i class="fa-fw fa-lg fas fa-edit"></i>
</.link>
<.link
href="#"
class="text-primary-600 link"
phx-click="delete_invite"
phx-value-id={invite.id}
data-confirm={
dgettext("prompts", "Are you sure you want to delete the invite for %{invite_name}?",
invite_name: invite.name
)
}
data-qa={"delete-#{invite.id}"}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
<%= if invite.disabled_at |> is_nil() do %>
<a href="#" class="btn btn-primary" phx-click="disable_invite" phx-value-id={invite.id}>
<%= gettext("Disable") %>
</a>
<% else %>
<a href="#" class="btn btn-primary" phx-click="enable_invite" phx-value-id={invite.id}>
<%= gettext("Enable") %>
</a>
<% end %>
<%= if invite.disabled_at |> is_nil() and not (invite.uses_left |> is_nil()) do %>
<a
href="#"
class="btn btn-primary"
phx-click="set_unlimited"
phx-value-id={invite.id}
data-confirm={
dgettext("prompts", "Are you sure you want to make %{invite_name} unlimited?",
invite_name: invite.name
)
}
<.invite_card :for={invite <- @invites} invite={invite}>
<:code_actions>
<form phx-submit="copy_to_clipboard">
<button
type="submit"
class="mx-2 my-1 btn btn-primary"
phx-click={JS.dispatch("lokal:clipcopy", to: "#code-#{invite.id}")}
>
<%= gettext("Set Unlimited") %>
</a>
<% end %>
</.invite_card>
<% end %>
<%= dgettext("actions", "Copy to clipboard") %>
</button>
</form>
</:code_actions>
<.link
patch={Routes.invite_index_path(Endpoint, :edit, invite)}
class="text-primary-600 link"
data-qa={"edit-#{invite.id}"}
>
<i class="fa-fw fa-lg fas fa-edit"></i>
</.link>
<.link
href="#"
class="text-primary-600 link"
phx-click="delete_invite"
phx-value-id={invite.id}
data-confirm={
dgettext("prompts", "Are you sure you want to delete the invite for %{invite_name}?",
invite_name: invite.name
)
}
data-qa={"delete-#{invite.id}"}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
<a
href="#"
class="btn btn-primary"
phx-click={if invite.disabled_at, do: "enable_invite", else: "disable_invite"}
phx-value-id={invite.id}
>
<%= if invite.disabled_at, do: gettext("Enable"), else: gettext("Disable") %>
</a>
<a
:if={invite.disabled_at |> is_nil() and not (invite.uses_left |> is_nil())}
href="#"
class="btn btn-primary"
phx-click="set_unlimited"
phx-value-id={invite.id}
data-confirm={
dgettext("prompts", "Are you sure you want to make %{invite_name} unlimited?",
invite_name: invite.name
)
}
>
<%= gettext("Set Unlimited") %>
</a>
</.invite_card>
</div>
<%= unless @admins |> Enum.empty?() do %>
@ -91,25 +87,23 @@
</h1>
<div class="w-full flex flex-row flex-wrap justify-center items-center">
<%= for admin <- @admins do %>
<.user_card user={admin}>
<.link
href="#"
class="text-primary-600 link"
phx-click="delete_user"
phx-value-id={admin.id}
data-confirm={
dgettext(
"prompts",
"Are you sure you want to delete %{email}? This action is permanent!",
email: admin.email
)
}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
</.user_card>
<% end %>
<.user_card :for={admin <- @admins} user={admin}>
<.link
href="#"
class="text-primary-600 link"
phx-click="delete_user"
phx-value-id={admin.id}
data-confirm={
dgettext(
"prompts",
"Are you sure you want to delete %{email}? This action is permanent!",
email: admin.email
)
}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
</.user_card>
</div>
<% end %>
@ -121,39 +115,35 @@
</h1>
<div class="w-full flex flex-row flex-wrap justify-center items-center">
<%= for user <- @users do %>
<.user_card user={user}>
<.link
href="#"
class="text-primary-600 link"
phx-click="delete_user"
phx-value-id={user.id}
data-confirm={
dgettext(
"prompts",
"Are you sure you want to delete %{email}? This action is permanent!",
email: user.email
)
}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
</.user_card>
<% end %>
<.user_card :for={user <- @users} user={user}>
<.link
href="#"
class="text-primary-600 link"
phx-click="delete_user"
phx-value-id={user.id}
data-confirm={
dgettext(
"prompts",
"Are you sure you want to delete %{email}? This action is permanent!",
email: user.email
)
}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
</.user_card>
</div>
<% end %>
</div>
<%= if @live_action in [:new, :edit] do %>
<.modal return_to={Routes.invite_index_path(Endpoint, :index)}>
<.live_component
module={LokalWeb.InviteLive.FormComponent}
id={@invite.id || :new}
title={@page_title}
action={@live_action}
invite={@invite}
return_to={Routes.invite_index_path(Endpoint, :index)}
current_user={@current_user}
/>
</.modal>
<% end %>
<.modal :if={@live_action in [:new, :edit]} return_to={Routes.invite_index_path(Endpoint, :index)}>
<.live_component
module={LokalWeb.InviteLive.FormComponent}
id={@invite.id || :new}
title={@page_title}
action={@live_action}
invite={@invite}
return_to={Routes.invite_index_path(Endpoint, :index)}
current_user={@current_user}
/>
</.modal>

View File

@ -31,10 +31,10 @@ defmodule LokalWeb.LiveHelpers do
id="modal-bg"
patch={@return_to}
class="fade-in fixed z-10 left-0 top-0
w-full h-full overflow-hidden
p-8 flex flex-col justify-center items-center cursor-auto"
w-full h-full overflow-hidden
p-8 flex flex-col justify-center items-center cursor-auto"
style="background-color: rgba(0,0,0,0.4);"
phx_remove={hide_modal()}
phx-remove={hide_modal()}
>
<span class="hidden"></span>
</.link>
@ -48,18 +48,18 @@ defmodule LokalWeb.LiveHelpers do
<div
id="modal-content"
class="fade-in-scale w-full max-w-3xl relative
pointer-events-auto overflow-hidden
px-8 py-4 sm:py-8 flex flex-col justify-center items-center
flex flex-col justify-start items-center
bg-white border-2 rounded-lg"
pointer-events-auto overflow-hidden
px-8 py-4 sm:py-8 flex flex-col justify-center items-center
flex flex-col justify-start items-center
bg-white border-2 rounded-lg"
>
<.link
id="close"
href={@return_to}
class="absolute top-8 right-10
text-gray-500 hover:text-gray-800
transition-all duration-500 ease-in-out"
phx_remove={hide_modal()}
text-gray-500 hover:text-gray-800
transition-all duration-500 ease-in-out"
phx-remove={hide_modal()}
>
<i class="fa-fw fa-lg fas fa-times"></i>
</.link>

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>
<%= dgettext("errors", "Error") %>| Lokal
<%= dgettext("errors", "Error") %> | <%= gettext("Lokal") %>
</title>
<link rel="stylesheet" href="/css/app.css" />
<script defer type="text/javascript" src="/js/app.js">

View File

@ -3,16 +3,12 @@
<.topbar current_user={assigns[:current_user]}></.topbar>
<div class="mx-8 my-2 flex flex-col space-y-4 text-center">
<%= if get_flash(@conn, :info) do %>
<p class="alert alert-info" role="alert">
<%= get_flash(@conn, :info) %>
</p>
<% end %>
<%= if get_flash(@conn, :error) do %>
<p class="alert alert-danger" role="alert">
<%= get_flash(@conn, :error) %>
</p>
<% end %>
<p :if={get_flash(@conn, :info)} class="alert alert-info" role="alert">
<%= get_flash(@conn, :info) %>
</p>
<p :if={get_flash(@conn, :error)} class="alert alert-danger" role="alert">
<%= get_flash(@conn, :error) %>
</p>
</div>
</header>

View File

@ -3,22 +3,25 @@
<.topbar current_user={assigns[:current_user]}></.topbar>
<div class="mx-8 my-2 flex flex-col space-y-4 text-center">
<%= if @flash && @flash |> Map.has_key?("info") do %>
<p class="alert alert-info" role="alert" phx-click="lv:clear-flash" phx-value-key="info">
<%= live_flash(@flash, "info") %>
</p>
<% end %>
<p
:if={@flash && @flash |> Map.has_key?("info")}
class="alert alert-info"
role="alert"
phx-click="lv:clear-flash"
phx-value-key="info"
>
<%= live_flash(@flash, "info") %>
</p>
<%= if @flash && @flash |> Map.has_key?("error") do %>
<p
class="alert alert-danger"
role="alert"
phx-click="lv:clear-flash"
phx-value-key="error"
>
<%= live_flash(@flash, "error") %>
</p>
<% end %>
<p
:if={@flash && @flash |> Map.has_key?("error")}
class="alert alert-danger"
role="alert"
phx-click="lv:clear-flash"
phx-value-key="error"
>
<%= live_flash(@flash, "error") %>
</p>
</div>
</header>

View File

@ -20,11 +20,13 @@
<hr class="hr" />
<div class="flex flex-row justify-center items-center space-x-4">
<%= if Accounts.allow_registration?() do %>
<.link href={Routes.user_registration_path(@conn, :new)} class="btn btn-primary">
<%= dgettext("actions", "Register") %>
</.link>
<% end %>
<.link
:if={Accounts.allow_registration?()}
href={Routes.user_registration_path(@conn, :new)}
class="btn btn-primary"
>
<%= dgettext("actions", "Register") %>
</.link>
<.link href={Routes.user_session_path(@conn, :new)} class="btn btn-primary">
<%= dgettext("actions", "Log in") %>
</.link>

View File

@ -9,13 +9,9 @@
action={Routes.user_registration_path(@conn, :create)}
class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
>
<%= if @changeset.action && not @changeset.valid? do %>
<div class="alert alert-danger col-span-3">
<p>
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
</p>
</div>
<% end %>
<p :if={@changeset.action && not @changeset.valid?()} class="alert alert-danger col-span-3">
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
</p>
<%= if @invite do %>
<%= hidden_input(f, :invite_token, value: @invite.token) %>

View File

@ -9,13 +9,9 @@
action={Routes.user_reset_password_path(@conn, :update, @token)}
class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
>
<%= if @changeset.action && not @changeset.valid? do %>
<div class="alert alert-danger col-span-3">
<p>
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
</p>
</div>
<% end %>
<p :if={@changeset.action && not @changeset.valid?()} class="alert alert-danger col-span-3">
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
</p>
<%= label(f, :password, "New password", class: "title text-lg text-primary-600") %>
<%= password_input(f, :password, required: true, class: "input input-primary col-span-2") %>
@ -38,11 +34,13 @@
<hr class="hr" />
<div class="flex flex-row justify-center items-center space-x-4">
<%= if Accounts.allow_registration?() do %>
<.link href={Routes.user_registration_path(@conn, :new)} class="btn btn-primary">
<%= dgettext("actions", "Register") %>
</.link>
<% end %>
<.link
:if={Accounts.allow_registration?()}
href={Routes.user_registration_path(@conn, :new)}
class="btn btn-primary"
>
<%= dgettext("actions", "Register") %>
</.link>
<.link href={Routes.user_session_path(@conn, :new)} class="btn btn-primary">
<%= dgettext("actions", "Log in") %>
</.link>

View File

@ -20,11 +20,13 @@
<hr class="hr" />
<div class="flex flex-row justify-center items-center space-x-4">
<%= if Accounts.allow_registration?() do %>
<.link href={Routes.user_registration_path(@conn, :new)} class="btn btn-primary">
<%= dgettext("actions", "Register") %>
</.link>
<% end %>
<.link
:if={Accounts.allow_registration?()}
href={Routes.user_registration_path(@conn, :new)}
class="btn btn-primary"
>
<%= dgettext("actions", "Register") %>
</.link>
<.link href={Routes.user_session_path(@conn, :new)} class="btn btn-primary">
<%= dgettext("actions", "Log in") %>
</.link>

View File

@ -10,13 +10,9 @@
as="user"
class="flex flex-col space-y-4 sm:space-y-0 sm:grid sm:grid-cols-3 sm:gap-4 justify-center items-center"
>
<%= if @error_message do %>
<div class="alert alert-danger col-span-3">
<p>
<%= @error_message %>
</p>
</div>
<% end %>
<p :if={@error_message} class="alert alert-danger col-span-3">
<%= @error_message %>
</p>
<%= label(f, :email, class: "title text-lg text-primary-600") %>
<%= email_input(f, :email, required: true, class: "input input-primary col-span-2") %>
@ -35,11 +31,13 @@
<hr class="hr" />
<div class="flex flex-row justify-center items-center space-x-4">
<%= if Accounts.allow_registration?() do %>
<.link href={Routes.user_registration_path(@conn, :new)} class="btn btn-primary">
<%= dgettext("actions", "Register") %>
</.link>
<% end %>
<.link
:if={Accounts.allow_registration?()}
href={Routes.user_registration_path(@conn, :new)}
class="btn btn-primary"
>
<%= dgettext("actions", "Register") %>
</.link>
<.link href={Routes.user_reset_password_path(@conn, :new)} class="btn btn-primary">
<%= dgettext("actions", "Forgot your password?") %>
</.link>

View File

@ -15,13 +15,14 @@
<%= dgettext("actions", "Change email") %>
</h3>
<%= if @email_changeset.action && not @email_changeset.valid? do %>
<div class="alert alert-danger col-span-3">
<p>
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
</p>
</div>
<% end %>
<div
:if={@email_changeset.action && not @email_changeset.valid?()}
class="alert alert-danger col-span-3"
>
<p>
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
</p>
</div>
<%= hidden_input(f, :action, name: "action", value: "update_email") %>
@ -58,13 +59,14 @@
<%= dgettext("actions", "Change password") %>
</h3>
<%= if @password_changeset.action && not @password_changeset.valid? do %>
<div class="alert alert-danger col-span-3">
<p>
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
</p>
</div>
<% end %>
<div
:if={@password_changeset.action && not @password_changeset.valid?()}
class="alert alert-danger col-span-3"
>
<p>
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
</p>
</div>
<%= hidden_input(f, :action, name: "action", value: "update_password") %>
@ -113,13 +115,9 @@
<%= dgettext("actions", "Change Language") %>
</h3>
<%= if @locale_changeset.action && not @locale_changeset.valid? do %>
<div class="alert alert-danger">
<p>
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
</p>
</div>
<% end %>
<p :if={@locale_changeset.action && not @locale_changeset.valid?} class="alert alert-danger">
<%= dgettext("errors", "Oops, something went wrong! Please check the errors below.") %>
</p>
<%= hidden_input(f, :action, name: "action", value: "update_locale") %>

View File

@ -17,11 +17,13 @@ defmodule LokalWeb.ErrorHelpers do
assigns = %{extra_class: extra_class, form: form, field: field}
~H"""
<%= for error <- Keyword.get_values(@form.errors, @field) do %>
<span class={["invalid-feedback", @extra_class]} phx-feedback-for={input_name(@form, @field)}>
<%= translate_error(error) %>
</span>
<% end %>
<span
:for={error <- Keyword.get_values(@form.errors, @field)}
class={["invalid-feedback", @extra_class]}
phx-feedback-for={input_name(@form, @field)}
>
<%= translate_error(error) %>
</span>
"""
end

View File

@ -7,11 +7,11 @@ defmodule LokalWeb.LayoutView do
# so we instruct Elixir to not warn if the dashboard route is missing.
@compile {:no_warn_undefined, {Routes, :live_dashboard_path, 2}}
def get_title(conn) do
if conn.assigns |> Map.has_key?(:title) do
"Lokal | #{conn.assigns.title}"
else
"Lokal"
end
def get_title(%{assigns: %{title: title}}) when title not in [nil, ""] do
gettext("Lokal | %{title}", title: title)
end
def get_title(_conn) do
gettext("Lokal")
end
end

View File

@ -16,19 +16,18 @@ defmodule LokalWeb.ViewHelpers do
def datetime(assigns) do
~H"""
<%= if @datetime do %>
<time
datetime={cast_datetime(@datetime)}
x-data={"{
datetime:
Intl.DateTimeFormat([], {dateStyle: 'short', timeStyle: 'long'})
.format(new Date(\"#{cast_datetime(@datetime)}\"))
}"}
x-text="datetime"
>
<%= cast_datetime(@datetime) %>
</time>
<% end %>
<time
:if={@datetime}
datetime={cast_datetime(@datetime)}
x-data={"{
datetime:
Intl.DateTimeFormat([], {dateStyle: 'short', timeStyle: 'long'})
.format(new Date(\"#{cast_datetime(@datetime)}\"))
}"}
x-text="datetime"
>
<%= cast_datetime(@datetime) %>
</time>
"""
end
@ -48,19 +47,18 @@ defmodule LokalWeb.ViewHelpers do
def date(assigns) do
~H"""
<%= if @date do %>
<time
datetime={@date |> Date.to_iso8601(:extended)}
x-data={"{
date:
Intl.DateTimeFormat([], {timeZone: 'Etc/UTC', dateStyle: 'short'})
.format(new Date(\"#{@date |> Date.to_iso8601(:extended)}\"))
}"}
x-text="date"
>
<%= @date |> Date.to_iso8601(:extended) %>
</time>
<% end %>
<time
:if={@date}
datetime={@date |> Date.to_iso8601(:extended)}
x-data={"{
date:
Intl.DateTimeFormat([], {timeZone: 'Etc/UTC', dateStyle: 'short'})
.format(new Date(\"#{@date |> Date.to_iso8601(:extended)}\"))
}"}
x-text="date"
>
<%= @date |> Date.to_iso8601(:extended) %>
</time>
"""
end

View File

@ -11,47 +11,47 @@ msgid ""
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:15
#: lib/lokal_web/templates/user_settings/edit.html.heex:44
#: lib/lokal_web/templates/user_settings/edit.html.heex:45
#, elixir-autogen, elixir-format
msgid "Change email"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:58
#: lib/lokal_web/templates/user_settings/edit.html.heex:99
#: lib/lokal_web/templates/user_settings/edit.html.heex:59
#: lib/lokal_web/templates/user_settings/edit.html.heex:101
#, elixir-autogen, elixir-format
msgid "Change password"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:145
#: lib/lokal_web/templates/user_settings/edit.html.heex:143
#, elixir-autogen, elixir-format
msgid "Delete User"
msgstr ""
#: lib/lokal_web/templates/user_registration/new.html.heex:51
#: lib/lokal_web/templates/user_registration/new.html.heex:47
#: lib/lokal_web/templates/user_reset_password/new.html.heex:3
#: lib/lokal_web/templates/user_session/new.html.heex:44
#: lib/lokal_web/templates/user_session/new.html.heex:42
#, elixir-autogen, elixir-format
msgid "Forgot your password?"
msgstr ""
#: lib/lokal_web/components/topbar.ex:109
#: lib/lokal_web/templates/user_confirmation/new.html.heex:29
#: lib/lokal_web/templates/user_registration/new.html.heex:48
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:47
#: lib/lokal_web/templates/user_reset_password/new.html.heex:29
#: lib/lokal_web/components/topbar.ex:108
#: lib/lokal_web/templates/user_confirmation/new.html.heex:31
#: lib/lokal_web/templates/user_registration/new.html.heex:44
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:45
#: lib/lokal_web/templates/user_reset_password/new.html.heex:31
#: lib/lokal_web/templates/user_session/new.html.heex:3
#: lib/lokal_web/templates/user_session/new.html.heex:32
#: lib/lokal_web/templates/user_session/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Log in"
msgstr ""
#: lib/lokal_web/components/topbar.ex:100
#: lib/lokal_web/templates/user_confirmation/new.html.heex:25
#: lib/lokal_web/templates/user_confirmation/new.html.heex:28
#: lib/lokal_web/templates/user_registration/new.html.heex:3
#: lib/lokal_web/templates/user_registration/new.html.heex:41
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:43
#: lib/lokal_web/templates/user_reset_password/new.html.heex:25
#: lib/lokal_web/templates/user_session/new.html.heex:40
#: lib/lokal_web/templates/user_registration/new.html.heex:37
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:42
#: lib/lokal_web/templates/user_reset_password/new.html.heex:28
#: lib/lokal_web/templates/user_session/new.html.heex:39
#, elixir-autogen, elixir-format
msgid "Register"
msgstr ""
@ -63,7 +63,7 @@ msgid "Resend confirmation instructions"
msgstr ""
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:3
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:33
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:29
#, elixir-autogen, elixir-format
msgid "Reset password"
msgstr ""
@ -73,7 +73,7 @@ msgstr ""
msgid "Send instructions to reset password"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:30
#: lib/lokal_web/live/invite_live/index.html.heex:29
#, elixir-autogen, elixir-format
msgid "Copy to clipboard"
msgstr ""
@ -88,17 +88,17 @@ msgstr ""
msgid "Invite someone new!"
msgstr ""
#: lib/lokal_web/live/invite_live/form_component.html.heex:28
#: lib/lokal_web/live/invite_live/form_component.html.heex:29
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:113
#: lib/lokal_web/templates/user_settings/edit.html.heex:115
#, elixir-autogen, elixir-format
msgid "Change Language"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:131
#: lib/lokal_web/templates/user_settings/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "Change language"
msgstr ""

View File

@ -10,7 +10,7 @@
msgid ""
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:78
#: lib/lokal_web/templates/user_settings/edit.html.heex:80
#, elixir-autogen, elixir-format
msgid "Confirm new password"
msgstr ""
@ -20,8 +20,8 @@ msgstr ""
msgid "Confirm your account"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:32
#: lib/lokal_web/templates/user_settings/edit.html.heex:87
#: lib/lokal_web/templates/user_settings/edit.html.heex:33
#: lib/lokal_web/templates/user_settings/edit.html.heex:89
#, elixir-autogen, elixir-format
msgid "Current password"
msgstr ""
@ -36,14 +36,14 @@ msgstr ""
msgid "Invite Disabled"
msgstr ""
#: lib/lokal_web/components/topbar.ex:62
#: lib/lokal_web/components/topbar.ex:61
#: lib/lokal_web/live/invite_live/index.ex:41
#: lib/lokal_web/live/invite_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Invites"
msgstr ""
#: lib/lokal_web/templates/user_session/new.html.heex:27
#: lib/lokal_web/templates/user_session/new.html.heex:23
#, elixir-autogen, elixir-format
msgid "Keep me logged in for 60 days"
msgstr ""
@ -53,12 +53,12 @@ msgstr ""
msgid "Log in"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:71
#: lib/lokal_web/templates/user_settings/edit.html.heex:73
#, elixir-autogen, elixir-format
msgid "New password"
msgstr ""
#: lib/lokal_web/templates/layout/live.html.heex:40
#: lib/lokal_web/templates/layout/live.html.heex:43
#, elixir-autogen, elixir-format
msgid "Reconnecting..."
msgstr ""
@ -79,27 +79,17 @@ msgstr ""
msgid "Settings"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:7
#, elixir-autogen, elixir-format
msgid "Shop from your community"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:3
#, elixir-autogen, elixir-format
msgid "Welcome to Lokal"
msgstr ""
#: lib/lokal_web/live/home_live.ex:10
#: lib/lokal_web/live/home_live.ex:15
#, elixir-autogen, elixir-format
msgid "Home"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:90
#: lib/lokal_web/live/invite_live/index.html.heex:86
#, elixir-autogen, elixir-format
msgid "Admins"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:59
#: lib/lokal_web/live/invite_live/index.html.heex:62
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
@ -109,12 +99,12 @@ msgstr ""
msgid "Edit Invite"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:63
#: lib/lokal_web/live/invite_live/index.html.heex:62
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/lokal_web/live/invite_live/form_component.html.heex:20
#: lib/lokal_web/live/invite_live/form_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Name"
msgstr ""
@ -129,28 +119,28 @@ msgstr ""
msgid "No invites 😔"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:79
#: lib/lokal_web/live/invite_live/index.html.heex:77
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:120
#: lib/lokal_web/live/invite_live/index.html.heex:114
#, elixir-autogen, elixir-format
msgid "Users"
msgstr ""
#: lib/lokal_web/live/invite_live/form_component.html.heex:24
#: lib/lokal_web/live/invite_live/form_component.html.heex:25
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr ""
#: lib/lokal_web/templates/user_registration/new.html.heex:36
#: lib/lokal_web/templates/user_settings/edit.html.heex:126
#: lib/lokal_web/templates/user_registration/new.html.heex:32
#: lib/lokal_web/templates/user_settings/edit.html.heex:124
#, elixir-autogen, elixir-format
msgid "English"
msgstr ""
#: lib/lokal_web/templates/user_registration/new.html.heex:32
#: lib/lokal_web/templates/user_registration/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Language"
msgstr ""
@ -161,8 +151,10 @@ msgid "Email unconfirmed"
msgstr ""
#: lib/lokal_web/components/topbar.ex:23
#: lib/lokal_web/templates/error/error.html.heex:8
#: lib/lokal_web/templates/layout/root.html.heex:8
#: lib/lokal_web/templates/layout/root.html.heex:9
#: lib/lokal_web/views/layout_view.ex:15
#, elixir-autogen, elixir-format
msgid "Lokal"
msgstr ""
@ -186,3 +178,103 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Uses Left: Unlimited"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:37
#, elixir-autogen, elixir-format
msgid "Access from any internet-capable device"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:51
#, elixir-autogen, elixir-format
msgid "Admins:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:16
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:98
#, elixir-autogen, elixir-format
msgid "Get involved!"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:119
#, elixir-autogen, elixir-format
msgid "Help translate"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:46
#, elixir-autogen, elixir-format
msgid "Instance Information"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:73
#, elixir-autogen, elixir-format
msgid "Invite Only"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:72
#, elixir-autogen, elixir-format
msgid "Public Signups"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:69
#, elixir-autogen, elixir-format
msgid "Registration:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:130
#, elixir-autogen, elixir-format
msgid "Report bugs or request features"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:24
#, elixir-autogen, elixir-format
msgid "Secure:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:27
#, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:34
#, elixir-autogen, elixir-format
msgid "Simple:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:79
#, elixir-autogen, elixir-format
msgid "Version:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:108
#, elixir-autogen, elixir-format
msgid "View the source code"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:28
#, elixir-autogen, elixir-format
msgid "Your data stays with you, period"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:19
#, elixir-autogen, elixir-format
msgid "Lokal lets you easily shop from your local community"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:7
#, elixir-autogen, elixir-format
msgid "Shop from your local community"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:3
#, elixir-autogen, elixir-format
msgid "Welcome to Lokal"
msgstr ""
#: lib/lokal_web/views/layout_view.ex:11
#, elixir-autogen, elixir-format
msgid "Lokal | %{title}"
msgstr ""

View File

@ -11,47 +11,47 @@ msgstr ""
"Language: en\n"
#: lib/lokal_web/templates/user_settings/edit.html.heex:15
#: lib/lokal_web/templates/user_settings/edit.html.heex:44
#: lib/lokal_web/templates/user_settings/edit.html.heex:45
#, elixir-autogen, elixir-format
msgid "Change email"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:58
#: lib/lokal_web/templates/user_settings/edit.html.heex:99
#: lib/lokal_web/templates/user_settings/edit.html.heex:59
#: lib/lokal_web/templates/user_settings/edit.html.heex:101
#, elixir-autogen, elixir-format
msgid "Change password"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:145
#: lib/lokal_web/templates/user_settings/edit.html.heex:143
#, elixir-autogen, elixir-format
msgid "Delete User"
msgstr ""
#: lib/lokal_web/templates/user_registration/new.html.heex:51
#: lib/lokal_web/templates/user_registration/new.html.heex:47
#: lib/lokal_web/templates/user_reset_password/new.html.heex:3
#: lib/lokal_web/templates/user_session/new.html.heex:44
#: lib/lokal_web/templates/user_session/new.html.heex:42
#, elixir-autogen, elixir-format
msgid "Forgot your password?"
msgstr ""
#: lib/lokal_web/components/topbar.ex:109
#: lib/lokal_web/templates/user_confirmation/new.html.heex:29
#: lib/lokal_web/templates/user_registration/new.html.heex:48
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:47
#: lib/lokal_web/templates/user_reset_password/new.html.heex:29
#: lib/lokal_web/components/topbar.ex:108
#: lib/lokal_web/templates/user_confirmation/new.html.heex:31
#: lib/lokal_web/templates/user_registration/new.html.heex:44
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:45
#: lib/lokal_web/templates/user_reset_password/new.html.heex:31
#: lib/lokal_web/templates/user_session/new.html.heex:3
#: lib/lokal_web/templates/user_session/new.html.heex:32
#: lib/lokal_web/templates/user_session/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Log in"
msgstr ""
#: lib/lokal_web/components/topbar.ex:100
#: lib/lokal_web/templates/user_confirmation/new.html.heex:25
#: lib/lokal_web/templates/user_confirmation/new.html.heex:28
#: lib/lokal_web/templates/user_registration/new.html.heex:3
#: lib/lokal_web/templates/user_registration/new.html.heex:41
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:43
#: lib/lokal_web/templates/user_reset_password/new.html.heex:25
#: lib/lokal_web/templates/user_session/new.html.heex:40
#: lib/lokal_web/templates/user_registration/new.html.heex:37
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:42
#: lib/lokal_web/templates/user_reset_password/new.html.heex:28
#: lib/lokal_web/templates/user_session/new.html.heex:39
#, elixir-autogen, elixir-format
msgid "Register"
msgstr ""
@ -63,7 +63,7 @@ msgid "Resend confirmation instructions"
msgstr ""
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:3
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:33
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:29
#, elixir-autogen, elixir-format
msgid "Reset password"
msgstr ""
@ -73,7 +73,7 @@ msgstr ""
msgid "Send instructions to reset password"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:30
#: lib/lokal_web/live/invite_live/index.html.heex:29
#, elixir-autogen, elixir-format
msgid "Copy to clipboard"
msgstr ""
@ -88,17 +88,17 @@ msgstr ""
msgid "Invite someone new!"
msgstr ""
#: lib/lokal_web/live/invite_live/form_component.html.heex:28
#: lib/lokal_web/live/invite_live/form_component.html.heex:29
#, elixir-autogen, elixir-format
msgid "Save"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:113
#: lib/lokal_web/templates/user_settings/edit.html.heex:115
#, elixir-autogen, elixir-format
msgid "Change Language"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:131
#: lib/lokal_web/templates/user_settings/edit.html.heex:129
#, elixir-autogen, elixir-format
msgid "Change language"
msgstr ""

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Language: en\n"
#: lib/lokal_web/templates/user_settings/edit.html.heex:78
#: lib/lokal_web/templates/user_settings/edit.html.heex:80
#, elixir-autogen, elixir-format
msgid "Confirm new password"
msgstr ""
@ -20,8 +20,8 @@ msgstr ""
msgid "Confirm your account"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:32
#: lib/lokal_web/templates/user_settings/edit.html.heex:87
#: lib/lokal_web/templates/user_settings/edit.html.heex:33
#: lib/lokal_web/templates/user_settings/edit.html.heex:89
#, elixir-autogen, elixir-format
msgid "Current password"
msgstr ""
@ -36,14 +36,14 @@ msgstr ""
msgid "Invite Disabled"
msgstr ""
#: lib/lokal_web/components/topbar.ex:62
#: lib/lokal_web/components/topbar.ex:61
#: lib/lokal_web/live/invite_live/index.ex:41
#: lib/lokal_web/live/invite_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Invites"
msgstr ""
#: lib/lokal_web/templates/user_session/new.html.heex:27
#: lib/lokal_web/templates/user_session/new.html.heex:23
#, elixir-autogen, elixir-format
msgid "Keep me logged in for 60 days"
msgstr ""
@ -53,12 +53,12 @@ msgstr ""
msgid "Log in"
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:71
#: lib/lokal_web/templates/user_settings/edit.html.heex:73
#, elixir-autogen, elixir-format
msgid "New password"
msgstr ""
#: lib/lokal_web/templates/layout/live.html.heex:40
#: lib/lokal_web/templates/layout/live.html.heex:43
#, elixir-autogen, elixir-format
msgid "Reconnecting..."
msgstr ""
@ -79,27 +79,17 @@ msgstr ""
msgid "Settings"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:7
#, elixir-autogen, elixir-format
msgid "Shop from your community"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:3
#, elixir-autogen, elixir-format
msgid "Welcome to Lokal"
msgstr ""
#: lib/lokal_web/live/home_live.ex:10
#: lib/lokal_web/live/home_live.ex:15
#, elixir-autogen, elixir-format
msgid "Home"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:90
#: lib/lokal_web/live/invite_live/index.html.heex:86
#, elixir-autogen, elixir-format
msgid "Admins"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:59
#: lib/lokal_web/live/invite_live/index.html.heex:62
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr ""
@ -109,12 +99,12 @@ msgstr ""
msgid "Edit Invite"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:63
#: lib/lokal_web/live/invite_live/index.html.heex:62
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr ""
#: lib/lokal_web/live/invite_live/form_component.html.heex:20
#: lib/lokal_web/live/invite_live/form_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Name"
msgstr ""
@ -129,28 +119,28 @@ msgstr ""
msgid "No invites 😔"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:79
#: lib/lokal_web/live/invite_live/index.html.heex:77
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:120
#: lib/lokal_web/live/invite_live/index.html.heex:114
#, elixir-autogen, elixir-format
msgid "Users"
msgstr ""
#: lib/lokal_web/live/invite_live/form_component.html.heex:24
#: lib/lokal_web/live/invite_live/form_component.html.heex:25
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr ""
#: lib/lokal_web/templates/user_registration/new.html.heex:36
#: lib/lokal_web/templates/user_settings/edit.html.heex:126
#: lib/lokal_web/templates/user_registration/new.html.heex:32
#: lib/lokal_web/templates/user_settings/edit.html.heex:124
#, elixir-autogen, elixir-format
msgid "English"
msgstr ""
#: lib/lokal_web/templates/user_registration/new.html.heex:32
#: lib/lokal_web/templates/user_registration/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Language"
msgstr ""
@ -161,8 +151,10 @@ msgid "Email unconfirmed"
msgstr ""
#: lib/lokal_web/components/topbar.ex:23
#: lib/lokal_web/templates/error/error.html.heex:8
#: lib/lokal_web/templates/layout/root.html.heex:8
#: lib/lokal_web/templates/layout/root.html.heex:9
#: lib/lokal_web/views/layout_view.ex:15
#, elixir-autogen, elixir-format
msgid "Lokal"
msgstr ""
@ -186,3 +178,103 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy
msgid "Uses Left: Unlimited"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:37
#, elixir-autogen, elixir-format
msgid "Access from any internet-capable device"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:51
#, elixir-autogen, elixir-format, fuzzy
msgid "Admins:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:16
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:98
#, elixir-autogen, elixir-format
msgid "Get involved!"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:119
#, elixir-autogen, elixir-format
msgid "Help translate"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:46
#, elixir-autogen, elixir-format
msgid "Instance Information"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:73
#, elixir-autogen, elixir-format, fuzzy
msgid "Invite Only"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:72
#, elixir-autogen, elixir-format
msgid "Public Signups"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:69
#, elixir-autogen, elixir-format, fuzzy
msgid "Registration:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:130
#, elixir-autogen, elixir-format
msgid "Report bugs or request features"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:24
#, elixir-autogen, elixir-format
msgid "Secure:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:27
#, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:34
#, elixir-autogen, elixir-format
msgid "Simple:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:79
#, elixir-autogen, elixir-format
msgid "Version:"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:108
#, elixir-autogen, elixir-format
msgid "View the source code"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:28
#, elixir-autogen, elixir-format
msgid "Your data stays with you, period"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:19
#, elixir-autogen, elixir-format
msgid "Lokal lets you easily shop from your local community"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:7
#, elixir-autogen, elixir-format
msgid "Shop from your local community"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:3
#, elixir-autogen, elixir-format, fuzzy
msgid "Welcome to Lokal"
msgstr ""
#: lib/lokal_web/views/layout_view.ex:11
#, elixir-autogen, elixir-format
msgid "Lokal | %{title}"
msgstr ""

View File

@ -126,10 +126,10 @@ msgstr ""
msgid "Not found"
msgstr ""
#: lib/lokal_web/templates/user_registration/new.html.heex:15
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:15
#: lib/lokal_web/templates/user_settings/edit.html.heex:21
#: lib/lokal_web/templates/user_settings/edit.html.heex:64
#: lib/lokal_web/templates/user_registration/new.html.heex:13
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:13
#: lib/lokal_web/templates/user_settings/edit.html.heex:23
#: lib/lokal_web/templates/user_settings/edit.html.heex:67
#: lib/lokal_web/templates/user_settings/edit.html.heex:119
#, elixir-autogen, elixir-format
msgid "Oops, something went wrong! Please check the errors below."

View File

@ -20,12 +20,12 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:143
#: lib/lokal_web/templates/user_settings/edit.html.heex:141
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete your account?"
msgstr ""
#: lib/lokal_web/components/topbar.ex:78
#: lib/lokal_web/components/topbar.ex:76
#, elixir-autogen, elixir-format
msgid "Are you sure you want to log out?"
msgstr ""
@ -70,8 +70,8 @@ msgstr ""
msgid "Your account has been deleted"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:102
#: lib/lokal_web/live/invite_live/index.html.heex:132
#: lib/lokal_web/live/invite_live/index.html.heex:97
#: lib/lokal_web/live/invite_live/index.html.heex:125
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
@ -81,12 +81,12 @@ msgstr ""
msgid "Copied to clipboard"
msgstr ""
#: lib/lokal_web/live/invite_live/form_component.html.heex:30
#: lib/lokal_web/live/invite_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:133
#: lib/lokal_web/templates/user_settings/edit.html.heex:131
#, elixir-autogen, elixir-format
msgid "Are you sure you want to change your language?"
msgstr ""
@ -131,12 +131,17 @@ msgstr ""
msgid "%{user_email} deleted succesfully"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:48
#: lib/lokal_web/live/invite_live/index.html.heex:47
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete the invite for %{invite_name}?"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:74
#: lib/lokal_web/live/invite_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:56
#, elixir-autogen, elixir-format, fuzzy
msgid "Register to setup Lokal"
msgstr ""

View File

@ -123,10 +123,10 @@ msgstr ""
msgid "Not found"
msgstr ""
#: lib/lokal_web/templates/user_registration/new.html.heex:15
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:15
#: lib/lokal_web/templates/user_settings/edit.html.heex:21
#: lib/lokal_web/templates/user_settings/edit.html.heex:64
#: lib/lokal_web/templates/user_registration/new.html.heex:13
#: lib/lokal_web/templates/user_reset_password/edit.html.heex:13
#: lib/lokal_web/templates/user_settings/edit.html.heex:23
#: lib/lokal_web/templates/user_settings/edit.html.heex:67
#: lib/lokal_web/templates/user_settings/edit.html.heex:119
#, elixir-autogen, elixir-format
msgid "Oops, something went wrong! Please check the errors below."

View File

@ -20,12 +20,12 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:143
#: lib/lokal_web/templates/user_settings/edit.html.heex:141
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete your account?"
msgstr ""
#: lib/lokal_web/components/topbar.ex:78
#: lib/lokal_web/components/topbar.ex:76
#, elixir-autogen, elixir-format
msgid "Are you sure you want to log out?"
msgstr ""
@ -70,8 +70,8 @@ msgstr ""
msgid "Your account has been deleted"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:102
#: lib/lokal_web/live/invite_live/index.html.heex:132
#: lib/lokal_web/live/invite_live/index.html.heex:97
#: lib/lokal_web/live/invite_live/index.html.heex:125
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
@ -81,12 +81,12 @@ msgstr ""
msgid "Copied to clipboard"
msgstr ""
#: lib/lokal_web/live/invite_live/form_component.html.heex:30
#: lib/lokal_web/live/invite_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr ""
#: lib/lokal_web/templates/user_settings/edit.html.heex:133
#: lib/lokal_web/templates/user_settings/edit.html.heex:131
#, elixir-autogen, elixir-format
msgid "Are you sure you want to change your language?"
msgstr ""
@ -131,12 +131,17 @@ msgstr ""
msgid "%{user_email} deleted succesfully"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:48
#: lib/lokal_web/live/invite_live/index.html.heex:47
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete the invite for %{invite_name}?"
msgstr ""
#: lib/lokal_web/live/invite_live/index.html.heex:74
#: lib/lokal_web/live/invite_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Are you sure you want to make %{invite_name} unlimited?"
msgstr ""
#: lib/lokal_web/live/home_live.html.heex:56
#, elixir-autogen, elixir-format
msgid "Register to setup Lokal"
msgstr ""