Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
edpweb3:dashboards [2025/01/28 13:26] – [Auslastungsansicht] pascaledpweb3:dashboards [2025/12/10 12:39] (aktuell) – dominik
Zeile 1: Zeile 1:
 ====== Dashboards ====== ====== Dashboards ======
  
-In der Funktion Dashboards können beliebig viele Dashboards definiert werden. Auf jedes dieser Dashboards lassen sich wiederum flexibel Info-Elemente positionieren. +In der mit edp:web 3 eingeführten Dashboard-Funktion können beliebig viele Dashboards definiert werden, um verschiedene Zahlenwerte aus dem EDP-System grafisch aufbereitet darzustellen. Die Dashboards sind dafür ausgelegt, über längere Zeit hinweg die Zahlenwerte au der Datenbank abzurufen und darzustellen. Sie aktualisieren sich dabei selbstständig. Auf jedem dieser Dashboards lassen sich wiederum flexibel Info-Elemente positionieren. 
-Diese Info-Elemente auf den Dashboards sind auf Ebene der Datenbank definiert und werden in einem gewissen Umfang mit jeder EDP-Installation ausgeliefert.+Diese Info-Elemente sind in der Datenbank definiert und werden in einem gewissen Umfang mit jeder EDP-Installation ausgeliefert. Sie können im EDP-Editr beliebig angepasst und editiert werden, sodass die dargestellten Zahlenwerte exakt Ihren Anforderungen entsprechen. 
  
-{{ :edpweb3:dashboard.jpg |}}+{{ :edpweb3:edpweb3_dashboard_manv.png?nolink |}} 
 + 
 +Es ist ebenfalls möglich, die via SQL-Abfrage erhaltenen Zahlenwerte in verschiedenen Formen graphisch darzustellen und z.B. auch Webinhalte, wie das Regenradar des DWD, in den Dashboards darzustellen.  
 + 
 +{{ :edpweb3:edpweb3_dashboard_unwetter.png?nolink |}} 
 + 
 +----
  
 Per Klick auf das Plus-Symbol in einer Dashboard-Ansicht wird an der Seite die Liste der verfügbaren Kacheln geöffnet, über die dann ein Element in die Darstellung übernommen werden kann. Per Klick auf das Plus-Symbol in einer Dashboard-Ansicht wird an der Seite die Liste der verfügbaren Kacheln geöffnet, über die dann ein Element in die Darstellung übernommen werden kann.
Zeile 10: Zeile 16:
 {{ :edpweb3:dashboard_inhalt.jpg |}} {{ :edpweb3:dashboard_inhalt.jpg |}}
  
-Über die Button mit den drei Punkten oben rechts an einer Kachel ist das Entfernen der Kachel aus dem Dashboard möglich. Ebenso gibt es die Möglichkeit, die Kachel nach vorne oder nach hinten zu verschieben. +Über die Button mit den drei Punkten oben rechts an einer Kachel ist das Entfernen der Kachel aus dem Dashboard möglich. Ebenso gibt es die Möglichkeit, die Kachel nach vorne oder nach hinten zu verschieben.
  
 {{ :edpweb3:dashboard_loeschen.jpg |}} {{ :edpweb3:dashboard_loeschen.jpg |}}
