From 325a06e6b03eef52381e70b5d7950923285334e2 Mon Sep 17 00:00:00 2001 From: KoCoder Date: Sat, 11 Apr 2026 18:18:10 +0200 Subject: [PATCH] BB: Card Styling --- .../Details.razor | 138 ++++++++++++++++++ .../Index.razor | 3 +- .../Details.resx | 79 ++++++++++ SZUAbsolventenverein.Module.BlackBoard.slnx | 2 +- Server/wwwroot/Module.css | 39 +++++ 5 files changed, 259 insertions(+), 2 deletions(-) create mode 100644 Client/Modules/SZUAbsolventenverein.Module.BlackBoard/Details.razor create mode 100644 Client/Resources/SZUAbsolventenverein.Module.BlackBoard/Details.resx diff --git a/Client/Modules/SZUAbsolventenverein.Module.BlackBoard/Details.razor b/Client/Modules/SZUAbsolventenverein.Module.BlackBoard/Details.razor new file mode 100644 index 0000000..0963b1e --- /dev/null +++ b/Client/Modules/SZUAbsolventenverein.Module.BlackBoard/Details.razor @@ -0,0 +1,138 @@ +@using SZUAbsolventenverein.Module.BlackBoard.Services +@using SZUAbsolventenverein.Module.BlackBoard.Models +@using Interfaces + +@namespace SZUAbsolventenverein.Module.BlackBoard +@inherits ModuleBase +@inject IBlackBoardService BlackBoardService +@inject NavigationManager NavigationManager +@inject IStringLocalizer
Localizer +@inject IReportUI ReportingComponent + +@if (_item == null) +{ +

Loading...

+} +else +{ +
+
+ @if (_item.ImageID > 0) + { +
+ @_item.Name + } + else + { +
+ đź“‹ +
+ } +
+
+
+
+

@_item.Name

+
+ +
+ +
+
Beschreibung
+
+ @((MarkupString)(_item.Description ?? "")) +
+
+ +
+ +
+ +
+ + ZurĂĽck + + +
+ + + + + @if (ReportingComponent != null) + { + + } +
+
+
+
+
+} + + + +@code { + public override string Actions => "Details"; + + public override List Resources => [ + new Stylesheet("_content/SZUAbsolventenverein.Module.BlackBoard/Module.css") + ]; + + private BlackBoard _item; + private int _id; + private Dictionary _parameters = new Dictionary(); + + protected override async Task OnInitializedAsync() + { + try + { + _id = Int32.Parse(PageState.QueryString["id"]); + _item = await BlackBoardService.GetBlackBoardAsync(_id, ModuleState.ModuleId); + + if (_item != null && ReportingComponent != null) + { + _parameters = ReportingComponent.ConstructParameterList(_item, RenderModeBoundary); + } + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Loading BlackBoard {BlackBoardId} {Error}", _id, ex.Message); + AddModuleMessage(Localizer["Message.LoadError"], MessageType.Error); + } + } + + private async Task DeleteEntry() + { + try + { + await BlackBoardService.DeleteBlackBoardAsync(_item.BlackBoardId, ModuleState.ModuleId); + await logger.LogInformation("BlackBoard Deleted {BlackBoard}", _item); + NavigationManager.NavigateTo(NavigateUrl()); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Deleting BlackBoard {Error}", ex.Message); + AddModuleMessage(Localizer["Message.DeleteError"], MessageType.Error); + } + } +} diff --git a/Client/Modules/SZUAbsolventenverein.Module.BlackBoard/Index.razor b/Client/Modules/SZUAbsolventenverein.Module.BlackBoard/Index.razor index cdbaa40..736861b 100644 --- a/Client/Modules/SZUAbsolventenverein.Module.BlackBoard/Index.razor +++ b/Client/Modules/SZUAbsolventenverein.Module.BlackBoard/Index.razor @@ -39,7 +39,7 @@ else
@item.Name
@if (!string.IsNullOrWhiteSpace(item.Description)) { -
@((MarkupString)item.Description)
+
@(item.Description)
} @@ -48,6 +48,7 @@ else diff --git a/Client/Resources/SZUAbsolventenverein.Module.BlackBoard/Details.resx b/Client/Resources/SZUAbsolventenverein.Module.BlackBoard/Details.resx new file mode 100644 index 0000000..5f03e08 --- /dev/null +++ b/Client/Resources/SZUAbsolventenverein.Module.BlackBoard/Details.resx @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Bearbeiten + + + Löschen + + + BlackBoard löschen + + + Möchten Sie diesen BlackBoard-Eintrag wirklich löschen? + + + Fehler beim Laden des BlackBoard-Eintrags + + + Fehler beim Löschen des BlackBoard-Eintrags + + diff --git a/SZUAbsolventenverein.Module.BlackBoard.slnx b/SZUAbsolventenverein.Module.BlackBoard.slnx index d4f5341..b50b1a1 100644 --- a/SZUAbsolventenverein.Module.BlackBoard.slnx +++ b/SZUAbsolventenverein.Module.BlackBoard.slnx @@ -1,6 +1,6 @@ - + diff --git a/Server/wwwroot/Module.css b/Server/wwwroot/Module.css index 257812f..b372222 100644 --- a/Server/wwwroot/Module.css +++ b/Server/wwwroot/Module.css @@ -77,3 +77,42 @@ border-top: 1px solid #e9ecef; background: #f8f9fa; } + +/* ── Blackboard Details View ── */ +.bb-details .card { + background: #ffffff; +} + +.bb-details .breadcrumb-item a { + text-decoration: none; + color: var(--primary); +} + +.bb-detail-image-bg { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-size: cover; + background-position: center; + filter: blur(30px) brightness(1.1); + opacity: 0.15; + z-index: 0; +} + +.bb-description-section .lead { + word-wrap: break-word; + overflow-wrap: break-word; +} + +.bb-description-section .lead img { + max-width: 100%; + height: auto; + border-radius: 0.5rem; +} + +.bb-detail-audit { + font-size: 0.85rem; + color: #6c757d; +}