FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: Otto123 am 24 Juli 2020, 15:24:45

Titel: Editorfenster codemirror Editor zu groß, zu weit rechts
Beitrag von: Otto123 am 24 Juli 2020, 15:24:45
Ich habe mal wieder einen Browserfenster breiten abhängigen Effekt, der  mich schon länger stört und den ich jetztmal untersucht habe.
Ich verwende
Internals:
   BYTES_READ 1132600
   BYTES_WRITTEN 6483473
   CONNECTS   515
   CSRFTOKEN  csrf_246228733591984
   DEF        8083 global
   FD         5
   FUUID      5f00bbb9-f33f-3a57-af36-0cea886c3d2cadc3
   NAME       WEB
   NR         3
   NTFY_ORDER 50-WEB
   PORT       8083
   STATE      Initialized
   TYPE       FHEMWEB
   READINGS:
     2020-07-17 22:50:46   state           Initialized
Attributes:
   JavaScripts codemirror/fhem_codemirror.js
   codemirrorParam { "lineNumbers":true }
   longpoll   websocket
   plotfork   1
   stylesheetPrefix f18
   
Beim großen Plus (oder woanders immer gleich) geht das schwarze Fenster des Editors auf.
Das codemirror Editor Fenster wird tendenziell immer Rechts platziert.
Bis 1220 Pixel Breite des Browserfensters passt das Editorfenster genau bis zum Rand.
Bis 1280 Pixel ist der Close Button noch fast komplett sichtbar.
Bei 1440 Pixel ist der Close Button verschwunden.

Das Problem ist noch: Diese Postion wird "gespeichert" d.h. mach ich das Fenster jetzt wieder kleiner, seh ich gar nix mehr.
Drück ich F5 beginnt das Spiel von vorn.

D.h. Fenster relativ schmal machen, dann Editor öffnen, dann kann man beliebig arbeiten bis zum nächsten Cache leeren.

Beim normalen Editor tritt der Effekt nicht, das Fenster wird immer mittig und mit geringer Größe positioniert.


Kann man das irgendwie verbessern?
Kann ich da noch weitere Infos liefern?

Gruß Otto
Titel: Antw:Editorfenster codemirror Editor zu groß, zu weit rechts
Beitrag von: rudolfkoenig am 24 Juli 2020, 16:45:18
Ich gehe davon aus, dass Du hier keine Antwort kriegst, da Codemirror in FHEM mehr oder weniger verwaist ist.
Titel: Antw:Editorfenster codemirror Editor zu groß, zu weit rechts
Beitrag von: Otto123 am 24 Juli 2020, 16:50:20
Ich hatte gehofft es liegt nicht unbedingt an Codemirror und Jemand hat eine Idee.  :D Gibt es Alternativen?
Titel: Antw:Editorfenster codemirror Editor zu groß, zu weit rechts
Beitrag von: Ellert am 17 August 2020, 05:32:24
@Otto123
Du könntest diesem Vorschlag anschliessen: https://forum.fhem.de/index.php/topic,74992.0.html
Titel: Antw:Editorfenster codemirror Editor zu groß, zu weit rechts
Beitrag von: rudolfkoenig am 17 August 2020, 18:07:02
Das kann er natuerlich tun, das da adressierte Problem hat aber mit diesem nichts zu tun.
Titel: Antw:Editorfenster codemirror Editor zu groß, zu weit rechts
Beitrag von: Otto123 am 17 August 2020, 18:46:41
@Rudi Habe ich schon genau so verstanden :)
Titel: Antw:Editorfenster codemirror Editor zu groß, zu weit rechts
Beitrag von: Ellert am 21 August 2020, 17:04:35
Möglicherweise lässt sich das Problem mit einer Ergänzung von f18.js lösen.

Die Dialogdefinition (ab Zeile 868) müsste um das Attribut position ergänzt werden.

  $("#"+n).dialog({
    dialogClass:"no-close", modal:true, width:"auto", closeOnEscape:true,
    maxWidth:$(window).width()*0.9, maxHeight:$(window).height()*0.9,
    position: { my: "right", at: "center" },
    buttons: [
    {text:"Execute",click:function(){ FW_execRawDef( ta.val()) }},
    {text:"Close", click:function(){ $(this).remove(); }},
    ],
    close:function(){ $("#"+n).remove(); }
  });


also um
position: { my: "right", at: "center" },

Dann wird das Fenster wie in der Anlage dargestellt.

Die Funktionalität des Dialogfensters ohne Codemirror wird nicht beeinträchtigt, siehe 2. Anlage
Titel: Antw:Editorfenster codemirror Editor zu groß, zu weit rechts
Beitrag von: rudolfkoenig am 22 August 2020, 12:27:49
Danke fuer den Hinweis, habe die Zeile eingebaut.

Bemerkungen:
- ohne CodeMirror gibt es auch eine Aenderung (das Dialog wird nicht mehr zentriert dargestellt, sondern auf der linken Seite), das finde ich aber verschmerzbar.
- mit CodeMirror gibt es weiterhin Probleme, wenn man nach Laden der Seite die Fenstergroesse aendert. Abhilfe: Seite nach Groessen-Aenderung erneut laden.
- CodeMirror ignoriert die "bestellte" Fenstergroesse (20 x 60 Zeichen), und macht irgendwas der Art 14 x 0.8*Fensterbreite.