From 5fe19547563878f4305a5edbe0f404adaa8e65d2 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 23 Jan 2021 15:32:03 +0000 Subject: [PATCH] Update Umsetzung --- Projektarbeit-3/Umsetzung.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Projektarbeit-3/Umsetzung.md b/Projektarbeit-3/Umsetzung.md index c864a59..e55687f 100644 --- a/Projektarbeit-3/Umsetzung.md +++ b/Projektarbeit-3/Umsetzung.md @@ -558,6 +558,32 @@ Folgender schematischer Ablauf liegt der TableComponent zugrunde: +Wird in der Tabelle eine Reihe über die Checkbox ausgewählt, so wird folgende Methode aufgerufen: + +```typescript +selectRow(selection: MatCheckboxChange, row): void { + let markerToDisplay = []; + this.iterableToSource.forEach(point => { + if (point.stationId === row.stationId) { + this.selectionModel.toggle(point); + } + }); + this.iterableFromSource.forEach(point => { + if (point.stationId === row.stationId) { + this.selectionModel.toggle(point); + } + }); + this.selectionModel.selected.forEach(point => { + markerToDisplay.push(point); + }); + markerToDisplay = this.changePolyLineColorForDuplicateBikePoints(markerToDisplay); + this.map.drawTableStationMarker(markerToDisplay); +} +``` +Es wird, egal in welcher Tabelle eine Checkbox gedrückt wird, überprüft ob in der anderen Tabelle auch eine Station mit gleicher ID vorhanden ist. Ist dies der Fall, wird diese auch ausgewählt. Aus dem `SelectionModel` werden alle ausgewählten Stationen gefiltert und an die Map für die Marker Generierung weitergereicht. Davor wird allerdings noch mit `changePolyLineColorForDuplicateBikePoints` geprüft, ob Duplikate in der Liste vorhanden sind. Ist dem so, so wird die Polyline Farbe auf Blau gesetzt um Station, die in beiden Tabellen vorkommen noch einmal extra zu visualisieren. + + + # Deployment Da es sich um ein Web-Projekt handelt, lag die Idee nahe, es auf einem Server in der Cloud zu deployen. Wir haben uns hierbei für den Anbieter [Hetzner](https://hetzner.cloud) entschieden. Dort läuft ein Ubuntu 20.04 Server mit zwei CPU Kernen und 2 Gigabyte Arbeitsspeicher. Dies ist vollkommen ausreichend für dieses Projekt. In der Serverkonsole kann man CPU, Festplatte und Netzwerk beobachten.