Hauptmenü

FTUI version 3

Begonnen von Bunnu, 25 Oktober 2020, 09:25:41

Vorheriges Thema - Nächstes Thema

Eisix

Zitat von: yersinia am 25 Januar 2021, 10:25:04
vim direkt in der shell. ;D
Danke, dachte schon ich bin das letzte Relikt einer aussterbenden Art.  8)

Nutze auch vi in der Shell.

Gruß
Eisix


torte

Zitat von: yersinia am 25 Januar 2021, 10:25:04
Wieso doppelt? Vererbt sich das hidden nicht auf die Kindelemente?

mh, ja weil ich das device auch in dem content file nutze welches auch für hidden Ausschlaggebend ist.


index.html

<ftui-content file="content/content_system_door_status.html" device="device" devicename="tuer" reading="state" displayicon="circle"></ftui-content>



content_system_door_status.html

<ftui-view-section [hidden]="{{device}}:{{reading}} | map('close:true, open:false')" class="size-2">
<ftui-view-item>
<ftui-row class="size-2">
<ftui-column align-items="left" width="10%">
<ftui-icon class="size-0" name="{{displayicon}}" [color]="{{device}}:{{reading}} | map('`close`:green, .*:danger')"></ftui-icon></ftui-tab>
</ftui-column>
<ftui-column align-items="left" width="60%" >
<ftui-label class="size-p65" text="{{devicename}}"></ftui-label>
</ftui-column>
<ftui-column align-items="left" width="30%">
<ftui-label class="size-p65" [text]="{{device}}:{{reading}}:time | toDate() | ago() | timeFormat('mmmmmm minutes')" interval="60"></ftui-label>
</ftui-column>
</ftui-row>
</ftui-view-item>
</ftui-view-section>


Das hidden müsste eigentlich auch in dem FTUI Content angegeben werden aber wie bekomme ich das dann in content_system_door_status.html genutzt? Klar kann ich das mit in der Zeile des FTUI Content eintragen aber dann ist ja doppelt einmal so wie oben und dann noch mal als Attribut hinter hidden

Hoffe du verstehst wie ich das meine.

Grüße
Torte

yersinia

#692
Zitat von: Eisix am 25 Januar 2021, 10:38:42
Danke, dachte schon ich bin das letzte Relikt einer aussterbenden Art.  8)

Nutze auch vi in der Shell.
Vor allem, vi[m] ist auf fast jedem Linux/Unix-System zu finden und optimal fürs schnelle Edit von irgendwelchen Dateien in der shell, insb. via ssh.


Ich dachte, es ginge so:
<ftui-content file="content/content_system_door_status.html" device="device" devicename="tuer" reading="state" displayicon="circle" [hidden]="device:state | map('close:true, open:false')"></ftui-content>
Also das <ftui-content> auf hidden setzen.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

torte

Zitat von: yersinia am 25 Januar 2021, 10:44:01


Ich dachte, es ginge so:
<ftui-content file="content/content_system_door_status.html" device="device" devicename="tuer" reading="state" displayicon="circle" [hidden]="device:state | map('close:true, open:false')"></ftui-content>
Also das <ftui-content> auf hidden setzen.

Ja so geht es klar, ist doch aber doof, weil ich zweimal das device und angeben muss.  8)

<ftui-content file="content/content_system_door_status.html" device="device" devicename="tuer" reading="state" displayicon="circle" [hidden]="device:state | map('close:true, open:false')"></ftui-content>


grossmaggul

ZitatVor allem, vi[m] ist auf fast jedem Linux/Unix-System zu finden und optimal fürs schnelle Edit von irgendwelchen Dateien in der shell, insb. via ssh.
Das ist schon richtig, trotzdem editiere ich größere Texte doch lieber mit Brackets auf dem Mac, da habe ich Syntax Highlighting direkt verfügbar und muß mir nicht tausend Shortcuts merken.;)
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

Eisix

Hab was gebastelt für homestatus. Geht bestimmt schöner wenn sich jemand damit auskennt :o :P


