interner Editor mit Syntaxhervorhebung (fhem_codemirror.js) funktioniert nicht

Begonnen von TeleDet, 12 Mai 2018, 15:39:31

Vorheriges Thema - Nächstes Thema

NoPlan12

Hallo,
ich kann nix zur Lösung beitragen, aber bei mir ist das auch schon eine ganze Zeit mit Modzilla(60.0.2 64bit). Das mit dem rechte Maustaste und Seite neu laden hat bei mir auch nicht funktioniert.
Bei Chrom (vers. 67.0.3396.87)  scheint es ohne Probleme zu gehen.
Gruß

rudolfkoenig

Zitat@rudolfkoenig @rapster: wenn es hilft: ich habe folgende Untershiede.
Sieht fuer mich eindeutig nach einem CodeMirror Problem aus, und mir ist gerade nicht nach CodeMirror debuggen.
Hat jemand probiert, ob es mit einer aktuellen CodeMirror Version das Problem behoben ist?

Ellert

Zitat von: rudolfkoenig am 21 Juni 2018, 07:04:14
Sieht fuer mich eindeutig nach einem CodeMirror Problem aus, und mir ist gerade nicht nach CodeMirror debuggen.
Hat jemand probiert, ob es mit einer aktuellen CodeMirror Version das Problem behoben ist?
Der Austausch von codemirror.js und codemirror.css gegen Version 5.39.0 bewirkt keine Besserung.

ThoTo

Zitat von: Ellert am 21 Juni 2018, 18:20:29
Der Austausch von codemirror.js und codemirror.css gegen Version 5.39.0 bewirkt keine Besserung.

Kann ich bestätigen, soeben getestet mit FF 60.0.2 und der aktuellen Codemirror Version.
Leider keine Besserung.

LG Thomas
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

amenomade

Hab ein Workaround gefunden: wenn sowas passiert,

- im Edit Fenster klicken
- Strg-A alles markieren
- Strg-X alles ausscheiden => Fokus wird wieder initialisiert
- Strg-V wieder alles einfügen => wird wieder ordentlich gezeigt
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Pfriemler

Querlesen bildet. Bin gerade erst auf codemirror für den internen Editor gestolpert - genial.
Bei mir treten die beschriebenen Fehler sporadisch sowohl im Firefox als auch im Chrome auf. Reload hilft bei mir einfach und immer.

Was mich mehr wundert: Das Editorfenster ist nun in der Größe nicht mehr änderbar, und die automatische Größenerkennung (auf die Browserfenstergröße) funktionert begrenzt in beiden Browsern bei der fhem.cfg auf 19 Zeilen angezeigte Zeilen, wenn in WEB das Attribut editConfig fehlt oder auf 0 gesetzt ist (wie das brave FHEM-Nutzer so tun  ;)). Mit editConfig=1 ist es auch bildschirmfüllend, und ohne codemirror lässt es sich natürlich in allen Fällen in der Größe ändern.

Bug or feature?
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

rudolfkoenig

Voraussetzungen:
- attr WEB JavaScripts  codemirror/fhem_codemirror.js
- FireFox 61 (58+?)
- Editieren von fhem.cfg in "Edit Files"

Was ich festgestellt habe:
- Unter OSX sehe ich das Problem nicht
- Unter Linux und Windows ist das Problem reproduzierbar, ein Reload hilft nicht
- Wenn man die Entwicklerconsole oeffnet (Crtl-Shift-I), und ein Reload macht, dann ist die Anzeige wieder ok, reproduzierbar.
- Im Problemfall ist das margin-left CSS Attribut vom div.CodeMirror-sizer sinnlos gross und verschiebt damit alles links aus dem Fenster)
- Mit folgendem Code, eingefuegt ganz unten im fhem_codemirror.js ist die Anzeige zwar grob repariert, aber Editieren funktioniert _nicht_:    ////////////////////////////////////////////////////
    // Firefox > 58 bug, Forum #87740, crude workaround
    var sl = $("div.CodeMirror-sizer").css("margin-left");
    sl = sl.replace(/[^0-9]/g,'');
    if(sl> 100) {
      $("div.CodeMirror-sizer").css({ "margin-left":"41px", "z-index":"9" });
      $("div.CodeMirror-gutter-wrapper").css({ left:"-40px" });
      $("div.CodeMirror-gutter-elt").css({ left:"0px", width:"31px" });
    }

rudolfkoenig

Nach Abstellen der Zeilennummerierung (attr WEB codemirrorParam { lineNumbers:false } ) sehe ich das Problem nicht.

Auch das leicht verzoegerte Aktivieren von CodeMirror scheint das Problem zu beheben.
Da rapster scheinbar nicht mehr aktiv ist, habe ich diese Aenderung eingecheckt.
Ich wuerde mich ueber Feedback freuen.

amenomade

@rudolfkoenig: ich hab die neue Version von fhem_codemirror.js auf meiner Windows Testinstanz runtergeladen, und hab damit das Problem nicht mehr. Sobald ich den Test auf mein Linux machen kann, werde ich berichten.

Danke für den Fix
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ellert

Codemirror funktioniert wieder, das Fehlverhalten ist beseitigt.

Pfriemler

Verschiebungen stelle ich auch keine mehr fest, aber an meinen "Problemen" aus #35 hat sich nichts geändert (nur wenig Zeilen in fhem.cfg bei editConfig=0).
Aber ich kann damit leben. Dann isses eben so.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

TeleDet

@rudolfkoenig

mit lineNumbers:false war das Problem bei mir beseitigt.  :)  Danke für die Lösung Rudolf!

Nach Update von heute inkl. Update der fhem_codemirror.js ist das Eingangs beschriebene Problem
wieder vorhanden. Und schlimmer, die Zeilennummerierung lässt sich nun nicht mehr mit

attr WEB codemirrorParam { "lineNumbers":false }

abschalten! (siehe Screenshot) ... Daher ist der Workaround von Rudolf schlicht nicht mehr möglich !?

Gruß TeleDet

rudolfkoenig

Es muss wohlattr WEB codemirrorParam  { "lineNumbers":false }heissen, also mit "". Ohne sieht man kurz 'ne schwer verstaendliche Fehlermeldung.

TeleDet

Du hast natürlich Recht Rudolf  :)
In meinem Screenshot ist aber zu sehen das es in meinem Code richtig mit "" steht.

Trotzdem wichtig der Hinweis, nicht das jemand das falsch hier aus meinem Post kopiert und verwendet!
Daher hab ich es auch gleich korrigiert.  ;)

Gruß Detlef