Neues Widget: Include (Template in Template) -> zum Testen

Begonnen von GeoCeKid, 23 Dezember 2017, 05:48:54

Vorheriges Thema - Nächstes Thema

GeoCeKid

Ich hab eine Lösung für das schon öfters gewünschte Template in Template.

Habe dazu ein einfaches Widget geschrieben (siehe Anhang) und stelle das hier gern zum Testen zur verfügung.

Aufruf ist fast identisch zum regulären Template:

<div data-type="GCKinclude" data-url="template.html" data-parameter='{"var_device":"Test123"}'></div>


Es wird wie ihr seht wie ein normales Widget aufgerufen,
das Template wird mit "data-url" übergeben,
Parameter können natürlich ganz normal mit "data-parameter" übergeben werden.

Bei Fragen und Anregungen stehe ich gern zur verfügung.

setstate

Das ist aber eine einfache wie geniale Lösung. Die Rekursion built-in.
Da könnte man glatt den Template Teil aus der fhem-tablet-ui.js entfernen und dein Plugin in den Standard als data-type="template" übernehmen.

Das me.addReading() braucht es aber nicht, da keine Readings von FHEM abgeholt werden sollen.

GeoCeKid

hab gefühlt ne halbe Ewigkeit gebraucht um auf die Idee zu kommen ;)

von mir aus kann es gern übernommen werden :)

derHeimwerker

Könnte man die Möglichkeit der Parameterübergabe auch in das link-widget mit einbauen ?

setstate

Das Include ist jetzt per default verfügbar.

Alte und neue Schreibweise kann benutzt werden, die alte Variante wird in die data-type="include" Schreibweise umgewandelt. Damit funktioniert jetzt auch Template in Template.

throbin

Hi, wie sieht dann die Syntax genau aus?
Ich habe es so probiert und leider ohne Erfolg, Widget bleibt leer und der Browser (Chrome) scheint sehr beschäftigt zu sein...

// Hauptseite:
<li data-row="1" data-col="1" data-sizex="6" data-sizey="5">
        <header><div data-type="label" class="medium orange">Küche</div></header>
        <div data-type="include" data-url="2_rollaeden_inc_kueche.html"></div>
</li>

// Unterseite:
<div data-type="include" data-url="templates/template_shutters_v1.html" parameter='{"shutterDevice":"zw_Kueche_Rollo_FL"}'></div>
<div data-type="include" data-url="templates/template_shutters_v1.html" parameter='{"shutterDevice":"zw_Kueche_Rollo_FR"}'></div>


Mit der alten Syntax funktioniert es auch nicht.

n4rrOx

<div data-type="include" data-url="templates/template_shutters_v1.html" parameter='{"shutterDevice":"zw_Kueche_Rollo_FL"}'></div>

in

<div data-type="include" data-url="templates/template_shutters_v1.html" data-parameter='{"shutterDevice":"zw_Kueche_Rollo_FL"}'></div>

ändern?