mirror of
				https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
				synced 2025-11-03 19:55:32 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			356 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			356 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@page
 | 
						|
@inject ILibrary lib
 | 
						|
@using System.Collections.Generic
 | 
						|
@using System.Linq;
 | 
						|
@using HaDocument.Comparers
 | 
						|
@model IndexModel
 | 
						|
 | 
						|
@functions{
 | 
						|
    string setAct(string s) {
 | 
						|
        if (Model.person == s)
 | 
						|
            return "is-active";
 | 
						|
        else
 | 
						|
            return "";
 | 
						|
    }
 | 
						|
 | 
						|
    string setActPg(string s) {
 | 
						|
        if (Model.selpage == s)
 | 
						|
            return "is-active";
 | 
						|
        else
 | 
						|
            return "";
 | 
						|
    }
 | 
						|
 | 
						|
    string Position() {
 | 
						|
        string ret = "";
 | 
						|
        if (Model.cleanpage != 0)
 | 
						|
            ret += " hasAncestors";
 | 
						|
        if (Model.cleanpage == Model.Result.Count()-1)
 | 
						|
            ret += " isLast";
 | 
						|
        return ret;
 | 
						|
    }
 | 
						|
 | 
						|
    string generateTTMsg(Meta m) {
 | 
						|
         if (m.isProofread == OptionalBool.False && m.hasOriginal == OptionalBool.False) {
 | 
						|
             return "Original verschollen. Der Brieftext wurde noch nicht textkritisch geprüft.";
 | 
						|
         }
 | 
						|
         if (m.isProofread == OptionalBool.False && m.hasOriginal != OptionalBool.False) {
 | 
						|
             return "Original vorhanden. Der Brieftext wurde noch nicht textkritisch geprüft.";
 | 
						|
         }
 | 
						|
         if (m.isProofread != OptionalBool.False && m.hasOriginal == OptionalBool.False ) {
 | 
						|
             return "Original verschollen. Der Brieftext wurde anhand der vorhandenen Quellen kritisch geprüft.";
 | 
						|
         }
 | 
						|
         return "Der Brieftext wurde anhand des Originals kritisch geprüft.";
 | 
						|
     }
 | 
						|
}
 | 
						|
 | 
						|
