Files
Fuchs_Intranet/Fuchs/Views/Shared/_Layout.cshtml
T
Stefan 882e97509a Enhance logging in FdsSqlOptions and related classes
- Updated FdsSqlOptions to accept an optional ILogger parameter for improved error logging.
- Modified FdsMfr and FdsMfrClient classes to pass the logger instance to FdsSqlOptions.
- Added detailed error logging in various methods to capture SQL execution issues and file handling errors.
- Improved documentation for FdsSqlOptions to clarify logging behavior.
- Updated Archive class to log compression errors, enhancing traceability of failures.
- Adjusted project configuration to suppress specific warnings related to transitive dependencies.
- Added NuGet.config to define package sources for dependency management.
- Updated submodule references for OCORE and related projects.
2026-07-03 20:22:05 +02:00

124 lines
4.7 KiB
Plaintext

@using System.Security.Claims
@using Microsoft.Data.SqlClient
@using Newtonsoft.Json
@inject IConfiguration Configuration
@inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostEnvironment
@{
bool isAuth = User.Identity?.IsAuthenticated ?? false;
var authinfo = new Dictionary<string, object>();
if (isAuth)
{
authinfo["useraccount_id"] = User.FindFirstValue("fuchs:useraccount_id") ?? "";
authinfo["email"] = User.FindFirstValue("fuchs:email") ?? "";
authinfo["authorization"] = User.FindFirstValue("fuchs:authorization") ?? "0";
}
authinfo["requestedaccount"] = "";
authinfo["accountrequired"] = false;
string appName = ViewData["AppName"] as string ?? "Fuchs Intranet";
string fullName = ViewData["FullName"] as string ?? "";
string pageTitle = ViewData["Title"] as string ?? "Intranet";
string? debugDbTarget = null;
if (HostEnvironment.IsDevelopment())
{
var connectionString = Configuration.GetConnectionString("fuchs_fds_ConnectionString");
if (!string.IsNullOrWhiteSpace(connectionString))
{
var builder = new SqlConnectionStringBuilder(connectionString);
debugDbTarget = $"{builder.DataSource} / {builder.InitialCatalog}";
}
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@if (!string.IsNullOrWhiteSpace(debugDbTarget))
{
<meta name="fuchs-debug-database" content="@debugDbTarget" />
}
<title>@pageTitle</title>
<script src="~/web/tools.js" asp-append-version="true"></script>
@if (isAuth)
{
<script src="~/lib/tinymce/tinymce.min.js"></script>
<link rel="stylesheet" href="~/web/fis.min.css" asp-append-version="true" />
<script src="~/web/fis.min.js" asp-append-version="true"></script>
}
else
{
<link rel="stylesheet" href="~/web/fisb.min.css" asp-append-version="true" />
<script src="~/web/fisb.min.js" asp-append-version="true"></script>
}
@await RenderSectionAsync("CustomHeader", required: false)
<script type="text/javascript">
$ocms.auth = @Html.Raw(JsonConvert.SerializeObject(authinfo));
</script>
</head>
<body class="ldng">
<div id="bgimg"></div>
@if (isAuth)
{
<div class="pgb inactive">
<div class="pgb-progress">
<div class="inner"></div>
</div>
</div>
<header>
<nav id="mainmenu">
<div class="nav-header">
<div id="logo">&nbsp;</div>
<button id="mmmb" class="nav-btn" data-toggle="vis" data-target="#mainmenu">
<span class="glyphicon glyphicon-menu-hamburger"></span>
</button>
<div id="brand" class="brand">@appName</div>
<div id="activemodule" class="activemodule">Übersicht</div>
</div>
<ul class="nav-right">
<li class="dropdown">
<a class="dds dropdown-toggle" role="button" aria-expanded="false">
<span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
<span class="caret dd"></span>
</a>
<ul id="vm_menu_auth" class="dropdown-menu right" role="menu">
<li class="dropdown submenu">
<a class="dds dropdown-toggle" role="button" aria-expanded="false">
@fullName<span class="caret dd"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li><a onclick="$ocms.logout.call(this);">abmelden</a></li>
<li><a onclick="$fis.resetPass.call(this);">Passwort ändern</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
@await RenderSectionAsync("BodyHeader", required: false)
</header>
<main>
<div id="topbar"></div>
<div id="listframe"></div>
<div id="contentframe">
@RenderBody()
</div>
</main>
<footer>
<div id="notification_frame"></div>
@await RenderSectionAsync("BodyFooter", required: false)
</footer>
}
else
{
@await Html.PartialAsync("~/Views/Partials/vpart__ocms_login.cshtml")
@RenderBody()
}
<div class="timer"></div>
</body>
</html>