# Detailseite Verzeichnungseinheiten

Dieser Abschnitt beschreibt, wie die Darstellung der Metadaten auf der Detailseite einer Verzeichnungseinheit mittels eines Schemas konfiguriert werden kann.

Detailseite Verzeichnungseinheit

Die Darstellung der Felder auf der Detailseite wird im Archiv Schema Editor vorgenommen. In der Konfiguration können mehrere Bedingungen konfiguriert werden. Jede Bedingung wird mit einem Abschnitt im Schema unter dem Abschnitt metadata-view konfiguriert. Die Einrückung von Leerzeichen wird zur Kennzeichnung der Struktur verwendet. Listenmitglieder werden durch einen führenden Bindestrich (-) gekennzeichnet.

Die Art der Felder, die für die Filterung und Ausschlüsse verwendet werden, müssen einem Metadatum der Verzeichnungseinheit entsprechen.

Für jeden Eintrag in der metadata-view muss ein definiertes schema vorhanden sein. Mit einem condition Block wird die Konfiguration für eine bestimmte Verzeichnungseinheit im Schema festgelegt.

# Bedingungen

Die Bedingung gibt an, für welche Verzeichnungseinheiten das Schema angewendet werden soll. Die Schlüsselwörter filter und exclude werden verwendet, um Verzeichnungseinheiten auszuschliessen oder einzubeziehen. Das Schema wird nur auf Verzeichnungseinheiten angewendet, die diese Bedingungen erfüllen. Hier ein Beispiel für die Filterung nach archival_type und den Ausschluss einer bestimmten Verzeichnungseinheit durch die Verwendung von description_level:

metadata-view:
  - condition:
    filter:
      archival_type:
        - Bild
    exclude:
      description_level: 'Dossier'

In diesem Beispiel wird der Bindestrich für archival_type verwendet, da dieses Feld als Liste im Modell gespeichert wird. Verzeichnungseinheiten, die alle Werte in der Liste enthalten, werden auszuschliessen oder einzubeziehen.

# Leere Bedingungen

Leere Bedingungen werden auf alle Verzeichnungseinheiten angewendet. Die Darstellung einer Verzeichnungseinheit kann mit einem Bedingungsblock überschreiben werden. Auf diese Weise werden sämtliche Detailansichten der Verzeichnungseinheiten auf Basis dieser Konfiguration angepasst.

# Schema-Definition

Wenn die Bedingungen erfüllt sind, wird die Seite Detailansicht der Verzeichnungseinheiten gemäss dem schema angezeigt. Der Schemablock hat drei Felder: fields, label und search-link. Damit wird das Akkordeonmenü für die Detailseite festgelegt. Das Schlüsselwort label wird für die Darstellung des Titels verwendet. Mit dem Schlüsselwort fields wird festgelegt, welche Felder für dieses Akkordeon angezeigt werden. Mit search-link kann festgelegt werden, ob automatisch ein Link zur Suchseite erzeugt werden soll.

Für jedes Feld müssen label und field definiert werden. field muss mit einem der Felder aus den Metadaten der Verzeichnungseinheiten übereinstimmen. Mit dem Feld label können mehrsprachige Bezeichnungen definiert werden.

Für search-link sind die Werte fulltext oder filter erlaubt. Mit fulltext wird ein Link auf die Suche generiert, der eine Volltextsuche mit dem Wert des Feldes auslöst. Mit filter wird das Suchresultat nach dem Feld gefiltert. Wenn im Suchschema das Feld als Filter definiert wurde, wird der Filter ausgefüllt. Wenn das Feld nicht als Filter definiert wurde, wird eine Erweiterte Suche abgesetzt.

Anbei ein Beispiel eines Schemas:

metadata-view:
  - schema:
    - label:
        de: Parent
      fields:
        - field: title
          label:
            de: Title
          search-link: fulltext
        - field: signature
          label:
            de: Signatur
          search-link: filter

In diesem Kontext haben wir ein Akkordeon mit zwei definierten Feldern: title und signature. Für beide Felder haben wir jeweils eine Bezeichnung in der Sprache Deutsch festgelegt. Das Parent-Label wird im Titel des Akkordeons verwendet.

# Zuordnung von Enum-Werten zu Feldern

In der Konfiguration können auch Enums auf Felder gemappt werden. In diesem Beispiel wird das Feld lending_institution mit dem Enum ownership gemappt. Das Enum ownership wird im Modell definiert.

metadata-view:
  - schema:
    - label:
        de: Institutionen
      fields:
        - field: lending_institution
          label:
            de: Ausleihende Institution
          enum: ownership

Dies bewirkt, dass der im Feld lending_institution definierte Wert mit dem Enum ownership dargestellt und übersetzt wird.

# Standardfelder

Momentan werden als Filter folgende Standardfelder unterstützt:

  • accessibility (Char)
  • ais_created (Date)
  • ais_modified (Date)
  • approval (Char)
  • archival_type (MultiValue)
  • author (Char)
  • contains (Char)
  • contains_also (Char)
  • content_form (Char)
  • copyright (Char)
  • created_display (Char)
  • created_end (Integer)
  • created_start (Integer)
  • deliveries (MultiValue)
  • descendant_path (Char)
  • description (Char)
  • description_level (Char)
  • descriptors (MultiValue)
  • editor (Char)
  • files_are_public (Boolean)
  • is_approval_required (Boolean)
  • is_public (Boolean)
  • is_reproducible (Boolean)
  • is_shareable (Boolean)
  • legal_state (Char)
  • level (Integer)
  • order_classification (Char)
  • ownership (Char)
  • page_title (Char)
  • pk (Char)
  • protection_base_date (Char)
  • protection_duration (Integer)
  • protection_period_category (Char)
  • protection_period_end (Date)
  • provenance (Char)
  • signature (Char)
  • text (Char)
  • title (Char)
  • usability (Char)
  • usability_accessibility_type (Char)