@{
 | 
						|
    ViewData["Title"] = "Suche";
 | 
						|
    var pg = 0;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
<div class="mainhead row no-gutters">
 | 
						|
        <div class="col">
 | 
						|
            <div class="widehead searchbar d-none d-lg-block">
 | 
						|
                <div class="alphabet">
 | 
						|
                    <div class="row">
 | 
						|
                        <div class="col-7">
 | 
						|
                                <h1>
 | 
						|
                                    Volltextsuche
 | 
						|
                                    <span class="searchheading">
 | 
						|
                                    (Beta)
 | 
						|
                                </span>
 | 
						|
                                </h1>
 | 
						|
                            <form>
 | 
						|
                                <div class="form-inline hformbox">
 | 
						|
                                    <input type="search" class="form-control hform"  asp-for="search" placeholder="Suchbegriff" />
 | 
						|
                                    <input type="submit" class="form-control hform" value="Suchen"  />
 | 
						|
                                </div>
 | 
						|
                            </form>
 | 
						|
                        </div>
 | 
						|
                        @if (String.IsNullOrWhiteSpace(Model.search))
 | 
						|
                        {
 | 
						|
                        <div class="col-5 align-self-end">
 | 
						|
                            <div class="zhselector">
 | 
						|
                                <form style="margin-left: 105px;"> 
 | 
						|
                                    <div class="form-inline hformbox textform">
 | 
						|
                                        Briefnummer  
 | 
						|
                                        <input type="search" class="form-control small-form hform" asp-for="fdletter" />
 | 
						|
                                        <input type="submit" class="form-control hform" value="Nachschlagen" />
 | 
						|
                                    </div>
 | 
						|
                                    </form>
 | 
						|
                               <form> 
 | 
						|
                                   <div class="form-inline hformbox textform">
 | 
						|
                                       <span class="autopsic">
 | 
						|
                                           <a class="hlink invlink autopsic" href="/Supplementa/Forschung/editionen/#1955" style="font-variant: small-caps;">
 | 
						|
                                               <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="currentColor" class="bi bi-book" viewBox="0 0 16 20">
 | 
						|
                                                <path d="M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z"/>
 | 
						|
                                                </svg> Z H
 | 
						|
                                           </a>
 | 
						|
                                       </span>  
 | 
						|
                                       Band 
 | 
						|
                                        
 | 
						|
                                       <select class="form-control hform" asp-for="havolume">
 | 
						|
                                           @foreach (var y in lib.Structure.Keys.OrderBy(x => Int32.Parse(x)).Where(x => lib.Structure[x].Count > 100))
 | 
						|
                                           {
 | 
						|
                                               <option>@y</option>
 | 
						|
                                           }
 | 
						|
                                       </select>
 | 
						|
                                        , Seite  
 | 
						|
                                       <input type="search" class="form-control small-form hform" value="1" asp-for="hapage" />
 | 
						|
                                       <input type="submit" class="form-control hform" value="Nachschlagen" />
 | 
						|
                                   </div>
 | 
						|
                                </form>
 | 
						|
                            </div>
 | 
						|
                        </div>
 | 
						|
                        }
 | 
						|
                    </div>
 | 
						|
                </div>
 | 
						|
            </div></div></div>
 | 
						|
            <div class="row no-gutters mainhead sticky" style="top: 110px !important; z-index: 1000 !important;">
 | 
						|
            <div class="widehead yearsidebar">
 | 
						|
                            @if (Model.State != IndexModel.IndexState.Initial)
 | 
						|
                            {<div class="backbutton"><a class="hlink" href="/">
 | 
						|
                                <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-arrow-left" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
 | 
						|
                                <path fill-rule="evenodd" d="M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8z"/>
 | 
						|
                                </svg> alle Briefe anzeigen
 | 
						|
                            </a></div>}
 | 
						|
                            @if (Model.FailState == IndexModel.IndexFailState.LetterNotFound)
 | 
						|
                            {<span class="searchwarning">Brief mit der Nummer @Model.fdletter nicht gefunden.</span>}
 | 
						|
                            @if (Model.FailState == IndexModel.IndexFailState.SearchNoResult)
 | 
						|
                            {<span class="searchwarning">Keine Briefe gefunden, die die »@Model.search« enthalten.</span>}
 | 
						|
                            @if (Model.FailState == IndexModel.IndexFailState.SearchTooManyResults)
 | 
						|
                            {<span class="searchwarning">Mehr als 1000 Treffer für »@Model.search«. Bitte grenzen Sie Ihre Suche ein.</span>}
 | 
						|
                            @if (Model.FailState == IndexModel.IndexFailState.ZHNotFound)
 | 
						|
                            {<span class="searchwarning">Keine Briefe auf <span class="letterselection aq nnumber"><a class="hlink invlink searchwarning" href="/Supplementa/Forschung/editionen/#1955" style="font-variant: small-caps;">
 | 
						|
                                            Z H
 | 
						|
                                        </a> @HTMLHelpers.ToRoman(Int32.Parse(Model.havolume)), @Model.hapage</span> gefunden.</span>}
 | 
						|
                            @if (Model.FailState == IndexModel.IndexFailState.None)
 | 
						|
                            {
 | 
						|
                                <h1>Briefauswahl
 | 
						|
                                @if (Model.State == IndexModel.IndexState.Initial)
 | 
						|
                                {<span class="letterselection">alle Briefe; chronologische Anzeige.</span>}
 | 
						|
                                @if (Model.State == IndexModel.IndexState.Search)
 | 
						|
                                {<span class="letterselection">Briefe, die »@Model.search« enthalten.</span>}
 | 
						|
                                @if (Model.State == IndexModel.IndexState.ZHLookup)
 | 
						|
                                {<span class="letterselection aq nnumber">
 | 
						|
                                    Briefe auf
 | 
						|
                                    <a class="hlink invlink" href="/Supplementa/Forschung/editionen/#1955" style="font-variant: small-caps;">
 | 
						|
                                            Z H
 | 
						|
                                        </a> @HTMLHelpers.ToRoman(Int32.Parse(Model.havolume)), @Model.hapage</span>}
 | 
						|
                                @if (Model.State == IndexModel.IndexState.PersonLookup)
 | 
						|
                                {<span class="letterselection">Briefe von und an @lib.Persons[Model.person].Name.</span>}
 | 
						|
                                </h1>
 | 
						|
                            }
 | 
						|
                        @if (Model.Result.Count() > 1 && Model.FailState == IndexModel.IndexFailState.None)
 | 
						|
                        {
 | 
						|
                            @foreach (var pag in Model.Result) 
 | 
						|
                            {
 | 
						|
                                pg = Model.Result.IndexOf(pag)+1;
 | 
						|
                                <span class="navigation-page">
 | 
						|
                                <a class="invlink @setActPg(pg.ToString())" href="/?selpage=@pg&person=@Model.person&search=@Model.search">
 | 
						|
                                    @if (pag.First().First().MetaData.Sort.Year != pag.Last().Last().MetaData.Sort.Year)
 | 
						|
                                    { 
 | 
						|
                                        <span>
 | 
						|
                                            @pag.First().First().MetaData.Sort.Year–@pag.Last().Last().MetaData.Sort.Year
 | 
						|
                                        </span>
 | 
						|
                                    }
 | 
						|
                                    @if (pag.First().First().MetaData.Sort.Year == pag.Last().Last().MetaData.Sort.Year) 
 | 
						|
                                    {
 | 
						|
                                        <span>
 | 
						|
                                            @pag.First().First().MetaData.Sort.Year
 | 
						|
                                        </span>
 | 
						|
                                    }
 | 
						|
                                </a> @if(pag != Model.Result.Last())
 | 
						|
                                {
 | 
						|
                                    <span class="muted"> </span>
 | 
						|
                                }
 | 
						|
                                </span>
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    
 | 
						|
            </div> 
 | 
						|
</div>
 | 
						|
 | 
						|
@if (Model.FailState == IndexModel.IndexFailState.None)
 | 
						|
{
 | 
						|
<div class="row no-gutters">
 | 
						|
    <div class="col entriescolumn">
 | 
						|
            <div id="timeline">
 | 
						|
                <div class="@Position()">
 | 
						|
                    
 | 
						|
                        @foreach (var l in Model.Result.ElementAt(Model.cleanpage))
 | 
						|
                        {
 | 
						|
                            var filename = "HKB_" + l.Key + ".pdf";
 | 
						|
                            <section>
 | 
						|
                                <div class="year" style="top: 240px; z-index: 900;">
 | 
						|
                                    @l.Key 
 | 
						|
                                    @if (System.IO.File.Exists("./wwwroot/pdf/" + filename))
 | 
						|
                                    {
 | 
						|
                                    <span class="printbutton">
 | 
						|
                                        <span class="label">
 | 
						|
                                            <a class="hlink" href="./pdf/@filename">PDF
 | 
						|
                                            <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="currentColor" class="bi bi-arrow-down-circle" viewBox="0 0 14 18">
 | 
						|
                                                <path fill-rule="evenodd" d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8zm15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.5 4.5a.5.5 0 0 0-1 0v5.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V4.5z"/>
 | 
						|
                                            </svg>
 | 
						|
                                            </a>
 | 
						|
                                        </span>
 | 
						|
                                    </span>
 | 
						|
                                    }
 | 
						|
                                  <hr></div>
 | 
						|
                                @foreach (var entry in l)
 | 
						|
                                {
 | 
						|
                                    <section>
 | 
						|
                                            <div class="lettercard flexrow">
 | 
						|
                                                <a href="/Briefe/@entry.MetaData.Autopsic" class="hlink invlink">
 | 
						|
                                                    <div class="nnumber letcount flexcol">@entry.MetaData.Autopsic</div>
 | 
						|
                                                    <div class="letdesc flexcol">
 | 
						|
                                                    @if(entry.MetaData.Senders.Any() || entry.MetaData.Receivers.Any())
 | 
						|
                                                    {
 | 
						|
                                                        <span class="date">
 | 
						|
                                                            @entry.MetaData.Date</span><span> </span>
 | 
						|
                                                            @if (entry.MetaData.ZH != null) 
 | 
						|
                                                            {
 | 
						|
                                                            <span>
 | 
						|
                                                            <span class="nnumber autopsic"> 
 | 
						|
                                                                <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="currentColor" class="bi bi-book" viewBox="0 0 16 18">
 | 
						|
                                                                <path d="M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z"/>
 | 
						|
                                                                </svg> 
 | 
						|
                                                                ZH @HTMLHelpers.ToRoman(Int32.Parse(entry.MetaData.ZH.Volume)) @entry.MetaData.ZH.Page
 | 
						|
                                                            </span> 
 | 
						|
                                                            </span>
 | 
						|
                                                        } 
 | 
						|
                                                        else 
 | 
						|
                                                        {
 | 
						|
                                                            <span>
 | 
						|
                                                            <span class="nnumber autopsic-new">
 | 
						|
                                                                <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="currentColor" class="bi bi-asterisk" viewBox="0 0 16 20">
 | 
						|
                                                                <path d="M8 0a1 1 0 0 1 1 1v5.268l4.562-2.634a1 1 0 1 1 1 1.732L10 8l4.562 2.634a1 1 0 1 1-1 1.732L9 9.732V15a1 1 0 1 1-2 0V9.732l-4.562 2.634a1 1 0 1 1-1-1.732L6 8 1.438 5.366a1 1 0 0 1 1-1.732L7 6.268V1a1 1 0 0 1 1-1z"/>
 | 
						|
                                                                </svg>
 | 
						|
                                                                Neu
 | 
						|
                                                            </span> 
 | 
						|
                                                            </span>
 | 
						|
                                                        }
 | 
						|
                                                            @if(entry.MetaData.hasOriginal == OptionalBool.True)
 | 
						|
                                                            {
 | 
						|
                                                                <span>
 | 
						|
                                                                    <span class="nnumber autopsic hv" data-bs-toggle="tooltip" data-bs-placement="top" title="Original vorhanden">
 | 
						|
                                                                         Orig
 | 
						|
                                                                    </span> 
 | 
						|
                                                                </span>
 | 
						|
                                                            }
 | 
						|
                                                            else 
 | 
						|
                                                            {
 | 
						|
                                                                <span>
 | 
						|
                                                                    <span class="nnumber autopsic hv" data-bs-toggle="tooltip" data-bs-placement="top" title="Original verschollen">
 | 
						|
                                                                         <span class="cross">Orig</span>
 | 
						|
                                                                    </span> 
 | 
						|
                                                                </span>
 | 
						|
                                                            }
 | 
						|
                                                            @if (entry.MetaData.ZH != null && entry.MetaData.ZH.dateChanged)
 | 
						|
                                                            {
 | 
						|
                                                                <span>
 | 
						|
                                                                    <span class="nnumber autopsic hv" data-bs-toggle="tooltip" data-bs-placement="top" title="Der Brief wurde gegenüber der Ausgabe ZH neu datiert">
 | 
						|
                                                                         neu datiert
 | 
						|
                                                                    </span> 
 | 
						|
                                                                </span>
 | 
						|
                                                            }
 | 
						|
                                                            @if(entry.MetaData.isProofread == OptionalBool.True)
 | 
						|
                                                            {
 | 
						|
                                                                <span>
 | 
						|
                                                                    <span class="nnumber autopsic hv" data-bs-toggle="tooltip" data-bs-placement="top" title="Textkritisch geprüft">
 | 
						|
                                                                         geprüft
 | 
						|
                                                                    </span> 
 | 
						|
                                                                </span>
 | 
						|
                                                            }
 | 
						|
                                                            else 
 | 
						|
                                                            {
 | 
						|
                                                                <span>
 | 
						|
                                                                    <span class="nnumber autopsic hv" data-bs-toggle="tooltip" data-bs-placement="top" title="Nicht textkritisch geprüft">
 | 
						|
                                                                         <span class="cross">geprüft</span>
 | 
						|
                                                                    </span> 
 | 
						|
                                                                </span>
 | 
						|
                                                            }
 | 
						|
                                                            @if (lib.MarginalsByLetter.Contains(entry.MetaData.Index)) 
 | 
						|
                                                            {
 | 
						|
                                                                <span>
 | 
						|
                                                                    <span class="nnumber autopsic hv" data-bs-toggle="tooltip" data-bs-placement="top" title="Mit Stellenkommentar">
 | 
						|
                                                                         Komm
 | 
						|
                                                                    </span> 
 | 
						|
                                                                </span>
 | 
						|
                                                            }
 | 
						|
                                                        
 | 
						|
                                                        <br>
 | 
						|
                                                        <span class="title">
 | 
						|
                                                            <span class="senders">
 | 
						|
                                                            @HTMLHelpers.GetEnumerationString(entry.MetaData.Senders.Select(x => lib.Persons[x].Name).ToList())
 | 
						|
                                                            </span>
 | 
						|
                                                            <span class="arrow">
 | 
						|
                                                            @if(entry.MetaData.isDraft == OptionalBool.True) {
 | 
						|
                                                                <span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Entwurf"> ↛ </span>
 | 
						|
                                                            }
 | 
						|
                                                            else
 | 
						|
                                                            {
 | 
						|
                                                                <span> → </span>
 | 
						|
                                                            }
 | 
						|
                                                            </span>
 | 
						|
                                                            <span class="receivers">
 | 
						|
                                                            @HTMLHelpers.GetEnumerationString(entry.MetaData.Receivers.Select(x => lib.Persons[x].Name).ToList())
 | 
						|
                                                            </span>
 | 
						|
                                                            </span>
 | 
						|
                                                        }
 | 
						|
                                                        else
 | 
						|
                                                        {
 | 
						|
                                                            <span> </span>
 | 
						|
                                                        }
 | 
						|
                                                        
 | 
						|
                                                </a>
 | 
						|
                                                @if (entry.Results != null && entry.Results.Count() > 0)
 | 
						|
                                                {
 | 
						|
                                                    <div class="sresults">
 | 
						|
                                                    @foreach (var result in entry.Results)
 | 
						|
                                                    {
 | 
						|
                                                        <div class="sresult">
 | 
						|
                                                            <a href="/Briefe/@entry.MetaData.Index#@result.Page-@result.Line" class="hlink invlink">
 | 
						|
                                                                <span class="pgln">@result.Page/@result.Line:</span> <span class="sprev">@result.PreviewString</span>
 | 
						|
                                                            </a>
 | 
						|
                                                        </div>
 | 
						|
                                                        
 | 
						|
                                                    }
 | 
						|
                                                    </div>
 | 
						|
                                                }
 | 
						|
                                            </div>
 | 
						|
                                    </section>
 | 
						|
                                }
 | 
						|
                            </section>
 | 
						|
                        }
 | 
						|
                    
 | 
						|
                </div>
 | 
						|
            </div>
 | 
						|
    </div>
 | 
						|
    @if(String.IsNullOrWhiteSpace(Model.search) &&
 | 
						|
        String.IsNullOrWhiteSpace(Model.hapage))
 | 
						|
    {
 | 
						|
        <div class="col-4 namesidebar d-none d-lg-block">
 | 
						|
            <h4>Korrespondenzpartner:innen</h4>
 | 
						|
            <a class="hlink person invlink @setAct("")" href="/">Alle</a>
 | 
						|
            @foreach (var p in Model.SelectedPersons.Where(x => x.Index != "1")) {
 | 
						|
                <a class="hlink invlink person @setAct(p.Index)" href="/?person=@p.Index">@p.Name</a>
 | 
						|
            }
 | 
						|
            </div>
 | 
						|
        <div>
 | 
						|
        </div>
 | 
						|
    }
 | 
						|
</div>
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
@section Scripts {
 | 
						|
        <script>
 | 
						|
        var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
 | 
						|
        var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
 | 
						|
            return new bootstrap.Tooltip(tooltipTriggerEl)
 | 
						|
        })
 | 
						|
 | 
						|
    </script>
 | 
						|
} |