help migrations/forms

This commit is contained in:
Simon Martens
2026-01-14 15:50:09 +01:00
parent ec47dcb147
commit f716eb5547
7 changed files with 125 additions and 104 deletions

View File

@@ -3,6 +3,7 @@ package app
import (
"database/sql"
"fmt"
"html/template"
"log/slog"
"sort"
"strings"
@@ -181,6 +182,27 @@ func (app *App) createEngine() (*templating.Engine, error) {
defer app.htmlMutex.RUnlock()
return app.htmlCache.Get(key)
})
engine.AddFunc("help", func(table string, field ...string) template.HTML {
app.ensureHtmlCache()
key := "help." + table
if len(field) > 0 && field[0] != "" {
key = key + "." + field[0]
}
app.htmlMutex.RLock()
defer app.htmlMutex.RUnlock()
return template.HTML(app.htmlCache.GetString(key))
})
engine.AddFunc("helpOr", func(table, field, fallback string) template.HTML {
app.ensureHtmlCache()
key := "help." + table + "." + field
app.htmlMutex.RLock()
value := app.htmlCache.GetString(key)
app.htmlMutex.RUnlock()
if value == "" {
value = fallback
}
return template.HTML(value)
})
engine.AddFunc("htmlPrefix", func(prefix string) map[string]any {
app.ensureHtmlCache()
app.htmlMutex.RLock()
@@ -226,6 +248,20 @@ func (c *PrefixCache) Get(key string) any {
return c.data[key]
}
func (c *PrefixCache) GetString(key string) string {
if c == nil {
return ""
}
value, ok := c.data[key]
if !ok || value == nil {
return ""
}
if s, ok := value.(string); ok {
return s
}
return fmt.Sprint(value)
}
func (c *PrefixCache) GetPrefix(prefix string) map[string]any {
if c == nil || len(c.keys) == 0 {
return map[string]any{}

View File

@@ -197,58 +197,37 @@ var fieldHelpSeed = []FieldHelpTable{
TableName: "R_" + dbmodels.ENTRIES_TABLE + "_" + dbmodels.AGENTS_TABLE,
Help: "Liste aller Verknüpfungen von Einträgen und Personen/Körperschaften",
Description: "Diese Tabelle enthält alle Verknüpfungen von Einträgen und Personen/Körperschaften, die in der Musenalm-Datenbank verwendet werden. Diese Liste wird für die Erstellung von Verknüpfungen verwendet.",
Common: []FieldHelpEntry{
{FieldName: dbmodels.ID_FIELD, Help: "Eindeutige Identifikationsnummer", Description: "Systemgenerierte eindeutige ID für diese Relation"},
{FieldName: dbmodels.CREATED_FIELD, Help: "Erstellungsdatum", Description: "Zeitpunkt der Erstellung dieser Relation"},
{FieldName: dbmodels.UPDATED_FIELD, Help: "Aktualisierungsdatum", Description: "Zeitpunkt der letzten Änderung dieser Relation"},
{FieldName: dbmodels.ANNOTATION_FIELD, Help: "Anmerkungen", Description: "Zusätzliche Anmerkungen zu dieser Relation"},
{FieldName: dbmodels.COMMENT_FIELD, Help: "Bearbeitungskommentar", Description: "Kommentare zur Bearbeitung"},
},
Entries: []FieldHelpEntry{
{FieldName: dbmodels.ENTRIES_TABLE, Help: "Band", Description: "Verknüpfter Almanachband"},
{FieldName: dbmodels.AGENTS_TABLE, Help: "Person/Körperschaft", Description: "Verknüpfte Person oder Körperschaft"},
{FieldName: dbmodels.RELATION_TYPE_FIELD, Help: "Relationstyp", Description: "Art der Beziehung (Autor, Herausgeber, etc.)"},
{FieldName: dbmodels.RELATION_CONJECTURE_FIELD, Help: "Vermutung", Description: "Ist diese Zuordnung eine Vermutung?"},
{FieldName: dbmodels.RELATION_UNCERTAIN_FIELD, Help: "Unsicher", Description: "Ist diese Zuordnung unsicher?"},
},
},
{
TableName: "R_" + dbmodels.CONTENTS_TABLE + "_" + dbmodels.AGENTS_TABLE,
Help: "Liste aller Verknüpfungen von Inhaltsbeiträgen und Personen/Körperschaften",
Description: "Diese Tabelle enthält alle Verknüpfungen von Inhaltsbeiträgen und Personen/Körperschaften, die in der Musenalm-Datenbank verwendet werden. Diese Liste wird für die Erstellung von Verknüpfungen verwendet.",
Common: []FieldHelpEntry{
{FieldName: dbmodels.ID_FIELD, Help: "Eindeutige Identifikationsnummer", Description: "Systemgenerierte eindeutige ID für diese Relation"},
{FieldName: dbmodels.CREATED_FIELD, Help: "Erstellungsdatum", Description: "Zeitpunkt der Erstellung dieser Relation"},
{FieldName: dbmodels.UPDATED_FIELD, Help: "Aktualisierungsdatum", Description: "Zeitpunkt der letzten Änderung dieser Relation"},
{FieldName: dbmodels.ANNOTATION_FIELD, Help: "Anmerkungen", Description: "Zusätzliche Anmerkungen zu dieser Relation"},
{FieldName: dbmodels.COMMENT_FIELD, Help: "Bearbeitungskommentar", Description: "Kommentare zur Bearbeitung"},
},
Entries: []FieldHelpEntry{
{FieldName: dbmodels.CONTENTS_TABLE, Help: "Inhalt", Description: "Verknüpfter Inhaltsbeitrag"},
{FieldName: dbmodels.AGENTS_TABLE, Help: "Person/Körperschaft", Description: "Verknüpfte Person oder Körperschaft"},
{FieldName: dbmodels.RELATION_TYPE_FIELD, Help: "Relationstyp", Description: "Art der Beziehung (Autor, Stecher, etc.)"},
{FieldName: dbmodels.RELATION_CONJECTURE_FIELD, Help: "Vermutung", Description: "Ist diese Zuordnung eine Vermutung?"},
{FieldName: dbmodels.RELATION_UNCERTAIN_FIELD, Help: "Unsicher", Description: "Ist diese Zuordnung unsicher?"},
},
},
{
TableName: "R_" + dbmodels.ENTRIES_TABLE + "_" + dbmodels.SERIES_TABLE,
Help: "Liste aller Verknüpfungen von Einträgen und Reihentiteln",
Description: "Diese Tabelle enthält alle Verknüpfungen von Einträgen und Reihentiteln, die in der Musenalm-Datenbank verwendet werden. Diese Liste wird für die Erstellung von Verknüpfungen verwendet.",
Common: []FieldHelpEntry{
{FieldName: dbmodels.ID_FIELD, Help: "Eindeutige Identifikationsnummer", Description: "Systemgenerierte eindeutige ID für diese Relation"},
{FieldName: dbmodels.CREATED_FIELD, Help: "Erstellungsdatum", Description: "Zeitpunkt der Erstellung dieser Relation"},
{FieldName: dbmodels.UPDATED_FIELD, Help: "Aktualisierungsdatum", Description: "Zeitpunkt der letzten Änderung dieser Relation"},
{FieldName: dbmodels.ANNOTATION_FIELD, Help: "Anmerkungen", Description: "Zusätzliche Anmerkungen zu dieser Relation"},
{FieldName: dbmodels.COMMENT_FIELD, Help: "Bearbeitungskommentar", Description: "Kommentare zur Bearbeitung"},
},
Entries: []FieldHelpEntry{
{FieldName: dbmodels.ENTRIES_TABLE, Help: "Band", Description: "Verknüpfter Almanachband"},
{FieldName: dbmodels.SERIES_TABLE, Help: "Reihe", Description: "Verknüpfter Reihentitel"},
{FieldName: dbmodels.RELATION_TYPE_FIELD, Help: "Relationstyp", Description: "Art der Beziehung (Bevorzugter Titel, Alternative, etc.)"},
{FieldName: dbmodels.RELATION_CONJECTURE_FIELD, Help: "Vermutung", Description: "Ist diese Zuordnung eine Vermutung?"},
{FieldName: dbmodels.RELATION_UNCERTAIN_FIELD, Help: "Unsicher", Description: "Ist diese Zuordnung unsicher?"},
}
var additionalFieldHelpSeed = []FieldHelp{
{
TableName: dbmodels.ENTRIES_TABLE,
FieldName: dbmodels.EDITION_FIELD,
Help: "Hinweis zur Ausgabe oder Edition.",
Description: "Angaben zur Ausgabe, Edition oder Besonderheiten der Veroeffentlichung.",
},
{
TableName: dbmodels.ENTRIES_TABLE,
FieldName: dbmodels.SERIES_TABLE,
Help: "Verknuepfte Reihen fuer diesen Almanach.",
Description: "Reihen, die mit diesem Almanach verbunden sind.",
},
{
TableName: dbmodels.ENTRIES_TABLE,
FieldName: dbmodels.AGENTS_TABLE,
Help: "Beteiligte Personen oder Koerperschaften.",
Description: "Personen oder Koerperschaften, die an diesem Almanach beteiligt sind.",
},
}
@@ -364,5 +343,7 @@ func getAllFieldHelps() []FieldHelp {
}
}
helps = append(helps, additionalFieldHelpSeed...)
return helps
}

View File

@@ -55,7 +55,7 @@ type AlmanachResult struct {
<div class="px-1.5 py-0.5 rounded-xs bg-gray-200 w-fit font-bold">
{{ $model.result.Entry.MusenalmID }}
<tool-tip position="right" class="!inline">
<div class="data-tip">Die Alm-Nr ist Teil der URL und wird automatisch vergeben.</div>
<div class="data-tip">{{ help "entries" "musenalm_id" }}</div>
<i class="ri-information-line"></i>
</tool-tip>
</div>
@@ -114,7 +114,7 @@ type AlmanachResult struct {
<div class="font-bold text-sm">
<i class="ri-database-2-line"></i> Datenbank-ID
<tool-tip position="right" class="!inline">
<div class="data-tip">Die Datenbank-ID kann zur Fehlerdiagnose hilfreich sein.</div>
<div class="data-tip">{{ help "entries" "id" }}</div>
<i class="ri-information-line"></i>
</tool-tip>
</div>
@@ -168,7 +168,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="preferred_title" class="inputlabel">Kurztitel</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Kurzer, eindeutiger Titel für die Anzeige.</div>
<div class="data-tip">{{ help "entries" "preferred_title" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -195,7 +195,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="title" class="inputlabel menu-label">Titel</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Vollständiger Titel des Almanachs.</div>
<div class="data-tip">{{ help "entries" "title_statement" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -215,7 +215,7 @@ type AlmanachResult struct {
<label for="paralleltitle" class="inputlabel menu-label">Titel
(übersetzt)</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Übersetzter oder paralleler Titel.</div>
<div class="data-tip">{{ help "entries" "parallel_title" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -234,7 +234,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="subtitle" class="inputlabel menu-label">Untertitel</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Ergänzender Untertitel oder Zusatz.</div>
<div class="data-tip">{{ help "entries" "subtitle_statement" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -253,7 +253,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="varianttitle" class="inputlabel menu-label">Titelvarianten</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Alternative oder abweichende Titelformen.</div>
<div class="data-tip">{{ help "entries" "variant_title" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -272,7 +272,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="incipit" class="inputlabel menu-label">Incipit</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Erste Worte oder Anfang des Texts.</div>
<div class="data-tip">{{ help "entries" "incipit_statement" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -292,7 +292,7 @@ type AlmanachResult struct {
<label for="responsibility_statement" class="inputlabel
menu-label">Herausgeberangabe</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Angabe zu Herausgebern oder Verantwortlichen.</div>
<div class="data-tip">{{ help "entries" "responsibility_statement" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -311,7 +311,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="publication_statement" class="inputlabel menu-label">Publikationsangabe</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Verlags- oder Publikationsangaben.</div>
<div class="data-tip">{{ help "entries" "publication_statement" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -330,7 +330,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="place_statement" class="inputlabel menu-label">Ortsangabe</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Ort(e) der Veröffentlichung.</div>
<div class="data-tip">{{ help "entries" "place_statement" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -357,7 +357,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="year" class="inputlabel">Jahr</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Erscheinungsjahr des Almanachs.</div>
<div class="data-tip">{{ help "entries" "year" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -370,7 +370,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="edition" class="inputlabel">Ausgabebezeichnung</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Hinweis zur Ausgabe oder Edition.</div>
<div class="data-tip">{{ helpOr "entries" "edition" "Hinweis zur Ausgabe oder Edition." }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -400,7 +400,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label class="inputlabel" for="series-section">Reihen</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Verknüpfte Reihen für diesen Almanach.</div>
<div class="data-tip">{{ helpOr "entries" "series" "Verknüpfte Reihen für diesen Almanach." }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -545,7 +545,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label class="inputlabel" for="agents-section">Personen &amp; Körperschaften</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Beteiligte Personen oder Körperschaften.</div>
<div class="data-tip">{{ helpOr "entries" "agents" "Beteiligte Personen oder Körperschaften." }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -692,7 +692,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="places" class="inputlabel">Erscheinungs- und Verlagsorte</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Orte der Veröffentlichung und des Verlags.</div>
<div class="data-tip">{{ help "entries" "places" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -731,7 +731,7 @@ type AlmanachResult struct {
<!-- Right Column -->
<div class="w-[28rem] shrink-0 flex flex-col gap-3">
<div>
{{ template "_status_edit" (Arr $model.result.Entry "type" "type" "almanach") }}
{{ template "_status_edit" (Arr $model.result.Entry "type" "type" "entries" "almanach") }}
</div>
<div>
@@ -749,7 +749,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="extent" class="inputlabel menu-label">Struktur/Umfang</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Hinweise zu Umfang oder Struktur.</div>
<div class="data-tip">{{ help "entries" "extent" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -768,7 +768,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="dimensions" class="inputlabel menu-label">Maße</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Maße oder Formatangaben.</div>
<div class="data-tip">{{ help "entries" "dimensions" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -791,7 +791,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="languages" class="inputlabel">Sprachen</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Sprachen des Almanachs oder der Inhalte.</div>
<div class="data-tip">{{ help "entries" "language" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -816,7 +816,7 @@ type AlmanachResult struct {
<div class="flex items-center gap-1">
<label for="refs" class="inputlabel">Nachweise</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Literatur- oder Quellenangaben.</div>
<div class="data-tip">{{ help "entries" "refs" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -936,7 +936,7 @@ type AlmanachResult struct {
<div class="inputwrapper">
<label class="inputlabel" data-field-label="owner">Besitzer</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Institution oder Besitzer des Exemplars.</div>
<div class="data-tip">{{ help "items" "owner" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
<input class="inputinput" data-items-strike data-field="owner" name="items_owner[]" autocomplete="off" value="{{ $item.Owner }}" />
@@ -944,7 +944,7 @@ type AlmanachResult struct {
<div class="inputwrapper">
<label class="inputlabel" data-field-label="identifier">Signatur</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Interne Signatur oder Kennung.</div>
<div class="data-tip">{{ help "items" "identifier" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
<input class="inputinput" data-items-strike data-field="identifier" name="items_identifier[]" autocomplete="off" value="{{ $item.Identifier }}" />
@@ -952,7 +952,7 @@ type AlmanachResult struct {
<div class="inputwrapper">
<label class="inputlabel" data-field-label="location">Standort</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Aufbewahrungsort des Exemplars.</div>
<div class="data-tip">{{ help "items" "location" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
<input class="inputinput" data-items-strike data-field="location" name="items_location[]" autocomplete="off" value="{{ $item.Location }}" />
@@ -960,7 +960,7 @@ type AlmanachResult struct {
<div class="inputwrapper">
<label class="inputlabel" data-field-label="media">Vorhanden als</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Medientyp oder Verfügbarkeit.</div>
<div class="data-tip">{{ help "items" "media" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
<select class="inputselect" data-items-strike data-field="media" name="items_media[]" autocomplete="off" required>
@@ -976,7 +976,7 @@ type AlmanachResult struct {
<div class="inputwrapper">
<label class="inputlabel" data-field-label="uri">URI</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Link oder Identifier zum Exemplar.</div>
<div class="data-tip">{{ help "items" "uri" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
<input class="inputinput" data-items-strike data-field="uri" name="items_uri[]" autocomplete="off" value="{{ $item.Uri }}" />
@@ -1053,7 +1053,7 @@ type AlmanachResult struct {
<div class="inputwrapper">
<label class="inputlabel" data-field-label="owner">Besitzer</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Institution oder Besitzer des Exemplars.</div>
<div class="data-tip">{{ help "items" "owner" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
<input class="inputinput" data-items-strike data-field="owner" name="items_owner[]" autocomplete="off" value="" />
@@ -1061,7 +1061,7 @@ type AlmanachResult struct {
<div class="inputwrapper">
<label class="inputlabel" data-field-label="identifier">Signatur</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Interne Signatur oder Kennung.</div>
<div class="data-tip">{{ help "items" "identifier" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
<input class="inputinput" data-items-strike data-field="identifier" name="items_identifier[]" autocomplete="off" value="" />
@@ -1069,7 +1069,7 @@ type AlmanachResult struct {
<div class="inputwrapper">
<label class="inputlabel" data-field-label="location">Standort</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Aufbewahrungsort des Exemplars.</div>
<div class="data-tip">{{ help "items" "location" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
<input class="inputinput" data-items-strike data-field="location" name="items_location[]" autocomplete="off" value="" />
@@ -1077,7 +1077,7 @@ type AlmanachResult struct {
<div class="inputwrapper">
<label class="inputlabel" data-field-label="media">Vorhanden als</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Medientyp oder Verfügbarkeit.</div>
<div class="data-tip">{{ help "items" "media" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
<select class="inputselect" data-items-strike data-field="media" name="items_media[]" autocomplete="off" required>
@@ -1093,7 +1093,7 @@ type AlmanachResult struct {
<div class="inputwrapper">
<label class="inputlabel" data-field-label="uri">URI</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Link oder Identifier zum Exemplar.</div>
<div class="data-tip">{{ help "items" "uri" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
<input class="inputinput" data-items-strike data-field="uri" name="items_uri[]" autocomplete="off" value="" />

View File

@@ -1,9 +1,13 @@
{{- $entity := index . 0 -}}
{{- $fieldName := index . 1 -}}
{{- $fieldId := index . 2 -}}
{{- $tableName := "" -}}
{{- $context := "" -}}
{{- if gt (len .) 3 -}}
{{- $context = index . 3 -}}
{{- $tableName = index . 3 -}}
{{- end -}}
{{- if gt (len .) 4 -}}
{{- $context = index . 4 -}}
{{- end -}}
{{- $isAlmanach := eq $context "almanach" -}}
@@ -14,7 +18,7 @@
<div class="flex items-center gap-1">
<label for="{{ $fieldId }}" class="inputlabel">Status</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Kurzinfo zum Bearbeitungsstatus.</div>
<div class="data-tip">{{ help $tableName "edit_state" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -47,7 +51,7 @@
<div class="flex items-center gap-1">
<label for="edit_comment" class="inputlabel menu-label">Bearbeitungsvermerk</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Hinweise zum Bearbeitungsstand oder offene Fragen.</div>
<div class="data-tip">{{ help $tableName "edit_comment" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>

View File

@@ -117,7 +117,7 @@
<div class="flex items-center gap-1">
<label for="name" class="inputlabel">Name</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Kurze Hilfe zum Ortsnamen.</div>
<div class="data-tip">{{ help "places" "name" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -133,7 +133,7 @@
<div class="flex items-center gap-1">
<label for="pseudonyms" class="inputlabel">Alternativnamen</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Weitere gebräuchliche Namen für den Ort.</div>
<div class="data-tip">{{ help "places" "pseudonyms" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -145,7 +145,7 @@
<div class="flex items-center gap-1">
<label for="uri" class="inputlabel">URL</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Externe Referenz oder offizielle Webseite.</div>
<div class="data-tip">{{ help "places" "uri" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -158,7 +158,7 @@
<label class="flex items-center gap-1 text-gray-700" for="fictional">
<span>Fiktional</span>
<tool-tip position="top" class="!inline">
<div class="data-tip">Markiere den Ort als fiktiv.</div>
<div class="data-tip">{{ help "places" "fictional" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</label>
@@ -168,7 +168,7 @@
</div>
<div class="w-[28rem] shrink-0 flex flex-col gap-3">
{{ template "_status_edit" (Arr $place "status" "status") }}
{{ template "_status_edit" (Arr $place "status" "status" "places") }}
<div class="mt-2">
{{ template "_linked_items" (Arr $model.result.Entries nil nil nil nil) }}
</div>

View File

@@ -119,7 +119,7 @@
<div class="flex items-center gap-1">
<label for="name" class="inputlabel">Name</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Vollständiger Name der Person oder Körperschaft.</div>
<div class="data-tip">{{ help "agents" "name" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -135,7 +135,7 @@
<div class="flex items-center gap-1">
<label for="pseudonyms" class="inputlabel">Pseudonyme</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Alternative Namen oder Schreibweisen.</div>
<div class="data-tip">{{ help "agents" "pseudonyms" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -150,7 +150,7 @@
<label class="flex items-center gap-1 text-gray-700" for="corporate_body">
<span>Körperschaft (Verlag od. Vertrieb)</span>
<tool-tip position="top" class="!inline">
<div class="data-tip">Markiere, wenn es sich um eine Körperschaft handelt.</div>
<div class="data-tip">{{ help "agents" "corporate_body" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</label>
@@ -162,7 +162,7 @@
<label class="flex items-center gap-1 text-gray-700" for="fictional">
<span>Fiktional</span>
<tool-tip position="top" class="!inline">
<div class="data-tip">Markiere die Person als fiktiv.</div>
<div class="data-tip">{{ help "agents" "fictional" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</label>
@@ -175,7 +175,7 @@
<div class="flex items-center gap-1">
<label for="biographical_data" class="inputlabel">Biografische Angaben</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Kurzbiografie oder Lebensdaten.</div>
<div class="data-tip">{{ help "agents" "biographical_data" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -187,7 +187,7 @@
<div class="flex items-center gap-1">
<label for="profession" class="inputlabel">Profession</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Beruf oder Tätigkeit.</div>
<div class="data-tip">{{ help "agents" "profession" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -201,7 +201,7 @@
<div class="flex items-center gap-1">
<label for="uri" class="inputlabel">URL</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Externer Link oder Normdaten-URL.</div>
<div class="data-tip">{{ help "agents" "uri" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -213,7 +213,7 @@
<div class="flex items-center gap-1">
<label for="references" class="inputlabel">Nachweise</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Quellen oder Belege zur Person.</div>
<div class="data-tip">{{ help "agents" "refs" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -225,7 +225,7 @@
</div>
<div class="w-[28rem] shrink-0 flex flex-col gap-3">
{{ template "_status_edit" (Arr $agent "status" "status") }}
{{ template "_status_edit" (Arr $agent "status" "status" "agents") }}
<div class="mt-2">
{{ template "_linked_items" (Arr $model.result.Entries $model.result.Contents $model.result.EntryTypes $model.result.ContentTypes $model.result.ContentEntries) }}
</div>

View File

@@ -119,7 +119,7 @@
<div class="flex items-center gap-1">
<label for="title" class="inputlabel">Reihentitel</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Offizieller oder bevorzugter Titel der Reihe.</div>
<div class="data-tip">{{ help "series" "title" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -136,7 +136,7 @@
<div class="flex items-center gap-1">
<label for="references" class="inputlabel">Nachweise</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Quellen oder Belege zur Reihe.</div>
<div class="data-tip">{{ help "series" "refs" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -148,7 +148,7 @@
<div class="flex items-center gap-1">
<label for="frequency" class="inputlabel">Erscheinungsfrequenz</label>
<tool-tip position="top" class="!inline">
<div class="data-tip">Wie oft die Reihe veröffentlicht wurde.</div>
<div class="data-tip">{{ help "series" "frequency" }}</div>
<i class="ri-question-line"></i>
</tool-tip>
</div>
@@ -160,7 +160,7 @@
</div>
<div class="w-[28rem] shrink-0 flex flex-col gap-3">
{{ template "_status_edit" (Arr $series "status" "status") }}
{{ template "_status_edit" (Arr $series "status" "status" "series") }}
<div class="mt-2">
{{ template "_linked_items" (Arr $model.result.Entries $model.result.Contents nil $model.result.ContentTypes $model.result.ContentEntries) }}
</div>