DEF Editorfenster in der Breite vergrössern

Begonnen von Rewe2000, 15 August 2020, 16:48:12

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: Ellert am 17 August 2020, 19:52:08
Also zurück auf 640x480, wird aber schwierig mit dem Besorgen. ;)

Ich habe jetzt mal experimentiert, welcher Prozentsatz für den Codemirror zur vollständigen Darstellung ausreicht. Es hängt ab vom eingestellten Zoomfaktor im Browser. Je kleiner die Schrift, desto höher muss der Anteil sein. Mit 90% bei text-Long ist man meistens auf der sicheren Seite.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Rewe2000

Hallo,

irgendwie kann ich euch da leider nicht folgen, bei mir ändert sich mit den neuesten Version (fhemweb.js 22618 2020-08-17 16:21:28Z) keine Fenstergröße.
Weder mit Standardeinstellung (ohne attr widgetOverride) noch mit den von Rudi angehängten.

attr WEB widgetOverride comment:textField-long,90

Muss da comment zwingend vor dem Doppelpunkt stehen?
Funktioniert aber ohne comment auch nicht (bei mir).

Gebt mir mal bitte einen Tipp was ich hier falsch mache.
Browser: Firefox 79.0
Chache mehrfach gelöscht
shutdown restart durchgeführt

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

rudolfkoenig

Ein FHEM-Neustart ist nicht notwendig, nur ein Browser-Reload von fhemweb.js.
Ob die aktuelle Version verwendet wird, wuerde ich in der JavaScript-Console, Source-Tab pruefen, indem ich die Versionszeile der Datei fhemweb.js suche.
Aenderungen betreffen nur die Attribute (oder Set/Get Parameter), die in widgetOverride aufgefuehrt sind. In meinem Beispiel also nur das comment Attribut.

Damian

#18
1. aktuelle Version von fhemweb.js (das scheint bei dir bereits zu stimmen)
2. widgetOverride für das Attribut(e) setzen, bei dem man es nutzen möchte, bei mir ist es z. B.

attr WEBHOME widgetOverride uiTable:textField-long,87

Macht natürlich besonders Sinn, wenn man Codemirror nutzt, den muss man zunächst installieren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Rewe2000

Danke Rudi und Damian,

jetzt hab auch ich es begriffen, textField-long muss für jedes Attribut definiert werden, wo ich das breitere Fenster haben will.
Ich bin ursprünglich davon ausgegangen, dass dies global wirkt, deshalb hat mich "comment" in Rudis Beispiel verwundert.

Jetzt klappt es auch bei mir prima und das ewige scrollen hat ein Ende.

Danke für die Änderung.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

frank

Zitat von: Damian am 18 August 2020, 07:43:32
Du benutzt das aktuelle Update (fhemweb.js) von gestern!?
jetzt ja. => vertikal selbes verhalten.

auf einem "untermotorisierten" alten notebook kann ich erkennen, dass die area zunächst den gesamten dialogbereich ausfüllt. kurz danach berechnet codemirror die area scheinbar neu.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

Zitat von: rudolfkoenig am 17 August 2020, 18:04:00
Ich habe jetzt textField-long ein optionales Attribut spendiert, sizePct:

ZitattextField-long[,sizePct] - show an input-field, but upon clicking on the input field open a textArea (60x25). sizePct specifies the size of the dialog relative to the screen, in percent. Default is 75

den hilfetext kann ich in meinem web device allerdings nicht finden.
nur den entsprechenden für "textFieldNL-long".

beim ersten setzen von "attr widgetOverride" über detailseite nach fhem restart ist beim klick auf den attr-button auch nichts passiert.
erst die eingabe in das fhem cmdfield hat das attribut "sichtbar" gesetzt.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Ellert

Wer alle Geräte, die ein Attribut widetOverride enthalten das textField-long beinhaltet nicht händisch setzen möchte, eine kleine sub als Hilfe.

sub wO {
  foreach my $key (devspec2array('widgetOverride=.*textField-long$')) {
    fhem("attr $key widgetOverride ".AttrVal($key,'widgetOverride',"Fehler").',86',1);
  }
}

Rewe2000

Hallo Ellert,

