//Cloudogu EcoSystem Docs

Pinned Dashboard

In der Konfiguration des Cockpit-Dogus kann ein "Pinned Dashboard" erstellt werden ( siehe Konfiguration-Dokumentation). Dieses Dashboard kann ausschließlich über die Dogu-Config verändert werden und ist nicht über die Web-Oberfläsche bearbeitbar.

Für größere Anpassungen an diesem Dashboard ist es jedoch sehr komplex die JSON-Daten des Dashboards zu bearbeiten. Um dies zu vereinfachen, kann das "Pinned Dashboard" kopiert werden und anschließend über die Web-Oberfläsche bearbeitet werden. Dazu müssen die folgenden Schritte ausgeführt werden.

Pinned Dashboard kopieren

Um eine Kopie des "Pinned Dashboard" zu erstellen, müssen zunächst die JSON-Daten des Dashboards bezogen werden. Dies kann z.B. im Chrome-Browser mit den enthaltenen "Developer-Tools" erfolgen:

  1. Das "Pinned Dashboard" des Cockpit im Browser öffnen
  2. Die Developer-Tools öffnen (F12)
  3. Zum Netzwerk-Tab wechseln
  4. Filter auf Fetch/XHR einstellen
  5. Den Request zu der URL .../cockpit/api/v1/userDashboardRelations/0 auswählen
  6. Den Vorschau-Tab auswählen und in der JSON-Struktur zu dashborad.content navigieren
  7. Mit der rechten Maus-Taste auf content klicken und Copy string contents auswählen
  8. Die JSON-Daten aus der Zwischenablage für die weitere Bearbeitung zwischenspeichern

Als Nächstes muss die Kopie des Dashboards in der Datenbank abgelegt werden. Dazu wird der Benutzername des Cockpit-Dogus in der PostgreSQL-Datenbank benötigt.

# Postgres Nutzernamen erhalten
docker exec -it cockpit doguctl config -e sa-postgresql/username

Anschließend muss in den PostgreSQL-Container gewechselt werden, um mit der Datenbank zu interagieren.

# In den PostgreSQL-Container wechseln
docker exec -it postgresql bash

# PSQL starten (Den db-username von oben verwenden)
# Zum Beispielbr
# psql -U cockpit_vhgppz -d cockpit_vhgppz
psql -U <db-username> -d <db-username>

Jetzt muss ein neues Dashboard mit den zuvor kopierten JSON-Daten in der Datenbank erstellt werden

INSERT INTO dashboards (content) VALUES ('<JSON-DATA>');

-- Zum Beispiel
-- INSERT INTO dashboards (content) VALUES ('{"title":"Willkommen","structure":"4-8","rows":[...]}');

Als letzter Schritt muss das neu erstellte Dashboard in der userDashboardRelations-Tabelle eingetragen werden. Dazu wird die USER-ID des verwendeten Benutzers und die DASHBOARD-ID des gerade erstellten Dashboards benötigt.

-- USER-ID abfragen
select * from users;

-- DASHBOARD-ID abfragen (Normalerweise handelt es sich um den letzten Eintrag in der Datenbank.)
select _id from dashboards;

Der Eintrag in der userDashboardRelations-Tabelle wird wie folgt erstellt:

INSERT INTO  "userDashboardRelations" ("type", "order", "userId", "dashboardId") VALUES ('creator', 1, <USER-ID>, <DASHBOARD-ID>)

-- Zum Beispiel
-- INSERT INTO  "userDashboardRelations" ("type", "order", "userId", "dashboardId") VALUES ('creator', 1, 1, 3);

Wenn das Cockpit in der Web-Oberfläche neu geladen wird, sollte das kopierte Dashboard jetzt angezeigt werden und kann nach Bedarf bearbeitet werden.