# Schoenberg-WebApp

Das Repo "Schoenberg-WebApp" beinhaltet die Webanwendung der Edition _Arnold Schönberg: Briefwechsel mit den Verlagen Universal-Edition und Dreililien_ ([https://www.schoenberg-ue.at](https://www.schoenberg-ue.at)). Die Edition nutzt die Webanwendung im Zusammenspiel mit der XML-Datenbank [eXist-db](https://exist-db.org/exist/apps/homepage/index.html) und dem Datenpaket [Schoenberg-Data](https://github.com/Schoenberg-UE/Schoenberg-Data). Sie basiert außerdem auf der XQuery-Bibliothek [ediarum.WEB](https://github.com/ediarum/ediarum.WEB) bzw. einer für das Projekt leicht modifizierten [Variante](https://github.com/jannikFranz/ediarum.WEB) davon.

Inhalte des Repos:

| Ordner | Datei/Unterordner| Beschreibung |
| --- | --- | --- |
| /assets | | Externe Bibliotheken, die die App verwendet (z. B. Bootstrap, JQuery)
| /modules | | Module mit XQuery-Funktionen, die die Anwendungslogik enthalten
| | app.xql | enthält Template-Funktionen, die html-Fragmente zurückgeben (siehe dazu [https://exist-db.org/exist/apps/doc/templating](https://exist-db.org/exist/apps/doc/templating))
| | config.xqm | definiert allgemeine Variablen der Webapp
| | controller.xqm | Projektspezifische Funktionen für das Routing, die die Funktionen aus ediarum.WEB ergänzen/erweitern
| | i18n.xql | Funktionen für die Übersetzung von Textbausteinen
| | shared.xqm | Generelle Funktionen, auf die das app-Modul zugreift
| | view.xqm | Standard-Skript zur Verarbeitung von HTML-Dateien
| /resources | |
| | /css | Die Stylesheets der App als Less und kompiliertes CSS
| | /fonts | _Bravura_ Font für die Darstellung von musikalischen Zeichen
| | /i18n | Sprachdateien für Deutsch und Englisch mit Übersetzung einzelner Begriffe des Interface
| | /images | Bilddateien, darunter auch die Bilder aus dem Register für Stempel und Vordrucke
| | /js | Javascript-Dateien für Suchfunktionen, Popover und andere interaktive Elemente des Webinterface 
| | /xslt | XSL-Skripte zur Umwandlung der TEI-Daten in HTML-Inhalte für das Web
| /templates | | HTML-Templates: alle Seiten basieren auf dem page-Template, in welches die Templates header, nav und footer sowie die spezifischen Seiteninhalte (unter "views") geladen werden
| /views | | |
| | /static-pages | Statische HTML-Seiten für Projektbeschreibung, Impressum etc. 
| | /dynamic-pages | HTML-Seiten, in die mittels Template-Funktionen (siehe app.xql) spezifische Inhalte aus der Datenbank geladen werden: Listenansichten und Detailansichten der Briefe, Dokumente, Registereinträge
| appconf.xml | | Hauptkonfigurationsdatei: hier sind alle Daten der Edition als "Objekte" mit ihren Eigenschaften definiert (siehe die  [Dokumentation](https://github.com/ediarum/ediarum.WEB/blob/main/APPCONF.md) von ediarum.WEB); auf dieser Konfiguration basiert die API
| controller.xql | | Steuert das Routing in der App unter Verwendung von Funktionen der Bibliothek ediarum.WEB