Compare commits

...

16 commits

Author SHA1 Message Date
afdb5f0647 feat: set users locale 2025-08-14 16:23:09 +02:00
a05e8641fe feat: memberslist as landing page 2025-08-14 16:23:09 +02:00
01dc20af6e feat: add translation 2025-08-14 16:23:09 +02:00
96defae986 feat: add overrides for sign in page 2025-08-14 16:23:09 +02:00
c7bdd5501d
Dont run renovate on every push 2025-08-14 14:24:02 +02:00
Renovate Bot
a144f13af3 chore(deps): update renovate/renovate docker tag to v41.72
Some checks are pending
continuous-integration/drone/push Build is pending
2025-08-14 13:38:27 +02:00
Renovate Bot
f55cf5618a chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.32.0
Some checks are pending
continuous-integration/drone/push Build is pending
2025-08-14 13:36:59 +02:00
5d99607c7e Merge pull request 'Added PR and issue templates closes #129' (#139) from feature/129_PR_Template into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #139
Reviewed-by: simon <s.thiessen@local-it.org>
2025-08-14 12:55:01 +02:00
d2fefbe00d Merge branch 'main' into feature/129_PR_Template
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-14 12:41:32 +02:00
947f4bac46 Merge pull request 'Only create renovate PRs on the first 3 days of a month' (#134) from push-swtusmqnzplt into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #134
2025-08-14 10:44:39 +02:00
23cd6681b9 Merge pull request 'chore(deps): update renovate/renovate docker tag to v41.70' (#136) from renovate/renovate-renovate-41.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #136
2025-08-14 10:39:28 +02:00
8bcfe5f129 Merge pull request 'add just clean task' (#131) from push-nnuxvommosnv into main
Some checks are pending
continuous-integration/drone/push Build is running
Reviewed-on: #131
2025-08-14 10:37:30 +02:00
Renovate Bot
027756f8fa chore(deps): update renovate/renovate docker tag to v41.70
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-14 00:22:44 +00:00
6874fadbb9 chore: added PR and issue templates
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-11 14:05:48 +02:00
cf3836e6f1
Only create renovate PRs on the first 3 days of a month
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-04 15:26:34 +02:00
c7e740762e
add just clean task
All checks were successful
continuous-integration/drone/push Build is passing
2025-08-04 13:40:18 +02:00
19 changed files with 412 additions and 43 deletions

View file

@ -109,7 +109,6 @@ trigger:
event:
- cron
- custom
- push
branch:
- main
@ -118,7 +117,7 @@ environment:
steps:
- name: renovate
image: renovate/renovate:41.51
image: renovate/renovate:41.72
environment:
RENOVATE_CONFIG_FILE: "renovate_backend_config.js"
RENOVATE_TOKEN:

View file

@ -0,0 +1,33 @@
---
name: 'Bug Tempate'
about: 'This template is for bugs!'
title: '[BUG]: '
ref: 'main'
labels:
- bug
---
<!--- Provide a general summary of the issue in the Title above -->
## Expected Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Possible Solution
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
## Steps to Reproduce
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Detailed Description
<!--- Provide a detailed description of the change or addition you are proposing -->
## Possible Implementation
<!--- Not obligatory, but suggest an idea for implementing addition or change -->

View file

@ -0,0 +1,18 @@
---
name: 'Feature Template'
about: 'This template is for new features!'
title: '[FEATURE]: '
ref: 'main'
labels:
- feature
---
## Description
<!--- Describe the goal and desired output --->
<!--- Add the estimated effort as label --->
## Acceptance criteria
- [ ] AC 1
- [ ] AC 2
## External or internal Dependencies
<!-- List any dependencies --->

View file

@ -0,0 +1,44 @@
---
name: 'New Pull-Request'
about: 'This is the template for a new Pull Request'
title: 'WIP: '
ref: 'main'
labels:
---
## Description of the implemented changes
The changes were:
- [ ] Bugfixing
- [ ] New Feature
- [ ] Breaking Change
- [ ] Refactoring
<!--- Describe the goal of the PR in a few words -->
## What has been changed?
<!--- List the things you changed -->
## Definition of Done
### Code Quality
- [ ] No new technical depths
- [ ] Linting passed
- [ ] Documentation is added were needed
### Accessibility
- [ ] New elements are properly defined with html-tags
- [ ] Colour contrast follows WCAG criteria
- [ ] Aria labels are added when needed
- [ ] Everything is accessible by keyboard
- [ ] Tab-Order is comprehensible
- [ ] All interactive elements have a visible focus
### Testing
- [ ] Tests for new code are written
- [ ] All tests pass
- [ ] axe-core dev tools show no critical or major issues
## Additional Notes
<!--- Add any additional information for the reviewers here -->

View file

@ -23,7 +23,7 @@ ci-dev: lint audit test
gettext:
mix gettext.extract
mix gettext.merge priv/gettext
mix gettext.merge priv/gettext --on-obsolete=mark_as_obsolete
lint:
mix format --check-formatted
@ -78,3 +78,9 @@ regen-migrations migration_name commit_hash='':
# Generate a fresh migration
mix ash.codegen --name "{{migration_name}}"
# Remove all build artifacts
clean:
mix clean
rm -rf .elixir_ls
rm -rf _build

View file

@ -1,7 +1,7 @@
/* See the Tailwind configuration guide for advanced usage
https://tailwindcss.com/docs/configuration */
@import "tailwindcss" source(none);
@import "tailwindcss";
@source "../css";
@source "../js";
@source "../../lib/mv_web";

View file

@ -30,7 +30,7 @@ services:
rauthy:
container_name: rauthy-dev
image: ghcr.io/sebadob/rauthy:0.31.3
image: ghcr.io/sebadob/rauthy:0.32.0
environment:
- LOCAL_TEST=true
- SMTP_URL=mailcrab

View file

@ -1,5 +1,6 @@
defmodule MvWeb.AuthOverrides do
use AshAuthentication.Phoenix.Overrides
use Gettext, backend: MvWeb.Gettext
# configure your UI overrides here
@ -14,7 +15,22 @@ defmodule MvWeb.AuthOverrides do
# set :text_class, "bg-red-500"
# end
# override AshAuthentication.Phoenix.Components.SignIn do
# set :show_banner, false
# end
# Avoid full-width for the Sign In Form
override AshAuthentication.Phoenix.Components.SignIn do
set :root_class, "md:min-w-md"
end
# Replace banner logo with text
override AshAuthentication.Phoenix.Components.Banner do
set :text, "Mitgliederverwaltung"
set :image_url, nil
end
# Translate the or in the horizontal rule to German
override AshAuthentication.Phoenix.Components.HorizontalRule do
set :text,
Gettext.with_locale(MvWeb.Gettext, "de", fn ->
Gettext.gettext(MvWeb.Gettext, "or")
end)
end
end

View file

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en">
<html lang={Gettext.get_locale()}>
<head>
{Application.get_env(:live_debugger, :live_debugger_tags)}

View file

@ -1,6 +1,6 @@
defmodule MvWeb.LiveHelpers do
def on_mount(:default, _params, session, socket) do
locale = session["locale"] || "en"
locale = session["locale"] || "de"
Gettext.put_locale(locale)
{:cont, socket}
end

View file

@ -36,7 +36,12 @@ defmodule MvWeb.LiveUserAuth do
end
end
def on_mount(:live_no_user, _params, _session, socket) do
def on_mount(:live_no_user, _params, session, socket) do
# Set the locale for not logged in user to set the language
locale = session["locale"] || "en"
Gettext.put_locale(MvWeb.Gettext, locale)
{:cont, assign(socket, :locale, locale)}
if socket.assigns[:current_user] do
{:halt, Phoenix.LiveView.redirect(socket, to: ~p"/")}
else

View file

@ -47,7 +47,7 @@ defmodule MvWeb.Router do
"""
ash_authentication_live_session :authentication_required,
on_mount: {MvWeb.LiveUserAuth, :live_user_required} do
get "/", PageController, :home
live "/", MemberLive.Index, :index
live "/members", MemberLive.Index, :index
live "/members/new", MemberLive.Form, :new
@ -85,19 +85,19 @@ defmodule MvWeb.Router do
reset_path: "/reset",
auth_routes_prefix: "/auth",
on_mount: [{MvWeb.LiveUserAuth, :live_no_user}],
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default],
gettext_backend: {MvWeb.Gettext, "default"}
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.DaisyUI],
gettext_backend: {MvWeb.Gettext, "auth"}
# Remove this if you do not want to use the reset password feature
reset_route auth_routes_prefix: "/auth",
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default],
gettext_backend: {MvWeb.Gettext, "default"}
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.DaisyUI],
gettext_backend: {MvWeb.Gettext, "auth"}
# Remove this if you do not use the confirmation strategy
confirm_route Mv.Accounts.User, :confirm_new_user,
auth_routes_prefix: "/auth",
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default],
gettext_backend: {MvWeb.Gettext, "default"}
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.DaisyUI],
gettext_backend: {MvWeb.Gettext, "auth"}
# Remove this if you do not use the magic link strategy.
# magic_sign_in_route(Mv.Accounts.User, :magic_link,
@ -139,8 +139,47 @@ defmodule MvWeb.Router do
end
defp set_locale(conn, _opts) do
locale = get_session(conn, :locale) || "en"
locale =
get_session(conn, :locale) ||
extract_locale_from_headers(conn.req_headers)
Gettext.put_locale(MvWeb.Gettext, locale)
conn
|> put_session(:locale, locale)
|> assign(:locale, locale)
end
# Get locale from user
defp extract_locale_from_headers(headers) do
headers
|> Enum.find_value(fn
{"accept-language", value} -> value
_ -> nil
end)
|> parse_accept_language()
|> Enum.find(&supported_locale?/1)
|> fallback_locale()
end
defp parse_accept_language(nil), do: []
defp parse_accept_language(header) do
header
|> String.split(",")
|> Enum.map(&String.trim/1)
|> Enum.map(fn lang ->
lang
# we only want the first part
|> String.split(";")
|> hd()
|> String.split("-")
|> hd()
end)
end
# Our supported languages for now are german and english, english as fallback language
defp supported_locale?(locale), do: locale in ["en", "de"]
defp fallback_locale(nil), do: "en"
defp fallback_locale(locale), do: locale
end

64
priv/gettext/auth.pot Normal file
View file

@ -0,0 +1,64 @@
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new messages manually only if they're dynamic
## messages that can't be statically extracted.
##
## Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#
msgid ""
msgstr ""
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Already have an account?"
msgstr ""
msgid "Email or password was incorrect"
msgstr ""
msgid "Email"
msgstr ""
msgid "Forgot your password?"
msgstr ""
msgid "If this user exists in our database you will contacted with a sign-in link shortly."
msgstr ""
msgid "If this user exists in our system, you will be contacted with reset instructions shortly."
msgstr ""
msgid "Need an account?"
msgstr ""
msgid "Password"
msgstr ""
msgid "Password Confirmation"
msgstr ""
msgid "Request magic link"
msgstr ""
msgid "Request password reset token"
msgstr ""
msgid "Requesting ..."
msgstr ""
msgid "Reset password with token"
msgstr ""
msgid "Sign in"
msgstr ""
msgid "Signing in ..."
msgstr ""
msgid "Your password has successfully been reset"
msgstr ""

View file

@ -0,0 +1,66 @@
## "msgid"s in this file come from POT (.pot) files.
###
### Do not add, change, or remove "msgid"s manually here as
### they're tied to the ones in the corresponding POT file
### (with the same domain).
###
### Use "mix gettext.extract --merge" or "mix gettext.merge"
### to merge POT files into PO files.
msgid ""
msgstr ""
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Already have an account?"
msgstr "Bereit zum Anmelden?"
msgid "Email or password was incorrect"
msgstr "Email oder Passwort nicht korrekt"
msgid "Email"
msgstr "Email"
msgid "Forgot your password?"
msgstr "Passwort vergessen?"
msgid "If this user exists in our database you will contacted with a sign-in link shortly."
msgstr "Falls dieser Benutzer bekannt ist, wird jetzt eine Email mit Anmelde-Link versendet."
msgid "If this user exists in our system, you will be contacted with reset instructions shortly."
msgstr "Falls dieser Benutzer bekannt ist, wird jetzt eine Email mit einer Anleitung zum Zurücksetzen versendet."
msgid "Need an account?"
msgstr "Konto anlegen?"
msgid "Password"
msgstr "Passwort"
msgid "Password Confirmation"
msgstr "Passwort Wiederholung"
msgid "Request magic link"
msgstr "Magischen Link anfordern"
msgid "Request password reset token"
msgstr "Passwort zurücksetzen"
msgid "Requesting ..."
msgstr "Anfrage låuft..."
msgid "Reset password with token"
msgstr "Neues Passwort setzen"
msgid "Sign in"
msgstr "Anmelden"
msgid "Signing in ..."
msgstr "Anmelden..."
msgid "Your password has successfully been reset"
msgstr "Das Passwort wurde erfolgreich zurückgesetzt"
msgid "Sign in with Rauthy"
msgstr "Anmelden mit der Vereinscloud"

View file

@ -16,7 +16,7 @@ msgid "Actions"
msgstr "Aktionen"
#: lib/mv_web/live/member_live/index.html.heex:77
#: lib/mv_web/live/user_live/index.html.heex:69
#: lib/mv_web/live/user_live/index.html.heex:65
#, elixir-autogen, elixir-format
msgid "Are you sure?"
msgstr "Bist du sicher?"
@ -35,14 +35,14 @@ msgid "City"
msgstr "Stadt"
#: lib/mv_web/live/member_live/index.html.heex:79
#: lib/mv_web/live/user_live/index.html.heex:71
#: lib/mv_web/live/user_live/index.html.heex:67
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr "Löschen"
#: lib/mv_web/live/member_live/index.html.heex:71
#: lib/mv_web/live/user_live/form.ex:109
#: lib/mv_web/live/user_live/index.html.heex:63
#: lib/mv_web/live/user_live/index.html.heex:59
#, elixir-autogen, elixir-format
msgid "Edit"
msgstr "Bearbeite"
@ -57,7 +57,7 @@ msgstr "Mitglied bearbeiten"
#: lib/mv_web/live/member_live/index.html.heex:58
#: lib/mv_web/live/member_live/show.ex:27
#: lib/mv_web/live/user_live/form.ex:14
#: lib/mv_web/live/user_live/index.html.heex:48
#: lib/mv_web/live/user_live/index.html.heex:44
#: lib/mv_web/live/user_live/show.ex:24
#, elixir-autogen, elixir-format
msgid "Email"
@ -88,7 +88,7 @@ msgid "New Member"
msgstr "Neues Mitglied"
#: lib/mv_web/live/member_live/index.html.heex:68
#: lib/mv_web/live/user_live/index.html.heex:60
#: lib/mv_web/live/user_live/index.html.heex:56
#, elixir-autogen, elixir-format
msgid "Show"
msgstr "Anzeigen"
@ -351,7 +351,7 @@ msgstr "Nicht gesetzt"
msgid "Note"
msgstr "Hinweis"
#: lib/mv_web/live/user_live/index.html.heex:56
#: lib/mv_web/live/user_live/index.html.heex:52
#: lib/mv_web/live/user_live/show.ex:25
#, elixir-autogen, elixir-format
msgid "OIDC ID"
@ -533,12 +533,12 @@ msgstr "Passwort"
msgid "Password requirements"
msgstr "Passwort-Anforderungen"
#: lib/mv_web/live/user_live/index.html.heex:25
#: lib/mv_web/live/user_live/index.html.heex:21
#, elixir-autogen, elixir-format
msgid "Select all users"
msgstr "Alle Benutzer auswählen"
#: lib/mv_web/live/user_live/index.html.heex:39
#: lib/mv_web/live/user_live/index.html.heex:35
#, elixir-autogen, elixir-format
msgid "Select user"
msgstr "Benutzer auswählen"
@ -552,3 +552,8 @@ msgstr "Passwort setzen"
#, elixir-autogen, elixir-format
msgid "User will be created without a password. Check 'Set Password' to add one."
msgstr "Benutzer wird ohne Passwort erstellt. Aktivieren Sie 'Passwort setzen', um eines hinzuzufügen."
#: lib/mv_web/auth_overrides.ex:30
#, elixir-autogen, elixir-format
msgid "or"
msgstr "oder"

View file

@ -17,7 +17,7 @@ msgid "Actions"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:77
#: lib/mv_web/live/user_live/index.html.heex:69
#: lib/mv_web/live/user_live/index.html.heex:65
#, elixir-autogen, elixir-format
msgid "Are you sure?"
msgstr ""
@ -36,14 +36,14 @@ msgid "City"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:79
#: lib/mv_web/live/user_live/index.html.heex:71
#: lib/mv_web/live/user_live/index.html.heex:67
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:71
#: lib/mv_web/live/user_live/form.ex:109
#: lib/mv_web/live/user_live/index.html.heex:63
#: lib/mv_web/live/user_live/index.html.heex:59
#, elixir-autogen, elixir-format
msgid "Edit"
msgstr ""
@ -58,7 +58,7 @@ msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:58
#: lib/mv_web/live/member_live/show.ex:27
#: lib/mv_web/live/user_live/form.ex:14
#: lib/mv_web/live/user_live/index.html.heex:48
#: lib/mv_web/live/user_live/index.html.heex:44
#: lib/mv_web/live/user_live/show.ex:24
#, elixir-autogen, elixir-format
msgid "Email"
@ -89,7 +89,7 @@ msgid "New Member"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:68
#: lib/mv_web/live/user_live/index.html.heex:60
#: lib/mv_web/live/user_live/index.html.heex:56
#, elixir-autogen, elixir-format
msgid "Show"
msgstr ""
@ -352,7 +352,7 @@ msgstr ""
msgid "Note"
msgstr ""
#: lib/mv_web/live/user_live/index.html.heex:56
#: lib/mv_web/live/user_live/index.html.heex:52
#: lib/mv_web/live/user_live/show.ex:25
#, elixir-autogen, elixir-format
msgid "OIDC ID"
@ -534,12 +534,12 @@ msgstr ""
msgid "Password requirements"
msgstr ""
#: lib/mv_web/live/user_live/index.html.heex:25
#: lib/mv_web/live/user_live/index.html.heex:21
#, elixir-autogen, elixir-format
msgid "Select all users"
msgstr ""
#: lib/mv_web/live/user_live/index.html.heex:39
#: lib/mv_web/live/user_live/index.html.heex:35
#, elixir-autogen, elixir-format
msgid "Select user"
msgstr ""
@ -553,3 +553,8 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "User will be created without a password. Check 'Set Password' to add one."
msgstr ""
#: lib/mv_web/auth_overrides.ex:30
#, elixir-autogen, elixir-format
msgid "or"
msgstr ""

View file

@ -0,0 +1,63 @@
## "msgid"s in this file come from POT (.pot) files.
###
### Do not add, change, or remove "msgid"s manually here as
### they're tied to the ones in the corresponding POT file
### (with the same domain).
###
### Use "mix gettext.extract --merge" or "mix gettext.merge"
### to merge POT files into PO files.
msgid ""
msgstr ""
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Already have an account?"
msgstr ""
msgid "Email or password was incorrect"
msgstr ""
msgid "Email"
msgstr ""
msgid "Forgot your password?"
msgstr ""
msgid "If this user exists in our database you will contacted with a sign-in link shortly."
msgstr ""
msgid "If this user exists in our system, you will be contacted with reset instructions shortly."
msgstr ""
msgid "Need an account?"
msgstr ""
msgid "Password"
msgstr ""
msgid "Password Confirmation"
msgstr ""
msgid "Request magic link"
msgstr ""
msgid "Request password reset token"
msgstr ""
msgid "Requesting ..."
msgstr ""
msgid "Reset password with token"
msgstr ""
msgid "Sign in"
msgstr ""
msgid "Signing in ..."
msgstr ""
msgid "Your password has successfully been reset"
msgstr ""
msgid "Sign in with Rauthy"
msgstr "Sign in with Vereinscloud"

View file

@ -17,7 +17,7 @@ msgid "Actions"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:77
#: lib/mv_web/live/user_live/index.html.heex:69
#: lib/mv_web/live/user_live/index.html.heex:65
#, elixir-autogen, elixir-format
msgid "Are you sure?"
msgstr ""
@ -36,14 +36,14 @@ msgid "City"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:79
#: lib/mv_web/live/user_live/index.html.heex:71
#: lib/mv_web/live/user_live/index.html.heex:67
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:71
#: lib/mv_web/live/user_live/form.ex:109
#: lib/mv_web/live/user_live/index.html.heex:63
#: lib/mv_web/live/user_live/index.html.heex:59
#, elixir-autogen, elixir-format
msgid "Edit"
msgstr ""
@ -58,7 +58,7 @@ msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:58
#: lib/mv_web/live/member_live/show.ex:27
#: lib/mv_web/live/user_live/form.ex:14
#: lib/mv_web/live/user_live/index.html.heex:48
#: lib/mv_web/live/user_live/index.html.heex:44
#: lib/mv_web/live/user_live/show.ex:24
#, elixir-autogen, elixir-format
msgid "Email"
@ -89,7 +89,7 @@ msgid "New Member"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:68
#: lib/mv_web/live/user_live/index.html.heex:60
#: lib/mv_web/live/user_live/index.html.heex:56
#, elixir-autogen, elixir-format
msgid "Show"
msgstr ""
@ -352,7 +352,7 @@ msgstr ""
msgid "Note"
msgstr ""
#: lib/mv_web/live/user_live/index.html.heex:56
#: lib/mv_web/live/user_live/index.html.heex:52
#: lib/mv_web/live/user_live/show.ex:25
#, elixir-autogen, elixir-format
msgid "OIDC ID"
@ -534,12 +534,12 @@ msgstr "Password"
msgid "Password requirements"
msgstr "Password requirements"
#: lib/mv_web/live/user_live/index.html.heex:25
#: lib/mv_web/live/user_live/index.html.heex:21
#, elixir-autogen, elixir-format, fuzzy
msgid "Select all users"
msgstr ""
#: lib/mv_web/live/user_live/index.html.heex:39
#: lib/mv_web/live/user_live/index.html.heex:35
#, elixir-autogen, elixir-format, fuzzy
msgid "Select user"
msgstr ""
@ -553,3 +553,8 @@ msgstr "Set Password"
#, elixir-autogen, elixir-format
msgid "User will be created without a password. Check 'Set Password' to add one."
msgstr "User will be created without a password. Check 'Set Password' to add one."
#: lib/mv_web/auth_overrides.ex:30
#, elixir-autogen, elixir-format
msgid "or"
msgstr ""

View file

@ -1,6 +1,7 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"],
"schedule": ["* * 3 * *"],
"packageRules": [
{
"groupName": "Mix dependencies",