Neuentwicklung Verzeichnisstrukturen
Ziel
Die vorhandenen, sehr alten Verzeichnisstrukturen sollen komplett neu entwickelt werden.
Beschreibung
Verzeichnisstrukturen in Stud.IP (Einrichtungs- und Veranstaltungshierarchie) bauen noch auf sehr alten Grundlagen auf. Besonders zu nennen sind hier die Klassen DbSnaphot
, DbView
und SemBrowse
. Diese Klassen sollen durch Neuimplementierungen ersetzt und entfernt werden.
Maßnahmen
Überblick
Durch den Neubau sollen die letzten Vorkommnisse von DBSnapshot, DBView und der damit verbundenen $_views ausgebaut werden. Diese werden nur noch im Kontext des SemTree, RangeTree, SemBrowse und in Externen Seiten und Evaluationen verwendet.
Details
Für SemTree
und RangeTree
werden neue Baumrepräsentationen geschaffen, die nicht mehr auf die alten Views aufsetzen. Damit wird auch SemBrowse
umgebaut bzw. durch eine neue Implementierung ersetzt.
Damit verbleibt die Nutzung der alten DbSnapshot und DbView-Klassen in den externen Seiten und Evaluationen: Die externen Seiten werden von Peter Thienel komplett neu gebaut, Evaluationen sollen ausgebaut und durch Fragebogenfunktionalität ersetzt werden. Diese Vorkommen können also ignoriert werden.
Neue API
Die neue API soll eine abstrakte Darstellung von Baumstrukturen in Stud.IP ermöglichen. Ein Interface oder eine abstrakte Klasse stellt die allgemeine, generische Definition dessen dar, was Bäume in Stud.IP sind. Bei Bedarf werden für SemTree und RangeTree eigene Implementierungen erstellt. Die Implementierungen sollen es ermöglichen, sowohl inkrementell (z.B. per AJAX) Baumelemente abzufragen als auch die vollständige Struktur auszulesen. Einzelne Knoten eines Baumes sollen neben einem Namen und einer ID auch optional Icons bzw. Avatare und Links enthalten können.
Darstellung
Zwei Darstellungen einer Baumstruktur sollen möglich sein:
- Aufklappbarer Baum
- Optional soll es hier Checkboxen bzw. Radiobuttons zur Auswahl/Markierung geben
- Aktionen „alle auf-/zuklappen“, „alle markieren“, „alle Markierungen entfernen“
- Optionales Suchfeld oberhalb des Baums, das alle gefundenen Unterelemente aufklappt
- Ähnlich der jetzigen Darstellung in der Studienbereichtszuordnung einer VA
- Liste der Elemente eines einzelnen Abschnitts
- Breadcrumbs oberhalb der Liste mit Sprungmöglichkeit zu den einzelnen Ebenen darüber
- Orientiert an der Darstellung des Dateibereichs Zweitere Darstellung wird an den Stellen verwendet, die bisher für die Anzeige der Sem- und RangeTree-Hierarchien verwendet wurden, also z.B. unter Admin -> Standort oder in der Suche im Vorlesungsverzeichnis.
Technische Umsetzung
Zur Darstellung sollen Vue-Komponenten eingesetzt werden, die via JSON ggf. Elemente nachladen. Die Anzeige der Baums kann z.B. als SVG realisiert werden, bei größeren Datenmengen (wie SemTree oder MVV-Strukturen ist zu evaluieren, ob die d3js-Bibliothek Verwendung finden soll, die für große Datenmengen ausgelegt ist). Generell soll die API auch für weitere Szenarien geeignet sein, die Baumstrukturen beinhalten, wie z.B. die Navigation, Datei- und Ordnerhierarchie, Inhaltsverzeichnis etc. Entsprechende Implementierungen werden aber nicht in diesem StEP umgesetzt.
Kurzbezeichnung des Integrationsaufwandes
-
mittel
Neuimplementierung und Ausbau vonDbSnapshot
,DbView
,SemBrowse
und den Stellen, die diese Klassen verwenden (außer o.g. Ausnahmen).
Durchführung
data-quest (Thomas)