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:dev [2024/06/11 18:16] adminedpweb3:dev [2025/02/03 15:19] (aktuell) admin
Zeile 1: Zeile 1:
-====== EDPweb ======+==== edp:web 3 ====
  
-==== Aufbau der Template-Struktur ====+=== Aufbau der Template-Struktur ===
  
-Beim Start des Dienstes EDPweb werden alle Dateien unter Beibehaltung der Ordner-Struktur aus dem Ordner Templates vorprozessiert und in den Ordner HTML kopiert.+Beim Start des Dienstes edp:web wird zunächst der Ordner "html" komplett geleert. Anschließend werden alle Dateien unter Beibehaltung der Ordner-Struktur aus dem Ordner Templates vorprozessiert und in den Ordner HTML kopiert.
  
-Beim Start wird der Ordner HTML einmal vollständig geleert. Der Ordner HTML bildet die Rechtestruktur von EDPweb in der Version 3 ab.+Der Ordner HTML bildet die Rechtestruktur von edp:web in der Version 3 ab. In der obersten Ebene des Ordners sind die Benutzerrollen angegeben. Standardmäßig vorgesehen sind die Benutzerrollen Default, UHS für Unfallhilfstellen, Abschnitt für Einsatzabschnitte, Abteilung für die Abteilungsrolle sowie. 
 + "info" für EDPinfo.
  
-In der obersten Ebene des Ordners sind die Benutzerrollen angegeben.+Jede Benutzerrolle kann nur Dateien aufrufen, die im Ordner HTML und nachfolgend dem Unterordner der eigenen Benutzerrolle vorhanden sind. Über den Endpoint "/html" kann nach Erfolg der Anmeldung jede Templatei über den relativen Pfad bezogen auf den Ordner "/html/{benutzerrolle}" aufgerufen werden
  
-Standardmäßig vorgesehen sind die Benutzerrollen Default, UHS für Unfallhilfstellen, Abschnitt für Einsatzabschnitte, Abteilung für die Abteilungsrolle sowie perspektivisch die Funktion EM für Einsatzmittel. 
  
-Diese Rolle soll einen begrenzten Zugriff auf die Daten im Sinne einer Ansicht für Tablet-PCs von Fahrzeugführern darstellen.+=== Sql-Abfragen ===
  
-Jede Benutzerrolle kann nur Dateien aufrufen, die im Ordner HTML und nachfolgend dem Unterordner der eigenen Benutzerrolle vorhanden sind.+Sql-Abfragen können nach folgendem Schema in den Templates eingebaut werden.
  
-Über den Endpoint slash HTML kann nach Erfolg der Anmeldung jede Templatei über den relativen Pfad bezogen auf den Ordner slash HTML slash Default aufgerufen werdenwerden.+<code> 
 +<sql query="Select....  where id=:id" params="id={$ID}"> 
 +%FELD1% 
 +</sql> 
 +</code>
  
 +Optional können beliebig viele Parameter durch Komma getrennt angegeben werden.
  
-Sql-Abfragen. +Das Format hierbei ist Parameter-Name=WERT
  
-Sql-Abfragen können nach folgendem Schema in den Templates eingebaut werden.+Sql-Abfragen können beliebig oft ineinander verschachtelt sein.
  
-Sql query-gleichparams-gleich.+Hierfür muss pro Stufe einmal "inner" vor den SQL-Tag geschrieben werdensodass bei doppelter Verschachtelung innersql und bei dreifacher Verschachtelung innerinnersql geschrieben wird.
  
-Optional können beliebig viele Parameter durch Komma getrennt angegeben werden.+<code> 
 +<innerinnersql query="...">
  
-Das Format hierbei ist Parameter-Name-Gleichwert.+</innerinnersql> 
 +</code>
  
-Sql-Abfragen können beliebig oft ineinander verschachtelt sein.+Abfragen mit dem Präfix presql werden einmal beim Start von edp:web vorprozessiert. Das kann genutzt werden, um beispielsweise Standardtexte aus der Datenbank zu laden, die im Einsatz keine Änderungen erfahren.
  
-Hierfür muss pro Stufe einmal inner vor den SQL-Tag geschrieben werden, sodass bei doppelter Verschachtelung inner SQL und bei dreifacher Verschachtelung inner inner SQL geschrieben wird.+=== Automatische Zeilenumbrüche / BR-Tag ===
  
-Abfragen mit dem Präfix prsql werden einmal beim Start von edp-web vorprozessiert.+Wenn innerhalb der Daten in der Datenbank Zeilenumbrüche vorhanden sind, werden diese von der Template-Engine automatisch um einen <br>-Tag erweitert, damit auch in der Webseite Zeilenumbrüche dargestellt werdenIn bestimmten Fällen kann es aber sein, dass ein solcher br-Tag nicht gewünscht ist. Wenn der Feldname des ausgegebenen Datenbankfelds mit NOBR-beginnt, wird das Feld ohne br-Tags ausgegeben. Hierfür kann die SQL-Abfrage genutzt werden: 
 +<code> 
 +<sql query="select feld as nobr_feld from tabelle"> 
 +%NOBR_FELD% 
 +</sql> 
 +</code>
  