Zeile 16: Zeile 22:
 Bitte beachten Sie im Rahmen des Verschiebens, dass die Ansicht der Dashboards im Browser dynamisch in Abhängigkeit der Bildschirmauflösung und der einzelnen Elemente zusammengestellt wird, um die optimale Darstellung zu erreichen. Daher kann es vereinzelt sein, dass auch beim Verschieben um eine Position das Element an der gleichen Stelle bleibt. Trotzdem wurde es bereits um eine Position verschoben und muss dann für die aktuelle Fenstergröße gegebenenfalls ein zweites oder drittes Mal weiter verschoben werden. Bitte beachten Sie im Rahmen des Verschiebens, dass die Ansicht der Dashboards im Browser dynamisch in Abhängigkeit der Bildschirmauflösung und der einzelnen Elemente zusammengestellt wird, um die optimale Darstellung zu erreichen. Daher kann es vereinzelt sein, dass auch beim Verschieben um eine Position das Element an der gleichen Stelle bleibt. Trotzdem wurde es bereits um eine Position verschoben und muss dann für die aktuelle Fenstergröße gegebenenfalls ein zweites oder drittes Mal weiter verschoben werden.
  
 +
 +====== Dashboard als taktische Ansicht ======
 +Jedes Dashboard kann auch als taktische Ansicht aufgerufen werden. Diese Funktion ist insbesondere für einzelne, größere Einsätze gedacht. Wenn Sie ein Dashboard als taktische Ansicht öffnen, erscheint im Anschluss eine Liste aller laufender Einsätze, in denen Abschnitte gebildet wurden. 
 +
 +{{ :edpweb3:edpweb3_dashboard_uebersicht.png?nolink |}}
 +
 +Das sich dann bietenden Lagebild ist auf den zuvor ausgewählten Einsatz gefiltert und stellt somit nur die dort zugeteilten Einsatzmittel und -kräfte dar. Neben der Lagekarte können die verschiedenen Kacheln und deren Inhalte frei gewählt werden. 
 +
 +{{ :edpweb3:edpweb3_dashboard_lagebild.png?nolink |}}
 +
 +----
  
 === Dashboard erstellen === === Dashboard erstellen ===
  
-Beim Erstellen von Dashboards ist es möglich, diese nur durch Admins bearbeitbar zu machen. Das ist beispielsweise dafür vorgesehen, wenn bestimmte Dashboard-Ansichten dauerhaft in der jeweiligen Form vorgehalten werden sollen.+Beim Erstellen von Dashboards können diese auch für die Bearbeitung durch Nicht-Admins gesperrt werden. Das ist insbesondere dann sinnvoll, wenn die Form und Inhalte des Dashboards fest vorgegeben werden sollen. 
  
 Nicht gesperrte Dashboards können durch jeden Benutzer editiert werden, was insbesondere bei akuten Schadenslagen hilfreich sein kann, wenn bestimmte Informationen auf das Dashboard ergänzt werden sollen. Nicht gesperrte Dashboards können durch jeden Benutzer editiert werden, was insbesondere bei akuten Schadenslagen hilfreich sein kann, wenn bestimmte Informationen auf das Dashboard ergänzt werden sollen.
  
-=== Beispiel-Elemente ===+---- 
 +===== Beispielelemente ===== 
  
 === Auslastungsansicht === === Auslastungsansicht ===
  
 <code> <code>
