From 2f6d5ff81864ee4a9eec87d66126b2f5ffd5555f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Eppl=C3=A9e?= Date: Wed, 3 Dec 2025 21:25:39 +0100 Subject: [PATCH] Add simple sidebar --- lib/mv_web/components/layouts.ex | 36 ++++++++--- lib/mv_web/components/layouts/navbar.ex | 64 ++++++++----------- lib/mv_web/components/layouts/sidebar.ex | 80 ++++++++++++++++++++++++ priv/gettext/de/LC_MESSAGES/default.po | 19 +++--- priv/gettext/default.pot | 15 +++-- priv/gettext/en/LC_MESSAGES/default.po | 15 +++-- 6 files changed, 162 insertions(+), 67 deletions(-) create mode 100644 lib/mv_web/components/layouts/sidebar.ex diff --git a/lib/mv_web/components/layouts.ex b/lib/mv_web/components/layouts.ex index 487a01f..d45b8d5 100644 --- a/lib/mv_web/components/layouts.ex +++ b/lib/mv_web/components/layouts.ex @@ -10,6 +10,7 @@ defmodule MvWeb.Layouts do use MvWeb, :html use Gettext, backend: MvWeb.Gettext import MvWeb.Layouts.Navbar + import MvWeb.Layouts.Sidebar embed_templates "layouts/*" @@ -39,20 +40,39 @@ defmodule MvWeb.Layouts do slot :inner_block, required: true def app(assigns) do + club_name = get_club_name() + assigns = assign(assigns, :club_name, club_name) + ~H""" - <%= if @current_user do %> - <.navbar current_user={@current_user} /> - <% end %> -
-
- {render_slot(@inner_block)} +
+ +
+ <%= if @current_user do %> + <.navbar current_user={@current_user} /> + <% end %> +
+
+ {render_slot(@inner_block)} +
+
-
+ + <.sidebar current_user={@current_user} club_name={@club_name} /> + <.flash_group flash={@flash} /> """ end + # Helper function to get club name from settings + # Falls back to "Mitgliederverwaltung" if settings can't be loaded + defp get_club_name do + case Mv.Membership.get_settings() do + {:ok, settings} -> settings.club_name + _ -> "Mitgliederverwaltung" + end + end + @doc """ Shows the flash group with standard titles and content. @@ -65,7 +85,7 @@ defmodule MvWeb.Layouts do def flash_group(assigns) do ~H""" -
+
<.flash kind={:success} flash={@flash} /> <.flash kind={:warning} flash={@flash} /> <.flash kind={:info} flash={@flash} /> diff --git a/lib/mv_web/components/layouts/navbar.ex b/lib/mv_web/components/layouts/navbar.ex index 4246c99..8258d43 100644 --- a/lib/mv_web/components/layouts/navbar.ex +++ b/lib/mv_web/components/layouts/navbar.ex @@ -6,37 +6,35 @@ defmodule MvWeb.Layouts.Navbar do use Gettext, backend: MvWeb.Gettext use MvWeb, :verified_routes - alias Mv.Membership - attr :current_user, :map, required: true, doc: "The current user - navbar is only shown when user is present" def navbar(assigns) do - club_name = get_club_name() - - assigns = assign(assigns, :club_name, club_name) - ~H""" -