Bezeichner vor textField unterdrücken / ändern

Begonnen von Elektrolurch, 15 Mai 2016, 11:45:34

Vorheriges Thema - Nächstes Thema

Elektrolurch

Hallo,

ich möchte den Bezeichner vor einem textField, den fhemWeb generiert, unterdrücken.

Erklärung:

setzt man über das setList - Attribut für einen dummy
für 'state' als Eingabe textField, so erscheint vor dem textField der Wert von state als Feldbezeichner und im Textfeld steht nochmals der Wert von state.
Definiert man das ganze für ein reading, so erscheint der Bezeichner des readings mit einem Doppelpunkt vor dem Textfeld.

Beispiel:
define d dummyroom test1
setList state:textField rd:textField
webCmd state:rd

Ausgabe auf Bildschirm:
d STATE1 [STATE1] rd:[RD3]


Verwendet man nun den dummy 'd' in einer readingsGroup
define test_rg readingsGroup         d:state,rd
attr test_rg commands {'state' => 'state:', 'rd' => 'rd:'}

so steht nun vor dem textFeld von 'state' kein Bezeichner (oder der Wert wie bei webCmd), aber der vor dem reading 'rd' bleibt, was recht unschön ist.
Auch mit
attr test_rg nonames 1
Lässt sich der vor dem textField stehende Bezeichner in der rg nicht unterdrücken.

Häufig ist es so, dass ich statt des readings-Namens, lieber einen erläuternden Text (mit Leerzeichen) hätte.

Frage:
Gibt es eine Möglichkeit, den Bezeichner  vor dem textField generell zu unterdrücken?
Wenn nicht, so würde ich mir dies als Erweiterung wünschen.
a) Entweder über ein globales Attribut um abwärtskompatibel zu sein oder
b) über ein Widgets "textFieldNL", bei dem die Zeile in der fhemWeb.js für das CreateTextfield für den vorangestellten Bezeichner auskommentiert wurde.
 

Anmerkung: Das textField ist bezüglich seines Bezeichners sowieso "unsymmetrisch" implementiert.
Ersetzt man in setList das textField durch eine Auswahlliste (z.B. rd:1,2,3) so wird kein Bezeichner vor der Auswahlliste ausgegeben.

Ich hatte die Frage schon mal in "Neues Modul - readingsGroup" gestellt, aber die rg übernimmt ja nur die Generierung, die fhemWeb zur Verfügung stellt. Vermutlich hatte ich deshalb dort keine Antwort erhalten.

Elektrolurch
configDB und Windows befreite Zone!

rudolfkoenig

ZitatGibt es eine Möglichkeit, den Bezeichner  vor dem textField generell zu unterdrücken?
Z.Zt. nicht. Der Text wird in fhemweb.js eingebaut, ein Attribut bis diese Funktion zu schleusen wuerde recht viel Umbau bedeuten. Ich kann anbieten bei speziell benannten Readings (z.Bsp. mit einem Punkt am Anfang) die Ausgabe zu unterbinden. Wuerde dir das helfen?

igami

Du kannst in der readingsGroup den Text auf Größe 0px stellen und die Box nach links verschieben

attr test_rg valueStyle {$READING =~ /state|rg/ ? 'style="font-size: 0px;; margin-left: -10px"' : ''}


Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Elektrolurch

@Rudi
Zitat:
Ich kann anbieten bei speziell benannten Readings (z.Bsp. mit einem Punkt am Anfang) die Ausgabe zu unterbinden.

Ja, wäre eine sinnvolle Möglichkeit, nur hätte dann das den Nachteil, dass diese Readings / Attribute auch nicht mer im list-Kommando angezeigt würden (???)
Wäre es alternativ nicht möglich, ein textFieldNL (no Label) anzubieten?
Wenn ich die fhemWeb.js richtig verstehe, dann gibt es da eine Liste mit dem Widget-Typ und der assozierten CreateFn. Da müsste ein weiterer Eintrag für textFieldNL und textField-longNL hinein und die Funktion CreateFN für das textFieldNL wäre ja eine Kopie der CreateFN für das "normale" Textfeld ohne das Einfügen des Bezeichners.
Meiner Meinung nach hätte das die geringsten "Nebenwirkungen" und ließe sich so auch in einer readingsGroup für die Anzeige / Eingabe von Attributen verwenden.

Wenn das so machbar wäre, sage ich schon mal vielen Dank.

@Igami
Zitat:
Du kannst in der readingsGroup den Text auf Größe 0px stellen und die Box nach links verschieben

Das wäre ein möglicher Workaround, aber eigentlich  eine unschöne Krücke, wobei man nicht weiß, wie unterschiedliche Browser damit umgehen.

Elektrolurch
configDB und Windows befreite Zone!

dev0

Zitat von: Elektrolurch am 16 Mai 2016, 09:59:14
Nachteil, dass diese Readings / Attribute auch nicht mer im list-Kommando angezeigt würden
Nur, wenn das globale Attribut showInternalValues nicht gesetzt ist ;)

rudolfkoenig

ZitatWäre es alternativ nicht möglich, ein textFieldNL (no Label) anzubieten?
Doch, habs auch gemacht.

Elektrolurch

@Rudi
Dann sag ich recht herzlichen Dank. Du bist der Größte! ...

Elektrolurch
configDB und Windows befreite Zone!

Elektrolurch

Hallo Rudi,

habs gerade eingebaut (für programmierbare Alarmanlage). Das meiste sind Attribute, die da gesetzt werden können (auch von einem Nicht-fhem-user). Sieht jetzt schon deutlich professioneller aus, wenn man die Labels vor den textField setzen kann.
Leider muss ich aber noch Mal das Thema aufgreifen: Ich hatte es oben geschrieben. Es wäre schön, wenn die Textboxen (textField-long) auch in der Version textFieldNL-long verfügbar wären.
Vielen Dank.

Elektrolurch
configDB und Windows befreite Zone!

rudolfkoenig

Habe textFieldNL-long implementiert und eingecheckt.

Elektrolurch

configDB und Windows befreite Zone!