fhemweb.js Umbau

Begonnen von rudolfkoenig, 31 Dezember 2014, 16:45:43

Vorheriges Thema - Nächstes Thema

justme1968

hmmm. default geht bei mir out of the box und dark nach entfernen der zeile. sowohl mit safari als auch mit chrome.

geht es noch bei jemandem ausser mir ?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Habe darkstyle.css modifiziert (color:red!important), und Ein menu_ Praefix bei der Klasse hinzugefuegt.

Nich nur at Befehle haben ein Problem mit der Rotfaerbung, auch manche Module wie Dashboard, die Zeitverzegert nach dem start Attribute setzen. Generell passt mir die Idee nicht, dass Module dem Benutzer automatisch Attribute unterjubeln.

justme1968

wenn man neben TEMPORARY auch noch VOLATILE beim hochzählen von lastDefChange ausnimmt hätte man eine grossen teil der 'falsch positiven' at erschlagen.

ich finde es gut wenn module attribute mit sinnvollen defaults versehen. aber das geht auch ohne das lastDefChange sich ändert.

vielleicht wäre aber hierfür doch ein 'richtiger' mechanismus sinnvoll.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Zitat von: justme1968 am 19 Januar 2015, 14:24:54
default geht bei mir out of the box und dark nach entfernen der zeile. sowohl mit safari als auch mit chrome.

geht es noch bei jemandem ausser mir ?

Auf einem "nackten" fhem funktioniert es nun auch bei mir. Aber auf meinem Produktivsystem bekomme ich das bis jetzt noch nicht zum Laufen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

ich bin gerade über ein problem im makeSelect mechanismus gestolpert:

wenn das (alphabetisch) erste kommando in der setList mit :noArg definiert ist dann wird in der detail ansicht beim auswählen eines anderen kommandos das tatsächlich ein widget einblendet dieses widget nicht in der gleichen zeile sondern in der zeile darunter eingeblendet und beim klick auf 'set' werden die werte des widgets (z.b. der inhalt eines textField) ignoriert.

zum reproduzieren:define d dummy;
attr d setList a:noArg b:textField

wenn man in der detail ansicht set b auswählt erscheint das text feld in der nächsten zeile und bei klick auf set wird der eingegebene text ignoriert.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

da bist Du nicht als Erster drüber gestolpert, das ist genau das hier beschriebene Problem:

http://forum.fhem.de/index.php/topic,32463.0.html

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

den thread hatte ich nicht gesehen.

der knackpunkt ist glaube ich das :noArg im alphabetisch zuerst kommenden set kommando.

ich tippe mal das dadurch beim umschalten die widgets so an einen falsche stelle im layout gesetzt werden das sie hinterher beim post der wert ignoriert wird.

eventuell hilft es beim :noArg ein hidden textField zu verwenden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

hab es kurz getestet.

mit einem FW_createNoArg das so ausschaut:  var newEl = $('<div style="display:inline-block">').get(0);
   if(elName)
     $(newEl).append('<input type="hidden" name="'+elName+ '" value="">');
   return(newEl);


funktioinert es.

aber es gibt ein unschönes flackern bei seitenaufbau.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Das ist doch wieder eine Krücke und keine Lösung.

Ich hasse JavaScript. Sagte ich das schon?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

das sollte auch keine lösung sein sondern nur die bestätigung das tatsächlich daran liegt das etwas das layout so durcheinander bringt das beim post die werte nicht gefunden werden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

@andre: Danke fuer die Analyze und den Patch-Vorschlag, ich habs leicht geaendert (display:none) eingecheckt, und ich sehe kein Flackern.

justme1968

spricht etwas dagegen auf eine aktuelle jquery-ui version zu aktualisieren ?

ich würde gerne das selectmenu verwenden.

wie wäre es für die fhemweb styles auch automatisch ein passenden jquery-ui style zu verwenden? zu default und dark und ios gibt es recht gut passende defaults auf der jquery-ui seite.

ich bin gerade dabei widget für eine allgemeine zeitschaltuhr zu bauen. dabei fallen auch die einzelnen widgets für zeit- und wochentags auswahl sowie ein toggle button mit ab. die wochentags auswahl ist so allgemein das man jede n aus m auswahl damit abbilden kann die auf ein mal sichtbar sein soll.

vielleicht wäre es gut widgets nur bei bedarf zu laden und nicht mehr alles das mit fhemweb_ anfängt ?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Jquery-UI- update: gerne.
Passende jquery-ui styles: von mir aus auch, hast Du einen Vorschlag? Ich will von dem "gelogenen" Stylenamen (style.css) weg, da es Probleme verursacht.
Beim bedarf laden: hast Du eine Idee, wie man ein unbekanntes widget von dem default (select) unterscheiden soll?

justme1968


zu den styles: wie wäre es für jeden fhemweb style ein unterverzeichniss zu haben. hier könnte man dann alle files die zu einem style gehören ohne namenskonflikte zwischen den styles halten. es könnte dann jeweils ein common.css, ein fhemweb.css, ein floorplan.css, ein jquery-ui.css, ein codemirror.css, ... geben. fhemweb würde alles laden was im verzeichnis für den aktuellen stylesheetPrefix liegt.

zum laden: man könnte alles automatisch laden das mit fhemweb_ anfängt, alle zusätzlichen widgets aber fhemwidget...js nennen. und dann in FW_jqueryReadyFn vor dem ersetzen aller fhemwidgets das jeweilige fhemwidget_....js file laden wenn es noch keinen eintrag in FW_widgets gibt. damit hätte man dinge die immer geladen werden sollen von den widgets getrennt die nur geladen werden wenn sie auch tatsächlich auf der seite vorhanden sind.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968