forked from shibao/cannery
rename to cannery
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
defmodule Lokal do
|
||||
defmodule Cannery do
|
||||
@moduledoc """
|
||||
Lokal keeps the contexts that define your domain
|
||||
Cannery keeps the contexts that define your domain
|
||||
and business logic.
|
||||
|
||||
Contexts are also responsible for managing your data, regardless
|
@ -1,11 +1,11 @@
|
||||
defmodule Lokal.Accounts do
|
||||
defmodule Cannery.Accounts do
|
||||
@moduledoc """
|
||||
The Accounts context.
|
||||
"""
|
||||
|
||||
import Ecto.Query, warn: false
|
||||
alias Lokal.{Mailer, Repo}
|
||||
alias Lokal.Accounts.{Invite, Invites, User, UserToken}
|
||||
alias Cannery.{Mailer, Repo}
|
||||
alias Cannery.Accounts.{Invite, Invites, User, UserToken}
|
||||
alias Ecto.{Changeset, Multi}
|
||||
alias Oban.Job
|
||||
|
||||
@ -385,7 +385,7 @@ defmodule Lokal.Accounts do
|
||||
"""
|
||||
@spec allow_registration?() :: boolean()
|
||||
def allow_registration? do
|
||||
Application.get_env(:lokal, Lokal.Accounts)[:registration] == "public" or
|
||||
Application.get_env(:cannery, Cannery.Accounts)[:registration] == "public" or
|
||||
list_users_by_role(:admin) |> Enum.empty?()
|
||||
end
|
||||
|
@ -1,16 +1,16 @@
|
||||
defmodule Lokal.Email do
|
||||
defmodule Cannery.Email do
|
||||
@moduledoc """
|
||||
Emails that can be sent using Swoosh.
|
||||
|
||||
You can find the base email templates at
|
||||
`lib/Lokal_web/templates/layout/email.html.heex` for html emails and
|
||||
`lib/Lokal_web/templates/layout/email.txt.heex` for text emails.
|
||||
`lib/Cannery_web/templates/layout/email.html.heex` for html emails and
|
||||
`lib/Cannery_web/templates/layout/email.txt.heex` for text emails.
|
||||
"""
|
||||
|
||||
use Phoenix.Swoosh, view: LokalWeb.EmailView, layout: {LokalWeb.LayoutView, :email}
|
||||
import LokalWeb.Gettext
|
||||
alias Lokal.Accounts.User
|
||||
alias LokalWeb.EmailView
|
||||
use Phoenix.Swoosh, view: CanneryWeb.EmailView, layout: {CanneryWeb.LayoutView, :email}
|
||||
import CanneryWeb.Gettext
|
||||
alias Cannery.Accounts.User
|
||||
alias CanneryWeb.EmailView
|
||||
|
||||
@typedoc """
|
||||
Represents an HTML and text body email that can be sent
|
||||
@ -19,29 +19,29 @@ defmodule Lokal.Email do
|
||||
|
||||
@spec base_email(User.t(), String.t()) :: t()
|
||||
defp base_email(%User{email: email}, subject) do
|
||||
from = Application.get_env(:Lokal, Lokal.Mailer)[:email_from] || "noreply@localhost"
|
||||
name = Application.get_env(:Lokal, Lokal.Mailer)[:email_name]
|
||||
from = Application.get_env(:Cannery, Cannery.Mailer)[:email_from] || "noreply@localhost"
|
||||
name = Application.get_env(:Cannery, Cannery.Mailer)[:email_name]
|
||||
new() |> to(email) |> from({name, from}) |> subject(subject)
|
||||
end
|
||||
|
||||
@spec generate_email(key :: String.t(), User.t(), attrs :: map()) :: t()
|
||||
def generate_email("welcome", user, %{"url" => url}) do
|
||||
user
|
||||
|> base_email(dgettext("emails", "Confirm your Lokal account"))
|
||||
|> base_email(dgettext("emails", "Confirm your Cannery account"))
|
||||
|> render_body("confirm_email.html", %{user: user, url: url})
|
||||
|> text_body(EmailView.render("confirm_email.txt", %{user: user, url: url}))
|
||||
end
|
||||
|
||||
def generate_email("reset_password", user, %{"url" => url}) do
|
||||
user
|
||||
|> base_email(dgettext("emails", "Reset your Lokal password"))
|
||||
|> base_email(dgettext("emails", "Reset your Cannery password"))
|
||||
|> render_body("reset_password.html", %{user: user, url: url})
|
||||
|> text_body(EmailView.render("reset_password.txt", %{user: user, url: url}))
|
||||
end
|
||||
|
||||
def generate_email("update_email", user, %{"url" => url}) do
|
||||
user
|
||||
|> base_email(dgettext("emails", "Update your Lokal email"))
|
||||
|> base_email(dgettext("emails", "Update your Cannery email"))
|
||||
|> render_body("update_email.html", %{user: user, url: url})
|
||||
|> text_body(EmailView.render("update_email.txt", %{user: user, url: url}))
|
||||
end
|
@ -1,10 +1,10 @@
|
||||
defmodule Lokal.EmailWorker do
|
||||
defmodule Cannery.EmailWorker do
|
||||
@moduledoc """
|
||||
Oban worker that dispatches emails
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :mailers, tags: ["email"]
|
||||
alias Lokal.{Accounts, Email, Mailer}
|
||||
alias Cannery.{Accounts, Email, Mailer}
|
||||
|
||||
@impl Oban.Worker
|
||||
def perform(%Oban.Job{args: %{"email" => email, "user_id" => user_id, "attrs" => attrs}}) do
|
@ -1,4 +1,4 @@
|
||||
defmodule Lokal.Accounts.Invite do
|
||||
defmodule Cannery.Accounts.Invite do
|
||||
@moduledoc """
|
||||
An invite, created by an admin to allow someone to join their instance. An
|
||||
invite can be enabled or disabled, and can have an optional number of uses if
|
||||
@ -7,8 +7,8 @@ defmodule Lokal.Accounts.Invite do
|
||||
|
||||
use Ecto.Schema
|
||||
import Ecto.Changeset
|
||||
alias Cannery.Accounts.User
|
||||
alias Ecto.{Association, Changeset, UUID}
|
||||
alias Lokal.Accounts.User
|
||||
|
||||
@primary_key {:id, :binary_id, autogenerate: true}
|
||||
@foreign_key_type :binary_id
|
@ -1,12 +1,12 @@
|
||||
defmodule Lokal.Accounts.Invites do
|
||||
defmodule Cannery.Accounts.Invites do
|
||||
@moduledoc """
|
||||
The Invites context.
|
||||
"""
|
||||
|
||||
import Ecto.Query, warn: false
|
||||
alias Ecto.Multi
|
||||
alias Lokal.Accounts.{Invite, User}
|
||||
alias Lokal.Repo
|
||||
alias Cannery.Accounts.{Invite, User}
|
||||
alias Cannery.Repo
|
||||
|
||||
@invite_token_length 20
|
||||
|
@ -1,13 +1,13 @@
|
||||
defmodule Lokal.Accounts.User do
|
||||
defmodule Cannery.Accounts.User do
|
||||
@moduledoc """
|
||||
A Lokal user
|
||||
A Cannery user
|
||||
"""
|
||||
|
||||
use Ecto.Schema
|
||||
import Ecto.Changeset
|
||||
import LokalWeb.Gettext
|
||||
import CanneryWeb.Gettext
|
||||
alias Ecto.{Association, Changeset, UUID}
|
||||
alias Lokal.Accounts.{Invite, User}
|
||||
alias Cannery.Accounts.{Invite, User}
|
||||
|
||||
@derive {Jason.Encoder,
|
||||
only: [
|
||||
@ -99,7 +99,7 @@ defmodule Lokal.Accounts.User do
|
||||
message: dgettext("errors", "must have the @ sign and no spaces")
|
||||
)
|
||||
|> validate_length(:email, max: 160)
|
||||
|> unsafe_validate_unique(:email, Lokal.Repo)
|
||||
|> unsafe_validate_unique(:email, Cannery.Repo)
|
||||
|> unique_constraint(:email)
|
||||
end
|
||||
|
@ -1,4 +1,4 @@
|
||||
defmodule Lokal.Accounts.UserNotifier do
|
||||
defmodule Cannery.Accounts.UserNotifier do
|
||||
@moduledoc """
|
||||
Contains templates and messages for user messages
|
||||
"""
|
@ -1,12 +1,12 @@
|
||||
defmodule Lokal.Accounts.UserToken do
|
||||
defmodule Cannery.Accounts.UserToken do
|
||||
@moduledoc """
|
||||
Schema for a user's session token
|
||||
"""
|
||||
|
||||
use Ecto.Schema
|
||||
import Ecto.Query
|
||||
alias Cannery.Accounts.User
|
||||
alias Ecto.{Association, UUID}
|
||||
alias Lokal.Accounts.User
|
||||
|
||||
@hash_algorithm :sha256
|
||||
@rand_size 32
|
@ -1,27 +1,27 @@
|
||||
defmodule Lokal.Application do
|
||||
defmodule Cannery.Application do
|
||||
# See https://hexdocs.pm/elixir/Application.html
|
||||
# for more information on OTP Applications
|
||||
@moduledoc false
|
||||
|
||||
use Application
|
||||
alias Lokal.Logger
|
||||
alias Cannery.Logger
|
||||
|
||||
@impl true
|
||||
def start(_type, _args) do
|
||||
children = [
|
||||
# Start the Ecto repository
|
||||
Lokal.Repo,
|
||||
Cannery.Repo,
|
||||
# Start the Telemetry supervisor
|
||||
LokalWeb.Telemetry,
|
||||
CanneryWeb.Telemetry,
|
||||
# Start the PubSub system
|
||||
{Phoenix.PubSub, name: Lokal.PubSub},
|
||||
{Phoenix.PubSub, name: Cannery.PubSub},
|
||||
# Start the Endpoint (http/https)
|
||||
LokalWeb.Endpoint,
|
||||
CanneryWeb.Endpoint,
|
||||
# Add Oban
|
||||
{Oban, oban_config()},
|
||||
Lokal.Repo.Migrator
|
||||
# Start a worker by calling: Lokal.Worker.start_link(arg)
|
||||
# {Lokal.Worker, arg}
|
||||
Cannery.Repo.Migrator
|
||||
# Start a worker by calling: Cannery.Worker.start_link(arg)
|
||||
# {Cannery.Worker, arg}
|
||||
]
|
||||
|
||||
# Oban events logging https://hexdocs.pm/oban/Oban.html#module-reporting-errors
|
||||
@ -39,7 +39,7 @@ defmodule Lokal.Application do
|
||||
|
||||
# See https://hexdocs.pm/elixir/Supervisor.html
|
||||
# for other strategies and supported options
|
||||
opts = [strategy: :one_for_one, name: Lokal.Supervisor]
|
||||
opts = [strategy: :one_for_one, name: Cannery.Supervisor]
|
||||
Supervisor.start_link(children, opts)
|
||||
end
|
||||
|
||||
@ -47,11 +47,11 @@ defmodule Lokal.Application do
|
||||
# whenever the application is updated.
|
||||
@impl true
|
||||
def config_change(changed, _new, removed) do
|
||||
LokalWeb.Endpoint.config_change(changed, removed)
|
||||
CanneryWeb.Endpoint.config_change(changed, removed)
|
||||
:ok
|
||||
end
|
||||
|
||||
defp oban_config do
|
||||
Application.fetch_env!(:lokal, Oban)
|
||||
Application.fetch_env!(:cannery, Oban)
|
||||
end
|
||||
end
|
@ -1,4 +1,4 @@
|
||||
defmodule Lokal.Logger do
|
||||
defmodule Cannery.Logger do
|
||||
@moduledoc """
|
||||
Custom logger for telemetry events
|
||||
|
@ -1,4 +1,4 @@
|
||||
defmodule Lokal.Mailer do
|
||||
defmodule Cannery.Mailer do
|
||||
@moduledoc """
|
||||
Mailer adapter for emails
|
||||
|
||||
@ -6,8 +6,8 @@ defmodule Lokal.Mailer do
|
||||
json with Jason, which restricts the use of structs.
|
||||
"""
|
||||
|
||||
use Swoosh.Mailer, otp_app: :lokal
|
||||
alias Lokal.{Accounts.User, EmailWorker}
|
||||
use Swoosh.Mailer, otp_app: :cannery
|
||||
alias Cannery.{Accounts.User, EmailWorker}
|
||||
alias Oban.Job
|
||||
|
||||
@doc """
|
@ -1,9 +1,9 @@
|
||||
defmodule Lokal.Release do
|
||||
defmodule Cannery.Release do
|
||||
@moduledoc """
|
||||
Contains mix tasks that can used in generated releases
|
||||
"""
|
||||
|
||||
@app :lokal
|
||||
@app :cannery
|
||||
|
||||
def rollback(repo, version) do
|
||||
load_app()
|
@ -1,5 +1,5 @@
|
||||
defmodule Lokal.Repo do
|
||||
defmodule Cannery.Repo do
|
||||
use Ecto.Repo,
|
||||
otp_app: :lokal,
|
||||
otp_app: :cannery,
|
||||
adapter: Ecto.Adapters.Postgres
|
||||
end
|
@ -1,4 +1,4 @@
|
||||
defmodule Lokal.Repo.Migrator do
|
||||
defmodule Cannery.Repo.Migrator do
|
||||
@moduledoc """
|
||||
Genserver to automatically perform all migration on app start
|
||||
"""
|
||||
@ -15,11 +15,11 @@ defmodule Lokal.Repo.Migrator do
|
||||
end
|
||||
|
||||
def migrate! do
|
||||
path = Application.app_dir(:lokal, "priv/repo/migrations")
|
||||
Ecto.Migrator.run(Lokal.Repo, path, :up, all: true)
|
||||
path = Application.app_dir(:cannery, "priv/repo/migrations")
|
||||
Ecto.Migrator.run(Cannery.Repo, path, :up, all: true)
|
||||
end
|
||||
|
||||
defp automigrate_enabled? do
|
||||
Application.get_env(:lokal, Lokal.Application, automigrate: false)[:automigrate]
|
||||
Application.get_env(:cannery, Cannery.Application, automigrate: false)[:automigrate]
|
||||
end
|
||||
end
|
@ -1,12 +1,12 @@
|
||||
defmodule LokalWeb do
|
||||
defmodule CanneryWeb do
|
||||
@moduledoc """
|
||||
The entrypoint for defining your web interface, such
|
||||
as controllers, views, channels and so on.
|
||||
|
||||
This can be used in your application as:
|
||||
|
||||
use LokalWeb, :controller
|
||||
use LokalWeb, :view
|
||||
use CanneryWeb, :controller
|
||||
use CanneryWeb, :view
|
||||
|
||||
The definitions below will be executed for every view,
|
||||
controller, etc, so keep them short and clean, focused
|
||||
@ -19,19 +19,19 @@ defmodule LokalWeb do
|
||||
|
||||
def controller do
|
||||
quote do
|
||||
use Phoenix.Controller, namespace: LokalWeb
|
||||
use Phoenix.Controller, namespace: CanneryWeb
|
||||
|
||||
import Plug.Conn
|
||||
import LokalWeb.Gettext
|
||||
alias LokalWeb.Router.Helpers, as: Routes
|
||||
import CanneryWeb.Gettext
|
||||
alias CanneryWeb.Router.Helpers, as: Routes
|
||||
end
|
||||
end
|
||||
|
||||
def view do
|
||||
quote do
|
||||
use Phoenix.View,
|
||||
root: "lib/lokal_web/templates",
|
||||
namespace: LokalWeb
|
||||
root: "lib/cannery_web/templates",
|
||||
namespace: CanneryWeb
|
||||
|
||||
# Import convenience functions from controllers
|
||||
import Phoenix.Controller,
|
||||
@ -45,9 +45,9 @@ defmodule LokalWeb do
|
||||
def live_view do
|
||||
quote do
|
||||
use Phoenix.LiveView,
|
||||
layout: {LokalWeb.LayoutView, "live.html"}
|
||||
layout: {CanneryWeb.LayoutView, "live.html"}
|
||||
|
||||
on_mount LokalWeb.InitAssigns
|
||||
on_mount CanneryWeb.InitAssigns
|
||||
unquote(view_helpers())
|
||||
end
|
||||
end
|
||||
@ -82,7 +82,7 @@ defmodule LokalWeb do
|
||||
quote do
|
||||
use Phoenix.Channel
|
||||
# credo:disable-for-next-line Credo.Check.Consistency.MultiAliasImportRequireUse
|
||||
import LokalWeb.Gettext
|
||||
import CanneryWeb.Gettext
|
||||
end
|
||||
end
|
||||
|
||||
@ -95,9 +95,9 @@ defmodule LokalWeb do
|
||||
# Import LiveView and .heex helpers (live_render, link, <.form>, etc)
|
||||
# Import basic rendering functionality (render, render_layout, etc)
|
||||
import Phoenix.{Component, View}
|
||||
import LokalWeb.{ErrorHelpers, Gettext, LiveHelpers, ViewHelpers}
|
||||
import CanneryWeb.{ErrorHelpers, Gettext, LiveHelpers, ViewHelpers}
|
||||
|
||||
alias LokalWeb.Router.Helpers, as: Routes
|
||||
alias CanneryWeb.Router.Helpers, as: Routes
|
||||
end
|
||||
end
|
||||
|
@ -1,11 +1,11 @@
|
||||
defmodule LokalWeb.Components.InviteCard do
|
||||
defmodule CanneryWeb.Components.InviteCard do
|
||||
@moduledoc """
|
||||
Display card for an invite
|
||||
"""
|
||||
|
||||
use LokalWeb, :component
|
||||
alias Lokal.Accounts.{Invite, Invites, User}
|
||||
alias LokalWeb.Endpoint
|
||||
use CanneryWeb, :component
|
||||
alias Cannery.Accounts.{Invite, Invites, User}
|
||||
alias CanneryWeb.Endpoint
|
||||
|
||||
attr :invite, Invite, required: true
|
||||
attr :current_user, User, required: true
|
@ -1,4 +1,4 @@
|
||||
defmodule LokalWeb.Components.TableComponent do
|
||||
defmodule CanneryWeb.Components.TableComponent do
|
||||
@moduledoc """
|
||||
Livecomponent that presents a resortable table
|
||||
|
||||
@ -19,7 +19,7 @@ defmodule LokalWeb.Components.TableComponent do
|
||||
content.
|
||||
"""
|
||||
|
||||
use LokalWeb, :live_component
|
||||
use CanneryWeb, :live_component
|
||||
alias Phoenix.LiveView.Socket
|
||||
|
||||
@impl true
|
@ -1,12 +1,12 @@
|
||||
defmodule LokalWeb.Components.Topbar do
|
||||
defmodule CanneryWeb.Components.Topbar do
|
||||
@moduledoc """
|
||||
Component that renders a topbar with user functions/links
|
||||
"""
|
||||
|
||||
use LokalWeb, :component
|
||||
use CanneryWeb, :component
|
||||
|
||||
alias Lokal.Accounts
|
||||
alias LokalWeb.{Endpoint, HomeLive}
|
||||
alias Cannery.Accounts
|
||||
alias CanneryWeb.{Endpoint, HomeLive}
|
||||
|
||||
def topbar(assigns) do
|
||||
assigns =
|
||||
@ -20,7 +20,7 @@ defmodule LokalWeb.Components.Topbar do
|
||||
navigate={Routes.live_path(Endpoint, HomeLive)}
|
||||
class="mx-2 my-1 leading-5 text-xl text-white hover:underline"
|
||||
>
|
||||
<%= gettext("Lokal") %>
|
||||
<%= gettext("Cannery") %>
|
||||
</.link>
|
||||
|
||||
<%= if @title_content do %>
|
@ -1,9 +1,9 @@
|
||||
defmodule LokalWeb.Components.UserCard do
|
||||
defmodule CanneryWeb.Components.UserCard do
|
||||
@moduledoc """
|
||||
Display card for a user
|
||||
"""
|
||||
|
||||
use LokalWeb, :component
|
||||
use CanneryWeb, :component
|
||||
|
||||
def user_card(assigns) do
|
||||
~H"""
|
@ -1,16 +1,16 @@
|
||||
defmodule LokalWeb.EmailController do
|
||||
defmodule CanneryWeb.EmailController do
|
||||
@moduledoc """
|
||||
A dev controller used to develop on emails
|
||||
"""
|
||||
|
||||
use LokalWeb, :controller
|
||||
alias Lokal.Accounts.User
|
||||
use CanneryWeb, :controller
|
||||
alias Cannery.Accounts.User
|
||||
|
||||
plug :put_layout, {LokalWeb.LayoutView, :email}
|
||||
plug :put_layout, {CanneryWeb.LayoutView, :email}
|
||||
|
||||
@sample_assigns %{
|
||||
email: %{subject: "Example subject"},
|
||||
url: "https://lokal.bubbletea.dev/sample_url",
|
||||
url: "https://cannery.bubbletea.dev/sample_url",
|
||||
user: %User{email: "sample@email.com"}
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
defmodule LokalWeb.HomeController do
|
||||
defmodule CanneryWeb.HomeController do
|
||||
@moduledoc """
|
||||
Controller for home page
|
||||
"""
|
||||
|
||||
use LokalWeb, :controller
|
||||
use CanneryWeb, :controller
|
||||
|
||||
def index(conn, _params) do
|
||||
render(conn, "index.html")
|
@ -1,20 +1,20 @@
|
||||
defmodule LokalWeb.UserAuth do
|
||||
defmodule CanneryWeb.UserAuth do
|
||||
@moduledoc """
|
||||
Functions for user session and authentication
|
||||
"""
|
||||
|
||||
import Plug.Conn
|
||||
import Phoenix.Controller
|
||||
import LokalWeb.Gettext
|
||||
alias Lokal.{Accounts, Accounts.User}
|
||||
alias LokalWeb.HomeLive
|
||||
alias LokalWeb.Router.Helpers, as: Routes
|
||||
import CanneryWeb.Gettext
|
||||
alias Cannery.{Accounts, Accounts.User}
|
||||
alias CanneryWeb.HomeLive
|
||||
alias CanneryWeb.Router.Helpers, as: Routes
|
||||
|
||||
# Make the remember me cookie valid for 60 days.
|
||||
# If you want bump or reduce this value, also change
|
||||
# the token expiry itself in UserToken.
|
||||
@max_age 60 * 60 * 24 * 60
|
||||
@remember_me_cookie "_lokal_web_user_remember_me"
|
||||
@remember_me_cookie "_cannery_web_user_remember_me"
|
||||
@remember_me_options [sign: true, max_age: @max_age, same_site: "Lax"]
|
||||
|
||||
@doc """
|
||||
@ -99,7 +99,7 @@ defmodule LokalWeb.UserAuth do
|
||||
user_token && Accounts.delete_session_token(user_token)
|
||||
|
||||
if live_socket_id = get_session(conn, :live_socket_id) do
|
||||
LokalWeb.Endpoint.broadcast(live_socket_id, "disconnect", %{})
|
||||
CanneryWeb.Endpoint.broadcast(live_socket_id, "disconnect", %{})
|
||||
end
|
||||
|
||||
conn
|
@ -1,8 +1,8 @@
|
||||
defmodule LokalWeb.UserConfirmationController do
|
||||
use LokalWeb, :controller
|
||||
defmodule CanneryWeb.UserConfirmationController do
|
||||
use CanneryWeb, :controller
|
||||
|
||||
import LokalWeb.Gettext
|
||||
alias Lokal.Accounts
|
||||
import CanneryWeb.Gettext
|
||||
alias Cannery.Accounts
|
||||
|
||||
def new(conn, _params) do
|
||||
render(conn, "new.html", page_title: gettext("Confirm your account"))
|
@ -1,8 +1,8 @@
|
||||
defmodule LokalWeb.UserRegistrationController do
|
||||
use LokalWeb, :controller
|
||||
import LokalWeb.Gettext
|
||||
alias Lokal.{Accounts, Accounts.Invites}
|
||||
alias LokalWeb.{Endpoint, HomeLive}
|
||||
defmodule CanneryWeb.UserRegistrationController do
|
||||
use CanneryWeb, :controller
|
||||
import CanneryWeb.Gettext
|
||||
alias Cannery.{Accounts, Accounts.Invites}
|
||||
alias CanneryWeb.{Endpoint, HomeLive}
|
||||
|
||||
def new(conn, %{"invite" => invite_token}) do
|
||||
if Invites.valid_invite_token?(invite_token) do
|
@ -1,7 +1,7 @@
|
||||
defmodule LokalWeb.UserResetPasswordController do
|
||||
use LokalWeb, :controller
|
||||
defmodule CanneryWeb.UserResetPasswordController do
|
||||
use CanneryWeb, :controller
|
||||
|
||||
alias Lokal.Accounts
|
||||
alias Cannery.Accounts
|
||||
|
||||
plug :get_user_by_reset_password_token when action in [:edit, :update]
|
||||
|
@ -1,8 +1,8 @@
|
||||
defmodule LokalWeb.UserSessionController do
|
||||
use LokalWeb, :controller
|
||||
defmodule CanneryWeb.UserSessionController do
|
||||
use CanneryWeb, :controller
|
||||
|
||||
alias Lokal.Accounts
|
||||
alias LokalWeb.UserAuth
|
||||
alias Cannery.Accounts
|
||||
alias CanneryWeb.UserAuth
|
||||
|
||||
def new(conn, _params) do
|
||||
render(conn, "new.html", error_message: nil, page_title: gettext("Log in"))
|
@ -1,8 +1,8 @@
|
||||
defmodule LokalWeb.UserSettingsController do
|
||||
use LokalWeb, :controller
|
||||
import LokalWeb.Gettext
|
||||
alias Lokal.Accounts
|
||||
alias LokalWeb.{HomeLive, UserAuth}
|
||||
defmodule CanneryWeb.UserSettingsController do
|
||||
use CanneryWeb, :controller
|
||||
import CanneryWeb.Gettext
|
||||
alias Cannery.Accounts
|
||||
alias CanneryWeb.{HomeLive, UserAuth}
|
||||
|
||||
plug :assign_email_and_password_changesets
|
||||
|
@ -1,12 +1,12 @@
|
||||
defmodule LokalWeb.Endpoint do
|
||||
use Phoenix.Endpoint, otp_app: :lokal
|
||||
defmodule CanneryWeb.Endpoint do
|
||||
use Phoenix.Endpoint, otp_app: :cannery
|
||||
|
||||
# The session will be stored in the cookie and signed,
|
||||
# this means its contents can be read but not tampered with.
|
||||
# Set :encryption_salt if you would also like to encrypt it.
|
||||
@session_options [
|
||||
store: :cookie,
|
||||
key: "_lokal_key",
|
||||
key: "_cannery_key",
|
||||
signing_salt: "fxAnJltS"
|
||||
]
|
||||
|
||||
@ -18,7 +18,7 @@ defmodule LokalWeb.Endpoint do
|
||||
# when deploying your static files in production.
|
||||
plug Plug.Static,
|
||||
at: "/",
|
||||
from: :lokal,
|
||||
from: :cannery,
|
||||
gzip: false,
|
||||
only: ~w(css fonts images js favicon.ico robots.txt)
|
||||
|
||||
@ -28,7 +28,7 @@ defmodule LokalWeb.Endpoint do
|
||||
socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket
|
||||
plug Phoenix.LiveReloader
|
||||
plug Phoenix.CodeReloader
|
||||
plug Phoenix.Ecto.CheckRepoStatus, otp_app: :lokal
|
||||
plug Phoenix.Ecto.CheckRepoStatus, otp_app: :cannery
|
||||
end
|
||||
|
||||
plug Phoenix.LiveDashboard.RequestLogger,
|
||||
@ -46,5 +46,5 @@ defmodule LokalWeb.Endpoint do
|
||||
plug Plug.MethodOverride
|
||||
plug Plug.Head
|
||||
plug Plug.Session, @session_options
|
||||
plug LokalWeb.Router
|
||||
plug CanneryWeb.Router
|
||||
end
|
@ -1,11 +1,11 @@
|
||||
defmodule LokalWeb.Gettext do
|
||||
defmodule CanneryWeb.Gettext do
|
||||
@moduledoc """
|
||||
A module providing Internationalization with a gettext-based API.
|
||||
|
||||
By using [Gettext](https://hexdocs.pm/gettext),
|
||||
your module gains a set of macros for translations, for example:
|
||||
|
||||
import LokalWeb.Gettext
|
||||
import CanneryWeb.Gettext
|
||||
|
||||
# Simple translation
|
||||
gettext("Here is the string to translate")
|
||||
@ -20,5 +20,5 @@ defmodule LokalWeb.Gettext do
|
||||
|
||||
See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage.
|
||||
"""
|
||||
use Gettext, otp_app: :lokal
|
||||
use Gettext, otp_app: :cannery
|
||||
end
|
@ -1,11 +1,11 @@
|
||||
defmodule LokalWeb.HomeLive do
|
||||
defmodule CanneryWeb.HomeLive do
|
||||
@moduledoc """
|
||||
Liveview for the home page
|
||||
"""
|
||||
|
||||
use LokalWeb, :live_view
|
||||
alias Lokal.Accounts
|
||||
alias LokalWeb.Endpoint
|
||||
use CanneryWeb, :live_view
|
||||
alias Cannery.Accounts
|
||||
alias CanneryWeb.Endpoint
|
||||
|
||||
@version Mix.Project.config()[:version]
|
||||
|
@ -1,6 +1,6 @@
|
||||
<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") %>
|
||||
<%= gettext("Welcome to Cannery") %>
|
||||
</h1>
|
||||
|
||||
<h2 class="title text-primary-600 text-lg">
|
||||
@ -16,7 +16,7 @@
|
||||
<%= gettext("Easy to Use:") %>
|
||||
</b>
|
||||
<p>
|
||||
<%= gettext("Lokal lets you easily shop from your local community") %>
|
||||
<%= gettext("Cannery lets you easily shop from your local community") %>
|
||||
</p>
|
||||
</li>
|
||||
<li class="flex flex-col justify-center items-center space-y-2">
|
||||
@ -53,7 +53,7 @@
|
||||
<p>
|
||||
<%= if @admins |> Enum.empty?() do %>
|
||||
<.link href={Routes.user_registration_path(Endpoint, :new)} class="hover:underline">
|
||||
<%= dgettext("prompts", "Register to setup Lokal") %>
|
||||
<%= dgettext("prompts", "Register to setup Cannery") %>
|
||||
</.link>
|
||||
<% else %>
|
||||
<div class="flex flex-wrap justify-center space-x-2">
|
||||
@ -68,7 +68,7 @@
|
||||
<li class="flex flex-row justify-center space-x-2">
|
||||
<b><%= gettext("Registration:") %></b>
|
||||
<p>
|
||||
<%= case Application.get_env(:lokal, Lokal.Accounts)[:registration] do
|
||||
<%= case Application.get_env(:cannery, Cannery.Accounts)[:registration] do
|
||||
"public" -> gettext("Public Signups")
|
||||
_ -> gettext("Invite Only")
|
||||
end %>
|
||||
@ -78,7 +78,7 @@
|
||||
<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"
|
||||
href="https://gitea.bubbletea.dev/shibao/cannery/src/branch/stable/CHANGELOG.md"
|
||||
class="flex flex-row justify-center items-center space-x-2 hover:underline"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
@ -101,7 +101,7 @@
|
||||
<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"
|
||||
href="https://gitea.bubbletea.dev/shibao/cannery"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
@ -112,7 +112,7 @@
|
||||
<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"
|
||||
href="https://weblate.bubbletea.dev/engage/cannery"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
@ -123,7 +123,7 @@
|
||||
<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"
|
||||
href="https://gitea.bubbletea.dev/shibao/cannery/issues/new"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
@ -1,9 +1,9 @@
|
||||
defmodule LokalWeb.InitAssigns do
|
||||
defmodule CanneryWeb.InitAssigns do
|
||||
@moduledoc """
|
||||
Ensures common `assigns` are applied to all LiveViews attaching this hook.
|
||||
"""
|
||||
import Phoenix.Component
|
||||
alias Lokal.Accounts
|
||||
alias Cannery.Accounts
|
||||
|
||||
def on_mount(:default, _params, %{"locale" => locale, "user_token" => user_token}, socket) do
|
||||
Gettext.put_locale(locale)
|
@ -1,11 +1,11 @@
|
||||
defmodule LokalWeb.InviteLive.FormComponent do
|
||||
defmodule CanneryWeb.InviteLive.FormComponent do
|
||||
@moduledoc """
|
||||
Livecomponent that can update or create an Lokal.Accounts.Invite
|
||||
Livecomponent that can update or create an Cannery.Accounts.Invite
|
||||
"""
|
||||
|
||||
use LokalWeb, :live_component
|
||||
use CanneryWeb, :live_component
|
||||
alias Ecto.Changeset
|
||||
alias Lokal.Accounts.{Invite, Invites, User}
|
||||
alias Cannery.Accounts.{Invite, Invites, User}
|
||||
alias Phoenix.LiveView.Socket
|
||||
|
||||
@impl true
|
@ -1,13 +1,13 @@
|
||||
defmodule LokalWeb.InviteLive.Index do
|
||||
defmodule CanneryWeb.InviteLive.Index do
|
||||
@moduledoc """
|
||||
Liveview to show a Lokal.Accounts.Invite index
|
||||
Liveview to show a Cannery.Accounts.Invite index
|
||||
"""
|
||||
|
||||
use LokalWeb, :live_view
|
||||
import LokalWeb.Components.{InviteCard, UserCard}
|
||||
alias Lokal.Accounts
|
||||
alias Lokal.Accounts.{Invite, Invites}
|
||||
alias LokalWeb.{Endpoint, HomeLive}
|
||||
use CanneryWeb, :live_view
|
||||
import CanneryWeb.Components.{InviteCard, UserCard}
|
||||
alias Cannery.Accounts
|
||||
alias Cannery.Accounts.{Invite, Invites}
|
||||
alias CanneryWeb.{Endpoint, HomeLive}
|
||||
alias Phoenix.LiveView.JS
|
||||
|
||||
@impl true
|
@ -24,7 +24,7 @@
|
||||
<button
|
||||
type="submit"
|
||||
class="mx-2 my-1 btn btn-primary"
|
||||
phx-click={JS.dispatch("lokal:clipcopy", to: "#code-#{invite.id}")}
|
||||
phx-click={JS.dispatch("cannery:clipcopy", to: "#code-#{invite.id}")}
|
||||
>
|
||||
<%= dgettext("actions", "Copy to clipboard") %>
|
||||
</button>
|
||||
@ -138,7 +138,7 @@
|
||||
|
||||
<.modal :if={@live_action in [:new, :edit]} return_to={Routes.invite_index_path(Endpoint, :index)}>
|
||||
<.live_component
|
||||
module={LokalWeb.InviteLive.FormComponent}
|
||||
module={CanneryWeb.InviteLive.FormComponent}
|
||||
id={@invite.id || :new}
|
||||
title={@page_title}
|
||||
action={@live_action}
|
@ -1,4 +1,4 @@
|
||||
defmodule LokalWeb.LiveHelpers do
|
||||
defmodule CanneryWeb.LiveHelpers do
|
||||
@moduledoc """
|
||||
Contains resuable methods for all liveviews
|
||||
"""
|
@ -1,13 +1,13 @@
|
||||
defmodule LokalWeb.Router do
|
||||
use LokalWeb, :router
|
||||
defmodule CanneryWeb.Router do
|
||||
use CanneryWeb, :router
|
||||
import Phoenix.LiveDashboard.Router
|
||||
import LokalWeb.UserAuth
|
||||
import CanneryWeb.UserAuth
|
||||
|
||||
pipeline :browser do
|
||||
plug :accepts, ["html"]
|
||||
plug :fetch_session
|
||||
plug :fetch_live_flash
|
||||
plug :put_root_layout, {LokalWeb.LayoutView, :root}
|
||||
plug :put_root_layout, {CanneryWeb.LayoutView, :root}
|
||||
plug :protect_from_forgery
|
||||
plug :put_secure_browser_headers
|
||||
plug :fetch_current_user
|
||||
@ -34,7 +34,7 @@ defmodule LokalWeb.Router do
|
||||
plug :accepts, ["json"]
|
||||
end
|
||||
|
||||
scope "/", LokalWeb do
|
||||
scope "/", CanneryWeb do
|
||||
pipe_through :browser
|
||||
|
||||
live "/", HomeLive
|
||||
@ -42,7 +42,7 @@ defmodule LokalWeb.Router do
|
||||
|
||||
## Authentication routes
|
||||
|
||||
scope "/", LokalWeb do
|
||||
scope "/", CanneryWeb do
|
||||
pipe_through [:browser, :redirect_if_user_is_authenticated]
|
||||
|
||||
get "/users/register", UserRegistrationController, :new
|
||||
@ -55,7 +55,7 @@ defmodule LokalWeb.Router do
|
||||
put "/users/reset_password/:token", UserResetPasswordController, :update
|
||||
end
|
||||
|
||||
scope "/", LokalWeb do
|
||||
scope "/", CanneryWeb do
|
||||
pipe_through [:browser, :require_authenticated_user]
|
||||
|
||||
get "/users/settings", UserSettingsController, :edit
|
||||
@ -64,17 +64,17 @@ defmodule LokalWeb.Router do
|
||||
get "/users/settings/confirm_email/:token", UserSettingsController, :confirm_email
|
||||
end
|
||||
|
||||
scope "/", LokalWeb do
|
||||
scope "/", CanneryWeb do
|
||||
pipe_through [:browser, :require_authenticated_user, :require_admin]
|
||||
|
||||
live_dashboard "/dashboard", metrics: LokalWeb.Telemetry, ecto_repos: [Lokal.Repo]
|
||||
live_dashboard "/dashboard", metrics: CanneryWeb.Telemetry, ecto_repos: [Cannery.Repo]
|
||||
|
||||
live "/invites", InviteLive.Index, :index
|
||||
live "/invites/new", InviteLive.Index, :new
|
||||
live "/invites/:id/edit", InviteLive.Index, :edit
|
||||
end
|
||||
|
||||
scope "/", LokalWeb do
|
||||
scope "/", CanneryWeb do
|
||||
pipe_through [:browser]
|
||||
|
||||
delete "/users/log_out", UserSessionController, :delete
|
||||
@ -95,7 +95,7 @@ defmodule LokalWeb.Router do
|
||||
end
|
||||
|
||||
scope "/dev" do
|
||||
get "/preview/:id", LokalWeb.EmailController, :preview
|
||||
get "/preview/:id", CanneryWeb.EmailController, :preview
|
||||
end
|
||||
end
|
||||
end
|
@ -1,4 +1,4 @@
|
||||
defmodule LokalWeb.Telemetry do
|
||||
defmodule CanneryWeb.Telemetry do
|
||||
@moduledoc """
|
||||
Collects telemetry
|
||||
"""
|
||||
@ -35,23 +35,23 @@ defmodule LokalWeb.Telemetry do
|
||||
),
|
||||
|
||||
# Database Metrics
|
||||
summary("lokal.repo.query.total_time",
|
||||
summary("cannery.repo.query.total_time",
|
||||
unit: {:native, :millisecond},
|
||||
description: "The sum of the other measurements"
|
||||
),
|
||||
summary("lokal.repo.query.decode_time",
|
||||
summary("cannery.repo.query.decode_time",
|
||||
unit: {:native, :millisecond},
|
||||
description: "The time spent decoding the data received from the database"
|
||||
),
|
||||
summary("lokal.repo.query.query_time",
|
||||
summary("cannery.repo.query.query_time",
|
||||
unit: {:native, :millisecond},
|
||||
description: "The time spent executing the query"
|
||||
),
|
||||
summary("lokal.repo.query.queue_time",
|
||||
summary("cannery.repo.query.queue_time",
|
||||
unit: {:native, :millisecond},
|
||||
description: "The time spent waiting for a database connection"
|
||||
),
|
||||
summary("lokal.repo.query.idle_time",
|
||||
summary("cannery.repo.query.idle_time",
|
||||
unit: {:native, :millisecond},
|
||||
description:
|
||||
"The time the connection spent waiting before being checked out for the query"
|
||||
@ -93,7 +93,7 @@ defmodule LokalWeb.Telemetry do
|
||||
[
|
||||
# A module, function and arguments to be invoked periodically.
|
||||
# This function must call :telemetry.execute/3 and a metric must be added above.
|
||||
# {LokalWeb, :count_users, []}
|
||||
# {CanneryWeb, :count_users, []}
|
||||
]
|
||||
end
|
||||
end
|
@ -6,7 +6,7 @@
|
||||
<br />
|
||||
|
||||
<span style="margin-bottom: 1em; font-size: 1.25em;">
|
||||
<%= dgettext("emails", "Welcome to Lokal") %>
|
||||
<%= dgettext("emails", "Welcome to Cannery") %>
|
||||
</span>
|
||||
|
||||
<br />
|
||||
@ -19,5 +19,5 @@
|
||||
|
||||
<br />
|
||||
|
||||
<%= dgettext("emails", "If you didn't create an account at Lokal, please ignore this.") %>
|
||||
<%= dgettext("emails", "If you didn't create an account at Cannery, please ignore this.") %>
|
||||
</div>
|
@ -1,7 +1,7 @@
|
||||
|
||||
<%= dgettext("emails", "Hi %{email},", email: @user.email) %>
|
||||
|
||||
<%= dgettext("emails", "Welcome to Lokal") %>
|
||||
<%= dgettext("emails", "Welcome to Cannery") %>
|
||||
|
||||
<%= dgettext("emails", "You can confirm your account by visiting the URL below:") %>
|
||||
|
@ -13,5 +13,5 @@
|
||||
|
||||
<br />
|
||||
|
||||
<%= dgettext("emails", "If you didn't request this change from Lokal, please ignore this.") %>
|
||||
<%= dgettext("emails", "If you didn't request this change from Cannery, please ignore this.") %>
|
||||
</div>
|
@ -15,6 +15,6 @@
|
||||
|
||||
<%= dgettext(
|
||||
"emails",
|
||||
"If you didn't request this change from Lokal, please ignore this."
|
||||
"If you didn't request this change from Cannery, please ignore this."
|
||||
) %>
|
||||
</div>
|
@ -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") %> | <%= gettext("Lokal") %>
|
||||
<%= dgettext("errors", "Error") %> | <%= gettext("Cannery") %>
|
||||
</title>
|
||||
<link rel="stylesheet" href="/css/app.css" />
|
||||
<script defer type="text/javascript" src="/js/app.js">
|
||||
@ -13,7 +13,8 @@
|
||||
</head>
|
||||
<body class="pb-8 m-0 p-0 w-full h-full">
|
||||
<header>
|
||||
<.topbar current_user={assigns[:current_user]}></.topbar>
|
||||
<CanneryWeb.Components.Topbar.topbar current_user={assigns[:current_user]}>
|
||||
</CanneryWeb.Components.Topbar.topbar>
|
||||
</header>
|
||||
|
||||
<div class="pb-8 w-full flex flex-col justify-center items-center text-center">
|
@ -1,6 +1,7 @@
|
||||
<main role="main" class="min-h-full min-w-full">
|
||||
<header>
|
||||
<.topbar current_user={assigns[:current_user]}></.topbar>
|
||||
<CanneryWeb.Components.Topbar.topbar current_user={assigns[:current_user]}>
|
||||
</CanneryWeb.Components.Topbar.topbar>
|
||||
|
||||
<div class="mx-8 my-2 flex flex-col space-y-4 text-center">
|
||||
<p :if={get_flash(@conn, :info)} class="alert alert-info" role="alert">
|
@ -12,7 +12,7 @@
|
||||
<a style="color: rgb(31, 31, 31);" href={Routes.live_url(Endpoint, HomeLive)}>
|
||||
<%= dgettext(
|
||||
"emails",
|
||||
"This email was sent from Lokal, the self-hosted firearm tracker website."
|
||||
"This email was sent from Cannery, the self-hosted firearm tracker website."
|
||||
) %>
|
||||
</a>
|
||||
</body>
|
@ -7,5 +7,5 @@
|
||||
=====================
|
||||
|
||||
<%= dgettext("emails",
|
||||
"This email was sent from Lokal at %{url}, the self-hosted firearm tracker website.",
|
||||
"This email was sent from Cannery at %{url}, the self-hosted firearm tracker website.",
|
||||
url: Routes.live_url(Endpoint, HomeLive)) %>
|
@ -1,6 +1,7 @@
|
||||
<main class="pb-8 min-w-full">
|
||||
<header>
|
||||
<.topbar current_user={assigns[:current_user]}></.topbar>
|
||||
<CanneryWeb.Components.Topbar.topbar current_user={assigns[:current_user]}>
|
||||
</CanneryWeb.Components.Topbar.topbar>
|
||||
|
||||
<div class="mx-8 my-2 flex flex-col space-y-4 text-center">
|
||||
<p
|
@ -5,8 +5,8 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%= csrf_meta_tag() %>
|
||||
<.live_title suffix={" | #{gettext("Lokal")}"}>
|
||||
<%= assigns[:page_title] || gettext("Lokal") %>
|
||||
<.live_title suffix={" | #{gettext("Cannery")}"}>
|
||||
<%= assigns[:page_title] || gettext("Cannery") %>
|
||||
</.live_title>
|
||||
<link phx-track-static rel="stylesheet" href={Routes.static_path(@conn, "/css/app.css")} />
|
||||
<script
|
7
lib/cannery_web/views/email_view.ex
Normal file
7
lib/cannery_web/views/email_view.ex
Normal file
@ -0,0 +1,7 @@
|
||||
defmodule CanneryWeb.EmailView do
|
||||
@moduledoc """
|
||||
A view for email-related helper functions
|
||||
"""
|
||||
use CanneryWeb, :view
|
||||
alias CanneryWeb.{Endpoint, HomeLive}
|
||||
end
|
@ -1,4 +1,4 @@
|
||||
defmodule LokalWeb.ErrorHelpers do
|
||||
defmodule CanneryWeb.ErrorHelpers do
|
||||
@moduledoc """
|
||||
Conveniences for translating and building error messages.
|
||||
"""
|
||||
@ -50,9 +50,9 @@ defmodule LokalWeb.ErrorHelpers do
|
||||
# should be written to the errors.po file. The :count option is
|
||||
# set by Ecto and indicates we should also apply plural rules.
|
||||
if count = opts[:count] do
|
||||
Gettext.dngettext(LokalWeb.Gettext, "errors", msg, msg, count, opts)
|
||||
Gettext.dngettext(CanneryWeb.Gettext, "errors", msg, msg, count, opts)
|
||||
else
|
||||
Gettext.dgettext(LokalWeb.Gettext, "errors", msg, opts)
|
||||
Gettext.dgettext(CanneryWeb.Gettext, "errors", msg, opts)
|
||||
end
|
||||
end
|
||||
|
@ -1,7 +1,6 @@
|
||||
defmodule LokalWeb.ErrorView do
|
||||
use LokalWeb, :view
|
||||
import LokalWeb.Components.Topbar
|
||||
alias LokalWeb.{Endpoint, HomeLive}
|
||||
defmodule CanneryWeb.ErrorView do
|
||||
use CanneryWeb, :view
|
||||
alias CanneryWeb.{Endpoint, HomeLive}
|
||||
|
||||
def template_not_found(error_path, _assigns) do
|
||||
error_string =
|
3
lib/cannery_web/views/home_view.ex
Normal file
3
lib/cannery_web/views/home_view.ex
Normal file
@ -0,0 +1,3 @@
|
||||
defmodule CanneryWeb.PageView do
|
||||
use CanneryWeb, :view
|
||||
end
|
@ -1,17 +1,16 @@
|
||||
defmodule LokalWeb.LayoutView do
|
||||
use LokalWeb, :view
|
||||
import LokalWeb.Components.Topbar
|
||||
alias LokalWeb.{Endpoint, HomeLive}
|
||||
defmodule CanneryWeb.LayoutView do
|
||||
use CanneryWeb, :view
|
||||
alias CanneryWeb.{Endpoint, HomeLive}
|
||||
|
||||
# Phoenix LiveDashboard is available only in development by default,
|
||||
# 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(%{assigns: %{title: title}}) when title not in [nil, ""] do
|
||||
gettext("Lokal | %{title}", title: title)
|
||||
gettext("Cannery | %{title}", title: title)
|
||||
end
|
||||
|
||||
def get_title(_conn) do
|
||||
gettext("Lokal")
|
||||
gettext("Cannery")
|
||||
end
|
||||
end
|
4
lib/cannery_web/views/user_confirmation_view.ex
Normal file
4
lib/cannery_web/views/user_confirmation_view.ex
Normal file
@ -0,0 +1,4 @@
|
||||
defmodule CanneryWeb.UserConfirmationView do
|
||||
use CanneryWeb, :view
|
||||
alias Cannery.Accounts
|
||||
end
|
3
lib/cannery_web/views/user_registration_view.ex
Normal file
3
lib/cannery_web/views/user_registration_view.ex
Normal file
@ -0,0 +1,3 @@
|
||||
defmodule CanneryWeb.UserRegistrationView do
|
||||
use CanneryWeb, :view
|
||||
end
|
4
lib/cannery_web/views/user_reset_password_view.ex
Normal file
4
lib/cannery_web/views/user_reset_password_view.ex
Normal file
@ -0,0 +1,4 @@
|
||||
defmodule CanneryWeb.UserResetPasswordView do
|
||||
use CanneryWeb, :view
|
||||
alias Cannery.Accounts
|
||||
end
|
4
lib/cannery_web/views/user_session_view.ex
Normal file
4
lib/cannery_web/views/user_session_view.ex
Normal file
@ -0,0 +1,4 @@
|
||||
defmodule CanneryWeb.UserSessionView do
|
||||
use CanneryWeb, :view
|
||||
alias Cannery.Accounts
|
||||
end
|
3
lib/cannery_web/views/user_settings_view.ex
Normal file
3
lib/cannery_web/views/user_settings_view.ex
Normal file
@ -0,0 +1,3 @@
|
||||
defmodule CanneryWeb.UserSettingsView do
|
||||
use CanneryWeb, :view
|
||||
end
|
@ -1,7 +1,7 @@
|
||||
defmodule LokalWeb.ViewHelpers do
|
||||
defmodule CanneryWeb.ViewHelpers do
|
||||
@moduledoc """
|
||||
Contains common helpers that can be used in liveviews and regular views. These
|
||||
are automatically imported into any Phoenix View using `use LokalWeb,
|
||||
are automatically imported into any Phoenix View using `use CanneryWeb,
|
||||
:view`
|
||||
"""
|
||||
|
@ -1,7 +0,0 @@
|
||||
defmodule LokalWeb.EmailView do
|
||||
@moduledoc """
|
||||
A view for email-related helper functions
|
||||
"""
|
||||
use LokalWeb, :view
|
||||
alias LokalWeb.{Endpoint, HomeLive}
|
||||
end
|
@ -1,3 +0,0 @@
|
||||
defmodule LokalWeb.PageView do
|
||||
use LokalWeb, :view
|
||||
end
|
@ -1,4 +0,0 @@
|
||||
defmodule LokalWeb.UserConfirmationView do
|
||||
use LokalWeb, :view
|
||||
alias Lokal.Accounts
|
||||
end
|
@ -1,3 +0,0 @@
|
||||
defmodule LokalWeb.UserRegistrationView do
|
||||
use LokalWeb, :view
|
||||
end
|
@ -1,4 +0,0 @@
|
||||
defmodule LokalWeb.UserResetPasswordView do
|
||||
use LokalWeb, :view
|
||||
alias Lokal.Accounts
|
||||
end
|
@ -1,4 +0,0 @@
|
||||
defmodule LokalWeb.UserSessionView do
|
||||
use LokalWeb, :view
|
||||
alias Lokal.Accounts
|
||||
end
|
@ -1,3 +0,0 @@
|
||||
defmodule LokalWeb.UserSettingsView do
|
||||
use LokalWeb, :view
|
||||
end
|
Reference in New Issue
Block a user