Files
simpleidp/Views/Shared/_Layout.cshtml
2025-08-19 16:58:51 +02:00

97 lines
3.9 KiB
Plaintext

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@using SimpleIdServer.IdServer.Options
@using SimpleIdServer.IdServer.Resources
@using SimpleIdp.Resources
@using Microsoft.Extensions.Options
@using System.Globalization
@inject IOptions<IdServerHostOptions> options
@model SimpleIdServer.IdServer.UI.ViewModels.ILayoutViewModel
@{
var returnUrl = string.IsNullOrEmpty(Context.Request.Path) ? "~/" : $"~{Context.Request.Path.Value}{Context.Request.QueryString}";
var currentCultureInfo = CultureInfo.DefaultThreadCurrentUICulture;
string languagesLabel = LayoutResource.ResourceManager.GetString("languages");
if (currentCultureInfo != null && !string.IsNullOrWhiteSpace(currentCultureInfo.Name))
{
var str = LayoutResource.ResourceManager.GetString(currentCultureInfo.Name);
if (!string.IsNullOrWhiteSpace(str))
{
languagesLabel = string.Format(LayoutResource.ResourceManager.GetString("selected_language"), str);
}
}
Layout = "~/Views/Shared/_CommonLayout.cshtml";
}
<nav class="navbar navbar-expand-lg bg-primary">
<div class="container-fluid">
<a class="navbar-brand" href="#">
<img src="~/images/SIDLogo.svg" width="40px" />
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto">
@if (User.Identity.IsAuthenticated)
{
<li class="nav-item">
<a class="nav-link" href="@Url.Action("Profile", "Home")">
Welcome @User.Identity.Name
</a>
</li>
}
@if (options.Value.RealmEnabled)
{
<li class="nav-item">
<a class="nav-link" href="@Url.Action("Index", "Sessions", new { prefix = string.Empty })">
@LayoutResource.Sessions
</a>
</li>
}
@RenderSection("SubMenu", required: false)
</ul>
<ul class="navbar-nav">
@if (User.Identity.IsAuthenticated)
{
<li class="nav-item">
<a class="nav-link" href="@Url.Action("Disconnect", "Home", new { area = "" })">@LayoutResource.disconnect</a>
</li>
}
else
{
<li class="nav-item">
<a class="nav-link" href="@Url.Action("Profile", "Home", new { area = "" })">@LayoutResource.authenticate</a>
</li>
}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" data-bs-toggle="dropdown">
@languagesLabel
</a>
<div class="dropdown-menu">
@foreach (var language in Model.Languages)
{
<form asp-controller="Home" asp-action="SwitchLanguage" asp-area="" method="post">
<input type="hidden" name="culture" value="@language.Code" />
<input type="hidden" name="returnUrl" value="@returnUrl" />
<button type="submit" class="dropdown-item" href="#">@language.Description</button>
</form>
}
</div>
</li>
</ul>
</div>
</div>
</nav>
<div id="container">
<div>
@RenderSection("PageTitle", false)
</div>
<div>
@RenderBody()
</div>
</div>
@section Scripts {
@RenderSection("Scripts", required: false)
}