<ftui-column>
<ftui-row align-items="top" width="100%" height="70%">
<ftui-column align-items="top" width="90%" class="homebox">
        <ftui-row>
                <ftui-button fill="" (value)="set rgr_Residents" states="gotosleep" [class-name]="rgr_Residents:state | map('home:homebuttons, gotosleep:homebuttonsok, absent:homebuttons, gone:homebuttons')">
                        <ftui-icon class="size-3" name="bed" color="mywhite"></ftui-icon>
                </ftui-button>
                <ftui-button fill="" (value)="set rgr_Residents" states="absent" [class-name]="rgr_Residents:state | map('home:homebuttons, gotosleep:homebuttons, absent:homebuttonsok, gone:homebuttons')">
                        <ftui-icon class="size-4 my-top-10" name="car" color="mywhite"></ftui-icon>
                </ftui-button>
                <ftui-button fill="" (value)="set rgr_Residents" states="gone" [class-name]="rgr_Residents:state | map('home:homebuttons, gotosleep:homebuttons, absent:homebuttons, gone:homebuttonsok')">
                        <ftui-icon class="size-1" name="suitcase" color="mywhite"></ftui-icon>
                </ftui-button>
        </ftui-row>
        <ftui-row>
                <ftui-button fill="" (value)="set rgr_Residents" states="home" [class-name]="rgr_Residents:state | map('home:homebuttonok, gotosleep:homebutton, absent:homebutton, gone:homebutton')">
                        <ftui-icon class="size-3" name="home1"
color="mywhite"
></ftui-icon>
                </ftui-button>
        </ftui-row>
</ftui-column>
</ftui-row>

<ftui-row fixed-bottom">
<ftui-image
src="../images/Minion-Hello-icon.png"
width="45px" height="45px"
[class-name]="rr_User5:state | map('absent:myimage, gone:myimage ')"
></ftui-image>
<ftui-image
src="../images/Minion-Girl-icon.png"
width="45px" height="45px"
[class-name]="rr_User4:state | map('absent:myimage, gone:myimage ')"
></ftui-image>
<ftui-image
src="../images/Minion-Kungfu-icon.png"
width="45px" height="45px"
[class-name]="rr_User3:state | map('absent:myimage, gone:myimage ')"
></ftui-image>
<ftui-image
src="../images/Minion-Dancing-icon.png"
width="45px" height="45px"
[class-name]="rr_User1:state | map('absent:myimage, gone:myimage ')"
></ftui-image>
<ftui-image
src="../images/Minion-Amazed-icon.png"
width="45px" height="45px"
[class-name]="rr_User2:state | map('absent:myimage, gone:myimage ')"
></ftui-image>
</ftui-row>
</ftui-column>


custom.css

ftui-column.homebox {
  width: 90%;
  height: 100px;
  border: 5px solid green;
  padding: 0px;
  border-radius: 10px 10px 10px 10px;
}

ftui-button.homebuttons {
       width: 100%;
       float: left;
       border-right: 3px solid green;
       border-left: 3px solid green;
}

ftui-button.homebuttonsok {
       width: 100%;
       float: left;
       border-right: 3px solid green;
       border-left: 3px solid green;
       background-color: green;
}
ftui-button.homebutton {
       width: 100%;
       float: left;
       height: 60px;
       border-right: 3px solid green;
       border-left: 3px solid green;
}

ftui-button.homebuttonok {
       width: 100%;
       float: left;
       height: 60px;
       border-right: 3px solid green;
       border-left: 3px solid green;
       background-color: green;
}

.myimage {
    opacity: 0.3;
}


Vielleicht kanns jemand brauchen oder teilt was besseres.

Gruß
Eisix

khk123

#696
Zitat von: moonsorrox am 24 Januar 2021, 14:41:47
weitere Formatierungs Frage
Ich habe zwei Button mit denen ich Popups bediene linker Button in der index.html (nicht ausgelagert) rechts Button mit ausgelagert also nicht in der index vorhanden.
Der Button rutscht komplett an den linken Rand sollte default nicht immer "center" sein..?

Klappt bei mir mit folgender ausgelagerter Definition:

