[FTUI3] new Departure für FTUI3

Begonnen von mr_petz, 06 April 2021, 14:57:39

Vorheriges Thema - Nächstes Thema

OdfFhem

@setstate

Die Dateien rund um departure fehlen in controls_ftui.txt ...



@mr_petz

Zitat von: mr_petz am 09 April 2021, 21:47:41
Oder sollen wir hier weiter die Erweiterungen erarbeiten und setstate übernimmt diese dann?
Ich fände schon gut, wenn man in diesem "Betreff" weiterhin über Probleme/Erweiterungen zu diesem Thema sprechen würde und Du als Modulautor die Fäden in der Hand behälst. Durchgeführte Änderungen müssen aber irgendwann auch den offiziellen Weg über @setstate finden; ansonsten kann sie ja keiner so richtig nutzen ...

mr_petz

#16
@setstate

Ich habe mal im ersten Post eine neue Version auf Grundlage deiner angepassten im Git hochgeladen.
Im css stimmten die Spalten nicht ganz und in der js habe ich den refreshButton wieder mit dem event versehen.
Ich kenne jetzt das bind(this) nicht wie du es hattest... Da fehlt mir dann schon noch das wissen dazu...
ok hab den prototype.bind() durchgelesen... Weiss nur nicht wie man da den vom popup-target lösen kann..

Du könntest auch das example mit in die Demo nehmen. Kannst ja auch die "dummy"list wie ich da nehmen:
list='[["U8","Vaihingen","3"],["U12","Dürrlewang","5"],["U8","Ostfildern","6"],["U3","Vaihingen","6"],["U12","Hallschlag","7"],["U3","Plieningen","9"],["U8","Vaihingen","12"],["U12","Dürrlewang","14"],["U8","Waldau","15"],["U3","Vaihingen","16"],["U12","Dürrlewang","19"],["U8","Waldau","21"],["U3","Vaihingen","25"],["U12","Dürrlewang","26"],["U8","Waldau","28"],["U3","Vaihingen","30"]]'

Danke und Gruß

mr_petz

@OdfFhem

Ich habe es jetzt geschaft mit der 2.Spalte (Denke ich). Unter Firefox geht es.
Durch
max-width: 0px;
funktioniert der overflow.
Kannst mal bitte unter Chrome testen.
Habe es im ersten Post hochgeladen..
In dieser Version ist erstmal der switch rausgenommen...

OdfFhem

@mr_petz

Ich hab's mal unter Chrome auf dem Tablet bzw. Desktop (s. Screenshot) getestet - funktioniert prima.


Hinweis: Die Zeitspalte wird aktuell mit "Clock" beschriftet. Richtig ?

mr_petz

Prima danke. Was du auch für lange Liniennamen hast :D
Clock hat setstate angepasst...

OdfFhem

@mr_petz

Ich hatte auch mal die bind-Schreibweise aktiviert und getestet, aber das Event wird beim Refresh nicht vernichtet - Popup geht also immer mit auf.

Recherche ergab u.a. folgende Anmerkung seitens SELFHTML:
Zitat
Es soll nicht verschwiegen werden, dass dieser Ablauf (Methode bind seit ECMAScript 5) mit neueren JavaScript-Features besser lesbar wird. Mit einer Pfeilfunktion ...

mr_petz

txtsize für die liste hinzugefügt. siehe 1.Post ;)
musste erst sicher gehen, das die 2.Spalte hinhaut.

OdfFhem

@mr_petz

Da habe ich wohl was verpasst, denn der Beitrag mit der txtsize war für mich eben noch ganz neu.

Ich habe dann ein wenig getestet und eigentlich funktionierte alles mit txtsize wie erwartet - sehr praktisch.


Beim Blick in die css-Datei stellte ich fest, dass auch eine CSS-Variable --departure-txtsize benutzt werden kann.
Es war aber vorherzusehen, dass die CSS-Variable keine Chance hat, da die txtsize-Property immer einen Wert hat und damit auch immer gewinnt.

Definiert man in der eigenen css-Datei --departure-txtsize z.B. mit dem Wert 200%, dann gilt:
--> Verwendet man kein txtsize-Attribut, ist die resultierende font-size 13px und nicht 200%.
--> Verwendet man ein txtsize-Attribut, entspricht die resultierende font-size dem übergebenen Wert