-Das kann genutzt werden, um beispielsweise Standardtexte aus der Datenbank zu laden, die im Einsatz keine Änderungen erfahren. 
  
-IF-Abfragen.+=== IF-Abfragen ===
  
 IF-Abfragen können nach folgender Syntax eingebaut werden. IF-Abfragen können nach folgender Syntax eingebaut werden.
 +
 +<code>
 +<if value1="1" value2="%ID%" operator="eq">
 +...
 +</if>
 +</code>
  
 Da die Performance von IF-Abfragen gegenüber SQL-Abfragen deutlich schlechter ist, sollten IF-Abfragen sehr zurückhaltend und nur in geringer Anzahl verwendet werden. Da die Performance von IF-Abfragen gegenüber SQL-Abfragen deutlich schlechter ist, sollten IF-Abfragen sehr zurückhaltend und nur in geringer Anzahl verwendet werden.
Zeile 44: Zeile 61:
 Bei Listen, Ansichten, bei denen viele Datensätze möglich sind, sollte unbedingt vermieden werden, pro Datensatz eine IF-Abfrage vorzusehen. Bei Listen, Ansichten, bei denen viele Datensätze möglich sind, sollte unbedingt vermieden werden, pro Datensatz eine IF-Abfrage vorzusehen.
  
-Includes-Tags.+===Includes-Tags===
  
-Includes können verwendet werden, um einzelne Seiten einzubinden.+Includes können verwendet werden, um einzelne Seiten einzubinden. Hierbei ist der komplette Pfad bezogen auf das Verzeichnis der Anwendung edpweb.exe anzugeben.
  
-Hierbei ist der komplette Pfad bezogen auf das Verzeichnis der Anwendung edp-web.exe anzugeben.+Im nachfolgenden Beispiel wird die Datei "wachbuchtable.html" aus dem Ordner "templates\default\wachbuch\views" eingebunden: 
 +<code> 
 +{inc}templates/default/wachbuch/views/wachbuchtable.html{/inc} 
 +</code>
  
-Einbinden von Parametern.+===Einbinden von Parametern===
  
 Parameter können sowohl aus der URL als auch aus der Session eingebunden werden. Parameter können sowohl aus der URL als auch aus der Session eingebunden werden.
  
-Der Parameter muss dann immer in geschwungener Klammer und bei einem URL-Parameter mit dem vorangestellten Dollarzeichen angegeben werden.+Der Parameter muss dann immer in geschwungener Klammer und bei einem URL-Parameter mit dem vorangestellten Dollarzeichen angegeben werden. ({$ID}) 
 + 
 +Parameter aus der Session werden über die Raute angegeben. ({#FUNKTION}) 
 + 
 +=== Nutzerberechtigungen === 
 + 
 +Zum Aufruf von Endpunkten, die schreibend Daten an edp:web senden, muss jeder dieser Endpunkte, der über die URL /action aufgerufen wird, auch explizit für die Benutzerrolle freigeschaltet werden. 
 + 
 +Um dies möglichst einfach zu gestalten, kann in jeder Template-Vorlage innerhalb eines Action-Tags ein Endpoint angegeben werden, der in dieser Template-Datei benötigt wird. 
 + 
 +<code> 
 +{ACTION}uhs/saveuhspatient{/ACTION} 
 +</code> 
 + 
 +Beim Prozessieren der Templates werden so alle eingetragenen Actions aus der jeweiligen Benutzerrolle übernommen und in der Rechtestruktur von edp:web gespeichert. 
 + 
 +Innerhalb einer jeden Template-Datei können beliebig viele Action-Tags angegeben werden. 
 + 
 +Sollen Rechte bewusst entzogen werden, wenn beispielsweise im Custom-Ordner eine Template-Datei hinterlegt ist, die ein Recht wieder sperren soll, so kann hierfür der Noaction-Tag genutzt werden. 
 + 
 +<code> 
 +{NOACTION}uhs/saveuhspatient{/NOACTION} 
 +</code> 
 + 
 +Dadurch, dass die Templates immer in der Ordnerstruktur einer jeweiligen Benutzerrolle liegen, beziehen sich die Freischaltungen der Actions immer auf diese Benutzerrolle. 
 + 
 +=== Einbinden eigener Anpassungen === 
 + 
 +Wenn eigene, selbst angepasste Template-Vorlagen eingebunden werden sollen, können diese im Ordner "custom" abgelegt werden. Dieser Ordner wird beim Präprozessieren der Templates nach dem eigentlichen Templates-Ordner verarbeitet und überschreibt damit die Standard-Daten. Da der custom-Ordner von EDP standardmäßig nicht genutzt und beschrieben wird, werden hier hinterlegte Anpassungen auch bei Updates nicht verändert und bleiben so bestehen. 
 + 
 +====== Zugriff Websockets ======
  
-Parameter aus der Session werden über die Raute angegeben.+Wenn eigene Benutzerrolle angelegt werden, erhalten diese Standardmäßig keinen Zugriff auf den Websocket-Channel "Einsätze". Wenn innerhalb der Template-Struktur für diese Nutzerrolle auch der Ordner einsatz mit der Datei elw.html hinterlegt ist, wird der Einsatzchannel mit Zugriff auf alle Einsätze freigegeben (ab Version 3.1.96).