# Verwendung von Standard-Komponenten

Im Beispiel oben wird eine Komponente zusammengestellt, welche eine definierte Liste von Metadaten-Feldern auflistet. Es besteht auch die Möglichkeit, die vom Produkt vordefinierten Standardkomponenten zu verwenden, um so beispielsweise eine Karte mit Standorten zu integrieren. Die beiden Möglichkeiten sind kombinierbar. Der Titel der Komponenten kann auch mit der label Eigenschaft konfiguriert werden. Das nachfolgende Beispiel zeigt die Verwendung der verschiedenen Standardkomponenten:

metadata-view:
  # Allgemeine Auflistung von spezifischen Metadaten-Feldern
  - schema:
    - label:
        de: Grundinformationen
      fields:
        - field: title
          label:
            de: Titel

    # ISAD(G): Identifikation
    - component: Identity

    # ISAD(G): Kontext
    - component: Context

    # ISAD(G): Inhalt und innere Ordnung
    - component: ContentStructure

    # ISAD(G): Zugangs- und Benutzungsbestimmungen
    - component: AccessUse

    # ISAD(G): Allied materials
    - component: AlliedMaterials

    # Unterobjekte in Tektonik
    - component: Children

    # Verknüpfungen
    - component: Relations

    # Deskriptoren
    - component: Descriptors

    # Ablieferungen
    - component: Deliveries

    # Auflistung aller Custom-Fields
    - component: CustomFields

    # Karte mit Standorten
    - component: Location

    # Kommentar-Funktion
    - component: Comments

# Komplettes Beispiel

Anbei ein vollständiges Beispiel mit zwei Bedingungen:

metadata-view:
  - condition:
      filter:
        archival_type:
          - Tonaufzeichnung
      exclude:
        description_level: 'Dossier'
    schema:
      - label:
          de: Parent
        fields:
          - field: title
            label:
              de: Titel
          - field: signature
            label:
              de: Signature
    - component: Location
    - component: Relations
      label:
        de: Verknüpfungen mit anderen Verzeichnungseinheiten

  - condition:
      filter:
        description_level: 'Dossier'
    schema:
      - label:
          de: Second Accordion
        fields:
          - field: title
            label:
              de: Customized
          - field: signature
            label:
              de: Signatur
          - field: approval
            label:
              de: Approval
          - field: usability
            label:
              de: Usability
    - component: Location
    - component: Comments

  - schema:
    - label:
        de: No condition block
      fields:
        - field: title
          label:
            de: Title

Die erste Bedingung beinhaltet eine Filterung nach archival_type und eine Ausschlussbedingung durch description_level. Für die Verzeichnungseinheiten, die diese Bedingung erfüllen, wird der erste Definitionsblock mit title und signature angewendet. Die Verzeichnungseinheiten, die diese Bedingung nicht erfüllen, werden von der nächsten Bedingung überprüft. Die Verzeichnungseinheiten, welche die zweite Bedingung mit title, signature, approval und usability erfüllen.

Der letzte Block enthält keine condition. Dieser Block wird für die Verzeichnungseinheiten angewendet, die die ersten beiden Bedingungen nicht erfüllen.

Wenn ein Block ohne condition definiert ist, wird eine Standardansicht für die Verzeichnungseinheiten angewendet. Die Standardansicht stellt alle verfügbaren Daten dar.

# Verknüpfungen

Verzeichnungseinheiten können Verknüpfungen zu anderen Verzeichnungseinheiten haben. Die Verknüpfungen werden im folgenden Beispiel konfiguriert.

metadata-view:
  - schema:
      - label:
          de: Personen
        component: Relations
        filter:
          archival_type: people
        exclude:
          description_level: Dossier

Bei obigem Beispiel wird ein Abschnitt mit dem Titel Personen definiert. Für Verknüpfungen wird die Komponente Relations verwendet. Nun kann analog der condition ein filter und/oder exclude definiert werden. In diesem Beispiel werden also nur diejenigen Verknüpfungen angezeigt die im Feld archival_type den Wert people und im Feld description_level nicht den Wert Dossier haben. Die Werte für filter und exclude lassen sich beliebig auf alle Standardfelder anwenden.

Weiter kann mit der Konfiguration die Art der Verknüpfung gefiltert werden:

metadata-view:
  - schema:
      - label:
          de: Freunde
        component: Relations
        relation:
          filter:
              role:
                - freund
      - label:
          de: Keine Feinde
        component: Relations
        relation:
          exclude:
            role:
              - feind

Obiges Beispiel zeigt für den Abschnitt Freunde nur Verknüpfungen an, die in der Rolle freund enthalten. Der Abschnitt Keine Feinde zeigt alle Relationen an ausser diejenigen, die in der Rolle nicht feind enthalten.