Belegt man die txtsize-Property in der js-Datei mit undefined vor und passt das Modul so an, dass die Property nur angewendet wird, wenn das Attribut txtsize tatsächlich verwendet wurde.
--> Verwendet man kein txtsize-Attribut ist die resultierende font-size nun 200% (gemäß CSS-Variable).
--> Verwendet man ein txtsize-Attribut, entspricht die resultierende font-size dem übergebenen Wert

Hat man jetzt weder eine CSS-Variable noch ein txt-Attribut definiert, dann fehlt in der css-Datei noch die Festlegung eines "Rückfallwertes"; dieser entspricht in Deinem Fall 13px.

Mit den sehr kleinen Anpassungen wurden alle durchgespielten Fälle sauber dargestellt.

Ausführungen sind - wie immer - nur Hinweise, Anregungen, ...



Abschließend noch eine Frage: Gibt es noch Hoffnung für switch oder wartest Du auf eine beigesteuerte Lösung? Oder ist das Modul im jetzigen Zustand final ?

mr_petz

#23
@OdfFhem

Danke für die Rückmeldung bzgl. txtsize.
Ja habe ich vergessen umzuschreiben. mache ich noch. Edit: erledigt..

Zum switch.
Da stecke ich noch fest an dem setzen aller Attribute gleichzeitig, denn dann haut das irgendwie mit der Anzeige und Umschalten des Icon nicht hin. (zu viele Variablen die man da checken muss)
Ich hatte ja die Version schon gepostet wo kein deptime oder depmin gleichzeitig zu den gleichzeitig gesetzten Attributen switch und manuell gesetzt werden darf.
Du kannst hier aber gern deinen Vorschlag zeigen. Mir ist nur wichtig dass depmin, deptime, switch und manuell weiterhin als seperat aktivierbare Features bleiben.

depmin ist hier für mich relevant, weil ich direkt von der webAPI die Daten ziehe und per Zeit bekomme/umrechne. siehe hier:
https://forum.fhem.de/index.php/topic,48255.msg1058924.html#msg1058924

Edit:
Könntest du bitte den Anhang testen bzgl switch? Ich weiss im Moment nur nicht was bei einem man. Refresh mit neuen Daten passiert.
Kann ich erst heute Abend testen...


mr_petz

Ok hab es getestet und sollte mit allen Varianten funktionieren..
Du kannst bitte auch nochmal testen bevor ich es für alle hochlade.
Jetzt sollten wir nur noch passende Icons erstellen oder lassen die wie sie sind..??

OdfFhem

#25
@mr_petz

ich hatte Deine ganz neuen Module eben mal runtergeladen und auch ein bisschen getestet - scheint soweit zu funktionieren.

Nicht lange davor hatte ich Deinen Stand von heute morgen runtergeladen, mir näher angeschaut und (wunschgemäß) einen Lösungsvorschlag erarbeitet. Einfach der Vollständigkeit halber lade ich diesen Stand mal hoch; Du kannst ihn Dir ja mal anschauen ... wenn die Module wieder aus dem Beitrag entfernt werden können, kannst Du ja mal kurz Bescheid geben,

Die switch-Icons finde ich übrigens gar nicht so schlecht - vor allem für den ersten Entwurf.

mr_petz

#26
Danke ich hab es...

Edit:
... auch getestet.
Danke erstmal fürs proggen/unterstützen ;)
Ich kann jetzt nur nicht unsere beiden Varianten bewerten was besser/schlechter funktioniert oder programmiert ist..
Eins kann ich aber sagen, deins sieht einfacher zum Nachvollziehen aus.
Mir ist aber jetzt beim testen aufgefallen dass bei mir mit deiner Version meine standardmäßige Uhrzeit vom reading umgeswitcht wird zu min, obwohl ich nur switch gesetzt habe. Sprich ich müsste immer deptime und switch zusammen setzen, obwohl ich ja schon deptime autom. von fhem habe wie oben beschrieben... Also so:
https://forum.fhem.de/index.php/topic,48255.msg1058924.html#msg1058924
Gut die Icons bleiben dann erst mal so.
Weiss nicht ob du deine Variante noch meiner Gegebenheit anpassen kannst. Wenn ja würde ich es wieder testen und übernehmen.
kannst zum testen auch das als list so wie es ist nehmen:

