Bugfixes fith the scolling bar, two senders and receivers

This commit is contained in:
Simon Martens
2022-11-27 19:10:38 +01:00
parent ec16c4b02e
commit 7193564e98
9 changed files with 61 additions and 59 deletions

View File

@@ -58,9 +58,9 @@ public class Briefecontroller : Controller {
// Model creation // Model creation
var hasMarginals = false; var hasMarginals = false;
if (marginals != null && marginals.Any()) hasMarginals = true; if (marginals != null && marginals.Any()) hasMarginals = true;
var model = new BriefeViewModel(id, index, generateMetaViewModel(lib, meta, hasMarginals)); var model = new BriefeViewModel(id, index, GenerateMetaViewModel(lib, meta));
if (nextmeta != null) model.MetaData.Next = (generateMetaViewModel(lib, nextmeta, false), url + nextmeta.Autopsic); if (nextmeta != null) model.MetaData.Next = (GenerateMetaViewModel(lib, nextmeta), url + nextmeta.Autopsic);
if (prevmeta != null) model.MetaData.Prev = (generateMetaViewModel(lib, prevmeta, false), url + prevmeta.Autopsic); if (prevmeta != null) model.MetaData.Prev = (GenerateMetaViewModel(lib, prevmeta), url + prevmeta.Autopsic);
if (hands != null && hands.Any()) model.ParsedHands = HaWeb.HTMLHelpers.LetterHelpers.CreateHands(lib, hands); if (hands != null && hands.Any()) model.ParsedHands = HaWeb.HTMLHelpers.LetterHelpers.CreateHands(lib, hands);
if (editreasons != null && editreasons.Any()) model.ParsedEdits = HaWeb.HTMLHelpers.LetterHelpers.CreateEdits(lib, _readerService, editreasons); if (editreasons != null && editreasons.Any()) model.ParsedEdits = HaWeb.HTMLHelpers.LetterHelpers.CreateEdits(lib, _readerService, editreasons);
model.DefaultCategory = lib.Apps.ContainsKey("-1") ? lib.Apps["-1"].Category : null; model.DefaultCategory = lib.Apps.ContainsKey("-1") ? lib.Apps["-1"].Category : null;
@@ -119,14 +119,38 @@ public class Briefecontroller : Controller {
return Redirect("/Error404"); return Redirect("/Error404");
} }
private BriefeMetaViewModel generateMetaViewModel(ILibrary lib, Meta meta, bool hasMarginals) { internal static BriefeMetaViewModel GenerateMetaViewModel(ILibrary lib, Meta meta) {
var hasMarginals = lib.MarginalsByLetter.Contains(meta.Index) ? true : false;
var senders = meta.Senders.Select(x => lib.Persons[x].Name) ?? new List<string>(); var senders = meta.Senders.Select(x => lib.Persons[x].Name) ?? new List<string>();
var recivers = meta.Receivers.Select(x => lib.Persons[x].Name) ?? new List<string>(); var recivers = meta.Receivers.Select(x => lib.Persons[x].Name) ?? new List<string>();
var zhstring = meta.ZH != null ? HaWeb.HTMLHelpers.LetterHelpers.CreateZHString(meta) : null; var zhstring = meta.ZH != null ? HaWeb.HTMLHelpers.LetterHelpers.CreateZHString(meta) : null;
return new BriefeMetaViewModel(meta, hasMarginals) { return new BriefeMetaViewModel(meta, hasMarginals) {
ParsedZHString = zhstring, ParsedZHString = zhstring,
ParsedSenders = HTMLHelpers.StringHelpers.GetEnumerationString(senders), SenderReceiver = generateSendersRecievers(senders, recivers)
ParsedReceivers = HTMLHelpers.StringHelpers.GetEnumerationString(recivers)
}; };
} }
private static List<(string Sender, string Receiver)> generateSendersRecievers(IEnumerable<string>? senders, IEnumerable<string>? receivers) {
var res = new List<(string Sender, string Receiver)>();
if (senders != null && receivers != null) {
if (senders.Any(x => receivers.Contains(x))) {
var s = senders.ToList();
var r = receivers.ToList();
for (var i = 0; i < r.Count || i < s.Count; i++) {
res.Add((
s[i],
r[i]
));
}
}
else {
res.Add((
HTMLHelpers.StringHelpers.GetEnumerationString(senders),
HTMLHelpers.StringHelpers.GetEnumerationString(receivers)
));
}
}
return res;
}
} }