wie ruftst du die sub wO{} (in 99_myUtils.pm) bei den Modulen genau auf, damit die Breite des Fensters auf den in der sub gesetzten Wert eingestellt wird?
Könntest du bitte hierzu ein kurzes Beispiel einstellen.

attr WEB widgetOverride userReadings:textField-long $wO userattr:textField-long $wO comment:textField-long $wO
klappt jedenfalls nicht.

So wie ich den code verstehe, suchst du im attr widgetOverride nach "textField-long" und hängst hier z.B. nur ",86" an.

Danke Reinhard

Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Damian

Also mir reicht es in der benötigten Web-Instanz für die jeweiligen Attribute das widgetOverride einmal zu setzen, alle anderen widgetOverride mit TextField-long in einzelnen Modulen würde ich sogar löschen. In jedem Modul das widgetOverride zu setzen ist mit Pflegeaufwand verbunden, den man mit der globalen Einstellung nicht hat.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

Zitat von: Rewe2000 am 19 August 2020, 09:53:02
Hallo Ellert,

wie ruftst du die sub wO{} (in 99_myUtils.pm) bei den Modulen genau auf, damit die Breite des Fensters auf den in der sub gesetzten Wert eingestellt wird?
Könntest du bitte hierzu ein kurzes Beispiel einstellen.

attr WEB widgetOverride userReadings:textField-long $wO userattr:textField-long $wO comment:textField-long $wO
klappt jedenfalls nicht.

So wie ich den code verstehe, suchst du im attr widgetOverride nach "textField-long" und hängst hier z.B. nur ",86" an.

Danke Reinhard

{wO}
Im Eingabefeld aufrufen, siehe https://commandref.fhem.de/commandref_DE.html#command , das Wissen habe ich vorausgesetzt.

amenomade

Zitat von: Ellert am 18 August 2020, 17:16:48
Wer alle Geräte, die ein Attribut widetOverride enthalten das textField-long beinhaltet nicht händisch setzen möchte, eine kleine sub als Hilfe.

sub wO {
  foreach my $key (devspec2array('widgetOverride=.*textField-long$')) {
    fhem("attr $key widgetOverride ".AttrVal($key,'widgetOverride',"Fehler").',86',1);
  }
}

Und wenn dass attr widgetOverride eine
Zitat von: CommandRefLeerzeichen separierte Liste von Name/Modifier Paaren
enthält, lieber mit einer s/ / / Regex arbeiten ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

rapster

#27
Zitat von: frank am 18 August 2020, 03:22:04
die codemirror area wird auch nicht grösser, wenn ich quasi die doppelte fläche mit text beschreibe.

Das sollte
attr FHEMWEB codemirrorParam { "height":"auto" }
machen/beheben.

Hast du das mal probiert?

Mögliche Params: https://wiki.fhem.de/wiki/Codemirror#Anpassung

Sehe bin immer noch als Maintainer für Codemirror eingetragen, werde mal versuchen die Tage das Teil an sich zu aktualisieren, lang ists her...

Rewe2000

Hallo rapster,

nach der Änderung von Rudi passt zumindest bei mir alles so wie ich es mir vorstelle. Bei mir war der Text immer breiter als das Popup-Fenster, deswegen musste ich immer den Scrollbalken bemühen. In der Höhe hatte ich mit "height":"auto" noch nie Probleme, mir hat die Fensterhöhe für den Überblick ausgereicht. Aber eigentlich dürfte nach meinem Verständnis bei "height":"auto", das Fenster in der Höhe nahezu den kompletten Bildschirm ausfüllen (wenn sich das überhaupt machen lässt). Aber größer ziehen mit der Maus ist möglich, bleibt aber dann halt nicht gespeichert.

Aber wie gesagt für mich derzeit absolut OK.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

frank

Zitat von: rapster am 31 August 2020, 14:54:47
Das sollte
attr FHEMWEB codemirrorParam { "height":"auto" }
machen/beheben.

Hast du das mal probiert?

perfekt, danke.
popups haben nun volle höhe codemirror.
für DEF änderungen wird auf der website der komplette eintrag angezeigt.
entweder zb nur eine zeile oder für ein at bei mir auch über 200 zeilen.
ausserdem erscheint die anzeige des codemirror deutlich schneller.

könnte schwören, dass das früher nicht nötig war. aber egal.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html