list='[["S1","Schöna Bahnhof","20:52"],["S2","Dresden Flughafen","20:54"],["S1","Meißen S-Bf. Triebischtal","21:07"],["RB71","Neustadt Bahnhof","21:11"],["S1","Bad Schandau Nationalparkbahnhof","21:22"],["S1","Meißen S-Bf. Triebischtal","21:52"],["S1","Schöna Bahnhof","22:11"],["S1","Meißen S-Bf. Triebischtal","22:07"],["RB71","Neustadt Bahnhof","22:11"],["S1","Bad Schandau Nationalparkbahnhof","22:21"],["S1","Meißen S-Bf. Triebischtal","22:37"],["S1","Bad Schandau Nationalparkbahnhof","22:51"],["S1","Meißen S-Bf. Triebischtal","23:07"],["S1","Bad Schandau Nationalparkbahnhof","23:21"],["S1","Meißen S-Bf. Triebischtal","23:37"],["S1","Dresden Hauptbahnhof","00:07"],["S1","Bad Schandau Nationalparkbahnhof","00:34"],["S1","Dresden Hauptbahnhof","00:37"],["S1","Meißen S-Bf. Triebischtal","04:37"],["S1","Schöna Bahnhof","04:51"],["S2","Dresden Flughafen","04:54"],["S1","Meißen S-Bf. Triebischtal","05:07"],["S1","Bad Schandau Nationalparkbahnhof","05:21"],["S2","Dresden Flughafen","05:24"],["S1","Meißen S-Bf. Triebischtal","05:37"]]'

OdfFhem

#27
@mr_petz

ZitatMir ist aber jetzt beim testen aufgefallen dass bei mir mit deiner Version meine standardmäßige Uhrzeit vom reading umgeswitcht wird zu min
Mir war bisher nicht klar, dass die angelieferten Daten die initiale Darstellung vorgeben; bei mir war dies immer die Restanzeige - wohl wie bei FTUI2 üblich.

Aber durch die neue Erkenntnis habe ich den Lösungsvorschlag noch ein wenig angepasst und jetzt wird quasi bei fehlender Vorgabe durch depmin bzw. deptime eine automatische Vorgabe anhand der angelieferten Daten ermittelt.

Geändertes js-Modul hochgeladen ... wenn das Modul aus dem Beitrag entfernt werden kann, kurz Bescheid geben.


P.S.: Ich hatte noch die Festlegung der Überschrift für die 3.Spalte nach unten gezogen und 3 auskommentierte Zeilen hinterlassen. Falls console.log für den Produktivstand doch bleiben sollte, wäre vermutlich noch der eingestellte Debuglevel zu berücksichtigen.

mr_petz

#28
Ok. habe ich. Teste dann noch..
Ich hole mir halt die Daten direkt über die webapi und nicht wie im wiki stehend von der widgetapi von "transport.stefan-biermann.de".

Edit: Also bei mir scheint es auch zu funktionieren und die Umsetzung gefällt mir.
Ich habe jetzt nicht deine css hier. Könntest du das bitte kurz im Code zeigen wegen der 3.Spalte?
Hättest du noch eine andere Lösung um die Zeit in Minuten umzurechnen (eine kürzere)?
Ich habe halt mit meinen bescheidenen Programmierkenntnissen das nur so hinbekommen...


OdfFhem

@mr_petz

Die css-Datei hat sich gegenüber gestern nicht geändert. Trotzdem nochmal bereitstellen?

ZitatFestlegung der Überschrift für die 3.Spalte nach unten gezogen
gilt für das js-Modul und heisst nur, dass elementMinutes ausschließlich am Ende der fillList-Routine gesetzt wird - ohne Berücksichtigung der zweiten (entfernten) min-Variable aus der Hauptschleife.

Wegen kürzerer Lösung für die Umrechnung der Zeit kann ich nachher mal schauen ...


P.S.: Gesucht wird ja nie die absolut "perfekte" Lösung, eine gut "einsetzbare" reicht meist schon völlig ...