View File

@@ -96,18 +96,6 @@ public class IndexController : Controller {
.ToList(); .ToList();
} }
internal static BriefeMetaViewModel GenerateMetaViewModel(ILibrary lib, Meta meta) {
var hasMarginals = lib.MarginalsByLetter.Contains(meta.Index) ? true : false;
var senders = meta.Senders.Select(x => lib.Persons[x].Name) ?? new List<string>();
var recivers = meta.Receivers.Select(x => lib.Persons[x].Name) ?? new List<string>();
var zhstring = meta.ZH != null ? HaWeb.HTMLHelpers.LetterHelpers.CreateZHString(meta) : null;
return new BriefeMetaViewModel(meta, hasMarginals) {
ParsedZHString = zhstring,
ParsedSenders = HTMLHelpers.StringHelpers.GetEnumerationString(senders),
ParsedReceivers = HTMLHelpers.StringHelpers.GetEnumerationString(recivers)
};
}
internal static List<(int StartYear, int EndYear)>? Paginate(List<IGrouping<int, Meta>>? letters, int lettersForPage) { internal static List<(int StartYear, int EndYear)>? Paginate(List<IGrouping<int, Meta>>? letters, int lettersForPage) {
if (letters == null || !letters.Any()) return null; if (letters == null || !letters.Any()) return null;
List<(int StartYear, int EndYear)>? res = null; List<(int StartYear, int EndYear)>? res = null;
@@ -146,7 +134,7 @@ public class IndexController : Controller {
letters = metasbyyear letters = metasbyyear
.Where(x => x.Key >= pages[page].StartYear && x.Key <= pages[page].EndYear) .Where(x => x.Key >= pages[page].StartYear && x.Key <= pages[page].EndYear)
.Select(x => (x.Key, x .Select(x => (x.Key, x
.Select(y => GenerateMetaViewModel(lib, y)) .Select(y => Briefecontroller.GenerateMetaViewModel(lib, y))
.OrderBy(x => x.Meta.Sort) .OrderBy(x => x.Meta.Sort)
.ThenBy(x => x.Meta.Order) .ThenBy(x => x.Meta.Order)
.ToList())) .ToList()))

View File

@@ -137,7 +137,7 @@ public class SucheController : Controller {
letters = metasbyyear letters = metasbyyear
.Where(x => x.Key >= pages[page].StartYear && x.Key <= pages[page].EndYear) .Where(x => x.Key >= pages[page].StartYear && x.Key <= pages[page].EndYear)
.Select(x => (x.Key, x .Select(x => (x.Key, x
.Select(y => IndexController.GenerateMetaViewModel(lib, y)) .Select(y => Briefecontroller.GenerateMetaViewModel(lib, y))
.OrderBy(x => x.Meta.Sort) .OrderBy(x => x.Meta.Sort)
.ThenBy(x => x.Meta.Order) .ThenBy(x => x.Meta.Order)
.ToList())) .ToList()))

View File

@@ -6,30 +6,20 @@ public class BriefeMetaViewModel {
public bool HasMarginals { get; private set; } public bool HasMarginals { get; private set; }
public bool HasText { get; set; } = true; public bool HasText { get; set; } = true;
private string? _ParsedSenders; private List<(string Sender, string Receiver)>? _SenderReceiver;
private string? _ParsedReceivers;
private string? _ParsedZHString; private string? _ParsedZHString;
private string? _Startline; private string? _Startline;
private string? _Startpage; private string? _Startpage;
public string? ParsedSenders { public List<(string Sender, string Receiver)>? SenderReceiver {
get => _ParsedSenders; get => _SenderReceiver;
set { set {
if (value != null) if (value != null)
_ParsedSenders = HttpUtility.HtmlEncode(value); value.ForEach(x => {
else HttpUtility.HtmlEncode(x.Sender);
_ParsedSenders = value; HttpUtility.HtmlEncode(x.Receiver);
} });
} _SenderReceiver = value;
public string? ParsedReceivers {
get => _ParsedReceivers;
set {
if (value != null)
_ParsedReceivers = HttpUtility.HtmlEncode(value);
else
_ParsedReceivers = value;
} }
} }

View File

@@ -82,11 +82,7 @@ Vor dem internen release:
A TODO Jahreszahlen auf der Startseite A TODO Jahreszahlen auf der Startseite
B TODO Suchergebnisse beschränken B TODO Suchergebnisse beschränken
B TODO Mobile Menüs bei der Seitennavigation (Jahrszahlen, Buchstabenindex usw) B TODO Mobile Menüs bei der Seitennavigation (Jahrszahlen, Buchstabenindex usw)
A TODO Fehlerseiten bei nicht gefundenen Seiten
C TODO Traditions durchsuchen C TODO Traditions durchsuchen
A TODO Briefe, in welchen Sender / Empfänger jeweils doppelt / getauscht sind 876
A TODO SEO Description & Titel
A TODO fixed width briefe kommentar bisschen nach links 306, 309
Liste für Janina/Luca: Liste für Janina/Luca:
tabellen ok, ausser 939 tabellen ok, ausser 939
@@ -95,5 +91,4 @@ KOmmentare verschobem 202 Anhang
458 leeren lettertext löschen 458 leeren lettertext löschen
935 leeren lettertext löschen 935 leeren lettertext löschen
doppel- empfänder sender 876
Evtl finetuning von note Evtl finetuning von note

View File

@@ -8,7 +8,7 @@
</div> </div>
</div> </div>
} }
@if (!String.IsNullOrWhiteSpace(Model.Letter.ParsedReceivers)) { @if (Model.Letter.SenderReceiver != null && Model.Letter.SenderReceiver.Any()) {
<div class="ha-metadata"> <div class="ha-metadata">
<div class="ha-metadataupperrow"> <div class="ha-metadataupperrow">
<div class="ha-metadatadate"> <div class="ha-metadatadate">
@@ -19,19 +19,20 @@
} }
</div> </div>
<div class="ha-metadatapersons"> <div class="ha-metadatapersons">
@foreach(var pair in Model.Letter.SenderReceiver) {
@if (Model.Letter.Meta.isDraft == HaDocument.Models.OptionalBool.True) { @if (Model.Letter.Meta.isDraft == HaDocument.Models.OptionalBool.True) {
<span>@Html.Raw(Model.Letter.ParsedSenders)</span> <span>@Html.Raw(pair.Sender)</span>
<div class="ha-tooltip"> <div class="ha-tooltip">
<div class="ha-tooltiptext" style="bottom: 100%;"> <div class="ha-tooltiptext" style="bottom: 100%;">
Entwurf Entwurf
</div>
</div> </div>
</div> <span>@Html.Raw(pair.Receiver)</span><br>
<span>@Html.Raw(Model.Letter.ParsedReceivers)</span> }
} else {
else { <span>@Html.Raw(pair.Sender) → @Html.Raw(pair.Receiver)</span><br>
<span>@Html.Raw(Model.Letter.ParsedSenders) → @Html.Raw(Model.Letter.ParsedReceivers)</span> }
} }
</div> </div>
</div> </div>

View File

@@ -172,7 +172,7 @@
} }
.ha-text .ha-marginalbox { .ha-text .ha-marginalbox {
@apply hidden select-none hover:select-auto hyphenate pl-1 md:inline-block absolute left-full ml-6 desktop:ml-16 mt-1 w-[16rem] desktop:w-[28rem] text-sm leading-tight rounded-sm font-sans @apply hidden select-none hover:select-auto hyphenate pl-1 md:inline-block absolute left-full ml-6 desktop:ml-10 mt-1 w-[16rem] desktop:w-[28rem] text-sm leading-tight rounded-sm font-sans
} }
.ha-text .ha-marginalbox .ha-marginallist { .ha-text .ha-marginalbox .ha-marginallist {
@@ -289,6 +289,10 @@
.ha-minwidth .ha-aligncenter { .ha-minwidth .ha-aligncenter {
@apply absolute left-1/3 whitespace-nowrap -translate-x-1/2 @apply absolute left-1/3 whitespace-nowrap -translate-x-1/2
} }
.ha-minwidth .ha-marginalbox {
@apply !ml-1
}
} }
.ha-lettertext .ha-marginalbox:before { .ha-lettertext .ha-marginalbox:before {

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
@layer components { @layer components {
/* COLORS */ /* COLORS */
body { body {
@apply text-black dark:text-white dark:bg-gray-800 dark:bg-none overflow-x-hidden md:overflow-x-auto @apply text-black dark:text-white dark:bg-gray-800 dark:bg-none overflow-x-hidden md:overflow-x-auto md:overflow-y-scroll
} }
.ha-added, .ha-added,