FTUI3 Label: Unterschied zwischen den Versionen

Aus FHEMWiki
 
Zeile 1: Zeile 1:
==Zeilenumbruch im Label==
==Zeilenumbruch im Label==
Wenn der Inhalt des Labels nur aus Text besteht, kann ein Zeilenumbruch durch das Einfügen des Strings <code><br></code> erzwungen werden.
Wenn der Inhalt des Labels nur aus Text besteht, kann ein Zeilenumbruch durch das Einfügen des Strings <code>&lt;br></code> erzwungen werden.


Wenn allerdings komplexere HTML-Inhalte enthalten sind, z.B.  <code><img ...></code>-Elemente, werden solche Zeilenumbrüche ignoriert. Mittels eines einfachen Tricks kann allerdings Abhilfe geschaffen werden. Dazu definiert man im Seitenheader etwas JavaScript-Code:
Wenn allerdings komplexere HTML-Inhalte enthalten sind, z.B.  <code><img ...></code>-Elemente, werden solche Zeilenumbrüche ignoriert. Mittels eines einfachen Tricks kann allerdings Abhilfe geschaffen werden. Dazu definiert man im Seitenheader etwas JavaScript-Code:
<pre>
  <script>
  <script>
   const ftui_linebreaker = () => input => linebreaker(input);
   const ftui_linebreaker = () => input => linebreaker(input);
Zeile 17: Zeile 18:
   return ret;
   return ret;
  }
  }
Mit dieser Funktion wird der in der Variablen <code>input</code> übergebene Label-Text an den eingefügten Zeilenumbrüchen <code><br></code> aufgespalten und in eine so genannte ungeordnete Liste (unordered list <code><ul></code>) umzuwandeln und zurückzugeben. In einem <code><ftui-label></code>-Element wird dies angewendet als  
</pre>
Mit dieser Funktion wird der in der Variablen <code>input</code> übergebene Label-Text an den eingefügten Zeilenumbrüchen <code><br></code> aufgespalten und in eine so genannte ungeordnete Liste (unordered list <code>&lt;ul></code>) umzuwandeln und zurückzugeben. In einem <code>&lt;ftui-label></code>-Element wird dies angewendet als  
<pre>
  <ftui-label [text]="DEVICE:READING | ftui_linebreaker()" scroll></ftui-label>
  <ftui-label [text]="DEVICE:READING | ftui_linebreaker()" scroll></ftui-label>
</pre>
und resultiert in einer sauberen Ausrichtung der einzelnen Zeilen.
und resultiert in einer sauberen Ausrichtung der einzelnen Zeilen.
[[Kategorie:FHEM Tablet UI V3]]
[[Kategorie:FHEM Tablet UI V3]]

Aktuelle Version vom 4. Juni 2025, 15:41 Uhr

Zeilenumbruch im Label

Wenn der Inhalt des Labels nur aus Text besteht, kann ein Zeilenumbruch durch das Einfügen des Strings <br> erzwungen werden.

Wenn allerdings komplexere HTML-Inhalte enthalten sind, z.B. <img ...>-Elemente, werden solche Zeilenumbrüche ignoriert. Mittels eines einfachen Tricks kann allerdings Abhilfe geschaffen werden. Dazu definiert man im Seitenheader etwas JavaScript-Code:

 <script>
  const ftui_linebreaker = () => input => linebreaker(input);
  ...
  //-- helper function for linebreak
  function linebreaker(lines){
  let linea = lines.split('<br>');
  let num=linea.length;
  let ret='<ul style="list-style-type:none;margin-left:0px;">';
  for (var i = 0; i < num; i++) {
       ret+='<li>'+linea[i]+'</li>';
  }
  ret+='</ul>';
  return ret;
 }

Mit dieser Funktion wird der in der Variablen input übergebene Label-Text an den eingefügten Zeilenumbrüchen
aufgespalten und in eine so genannte ungeordnete Liste (unordered list <ul>) umzuwandeln und zurückzugeben. In einem <ftui-label>-Element wird dies angewendet als

 <ftui-label [text]="DEVICE:READING | ftui_linebreaker()" scroll></ftui-label>

und resultiert in einer sauberen Ausrichtung der einzelnen Zeilen.