41 lines
1 KiB
Elixir
41 lines
1 KiB
Elixir
defmodule NullaWeb.UserHTML do
|
|
use NullaWeb, :html
|
|
|
|
embed_templates "user_html/*"
|
|
|
|
@doc """
|
|
Renders a user form.
|
|
"""
|
|
attr :changeset, Ecto.Changeset, required: true
|
|
attr :action, :string, required: true
|
|
|
|
def user_form(assigns)
|
|
|
|
def format_birthdate(date) do
|
|
formatted = Date.to_string(date) |> String.replace("-", "/")
|
|
age = Timex.diff(Timex.today(), date, :years)
|
|
"#{formatted} (#{age} years old)"
|
|
end
|
|
|
|
def format_registration_date(date) do
|
|
now = Timex.now()
|
|
formatted = Date.to_string(date) |> String.replace("-", "/")
|
|
|
|
diff = Timex.diff(now, date, :days)
|
|
|
|
relative =
|
|
cond do
|
|
diff == 0 -> "today"
|
|
diff == 1 -> "1 day ago"
|
|
diff < 30 -> "#{diff} days ago"
|
|
diff < 365 ->
|
|
months = Timex.diff(now, date, :months)
|
|
if months == 1, do: "1 month ago", else: "#{months} months ago"
|
|
true ->
|
|
years = Timex.diff(now, date, :years)
|
|
if years == 1, do: "1 year ago", else: "#{years} years ago"
|
|
end
|
|
|
|
"#{formatted} (#{relative})"
|
|
end
|
|
end
|