Javascript Editor einbinden

Begonnen von papa, 18 Februar 2014, 20:30:04

Vorheriges Thema - Nächstes Thema

marvin78

Wenn wirklich alles aktuell ist, wird Cache leeren helfen.

abc2006

Hi,
wollte mich nochmal zu Wort melden. Das Problem mit dem Dropdown hinter dem Codemirrror-Popup (gestestet bei UserReadings) besteht immer noch...
Oder gibt es hierfür einen Fix?


Grüße
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

abc2006

Gerade ist mir nochwas aufgefallen:

ich wollte ein Reading prüfen:

DOIF ([DS18B20:temperature] > 12)()...

Codemirror kann den Namen des Devices vervollständigen, nach dem Doppelpunkt kommt aber wieder die Liste mit FHEM-Befehlen (at,IF, usw).
IDEE:
Ist es möglich, hier die Readings des Devices darzustellen?

Grüße
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

iamandy

Als Nutzer eines MACs scheint es nicht möglich zu sein z.B. die Suchen / Ersetzen Funktion des Javascript Editors zu nutzen.

Das liegt daran das beim MacOS statt der Taste STRG/CTRL die CMD Taste im Javascript Editor genutzt werden muss.

Die meisten Tastenkombinationen mit CMD sind beim MAC aber schon anderweitig belegt und daher kann man diese Funktonen am Javascript Editor nicht nutzen...

Habt ihr eine Idee wie man das ändern könnte?

kotaro

Hallo, ich weiß nicht ob ich hier richtig bin,
aber es geht um den erweiterten Editor.

Ich habe folgendes Problem:
#Wetter
define Pollenflugvorhersage allergy 12209
attr Pollenflugvorhersage levelsFormat rc_dot@white,rc_dot@yellow,rc_dot@orange,rc_dot@red
attr Pollenflugvorhersage room Wetter-vorhersage
attr Pollenflugvorhersage stateFormat fc1_maximum
attr Pollenflugvorhersage updateEmpty 1
attr Pollenflugvorhersage updateIgnored 1
define rgPollenvorhersage readingsGroup Pollenflugvorhersage:<Pollen>,fc0_day_of_week,fc1_day_of_week,fc2_day_of_week,fc3_day_of_week,fc4_day_of_week,fc5_day_of_week,fc6_day_of_week,fc7_day_of_week \
                                        Pollenflugvorhersage:<Ambrosia>,fc0_Ambrosia,fc1_Ambrosia,fc2_Ambrosia,fc3_Ambrosia,fc4_Ambrosia,fc5_Ambrosia,fc6_Ambrosia,fc7_Ambrosia \
                                        Pollenflugvorhersage:<Ampfer>,fc0_Ampfer,fc1_Ampfer,fc2_Ampfer,fc3_Ampfer,fc4_Ampfer,fc5_Ampfer,fc6_Ampfer,fc7_Ampfer \
                                        Pollenflugvorhersage:<Beifuß>,fc0_Beifuss,fc1_Beifuss,fc2_Beifuss,fc3_Beifuss,fc4_Beifuss,fc5_Beifuss,fc6_Beifuss,fc7_Beifuss \
                                        Pollenflugvorhersage:<<b>Birke</b>>,fc0_Birke,fc1_Birke,fc2_Birke,fc3_Birke,fc4_Birke,fc5_Birke,fc6_Birke,fc7_Birke \
                                        Pollenflugvorhersage:<Buche>,fc0_Buche,fc1_Buche,fc2_Buche,fc3_Buche,fc4_Buche,fc5_Buche,fc6_Buche,fc7_Buche \
                                        Pollenflugvorhersage:<Eiche>,fc0_Eiche,fc1_Eiche,fc2_Eiche,fc3_Eiche,fc4_Eiche,fc5_Eiche,fc6_Eiche,fc7_Eiche \
                                        Pollenflugvorhersage:<<b>Erle<Erle</b>>,fc0_Erle,fc1_Erle,fc2_Erle,fc3_Erle,fc4_Erle,fc5_Erle,fc6_Erle,fc7_Erle \
                                        Pollenflugvorhersage:<<b>Gräser</b>>,fc0_Graeser,fc1_Graeser,fc2_Graeser,fc3_Graeser,fc4_Graeser,fc5_Graeser,fc6_Graeser,fc7_Graeser \
                                        Pollenflugvorhersage:<<b>Hasel<Hasel</b>>,fc0_Hasel,fc1_Hasel,fc2_Hasel,fc3_Hasel,fc4_Hasel,fc5_Hasel,fc6_Hasel,fc7_Hasel \
                                        Pollenflugvorhersage:<Pappel>,fc0_Pappel,fc1_Pappel,fc2_Pappel,fc3_Pappel,fc4_Pappel,fc5_Pappel,fc6_Pappel,fc7_Pappel\
                                        Pollenflugvorhersage:<Roggen>,fc0_Roggen,fc1_Roggen,fc2_Roggen,fc3_Roggen,fc4_Roggen,fc5_Roggen,fc6_Roggen,fc7_Roggen \
                                        Pollenflugvorhersage:<Ulme>,fc0_Ulme,fc1_Ulme,fc2_Ulme,fc3_Ulme,fc4_Ulme,fc5_Ulme,fc6_Ulme,fc7_Ulme \
                                        Pollenflugvorhersage:<Wegerich>,fc0_Wegerich,fc1_Wegerich,fc2_Ulme,fc3_Wegerich,fc4_Wegerich,fc5_Wegerich,fc6_Wegerich,fc7_Wegerich \
                                        Pollenflugvorhersage:<Weide>,fc0_Weide,fc1_Weide,fc2_Weide,fc3_Weide,fc4_Weide,fc5_Weide,fc6_Weide,fc7_Weide
