From bf3112cacded9f87a9823f0b0c3ab8f7a9dad13e Mon Sep 17 00:00:00 2001 From: schnulller Date: Fri, 20 May 2022 01:38:10 +0200 Subject: [PATCH] Started to design MetaData for Letters --- HaWeb/Controllers/BriefeContoller.cs | 5 ++-- HaWeb/Models/BriefeMetaViewModel.cs | 6 +++++ HaWeb/Models/BriefeViewModel.cs | 7 ++---- HaWeb/Settings/ParsingRules/LetterRules.cs | 1 + HaWeb/Views/Briefe/Index.cshtml | 28 +++------------------- HaWeb/Views/Shared/_LetterHead.cshtml | 20 ++++++++++++++++ HaWeb/wwwroot/css/output.css | 20 ++++++++++++++++ HaWeb/wwwroot/css/site.css | 21 ++++++++++++---- 8 files changed, 71 insertions(+), 37 deletions(-) create mode 100644 HaWeb/Views/Shared/_LetterHead.cshtml diff --git a/HaWeb/Controllers/BriefeContoller.cs b/HaWeb/Controllers/BriefeContoller.cs index 4aa8efe..32814ca 100644 --- a/HaWeb/Controllers/BriefeContoller.cs +++ b/HaWeb/Controllers/BriefeContoller.cs @@ -54,8 +54,8 @@ public class Briefecontroller : Controller // Model creation var model = new BriefeViewModel(this.id, index, generateMetaViewModel(meta)); - if (nextmeta != null) model.Next = (generateMetaViewModel(nextmeta), url + nextmeta.Autopsic); - if (prevmeta != null) model.Prev = (generateMetaViewModel(prevmeta), url + prevmeta.Autopsic); + if (nextmeta != null) model.MetaData.Next = (generateMetaViewModel(nextmeta), url + nextmeta.Autopsic); + if (prevmeta != null) model.MetaData.Prev = (generateMetaViewModel(prevmeta), url + prevmeta.Autopsic); if (hands != null && hands.Any()) model.ParsedHands = HaWeb.HTMLHelpers.BriefeHelpers.CreateHands(_lib, hands); if (editreasons != null && editreasons.Any()) model.ParsedEdits = HaWeb.HTMLHelpers.BriefeHelpers.CreateEdits(_lib, _readerService, editreasons); if (tradition != null && !String.IsNullOrWhiteSpace(tradition.Element)) model.ParsedTradition = HaWeb.HTMLHelpers.BriefeHelpers.CreateTraditions(_lib, _readerService, marginals, tradition); @@ -82,5 +82,4 @@ public class Briefecontroller : Controller ParsedReceivers = HTMLHelpers.StringHelpers.GetEnumerationString(recivers) }; } - } \ No newline at end of file diff --git a/HaWeb/Models/BriefeMetaViewModel.cs b/HaWeb/Models/BriefeMetaViewModel.cs index a432587..54b7587 100644 --- a/HaWeb/Models/BriefeMetaViewModel.cs +++ b/HaWeb/Models/BriefeMetaViewModel.cs @@ -4,9 +4,15 @@ using HaDocument.Models; public class BriefeMetaViewModel { public Meta Meta { get; private set; } + public bool ShowSurroundingLetterLinks { get; private set; } + public bool ShowPDFButton { get; private set; } public string? ParsedSenders { get; set; } public string? ParsedReceivers { get; set; } + + public (BriefeMetaViewModel, string)? Next { get; set; } + public (BriefeMetaViewModel, string)? Prev { get; set; } + public BriefeMetaViewModel(Meta meta) { diff --git a/HaWeb/Models/BriefeViewModel.cs b/HaWeb/Models/BriefeViewModel.cs index bcdb3ec..dff46d6 100644 --- a/HaWeb/Models/BriefeViewModel.cs +++ b/HaWeb/Models/BriefeViewModel.cs @@ -4,7 +4,7 @@ public class BriefeViewModel { public string Id { get; private set; } public string Index { get; private set; } - public BriefeMetaViewModel Meta { get; private set; } + public BriefeMetaViewModel MetaData { get; private set; } public string? ParsedText { get; set; } public string? ParsedLineCount { get; set; } @@ -13,13 +13,10 @@ public class BriefeViewModel public List? ParsedEdits { get; set; } public List? ParsedHands { get; set; } - public (BriefeMetaViewModel, string)? Next { get; set; } - public (BriefeMetaViewModel, string)? Prev { get; set; } - public BriefeViewModel(string id, string index, BriefeMetaViewModel meta) { Id = id; Index = index; - Meta = meta; + MetaData = meta; } } \ No newline at end of file diff --git a/HaWeb/Settings/ParsingRules/LetterRules.cs b/HaWeb/Settings/ParsingRules/LetterRules.cs index 016300c..bc0910d 100644 --- a/HaWeb/Settings/ParsingRules/LetterRules.cs +++ b/HaWeb/Settings/ParsingRules/LetterRules.cs @@ -5,6 +5,7 @@ using TagFuncList = List<(Func, bool>, Action>)>; using WhitespaceFuncList = List<(Func, bool>, Action>)>; +// TODO: stringbuilder als Rückgabeparameter des XMHelpers ist eigentlich auch Part vom State public class LetterRules { private static readonly string DEFAULTELEMENT = HaWeb.Settings.HTML.DEFAULTELEMENT; diff --git a/HaWeb/Views/Briefe/Index.cshtml b/HaWeb/Views/Briefe/Index.cshtml index 499840a..226587e 100644 --- a/HaWeb/Views/Briefe/Index.cshtml +++ b/HaWeb/Views/Briefe/Index.cshtml @@ -1,13 +1,8 @@ @model BriefeViewModel; -@Model.Meta.Meta.Autopsic -@Model.Meta.ParsedSenders -@Model.Index -@Model.Id - -@if (Model.Next != null) { - @Model.Next.Value.Item1.Meta.Autopsic -} +
+ @await Html.PartialAsync("/Views/Shared/_LetterHead.cshtml", Model.MetaData) +
@if (Model.ParsedText != null) { @Html.Raw(@Model.ParsedText) @@ -20,20 +15,3 @@ @if (Model.ParsedMarginals != null) { @Html.Raw(@Model.ParsedMarginals) } - -@if (Model.ParsedTradition != null) { - @Html.Raw(@Model.ParsedTradition) -} - -@if (Model.ParsedEdits != null) { -@foreach (var edit in Model.ParsedEdits) { - @Html.Raw(edit) -} -} - -@if (Model.ParsedHands != null) -{ - @foreach (var hand in Model.ParsedHands) { - @Html.Raw(hand) -} -} diff --git a/HaWeb/Views/Shared/_LetterHead.cshtml b/HaWeb/Views/Shared/_LetterHead.cshtml new file mode 100644 index 0000000..a5374be --- /dev/null +++ b/HaWeb/Views/Shared/_LetterHead.cshtml @@ -0,0 +1,20 @@ +@model BriefeMetaViewModel + +
+
+ @Model.Meta.Autopsic +
+ + +
\ No newline at end of file diff --git a/HaWeb/wwwroot/css/output.css b/HaWeb/wwwroot/css/output.css index 19887b6..660818b 100644 --- a/HaWeb/wwwroot/css/output.css +++ b/HaWeb/wwwroot/css/output.css @@ -1016,6 +1016,26 @@ body { color: rgb(17 24 39 / var(--tw-text-opacity)); } +/* Classes for Letter View */ + +.ha-letterheader { + --tw-bg-opacity: 1; + background-color: rgb(248 250 252 / var(--tw-bg-opacity)); + padding-left: 2.25rem; + padding-right: 2.25rem; + padding-top: 2.25rem; +} + +@media (min-width: 1024px) { + .ha-letterheader { + padding-left: 4rem; + padding-right: 4rem; + padding-top: 3rem; + } +} + +/* Classes for MetaData View */ + /* Classes from .NET */ .ha-title { diff --git a/HaWeb/wwwroot/css/site.css b/HaWeb/wwwroot/css/site.css index 01eb338..55fc2a5 100644 --- a/HaWeb/wwwroot/css/site.css +++ b/HaWeb/wwwroot/css/site.css @@ -133,7 +133,7 @@ @apply underline decoration-solid } - /* Classes for static pages */ +/* Classes for static pages */ .ha-static { @apply w-full bg-slate-50 py-12 px-12 md:px-16 hyphenate font-serif @@ -191,7 +191,7 @@ @apply inline-block absolute text-right w-8 -left-10 } - /* Classes for register pages */ +/* Classes for register pages */ .ha-register { @apply w-full font-serif numeric-mediaeval @@ -297,7 +297,19 @@ @apply hover:text-gray-900 no-underline } - /* Classes from .NET */ +/* Classes for Letter View */ + + .ha-letterheader { + @apply bg-slate-50 pt-9 md:pt-12 px-9 md:px-16 + } + +/* Classes for MetaData View */ + + + + + +/* Classes from .NET */ .ha-title { @apply inline italic } @@ -338,7 +350,8 @@ @apply relative -top-[0.5em] text-[80%] } - /* Classes from Javascript */ +/* Classes from Javascript */ + .active { @apply !text-hamannHighlight pointer-events-none }