mirror of
https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
synced 2025-10-29 01:05:32 +00:00
Line Numbers on <page>
This commit is contained in:
@@ -71,8 +71,8 @@ public class Briefecontroller : Controller {
|
||||
(model.ParsedText, model.MinWidth) = (parsedLetter.sb_lettertext.ToString(), parsedLetter.minwidth);
|
||||
if (model.ParsedMarginals != null && parsedLetter.ParsedMarginals != null) model.ParsedMarginals.AddRange(parsedLetter.ParsedMarginals);
|
||||
else model.ParsedMarginals = parsedLetter.ParsedMarginals;
|
||||
if (parsedLetter.Startline != "-1" && parsedLetter.Startline != "1" && model.MetaData.ParsedZHString != null)
|
||||
model.MetaData.ParsedZHString += " / " + parsedLetter.Startline;
|
||||
model.MetaData.Startline = parsedLetter.Startline;
|
||||
model.MetaData.Startpage = parsedLetter.Startpage;
|
||||
if (String.IsNullOrWhiteSpace(model.ParsedText))
|
||||
model.MetaData.HasText = false;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ public class BriefeMetaViewModel {
|
||||
private string? _ParsedSenders;
|
||||
private string? _ParsedReceivers;
|
||||
private string? _ParsedZHString;
|
||||
private string? _Startline;
|
||||
private string? _Startpage;
|
||||
|
||||
public string? ParsedSenders {
|
||||
get => _ParsedSenders;
|
||||
@@ -42,6 +44,26 @@ public class BriefeMetaViewModel {
|
||||
}
|
||||
}
|
||||
|
||||
public string? Startline {
|
||||
get => _Startline;
|
||||
set {
|
||||
if (value != null)
|
||||
_Startline = HttpUtility.HtmlEncode(value);
|
||||
else
|
||||
_Startline = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string? Startpage {
|
||||
get => _Startpage;
|
||||
set {
|
||||
if (value != null)
|
||||
_Startpage = HttpUtility.HtmlEncode(value);
|
||||
else
|
||||
_Startpage = value;
|
||||
}
|
||||
}
|
||||
|
||||
public (BriefeMetaViewModel, string)? Next { get; set; }
|
||||
public (BriefeMetaViewModel, string)? Prev { get; set; }
|
||||
|
||||
|
||||
@@ -66,38 +66,27 @@ Veränderungen im Code
|
||||
- Code wird open source zugänglich
|
||||
|
||||
Ästhetisch unzufriedenstellend, aber funktional:
|
||||
TODO pills are not mobile friendly (hover / click), Pills allgemein Ästhetik
|
||||
TODO High Contrast Mode manchmal komisch
|
||||
TODO Kein High Contrast Mode für den Upload
|
||||
TODO High Contrast Mode: Kursiv und ausgegraut (Herausgeberanmerkungen) schwer sichtbar
|
||||
TODO 400: Traditions nicht genug Abstand
|
||||
TODO Word-wrap before align, tabs
|
||||
B TODO pills are not mobile friendly (hover / click), Pills allgemein Ästhetik
|
||||
D TODO High Contrast Mode manchmal komisch
|
||||
D TODO Kein High Contrast Mode für den Upload
|
||||
D TODO High Contrast Mode: Kursiv und ausgegraut (Herausgeberanmerkungen) schwer sichtbar
|
||||
D TODO 400: Traditions nicht genug Abstand
|
||||
|
||||
Technische Details:
|
||||
TODO Move ILibrary -> neuer Parser
|
||||
TODO Hochstellungen nach mediaevalziffern
|
||||
TODO Syntax-Check
|
||||
TODO Datum im Footer Edierdatum der Hamann-Datei
|
||||
TODO Fußnoten in Editionsgeschichte als Marginalkommentare
|
||||
TODO Navigation auf die Startseite / von Kontakt
|
||||
D TODO Move ILibrary -> neuer Parser
|
||||
C TODO Syntax-Check
|
||||
B TODO Datum im Footer Edierdatum der Hamann-Datei
|
||||
A TODO Fußnoten in Editionsgeschichte als Marginalkommentare
|
||||
|
||||
Vor dem internen release:
|
||||
TODO Jahreszahlen auf der Startseite
|
||||
TODO Suchergebnisse beschränken
|
||||
TODO Mobile Menüs bei der Seitennavigation (Jahrszahlen, Buchstabenindex usw)
|
||||
TODO Fehlerseiten bei nicht gefundenen Seiten
|
||||
TODO Traditions durchsuchen
|
||||
TODO Briefe, in welchen Sender / Empfänger jeweils doppelt / getauscht sind 876
|
||||
TODO SEO Description & Titel
|
||||
A TODO Jahreszahlen auf der Startseite
|
||||
B TODO Suchergebnisse beschränken
|
||||
B TODO Mobile Menüs bei der Seitennavigation (Jahrszahlen, Buchstabenindex usw)
|
||||
A TODO Fehlerseiten bei nicht gefundenen Seiten
|
||||
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:
|
||||
KEIN brief für Bassa
|
||||
Editionsgeschichte erste Fußnote
|
||||
tabellen ok, ausser 939, 806 falsch geschachtelt: dort sind htabs geschachtelt
|
||||
Fehlende Seiten auf HKW
|
||||
vmtl bei sendern und empfängern
|
||||
|
||||
theophrast-abschilderungen: Link mit linktext
|
||||
|
||||
|
||||
|
||||
tabellen ok, ausser 939
|
||||
@@ -161,7 +161,8 @@ public class LetterRules {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.ZHLINECOUNTCLASS, reader.State.currpage + "-" + reader.State.currline));
|
||||
|
||||
// Fall 1: Neue Seite
|
||||
if (reader.State.currline == "1") {
|
||||
if (reader.State.pagebreak == true) {
|
||||
reader.State.pagebreak = false;
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.ZHPAGECLASS, ""));
|
||||
sb.Append("S. " + reader.State.currpage);
|
||||
}
|
||||
@@ -184,6 +185,7 @@ public class LetterRules {
|
||||
} else if (reader.State.currline == "-1" && !String.IsNullOrWhiteSpace(tag["index"])) {
|
||||
reader.State.Startline = tag["index"];
|
||||
reader.State.currline = tag["index"];
|
||||
reader.State.pagebreak = false;
|
||||
}
|
||||
|
||||
// Marginalien, only for lines with a linenumber
|
||||
|
||||
@@ -26,14 +26,25 @@ public class LetterState : HaWeb.HTMLParser.IState {
|
||||
// What's the current line?
|
||||
internal string currline;
|
||||
// What's the current page?
|
||||
internal string currpage;
|
||||
// Does the container need a min-widt, so percentages are useful (tables)
|
||||
private string? _currpage;
|
||||
internal string? currpage {
|
||||
get => _currpage;
|
||||
set {
|
||||
if (Startpage == null)
|
||||
Startpage = value;
|
||||
_currpage = value;
|
||||
pagebreak = true;
|
||||
}}
|
||||
// Does the container need a min-width, so percentages are useful (tables)
|
||||
internal bool minwidth;
|
||||
// Did a pagebreak just occur?
|
||||
internal bool pagebreak = false;
|
||||
|
||||
// Results
|
||||
internal StringBuilder sb_lettertext;
|
||||
internal List<(string, string, string)>? ParsedMarginals;
|
||||
internal string Startline;
|
||||
internal string? Startline;
|
||||
internal string? Startpage = null;
|
||||
|
||||
public LetterState(ILibrary lib, IReaderService readerService, Meta meta, IEnumerable<Marginal>? marginals, IEnumerable<Hand>? hands, IEnumerable<Editreason>? edits) {
|
||||
Lib = lib;
|
||||
@@ -50,12 +61,11 @@ public class LetterState : HaWeb.HTMLParser.IState {
|
||||
sb_lettertext = new StringBuilder();
|
||||
active_skipwhitespace = true;
|
||||
currline = "-1";
|
||||
currpage = string.Empty;
|
||||
mustwrap = (false, false);
|
||||
minwidth = false;
|
||||
|
||||
// Initialize State
|
||||
if (Meta.ZH != null) {
|
||||
if (Meta.ZH != null && !String.IsNullOrWhiteSpace(Meta.ZH.Page)) {
|
||||
currpage = Meta.ZH.Page;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<script defer src="/js/briefe.js" asp-append-version="true"></script>
|
||||
|
||||
<div class="ha-letterheader">
|
||||
@await Html.PartialAsync("/Views/Shared/_LetterHead.cshtml", (Model.MetaData, false, false))
|
||||
@await Html.PartialAsync("/Views/Shared/_LetterHead.cshtml", (Model.MetaData, true, false))
|
||||
<div class="ha-letterheadernav">
|
||||
<div class="ha-lettertabs">
|
||||
@if (!String.IsNullOrWhiteSpace(Model.ParsedText))
|
||||
@@ -54,11 +54,13 @@
|
||||
|
||||
<div class="ha-letterbody " id="ha-letterbody">
|
||||
<div class="ha-lettertext @minwidth" id="ha-lettertext">
|
||||
@if (Model.MetaData.ParsedZHString != null) {
|
||||
<div class="ha-linecount ha-firstline">
|
||||
<span>@Html.Raw(Model.MetaData.ParsedZHString)</span>
|
||||
<div class="ha-linecount">
|
||||
@if (Model.MetaData.Startline == "1") {
|
||||
<div id="@Model.MetaData.Startpage-@Model.MetaData.Startline" class="ha-zhpage">S. @Html.Raw(Model.MetaData.Startpage)</div>
|
||||
} else {
|
||||
<div id="@Model.MetaData.Startpage-@Model.MetaData.Startline" class="ha-zhpage">@Html.Raw(Model.MetaData.Startpage)/@Html.Raw(Model.MetaData.Startline)</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@Html.Raw(@Model.ParsedText)
|
||||
@* It's not beautiful but it's a hack to keep the last comment within parent element boundaries: *@
|
||||
<br>
|
||||
@@ -99,11 +101,7 @@
|
||||
<tr class="ha-handentry">
|
||||
<td>
|
||||
@* Not beautiful, but here's whitespace in between otherwise *@
|
||||
<div class="ha-handfrom">@hand.Item1</div>@if (!String.IsNullOrEmpty(hand.Item2))
|
||||
{
|
||||
<div
|
||||
class="ha-handto">–@hand.Item2</div>
|
||||
}
|
||||
<div class="ha-handfrom">@hand.Item1</div>@if(!String.IsNullOrEmpty(hand.Item2)){<div class="ha-handto">–@hand.Item2</div>}
|
||||
</td>
|
||||
<td class="ha-handperson">@Html.Raw(@hand.Item3)</td>
|
||||
</tr>
|
||||
@@ -128,11 +126,7 @@
|
||||
{
|
||||
<tr>
|
||||
<td class="ha-editfromto">
|
||||
<div class="ha-editfrom">@edit.Item1</div>@if (!String.IsNullOrEmpty(edit.Item2))
|
||||
{
|
||||
<div
|
||||
class="ha-editto">–@edit.Item2</div>
|
||||
}
|
||||
<div class="ha-editfrom">@edit.Item1</div>@if(!String.IsNullOrEmpty(edit.Item2)){<div class="ha-editto">–@edit.Item2</div>}
|
||||
</td>
|
||||
<td class="ha-editreference">
|
||||
@if (!String.IsNullOrWhiteSpace(edit.Item3))
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
: "ha-bibel";
|
||||
}
|
||||
|
||||
<script defer src="/js/register.js"></script>
|
||||
<script defer src="/js/register.js" asp-append-version="true"></script>
|
||||
|
||||
<div class="ha-register">
|
||||
<div class="@commentClass">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
ViewData["showCredits"] = "false";
|
||||
ViewData["Mark"] = Model.ActiveSearch;
|
||||
}
|
||||
<script defer src="/js/search.js"></script>
|
||||
<script defer src="/js/search.js" asp-append-version="true"></script>
|
||||
|
||||
<div class="ha-search">
|
||||
<div class="ha-searchhead">
|
||||
|
||||
@@ -1 +1,361 @@
|
||||
Hello from Datenschutzerklaerung
|
||||
@await Html.PartialAsync("/Views/Shared/_HKBHKWChooser.cshtml")
|
||||
|
||||
<div class="ha-static">
|
||||
<div class="desktop:pr-72">
|
||||
<div class="mb-6" style='mso-element:para-border-div;border:solid windowtext 1.0pt;
|
||||
mso-border-alt:solid windowtext .5pt;padding:12.0pt 4.0pt 1.0pt 12.0pt'>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><b style='mso-bidi-font-weight:
|
||||
normal'>Telemedienanbieter im Sinne des § 5 TMG</b></p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Theodor Springmann
|
||||
Stiftung<br>
|
||||
Hirschgasse 2<br>
|
||||
69120 Heidelberg</p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Telefon +49 6221 436235<br>
|
||||
Email info@theodor-springmann-stiftung.de</p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><b>Rechtsform und Sitz</b></p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Die Theodor Springmann
|
||||
Stiftung ist eine rechtsfähige Stiftung bürgerlichen Rechts.<br>
|
||||
Sitz der Stiftung ist Heidelberg.</p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><b style='mso-bidi-font-weight:
|
||||
normal'>Vorstand der Theodor Springmann Stiftung</b></p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Dr. Randolf Straky
|
||||
(Präsident)</p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><b style='mso-bidi-font-weight:
|
||||
normal'>Geschäftsführung</b></p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Dr. Randolf Straky<br>
|
||||
Theodor Springmann Stiftung<br>
|
||||
Hirschgasse 2<br>
|
||||
69120 Heidelberg</p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><b style='mso-bidi-font-weight:
|
||||
normal'>Zuständige Aufsichtsbehörde</b></p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Regierungspräsidium
|
||||
Karlsruhe<br>
|
||||
Schlossplatz 1–3<br>
|
||||
76131 Karlsruhe</p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>https://rp.baden-wuerttemberg.de/Themen/Stiftung/Seiten/Ansprechpartner.aspx</p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><b style='mso-bidi-font-weight:
|
||||
normal'>Redaktionelle Verantwortung nach § 55 Abs. 2 RStV</b></p>
|
||||
|
||||
<p style='border:none;mso-border-alt:solid windowtext .5pt;
|
||||
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>Janina Reibold<br>
|
||||
Theodor Springmann Stiftung<br>
|
||||
Hirschgasse 2<br>
|
||||
69120 Heidelberg</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<h1>Datenschutzerklärung</h1>
|
||||
|
||||
<h2>Präambel</h2>
|
||||
|
||||
<p>Diese Datenschutzerklärung informiert Sie über die Art, den
|
||||
Umfang und den Zweck der personenbezogenen Daten, die im Rahmen dieser
|
||||
Onlinepräsenz von Ihnen erhoben und von uns verarbeitet werden, sowie die Ihnen
|
||||
zustehenden Rechte.</p>
|
||||
|
||||
<p>Personenbezogene Daten sind alle Informationen, die sich auf
|
||||
eine identifizierte oder identifizierbare natürliche Person beziehen. Als
|
||||
identifizierbar wird eine natürliche Person angesehen, die direkt oder indirekt
|
||||
identifiziert werden kann. Im Hinblick auf weitere verwendete Begrifflichkeiten
|
||||
verweisen wir auf die Definitionen der Datenschutz-Grundverordnung (DSGVO),
|
||||
Artikel 4.</p>
|
||||
|
||||
<p>Erfolgt die Verarbeitung personenbezogener Daten auf
|
||||
Grundlage des Art. 6 Abs. 1 <span class=SpellE>lit</span>. f DSGVO, so besteht
|
||||
unser berechtigtes Interesse in der Erfüllung unseres satzungsgemäßen
|
||||
Stiftungszwecks. Zweck der Stiftung ist es, in gemeinnütziger Weise
|
||||
Wissenschaft und Kunst, Völkerverständigung und Entwicklungshilfe zu fördern
|
||||
und zum menschlichen Selbstverständnis sowie zum Erkennen und Lindern strukturell
|
||||
bedingter Not und Bedürftigkeit von Menschen in aller Welt beizutragen.</p>
|
||||
|
||||
<h2>Verantwortlicher</h2>
|
||||
|
||||
<p>Verantwortlich im Sinne von Art. 4 Abs. 7 DSGVO für die
|
||||
Verarbeitung personenbezogener Daten ist:</p>
|
||||
|
||||
<p>Theodor Springmann Stiftung<br>
|
||||
Hirschgasse 2<br>
|
||||
69120 Heidelberg</p>
|
||||
|
||||
<p>www.theodor-springmann-stiftung.de<br>
|
||||
info@theodor-springmann-stiftung.de</p>
|
||||
|
||||
<h2>Automatisch bei Nutzung unserer Onlinepräsenz erfasste Daten</h2>
|
||||
|
||||
<p>Mit der Nutzung unserer Onlinepräsenz werden automatisch
|
||||
personenbezogene und allgemeine Daten vom Nutzer übermittelt und von uns
|
||||
erfasst und gespeichert. Die von uns erhobenen Daten umfassen:</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l2 level1 lfo1'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>die IP-Adresse des ans Internet angeschlossenen
|
||||
Netzwerkgeräts (Computer oder Router des Nutzers),</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l2 level1 lfo1'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>den verwendeten Browsertyp und dessen Version,</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l2 level1 lfo1'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>das verwendete Betriebssystem und dessen
|
||||
Version,</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l2 level1 lfo1'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>4)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>die Internetseite, die den Nutzer auf unsere
|
||||
Onlinepräsenz verweist (<span class=SpellE>Referrer</span>),</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l2 level1 lfo1'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>5)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>die Unterwebseiten, die der Nutzer auf unserer
|
||||
Onlinepräsenz aufruft,</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l2 level1 lfo1'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>6)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>das Datum und die Uhrzeit des Aufrufs,</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l2 level1 lfo1'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>7)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>den Internet-Service-Provider des Nutzers,</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l2 level1 lfo1'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>8)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>sonstige ähnliche Daten.</p>
|
||||
|
||||
<p>Die Theodor Springmann Stiftung zieht aus diesen Daten keine
|
||||
Rückschlüsse auf die betroffenen Nutzer. Diese Informationen werden benötigt,
|
||||
um</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l4 level1 lfo2'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>die vom Nutzer angeforderten Inhalte korrekt
|
||||
auszuliefern,</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo2'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>technische Probleme zu diagnostizieren, unsere
|
||||
IT-Systeme vor Angriffen zu schützen und im Falle eines Angriffs den
|
||||
zuständigen Behörden notwendige Informationen zur Strafverfolgung bereitstellen
|
||||
zu können,</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l4 level1 lfo2'><![if !supportLists]><span
|
||||
style='mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
|
||||
style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>die Inhalte und die Bedienung unserer
|
||||
Onlinepräsenz zu optimieren.</p>
|
||||
|
||||
<p>Die oben genannten Verarbeitungszwecke werden von Subsystemen
|
||||
erfüllt, die unabhängig von anderen Subsystemen ihre jeweils eigene Kopie der
|
||||
vom Nutzer erhobenen Daten erhalten, verarbeiten und löschen. Dabei werden den
|
||||
Subsystemen lediglich die zur Ausführung ihrer Aufgabe erforderlichen Daten übergeben.
|
||||
Alle Subsysteme befinden sich auf Servern der Theodor Springmann Stiftung.</p>
|
||||
|
||||
<h3>Auslieferung der vom Nutzer angeforderten Inhalte</h3>
|
||||
|
||||
<p>Mit der Anforderung einer Seite dieser Onlinepräsenz
|
||||
übermittelt der Browser des Nutzers automatisch die IP-Adresse seines ans
|
||||
Internet angeschlossenen Netzwerkgeräts (Computer oder Router) und andere Daten.
|
||||
Ohne diese IP-Adresse können die Inhalte dieser Online-Präsenz nicht an den
|
||||
Nutzer zurückgesendet werden. Daher ist die Speicherung und Verarbeitung der
|
||||
IP-Adresse für den Betrieb dieser Onlinepräsenz notwendig. Ebenfalls
|
||||
übermittelte Daten über den verwendeten Browser usw. werden gegebenenfalls
|
||||
verwendet, um die Anzeige der Webseite an das Anzeigegerät oder den Browser
|
||||
anzupassen. Die zum Zwecke der Auslieferung von Inhalten gesammelten Daten
|
||||
werden direkt nach Übertragung der Inhalte vom Subsystem gelöscht. Die
|
||||
Verarbeitung dieser Daten erfolgt auf der Grundlage eines berechtigten
|
||||
Interesses nach Art. 6 Abs. 1 <span class=SpellE>lit</span>. f DSGVO.</p>
|
||||
|
||||
<h3>Diagnose und Schutz der IT-Systeme</h3>
|
||||
|
||||
<p>Daneben erfolgt eine Speicherung der oben genannten Daten in
|
||||
Diagnose-Protokollen. Die Protokollierung ist notwendig, um etwaige technische
|
||||
Probleme analysieren oder Angriffe erkennen und abwehren zu können. Bei
|
||||
Angriffen auf unsere IT-Systeme übergeben wir die Diagnose-Protokolle den
|
||||
zuständigen Strafverfolgungsbehörden. Die Diagnose-Protokolle werden nach 14
|
||||
Tagen automatisch gelöscht. Die Speicherung und Verarbeitung dieser Daten
|
||||
erfolgt auf Grundlage eines berechtigten Interesses nach Art. 6 Abs. 1 <span
|
||||
class=SpellE>lit</span>. f DSGVO.</p>
|
||||
|
||||
<h3>Analyse zur Optimierung der Inhalte und der Bedienung</h3>
|
||||
|
||||
<p>Die oben genannten Daten werden von einem Webanalyseprogramm
|
||||
verarbeitet. Dabei werden die Daten pseudonymisiert und aggregiert, so dass sie
|
||||
einzelnen Nutzern nicht mehr zugeordnet werden können. Das Analyseprogramm wird
|
||||
auf einem von uns betriebenen Server ausgeführt, daher werden keine Daten an
|
||||
Dritte übermittelt. Der Zweck dieser Erfassung besteht in der Analyse der
|
||||
Nutzung unseres Angebots, durch die eine Verbesserung unserer Webseiten, der
|
||||
Inhalte und der Bedienung ermöglicht wird. Das Analyseprogramm speichert die
|
||||
anonymisierten Daten ohne zeitliche Begrenzung. Die Verarbeitung dieser Daten
|
||||
erfolgt auf der Grundlage eines berechtigten Interesses (Art. 6 Abs. 1 <span
|
||||
class=SpellE>lit</span>. f DSGVO).</p>
|
||||
|
||||
<h2>Weitere auf der Onlinepräsenz erfasste Daten</h2>
|
||||
|
||||
<p>Neben den oben aufgeführten Daten können weitere Daten von
|
||||
uns erfasst, gespeichert und verarbeitet werden.</p>
|
||||
|
||||
<h3>Sonstige Daten</h3>
|
||||
|
||||
<p>Sämtliche Daten, die mit dem Aufruf einer Webseite von
|
||||
unserer Onlinepräsenz an den Nutzer übertragen werden, werden von unseren
|
||||
Servern bereitgestellt. Wir nutzen kein von Dritten bereitgestelltes Content <span
|
||||
class=SpellE>Delivery</span> Network (CDN), um Teile unserer Onlinepräsenz (z.
|
||||
B. <span class=SpellE>Javascript</span>- oder <span class=SpellE>Webfont</span>-Dateien)
|
||||
von dort an den Nutzer zu übermitteln. Wir verlinken auch nicht in soziale
|
||||
Netzwerke. Insofern können von Dritten keine personenbezogenen Daten über
|
||||
unsere Onlinepräsenz erhoben werden, es sei denn, die Datenerfassung durch
|
||||
Dritte basiert auf einer gesetzlichen Grundlage und/oder wurde behördlich
|
||||
angeordnet.</p>
|
||||
|
||||
<p>In unseren Inhalten können sich jedoch Hyperlinks („Links“)
|
||||
auf fremde Onlineangebote befinden. Mit dem Anklicken eines solchen Links
|
||||
verlässt der Nutzer unsere Onlinepräsenz und damit den Geltungsbereich dieser
|
||||
Datenschutzerklärung.</p>
|
||||
|
||||
<h2>Erhobene Daten bei Kontakt</h2>
|
||||
|
||||
<p>Unsere Onlinepräsenz hält unter anderem aufgrund gesetzlicher
|
||||
Vorgaben verschiedene Möglichkeiten bereit, mit uns in Kontakt zu treten. Sofern
|
||||
eine betroffene Person Kontakt zu uns aufnimmt, werden die von der betroffenen
|
||||
Person übermittelten personenbezogenen Daten automatisch gespeichert (z. B.
|
||||
Telefonnummer, E-Mail-Adresse). Diese Angaben werden zum Zwecke der Bearbeitung
|
||||
sowie für sich möglicherweise anschließende Kommunikation von uns gespeichert. Sobald
|
||||
die Speicherung dieser Daten nicht mehr erforderlich ist und keine gesetzlichen
|
||||
Archivierungsgründe vorliegen, werden die Daten gelöscht. Die Erforderlichkeit
|
||||
wird alle zwei Jahre überprüft. Es erfolgt keine Weitergabe dieser
|
||||
personenbezogenen Daten an Dritte.</p>
|
||||
|
||||
<p>Von betroffenen Personen übermittelte Informationen zur
|
||||
Bearbeitung einer Kontaktanfrage werden gemäß Art. 6 Abs. 1 <span class=SpellE>lit</span>.
|
||||
b (vertragliche und vorvertragliche Beziehungen) oder <span class=SpellE>lit</span>.
|
||||
f (andere Anfragen) der DSGVO verarbeitet.</p>
|
||||
|
||||
<h2>Speicherung und Löschung von personenbezogenen Daten</h2>
|
||||
|
||||
<p>Personenbezogene Daten werden von uns für die Dauer der
|
||||
entsprechenden gesetzlichen Aufbewahrungspflichten oder für den zur
|
||||
Vertragserfüllung erforderlichen Zeitraum gespeichert. Liegen solche Gründe
|
||||
nicht vor, werden personenbezogene Daten für den Zeitraum, der zur Erreichung
|
||||
des Speicherzwecks erforderlich ist, verarbeitet und gespeichert, sofern in
|
||||
dieser Datenschutzerklärung nicht ausdrücklich anderes angegeben ist. Sobald die
|
||||
Daten für ihre Zweckbestimmung nicht mehr erforderlich sind oder der
|
||||
Speicherungszweck entfällt, werden sie nach Maßgabe der gesetzlichen Vorschriften
|
||||
gelöscht oder in ihrer Verarbeitung eingeschränkt.</p>
|
||||
|
||||
<p>Sollten die Daten nicht gelöscht werden dürfen, weil sie
|
||||
einer gesetzlichen Aufbewahrungspflicht unterliegen, wird deren Verarbeitung durch
|
||||
Archivierung eingeschränkt. Die Daten werden erst nach Ablauf der gesetzlich vorgeschriebenen
|
||||
Speicherfrist gelöscht.</p>
|
||||
|
||||
<p>Alle sechs Monate wird routinemäßig geprüft, ob der Speicherungszweck
|
||||
weggefallen bzw. die Aufbewahrungspflicht abgelaufen ist. Anschließend wird gegebenenfalls
|
||||
die Löschung durchgeführt.</p>
|
||||
|
||||
<h2>Rechte der betroffenen Personen</h2>
|
||||
|
||||
<p>Unter den angegebenen Kontaktdaten können betroffene
|
||||
Personen jederzeit nachgenannte Rechte ausüben. Eine betroffene Person kann von
|
||||
uns verlangen, dass</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l0 level1 lfo4'><![if !supportLists]><span
|
||||
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
|
||||
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>Auskunft über sie betreffende, bei uns
|
||||
gespeicherte Daten und deren Verarbeitung erteilt wird (Art. 15 DSGVO),</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l0 level1 lfo4'><![if !supportLists]><span
|
||||
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
|
||||
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>sie betreffende unrichtige personenbezogene
|
||||
Daten berichtigt werden (Art. 16 DSGVO),</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l0 level1 lfo4'><![if !supportLists]><span
|
||||
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
|
||||
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>sie betreffende, bei uns gespeicherte
|
||||
personenbezogene Daten gelöscht werden (Art. 17 DSGVO),</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l0 level1 lfo4'><![if !supportLists]><span
|
||||
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
|
||||
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>die Verarbeitung sie betreffender, bei uns gespeicherter
|
||||
Daten, die aufgrund gesetzlicher Vorschriften oder anderer Gründe nicht
|
||||
gelöscht werden dürfen, eingeschränkt wird (Art. 18 DSGVO),</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l0 level1 lfo4'><![if !supportLists]><span
|
||||
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
|
||||
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>sie betreffende Daten übertragbar sind, soweit
|
||||
sie in die Datenverarbeitung eingewilligt oder einen Vertrag mit uns
|
||||
geschlossen hat (Art. 20 DSGVO)</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l0 level1 lfo4'><![if !supportLists]><span
|
||||
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
|
||||
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>sie betreffende Daten nach einem Widerspruch
|
||||
nicht weiter von uns verarbeitet werden (Art. 21 DSGVO),</p>
|
||||
|
||||
<p>Eine betroffene Person hat ferner jederzeit das Recht,</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l1 level1 lfo5'><![if !supportLists]><span
|
||||
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
|
||||
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>eine erteilte Einwilligung in die Erhebung und
|
||||
Verarbeitung personenbezogener Daten nach Art. 6 Abs. 1 <span class=SpellE>lit</span>.
|
||||
a oder Art. 9 Abs. 2 lit. a DSGVO für die Zukunft zu widerrufen (Art. 7 Abs. 3
|
||||
DSGVO),</p>
|
||||
|
||||
<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l1 level1 lfo5'><![if !supportLists]><span
|
||||
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
|
||||
Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||||
</span></span></span><![endif]>sich mit einer Beschwerde an eine
|
||||
Aufsichtsbehörde zu wenden (Art. 15 Abs. 1 <span class=SpellE>lit</span>. f
|
||||
DSGVO). Eine Liste der Aufsichtsbehörden lässt sich unter <a href="https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html" target="blank">https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html</a></span>
|
||||
abrufen.</p>
|
||||
|
||||
<h2>Änderung unserer Datenschutzerklärung</h2>
|
||||
|
||||
<p>Wir behalten uns vor, diese Datenschutzerklärung ohne vorherige
|
||||
Ankündigung an neue rechtliche oder technische Sachverhalte sowie an Änderungen
|
||||
unserer Leistungen oder Prozesse anzupassen. Es gilt die jeweils auf der
|
||||
Onlinepräsenz veröffentlichte Version der Datenschutzerklärung.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -3,6 +3,8 @@
|
||||
ViewData["SEODescription"] = "Johann Georg Hamann: Kommentierte Briefausgabe. Durchsuchbare Online-Ausgabe der Briefe von und an Johann Georg Hamann. Kontakt.";
|
||||
}
|
||||
|
||||
@await Html.PartialAsync("/Views/Shared/_HKBHKWChooser.cshtml")
|
||||
|
||||
<div class="ha-static">
|
||||
<div class="ha-static-right-margin">
|
||||
<h1>Kontakt</h1>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@model (List<FileModel>? files, string title, string aspcontrolller, string aspaction, string id, string downloadprefix, bool multipleallowed);
|
||||
|
||||
|
||||
<script defer src="/js/filelistform.js"></script>
|
||||
<script defer src="/js/filelistform.js" asp-append-version="true"></script>
|
||||
|
||||
<fieldset class="ha-filelistfieldset">
|
||||
<legend class="ha-filelistlegend">@Model.title</legend>
|
||||
|
||||
18
HaWeb/Views/Shared/_HKBHKWChooser.cshtml
Normal file
18
HaWeb/Views/Shared/_HKBHKWChooser.cshtml
Normal file
@@ -0,0 +1,18 @@
|
||||
<div class="md:flex md:flex-row md:items-stretch md:gap-x-10 mb-4 desktop:mb-8">
|
||||
<div class="bg-slate-50 dark:bg-slate-900 border border-solid border-gray-300 px-9 py-6 mb-6 md:mb-0 md:basis-1/2 md:grow-1 md:shrink-1">
|
||||
<a asp-controller="Index" asp-action="Index" class="no-underline hover:underline">
|
||||
<div class="flex flex-row gap-x-3 pb-1">
|
||||
<img src="/img/HKB.png" class="w-10 h-10 md:w-16 md:h-16 mr-2 border dark:border-none border-gray-300 shadow-sm" alt="HKB-Logo" />
|
||||
<h2 class="!mt-0 !mb-0 text-xl desktop:text-2xl">Kommentierte Briefausgabe →</h2>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg-slate-50 dark:bg-slate-900 border border-solid border-gray-300 px-9 py-6 mb-10 md:mb-0 md:basis-1/2 md:grow-1 md:shrink-1">
|
||||
<a asp-controller="HKW" asp-action="Index" class="no-underline hover:underline">
|
||||
<div class="flex flex-row gap-x-3 pb-1">
|
||||
<img src="/img/HKW.png" class="w-10 h-10 md:w-16 md:h-16 mr-2 border dark:border-none border-gray-300 shadow-sm" alt="HKW-Logo" />
|
||||
<h2 class="!mt-0 !mb-0 text-xl desktop:text-2xl">Historisch-kritische und kommentierte Edition ausgewählter Werke →</h2>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -12,7 +12,7 @@
|
||||
@* This uses Razor Syntax so it is inlined into this razor file *@
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", (event) => {
|
||||
var elements = document.querySelectorAll(".ha-register-body, .ha-searchresultpreview, .ha-comment");
|
||||
var elements = document.querySelectorAll(".ha-register-body, .ha-searchresultpreview, .ha-commenthead, .ha-entry");
|
||||
if (elements.length < 1000) {
|
||||
var instancesearch = new Mark(elements);
|
||||
instancesearch.mark('@ViewData["Mark"]', { "element": "span", "className": "ha-found", "acrossElements": true, "separateWordSearch": false, "exclude": [".ha-searchresultcommentpill", ".ha-letlink", ".ha-letlinks", ".ha-hkb"] });
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@model UploadViewModel;
|
||||
<script defer src="/js/publishform.js"></script>
|
||||
<script defer src="/js/publishform.js" asp-append-version="true"></script>
|
||||
|
||||
@if (Model.UsedFiles != null && Model.UsedFiles.Any()) {
|
||||
<div class="ha-publishfilelisttitle">Aktuell geladene Dateien</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@model UploadViewModel;
|
||||
|
||||
<script defer src="/js/uploadform.js"></script>
|
||||
<script defer src="/js/uploadform.js" asp-append-version="true"></script>
|
||||
|
||||
<form class="ha-uploadform" id="uploadForm" asp-controller="API" asp-action="Upload" method="post" enctype="multipart/form-data">
|
||||
<label class="ha-uploadfilelabel" id="dropzone">
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user