attr rgPollenvorhersage mapping %READING
attr rgPollenvorhersage room Wetter-vorhersage
attr rgPollenvorhersage valueIcon %VALUE
attr rgPollenvorhersage valueStyle %VALUE


In diesem Beispiel wird alles nach <<b>Birke</b>> bzw ab zwischen den << kein Code mehr erkannt. Mache ich ein Leerschritt zwischen den beiden Eckigen Klammern, wird der Code im erweitereten Editor angezeigt, wird aber in Fhem nicht mehr korrekt dargestellt ( es steht <b dort start Birke)
Ist dies möglich zu beheben?

lg und danke für eure fleißige Arbeit bisher

Keule_09

#440
Hallo Zusammen,

kann man die Mindestbreite im DEF- Bearbeitungsfeld irgendwo einstellen? Hab das Problem wenn ich es am Smartphone(Samsung S7)  öffne wird mir das Editorfeld sehr schmal angezeigt (siehe Bild). Unter Edit Files wird es mir über die ganze Seite am Smartphone angezeigt.

Gruß Marco

rudolfkoenig

Ist vermutlich das bekannte CodeMirror Problem im Zusammenhang mit Zeilennumer.
Ich habe vor laengerem versucht es fuer den Desktop zu fixen, eher erfolglos.
Aber mir fehlt auch die Motivation, weil ich nicht auf CodeMirror stehe.
Ohne Codemirror ist auf dem Telefon zwar auch nicht optimal, aber besser.

Keule_09


krikan

Die Befehlsvervollständigungsfunktion von codemirror funktioniert nach meiner Beobachtung nur, wenn in der FHEMWEB-Instanz
attr <FHEMWEB> csrfToken none
gesetzt ist.

Vermutung:
Der mit FHEM 5.7 eingeführte csrfToken ist wohl noch nicht in https://svn.fhem.de/trac/browser/trunk/fhem/www/codemirror/fhem.js.unoptimized bzw. fhem.js berücksichtigt. Der Aufruf in Zeile 857 von fhem.js.unoptimized scheitert bei aktivem csrfToken.

Gruß, Christian

jschuppe

Hallo,

ich will den Thread mal wieder anheizen. Ich hatte keine so richtige Einstellung gefunden, den Codemirror Editor passend für mich einzurichten. Er sollte kompakt sein, aber bei größeren Codeblöcken trotzdem komfortabel. Da ich keinen ordentlichen Kompromiss gefunden hatte, habe ich mich mit einem Modul beschäftigt, welches es für Codemirror gibt, welches aber nicht mit in fhem gewandert ist. Das Modul heißt einfach nur "fullscreen" (https://codemirror.net/demo/fullscreen.html).

Ich habe jetzt den Editor so integriert, dass er relativ schmal ist (20 Zeilen, volle Breite), sich aber per F11 Taste in den Vollbildmodus versetzen lässt. Mit F11 oder ESC kommt man dann wieder zurück in die vorherige Ansicht.

Anpassungen im Code in der Datei "/opt/fhem/www/codemirror/fhem_codemirror.js":

Am Anfang der Datei das "cm_attr" Array erweitert:

...
var cm_attr = {
    fullscreen:          true,
   ...


Weiter unten nach dem Block "cm_attr.height" den "fullscreen" Codeblock eingebaut:


...
    // editor user preferences
    if (cm_attr.height) {
         ...
    }
    // Neu ab hier ->
    if (cm_attr.fullscreen) {
        cm_active++;
        loadLink("codemirror/fullscreen.css");
        loadScript("codemirror/fullscreen.js", function(){cm_loaded++;} );
        cm_attr.extraKeys['F11'] = function(cm) {
            cm.setOption("fullScreen", !cm.getOption("fullScreen"));
        }
        cm_attr.extraKeys['Esc'] = function(cm) {
            if (cm.getOption("fullScreen")) cm.setOption("fullScreen", false);
        }
    }


Folgende zusätzliche Dateien werden benötigt:

fullscreen.css
fullscreen.js

Beide sind ins /opt/fhem/www/codemirror Verzeichniss zu packen (Quellen: https://codemirror.net/addon/display/fullscreen.css und https://codemirror.net/addon/display/fullscreen.js)

Mein Problem war jedoch, dass hier irgendetwas im cache lagert und die Änderungen nur nach mehrmaligem Anpassen des Attributes "JavaScripts" mit dem Wert "codemirror/fhem_codemirror_xxx.js" unter "global" zu bewerkstelligen war. "_xxx" bedeutet, ich hatte eine Copy gemacht und zwischen den Dateien hin und her geschaltet bis es irgendwann funktionierte.

Vielleicht finden die Anpassungen irgendwann den Weg in den Standard von fhem  :)

FHEMAN

#445
Hi, bevor ich mich selber ran mache: gibt es eine Möglichkeit, die Syntaxhervorhebung auch im normalen Lesemodus immer aktiv zu haben?
Idealerweise mit dem (gelben) FHEM Hintergrund zur Unterscheidung.

//edit:

Ich meine so, wie im Screenshot unten. Das habe ich via JS zwar schon hingefrickelt, aber wie bekomme ich die Codemirror Sourcen schon vor dem Klick auf DEF geladen? (Idealerweise ohne alles parallel nochmal neu einzubinden)

Zitat//var script = document.createElement('script');
//script.src = "fhem/codemirror/fhem_codemirror.js";
var ce = $("#disp > PRE")[0];
var text = ce.textContent || ce.innerText;
var editor = CodeMirror(function(node){ce.parentNode.replaceChild(node, ce);}, {
  value: text,
    matchBrackets:       true,
    search:              true,
    comment:             true
});
$(".CodeMirror").css("background-color", "transparent");
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB