FInalized Menu. Added first static Page...

This commit is contained in:
schnulller
2022-05-16 00:46:08 +02:00
parent c0ff6cea2d
commit d3d3d39bd0
18 changed files with 421 additions and 103 deletions

View File

@@ -0,0 +1,20 @@
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using HaWeb.Models;
namespace HaWeb.Controllers;
public class Briefecontroller : Controller
{
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
[Route("Briefe")]
[Route("Briefe/{id?}")]
public IActionResult Index(int? id) {
return View();
}
}

View File

@@ -5,7 +5,6 @@ using HaWeb.Models;
namespace HaWeb.Controllers;
[Route("Edition/[action]")]
[Route("Edition/[action]/Index")]
public class EditionController : Controller
{
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
@@ -37,4 +36,9 @@ public class EditionController : Controller
{
return View();
}
public IActionResult Datenschutzerklaerung()
{
return View();
}
}

View File

@@ -0,0 +1,21 @@
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using HaWeb.Models;
namespace HaWeb.Controllers;
public class HomeController : Controller
{
[Route("")]
public IActionResult Index()
{
return Redirect("/Suche");
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}

View File

@@ -0,0 +1,33 @@
// Handles 304 redirects to links of the old page, so permalinks stay active.\
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using HaWeb.Models;
namespace HaWeb.Controllers;
public class LegacyContoller : Controller
{
[Route("Supplementa/")]
[Route("Supplementa/Register")]
[Route("Supplementa/Register/{id?}")]
public IActionResult SupplementaRegister(string? id) {
if (id != null)
return RedirectPermanent("/Register/Register/" + id);
return RedirectPermanent("/Register/Register");
}
[Route("Supplementa/Bibelstellen")]
public IActionResult SupplementaBibelstellen(string? id) {
if (id != null)
return RedirectPermanent("/Register/Bibelstellen/" + id);
return RedirectPermanent("/Register/Bibelstellen");
}
[Route("Supplementa/Forschung")]
public IActionResult SupplementaForschung(string? id) {
if (id != null)
return RedirectPermanent("/Register/Forschung/" + id);
return RedirectPermanent("/Register/Forschung");
}
}

View File

@@ -0,0 +1,29 @@
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using HaWeb.Models;
namespace HaWeb.Controllers;
[Route("Register/[action]/{id?}")]
public class RegisterController : Controller
{
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
public IActionResult Register(string? id)
{
return View("Index");
}
public IActionResult Bibelstellen(string? id)
{
return View("Index");
}
public IActionResult Forschung(string? id)
{
return View("Index");
}
}

View File

@@ -4,12 +4,10 @@ using HaWeb.Models;
namespace HaWeb.Controllers;
public class SearchController : Controller
public class SucheController : Controller
{
[Route("")]
[Route("Home")]
[Route("Home/Index")]
[Route("Suche")]
public IActionResult Index()
{
return View();

View File

@@ -1,31 +0,0 @@
// Finds the correct link adress to any Page, Letter, or Comment, and sets Links as active if neccessary
using Microsoft.AspNetCore.Razor.TagHelpers;
using System.Threading.Tasks;
namespace AuthoringTagHelpers.TagHelpers
{
public class MenuLinkHelper : TagHelper
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "a"; // Replaces <email> with <a> tag
}
}
public class LetterLinkHelper : TagHelper
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "a"; // Replaces <email> with <a> tag
}
}
public class CommentLinkHelper : TagHelper
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "a"; // Replaces <email> with <a> tag
}
}
}

View File

View File

@@ -1,6 +1,41 @@
@{
ViewData["Title"] = "Kontakt";
ViewData["SEODescription"] = "Johann Georg Hamann: Kommentierte Briefausgabe, Hg. v. Leonard Keidel und Janina Reibold. Durchsuchbare Online-Ausgabe der Briefe von und an Johann Georg Hamann.";
ViewData["SEODescription"] = "Johann Georg Hamann: Kommentierte Briefausgabe. Durchsuchbare Online-Ausgabe der Briefe von und an Johann Georg Hamann. Kontakt.";
}
Hello!
<div class="ha-static">
<h1>Kontakt</h1>
<table class="">
<tr>
<td>Theodor Springmann Stiftung <br>
Dr. Janina Reibold <br>
Hirschgasse 2 <br>
69120 Heidelberg <br>
Telefon: 06221 7259277 <br>
E-Mail: <a class="Emailhref" href="mailto:post@hamann-ausgabe">post@hamann-ausgabe</a></td>
<td>Germanistisches Seminar der Universität Heidelberg <br>
Dr. Janina Reibold <br>
Hauptstraße 207209 <br>
69117 Heidelberg <br>
Telefon: 06221 543254 <br>
<a class="ExternerLink" href="https://www.gs.uni-heidelberg.de/personen/reibold.html" target="blank">www.gs.uni-heidelberg.de/personen/reibold.html</a></td>
</tr>
</table>
<h3>Anmeldung zur regelmäßigen Mitteilung über den Stand der kommentierten Hamann-Ausgabe</h3>
<p>Wenn Sie über den Verlauf des Projekts informiert werden möchten, melden Sie sich bitte mit einer E-Mail an <a class="Emailhref" href="mailto:post@hamann-ausgabe.de">post@hamann-ausgabe.de</a> zu unserem Newsletter an. Sie erhalten dann Mitteilung über die Termine der online-Veröffentlichung der Briefe und des Kommentars sowie Hinweise zum Erscheinen der kommentierten Werkbände im Meiner Verlag.</p>
<h3>Ihre Mitarbeit am Online-Kommentar</h3>
<p>Die Online-Publikation der Briefe und des Stellenkommentars ermöglicht eine ständige Revision desselben. Wir möchten Sie einladen, mit Ergänzungen, Korrekturen, Vorschlägen zu dessen Verbesserung beizutragen. Senden Sie uns diese bitte an <a class="Emailhref" href="mailto:post@hamann-ausgabe.de">post@hamann-ausgabe.de</a>. Nach unserer Prüfung fügen wir diese in den Online-Kommentar ein (auf Wunsch auch mit Namensnennung des Beiträgers).</p>
<h3>Zitierempfehlung</h3>
Johann Georg Hamann: <span class="kursiv">Kommentierte Briefausgabe.</span> Hg. von Leonard Keidel und Janina Reibold, auf Grundlage der Vorarbeiten Arthur Henkels, unter Mitarbeit von Gregor Babelotzky, Konrad Bucher, Christian Großmann, Carl Friedrich Haak, Luca Klopfer, Johannes Knüchel, Isabel Langkabel und Simon Martens (Heidelberg 2020&#x202f;ff.). URL: www.hamann-ausgabe.de [= HKB]<br/><br/>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1 @@
Hello from Register!

View File

@@ -0,0 +1,3 @@
<div class="ha-footer ">
<a href="/Edition/Kontakt">Kontakt</a> · <a href="/Edition/Datenschutzerklaerung">Datenschutzerklärung</a>
</div>

View File

@@ -18,17 +18,17 @@
</head>
<body class="w-100 h-100">
<body class="w-full h-full">
@await Html.PartialAsync("/Views/Shared/_Menu.cshtml")
<div class="w-full desktop:max-w-screen-desktop mx-auto">
<main role="main" class="pb-3">
<main role="main" class="pb-3 w-full desktop:max-w-screen-desktop mx-auto">
@RenderBody()
</main>
</div>
<script src="~/js/site.js" asp-append-version="true"></script>
@await RenderSectionAsync("Scripts", required: false)
@await Html.PartialAsync("/Views/Shared/_Footer.cshtml")
</body>
</html>

View File

@@ -1,3 +1,6 @@
@{
var showCredits = ViewData["showCredits"] == "true" ? true : false;
}
<header class="sticky w-100 font-serif mb-6">
<nav class="flex flex-row w-100 bg-slate-50 border-t-[5px] border-gray-300 py-3 px-3 desktop:px-8 flex-wrap">
<a href="/" class="text-xl xl:text-3xl grow-0 shrink-0 text-black hover:text-black ">
@@ -27,36 +30,42 @@
</button>
</div>
<div class="ha-topnav " id="ha-topnav">
<a class="" href="/">
<a href="/Suche">
Suche & Briefauswahl
</a>
<a class="" href="/Briefe/1">
<a href="/Briefe">
Briefansicht
</a>
<div class="ha-topnav-dropdown">
<a class="cursor-default ha-menu-arrowsymbol">
<a href="/Register" class="cursor-default ha-menu-arrowsymbol pointer-events-none">
Register
</a>
<div class="ha-topnav-dropdown-content">
<a class="" href="/Register/Register">Register</a>
<a class="" href="/Register/Bibelstellenregister">Bibelstellenregister</a>
<a class="" href="/Register/Forschungsbibliographie">Forschungsbibliographie</a>
<div class="ha-topnav-dropdown-content" >
<a href="/Register/Register" class="">Register</a>
<a href="/Register/Bibelstellen" class="">Bibelstellenregister</a>
<a href="/Register/Forschung" class="">Forschungsbibliographie</a>
</div>
</div>
<div class="ha-topnav-dropdown">
<a class="cursor-default ha-menu-arrowsymbol">
<a href="/Edition" class="cursor-default ha-menu-arrowsymbol pointer-events-none !mr-0" >
Edition
</a>
<div class="ha-topnav-dropdown-content">
<a class="" href="/Edition/Kontakt">Kontakt</a>
<a class="" href="/Edition/Mitwirkende">Mitwirkende</a>
<a class="" href="/Edition/Richtlinien">Editionsrichtlinien</a>
<a class="" href="/Edition/Editionsgeschichte">Editionsgeschichte</a>
<a class="" href="/Edition/Werkausgabe">Werkausgabe</a>
<div class="ha-topnav-dropdown-content !mr-0">
<a href="/Edition/Kontakt" class="">Kontakt</a>
<a href="/Edition/Mitwirkende" class="">Mitwirkende</a>
<a href="/Edition/Richtlinien" class="">Editionsrichtlinien</a>
<a href="/Edition/Editionsgeschichte" class="">Editionsgeschichte</a>
<a href="/Edition/Werkausgabe" class="">Werkausgabe</a>
</div>
</div>
</div>
</nav>
@if(showCredits)
{
<div class="desktop:block hidden w-100 bg-slate-50 pb-3 px-3 desktop:px-8 overflow-hidden whitespace-nowrap text-ellipsis">
<a href="/Edition/Mitwirkende">Hg. v. Leonard Keidel und Janina Reibold, auf Grundlage der Vorarbeiten Arthur Henkels, unter Mitarbeit von G. Babelotzky, K. Bucher, Ch. Großmann, C.F. Haak, L. Klopfer, J. Knüchel, I. Langkabel und S. Martens (Heidelberg 2020ff.)</a>
</div>
}
</header>
<script>
@@ -81,21 +90,19 @@
}
const _markactive = function (element) {
// Marks links as active
// Marks links as active which target URL starts with the current URL
var all_links = element.getElementsByTagName("a"),
i = 0, len = all_links.length,
full_path = location.href.split('#')[0]; //Ignore hashes
full_path = location.href.split('#')[0].toLowerCase(); //Ignore hashes
for (; i < len; i++) {
if (all_links[i].href.split("#")[0] == full_path) {
if (full_path.startsWith(all_links[i].href.toLowerCase())) {
console.log(all_links[i].href.split("#")[0]);
all_links[i].className += " active";
}
}
}
document.getElementById("openmenubutton").addEventListener('click', _openmenu);
document.getElementById("closemenubutton").addEventListener('click', _closemenu);
_markactive(document.getElementById("ha-topnav"));
</script>

View File

@@ -1,4 +1,5 @@
@{
ViewData["Title"] = "Briefauswahl & Suche";
ViewData["SEODescription"] = "Johann Georg Hamann: Kommentierte Briefausgabe, Hg. v. Leonard Keidel und Janina Reibold. Durchsuchbare Online-Ausgabe der Briefe von und an Johann Georg Hamann.";
ViewData["showCredits"] = "true";
}

View File

@@ -1,5 +1,3 @@
@using HaWeb
@using HaWeb.Models
@using AuthoringTagHelpers
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, AuthoringTagHelpers

View File

@@ -475,7 +475,7 @@ body {
line-height: 1.5rem;
}
@media (min-width: 1190px) {
@media (min-width: 1440px) {
body {
font-size: 1.125rem;
line-height: 1.75rem;
@@ -515,7 +515,7 @@ body {
}
.ha-topnav a {
margin-right: 1.25rem;
margin-right: 1.5rem;
display: none;
--tw-text-opacity: 1;
color: rgb(55 65 81 / var(--tw-text-opacity));
@@ -534,10 +534,14 @@ body {
@media (min-width: 1680px) {
.ha-topnav a {
margin-right: 1.5rem;
margin-right: 1.75rem;
}
}
.ha-topnav a:last-child {
margin-right: 0px;
}
.ha-topnav-dropdown {
display: none;
}
@@ -559,7 +563,7 @@ body {
margin-right: 1.5rem;
display: none;
min-width: 130px;
border-bottom-width: 2px;
border-bottom-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(156 163 175 / var(--tw-border-opacity));
--tw-bg-opacity: 1;
@@ -594,26 +598,136 @@ body {
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}
/* TODO INLINE .ha-container {
@apply max-w-[1280px]
.ha-footer {
margin-left: auto;
margin-right: auto;
margin-top: 1rem;
height: 100%;
width: 100%;
--tw-bg-opacity: 1;
background-color: rgb(248 250 252 / var(--tw-bg-opacity));
padding: 0.5rem;
text-align: right;
font-family: Libertine, serif;
font-size: 1.125rem;
line-height: 1.75rem;
}
@media (min-width: 1024px) {
.ha-footer {
padding: 1rem;
}
}
@media (min-width: 1190px) {
.ha-footer {
max-width: 1190px;
padding: 2rem;
}
}
.ha-footer a {
-webkit-text-decoration-line: underline;
text-decoration-line: underline;
-webkit-text-decoration-style: dotted;
text-decoration-style: dotted;
}
.ha-footer a:hover {
-webkit-text-decoration-line: underline;
text-decoration-line: underline;
-webkit-text-decoration-style: solid;
text-decoration-style: solid;
}
/* TODO INLINE
.ha-maincolumn {
@apply bg-slate-50 mx-auto p-2 md:p-4 desktop:px-16 desktop:py-12 xl:pr-80 text-lg font-serif
}
p {
@apply my-3
}
h1 {
@apply font-bold text-xl 2xl:font-normal 2xl:text-4xl
}
h2 {
@apply text-lg 2xl:text-2xl
} */
.ha-static {
width: 100%;
--tw-bg-opacity: 1;
background-color: rgb(248 250 252 / var(--tw-bg-opacity));
padding-top: 3rem;
padding-bottom: 3rem;
padding-left: 4rem;
padding-right: 4rem;
font-family: Libertine, serif;
-webkit-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
}
@media (min-width: 1024px) {
.ha-static {
padding-right: 20rem;
}
}
.ha-static h1 {
margin-bottom: 1rem;
font-size: 1.25rem;
line-height: 1.75rem;
font-weight: 700;
}
@media (min-width: 1680px) {
.ha-static h1 {
font-size: 2.25rem;
line-height: 2.5rem;
font-weight: 400;
}
}
.ha-static h2 {
margin-bottom: 0.75rem;
margin-top: 1rem;
font-size: 1.125rem;
line-height: 1.75rem;
}
@media (min-width: 1680px) {
.ha-static h2 {
font-size: 1.5rem;
line-height: 2rem;
}
}
.ha-static h3 {
margin-bottom: 0.75rem;
margin-top: 1rem;
font-style: italic;
--tw-text-opacity: 1;
color: rgb(216 0 0 / var(--tw-text-opacity));
}
.ha-static table {
margin-top: 0.75rem;
margin-bottom: 0.75rem;
width: 100%;
}
.ha-static p {
margin-top: 0.75rem;
margin-bottom: 0.75rem;
}
.ha-static a {
-webkit-text-decoration-line: underline;
text-decoration-line: underline;
-webkit-text-decoration-style: dotted;
text-decoration-style: dotted;
}
.ha-static a:hover {
-webkit-text-decoration-line: underline;
text-decoration-line: underline;
-webkit-text-decoration-style: solid;
text-decoration-style: solid;
}
/* Classes from .NET */
/* Classes from Javascript */
@@ -742,6 +856,10 @@ body {
}
}
.pointer-events-none {
pointer-events: none;
}
.static {
position: static;
}
@@ -764,6 +882,10 @@ body {
margin-right: 0.5rem;
}
.\!mr-0 {
margin-right: 0px !important;
}
.inline-block {
display: inline-block;
}
@@ -772,10 +894,18 @@ body {
display: flex;
}
.table {
display: table;
}
.hidden {
display: none;
}
.h-full {
height: 100%;
}
.h-8 {
height: 2rem;
}
@@ -816,6 +946,18 @@ body {
flex-wrap: wrap;
}
.overflow-hidden {
overflow: hidden;
}
.text-ellipsis {
text-overflow: ellipsis;
}
.whitespace-nowrap {
white-space: nowrap;
}
.border {
border-width: 1px;
}
@@ -998,6 +1140,11 @@ body {
font-style: normal;
}
* {
-webkit-text-decoration-skip-ink: all;
text-decoration-skip-ink: all;
}
body {
background-image:url('../img/subtlenet2.png');
background-repeat:repeat;
@@ -1007,6 +1154,12 @@ body {
list-style-type:circle;
} */
.hyphenate {
-webkit-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
}
.ha-menu-arrowsymbol::after {
display: inline-block;
margin-left: 0.2em;
@@ -1060,6 +1213,10 @@ body {
}
@media (min-width: 1190px) {
.desktop\:block {
display: block;
}
.desktop\:hidden {
display: none;
}

View File

@@ -81,7 +81,7 @@
@layer components {
body {
@apply text-base desktop:text-lg w-full h-full
@apply text-base xl:text-lg w-full h-full
}
.ha-topnav {
@@ -89,7 +89,11 @@
}
.ha-topnav a {
@apply hidden text-gray-700 hover:text-gray-900 desktop:inline-block mr-5 2xl:mr-6
@apply hidden text-gray-700 hover:text-gray-900 desktop:inline-block mr-6 2xl:mr-7
}
.ha-topnav a:last-child {
@apply mr-0
}
.ha-topnav-dropdown {
@@ -101,7 +105,7 @@
}
.ha-topnav-dropdown .ha-topnav-dropdown-content {
@apply hidden mr-6 pt-1 right-0 desktop:absolute bg-slate-50 min-w-[130px] shadow-md border-gray-400 border-b-2 z-50
@apply hidden mr-6 pt-1 right-0 desktop:absolute bg-slate-50 min-w-[130px] shadow-md border-gray-400 border-b z-50
}
.ha-topnav-dropdown .ha-topnav-dropdown-content a {
@@ -116,25 +120,54 @@
@apply bg-gray-100
}
/* TODO INLINE .ha-container {
@apply max-w-[1280px]
.ha-footer {
@apply bg-slate-50 w-full h-full desktop:max-w-screen-desktop mx-auto mt-4 p-2 md:p-4 desktop:p-8 text-lg font-serif text-right
}
.ha-footer a {
@apply underline decoration-dotted
}
.ha-footer a:hover {
@apply underline decoration-solid
}
/* TODO INLINE
.ha-maincolumn {
@apply bg-slate-50 mx-auto p-2 md:p-4 desktop:px-16 desktop:py-12 xl:pr-80 text-lg font-serif
} */
.ha-static {
@apply w-full bg-slate-50 py-12 px-16 hyphenate md:pr-80 font-serif
}
.ha-static h1 {
@apply font-bold text-xl 2xl:font-normal 2xl:text-4xl mb-4
}
p {
.ha-static h2 {
@apply my-3 mt-4 text-lg 2xl:text-2xl
}
.ha-static h3 {
@apply my-3 mt-4 text-hamannHighlight italic
}
.ha-static table {
@apply my-3 w-full
}
.ha-static p {
@apply my-3
}
h1 {
@apply font-bold text-xl 2xl:font-normal 2xl:text-4xl
.ha-static a {
@apply underline decoration-dotted
}
h2 {
@apply text-lg 2xl:text-2xl
} */
.ha-static a:hover {
@apply underline decoration-solid
}
/* Classes from .NET */
@@ -175,6 +208,11 @@
.ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown .ha-topnav-dropdown-content a {
@apply py-1 desktop:py-2
}
}
* {
text-decoration-skip-ink: all;
}
body {
@@ -186,6 +224,10 @@ body {
list-style-type:circle;
} */
.hyphenate {
hyphens: auto;
}
.ha-menu-arrowsymbol::after {
display: inline-block;
margin-left: 0.2em;