ftui-column>
<ftui-icon name="trash-o"   
[name]="Abfall:next | map('Biotonne_.*:trash-o, Gartenabfaelle_.*:trash-o, GelberSack_.*:glass, Altapier_.*:trash-o, Restmuell_.*:trash-o, Sondermuell_.*:recycle')" popup-target="popup-abfall"
[color]="Abfall:next | map('Biotonne_.*:green, Gartenabfaelle_.*:green, GelberSack_.*:yellow, Altpapier_.*:blue, Restmuell_.*:gray, Sondermuell_.*:danger')">
</ftui-icon>
<ftui-badge color="danger" [text]="Abfall:next_days"></ftui-badge>

<ftui-label [text]="Abfall:next | replace(/_./g, '')"></ftui-label>
</ftui-column>
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

moonsorrox

ja danke für die Antwort, ich habe es jetzt auch schon komplett ohne alles drin... warum das nicht ging weiß ich jetzt auch nicht.
Icon ist mittig sollte eigentlich default center sein.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

setstate

Tipp:

man kann sich eigene Pipe-Functions für häufig genutzte Anwendungen anlegen.

Direkt im HTML per Script-Tag oder in einem user.js Files


<script >
  const minusBlue = () => input => Number(input) < 0 ? 'blue' : null;
</script>


Immer wenn der Wert unter 0 ist, dann Farbe das Labels in blau. Wenn man das häufig braucht, spart man sich viele gleiche, lange map().


   <ftui-label [text]="AgroWeather:fc0_tempMin" [color]="AgroWeather:fc0_tempMin | minusBlue()" size="4" unit="°C"></ftui-label>

khk123

Wenn ich bei ftui-weather type="png" angebe, wird trotzdem das svg-icon gesucht. Was mache ich da falsch?


<ftui-weather  class="size-4" icon-set="kleinklima" provider="proplanta" type="png" [condition]="Wetterext:fc1_weatherDay"></ftui-weather>
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

setstate

Zitat von: khk123 am 26 Januar 2021, 20:21:19
Wenn ich bei ftui-weather type="png" angebe, wird trotzdem das svg-icon gesucht. Was mache ich da falsch?


<ftui-weather  class="size-4" icon-set="kleinklima" provider="proplanta" type="png" [condition]="Wetterext:fc1_weatherDay"></ftui-weather>


type greift bei weather nicht. Die Icon-Name wird komplett im weather.map.js festgelegt.

khk123

Hab jetzt die Definitionen in weather.map.js auf ,,png" geändert. Es wäre aber schön, wenn type hier auch ziehen würde, denn nach dem nächsten Update ist meine Änderung wahrscheinlich wieder obsolet.
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

Mano

Ich bin gerade dabei meine alte Version auf FTUI3 umzubauen. Tolles Framework!

Ist denn vorgesehen Schleifen (FOR, WHILE) und Bedingungen (IF ELSE, CASE) einzubauen?

yersinia

#703
Zitat von: setstate am 26 Januar 2021, 20:09:26Direkt im HTML per Script-Tag oder in einem user.js Files
Coole Sache, nur findet die ftui.helper.js diese nicht wenn via script direkt im HTML eingebunden; die Konsole sagt:
ReferenceError: minusBlue is not defined             ftui.helper.js:107:17

Über extener, eigener JS eingebunden funktioniert es.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

setstate

Zitat von: Mano am 27 Januar 2021, 08:48:53
Ich bin gerade dabei meine alte Version auf FTUI3 umzubauen. Tolles Framework!

Ist denn vorgesehen Schleifen (FOR, WHILE) und Bedingungen (IF ELSE, CASE) einzubauen?

Bis jetzt beinhaltet FTUI3 keine Render-Engine, die komplette Templates parsed und zyklisch oder eventbasiert den DOM neu rendert.
Es werden nur Attribute ausgelesen und der Dom einmalig beim Kreieren der Componenten erweitert.

Vielleicht wird es dann mal mit FTUI4 geben  8)

Also nein, Schleifen und Bedingungen wird es in absehbarer Zeit nicht geben.