Started to design MetaData for Letters

This commit is contained in:
schnulller
2022-05-20 01:38:10 +02:00
parent d054cf07e1
commit bf3112cacd
8 changed files with 71 additions and 37 deletions

View File

@@ -54,8 +54,8 @@ public class Briefecontroller : Controller
// Model creation // Model creation
var model = new BriefeViewModel(this.id, index, generateMetaViewModel(meta)); var model = new BriefeViewModel(this.id, index, generateMetaViewModel(meta));
if (nextmeta != null) model.Next = (generateMetaViewModel(nextmeta), url + nextmeta.Autopsic); if (nextmeta != null) model.MetaData.Next = (generateMetaViewModel(nextmeta), url + nextmeta.Autopsic);
if (prevmeta != null) model.Prev = (generateMetaViewModel(prevmeta), url + prevmeta.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 (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 (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); 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) ParsedReceivers = HTMLHelpers.StringHelpers.GetEnumerationString(recivers)
}; };
} }
} }

View File

@@ -4,9 +4,15 @@ using HaDocument.Models;
public class BriefeMetaViewModel public class BriefeMetaViewModel
{ {
public Meta Meta { get; private set; } 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? ParsedSenders { get; set; }
public string? ParsedReceivers { get; set; } public string? ParsedReceivers { get; set; }
public (BriefeMetaViewModel, string)? Next { get; set; }
public (BriefeMetaViewModel, string)? Prev { get; set; }
public BriefeMetaViewModel(Meta meta) public BriefeMetaViewModel(Meta meta)
{ {

View File

@@ -4,7 +4,7 @@ public class BriefeViewModel
{ {
public string Id { get; private set; } public string Id { get; private set; }
public string Index { 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? ParsedText { get; set; }
public string? ParsedLineCount { get; set; } public string? ParsedLineCount { get; set; }
@@ -13,13 +13,10 @@ public class BriefeViewModel
public List<string>? ParsedEdits { get; set; } public List<string>? ParsedEdits { get; set; }
public List<string>? ParsedHands { get; set; } public List<string>? ParsedHands { get; set; }
public (BriefeMetaViewModel, string)? Next { get; set; }
public (BriefeMetaViewModel, string)? Prev { get; set; }
public BriefeViewModel(string id, string index, BriefeMetaViewModel meta) public BriefeViewModel(string id, string index, BriefeMetaViewModel meta)
{ {
Id = id; Id = id;
Index = index; Index = index;
Meta = meta; MetaData = meta;
} }
} }

View File

@@ -5,6 +5,7 @@ using TagFuncList = List<(Func<HaXMLReader.EvArgs.Tag, HaWeb.HTMLParser.XMLHelpe
using TextFuncList = List<(Func<HaXMLReader.EvArgs.Text, HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>, bool>, Action<System.Text.StringBuilder, HaXMLReader.EvArgs.Text, HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>>)>; using TextFuncList = List<(Func<HaXMLReader.EvArgs.Text, HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>, bool>, Action<System.Text.StringBuilder, HaXMLReader.EvArgs.Text, HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>>)>;
using WhitespaceFuncList = List<(Func<HaXMLReader.EvArgs.Whitespace, HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>, bool>, Action<System.Text.StringBuilder, HaXMLReader.EvArgs.Whitespace, HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>>)>; using WhitespaceFuncList = List<(Func<HaXMLReader.EvArgs.Whitespace, HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>, bool>, Action<System.Text.StringBuilder, HaXMLReader.EvArgs.Whitespace, HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>>)>;
// TODO: stringbuilder als Rückgabeparameter des XMHelpers ist eigentlich auch Part vom State
public class LetterRules public class LetterRules
{ {
private static readonly string DEFAULTELEMENT = HaWeb.Settings.HTML.DEFAULTELEMENT; private static readonly string DEFAULTELEMENT = HaWeb.Settings.HTML.DEFAULTELEMENT;

View File

@@ -1,13 +1,8 @@
@model BriefeViewModel; @model BriefeViewModel;
@Model.Meta.Meta.Autopsic <div class="ha-letterheader">
@Model.Meta.ParsedSenders @await Html.PartialAsync("/Views/Shared/_LetterHead.cshtml", Model.MetaData)
@Model.Index </div>
@Model.Id
@if (Model.Next != null) {
<a href="@Model.Next.Value.Item2">@Model.Next.Value.Item1.Meta.Autopsic</a>
}
@if (Model.ParsedText != null) { @if (Model.ParsedText != null) {
@Html.Raw(@Model.ParsedText) @Html.Raw(@Model.ParsedText)
@@ -20,20 +15,3 @@
@if (Model.ParsedMarginals != null) { @if (Model.ParsedMarginals != null) {
@Html.Raw(@Model.ParsedMarginals) @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)
}
}

View File

@@ -0,0 +1,20 @@
@model BriefeMetaViewModel
<div class="ha-letterhead">
<div class="ha-letternumber">
@Model.Meta.Autopsic
</div>
<div class="ha-metadata">
<div class="ha-metadatarows">
<div class="ha-metadatatop">
@Model.Meta.Date
</div>
<div class="metadatabottom">
@Model.ParsedSenders -> @Model.ParsedReceivers
</div>
</div>
</div>
<div class="ha-lettermetalinks">
</div>
</div>

View File

@@ -1016,6 +1016,26 @@ body {
color: rgb(17 24 39 / var(--tw-text-opacity)); 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 */ /* Classes from .NET */
.ha-title { .ha-title {

View File

@@ -133,7 +133,7 @@
@apply underline decoration-solid @apply underline decoration-solid
} }
/* Classes for static pages */ /* Classes for static pages */
.ha-static { .ha-static {
@apply w-full bg-slate-50 py-12 px-12 md:px-16 hyphenate font-serif @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 @apply inline-block absolute text-right w-8 -left-10
} }
/* Classes for register pages */ /* Classes for register pages */
.ha-register { .ha-register {
@apply w-full font-serif numeric-mediaeval @apply w-full font-serif numeric-mediaeval
@@ -297,7 +297,19 @@
@apply hover:text-gray-900 no-underline @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 { .ha-title {
@apply inline italic @apply inline italic
} }
@@ -338,7 +350,8 @@
@apply relative -top-[0.5em] text-[80%] @apply relative -top-[0.5em] text-[80%]
} }
/* Classes from Javascript */ /* Classes from Javascript */
.active { .active {
@apply !text-hamannHighlight pointer-events-none @apply !text-hamannHighlight pointer-events-none
} }