-INSERT INTO `edpweb_dashboard_templates` (`KATEGORIE`, `TITLE`, `TYP`, `WIDTH`, `HEIGHT`, `SQL_STRING`, `SUBTITLE`, `EXT_DATA`, `ICON`, `HTML`) VALUES ('Einsatzmittel', 'Auslastung', 0, 2, 4, NULL, '', NULL, NULL, '<div class="card-body px-0 pt-1">\r\n          <ul class="list-group">\r\n                  <sql query="SELECT COALESCE(NULLIF(TYP, \'\'), \'ohne Typ\') AS TYP, C FROM (SELECT TYP, COUNT(*) AS C FROM EINSATZMITTEL WHERE DISPOSITION=1 GROUP BY TYP HAVING TYP IS NOT NULL AND TYP <> \'\' AND COUNT(*)>0) AS T order by c desc LIMIT 9">\r\n                       <li class="list-group-item">\r\n                           <span>%TYP% (\r\n                           <innersql query="SELECT ROUND((COUNT(*)/(SELECT COUNT(*) FROM EINSATZMITTEL WHERE DISPOSITION=1 AND TYP=\'%TYP%\'))*100) AS SCORE FROM EINSATZMITTEL WHERE DISPOSITION=1 AND EINSATZ IS NOT NULL AND EINSATZ <> \'\' AND TYP=\'%TYP%\'">%SCORE%\r\n                           </innersql>%)</span>\r\n                           <innersql query="SELECT ROUND((COUNT(*) / (SELECT COUNT(*) FROM EINSATZMITTEL WHERE DISPOSITION=1 AND TYP=\'%TYP%\'))*100) AS Score,\r\n                           CASE \r\n        WHEN ROUND((COUNT(*) / (SELECT COUNT(*) FROM EINSATZMITTEL WHERE DISPOSITION=1 AND TYP=\'%TYP%\')) * 100) <= 25 THEN \'bg-success\'\r\n        WHEN ROUND((COUNT(*) / (SELECT COUNT(*) FROM EINSATZMITTEL WHERE DISPOSITION=1 AND TYP=\'%TYP%\')) * 100) > 25 \r\n             AND ROUND((COUNT(*) / (SELECT COUNT(*) FROM EINSATZMITTEL WHERE DISPOSITION=1 AND TYP=\'%TYP%\')) * 100) <= 50 THEN \'bg-warning\'\r\n        ELSE \'bg-danger\'\r\n    END AS ScoreClass FROM EINSATZMITTEL WHERE DISPOSITION=1 AND EINSATZ IS NOT NULL AND EINSATZ<>\'\' AND TYP=\'%TYP%\'">\r\n                                     <div class="progress" role="progressbar" aria-label="Auslasung" aria-valuenow="%SCORE%" aria-valuemin="0" aria-valuemax="100">\r\n                                       <div class="progress-bar %ScoreClass%" style="width: %SCORE%%"></div>\r\n                           </innersql>\r\n                       </li>\r\n                  </sql>\r\n          </ul>\r\n</div>\r\n');+<div class="card-body px-0 pt-1"> 
 +  <ul class="list-group"> 
 +    <sql query=" 
 +      SELECT  
 +        COALESCE(NULLIF(TYP, ''), 'ohne Typ') AS TYP,  
 +        COUNT(*) AS C  
 +      FROM EINSATZMITTEL  
 +      WHERE DISPOSITION = 1  
 +      GROUP BY TYP  
 +      HAVING TYP IS NOT NULL AND TYP <> ''  
 +      ORDER BY TYP ASC"> 
 + 
 +      <li class="list-group-item"> 
 +        <span> 
 +          %TYP% ( 
 +          <innersql query=" 
 +            SELECT ROUND( 
 +              (COUNT(*) * 100.0) /  
 +              (SELECT COUNT(*) FROM EINSATZMITTEL WHERE DISPOSITION = 1 AND TYP = '%TYP%') 
 +            ) AS SCORE  
 +            FROM EINSATZMITTEL  
 +            WHERE DISPOSITION = 1 AND EINSATZ IS NOT NULL AND EINSATZ <> '' AND TYP = '%TYP%'"> 
 +            %SCORE% 
 +          </innersql> 
 +          %) 
 +        </span> 
 + 
 +        <innersql query=" 
 +          SELECT  
 +            ROUND( 
 +              (COUNT(*) * 100.0) /  
 +              (SELECT COUNT(*) FROM EINSATZMITTEL WHERE DISPOSITION = 1 AND TYP = '%TYP%') 
 +            ) AS SCORE, 
 +            CASE  
 +              WHEN ROUND((COUNT(*) * 100.0) / (SELECT COUNT(*) FROM EINSATZMITTEL WHERE DISPOSITION = 1 AND TYP = '%TYP%')) <= 25 THEN 'bg-success' 
 +              WHEN ROUND((COUNT(*) * 100.0) / (SELECT COUNT(*) FROM EINSATZMITTEL WHERE DISPOSITION = 1 AND TYP = '%TYP%')) <= 50 THEN 'bg-warning' 
 +              ELSE 'bg-danger' 
 +            END AS ScoreClass  
 +          FROM EINSATZMITTEL  
 +          WHERE DISPOSITION = 1 AND EINSATZ IS NOT NULL AND EINSATZ <> '' AND TYP = '%TYP%'"> 
 +           
 +          <div class="progress" role="progressbar" aria-label="Auslastung" aria-valuenow="%SCORE%" aria-valuemin="0" aria-valuemax="100"> 
 +            <div class="progress-bar %ScoreClass%" style="width: %SCORE%%"></div> 
 +          </div> 
 +        </innersql> 
 +      </li> 
 +    </sql> 
 +  </ul> 
 +</div> 
  
 </code> </code>
Zeile 49: Zeile 117:
 </code> </code>
  
 +=== Wetterdaten anzeigen ===
 +
 +Mit der DWD-Schnittstelle können auch Wetterdaten im Dashboard angezeigt werden. Für weitere Informationen [[server:schnittstelle:dwd|hier]] klicken.