FHEM Forum

FHEM => Frontends => Thema gestartet von: papa am 18 Februar 2014, 20:30:04

Titel: Javascript Editor einbinden
Beitrag von: papa am 18 Februar 2014, 20:30:04
Um das Arbeiten in der .cfg vollständig abzulösen, sollte der DEF-Editor durch einen "echten" Code-Editor ausgetauscht werden. Wenn man mehr als ein oder zwei Zeilen schreibt, ist Syntax-Highlighting und Klammernmatching schon sehr hilfreich.

Könnte man vielleicht so was wie hier

http://codemirror.net/

in das Webinterface einbinden ?
Titel: Antw:Javascript Editor einbinden
Beitrag von: hexenmeister am 18 Februar 2014, 21:40:05
Möglicherweise ein nettes Feature, jedoch gehört (IMHO) alles, was länger als 1 Zeile ist, in ein PM-Modul (Z.B. 99_myUtils.pm)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 09:01:02
Zitat von: papa am 18 Februar 2014, 20:30:04Könnte man vielleicht so was wie hier
...
in das Webinterface einbinden ?

bitteschön :)

(http://up.picr.de/17410546ic.png)

3 Zeilen zusätzliches Coding und 1 Zeile Codingänderung (die textarea hat bisher keine Id) in der 01_FHEMWEB.pm



FW_pO      "<textarea id=\"val.${cmd}$name\" name=\"val.${cmd}$name\" ".
                "cols=\"$ncols\" rows=\"10\">$val</textarea>";
  FW_pO     "<br>" . FW_submit("cmd.${cmd}$name", "$cmd $name");
  FW_pO   "</form></div>";
 
FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/pgm2/codemirror.css\">";
FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/pgm2/codemirror.js\"></script>";
FW_pO "<script>var editor = CodeMirror.fromTextArea(document.getElementById(\"val.${cmd}$name\"), {lineNumbers: true,matchBrackets: true});</script>";



Entscheiden und Umsetzen müssen das aber andere. Speziell beim DEF-Editor finde ich das aber sehr fraglich.
Und ich hab mich noch nicht mit den Lizenzbedingungen für codemirror beschäftigt.

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 09:02:32
Zitat von: hexenmeister am 18 Februar 2014, 21:40:05Möglicherweise ein nettes Feature, jedoch gehört (IMHO) alles, was länger als 1 Zeile ist, in ein PM-Modul (Z.B. 99_myUtils.pm)

*unterschreib*
Titel: Antw:Javascript Editor einbinden
Beitrag von: chris1284 am 19 Februar 2014, 09:10:45
Zitat von: hexenmeister
Möglicherweise ein nettes Feature, jedoch gehört (IMHO) alles, was länger als 1 Zeile ist, in ein PM-Modul (Z.B. 99_myUtils.pm)

Eine Zeile ist naja, sehr ungenau. Ich bekomme eine menge Code in eine Zeile wenn ich das will. Und auch eine kurze Zeile kann zb.: auf Grund vieler Klammern sehr unübersichtlich sein.
Zitat von: papa
...Syntax-Highlighting und Klammernmatching schon sehr hilfreich

Da genau das schon recht viele Fehler aus macht denke ich wäre es sehr hilfreich.
Titel: Antw:Javascript Editor einbinden
Beitrag von: hexenmeister am 19 Februar 2014, 09:36:22
Klar, bekommt man viel in eine Zeile rein. Aber ist hier jemand damit nicht einverstanden, dass man genau das nicht tun soll?
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 19 Februar 2014, 10:05:47
Zitat von: betateilchen am 19 Februar 2014, 09:01:02
bitteschön :)

3 Zeilen zusätzliches Coding und 1 Zeile Codingänderung (die textarea hat bisher keine Id) in der 01_FHEMWEB.pm

...

Entscheiden und Umsetzen müssen das aber andere. Speziell beim DEF-Editor finde ich das aber sehr fraglich.
Und ich hab mich noch nicht mit den Lizenzbedingungen für codemirror beschäftigt.

Das sieht ja wirklich gut aus - und der Änderungsaufwand hält sich ja auch in Grenzen. Also die Lizenz sollte kein Problem sein. Ist die MIT-Lizenz - das kann man verwenden wie man will.

Wenn ich den Code hier auslagere, dann habe ich nur eine Console zur Verfügung. Mit dem vi macht das Schreiben aber auch keinen Spass.  :(

Außerdem denke ich, dass gerade "normale" User auch keinen geeigneten Editor mit Perl-Syntax-Highlighting auf ihrem System haben. Diese haben also im 99_MyUtils.pm das selbe Problem.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 10:57:00
Zitat von: papa am 19 Februar 2014, 10:05:47Außerdem denke ich, dass gerade "normale" User auch keinen geeigneten Editor mit Perl-Syntax-Highlighting auf ihrem System haben. Diese haben also im 99_MyUtils.pm das selbe Problem.

(http://up.picr.de/17411404pj.png)

(http://up.picr.de/17411419iy.png)

*duck-und-weg*
Titel: Antw:Javascript Editor einbinden
Beitrag von: hexenmeister am 19 Februar 2014, 11:26:47
Betateilchen: +1
Titel: Antw:Javascript Editor einbinden
Beitrag von: herrmannj am 19 Februar 2014, 11:47:32
bin auch dafür. +1 & würde mir das auch bei einigen attribut Zeilen wünschen.

saubere Arbeit!

vg
Jörg
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 11:53:21
und es funktioniert DOCH auch im DEF-Editor  8)

(http://up.picr.de/17411844ak.png)

obwohl es da noch irgendwo einen Haken gibt, den ich noch nicht durchschaut habe (die visibility des Editor-Fensters)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 12:27:45
Zitat von: herrmannj am 19 Februar 2014, 11:47:32würde mir das auch bei einigen attribut Zeilen wünschen.

sehr knifflig, weil dieses Texteingabefeld an vielen Stellen eingesetzt wird.
Titel: Antw:Javascript Editor einbinden
Beitrag von: herrmannj am 19 Februar 2014, 12:44:31
naja, "muss" ja auch nicht. Für die def und die 99.. pm wäre das ja schon mal super. Ich muss gestehen das ich das oft dort per ctrl/c raus kopiere , mit gedit bearbeite und dann zurück kopiere. I

nsofern, keep it simple, das ist schon so gut.

Was mit aufgefallen ist: in Deinem ersten Screenshot scheinen Zeilennummern drin gewesen zu sein, bei den pics weiter unten sehe ich die nicht mehr. Für die 99...pm wären Zeilennummern imho schon wichtig   

Danke und Grüße
Jörg
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 13:20:47
:P

(http://up.picr.de/17412431xv.jpg)
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 19 Februar 2014, 14:21:57
Sehr cool  8)

Ich hätte da auch gleich noch ne Idee. Der Editor kann Autocompletion. Damit könnte man doch bestimmt die FHEM-Funktionen und bereits definierten Devices gleich als Hilfe anbieten.

Ich habe das Gefühl .... das wird ein Fass ohne Boden ....
Titel: Antw:Javascript Editor einbinden
Beitrag von: hexenmeister am 19 Februar 2014, 15:17:55
Schön wäre, wenn das Ganze auch noch abschaltbar bleibt. Denkt an die "Mobile Devices" und die Bandbreite ;)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 15:56:38
Zitat von: papa am 19 Februar 2014, 14:21:57Der Editor kann Autocompletion. Damit könnte man doch bestimmt die FHEM-Funktionen

mach nur... stell die entsprechende Datei zusammen und sie muss nur noch eingebunden werden.

Zitat von: hexenmeister am 19 Februar 2014, 15:17:55
Schön wäre, wenn das Ganze auch noch abschaltbar bleibt.

Das ist das kleinste Problem. Da ich die Einbindung des Editors inzwischen schon als Funktion gekapselt habe, muss ich den Funktionsaufruf einfach nur mit einem (neu zu schaffenden) Attribut "externalEditor:1,0" verknüpfen.

Kopfzerbrechen macht mir aber noch die Einbindung beim DEF-Editor. Da kommen sich zwei Javascripte ins Gehege, eines von fhem und eines vom codemirror, die beide die gleiche Elementeigenschaft bearbeiten wollen, die zum Ein-/Ausblenden des Editorfensters vorgesehen ist.


Und überhaupt... wieso mache ICH das eigentlich alles? 8)
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 19 Februar 2014, 16:05:13
weil du schneller warst als ich :)

ich hatte gestern probiert und wollte es heute hoch laden.

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 16:09:37
Hallo Andre,

hast Du eine Lösung für das Toggle-Problem bei DEF gefunden?

Es klemmt massiv in der sub FW_makeEdit($$$)



sub
FW_makeEdit($$$)
{
  my ($name, $n, $val) = @_;

  # Toggle Edit-Window visibility script.
  my $pgm = "Javascript:" .
             "s=document.getElementById('edit').style;".
             "s.display = s.display=='none' ? 'block' : 'none';".
             "s=document.getElementById('disp').style;".
             "s.display = s.display=='none' ? 'block' : 'none';";
  FW_pO "<td>";
  FW_pO "<a onClick=\"$pgm\">$n</a>";
  FW_pO "</td>";

  $val =~ s,\\\n,\n,g;
  my $eval = $val;
  $eval = "<pre>$eval</pre>" if($eval =~ m/\n/);
  FW_pO "<td>";
  FW_pO   "<div class=\"dval\" id=\"disp\">$eval</div>";
  FW_pO  "</td>";

  FW_pO  "</tr><tr><td colspan=\"2\">";
  FW_pO   "<div id=\"edit\" style=\"display:none\">";
  FW_pO   "<form method=\"$FW_formmethod\">";
  FW_pO       FW_hidden("detail", $name);
  my $cmd = "modify";
  my $ncols = $FW_ss ? 30 : 60;
  FW_pO      "<textarea id=\"editor\" name=\"val.${cmd}$name\" ".
                "cols=\"$ncols\" rows=\"10\">$val</textarea>";
  FW_pO     "<br>" . FW_submit("cmd.${cmd}$name", "$cmd $name");
  FW_pO   "</form>";
  FW_pO "</div>";
#  FW_linkCodemirror('editor');
  FW_pO  "</td>";
}



weil das mit der Umschalterei der "display:none" etc nicht korrekt funktioniert. Ich bekomme zwar ein Editorfenster, das den TExt enthält, aber der TExt wird erst bei der nächsten Eingabe, und sei es auch nur ein Leerzeichen sichtbar.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 19 Februar 2014, 17:16:25
ja. ich habe das CodeMirror.fromTextArea ans ende des Toggle Edit-Window visibility script am anfang von FW_makeEdit gehängt.

wenn man DEF klickt wird zuerst der textarea sichtbar gemacht und dann erst der editor erzeugt.

  my $pgm = "Javascript:" .                                                                                           
             "s=document.getElementById('edit').style;".                                                             
             "s.display = s.display=='none' ? 'block' : 'none';".                                                     
             "s=document.getElementById('disp').style;".                                                             
             "s.display = s.display=='none' ? 'block' : 'none';".                                                     
             "s=document.getElementById('editarea');".                                                               
             "s.editor ? s.editor: s.editor = CodeMirror.fromTextArea(s, {lineNumbers: true,matchBrackets: true});";

noch nicht elegant aber damit geht es dann problemlos.

der texterea hat natürlich die id editarea bekommen.

gruss
  andre

edit: ich hatte auf pgm2 ebene ein codemiror verzeichnis angelegt und dort die relevanten teile rein getan.
        beim colorpicker war rudi das so lieber.
       
        ins edit files auch noch eingebaut das je nach extension das passende mode .js geladen wird.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 18:34:39
Zitat von: justme1968 am 19 Februar 2014, 17:16:25
        ins edit files auch noch eingebaut das je nach extension das passende mode .js geladen wird.

ach... Du hast schon eine .js für die RSS-Layouts? 8) Dann brauch ich mir ja die Arbeit nicht machen...
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 18:36:21
in der Darstellung des DEF-Edit-Fensters ist ohnehin auch im Original noch nicht alles rund. Eigentlich sollten die rows der Tabelle ja unterschiedlich gefärbt sein, aber das funktioniert nicht wirklich anhand der Entscheidung odd:even, die Zeile mit der textarea und die nachfolgende Zeile erscheinen mir immer gleich gefärbt.
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 19 Februar 2014, 18:54:37
Wie cool ist das den :-)
kann ich diese Erweiterung bei mir auch einbinden?



Gruß und Dank
Hannes

Gesendet von Unterwegs mit Tapatalk 4
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 18:58:27
Ich denke, das wird über kurz oder lang per update kommen, nur Geduld.

@andre: das mit dem Einbinden in das toggle-Skript funktioniert prima.

Wir sollten das aber so gestalten, dass wir den codemirror-Teil nur dann an $pgm anhängen, wenn das bereits erwähnte Attribut gesetzt ist. Ich bin da grade dran, das zu testen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 19 Februar 2014, 19:18:13
rss gibt es einfach zum runterladen.

was ich noch nicht geschafft habe ist die zusammengepackte und komprimierte version zu verwenden.

mit der bekomme ich mit safari js fehler und der editor bekommt keinen keyboard focus.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 19:23:03
rss gibts zum runterladen, das ist aber nicht das, was ich meinte. Ich meinte eine komplette Definionsdatei für die LAYOUT Dateien der fhem-RSS ;) (nicht so wichtig, werd ich irgendwann mal basteln)

Bei mir sieht das attributabhängig jetzt so aus:


  my $pgm = "Javascript:" .
             "s=document.getElementById('edit').style;".
             "s.display = s.display=='none' ? 'block' : 'none';".
             "s=document.getElementById('disp').style;".
             "s.display = s.display=='none' ? 'block' : 'none';";
    $pgm .= "s=document.getElementById('editarea');".
             "s.editor ? s.editor: s.editor = CodeMirror.fromTextArea(s, {lineNumbers: true,matchBrackets: true});"
         if AttrVal($FW_wname,'externalEditor',0);

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 19:25:42
Zitat von: justme1968 am 19 Februar 2014, 19:18:13was ich noch nicht geschafft habe ist die zusammengepackte und komprimierte version zu verwenden.
mit der bekomme ich mit safari js fehler und der editor bekommt keinen keyboard focus.

Ich verstehe Dein Problem grade nicht, ich kann das hier problemlos auch in Safari nutzen - gerade getestet.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 19 Februar 2014, 19:29:32
ich hatte mit rss schon das definitionsfile gemeint um die fhem css files richtig zu highligten. nicht das codemirror.css. oder meinst du mit definitionsdatei etwas anderes und wie reden aneinander vorbei?

ich probiere es noch mal sobald mein Internet wieder geht.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 19:46:01
wir reden aneinander vorbei, was das Thema RSS angeht  8)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 19 Februar 2014, 20:14:35
So... bei mir läuft die 01_FHEMWEB jetzt sauber und (per Attribut steuerbar) wahlweise mit externem Editor oder mit dem Standard-Textfeld für die Eingabe.
Integriert für das DEF und für den Bereich "edit files".

(http://up.picr.de/17416023hk.png)

(http://up.picr.de/17416004ah.png)

Offen ist derzeit noch die Frage, wie man die Themes auswählbar machen will. Ich arbeite aus Kontrastgründen generell mit blackboard.



Index: 01_FHEMWEB.pm
===================================================================
--- 01_FHEMWEB.pm (Revision 4990)
+++ 01_FHEMWEB.pm (Arbeitskopie)
@@ -21,6 +21,7 @@
sub FW_fileList($);
sub FW_parseColumns();
sub FW_htmlEscape($);
+sub FW_linkCodemirror;
sub FW_logWrapper($);
sub FW_makeEdit($$$);
sub FW_makeImage(@);
@@ -128,6 +129,7 @@
     defaultRoom
     endPlotNow:1,0
     endPlotToday:1,0
+    externalEditor:1,0
     fwcompress:0,1
     hiddengroup
     hiddenroom
@@ -1571,9 +1573,15 @@
     FW_pO     FW_textfieldv("saveName", 30, "saveName", $fileName);
     FW_pO     "<br><br>";
     FW_pO     FW_hidden("cmd", "style save $fileName");
-    FW_pO     "<textarea name=\"data\" cols=\"$ncols\" rows=\"30\">" .
+    FW_pO     "<textarea id=\"data\" name=\"data\" cols=\"$ncols\" rows=\"30\">" .
                 "$data</textarea>";
     FW_pO "</form>";
+
+    FW_linkCodemirror if AttrVal($FW_wname,'externalEditor',0);
+    FW_pO "<script>var editor = CodeMirror.fromTextArea(document.getElementById(\"data\"), ".
+          "{theme: \"blackboard\", perl: true, lineNumbers: true, matchBrackets: true, closeBrackets: true});</script>"
+      if AttrVal($FW_wname,'externalEditor',0);
+
     FW_pO "</div>";

   } elsif($a[1] eq "save") {
@@ -1981,6 +1989,11 @@
              "s.display = s.display=='none' ? 'block' : 'none';".
              "s=document.getElementById('disp').style;".
              "s.display = s.display=='none' ? 'block' : 'none';";
+    $pgm .= "s=document.getElementById('editarea');".
+             "s.editor ? s.editor: s.editor = CodeMirror.fromTextArea(s, ".
+             "{theme: 'blackboard', perl: true, lineNumbers: true, matchBrackets: true, closeBrackets: true});"
+         if AttrVal($FW_wname,'externalEditor',0);
+
   FW_pO "<td>";
   FW_pO "<a onClick=\"$pgm\">$n</a>";
   FW_pO "</td>";
@@ -1998,13 +2011,23 @@
   FW_pO       FW_hidden("detail", $name);
   my $cmd = "modify";
   my $ncols = $FW_ss ? 30 : 60;
-  FW_pO      "<textarea name=\"val.${cmd}$name\" ".
+  FW_pO      "<textarea id=\"editarea\" name=\"val.${cmd}$name\" ".
                 "cols=\"$ncols\" rows=\"10\">$val</textarea>";
   FW_pO     "<br>" . FW_submit("cmd.${cmd}$name", "$cmd $name");
   FW_pO   "</form></div>";
+  FW_linkCodemirror if AttrVal($FW_wname,'externalEditor',0);
   FW_pO  "</td>";
}

+sub FW_linkCodemirror{
+  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/lib/codemirror.css\">";
+  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/lib/codemirror.js\"></script>";
+  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/theme/blackboard.css\">";
+  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/addon/edit/closebrackets.js\"></script>";
+  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/addon/edit/matchbrackets.js\"></script>";
+  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/mode/perl/perl.js\"></script>";
+  return;
+}

sub
FW_roomStatesForInform($)

Titel: Antw:Javascript Editor einbinden
Beitrag von: svenson08 am 19 Februar 2014, 21:15:29
Respekt. Tolle Sache, klasse Feature!
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 20 Februar 2014, 08:16:32
Zitat von: betateilchen am 19 Februar 2014, 15:56:38
mach nur... stell die entsprechende Datei zusammen und sie muss nur noch eingebunden werden.

Werde mir das Autocompletion mal genau ansehen. Wir könnten auch einen extra Mode für FHEM machen.
Super Arbeit bisher. Warte schon auf das Update :-)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 20 Februar 2014, 10:16:54
Zitat von: betateilchen am 19 Februar 2014, 20:14:35Offen ist derzeit noch die Frage, wie man die Themes auswählbar machen will.

Ich würde das gerne über ein Attribut "externalEditorTheme" realisieren, ohne Attribut würde das default-theme von codemirror gezogen.

Meinungen?
Titel: Javascript Editor einbinden
Beitrag von: justme1968 am 20 Februar 2014, 10:25:12
wie wäre eine mit leerzeichen getrennte liste von <schlüsselwort>[:<wert>] paaren. es wird jeweils <schlüsselwort>.js geladen und <schlüsselwort> mit dem optionalen [ :<wert>]  als parameter übergeben.

und das attribut externalEditorParam nennen.

wobei externalEditor ja schon falsch ist. wie wäre jeweils enhancedEditor?

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 20 Februar 2014, 10:28:54
Auch eine gute Idee. Aber trotzdem brauchst Du die Unterscheidung, ob das Schlüsselwort eine .js bezeichnet (z.B. für mode) oder eine .css (wie bei theme) Ausserdem muss theme immer als String eingebunden werden, wohingegen man einen mode einfach mit true anschalten kann.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 20 Februar 2014, 10:33:53
Sollte man das ganze nicht noch etwas genereller gestalten ? Vielleicht sowas hier:

attr editor standard

oder

attr editor codemirror [ theme:dark, perl:true, lineNumbers: true, matchBrackets: true ]

Dann könnten auch andere Editoren später eingebunden werden. Allerdings muss der Syntax-Mode noch durch den entsprechenden Kontext (FHEM, perl, gplot) anpassbar sein.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 20 Februar 2014, 10:36:23
wenn das :<wert> optional ist könnte man die unterscheidung daran fest machen.

und noch was: kannst gleich noch einbauen das abhängig von der extension der passende mode geladen wird. dann man man braucht man auch später z.b. für gplot nichts mehr anfassen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 20 Februar 2014, 10:42:08
die erste Hälfte hab ich ja schon drin. Damit kannst Du steuern, ob ein externer Editor verwendet werden soll oder nicht.

Per Attribut anzugeben, WELCHEN Editor man nimmt, macht m.E. keinen Sinn, denn FHEMWEB kann nicht jeden Editor kennen und für jeden Editor sind andere Regeln zum Einbinden notwendig. Wir sollten uns also auf EINEN Editor festlegen, ich finde codemirror dabei nicht die schlechteste Lösung.

Aber selbst bei codemirror alleine ist eine Attributvorgabe für die mode wenig praktikabel. Du brauchst je nach Einsatzstelle nämlich unterschiedliche Varianten:


Das Einzige, was wirklich über die gesamte Oberfläche hinweg festgelegt werden kann, ist das theme, deshalb könnte ich mir dafür durchaus ein Attribut vorstellen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 20 Februar 2014, 10:46:25
Zitat von: justme1968 am 20 Februar 2014, 10:36:23
und noch was: kannst gleich noch einbauen das abhängig von der extension der passende mode geladen wird. dann man man braucht man auch später z.b. für gplot nichts mehr anfassen.

Ich denke, das hast Du schon gebaut? Wir sollten unsere Parallelentwicklung mal beenden und uns entweder für eine Variante entscheiden ;)
Bis Sonntagabend bin ich nun unterwegs und kann wahrscheinlich nicht viel an dieser Sache weiterschrauben.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 20 Februar 2014, 10:52:34
und ich hätte es schon längst hoch geladen wenn KabelBW es endlich schaffen würde das neue kabelndem zum laufen zu bekommen...

ich bin immer noch für enhanced statt external. das ding geht ja nicht in einem extra fenster auf sondern ist immer noch inline.


Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 20 Februar 2014, 10:57:47
nagut, ob das nun enhanced, external oder gustav heißt, ist mir eigentlich egal :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 20 Februar 2014, 22:07:15
Ich habe mal ein wenig mit der Autocompletion gespielt. Folgende Sektionen würde ich vorschlagen:

* Keywords
* Templates
* Devices
* Variables

Anbei mal ein Screenshort von der Testseite.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 20 Februar 2014, 23:31:52
anbei eine version bei der für perl, css und svg der richtige mode automatisch geladen wird und der tippfehler beim autoCloseBrackets behoben ist. die zuordnung ist leicht erweiterbar.

ich hab enhancedEditorTheme eingebaut und externalEditor in enhancedEditor umbenannt.

gruss
  andre

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 09:51:05
hat eigentlich "der König ;) Chef" schon eine Meinung zum Thema?
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 21 Februar 2014, 10:07:41
Ich warte ab, bis die Sache sich beruhigt hat.
Habe z.Zt. leider wenig Zeit fuer groessere Baustellen, insb. wenn sie Nachdenken erfordern.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 10:08:41
Zitat von: justme1968 am 20 Februar 2014, 23:31:52anbei eine version bei der für perl, css und svg der richtige mode automatisch geladen wird

D.h. bei .gplot und bei .cfg Files (und einigen anderen) wird gar kein mode geladen. Das führt hier irgendwie dazu, dass das Theme nicht greift und schwarz auf weiß in winziger Schrift dargestellt wird. Bei .pm funktioniert es prima.

(http://up.picr.de/17427964im.png)

(http://up.picr.de/17427965hf.png)

Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 21 Februar 2014, 10:11:07
der Grund ist vermutlich das die syntax der config zeile nicht stimmt wenn kein mapping gefunden wird.

das repariere ich nachher.

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 10:11:41
Zitat von: rudolfkoenig am 21 Februar 2014, 10:07:41
Habe z.Zt. leider wenig Zeit fuer groessere Baustellen, insb. wenn sie Nachdenken erfordern.

Hallo Rudi,

danke fürs Statement. So groß ist die Baustelle gar nicht. Der Editor klinkt sich einfach per JavaScript an zwei Stellen in das textarea-Tag ein.
Schau es Dir einfach irgendwann in Ruhe an.

Viele Grüße
Udo
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 10:14:01
Zitat von: justme1968 am 21 Februar 2014, 10:11:07
das repariere ich nachher.

Wenn Du grade dabei bist..



+sub FW_linkCodemirror($);
+sub FW_codemirrorParams($);



Ich bin dafür die sub FW_linkCodemirror in FW_codemirrorLink umzubenennen, dann lassen die sich in der alphabetisch sortierten (!) Forward-Deklaration problemlos hintereinander einsortieren.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 10:26:18
Zitat von: justme1968 am 21 Februar 2014, 10:11:07der Grund ist vermutlich das die syntax der config zeile nicht stimmt wenn kein mapping gefunden wird.

jepp...



var editor = CodeMirror.fromTextArea(document.getElementById("data"),{theme: 'blackboard', : true, lineNumbers: true, matchBrackets: true, autoCloseBrackets: true});



Ich finde, in fhem sollte perl als Standard mode gesetzt werden, wenn nix anderes gefunden wird.




  my $lang = $codemirrorMapping{$ext};
  $lang = 'perl' if !defined($lang);


Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 21 Februar 2014, 10:36:00
dacht ich mir schon.

ich glaube man kann das so gar noch weiter vereinfachen. wenn nur ein mode file geladen wird muss man den mode gar nicht angeben. es wird immer der eine geladene verwendet.

patch kommt nachher.

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 10:42:26
Ach, so schlecht finde ich den jetzigen Ansatz gar nicht. Man muss eben nur den Fall "unbekannte" Endung mit bedenken, dann braucht es keine Sonderbehandlungen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 11:08:24
Zitat von: herrmannj am 19 Februar 2014, 12:44:31
naja, "muss" ja auch nicht. Für die def und die 99.. pm wäre das ja schon mal super. Ich muss gestehen das ich das oft dort per ctrl/c raus kopiere , mit gedit bearbeite und dann zurück kopiere.

Hallo Jörg,

für Deinen Vorschlag "Attributzeile" gibts einen Workaround, den Du innerhalb fhem nutzen kannst:

1. Lege Dir eine Datei blank.cfg im Verzeichnis ./FHEM an
2. Wenn Du jetzt auf "Edit files" gehst, sollte in der Rubrik "Own Module & Helper files" diese Datei auftauchen.
3. Wenn Du die Datei auswählst, greift der enhancedEditor und Du kannst Deine Definition dort vorbereiten und per copy&paste in die Attributzeile übernehmen.

Abspeichern musst Du die Datei ja gar nicht. Es ist quasi ein universelles Editorfeld mit Syntax-Highlighting.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 21 Februar 2014, 11:37:59
hier der aktuelle patch:

- FW_codemirrorLink statt FW_linkCcodemirror
- perl ist default (auch wenn ich finde das es für .cfg nicht passt :) )
- der mode wird nicht extra aktiviert. sondern automatisch implizit verwendet

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 12:06:22
Sollte man als default-Theme nicht besser 'default' verwenden?
Nicht jedem wird/muss das blackboard gefallen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 21 Februar 2014, 12:25:28
der default passt vermutlich so oder so nicht.

wie wäre es blackboard zu verwenden wenn im theme ein 'dark' vorkommt und sonst default ?
Titel: Antw:Javascript Editor einbinden
Beitrag von: herrmannj am 21 Februar 2014, 12:25:56
Zitatfür Deinen Vorschlag "Attributzeile" gibts einen Workaround, den Du innerhalb fhem nutzen kannst:

vielen Dank, aber mach Dir da wirklich keinen Stress mit. Ist echt nur "nice to have" nicht mehr.

Im Augenblick mach ich die 99er und einige defs per copy und paste. Wenn das jetzt alles intern funktioniert ist das echt schon ein Highlight. Die wenigen attribs und stateformats / userReadings wo es überhaupt was bringen würde kann ich an einer Hand abzählen.

danke nochmal, weiter so  :)
vg
Jörg
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 12:28:35
Zitat von: justme1968 am 21 Februar 2014, 12:25:28wie wäre es blackboard zu verwenden wenn im theme ein 'dark' vorkommt und sonst default ?

Bitte nicht komplizierte machen als es sein muss. Lassen wir blackboard einfach als default, es kann ja jederzeit vom Anwender geändert werden und sieht erstmal schön bunt aus, damit man sofort erkennt, worum es geht :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 21 Februar 2014, 12:29:06
:)
Titel: Antw:Javascript Editor einbinden
Beitrag von: klausw am 21 Februar 2014, 12:48:59
Das funktioniert ja schon super. Weiter so!
Dann kann ich npp bald einmotten ;D

Eine Sache ist mir aufgefallen, im alten Editor lässt sich die Größe des Editorfeldes ändern.
Lässt sich das für den codemirror auch anpassen?

Grüße
Klaus
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 13:49:27
das manuelle Ändern ist "kompliziert" aber was codemirror kann: ein AutoResize

(http://up.picr.de/17429447hi.jpg)

(http://up.picr.de/17429449zu.jpg)

Titel: Antw:Javascript Editor einbinden
Beitrag von: klausw am 21 Februar 2014, 14:14:52
das ist meiner Meinung nach noch besser
im Editorfenster kann schließlich nicht genug platz sein
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 21 Februar 2014, 14:31:14
ich finde auch, je mehr Platz umso besser :) Ich hoffe nur, dass das nicht irgendwann Performance-Probleme gibt.

Das sind die Änderungen fürs autoResize



    if( AttrVal($FW_wname,'enhancedEditor',0) ) {
      my $ext = ($fileName =~ m/\.(.*)$/)[0];
      FW_codemirrorLink($ext);
->      FW_pO "<style type=\"text/css\">".
->           ".CodeMirror {height: auto;}".
->            ".CodeMirror-scroll {overflow-y: hidden; overflow-x: auto;}".
->            "</style>".
            "<script>".
            "var editor = CodeMirror.fromTextArea(document.getElementById(\"data\"),".
            FW_codemirrorParams($ext) . ");".
            "</script>";
    }

Titel: Antw:Javascript Editor einbinden
Beitrag von: klausw am 21 Februar 2014, 15:04:55
Zitat von: betateilchen am 21 Februar 2014, 14:31:14
ich finde auch, je mehr Platz umso besser :) Ich hoffe nur, dass das nicht irgendwann Performance-Probleme gibt.

Das Javascript wird doch vom Browser verarbeitet. Der hat hoffentlich noch Luft  nach oben, was die Performance angeht :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 21 Februar 2014, 22:37:48
Ich habe mal mit einen fhem Mode begonnen. Dieser fügt dem perl Mode noch ein paar Keywörter hinzu. Außerdem beinhaltet er auch die Autocompletion. Zum Probieren mal das angehängt 01_FHEMWEB.pm nehmen. Außerdem muss das fhem.js in den in das Verzeichnis codemirror/mode/fhem.

Leider kriege ich die Geräteliste per jsonlist Kommando nicht zum laufen. Deshalb geht auch das Einblenden der Geräteliste noch nicht. Vielleicht hat ja jemand eine Idee, der vertrauter mit Javascript ist.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 22 Februar 2014, 13:46:22
Jetzt funktioniert auch die Hilfe mit der Liste aller definierten Devices. Das ganze wird mit Ctrl+Space angezeigt.
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 22 Februar 2014, 14:50:48
Hallo papa,

hast du vielleicht eine .patch Datei zur 01_FHEMWEB.pm ?


Grüße
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 22 Februar 2014, 15:10:22
@Betateilchen
Ich hab deinen fix für das autoResize ausprobiert. Leider klappt das bei mir nicht. Hast du eine Idee?

if( AttrVal($FW_wname,'enhancedEditor',0) ) {
      my $ext = ($fileName =~ m/\.(.*)$/)[0];
      FW_codemirrorLink($ext);
      FW_pO "<style type=\"text/css\">".
           ".CodeMirror {height: auto;}".
            ".CodeMirror-scroll {overflow-y: hidden; overflow-x: auto;}".
            "</style>".
      FW_pO "<script>var editor = CodeMirror.fromTextArea(document.getElementById(\"data\"),".
            FW_codemirrorParams($ext) . ");</script>";
    }



Grüße
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 22 Februar 2014, 15:25:37
Zitat von: fhainz am 22 Februar 2014, 14:50:48
hast du vielleicht eine .patch Datei zur 01_FHEMWEB.pm ?

Nein - leider nicht - keine richtige Entwicklungsumgebung. Aber ich habe die Änderungen hier mal rot eingefärbt.


my %codemirrorMapping = ( pm => "fhem",
                          cfg => "fhem",
                          css => "css",
                          svg => "xml",
);

sub FW_codemirrorLink($)
{
  my ($ext) = @_;

  my $lang = $codemirrorMapping{$ext};
  my $theme = AttrVal($FW_wname,'enhancedEditorTheme','blackboard');

  $lang = "perl" if( !$lang );

  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/pgm2/jquery.min.js\"></script>";
  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/lib/codemirror.css\">";
  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/lib/codemirror.js\"></script>";
  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/theme/$theme.css\">";
  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/addon/edit/closebrackets.js\"></script>";
  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/addon/edit/matchbrackets.js\"></script>";
  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/addon/hint/show-hint.js\"></script>";
  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/addon/hint/show-hint.css\">";
  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/mode/$lang/$lang.js\"></script>" if( $lang );
  return;
}
sub FW_codemirrorParams($)
{
  my ($ext) = @_;

  my $theme = AttrVal($FW_wname,'enhancedEditorTheme','blackboard');

  #my $lang = $codemirrorMapping{$ext};
  #if( !$lang ) {
  #  $lang = "";
  #} else {
  #  $lang .= ": true,";
  #}
  #return "{theme: '". $theme. "', $lang lineNumbers: true, matchBrackets: true, autoCloseBrackets: true}";

  return "{theme: '". $theme. "', lineNumbers: true, matchBrackets: true, autoCloseBrackets: true, extraKeys: {'Ctrl-Space': 'autocomplete'} }";
}
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 22 Februar 2014, 18:16:57
Zitat von: fhainz am 22 Februar 2014, 15:10:22Hast du eine Idee?

klar, nach "</style>" kommt ein ; kein .

Hättest Du es einfach so übernommen, wie von mir vorgeschlagen, hätte es funktioniert.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 22 Februar 2014, 18:18:52
ich werde mir die Änderung von papa heute abend mal anschauen und dann einfach mal eine komplette 01_FHEMWEB zum Testen hier reinhängen. Dauert aber noch ein bißchen, ich hab erstmal Hunger :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 22 Februar 2014, 18:22:22
Hätte ich mir auch denken können.  ::)
Nun klappts, danke!
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 23 Februar 2014, 10:02:00
Die auto-vervöllständigung ist wirklich cool! Funktioniert super bei mir!  8)

Ich häng hier den patch von andre an. Die Änderungen von betateilchen (autoResize) und von papa (autocomplete) hab ich manuell eingefügt und den patch getestet.
Falls jemand testen will.


Grüße
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 23 Februar 2014, 13:22:33
Ich habe hier nochmal eine aktuallisierte Version der Autovervollständigung. Das JSON Handling ist jetzt async. Außerdem wird ein existierender Alias mit angezeigt.

Folgende Punkte sind noch auf meiner Liste:

* vollständige Liste der FHEM Keyword / Variablen
* Zwischenspeichern der Device Liste - oder alternativ eine gekürzte jsonlist mit Namen & Alias
* Kontextsensitive Hilfe - z.B. wenn der Cursor hinter 'attr' steht, brauchen nur die Devices angezeigt zu werden. Wenn dann schon 'attr dev123' dasteht - nur die Attribute von 'dev123'. Analog könnte man auch die Devices und Readings bei 'ReadingsVal' einblenden. Weitere Vorschläge sind gerne willkommen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: oniT am 23 Februar 2014, 14:58:46
Hallo,

da es mich auch interessieren würde wie das ganze Aussieht, muss ich mal fragen wie ich den oder im allgemeinen die Patch einspiele? Mittels FTP übertragen ist klar, ein Reload durchführen auch. Aber dann kommt eine Fehlermeldung. Würde mich bitte mal einer darüber aufklären.

Danke

Gruß,
Tino
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 23 Februar 2014, 17:53:40
Ich mach das mit Eclipse (http://www.eclipse.org). Nachdem ich diese Entwicklungsumgebung generell nutze biete sich das an.
Denke aber das gibts auch andere Möglichkeiten. Eventuell mal googeln wie man eine perl Datei patched.

Grüße
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 23 Februar 2014, 21:10:42
Auf der Console den patch Befehl ausführen:

patch 01_FHEMWEB.pm 01_FHEMWEB.pm.patch

Titel: Antw:Javascript Editor einbinden
Beitrag von: punker am 24 Februar 2014, 13:09:20
Hi,

versuche auch grad den codemirror zum laufen zu kriegen, aber leider erhalte ich nach Eingabe von patch 01_FHEMWEB.pm 01_FHEMWEB.pm.patch
folgenden Fehler:
patching file 01_FHEMWEB.pm
patch: **** malformed patch at line 40: +

Sicher nur eine Kleinigkeit?
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 24 Februar 2014, 13:11:43
das ist kein fehler sondern die meldung was gerade gemacht wird. wenn nichts anders danach steht ist alles gut.

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: punker am 24 Februar 2014, 14:04:08
Also vielleicht bin ich ja zu blöd, aber nach dem patchen sollte die gepatchte Datei doch eine andee Größe haben - oder nicht? Meine hat hinterher die exakt gleiche wie vorher!
Laut diese Seite http://www.markusbe.de/2009/12/wie-man-einen-patch-anwendet-und-hunk-failed-cant-find-file-to-patch-und-andere-loest/#malformed-patch (http://www.markusbe.de/2009/12/wie-man-einen-patch-anwendet-und-hunk-failed-cant-find-file-to-patch-und-andere-loest/#malformed-patch) heißt malformed dass die Patchdatei einen Fehler aufweist!
Was ist nun richtig?
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 24 Februar 2014, 14:07:40
in deiner frage habe ich nichts von malformed gesehen...
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 24 Februar 2014, 14:10:05
ich schon, deshalb hatte mich Deine Antwort gewundert...

Zitat von: punker am 24 Februar 2014, 13:09:20folgenden Fehler:
patching file 01_FHEMWEB.pm
patch: **** malformed patch at line 40: +
Titel: Javascript Editor einbinden
Beitrag von: justme1968 am 24 Februar 2014, 14:15:10
taptalk zeigt in der normal ansicht den beitrag nur bis zur patching... zeile an. erst beim vergrößern den rest. bei deiner antwort ist es fast umgekehrt. in der vergrößerung fehlt das komplette zitat...

@punker: vergiss meine antwort. die ist dann natürlich blödsinn.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 24 Februar 2014, 14:20:41
jetzt weißt Du, warum ich tapatalk nicht mag  8)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 24 Februar 2014, 14:22:03
Ich bin noch nicht dazu gekommen, papas Erweiterungen einzubauen.

Kann nicht einfach mal jemand eine komplette 01_FHEMWEB.pm mit dem aktuellen Stand "all-inklusive" hier posten, dann erspart man sich das Patchen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 24 Februar 2014, 14:23:18
Ich hab papas erweiterungen drinne.  Kann am Abend die datei posten.

Grüße
Titel: Antw:Javascript Editor einbinden
Beitrag von: punker am 24 Februar 2014, 14:30:15
Alles gut - dann kann ich wieder aufhören an meinem Verstand zu zweifeln! :-)
Dachte mir - schon allein das Wort "malformed" kann doch nichts gutes bedeuten!
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 24 Februar 2014, 15:05:33
An der Message #64 hängt eine komplette 01_FHEMWEB.pm dran. Da fehlt allerdings das autoresize.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 24 Februar 2014, 15:20:01
Dann sollte diese hier jetzt die Version inkl. autoresize sein :) (hab die genannte Datei genommen und autoresize ergänzt)
Titel: Antw:Javascript Editor einbinden
Beitrag von: punker am 25 Februar 2014, 11:29:34
 ;D Danke, funzt einwandfrei!
Wofür ist das enhancedEditorTheme?
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 Februar 2014, 11:44:11
wie der Name sagt... damit kannst Du das Theme einstellen, das vom enhancedEditor verwendet wird. Standardmäßig wird "blackboard" verwendet, aber codemirror bietet noch eine Menge anderer Designs, die damit ausgewählt werden können. Du kannst ja z.B. mal "default" einstellen :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: punker am 26 Februar 2014, 10:47:01
Danke nochmal, habs jetzt ausprobiert - perfekt!
Ist diese Änderung dann auch noch vorhanden, wenn ich ein Update der 01_FHEMWEB.pm mache?
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 26 Februar 2014, 10:54:27
nö.

(zumindest solange nicht, bis diese Änderungen "offiziell" in 01_FHEMWEB übernommen wurden)
Titel: Antw:Javascript Editor einbinden
Beitrag von: svenson08 am 26 Februar 2014, 10:57:52
ZitatIst diese Änderung dann auch noch vorhanden, wenn ich ein Update der 01_FHEMWEB.pm mache
Oder anders gefragt, wann ist damit zu rechnen das es als offizielle Erweiterung aufgenommen wird  ;)
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 26 Februar 2014, 11:20:21
auf keinen fall bevor jemand die doku ergänzt hat :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 26 Februar 2014, 11:55:07
Dazu wäre vorab zu klären, ob codemirror dann zukünftig innerhalb des fhem-Paketes mit ausgeliefert wird oder der Benutzer die Installation selbst übernehmen muss.
Titel: Antw:Javascript Editor einbinden
Beitrag von: hexenmeister am 26 Februar 2014, 14:16:48
Zitatselbst übernehmen muss
selbst ist doof :( (und wird einen oder anderen Anfänger überfordern ???)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 26 Februar 2014, 15:10:43
Die Doku für den Fall "codemirror wird mit fhem zusammen ausgeliefert" habe ich fertig.
In dem Fall beschränkt sich die gesamte Doku ja auf die Beschreibung der beiden neuen Attribute enhancedEditor.*

Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 26 Februar 2014, 19:06:04
Funktioniert das auch auf der FritzBox?

*duck*

Gesendet von Unterwegs mit Tapatalk 4

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 26 Februar 2014, 19:11:41
ja.

Zumindest wüsste ich nix, das dagegenspricht.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Martin Schmid am 26 Februar 2014, 20:18:30
Hallo zusammen,
gerade habe ich codemirror 3.22 auf meiner FB7390 in FHEM integriert und es scheint zu funktionieren.
Die Klammerzuordnung funktioniert perfekt, aber ich bekomme leider keine Einfärbung des Codes (siehe Anhang).

Viele Grüße
Martin Schmid
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 26 Februar 2014, 20:20:25
hast Du auch die fhem.js hier aus dem Thread mit installiert?
Titel: Antw:Javascript Editor einbinden
Beitrag von: Martin Schmid am 26 Februar 2014, 20:37:30
Asche auf mein Haupt. Ich hatte die Datei fhem.js ins verkehrte Verzeichnis kopiert. Jetzt läuft auch auf der Fritzbox alles hervorragend!

Herzlichen Dank
Martin Schmid
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 26 Februar 2014, 20:40:04
klar geht das auch mit einer fritzbox. gerade weil es nicht auf der fritzbox läuft :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 26 Februar 2014, 20:41:12
kaum macht man es richtig, schon funktionierts  8)
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 27 Februar 2014, 21:43:06
Hallo

ich habe unter /var/InternerSpeicher/fhem ein Verzeichnis mit codemirror angelegt und alle files aus dem Zipfile codemirror.zip kopiert.

zuszätzlich habe ich das Verzeichnis
fhem\codemirror\mode\fhem angelegt und fhem.js hineinkopiert.

die 01_FHEMWEB.pm habe ich nach fhem\FHEM\01_FHEMWEB.pm kopiert.

Das Attribut
attr WEB  enhancedEditor 1
habe ich auch gesetzt

... aber leider ändert sich nichts am Editor

Habe ich was überlesen,
kann mir bitte jemand helfen.

Gruß Hannes

Titel: Javascript Editor einbinden
Beitrag von: justme1968 am 27 Februar 2014, 21:44:51
das codemirror verzeichnis muss auf die gleiche ebene wie pgm2 innerhalb von www.

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 28 Februar 2014, 05:51:30
Danke, werde ich heute abend testen.

Gesendet von Unterwegs mit Tapatalk 4

Titel: Antw:Javascript Editor einbinden
Beitrag von: RoqueNublo am 28 Februar 2014, 13:32:32
Hi,

ich habe den Beitrag ,,Javascript Editor einbinden" aufmerksam durchgelesen und auch die Information aus den Beiträgen von Heute berücksichtigt.
Leider bekomme ich nach der Auswechslung der ,,01_FHEMWEB.pm" im ./FHEM Verzeichnis und anschließendem reboot meines Raspberry Pi,  Seiten-Ladefehler beim Aufruf ,,http://192.168.188.50:8083/fhem"

Fehler: Verbindung fehlgeschlagen
Firefox kann keine Verbindung zu dem Server unter 192.168.168.50:8083 aufbauen.

Was läuft schief? Hat jemand einen Tip für mich?

Gruß Roqeu


Verwendete Komponenten:
- 01_FHEMWEB.pm (105.17 kB) aus Beitrag #88 von betateilchen
- fhem.js (56.82 kB) aus Beitrag #73 von papa
- download ,,codemirror version 3.22" von http://codemirror.net/ genannt am 18.02.14 von papa
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 28 Februar 2014, 13:41:05
steht etwas im log ?

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 28 Februar 2014, 13:41:33
Vermutlich hast Du ein Rechteproblem und fhem kann nicht auf die benötigten Dateien zugreifen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: frank am 28 Februar 2014, 13:46:33
hallo roque,

ich hatte so was ähliches. vielleicht ist deine 01_FHEMWEB.pm-"umgebung" zu neu für die gepatchte version. ich glaube da hat sich in den letzten tagen viel getan.

gruss frank
Titel: Antw:Javascript Editor einbinden
Beitrag von: RoqueNublo am 28 Februar 2014, 15:23:35
Hi justme1968, betateilchen und frank,

nachfolgende Informationen Euch zur Kenntniss

im Log steht:

2014.02.28 13:29:29 1: Including fhem.cfg
2014.02.28 13:29:31 1: called
2014.02.28 13:29:37 3: telnetPort: port 7072 opened
2014.02.28 13:29:37 1: reload: Error:Modul 01_FHEMWEB deactivated:
Global symbol "%ntfyHash" requires explicit package name at ./FHEM/01_FHEMWEB.pm line 502, <$fh> line 12.
BEGIN not safe after errors--compilation aborted at ./FHEM/01_FHEMWEB.pm line 543, <$fh> line 12.

2014.02.28 13:29:37 0: Global symbol "%ntfyHash" requires explicit package name at ./FHEM/01_FHEMWEB.pm line 502, <$fh> line 12.
BEGIN not safe after errors--compilation aborted at ./FHEM/01_FHEMWEB.pm line 543, <$fh> line 12.

2014.02.28 13:29:37 3: Please define WEB first
2014.02.28 13:29:37 3: Please define WEB first
2014.02.28 13:29:37 3: Please define WEB first
2014.02.28 13:29:38 1: reload: Error:Modul 01_FHEMWEB deactivated:
Global symbol "%ntfyHash" requires explicit package name at ./FHEM/01_FHEMWEB.pm line 502, <$fh> line 18.
BEGIN not safe after errors--compilation aborted at ./FHEM/01_FHEMWEB.pm line 543, <$fh> line 18.

2014.02.28 13:29:38 0: Global symbol "%ntfyHash" requires explicit package name at ./FHEM/01_FHEMWEB.pm line 502, <$fh> line 18.
BEGIN not safe after errors--compilation aborted at ./FHEM/01_FHEMWEB.pm line 543, <$fh> line 18.

2014.02.28 13:29:38 3: Please define WEBphone first
2014.02.28 13:29:40 3: Opening COC device /dev/ttyAMA0
2014.02.28 13:29:41 3: Setting COC baudrate to 38400
2014.02.28 13:29:41 3: COC device opened
2014.02.28 13:29:41 3: COC: Possible commands: mCFiAZOGMRTVWXefltux
2014.02.28 13:29:48 1: configfile: Cannot load module FHEMWEB
Please define WEB first
Please define WEB first
Please define WEB first
Cannot load module FHEMWEB
Please define WEBphone first
2014.02.28 13:29:48 1: Including ./log/.save
2014.02.28 13:29:49 1: usb create starting
2014.02.28 13:29:50 1: usb create end
2014.02.28 13:29:50 0: Server started with 242 defined entities (version $Id: fhem.pl 4254 2013-11-20 13:04:27Z rudolfkoenig $, os linux, user fhem, pid 2223)
2014.02.28 13:31:49 0: Server shutdown


Rechte:
Alle Rechte in den Pfaden ab ./fhem/... für habe ich auf ,,rwxrwxrwx" geändert. Sollte also kein Problem sein.

01_FHEMWEB.pm-"umgebung" zu neu:
Mein letztes Update habe ich 21.11.2013 durchgeführt
.
.
2013.11.21 20:41:27 3: update get http://fhem.de/fhemupdate4/svn/FHEM/01_FHEMWEB.pm
.
usw.

Ich hoffe das Ihr mir einen Hinweis geben könnt. Danke für die Unterstützung!

Gruß Roqeu
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 28 Februar 2014, 15:28:40
fhem.pl zu alt.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 28 Februar 2014, 16:23:36
lach...

Server started with 242 defined entities (version $Id: fhem.pl 4254 2013-11-20

scheint so  8)
Titel: Antw:Javascript Editor einbinden
Beitrag von: RoqueNublo am 28 Februar 2014, 17:57:16
Hallo zusammen,

erstenmal vielen Dank für Eure Hilfe. Habe nach dem Hinweis von Rudi einen Update durchgeführt. Nach Update und reboot habe ich dann ,,attr WEB  enhancedEditor 1" in die fhem.cfg eingetragen.
Der Save as fhem.cfg produziert allerdings einen Hinweis bzw. Fehler

WEB: unknown attribute enhancedEditor. Type 'attr WEB ?' for a detailed list.

Frage, hat sich an der Aktivierung des Editors etwas geändert, was ich den Beiträgen bisher nicht entnehmen konnte.

Gruß Roqeu

PS.: Hi, betateilchen klär mich doch bitte mal auf womit ich Dich ,,lach..." so amüsieren ;) konnte. Ich möchte lernen und dabei ist mir jeder gutgemeinte Hinweis recht. Ich weiß, dass das Forum nicht dazu da ist um z.B. Leuten wie mir das Laufen beizubringen. Aber manchmal ist schon ein kleiner Denkanstoß ausreichend um selbst den nächsten Schritt zu machen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 28 Februar 2014, 18:24:50
Die Erweiterung mit dem Editor bekommst Du nicht per Update, weil die noch nicht offiziell eingebaut ist.

Du musst nach dem Update Deiner gesamte fhem Installation die Datei Dateien  hier aus dem Thread verwenden.


Zitat von: RoqueNublo am 28 Februar 2014, 17:57:16PS.: Hi, betateilchen klär mich doch bitte mal auf womit ich Dich ,,lach..." so amüsieren konnte

War absolut nicht böse oder schadenfroh gemeint, es erheitert mich aber regelmäßig, wenn ein Anwender mit sehr alten Softwareversionen versucht, aktuelle Entwicklungen der letzten Tage nachzuvollziehen und sich wundert, dass es nicht funktioniert.
Titel: Antw:Javascript Editor einbinden
Beitrag von: RoqueNublo am 28 Februar 2014, 18:54:03
Hi betateilchen,

Danke für Deinen Hinweis. Ich stand unter dem Eindruck, dass die Komponenten Eures Projekt's schon mit ausgeliefert wurden da die neue ,,01_FHEMWEB.pm" aus dem Update gegenüber der von mir bisher genutzten annähernd die gleich Größe hat wie die aus Euren Beitrag.
Ich habe nunmehr die ,,01_FHEMWEB.pm" hier aus dem Beitrag neu eingespielt und siehe da, alles Bestens. Hervorragend, tolles Projekt was Ihr auf den Weg gebracht habt. Danke!!!

Gruß von der Insel
Roque
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 28 Februar 2014, 22:54:44
Danke nochmal

jetzt geht der Editor schon mal auf und zeigt die Zeilen Nummern  ;D.
Syntax highlight geht jedoch nicht, habe ich noch etwas übersehen was ich einstellen muss :-\.

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 28 Februar 2014, 23:22:08
vermutlich die fhem.js nicht mit kopiert
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 01 März 2014, 00:02:12
Danke für den Hinweis :)

Neustart von fhem hatte den Erfolg gebracht ;D.

Der Editor ist voll der Hammer, eine super coole  8) sache, jetzt kann ich auch am Tab
mal was vernünftig anpassen.

Nochmals eine dickes Mercie an alle

Gruß Hannes
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 01 März 2014, 14:45:04
Langsam können wir wohl darüber nachmachen, diese Änderung zu manifestieren.
Noch dazu, wo es sogar 8) mit mir suspekten Hardwareteilen aus Berlin funktioniert.

Wer reicht die Petition ein? Hier mein Beitrag bezüglich Dokumentation:

(http://up.picr.de/17512672qo.png)


Index: 01_FHEMWEB.pm
===================================================================
--- 01_FHEMWEB.pm (revision 5083)
+++ 01_FHEMWEB.pm (working copy)
@@ -2893,8 +2893,37 @@
        Note: some elements like SVG plots and readingsGroup can only be part of
        a column if they are part of a <a href="#group">group</a>.
        </li>
+      <br/>
+     <a name="enhancedEditor"></a>
+     <li>enhancedEditor<br/>
+       Activates enhanced editor <a href="#codemirror">codemirror</a> to edit files and DEFs. Example:<br/>
+       <br/>
+       <ul><code>attr WEB enhancedEditor &lt;1|0&gt;</code></ul>
+       <br/>
+       Set to 1 to activate, 0 to deactivate the enhanced editor.<br/>
+       Defaults to 0 if not set and internal editing will be used.<br/>
+       </li>
+      <br/>
+     <a name="enhancedEditorTheme"></a>
+     <li>enhancedEditorTheme<br>
+       Select theme to be used in enhanced editor. Example:<br/>
+       <br/>
+       <ul><code>attr WEB enhancedEditorTheme blackboard</code></ul>
+       <br/>
+       Default theme is "blackboard".<br/>
+       Check directory ./www/codemirror/theme for available themes.<br/>
+       </li>
     </ul>
+  <br/>
+  <a name="codemirror"></a>
+  <b>Enhanced editor <a href="http:/www.codemirror.net">codemirror</a></b>
+  <ul>
+    <br/>
+    Enhanced editor codemirror can be used for editing files and DEFs in fhem frontend.<br/>
+    Includes: syntax highlighting, bracket control, auto-complete and much more.<br/>
+    See <a href="http:/www.codemirror.net">codemirror website</a> for more informations about editor's functionality and features.<br/>
   </ul>
+  </ul>

=end html
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 02 März 2014, 12:19:38
@ Rudi:

Welche Zuarbeit/Informationen brauchst Du, um die Einbindung des codemirror in fhem zu entscheiden und ggf. durchzuführen?
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 02 März 2014, 12:40:08
Erstens einen kompletten Patch, und danach etwas Zeit. Ich will FHEMWEB  "autoloading" der JavaScript Dateien beibringen, und ich muss noch dafuer einen Weg finden. Die Knobs von svenson08 warten auch darauf.
Titel: Antw:Javascript Editor einbinden
Beitrag von: dafex am 02 März 2014, 12:47:56
Ich finde den Editor eine große Erleichterung. Erstens habe ich so gut wie keine Ahnung von Programmierung und da ist es zweitens hilfreich, wenn ich Unterstützung von einem Editor erhalte. Zum Beispiel bei der Klammersetzung, da stolpere ich gerne mal drüber. Zuerst habe ich, wie viele andere auch, die Konfiguration mit einem externen Editor gemacht. Habe aber festgestellt, das es mit der Web-GUI einfacher geht. Das Blackboard Theme finde ich auch perfekt. Ich bin eine Fan von Weiß (in diesem Fall bunt) auf schwarz. Schont die Augen. Vielleicht ist der enhancedEditor ein Anreiz für einige, mehr über die Weboberfläche zu machen. Was meiner Meinung nach weniger Fehleranträchtig ist und komfortabler. Ich kann einiges ausprobieren, und erst wenn's richtig läuft wird save config gedrückt.

Nebenbei, kann mir jemand ein Werkzeug nennen, mit dem ich Regexp testen kann? Das ist zur Zeit mein größtes Problem. Geht das in der Kommandozeile? Hab darüber noch nichts gefunden. Wäre das nicht schon das nächste Projekt?

Besten Dank an die Entwickler für dieses hilfreiche Helferlein. Dafür!
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 02 März 2014, 13:02:46
Zitat von: rudolfkoenig am 02 März 2014, 12:40:08
Erstens einen kompletten Patch,

bitteschön :) Den Patch für die commandref-Doku bitte dem vorherigen Post entnehmen.



Index: 01_FHEMWEB.pm
===================================================================
--- 01_FHEMWEB.pm (revision 4997)
+++ 01_FHEMWEB.pm (working copy)
@@ -13,6 +13,8 @@
sub FW_iconName($);
sub FW_iconPath($);
sub FW_answerCall($);
+sub FW_codemirrorLink($);
+sub FW_codemirrorParams($);
sub FW_dev2image($;$);
sub FW_devState($$@);
sub FW_digestCgi($);
@@ -128,6 +130,8 @@
     defaultRoom
     endPlotNow:1,0
     endPlotToday:1,0
+    enhancedEditor:1,0
+    enhancedEditorTheme
     fwcompress:0,1
     hiddengroup
     hiddenroom
@@ -1571,9 +1575,21 @@
     FW_pO     FW_textfieldv("saveName", 30, "saveName", $fileName);
     FW_pO     "<br><br>";
     FW_pO     FW_hidden("cmd", "style save $fileName");
-    FW_pO     "<textarea name=\"data\" cols=\"$ncols\" rows=\"30\">" .
+    FW_pO     "<textarea id=\"data\" name=\"data\" cols=\"$ncols\" rows=\"30\">" .
                 "$data</textarea>";
     FW_pO "</form>";
+
+    if( AttrVal($FW_wname,'enhancedEditor',0) ) {
+      my $ext = ($fileName =~ m/\.(.*)$/)[0];
+      FW_codemirrorLink($ext);
+      FW_pO "<style type=\"text/css\">".
+           ".CodeMirror {height: auto;}".
+            ".CodeMirror-scroll {overflow-y: hidden; overflow-x: auto;}".
+            "</style>".
+ "<script>var editor = CodeMirror.fromTextArea(document.getElementById(\"data\"),".
+            FW_codemirrorParams($ext) . ");</script>";
+    }
+
     FW_pO "</div>";

   } elsif($a[1] eq "save") {
@@ -1981,6 +1997,10 @@
              "s.display = s.display=='none' ? 'block' : 'none';".
              "s=document.getElementById('disp').style;".
              "s.display = s.display=='none' ? 'block' : 'none';";
+    $pgm .= "s=document.getElementById('editarea');".
+             "s.editor ? s.editor: s.editor = CodeMirror.fromTextArea(s,". FW_codemirrorParams("pm") .");"
+         if AttrVal($FW_wname,'enhancedEditor',0);
+
   FW_pO "<td>";
   FW_pO "<a onClick=\"$pgm\">$n</a>";
   FW_pO "</td>";
@@ -1998,14 +2018,57 @@
   FW_pO       FW_hidden("detail", $name);
   my $cmd = "modify";
   my $ncols = $FW_ss ? 30 : 60;
-  FW_pO      "<textarea name=\"val.${cmd}$name\" ".
+  FW_pO      "<textarea id=\"editarea\" name=\"val.${cmd}$name\" ".
                 "cols=\"$ncols\" rows=\"10\">$val</textarea>";
   FW_pO     "<br>" . FW_submit("cmd.${cmd}$name", "$cmd $name");
   FW_pO   "</form></div>";
+  FW_codemirrorLink("pm") if( AttrVal($FW_wname,'enhancedEditor',0) );
   FW_pO  "</td>";
}

+my %codemirrorMapping = ( pm => "fhem",
+                          cfg => "fhem",
+                          css => "css",
+                          svg => "xml",
+);

+sub FW_codemirrorLink($)
+{
+  my ($ext) = @_;
+
+  my $lang = $codemirrorMapping{$ext};
+  my $theme = AttrVal($FW_wname,'enhancedEditorTheme','blackboard');
+
+  $lang = "perl" if( !$lang );
+
+  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/pgm2/jquery.min.js\"></script>";
+  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/lib/codemirror.css\">";
+  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/lib/codemirror.js\"></script>";
+  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/theme/$theme.css\">";
+  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/addon/edit/closebrackets.js\"></script>";
+  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/addon/edit/matchbrackets.js\"></script>";
+  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/addon/hint/show-hint.js\"></script>";
+  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/addon/hint/show-hint.css\">";
+  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/mode/$lang/$lang.js\"></script>" if( $lang );
+  return;
+}
+sub FW_codemirrorParams($)
+{
+  my ($ext) = @_;
+
+  my $theme = AttrVal($FW_wname,'enhancedEditorTheme','blackboard');
+
+  #my $lang = $codemirrorMapping{$ext};
+  #if( !$lang ) {
+  #  $lang = "";
+  #} else {
+  #  $lang .= ": true,";
+  #}
+  #return "{theme: '". $theme. "', $lang lineNumbers: true, matchBrackets: true, autoCloseBrackets: true}";
+
+  return "{theme: '". $theme. "', lineNumbers: true, matchBrackets: true, autoCloseBrackets: true, extraKeys: {'Ctrl-Space': 'autocomplete'} }";
+}
+
sub
FW_roomStatesForInform($)
{



Desweiteren sind noch folgende Dinge zu beachten:


Ich würde mich bereiterklären, die laufende Aktualisierung des codemirror-Verzeichnisses zu übernehmen.

Lizenzrechtlich sehe ich keine Probleme, codemirror zusammen mit fhem auszuliefern:

Zitat
Copyright (C) 2013 by Marijn Haverbeke <marijnh@gmail.com> and others

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 02 März 2014, 13:06:54
eine frage wäre noch ob man codemirror komplett eincheckt oder nur die paar files die auch eingebunden werden.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 02 März 2014, 13:09:40
Darüber kann man nachdenken.

Es ist für die Maintenance auf jeden Fall einfacher, das komplette Paket einzubinden.
Und es vermeidet potenzielle Fehlerquellen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 02 März 2014, 13:10:55
das stimmt.

wenn das fritzding sie viele files handeln kann:)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 02 März 2014, 13:13:18
ich bin grade am durchzählen ;)

edit:

Großzügig aufgeräumt, bleiben 82 Dateien und 642kByte Größe für das codemirror Verzeichnis übrig.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 02 März 2014, 16:28:02
Ich habe hier nochmal eine vollständige patch-Datei gebaut, die auf der aktuellen FHEMWEB (5080) aufbaut und sowohl codemirror als auch die aktualisierte commandref enthält.

Spricht etwas dagegen, die benötigten codemirror Dateien schonmal nach /fhem/www/codemirror einzuchecken?
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 03 März 2014, 15:37:25
Ich habe nochmal etwas an der Completion rumgeschraubt. Es werden jetzt spezielle Hilfen für folgende Fälle angeboten:

attr DEVICE ATTRIBUTE ???
Value("DEVICE")
ReadingsVal("DEVICE","READING",???)

Sprich es werden je nachdem wo der Cursor steht die Devices, Attribute oder Readings vorgeschlagen. Für welche Funktionen / Befehle wollen wir das noch anbieten ?

Außerdem wird bei den Devices auch ein eventuell vorhandener Alias mit angezeigt.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 03 März 2014, 15:41:33
ich bräuchte etwas ähnliches zum Editieren der Layout-Dateien, die vom Modul 02_RSS.pm verwendet werden...  8)
Titel: Antw:Javascript Editor einbinden
Beitrag von: UliM am 03 März 2014, 18:33:35
Zitat von: papa am 03 März 2014, 15:37:25
Für welche Funktionen / Befehle wollen wir das noch anbieten ?
M.E. für alle Funktionen laut http://fhem.de/commandref.html#perl
also auch
InternalVal(<devicename>,<property>,<defaultvalue>)
OldValue(<devicename>)
OldTimestamp(<devicename>)
ReadingsTimestamp("wz", "measured-temp", 0)
AttrVal("wz", "room", "none")


Freue mich schon sehr drauf :)
Wenn man's dann nutzen kann, kommen bestimmt noch viel mehr Ideen.

Gruß, Uli
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 03 März 2014, 19:04:06
Uli, nutzen kannst Du das jetzt schon.


Ich denke, die fhem.js wird künftig lebendigste Datei win, der Rest ist mehr oder weniger statisch.
Titel: Antw:Javascript Editor einbinden
Beitrag von: maxritti am 03 März 2014, 19:57:51
N'Abend,

jetzt habe ich das doch auch mal gemacht und den JS Editor eingebunden.

Erst mal wieder Respekt an das was Ihr hier so zusammenbaut.
Daumen hoch dafür.

Ich frage mich nur, warum das bei mir nicht so wirklich bunt ist wie bei Euch?
Den Fred hier habe ich nun mal von vorne bis hinten durchgelesen, aber irgendwie nicht die Stelle gefunden, wo man das aktivieren kann.

So schaut das bei mir aus:

Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 03 März 2014, 20:07:57
du hast das fhem.js file nicht oder nicht an der richtgen stelle installiert.

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: maxritti am 03 März 2014, 20:12:30
Ah jetzt ja. Da musste noch ein Verzeichnis fhem in das /opt/fhem/www/codemirror/mode
Wer lesen kann ist klar im Vorteil  8)

Danke Dir.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 03 März 2014, 22:32:02
Hier nochmal ein Update für die Auto-Completion. Folgendes wird jetzt unterstützt:

Befehle:
  "attr","define","delete","deleteattr","deletereading","displayattr","get","getstate",
  "list","modify","set","setreading","setstate","trigger"

Funktionen:
  "AttrVal","OldTimestamp","OldValue","ReadingsVal","ReadingsTimestamp","Value"

Variablen:
  "$defs","$hms","$hour","$isdst","$mday","$min","$month","$sec","$wday","$we","$yday","$year"
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 03 März 2014, 22:36:56
@betateilchen kannst Du bitte nochmal nen kompleten Patch machen. Ich höre jetzt auch erst mal auf, bis der Editor integriert ist.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 03 März 2014, 22:45:11
An dem Patch hat sich seit gestern 16:28 (siehe hier im Thread) nichts geändert.

Aber wenn Du eine komplette 01_FHEMWEB.pm meinst - bitteschön :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 03 März 2014, 22:46:19
Ich dachte Du hattest einen Patch inklusive Codemirror und fhem.js
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 03 März 2014, 22:55:10
Nein, hatte ich noch nicht. Ich würde den codemirror Kram ja gerne schonmal vorab einchecken, aber auf meine diesbezügliche Frage gabs noch keine Antwort von Rudi. Der müsste das codemirror Verzeichnis für die Verteilung per update manuell konfigurieren. Ich möchte dem nicht vorgreifen.

Aber ich habe hier ein zip angehängt. Da ist das gesamte benötigte codemirror Verzeichnis inklusive Deiner letzen Änderung drin, das muss nach /opt/fhem/www/ kopiert werden.

Installation in drei Schritten:

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 03 März 2014, 23:07:15
@papa kann ich Dir mal eine Layoutdatei für 02_RSS.pm schicken, vielleicht kann man da die Layout-Schlüsselwörter auch noch markieren. Das Schöne ist, die stehen immer nur am Anfang einer Zeile :)

Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 04 März 2014, 08:35:19
Zitat von: betateilchen am 03 März 2014, 23:07:15
@papa kann ich Dir mal eine Layoutdatei für 02_RSS.pm schicken, vielleicht kann man da die Layout-Schlüsselwörter auch noch markieren. Das Schöne ist, die stehen immer nur am Anfang einer Zeile :)

Na klar schick mal. Vielleicht sollte man dafür dann aber einen eigenen Mode machen. Ich wollte eigentlich auch später mal die Trennung von FHEM Befehelen und Perl Code in {} ordentlich unterstützen :-) Das würde hier ja auch benötigt. Wird aber mit Sicherheit noch dauern.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 04 März 2014, 10:30:52
kein Streß... ich schick Dir heute abend mal eine Layout-Datei mit ein paar Erklärungen dazu.
Die Schlüsselworte in einer solchen Datei sind überschaubar, der Rest ist {}

Titel: Antw:Javascript Editor einbinden
Beitrag von: frank am 04 März 2014, 14:36:07
danke für dieses grossartige feature!  :)

ZitatErstens einen kompletten Patch, und danach etwas Zeit.

jetzt muss man wohl nur noch ein wenig geduld aufbringen, so dass es updatefähig wird.  ;)

gruss frank
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 04 März 2014, 15:08:54
Ich denke, Rudi kommt nicht mehr drumrum und schraubt schon :)

@Rudi: wenn es diesbezüglich was zu testen/unterstützen gibt, lass es mich wissen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 04 März 2014, 21:39:53
Für alle diejenigen, die testen wollen, habe ich das codemirror Verzeichnis in SVN eingecheckt.
Über den normalen update Prozess sind die Dateien bis zur offiziellen Freigabe nicht erhältlich.
Im Verzeichnis befindet sich auch eine vollständig gepachte Testversion der 01_FHEMWEB.pm,
basierend auf der derzeit aktuellen SVN Version 5080 dieser Datei.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 05 März 2014, 19:39:50
Gibt es eine (vertretbare) Moeglichkeit:
- fuer Codemirror weniger Verzeichnisse (in Optimalfall nur eins) zu verwenden?
- eine "minimale" Version von codemirror.js & konsorten zu bekommen?
- nicht benoetigte Dateien zu entfernen?

In fhemupload.pl muss ich jedes Verzeichnis einzeln konfigurieren (plus DIR Zeilen fuer controls_fhem.txt), und ich moechte sowohl meine Bandbreite, als auch die der tausender Fhem-Updater nicht unnoetig strapazieren.  Auch aus diesem Grund bekommen seit ca einem halben Jahr neue SVN Benutzer unter anderem folgenden Hinweis von mir:
==============
- neue Verzeichnisse duerfen nur nach Ruecksprache mit mir angelegt werden, das
  gleiche gilt fuer das Einchecken von fremden Dateien wie Bibliotheken, usw.
==============

Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 05 März 2014, 19:45:49
ja. ich denke das geht. man kommt mit unter 10 files aus.

man könnte auch die directory  struktur über bord werfen. das macht es halt etwas schwieriger updates von codemirror einzuspielen. aber ich denke es hält sich  rahmen.

oder man packt gleich alles zusammen in ein einziges 'gepacktes' file. da wäre interessant zu wissen wie viel das wirklich bringt. dieser schritt würde es dann aber tatsächlich unhandlich machen z.b. das fhem syntax file alleine auszutauschen.

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 20:05:08
Die Verzeichnisstruktur unterhalb von codemirror ist aufgrund der Syntax bei der Verwendung von codemirror vorgegeben. Eine mode-Datei wie die fhem.js muss sich immer in einem gleichnamigen Verzeichnis unterhalb von mode befinden.

Nicht benötigte Dateien habe ich bereits so weit wie möglich und sinnvoll weitgehend entfernt, sodass momentan nur noch weniger als 60 Dateien übriggeblieben sind. Eventuell kann ich noch ein paar wenige Dateien in hints und mode rausnehmen.

Was meinst Du mit "minimale Version von codemirror.js" - diese Datei ist neben der zugehörigen css Datei der integrale Bestandteil, in dem der Editor steckt.

Aus Gründen der Wartbarkeit (updates von codemirror) werde ich keine Originaldateien von codemirror anfassen und ändern.

Das Einchecken gestern habe ich nicht gemacht, um Dich zu ärgern.
Ich wollte einfach das Versionschaos im Entwicklungsthread vorläufig beseitigen.

Der alternative Lösungsweg wäre: codemirror überhaupt nicht mit ausliefern (nur die  leere Verzeichnisstruktur, um die fhem.js unterzubringen) und die Installation der codemirror library dem User zu überlassen.

Dann müsste man in fhem nur das in ./www/codemirror ausliefern:

(http://up.picr.de/17559932rp.png)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 20:09:17
ich habe jetzt nochmal in der Originalstruktur aufgeräumt und bin zu folgendem Ergebnis gekommen:

(http://up.picr.de/17559982aa.png)

Zitatman könnte auch die directory  struktur über bord werfen. das macht es halt etwas schwieriger updates von codemirror einzuspielen.

Ich weiss nicht, ob sich der dann zu betreibende Aufwand wirklich lohnt.
Dann würde ich als Anwender lieber den Weg vorziehen, das codemirror selbst zu entpacken und in die Rumpfstruktur, in der fhem.js liegt, zu installieren.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 05 März 2014, 20:10:23
warum müssen die pfade erhalten bleiben? es wird doch nichts automatisch geladen sonder unter der angabe des vollen Pfades.

wie kommst du auf 60 dateien? wenn ich das richtig sehe brauchst du wieklich nur
die files die explizit geladen werden. und das sind unter 10.

mit zusammenpacken habe ich nicht gemeint selber etwas anzufassen sondern die pack option vom der codemirror Seite zu verwenden. damit bräuchte man dieses ja file und das fhem.js
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 20:15:01
Zitat von: justme1968 am 05 März 2014, 20:10:23mit zusammenpacken habe ich nicht gemeint selber etwas anzufassen sondern die pack option vom der codemirror Seite zu verwenden. damit bräuchte man dieses ja file und das fhem.js

Hab ich mir noch nicht angeschaut.

Die 60 Dateien waren gestern der erste grobe Schnitt vor dem Einchecken. Inzwischen sind es viel weniger - siehe oben.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 20:16:24
Zitat von: justme1968 am 05 März 2014, 20:10:23warum müssen die pfade erhalten bleiben?

Weil man sonst bei jedem Update von codemirror eine potenzielle Fehlerquelle schafft.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 05 März 2014, 20:17:21
Zitatmit zusammenpacken habe ich nicht gemeint selber etwas anzufassen sondern die pack option vom der codemirror Seite zu verwenden. damit bräuchte man dieses ja file und das fhem.js

Sowas meinte ich. Jquery kann man auch als "lesbar" und in der .min Version (ca 30% der anderen Datei) bekommen. Da sind dann keine Kommentare mehr drin und alles ist eine Zeile.

Interessantes Feature: Chrome unterstuetzt die zu .min.js gehoerende .map Datei: letzteres wird nur geladen, falls man die JS-Console oeffnet, und zeigt Fehler&Warnungen mit Zeilennumer so an, als ob man die normale (nicht .min) Version geladen haette.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 20:24:25
Zitat von: rudolfkoenig am 05 März 2014, 20:17:21Sowas meinte ich. Jquery kann man auch als "lesbar" und in der .min Version (ca 30% der anderen Datei) bekommen. Da sind dann keine Kommentare mehr drin und alles ist eine Zeile.

Ok, aus diesem technischen Teil bin ich weitgehend raus. Alles, was nach .*java.* sussieht, ist nicht wirklich meine Welt 8)
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 05 März 2014, 20:25:52
das bischen zusammenklicken schafst du auch als nicht windows nutzer :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 05 März 2014, 20:26:30
Im doc Verzeichnis gibt es ein compress.html - damit kann man sich benötigte Teile selbst zusammenstellen. Hab ich aber noch nicht probiert.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Hauswart am 05 März 2014, 20:26:40
Komprimiert + Unkomprimiert sollte es dann sein :-) jeweils bei .css und .js
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 20:33:21
Zitat von: justme1968 am 05 März 2014, 20:25:52
das bischen zusammenklicken schafst du auch als nicht windows nutzer :)

Wer testet den Anhang?

Aber irgendwie waren da keine CSS dabei - ich hab keine Ahnung, ob die jetzt schon irgendwie mit drinstecken.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 05 März 2014, 21:10:42
Das gibt bei mir nen Fehler - siehe Screenshot

Edit: War mein (Tip)Fehler.
Scheint zu funktionieren. Die css-Files müssen aber bleiben.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 05 März 2014, 21:37:59
Folgende minimle Struktur scheint zu funktionieren:


codemirror/addon/hint/show-hint.css
codemirror/lib/codemirror-compressed.js
codemirror/lib/codemirror.css
codemirror/mode/fhem/fhem.js
codemirror/mode/css/css.js
codemirror/mode/xml/xml.js
codemirror/theme/*.css


Das LICENSE file muss natürlich auch mit rein.

01_FHEMWEB.pm ist wie folgt geändert:


  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/pgm2/jquery.min.js\"></script>";
  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/lib/codemirror.css\">";
  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/lib/codemirror-compressed.js\"></script>";
  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/theme/$theme.css\">";
  FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/codemirror/addon/hint/show-hint.css\">";
  FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/codemirror/mode/$lang/$lang.js\"></script>" if( $lang );

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 21:41:32
Das sind aber auch nicht sehr viel weniger Verzeichnisse, als wenn ich die Originalstruktur verwende.

(http://up.picr.de/17561089uj.png)
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 05 März 2014, 21:43:59
Zitat von: betateilchen am 05 März 2014, 21:41:32
Das sind aber auch nicht sehr viel weniger Verzeichnisse, als wenn ich die Originalstruktur verwende.

Edit: drei, um genau zu sein.

Naja - das show-hint.css könnte noch nach 'lib' wandern.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 05 März 2014, 21:53:17
Wir können auch alles in ein Verzeichnis packen. Allerdings muss dann der 'mode' als Parameter gesetzt werden. Die Pfade im 01_FHEMWEB.pm sind entsprechend anzupassen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 21:57:34
Ich bastle mal was.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 05 März 2014, 21:58:14
Das ist aber nicht wirklich schön. Ich denke mindestens die Themes und die Mode-Files sollten in eigene Verzeichnisse.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 22:05:34
ne - wenn schon zusammenfassen, dann ALLES
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 22:09:16
funktioniert :)

(http://up.picr.de/17561271sa.png)

Das liesse sich bei cm-Updates auch einigermaßen vernünftig scripten.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 05 März 2014, 22:10:11
sag ich doch :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 22:11:06
Ein einziges Verzeichnis :) Jetzt muss es nur noch Rudi gefallen :P
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 22:21:56
Achtung - die habe die komplette codemirror-Struktur (bis auf das codemirror Verzeichnis selbst) aus SVN wieder entfernt.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 05 März 2014, 22:30:35
Zitat von: papa am 05 März 2014, 21:53:17Allerdings muss dann der 'mode' als Parameter gesetzt werden.

Wie meinst Du das? "pm" ist doch als Standard festgelegt und sorgt dafür, dass fhem.js verwendet wird.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 06 März 2014, 08:43:49
Ich muss den Mode bei den Parametern in FW_codemirrorParams mit aufnehmen, damit es auch in der Config richtig funktioniert.


sub FW_codemirrorParams($)
{
  my ($ext) = @_;

  my $lang = $codemirrorMapping{$ext};
  my $theme = AttrVal($FW_wname,'enhancedEditorTheme','blackboard');
  $lang = "perl" if( !$lang );

  return "{mode: '".$lang."', theme: '". $theme. "', lineNumbers: true, matchBrackets: true, autoCloseBrackets: true, extraKeys: {'Ctrl-Space': 'autocomplete'} }";
}
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 06 März 2014, 09:50:14
Nagut, das läßt sich ja problemlos einbauen. Ich hatte gestern abend nur mit der myUtils.pm und den DEF getestet, da es bei mir keine Config-Dateien mehr gibt.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 06 März 2014, 10:49:58
der mode muss dann explizit gesetzt werden wenn mehr als einer geladen wird. also eigentlich nur dann wenn man alles in ein .js file packt.

@betateilchen: warte mal ab bis der erste die db mit syntax highlighting editieren will :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 06 März 2014, 10:54:19
Zitat von: justme1968 am 06 März 2014, 10:49:58
@betateilchen: warte mal ab bis der erste die db mit syntax highlighting editieren will :)

Der Knüppel liegt schon bereit...
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 06 März 2014, 19:25:20
Zitat von: justme1968 am 06 März 2014, 10:49:58


@betateilchen: warte mal ab bis der erste die db mit syntax highlighting editieren will :)

upps, genau das wollte ich gerade Fragen :-)

Gesendet von Unterwegs mit Tapatalk 4

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 06 März 2014, 21:16:17
Zitat von: AHA1805 am 06 März 2014, 19:25:20genau das wollte ich gerade Fragen

frag nur... (http://up.picr.de/17569247wb.gif)
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 06 März 2014, 21:35:33
 :-X
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 06 März 2014, 23:01:15
Hallo zusammen,

ich muss einfach nochmals sagen,
diese Erweiterung mit dem Editor ist sooooowas von geil  8),
und macht das editieren von Modulen zu einer richtigen Freude  :).

Bisher habe ich immer mit einem externen Editor mit anschließendem reload gearbeitet,
was meines Erachten schon ein paar Leute abgeschreckt hat,
und mir damit auch schon ein paar Fehler eingefangen habe.
... und im internen Editor war ein Bearbeiten nicht wirklich schön  ???.

Wäre es nicht sinnvoll diesen Editor-Modus default mässig zu aktivieren,
da dieses Future ansonsten vielleicht gar nicht alle User mitbekommen.

SG
Hannes
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 07 März 2014, 08:42:48
Zitat von: AHA1805 am 06 März 2014, 23:01:15
Wäre es nicht sinnvoll diesen Editor-Modus default mässig zu aktivieren,
da dieses Future ansonsten vielleicht gar nicht alle User mitbekommen.

Ja sicher. Aber erstmal muss es in das normale Update and sollte man sicherlich erst mal noch sehen, ob es überall ordentlich funktioniert. Wenn es dann keine Probleme gibt, ist es als Standardeditor sicherlich sinnvoll. Allerdings auch nur für das "normale" FEHMWEB. Gerade im "Smallscreen" Modus, welcher sicherlich mehr mobil genutzt wird, ist der zusätzliche Ladeaufwand für den Editor schon erheblich. Wahrscheinlich wird eh niemand wirklich ernsthaft auf nem Handy seine Konfiguration bearbeiten.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Rince am 07 März 2014, 08:59:25
ZitatWahrscheinlich wird eh niemand wirklich ernsthaft auf nem Handy seine Konfiguration bearbeiten.


Das ist schon auf nem 10"  Tab eine Krankheit, also das Bearbeiten.


Ich glaube Programmieren gehört zu den Dingen, die wirklich nach einem echten PC verlangen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 10 März 2014, 15:08:23
Kann jemand sagen, ob und vielleicht auch wann der Editor per Update verfügbar sein wird ?

Ich habe gerade ein Update gemacht, um mir die jsonlist2 anzusehen ..... und nu ist der Editor wieder weg :-(
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 10 März 2014, 15:20:29
am 06.03. gab es ein Update der 01_FHEMWEB.pm :(

Wenn Du fhem per SVN auscheckst, hast Du in www ein Unterverzeichnis codemirror, da ist auch eine funktionierende FHEMWEB (basierend auf der vorherigen Version) inkl. Editor drin.

Du kannst auch die 01_FHEMWEB.pm einfach in die Liste "exclude_from_update" eintragen, dann wird sie nicht mehr überschrieben, solange sie da drinsteht.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 15 März 2014, 20:23:49
Hallo,

ich wollte nochmal nachfragen, ob es der Editor ins Update schafft ?
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 18 März 2014, 09:22:32
sicher, aber nicht drängeln  8)
Titel: Antw:Javascript Editor einbinden
Beitrag von: HolyMoly am 25 März 2014, 10:59:52
Dieser Editor ist wirklich eine Bereicherung fürs ganze fhem :)
zu schade dass er noch nicht per update ausgeliefert wird...
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 März 2014, 11:21:52
Nur Geduld. Auf dem Usertreffen am vergangenen Samstag wurde die Einbindung des Editors noch vor dem anstehenden "großen" FHEMWEB Umbau angedeutet.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 25 März 2014, 21:19:37
Ich habe mal die Vervollständigung auf jsonlist2 umgestellt. Leider kommt man jetzt nicht mehr an alle definierten Modultypen ran. Ich wollte gern noch eine Vorschlagsliste für den Type bei "define <Name> <Type>" implementieren.

Vielleicht kann man das ganze dann später auch noch für die Befehlseingabezeile nutzen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 März 2014, 21:30:47
das mit der Autovervollständigung habe ich bis heute nicht verstanden, aber ich habe es auch noch nicht vermisst  :o
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 25 März 2014, 21:35:58
Schreib mal "Read" und drück dann Ctrl+Space. Dann sollte eine Liste mit "ReadingsVal, ReadingsTimestamp" kommen. Wenn Du "ReadingsVal" auswählst und dann nach dem ersten Hochkomma wieder Ctrl+Space drückst, werden alle Devices aufgelistet. Innerhalb der nächsten Hochkommas, alle Readings des Devices.

Na - vielleicht vermisst Du es ja doch :-)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 März 2014, 21:42:02
Das mag jeder nutzen, der es mag.

Ich kann Dir aus meiner Tätigkeit als Programmierer sagen: Wenn ich meinen Schreibfluß unterbrechen muss, um eine fingerverknotende Tastenkombination zu drücken um danach weiterschreiben zu können, bin ich definitiv schneller, wenn ich stattdessen einfach weiterschreibe ;)
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 25 März 2014, 21:43:43
Wenn man alles im Kopf hat schon :-)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 März 2014, 21:45:21
dann sind wir uns ja einig  8)
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 25 März 2014, 21:46:57
Aber gerade für Neueinsteiger, die noch nicht jedes Attribute oder Reading kennen, ist das sehr hilfreich.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Inputsammler am 25 März 2014, 23:02:01
Ja auch Anfänger tun sich schwer.
Aber mit ein bischen Hilfe von AHA1805 läuft der editor auch auf dem FHEM.

Danke dir betateilchen für den netten Editor.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 März 2014, 23:05:31
Schön, dass er Dir gefällt. Aber:

Der enhancedEditor war weder meine Idee noch meine alleinige Umsetzung.
Titel: Antw:Javascript Editor einbinden
Beitrag von: dafex am 28 März 2014, 00:05:54
Zitat von: papa am 25 März 2014, 21:46:57
Aber gerade für Neueinsteiger, die noch nicht jedes Attribute oder Reading kennen, ist das sehr hilfreich.
Zitat von: papa am 25 März 2014, 21:35:58
Schreib mal "Read" und drück dann Ctrl+Space. Dann sollte eine Liste mit "ReadingsVal, ReadingsTimestamp" kommen. Wenn Du "ReadingsVal" auswählst und dann nach dem ersten Hochkomma wieder Ctrl+Space drückst, werden alle Devices aufgelistet. Innerhalb der nächsten Hochkommas, alle Readings des Devices.
Dafür! Da ich Anwender mit zwei Fingersystem und kein Programmierer bin. Da stört es auch nicht dass ich meine Finger verknote.

Danke für das nützliche Helferlein.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Navigator am 01 April 2014, 11:31:13
...selbst ein erfahrener Zehn-Finger Schreiber verknotet sich alles bei den ganzen Sonderzeichen in Perl. Möchte echt mal den Schreibfluss eines Programmieres sehen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 07 April 2014, 18:21:21
Habe meine Loesung eingecheckt.

Es funktioniert ueber das neue JavaScripts Parameter, Zitat aus commandref:
ZitatLeerzeichen getrennte Liste von JavaScript Dateien zum Laden.  Die Dateinamen sind relativ zum www Verzeichnis anzugeben. Für jede Datei wird ein zusätzliches Attribut angelegt, damit der Benutzer dem Skript Parameter weiterreichen kann. Bei diesem Attributnamen werden Verzeichnisname bzw. fhem_ Präfix entfernt und Param als Suffix hinzugefügt. Beispiel:

attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB codemirrorParam { "theme":"blackboard", "lineNumbers":true } 

In codemirror/fhem_codemirror.js habe ich die bisher in FHEMWEB implementierte Logik nachgebaut, weiterhin habe ich in fhemweb.js Hilfsfunktionen zum Nachladen von css (loadLink) bzw. JavaScripte (loadScript) implementiert. Die Skript-Spezifischen Parameter koennen ueber die Funktion scriptAttribute abgefragt werden. Achtung: die Attributwerte muessen der JSON spec entsprechen, der Programmierer bekommt ein Objekt (in Perl-Lingo: hash) zurueckgeliefert.

Die oben beispielhaft spezifizierten codemirrorParam Werte sind eigentlich nicht notwendig, ich habe die Voreinstellungen aus dem Perl-Code uebernommen. fhem_codemirror.js laedt die zusaetzlichen .js und .css Dateien nur bei Bedarf, d.h. erst bei Click auf den "DEF" Link.

Es scheint bei mir zu funktionieren, ich habe es unter FireFox, Chrome und IE8 (!) kurz getestet.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 07 April 2014, 20:45:33
Danke. Funktioniert auch hier im ersten Test.

Ist das codemirror-Verzeichnis jetzt generell im update enthalten?
Titel: Antw:Javascript Editor einbinden
Beitrag von: der-Lolo am 08 April 2014, 10:52:08
Ok - toll das der Editor nun per update verteilt wird - leider funktioniert das ganze so noch nicht.
Ich habe die beiden Attribute JavaScripts und codemirrorParam gesetzt nach einem save neu gestartet und in einem Notify auf DEF geklickt.
Auch unter Edit Files sehe ich keine Änderung..

list WEB sagt:
ZitatInternals:
   CONNECTS   20
   DEF        8083 global
   FD         6
   NAME       WEB
   NR         5
   NTFY_ORDER 50-WEB
   PORT       8083
   STATE      Initialized
   TYPE       FHEMWEB
Attributes:
   JavaScripts codemirror/fhem_codemirror.js
   codemirrorParam { "theme":"blackboard", "lineNumbers":true }
   hiddenroom DashboardRoom
   iconPath   fhemSVG:openautomation:default
   longpoll   1
   reverseLogs 1
   stylesheetPrefix dark
   verbose    1

Was mache ich mal wieder falsch?
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 08 April 2014, 11:01:33
Grundsätzlich funktioniert das gut. Was mir gerade auffällt:

Drücke ich Strg +  Space um die Devices auflisten zu lassen, wird jedes definierte Device in der Liste 3 mal aufgeführt. Hat jemand eine Idee, woran das liegen könnte?
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 11:12:13
Zitat von: rudolfkoenig am 07 April 2014, 18:21:21Die oben beispielhaft spezifizierten codemirrorParam Werte sind eigentlich nicht notwendig,

Wenn man sie aber nicht angibt, gibts ne fette Fehlermeldung aus fhem_codemirror.js wegen fehlender/falscher Parameter.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 11:12:56
Zitat von: der-Lolo am 08 April 2014, 10:52:08
Was mache ich mal wieder falsch?

was steht bei Dir alles im codemirror-Verzeichnis?
Titel: Antw:Javascript Editor einbinden
Beitrag von: der-Lolo am 08 April 2014, 11:29:24
Im Codemirror Verzeichnis wurden durch das update einige Dateien abgelegt...

Zitatroot@BeagleBoneBlack:/opt/fhem/www/codemirror# ls -l
insgesamt 556
-rw-r--r-- 1 root root 109949 Apr  8 10:44 01_FHEMWEB.pm
-rw-r--r-- 1 root root   1415 Apr  8 10:44 blackboard.css
-rw-r--r-- 1 root root   3497 Apr  8 10:44 closebrackets.js
-rw-r--r-- 1 root root   6199 Apr  8 10:44 codemirror.css
-rw-r--r-- 1 root root 239846 Apr  8 10:44 codemirror.js
-rw-r--r-- 1 root root  30365 Apr  8 10:44 css.js
-rw-r--r-- 1 root root   2101 Apr  8 10:44 fhem_codemirror.js
-rw-r--r-- 1 root root  61953 Apr  8 10:44 fhem.js
-rw-r--r-- 1 root root   1094 Apr  8 10:44 LICENSE
-rw-r--r-- 1 root root   3918 Apr  8 10:44 matchbrackets.js
-rw-r--r-- 1 root root  56029 Apr  8 10:44 perl.js
-rw-r--r-- 1 root root    660 Apr  8 10:44 show-hint.css
-rw-r--r-- 1 root root  12398 Apr  8 10:44 show-hint.js
-rw-r--r-- 1 root root  10848 Apr  8 10:44 xml.js

vielleicht ein rechte problem?
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 11:34:33
tja, wenn nur root auf die Dateien zugreifen darf, könnte es schwierig werden...
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 08 April 2014, 11:37:29
also wenn ich richtig schaue darf jeder die files lesen ...
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 11:38:53
theoretisch...
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 08 April 2014, 11:41:12
laut dem ls oben auch praktisch oder ?
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 11:51:31
ja, theoretisch auch praktisch (bei mir funktioniert es auch mit obiger Konstellation problemlos)

Aber was manche Leute auf ihren Systemen manchmal an Rechten verbiegen ist unbeschreiblich. Deshalb würde ich da niemals drauf wetten.
Titel: Antw:Javascript Editor einbinden
Beitrag von: maxritti am 08 April 2014, 11:51:59
Ich wollte den JavaScript Editor auch mal eben integrieren.
Aber bei mir sieht es aus wie bei der-Lolo .

Wobei ich erst mal mein Entwicklungs FHEM aktualisiert habe und da klappt es einwandfrei.

Dann mein produktives FHEM genommen, update, die Attribute gesetzt und nichts passiert im Editor.
Allerdings war in meinem produktiven FHEM auch schon mal eine vorherige Version des Editors.
Also mal /opt/fhem/www/codemirror gelöscht, von meinem Entwicklungs FHEM rüberkopiert, Berechtigungen gleich gesetzt und nichts.
Wobei die Berechtigungen auf dem codemirror auch etwas anders aussehen als bei der-Lolo.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 12:02:29
ich hab hier kein repräsentatives System, auf dem ich das update testen könnte. Und per SVN funktioniert alles.


-rw-r--r-- 1 udo udo 1,4K Mär  6 11:07 blackboard.css
-rw-r--r-- 1 udo udo 3,5K Mär  6 11:07 closebrackets.js
-rw-r--r-- 1 udo udo 6,1K Mär  6 11:07 codemirror.css
-rw-r--r-- 1 udo udo 235K Mär  6 11:07 codemirror.js
-rw-r--r-- 1 udo udo  30K Mär  6 11:07 css.js
-rw-r--r-- 1 udo udo 2,1K Apr  8 11:07 fhem_codemirror.js
-rw-r--r-- 1 udo udo  61K Mär  6 11:07 fhem.js
-rw-r--r-- 1 udo udo 1,1K Mär  6 11:07 LICENSE
-rw-r--r-- 1 udo udo 3,9K Mär  6 11:07 matchbrackets.js
-rw-r--r-- 1 udo udo  55K Mär  6 11:07 perl.js
-rw-r--r-- 1 udo udo  660 Mär  6 11:07 show-hint.css
-rw-r--r-- 1 udo udo  13K Mär  6 11:07 show-hint.js
-rw-r--r-- 1 udo udo  11K Mär  6 11:07 xml.js

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 12:11:34
Ich habe grade die letzte Version der fhem.js von papa eingecheckt, die gibt es dann morgen per update.
Ausserdem ist die alte 01_FHEMWEB.pm im codemirror-Verzeichnis obsolet.
Titel: Antw:Javascript Editor einbinden
Beitrag von: der-Lolo am 08 April 2014, 12:16:45
die Dateien wurden ja durch das update geholt, rechtevergabe wurde also automatisch so vorgenommen... fhem läuft als root, glaube ich.
top zeigt jedenfalls keine anderen Benutzer.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 12:20:35
ich habe das inzwischen auf einem Debian Linux und auf einer fhem-Installation auf Win7 erfolgreich getestet.

Allerdings beides Systeme, die per SVN mit updates versorgt werden (da der reguläre Update-Prozess ja immer noch nicht proxy-fähig ist...)
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 08 April 2014, 12:22:45
Das reguläre Update hat auf meinem Produktivsystem heute morgen gut geklappt (Debian). Der Editor läuft, ohne Hand an die Dateirechte zu legen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: der-Lolo am 08 April 2014, 12:26:19
in meiner zur zeit im Aufbau befindlichen Installation auf dem CubieTruck läuft es auch auf anhieb...
Hm - was könnte das schon wieder sein..? Falls jemand ne Idee hat - immer her damit ;-)
Titel: Antw:Javascript Editor einbinden
Beitrag von: maxritti am 08 April 2014, 12:31:21
Also inzwischen bin ich fast soweit, meine produktive Umgebung mal von Grundauf neu zu bauen.

Wie gesagt. Meine produktive Umgebung habe ich heute morgen mittels update aktualisiert.
Der Editor will nicht.

Also habe ich gerade eben mal das "codemirror" Verzeichnis gelöscht. Und ein "update force" durchgeführt.
Das Verzeichnis ist dan neu von fhem erstellt worde. Sollte also somit von den Rechten her passen oder?

Merkwürdigerweise sagt mir das dann am Ende, dass eine neue fhem.pl integriert wurde und ein Restart notwendig sei.
Aber hätte das dann nicht auch bei einem normalen Update passieren müssen?


Ist ja quatsch. Der zieht sich wohl alles neu und sagt dann sicherheitshalber mach nen Restart.
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 08 April 2014, 12:32:20
Ich hab auch gerade ein Update gemacht. Leider ist der editor nun aber verschwunden ;)

Error messages while initializing FHEM:
configfile: WEB: unknown attribute enhancedEditor. Type 'attr WEB ?' for a detailed list.
WEB: unknown attribute enhancedEditorTheme. Type 'attr WEB ?' for a detailed list.


Muss aber erst zuhause schauen ob alle Dateien vorhanden sind.

Grüße

Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 08 April 2014, 13:05:56
ZitatWenn man sie aber nicht angibt, gibts ne fette Fehlermeldung aus fhem_codemirror.js wegen fehlender/falscher Parameter.
Stimmt, aber nicht auf FireFox. Habe fhemweb.js geaendert, jetzt beschwert sich Chrome auch nicht.

ZitatWEB: unknown attribute enhancedEditor
Gut, d.h. 01_FHEMWEB.pm ist vermutlich auf dem aktuellen Stand.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 13:16:16
Zitat von: fhainz am 08 April 2014, 12:32:20
Ich hab auch gerade ein Update gemacht. Leider ist der editor nun aber verschwunden ;)
...
Muss aber erst zuhause schauen ob alle Dateien vorhanden sind.

Die beiden angemeckerten Attribute gibt es nun nicht mehr. Stattdessen musst Du die von Rudi genannten Attribute setzen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: maxritti am 08 April 2014, 16:54:46
Ich habe jetzt mal ein wenig mit dem Firefox und Firebug versucht den Unterschied rauszufinden, warum der Editor in der Entwicklung geht und im produktiven nicht.

Den einzigen Unterschied, der so auffällig wird ist, wenn ich Firebug anschmeisse und unter "Netzwerk" schaue in der Entwicklungsumgebung wo der Editor funktioniert, eine jquery.min.js geladen wird.
In der produktiven Umgebung taucht das nicht auf. Auch kein Fehler o.ä. im Firebug.

Hat jemand einen Tip, von wo die Datei geladen wird bzw warum die da gar nicht auftaucht?

Die Rechte auf den beiden Umgebungen bin ich mal in Ruhe durchgegangen und konnte mal so direkt keinen Unterschied feststellen.
So wie es ausschaut, hat der User fhem auf alle Dateien und Verzeichnisse mind. Leserechte.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 18:54:22
Die jquery.min.js wird aus dem Verzeichnis www/pgm2 geladen und sollte dort vorhanden sein.
Titel: Antw:Javascript Editor einbinden
Beitrag von: svenson08 am 08 April 2014, 18:58:04
Ich glaub es gibt ein Problem in Verbindung mit dem Dashboard, das ebenfalls die jquery.min.js verwendet. Ich schau mir das gerade etwas genauer an.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 19:07:44
ich glaube eher, das Problem kommt daher, dass jquery.min.js in der Grundauslieferung von fhem nicht enthalten ist.
Titel: Antw:Javascript Editor einbinden
Beitrag von: svenson08 am 08 April 2014, 19:09:11
Seit dem Dashboard ist jquery.min.js und jquery-ui.min.js enthalten
Titel: Antw:Javascript Editor einbinden
Beitrag von: maxritti am 08 April 2014, 19:16:13
An das Dashboard hatte ich auch schon gedacht.
Denn das habe ich produktiv konfiguriert in der Entwicklung nicht.

Das Verzeichnis /opt/fhem/www/pgm2 ist bei beiden Instanzen gleich.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 19:23:20
ich habe das krampfige Dashboard überhaupt nirgends konfiguriert, vielleicht funktioniert es deswegen?
Titel: Antw:Javascript Editor einbinden
Beitrag von: svenson08 am 08 April 2014, 19:25:13
genau deswegen hast du das Problem nicht. Für alle Dashboardnutzer kann ich aber sagen das ich gerade dran bin ein Dashboard Fix fertig zu machen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 April 2014, 19:27:18
Das Dashboard hat mich zwei schlaflose Nächte gekostet, danach hab ich es aufgegeben und eingestampft  8)
(aber das ist ein ganz anderes Thema)
Titel: Antw:Javascript Editor einbinden
Beitrag von: svenson08 am 08 April 2014, 19:28:30
ZitatDas Dashboard hat mich zwei schlaflose Nächte gekostet, danach hab ich es aufgegeben und eingestampft
Hätte mich zwar mal interessiert was das Problem gewesen ist, aber das gehört hier nicht hin.
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 08 April 2014, 19:30:03
Ich hab jetzt nochmals genau gelesen ::)  und nun die beiden attribute gesetzt. Leider klappts, nach einem codemirror Verzeichnis löschen und nach update force, immer noch nicht.
Das Dashboard hab ich auch definiert aber testweise mal aus der cfg rausgenommen. Hat sich aber nicht ausgewirkt.

Jemand eine Idee?

Grüße

Edit:
So viele Beiträge während ich meinen tippe... Ich warte auch auf ein update vielleicht hilfst.
Titel: Antw:Javascript Editor einbinden
Beitrag von: maxritti am 08 April 2014, 19:30:24
Zitat von: svenson08 am 08 April 2014, 19:25:13
genau deswegen hast du das Problem nicht. Für alle Dashboardnutzer kann ich aber sagen das ich gerade dran bin ein Dashboard Fix fertig zu machen.
Prima. Dann scheint die Ursache ja gefunden zu sein.
Ich warte dann mal ab. Geduld ist zwar nicht meine Stärke, aber was soll es  ;)
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 17 April 2014, 08:22:14
Zitat von: marvin78 am 08 April 2014, 11:01:33
Grundsätzlich funktioniert das gut. Was mir gerade auffällt:

Drücke ich Strg +  Space um die Devices auflisten zu lassen, wird jedes definierte Device in der Liste 3 mal aufgeführt. Hat jemand eine Idee, woran das liegen könnte?

Besteht das Problem noch ?
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 17 April 2014, 08:30:33
Sorry. Nein. Der Grund lag wohl in den "veralteten" JS Dateien die beim ersten mal über "update" mitgeliefert wurden. Schon als ich sie durch die aus dem dem SVN ersetzt hatte, war alles korrekt. Danke.
Titel: Antw:Javascript Editor einbinden
Beitrag von: UliM am 17 April 2014, 20:17:14
Zitat von: rudolfkoenig am 07 April 2014, 18:21:21
Habe meine Loesung eingecheckt.

Es funktioniert ueber das neue JavaScripts Parameter, Zitat aus commandref:
In codemirror/fhem_codemirror.js habe ich die bisher in FHEMWEB implementierte Logik nachgebaut, weiterhin habe ich in fhemweb.js Hilfsfunktionen zum Nachladen von css (loadLink) bzw. JavaScripte (loadScript) implementiert. Die Skript-Spezifischen Parameter koennen ueber die Funktion scriptAttribute abgefragt werden. Achtung: die Attributwerte muessen der JSON spec entsprechen, der Programmierer bekommt ein Objekt (in Perl-Lingo: hash) zurueckgeliefert.

Die oben beispielhaft spezifizierten codemirrorParam Werte sind eigentlich nicht notwendig, ich habe die Voreinstellungen aus dem Perl-Code uebernommen. fhem_codemirror.js laedt die zusaetzlichen .js und .css Dateien nur bei Bedarf, d.h. erst bei Click auf den "DEF" Link.

Es scheint bei mir zu funktionieren, ich habe es unter FireFox, Chrome und IE8 (!) kurz getestet.
Hi,
hab mich gewundert warum nach update der schike Editor nicht zu sehen war - nach Setzen der beiden Attribute funktioniert's prima.Vielen Dank an alle Mitwirkenden!
Einen Effekt von Strg+<blank> konnte ich nich nirgends sehen, vll find ich das ja noch.

Wenn die Interferenzen mit Dashboard gelöst sind, wäre eine entspr. Ankündigung im Forum gut - weiss nicht welcher der beteiligten Autoren das reinsetzen würde.

Gruß + nochmal vielen Dank,
Uli
Titel: Antw:Javascript Editor einbinden
Beitrag von: svenson08 am 18 April 2014, 08:03:04
ZitatWenn die Interferenzen mit Dashboard gelöst sind, wäre eine entspr. Ankündigung im Forum gut - weiss nicht welcher der beteiligten Autoren das reinsetzen würde.

Rudi hat einen Fix eingecheckt. Damit sollte der Codemirror auch mit dem Dashboard funktionieren.
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 20 April 2014, 09:51:57
Hallo zusammen

ich hatte bis vor dem Update den Editor am laufen und nun läßt er sich einfach nicht mehr dazu überreden etwas farbig anzuzeigen.

define WEB FHEMWEB 1883 global
attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB codemirrorParam { "theme":"blackboard", "lineNumbers":true }
attr WEB hiddenroom DashboardRoom
attr WEB longpoll 1
attr WEB stylesheetPrefix dark


root@bbb-dev /opt/fhem/www/codemirror # ls
insgesamt 564K
drwxrwxrwx 2 fhem dialout 4,0K Apr 19 18:01 .
drwxr-xr-x 9 fhem dialout 4,0K Mär  5 22:01 ..
-rwxrwxrwx 1 fhem dialout 108K Mär  2 16:24 01_FHEMWEB.org
-rw-r--r-- 1 fhem dialout 1,4K Apr 19 18:01 blackboard.css
-rw-r--r-- 1 fhem dialout 3,5K Apr 19 18:01 closebrackets.js
-rw-r--r-- 1 fhem dialout 6,1K Apr 19 18:01 codemirror.css
-rw-r--r-- 1 fhem dialout 235K Apr 19 18:01 codemirror.js
-rw-r--r-- 1 fhem dialout  30K Apr 19 18:01 css.js
-rw-r--r-- 1 fhem dialout 2,1K Apr 19 18:01 fhem_codemirror.js
-rw-r--r-- 1 fhem dialout  61K Apr 19 18:01 fhem.js
-rw-r--r-- 1 fhem dialout 1,1K Apr 19 18:01 LICENSE
-rw-r--r-- 1 fhem dialout 3,9K Apr 19 18:01 matchbrackets.js
-rw-r--r-- 1 fhem dialout  55K Apr 19 18:01 perl.js
-rw-r--r-- 1 fhem dialout  660 Apr 19 18:01 show-hint.css
-rw-r--r-- 1 fhem dialout  13K Apr 19 18:01 show-hint.js
-rw-r--r-- 1 fhem dialout  11K Apr 19 18:01 xml.js



Versionen
fhem> version
# $Id: fhem.pl 5532 2014-04-15 16:32:25Z rudolfkoenig $
# $Id: 51_BBB_BMP180.pm 4929 2014-02-15 03:26:20Z betateilchen $
# $Id: 38_CO20.pm 5186 2014-03-10 11:20:54Z justme1968 $
# $Id: 00_CUL.pm 5487 2014-04-08 11:29:41Z rudolfkoenig $
# $Id: 09_CUL_FHTTK.pm 5207 2014-03-12 19:05:33Z matscher $
# $Id: 10_CUL_HM.pm 5565 2014-04-19 12:20:55Z martinp876 $
# $Id: 14_CUL_WS.pm 5379 2014-03-30 16:34:01Z rudolfkoenig $
# $Id: 57_Calendar.pm 5453 2014-04-06 06:55:44Z borisneubert $
# $Id: 00_FBAHA.pm 2777 2013-02-20 08:02:01Z rudolfkoenig $
# $Id: 10_FBDECT.pm 2779 2013-02-21 08:52:27Z rudolfkoenig $
# $Id: 93_FHEM2FHEM.pm 5239 2014-03-16 16:37:15Z rudolfkoenig $
# $Id: 01_FHEMWEB.pm 5475 2014-04-07 16:07:58Z rudolfkoenig $
# $Id: 11_FHT.pm 5070 2014-02-28 07:48:55Z rudolfkoenig $
# $Id: 95_FLOORPLAN.pm 5051 2014-02-26 12:36:45Z betateilchen $
# $Id: 10_FS20.pm 5326 2014-03-26 07:15:25Z rudolfkoenig $
# $Id: 92_FileLog.pm 5452 2014-04-06 06:24:47Z rudolfkoenig $
# $Id: 00_HMLAN.pm 5449 2014-04-05 14:36:30Z martinp876 $
# $Id: 98_HMinfo.pm 5561 2014-04-18 18:32:01Z martinp876 $
# $Id: 21_OWCOUNT.pm 5507 2014-04-11 09:37:45Z ntruchsess $
# $Id: 21_OWMULTI.pm 5438 2014-04-04 20:29:54Z ntruchsess $
# $Id: 21_OWTHERM.pm 5438 2014-04-04 20:29:54Z ntruchsess $
# $Id: 00_OWX.pm 5522 2014-04-14 10:10:17Z ntruchsess $
# $Id: 73_PRESENCE.pm 5434 2014-04-04 15:43:23Z markusbloch $
# $Id: 99_SUNRISE_EL.pm 4537 2014-01-03 08:28:59Z rudolfkoenig $
# $Id: 98_SVG.pm 5076 2014-03-01 06:30:23Z rudolfkoenig $
# $Id: 99_Utils.pm 5488 2014-04-08 11:32:17Z rudolfkoenig $
# $Id: 99_XmlList.pm 1840 2012-09-12 13:52:08Z rudolfkoenig $
# $Id: 90_at.pm 5319 2014-03-25 10:11:47Z rudolfkoenig $
# $Id: 98_autocreate.pm 5268 2014-03-20 20:46:00Z rudolfkoenig $
# $Id: 98_dummy.pm 4934 2014-02-15 08:23:12Z rudolfkoenig $
# $Id: 91_notify.pm 5470 2014-04-07 08:32:35Z rudolfkoenig $
# $Id: 98_structure.pm 5050 2014-02-26 08:29:44Z rudolfkoenig $
# $Id: 98_telnet.pm 4844 2014-02-08 07:54:03Z rudolfkoenig $
# $Id: 91_watchdog.pm 5452 2014-04-06 06:24:47Z rudolfkoenig $
./FHEM/95_webViewControl.pm: No such file or directory
# $Id: 98_weblink.pm 3770 2013-08-23 13:29:58Z rudolfkoenig $

Sehe ich den Wald vor lauter Bäumen nicht, oder woran könnte es noch liegen

und allen ein schönes Osterfest


Gruß Hannes
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 20 April 2014, 11:05:45
Ich habe es mit fhem.cfg.demo getestet (Chrome+FF), es funktioniert.
Und ich habe eine neue Version dieser Datei mit aktivierten codemirror eingecheckt.
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 21 April 2014, 00:52:38
Hallo Rudi,

danke für die Rückinfo.
Ich habe es gerade mit perl fhem.pl fhem.cfg.demo getestet und da funktioniert es wunderbar.

Nun dachte ich mir, übernehme ich mal einfach alle Attribute von WEB aus dem Demo
aber leider bleibt der Editor genauso schwarz wie vorher  :'(

Nun habe ich den Übeltäter nach 3 Stunden suche gefunden  :o

# 2014-04-21 Verursacht, dass Codemirror nicht mehr funktioniert
define webviewnote webViewControl 12345

Sobald das webvienote definiert ist, funktioniert der codemirror nicht mehr  :'(

Gruß Hannes
Titel: Antw:Javascript Editor einbinden
Beitrag von: UliM am 21 April 2014, 07:38:57
Moin,
das hat Dirk auch so festgestellt: http://forum.fhem.de/index.php/topic,10628.msg161077.html#msg161077

Gerade wollte ich mal nachschauen was webViewControl eigentlich ist - und hab es weder in der commandref noch im trunk noch in contrib gefunden (hoffe ich hab's nicht übersehen...)
Scheinbar kann man es nur von der Wiki-Seite http://www.fhemwiki.de/wiki/WebViewControl herunterladen und muss es manuell von dort installieren.

Wenn das wirklich so ist - sollte es dann in der fhem.cfg.demo sein?

Gruß, Uli
Titel: Antw:Javascript Editor einbinden
Beitrag von: AHA1805 am 21 April 2014, 08:36:57
Hallo Uli

Danke für die Rückmeldung.
Die fhem.cfg.demo funktioniert einwandfrei, hier ist auch kein webViewControl enthalten.

Gruß Hannes

Gesendet von Unterwegs mit Tapatalk 4
Titel: Antw:Javascript Editor einbinden
Beitrag von: MarcelK am 22 April 2014, 13:48:13
Also an sich muss ich erstmal sagen, sehr cooles Feature! Ich habe allerdings zwei Probleme damit:

- Seite hoch/runter Tasten funktionieren nicht richtig (Cursor bewegt sich aus Sichtfeld, aber Seite bleibt stehen)
- Ich find's nicht gut dass der "Save" button wegscrollt

Beides konnte ich mit folgendem Patch beheben falls es noch jemanden interessiert:

$ diff fhem_codemirror.js.backup fhem_codemirror.js
66,67c66
<         '.CodeMirror {height: auto;}'+
<         '.CodeMirror-scroll {overflow-y: hidden; overflow-x: auto;}'+
---
>         '.CodeMirror {height: ' + (window.innerHeight - 150) + 'px;}'+
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 22 April 2014, 21:01:05
schau ich mir mal an.

Danke für den Hinweis.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 22 April 2014, 21:17:46
Eingecheckt. Patches, die Code entfernen, haben immer Vorrang :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 22 April 2014, 21:30:03
hm... die allgemeine Meinung zum Scrolling war während der Entwicklunsgzeit der cm-Einbindung eine andere. Mal schauen, wann der erste meckert ;)
Titel: Antw:Javascript Editor einbinden
Beitrag von: der-Lolo am 22 April 2014, 22:26:27
Es gehört hier nicht her - aber ich würde es auch gut finden wenn Eingabefeld, Save und Save as Button grundsätzlich stehen bleiben würden... Ich gehöre aber auch zu den Menschen denen eine "Pause" Funktion im Event Monitor gut gefallen würde...
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 22 April 2014, 22:38:20
Naja, ich denke, mit der heute von Rudi eingebauten Änderung für codemirror kann man schon ganz gut leben - und Dein Wunsch, die Buttons zu sehen, ist damit erfüllt.

Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 23 April 2014, 12:46:42
ich hab hier: http://forum.fhem.de/index.php/topic,13651.msg161331.html#msg161331 (http://forum.fhem.de/index.php/topic,13651.msg161331.html#msg161331) einen patch der über 70 zeilen entfernt :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 23 April 2014, 16:29:20
Ich fand den editor von der heutigen update um Klassen besser. Es passte einfach mehr code auf den Bildschirm und beim runterscrollen war kein leeres Feld zu sehen (meine raum liste links ist laaaang). Jetzt muss ich wieder hochscrollen um den code zu sehen :/
Und Seite hoch/runter klappt am Mac wunderbar :P
Könnte man das irgendwie konfigurierter machen? Tastenkombi für die Vorschläge wäre auch klasse wenn die konfigurierter wäre  8)


Grüße
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 23 April 2014, 16:54:17
Falsch:
ZitatKönnte man das irgendwie konfigurierter machen?

Richtig:
ZitatHier ist der Patch, um es konfigurierbar zu machen
Titel: Antw:Javascript Editor einbinden
Beitrag von: punker am 23 April 2014, 17:42:52
Hi,

Ich mache jeden Tag ein Update und sollte dadurch ja auf dem neuesten FHEM-Stand sein!
Und obwohl ich diesen Thread seit Anfang verfolge und auch die folgenden Attribute:
attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB codemirrorParam   { "theme":"blackboard", "lineNumbers":true }
in der Config fürs WEB eingefügt hab gelingt es mir nicht mehr den Editor zu Gesicht zu bekommen!
Was mach ich falsch?
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 23 April 2014, 17:55:45
Welchen Browser verwendest Du?
Sieht man in der JavaScript-Console im Browser eine Fehlermeldung?
Funktioniert der Editor mit fhem.cfg.demo?
Verwendest Du Dashboard?

Bitte alle Fragen beantworten :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: punker am 23 April 2014, 18:21:39
Opera (hab aber jetzt schnell mal die anderen (Chrome, Firefox und IEditor) getestet - geht nirgends!
Ich leider nicht :-(
Nein
Habs konfiguriert, nutze es aber nicht.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 23 April 2014, 18:31:36
ZitatIch leider nicht :-(
Heisst dass, dass Du nicht weisst wie man die JavaScript Console oeffnet, oder steht da keine Fehlermeldung nach einem Reload?
Im ersten Fall bitte die Internet-Suche bemuehen.

ZitatNein
Ich nehme an, dass bezieht sich auf fhem.cfg.demo. Da es damit bei mir funktioniert, gehe ich davon aus, dass dein update nicht vollstaendig durchgelaufen ist. Kannst Du bitte mit einem "update force" alles neu laden?
Titel: Antw:Javascript Editor einbinden
Beitrag von: stromer-12 am 23 April 2014, 19:56:48
Wenn du webViewControl konfiguriert hast geht der neue Editor auch nicht.
Titel: Antw:Javascript Editor einbinden
Beitrag von: punker am 23 April 2014, 19:58:58
In der Console vom Google Chrome steht nach einem Reload der Seite "Edit Files" folgendes:
Uncaught TypeError: Cannot read property 'value' of null                                                                       fhemweb_views.js:202
(anonymous function)                                                                                                                              fhemweb_views.js:202
c                                                                                                                                                                            jquery.min.js:4
p.fireWith                                                                                                                                                              jquery.min.js:4
x.extend.ready                                                                                                                                                      jquery.min.js:4
q                                                                                                                                                                            jquery.min.js:4

ich hoffe, dass dir das was sagt!

Das update force mach ich morgen, weil gleich kommt ja Fußball :-)

Danke erstmal!
Titel: Antw:Javascript Editor einbinden
Beitrag von: punker am 23 April 2014, 20:04:41
Zitat von: stromer-12 am 23 April 2014, 19:56:48
Wenn du webViewControl konfiguriert hast geht der neue Editor auch nicht.
Hab webViewControl wieder gelöscht, aber weiterhin geht der Editor nicht!
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 23 April 2014, 20:10:28
hast Du Dein fhem nach dem Löschen von webViewControl gesichert (save config) und dann neugestartet?

Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 23 April 2014, 20:18:50
Zu welchem Paket gehoert fhemweb_views.js ?
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 23 April 2014, 20:21:31
Zitat von: rudolfkoenig am 23 April 2014, 16:54:17
Richtig:
Hier ist der Patch, um es konfigurierbar zu machen
Leider überfordert das meine Kenntnisse komplett, sonst wäre der Patch schon in dem Thread. ;) Wenn es niemand sonst stört versuch ich mir eine diff zusammen zu kopieren.

Grüße
Titel: Antw:Javascript Editor einbinden
Beitrag von: stromer-12 am 23 April 2014, 20:23:00
Zitat von: rudolfkoenig am 23 April 2014, 20:18:50
Zu welchem Paket gehoert fhemweb_views.js ?

Die gehörte mal zu einer älteren Version vom Dashboard.
Titel: Antw:Javascript Editor einbinden
Beitrag von: punker am 23 April 2014, 21:36:38
Zitat von: betateilchen am 23 April 2014, 20:10:28
hast Du Dein fhem nach dem Löschen von webViewControl gesichert (save config) und dann neugestartet?
Ja - keine Reste mehr von webViewControl in der cfg!
Titel: Antw:Javascript Editor einbinden
Beitrag von: MarcelK am 23 April 2014, 23:24:44
Zitat von: fhainz am 23 April 2014, 16:29:20
Und Seite hoch/runter klappt am Mac wunderbar :P

Während der Cursor im Editor-Feld aktiv ist? Ich hatte das vor meinem Patch mit 5 Browsern unter Windows (Opera 12, Firefox, IE, Chrome, Maxthon) und 2 auf'm Mac (Safari, Opera) versucht, bei keinem hat Seite hoch/runter richtig funktioniert wenn der Cursor aktiv war, insofern wundert mich das jetzt ein wenig. Aber gut, mich hatte auch gewundert wieso das bisher noch keinen gestört hat ;)
Titel: Antw:Javascript Editor einbinden
Beitrag von: svenson08 am 25 April 2014, 08:20:03
Mir ist aufgefallen das der Codemirror unter Firefox tadellos funktioniert, in Chrome hingegen funktioniert dieser nur bei den Edit files, nicht aber über DEF. Dort erscheint dann ein

ZitatUncaught TypeError: Cannot read property 'indexOf' of undefined

bezogen auf fhemweb.js Zeile 348.

Ich arbeite primär unter Firefox, daher stört es mich nicht direkt aber es würde mich interessieren ob auch andere das Problem in Chrome habe.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 25 April 2014, 08:25:40
Chrome funktioniert bei mir einwandfrei, vlt. liegt es an einer speziellen Definition.
Kannst Du das auch mit der demo Konfig nachstellen?
Titel: Antw:Javascript Editor einbinden
Beitrag von: svenson08 am 25 April 2014, 08:44:40
Ich hab gerade die demo.cfg aus dem SVN genommen und mit lcCinema getestet. Dort bekomme ich beim klick aufs DEF den genannten Fehler.
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 25 April 2014, 08:52:33
Bei mir kommt der gleiche Fehler beim anklicken Aufruf eines DEFs. Der Tab friert ein. Nach dem Schließen des Tabs und erneutem Öffnen des gleichen DEFs funktioniert es dann einwandfrei. Editiert man zuerst ein File über Edit Files, funktionieren auch die DEFs direkt beim ersten mal.

Getestet mit demo.cfg, Testumgebung und Produktion (Chrome Browser).
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 25 April 2014, 09:14:24
*Seufz*
Ich kann es nicht reproduzieren, man braucht dazu wohl eine komplexere Aufruf-Reihenfolge.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Inputsammler am 25 April 2014, 10:00:06
@Punker welchen Port verwendest du?
Denn bei mir gehts mit dem 8083 Port ( 8084 und 8085 nicht was gut so ist)

Gruß Gerd


Gesendet von meinem iPhone mit Tapatalk
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 25 April 2014, 10:21:22
Zitat von: MarcelK am 23 April 2014, 23:24:44
Während der Cursor im Editor-Feld aktiv ist?
Du hast schon recht, hab das gerade nochmal nachgestellt. Dachte zuerst Seite hoch runter klappt bei dir gar nicht, nun versteh ich schon was du meinst.

Grüße
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 April 2014, 10:32:57
Ich werde demnächst die codemirror Dateien in fhem auf die letzte 3er-Version 3.24 updaten.

Es gibt inzwischen codemirror 4.1 der einige inkompatible Änderungen enthält, das muss ich erst ausführlicher testen.

(http://up.picr.de/18077437yu.png)

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 April 2014, 22:59:15
Morgen gibt es die codemirror Version 3.24 per fhem update.
Titel: Antw:Javascript Editor einbinden
Beitrag von: P.A.Trick am 25 April 2014, 23:04:33
Cool! Sagt mal funktioniert bei euch STRG-F (Suchfunktion im Browser) in Verbindung mit Codemirror?
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 April 2014, 23:09:02
Ja.
Titel: Antw:Javascript Editor einbinden
Beitrag von: P.A.Trick am 25 April 2014, 23:11:25
Ach komm du hast doch schon die neue Version laufen! :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 April 2014, 23:12:54
Es funktioniert auch mit der alten codemirror Version.
Titel: Antw:Javascript Editor einbinden
Beitrag von: P.A.Trick am 25 April 2014, 23:15:47
Ich warte mal bis morgen!

Welchen Browiser und OS benutzt du?
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 25 April 2014, 23:16:58
Google Chrome auf Mac
Titel: Antw:Javascript Editor einbinden
Beitrag von: MarcelK am 28 April 2014, 20:26:13
Hatte zwischenzeitlich noch zwei Probleme mit dem Editor:

1. HTML Entities in Code werden decodiert (Bsp "&nbsp;" wird zum normalen Space beim Editieren im DEF Editor). Es stellte sich aber heraus dass das nicht die Schuld von CodeMirror ist sondern ein Feature vom DEF Editor im Allgemeinen. Möglicher Patch:

$ diff 01_FHEMWEB.pm.original 01_FHEMWEB.pm
8a9
> use HTML::Entities;
2069a2071
>   $val = encode_entities($val);


2. Im DEF Modus macht CodeMirror auf einmal Auto-Size in der Breite, was genau wie Auto-Size in der Höhe nicht so wirklich gut mit der Cursor Bewegung harmoniert. Hab leider noch nicht verstanden wieso das so ist. Gelöst habe ich es für mich mit einem fixen Offset zur Fenster-Breite analog zu Height, aber da dieser Offset noch stärker vom gewählten Style abhängt bin ich mit der Lösung nicht zufrieden, vielleicht gibt's da ja noch einen besseren Vorschlag:

$ diff fhem_codemirror.js.original fhem_codemirror.js
67a68,72
>   } else {
>     $("head").append(
>       '<style type="text/css">'+
>         '.CodeMirror {width: ' + (window.innerWidth - 300) + 'px;}'+
>       '</style>');


Gruß Marcel
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 28 April 2014, 20:34:35
Zitat von: MarcelK am 28 April 2014, 20:26:13
2. Im DEF Modus macht CodeMirror auf einmal Auto-Size in der Breite,

Das macht codemirror aber schon immer.

Und ich glaube, mit der Verwendung eines zusätzlichen perl-Modul machst Du Dir hier nicht viele Freunde.
Titel: Antw:Javascript Editor einbinden
Beitrag von: MarcelK am 28 April 2014, 20:49:53
Zitat von: betateilchen am 28 April 2014, 20:34:35
Das macht codemirror aber schon immer.
Zumindest im File-Editor macht er brav bis Fenster-Breite und scrollt den Rest, ohne dass andere Attribute verwendet werden.

Zitat
Und ich glaube, mit der Verwendung eines zusätzlichen perl-Modul machst Du Dir hier nicht viele Freunde.
Darf auch gerne anders gelöst werden, sehe die FritzBox aber eher als die Minimal-Perl-Plattform an und da gibt's das.
Titel: Antw:Javascript Editor einbinden
Beitrag von: P.A.Trick am 28 April 2014, 22:16:47
Zitat von: stromer-12 am 23 April 2014, 19:56:48
Wenn du webViewControl konfiguriert hast geht der neue Editor auch nicht.

Stimmt geht bei mir auch nicht mehr!
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 30 April 2014, 12:16:59
@MarcelK: hab die beiden Vorschlaege modifiziert uebernommen, bei 1. habe ich die in FHEMWEB.pm bereits vorhandene FW_htmlEscape ergaenzt & verwendet.
Titel: Antw:Javascript Editor einbinden
Beitrag von: MarcelK am 30 April 2014, 22:35:47
Ah okay, hätte mir natürlich auch denken können dass das Problem des Escaping an anderer Stelle auch schon hat gelöst werden müssen ;-) Danke
Titel: Antw:Javascript Editor einbinden
Beitrag von: stromer-12 am 05 Mai 2014, 22:08:56
Hi,

ich habe auf meinen Android-Geräten Probleme beim Editieren der Definitionen, es funktioniert die Backspace Taste nicht.

# $Id: fhem.pl 5728 2014-05-03 09:41:12Z rudolfkoenig $
# $Id: 01_FHEMWEB.pm 5747 2014-05-04 20:30:57Z rudolfkoenig $

Gruß
Titel: Antw:Javascript Editor einbinden
Beitrag von: MarcelK am 07 Mai 2014, 01:55:25
Zitat von: stromer-12 am 05 Mai 2014, 22:08:56
ich habe auf meinen Android-Geräten Probleme beim Editieren der Definitionen, es funktioniert die Backspace Taste nicht.

Ja, kann ich auf meinem Nexus 7 nachvollziehen. Interessanterweise kann ich was tippen und das frisch getippte wieder löschen, aber kein Zeichen mehr. Sehr strange aber ein CodeMirror Problem, in ihren eigenen Demos geht's genausowenig.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Phil__ am 08 Mai 2014, 13:27:44
Hallo,

habe in meiner FHEM Konfiguration versucht "codemirror" zum laufen zu bringen. Leider ohne Erfolg!
Habe WebViewControl und das Dashboard am laufen, neustes Updates von heute (08.05.2014), meinen Vorrednern zufolge soll WebViewControll das Problem sein.

attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB codemirrorParam { "theme":"blackboard", "lineNumbers":true }


Wenn ich das so konfiguriere passiert einfach nichts, ich sehe im WebEditor die Standardansicht.

Gibt es schon eine Lösung?

Grüße
Philipp
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 08 Mai 2014, 13:29:13
das solltest Du vielleicht besser im Thread zu webviewcontrol nachfragen...
Titel: Antw:Javascript Editor einbinden
Beitrag von: svenson08 am 13 Mai 2014, 07:11:11
Hallo Rudi,

zu dem Problem das der Codemirror bei einem DEF in Chrome nicht funktioniert. Chrome meckert die Zeile 349 in fhemweb.js
if($(this).attr("src").indexOf(sname) >= 0)
mit dem Fehler
ZitatUncaught TypeError: Cannot read property 'indexOf' of undefined
an.

Kommentiert man diese aus (was für mich der erste schnelle test war) wird der Codemirror bei mir auch eingebunden. Kannst du den Fehler an der stelle abfangen?

Gruß Svenson
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 13 Mai 2014, 10:08:05
Habs geaendert.

Ist weniger ein Chrome Problem, sondern es tritt auf, wenn jemand <script> tags ohne src Attribut einbaut, und das hatte ich bisher nicht gahabt, auch nicht in der demo.cfg
Titel: Antw:Javascript Editor einbinden
Beitrag von: Benni am 15 Mai 2014, 21:32:11
Hallo zusammen,

Gibt es eigentlich eine Möglichkeit die Themes, die Codemirror normalerweise mitbringt, irgendwie auch in fhem verfügbar zu machen? Es muss ja nicht generell per Update sein ich mache es auch gerne manuell.  8)

trotz variantenreicher Nutzung SuFu konnte ich nichts im Forum dazu finden und auch meine Experimente die css aus dem theme-Folder von Codemirror irgendwie einzubinden haben bisher nicht zum Erfolg geführt.  :'(

Grüsse Benni.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 16 Mai 2014, 09:07:07
kannst Du problemlos machen. Einfach in den Ordner ./www/codemirror kopieren und dann im Attribut auswählen:

attr WEB codemirrorParam { "theme":"blackboard", "lineNumbers":true }

damit wird das theme festgelegt und Du kannst statt "blackboard" jedes andere Theme benutzen, das Du in den codemirror Ordner kopiert hast.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Benni am 16 Mai 2014, 12:42:13
Danke! Genau so hatte ich mir das auch vorgestellt.  :D
Das hat aber leider nicht funktioniert. Bei mir wird anscheinend immer "blackboard" gezogen, egal was ich für css im codemirror Ordner habe und dann per attr codemirrorParam am FHEMWEB angegeben habe.

Das Problem ist bei mir aber erst gestern aufgetreten, nachdem ich gestern ein Update durchgeführt hatte und Testweise mal fhem auf das "neue" iOS6-Style eingestellt hatte.
In meinem codemirrorParam ist eigentlich "default" als theme gewählt und ich verwende als Style das darkstyle.

Ich werde mir das am Wochenende noch mal in RUhe zu Gemüte führen und vllt. erst einmal ein update force zur Konsistenzsicherung durchführen.



Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 16 Mai 2014, 15:52:37
Du hast recht, ich habs gerade mal probiert - es ist völlig wurscht, welches Theme man auswählt, gezogen wird immer blackboard *g*

Das sollte eigentlich anders sein.
Titel: Antw:Javascript Editor einbinden
Beitrag von: fhainz am 16 Mai 2014, 15:55:18
Ist aber erst seit ein paar tagen so. Ich dachte schon das liegt an meiner installation.
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 16 Mai 2014, 16:05:49
guter und richtiger Hinweis ;)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 16 Mai 2014, 16:10:49
ich habs mal als Fehler gemeldet, sollen sich die Leute, die das verschlimmbessert haben, drum kümmern.

http://forum.fhem.de/index.php/topic,23661.0.html
Titel: Antw:Javascript Editor einbinden
Beitrag von: oniT am 17 Mai 2014, 16:56:32
Ich muss mal für diese Erweiterung einen Daumen hoch loswerden. Ich habe es eben eingerichtet und bin begeistert.

Bitte weiter so mit solchen hilfreichen Sachen.

Gruß,
Tino
Titel: Antw:Javascript Editor einbinden
Beitrag von: stromer-12 am 18 Mai 2014, 14:57:27
Seit heute geht bei mir der Editor mit WebViewControl wieder.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Brockmann am 02 Juli 2014, 10:08:24
Leider habe ich diesen alternativen Editor erst jetzt entdeckt - eine prima Sache, nur etwas zu gut versteckt.  ;)

Wäre es machbar, die Autocompletion-Funktion auch für das einzeilige Befehlsfeld zu aktivieren. Da wäre das auch sehr praktisch, finde ich.
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 02 Juli 2014, 11:07:52
Zitat von: Brockmann am 02 Juli 2014, 10:08:24
Leider habe ich diesen alternativen Editor erst jetzt entdeckt - eine prima Sache, nur etwas zu gut versteckt.  ;)

Leider ja. Vielleicht könnte man ja den Editor für das Standard-Web aktivieren. Für die Tablet und Smallscreen Konfigurationen kann er ja aus bleiben.

Zitat von: Brockmann am 02 Juli 2014, 10:08:24
Wäre es machbar, die Autocompletion-Funktion auch für das einzeilige Befehlsfeld zu aktivieren. Da wäre das auch sehr praktisch, finde ich.

Im Prinzip müsste das Eingabefeld nur eine ID kriegen. Dann sollte sich auch der Editor dort einfach andocken lassen. Es würde dann auch dort der FHEM Mode mit Syntax Highlight und Autocompletion funktionieren.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Brockmann am 06 Juli 2014, 18:35:19
Zitat von: papa am 02 Juli 2014, 11:07:52
Im Prinzip müsste das Eingabefeld nur eine ID kriegen. Dann sollte sich auch der Editor dort einfach andocken lassen. Es würde dann auch dort der FHEM Mode mit Syntax Highlight und Autocompletion funktionieren.
Hat vielleicht jemand, der die Rechte und Fähigkeiten dazu hat, die Muße, das bei Gelegenheit anzugehen?
Wenn es so einfach ist, wie es sich anhört, wäre es wenig Aufwand für eine schönen Komfortgewinn (ich weiß, nicht für jeden  ;)).
Ich stelle mich gerne als Tester zur Verfügung. Für alles andere reicht es bei mir vorläufig noch nicht, fürchte ich.
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 06 Juli 2014, 18:49:24
Ich sehe hier den Komfortgewinn gar nicht so sehr. Wenn man den Editor braucht, dann ja sicher in der Regel für die Defines. Ein Define mache ich in der Kommandozeile meistens ersteinmal so (Beispiel notify):

define xxx notify yyy {}

+ Enter. Den Rest mache ich dann im neuen Device, in das man direkt weiter geleitet wird. Dort hat man dann auch allen Komfort des Editors.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Brockmann am 06 Juli 2014, 18:57:08
Zitat von: marvin78 am 06 Juli 2014, 18:49:24
Ich sehe hier den Komfortgewinn gar nicht so sehr. Wenn man den Editor braucht, dann ja sicher in der Regel für die Defines. Ein Define mache ich in der Kommandozeile meistens ersteinmal so (Beispiel notify):
define xxx notify yyy {}
+ Enter. Den Rest mache ich dann im neuen Device, in das man direkt weiter geleitet wird. Dort hat man dann auch allen Komfort des Editors.
Also ich benutze in der Kommandozeile gerne auch set, delete, rename, copy usw. Diese Kommandos kann ich mir auch gerade noch merken, aber die Devices, auf die ich das beziehen will, haben schon wildere Namen.
Da wäre es schon praktisch, wenn ich beispielsweise "set BZ" und dann [Strg]+[Leer] tippen kann und alle Devices mit "BZ..." aufgelistet bekomme und das gewünschte direkt auswählen kann.
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 06 Juli 2014, 18:58:31
Autocomplete nutze ich nicht. Meine Devices haben logisch strukturierte Namen, sodass ich mir sie erschließen kann, wenn ich sie nicht auswendig weiß.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Brockmann am 06 Juli 2014, 19:04:18
Zitat von: marvin78 am 06 Juli 2014, 18:58:31
Autocomplete nutze ich nicht. Meine Devices haben logisch strukturierte Namen, sodass ich mir sie erschließen kann, wenn ich sie nicht auswendig weiß.

Deshalb hatte ich oben für so disziplinierte Leute wie Dich ja auch extra geschrieben:
Zitat...für eine schönen Komfortgewinn (ich weiß, nicht für jeden  ;)).
Titel: Antw:Javascript Editor einbinden
Beitrag von: hexenmeister am 06 Juli 2014, 20:15:52
Ich bin da auch etwas skeptisch. Wenn schon, dann aber nur extra zuschaltbar und per Default aus.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Brockmann am 07 Juli 2014, 00:41:34
Zitat von: hexenmeister am 06 Juli 2014, 20:15:52
Ich bin da auch etwas skeptisch. Wenn schon, dann aber nur extra zuschaltbar und per Default aus.
Autocompletion ist ja eigentlich ohnehin "extra zuschaltbar" und "per Default aus", weil man sie über eine Tastenkombination ausdrücklich ausführen muss.
Solange man diese Tastenkombi nicht drückt, bemerkt man davon nichts.
Und farbige Darstellung usw. muss ich in der Kommandozeile auch gar nicht haben, Zeilennummern eh nicht. Mir geht es nur um die Autocompletion.
Titel: Antw:Javascript Editor einbinden
Beitrag von: hexenmeister am 07 Juli 2014, 01:13:21
Zitat von: Brockmann am 07 Juli 2014, 00:41:34
Autocompletion ist ja eigentlich ohnehin "extra zuschaltbar" und "per Default aus", weil man sie über eine Tastenkombination ausdrücklich ausführen muss.
Solange man diese Tastenkombi nicht drückt, bemerkt man davon nichts.
Und farbige Darstellung usw. muss ich in der Kommandozeile auch gar nicht haben, Zeilennummern eh nicht. Mir geht es nur um die Autocompletion.

nee, nee. Aus ist sie, wenn die Scripte gar nicht erst geladen werden. Genau darum geht es mir.
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 07 Juli 2014, 09:20:49
ACK
Titel: Antw:Javascript Editor einbinden
Beitrag von: Jens_B am 07 Juli 2014, 11:13:47
.. mit Safari (aktuelle Version 7.0.5) unter Mavericks bekomme ich es einfach nicht mehr hin das der codemirror in fhem geht. Ich habe keine Ahnung wieso aber es geht nicht.
Starte ich Opera oder Firefox geht es....


Gruß
Jens
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 07 Juli 2014, 12:04:42
safari  hat aktuell das problem das das codemirror fenster nicht automatisch den focus bekommt und man erst mit tab hin springen muss. danach geht aber alles.

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: Jens_B am 07 Juli 2014, 12:09:09
Zitat von: justme1968 am 07 Juli 2014, 12:04:42
safari  hat aktuell das problem das das codemirror fenster nicht automatisch den focus bekommt und man erst mit tab hin springen muss. danach geht aber alles.


Das geht bei mir definitiv nicht, habe es eben selber erneut probiert. Ich weiß, das es schon mal funktioniert hat, weiß nur nicht seit wann es nicht mehr geht.
Titel: Antw:Javascript Editor einbinden
Beitrag von: hauwech am 08 Juli 2014, 16:36:21
Das Syntax highlighting ist wirklich hilfreich.
Aber anscheinend funktioniert dann die Suchfunktion im Browser (Chrome,Firefox) nicht mehr richtig.
Wenn ich z.B. die fhem.cfg bearbeite und suche mit Ctrl-F einen String (z.B. "readingsGroup"), dann kommen 0 Fundstellen. Wenn der gesuchte string gerade zufällig im sichtbaren Bereich ist, wird er gefunden.

Kennt jemand diesen Effekt? Gibt's vielleicht einen Trick?

Gruß Roland
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 08 Juli 2014, 16:38:45
Das hier habe ich mir dafür eingebaut:

http://codemirror.net/demo/search.html (http://codemirror.net/demo/search.html)
Titel: Antw:Javascript Editor einbinden
Beitrag von: hauwech am 08 Juli 2014, 16:53:02
Sorry, ich bin da nicht so firm...
Muß der Code in die codemirror.js? Wenn ja: wohin?

Gruß Roland
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 08 Juli 2014, 17:12:29
Hm. Warum liest heute eigentlich niemand mehr selbst?

Die entsprechenden Dateien müssen ins Codemirror-Verzeichnis und dann in der fhem_codemirror.js einbinden:


  loadScript("codemirror/search.js",    function(){cm_loaded++;cm_wait()});
  loadScript("codemirror/match-highlighter.js",    function(){cm_loaded++;cm_wait()});
  loadScript("codemirror/searchcursor.js",    function(){cm_loaded++;cm_wait()});


Vorsicht bei Updates. Die fhem_codemirror.js kann bei Updates von fhem überschrieben werden. Deshalb ist eine Kopie sinnvoll.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 08 Juli 2014, 18:42:02
Ich wuerde diese Dateien auch im codemirror Verzeichnis speichern, aber fhem_codemirror.js nicht anfassen, und stattdessen das JavaScripts Attribut des WEB-Servers mit den erwaehnten .js Dateien erweitern. Damit geht bei einem Update nichts verloren.
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 08 Juli 2014, 18:46:27
Gute Idee, funktioniert allerdings nicht. Ich nehme an, weil sie auf diese Weise nicht als Plugin des Codemirror-Editors erkannt werden.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 08 Juli 2014, 18:50:34
Hast du die zusaetzlichen Dateien vor oder nach fhem_codemirror.js im Attribut spezifiziert?
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 09 Juli 2014, 11:00:27
Es geht beides nicht. Was ist denn aus deiner Sicht best practice? Aus meiner Sicht gehören sie dahinter. Ich bin mir schon sehr bewusst, was ich tue.. Das FHEMWEB-Attribut zu nutzen, war das erste, was ich probiert habe. Erst danach habe ich die fhem_codemirror.js editiert. Um noch tiefer einzusteigen und zu schauen, warum, das Attrinbut nicht funktioniert, fehlte mir aber leider die Zeit.

Ich habe hier aber auch kein Problem. So, wie ich es mache, funktioniert es ja und das Problem mit dem Update kann ich handeln.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Billy am 09 Juli 2014, 16:11:11
Zitat von: marvin78 am 08 Juli 2014, 16:38:45
Das hier habe ich mir dafür eingebaut:

http://codemirror.net/demo/search.html (http://codemirror.net/demo/search.html)

Habe das mal bei mir wie von dir vorgeschlagen eingebaut.
Klappt hervorragend! Danke für den Typ :)

Auch die Befehle:
Ctrl-F / Cmd-F --> Start searching
Ctrl-G / Cmd-G --> Find next
Shift-Ctrl-G / Shift-Cmd-G --> Find previous
Shift-Ctrl-F / Cmd-Option-F --> Replace
Shift-Ctrl-R / Shift-Cmd-Option-F --> Replace all

Billy
Titel: Antw:Javascript Editor einbinden
Beitrag von: hauwech am 09 Juli 2014, 16:50:29
Hallo Marvin,
auch auf die Gefahr hin, daß ich mich als Dummy outen muß...
Ich habe
- die drei files nach /opt/fhem/www/codemirror kopiert
- owner/group auf fhem/dialout gesetzt (wie die anderen *.js files in diesem Verzeichnis)
- die Rechte auf 644 gesetzt (wie die anderen *.js files in diesem Verzeichnis)

- die fhem_codemirror.js erweitert:var cm_loaded = 0, cm_editor;

loadScript("pgm2/jquery.min.js", function(){
  $(document).ready(function(){
    var els = document.getElementsByTagName("textarea");
    if(els.length == 0)
      return;

    if($(els[0]).closest("div#edit").css("display")=="none") { // DEF special
      $("table.internals a").each(function(){
        var oc = $(this).attr("onclick");
        if(oc) {
          $(this).attr("onclick", oc+
          's=document.getElementById("edit").getElementsByTagName("textarea");'+
          'if(!s[0].editor) s[0].editor=AddCodeMirror(s[0]);');
        }
      });
    } else {
      AddCodeMirror(els[0]);
    }
  });
});

function
AddCodeMirror(e)
{
  cm_editor = e;
  loadLink("codemirror/codemirror.css");
  loadLink("codemirror/show-hint.css");
  loadScript("codemirror/codemirror.js",   function(){cm_loaded++;} );
  loadScript("codemirror/closebrackets.js",function(){cm_loaded++;} );
  loadScript("codemirror/matchbrackets.js",function(){cm_loaded++;} );
  loadScript("codemirror/show-hint.js",    function(){cm_loaded++;cm_wait()});
  loadScript("codemirror/search.js",    function(){cm_loaded++;cm_wait()});
  loadScript("codemirror/match-highlighter.js",    function(){cm_loaded++;cm_wait()});
  loadScript("codemirror/searchcursor.js",    function(){cm_loaded++;cm_wait()});
}

function
cm_wait()
{
  if(cm_loaded != 4) {
    setTimeout(cm_wait, 10);
    return;
  }

  var ltype,type="fhem";    // get the type from the hidden filename extension
  $("input[name=save]").each(function(){
    ltype = $(this).attr("value");
    ltype = ltype.substr(ltype.lastIndexOf(".")+1);
    if(ltype=="css") type = "css";
    if(ltype=="svg") type = "xml";
  });
  var attr = {
    theme: "blackboard",
    lineNumbers: true,
    matchBrackets: true,
    autoCloseBrackets: true,
    extraKeys:{'Ctrl-Space':'autocomplete'}
  };
  var userAttr = scriptAttribute("fhem_codemirror.js");
  for(var a in userAttr)
    attr[a] = userAttr[a];

  loadLink("codemirror/"+attr.theme+".css");
  $("head").append(
    '<style type="text/css">'+
      (ltype ?
      '.CodeMirror {height: ' + (window.innerHeight - 150) + 'px;}':
      '.CodeMirror {width:  ' + (window.innerWidth  - 300) + 'px;}')+
    '</style>');

  loadScript("codemirror/"+type+".js", function(){
    log("Calling CodeMirror");
    CodeMirror.fromTextArea(cm_editor, attr);
  });
}


Die Suche geht aber trotzdem nicht. fhem/Browser restart ändert auch nix.
Wenn ich auf der codemirror Demo Seite http://codemirror.net/demo/search.html (http://codemirror.net/demo/search.html) ctrl-f drücke, kommt der Suchdialog im Editor. Wenn ich auf der fhem Seite ctrl-f drücke, kommt der Suchdialog des Browsers - auch wenn der cursor im Editorfenster ist.
Ich habe zusätzlich noch die dialog.js runtergeladen und ins codemirror Verzeichnis kopiert, das bringt aber auch nix.
Gibt es ein relevantes logfile?
Muß ich noch etwas aktivieren/kopieren/ändern/ergänzen, was einem Entwickler selbstverständlich erscheint, mir aber nicht?

Gruß Roland
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 09 Juli 2014, 17:06:08
Eigentlich ist alles korrekt. Welchen Browser verwendest du denn? Hab es mit dem IE nicht getestet. Der kann sehr vieles nicht. Für FHEM am besten einen vernünftigen Browser verwenden.

Lösche mal den Cache deines Browsers. Hattest du den Fokus im Edit-Bereich, als du STRG-F gedrückt hast?
Titel: Antw:Javascript Editor einbinden
Beitrag von: franky08 am 09 Juli 2014, 20:59:44
Hallo, bei mir funktioniert das soweit auch, doch auf dem MAC mit Safari oder mit Firefox bekomme ich bei der Suche kein Suchergebnis. Es werden 0 Treffer angezeigt, scrolle ich zu dem Auschnitt mit dem gesuchten Ausdruck werden die Treffer auch gefunden/angezeigt.

VG
Frank
Titel: Antw:Javascript Editor einbinden
Beitrag von: hauwech am 10 Juli 2014, 10:25:23
Hallo Marvin,

zur Zeit ist Chrome (Version 35.0.1916.153 m) mein Standardbrowser. Ich pendle meist zwischen Firefox und Chrome, den IE verwende ich zum Test, wenn was mit den beiden anderen nicht geht, so auch hier. Firefox ist Version 30.0.
ZitatHattest du den Fokus im Edit-Bereich, als du STRG-F gedrückt hast?
Ja:
ZitatWenn ich auf der fhem Seite ctrl-f drücke, kommt der Suchdialog des Browsers - auch wenn der cursor im Editorfenster ist.

Zwischendurch hatte ich auch mal den Effekt, daß nach Drücken von Ctrl-F drei Editorfenster untereinander angezeigt wurden, das oberste farbig, die beiden anderen einfarbig. Dieser Effekt trat unabhängig voneinander auch bei meinem Kollegen auf. Er betreibt sein fhem auf einem Raspi, ich auf einem Ubuntu 12.04 LTS.

Gruß Roland
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 10 Juli 2014, 10:33:42
Was sagt denn die Konsole in Chrome oder Firefox (Entwicklertools)? Gibt es da beim öffnen des Editors Fehlermeldungen?
Titel: Antw:Javascript Editor einbinden
Beitrag von: hauwech am 10 Juli 2014, 10:49:01
Ahhh, der Hinweis war gut, das hatte ich gesucht...:

Loading /fhem/codemirror/search.js fhemweb.js:14
Loading /fhem/codemirror/match-highlighter.js fhemweb.js:14
Loading /fhem/codemirror/searchcursor.js fhemweb.js:14
Loading /fhem/codemirror/blackboard.css fhemweb.js:14
Loading /fhem/codemirror/fhem.js fhemweb.js:14
Uncaught SyntaxError: Unexpected token < search.js:6
Uncaught SyntaxError: Unexpected token < match-highlighter.js:6
Uncaught SyntaxError: Unexpected token < searchcursor.js:6
Calling CodeMirror fhemweb.js:14


Gruß Roland
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 10 Juli 2014, 10:55:36
Hast du vielleicht alle 3 Dateien zusätzlich noch im JavaScripts-Attribut deiner FHEMWEB Instanz eingetragen?
Titel: Antw:Javascript Editor einbinden
Beitrag von: hauwech am 10 Juli 2014, 10:58:17
... ich brauch' mal ein paar Minuten... die search.js hat einen komplett anderen Inhalt als das github file... wahrscheinlich ist beim download ein html draus geworden.
Melde mich gleich wieder.
Titel: Antw:Javascript Editor einbinden
Beitrag von: hauwech am 10 Juli 2014, 11:14:13
Jetzt geht's. Danke für den Tip mit den Entwicklertools, ich habe in die *.js files nicht reingekuckt. Ich habe jetzt schnell mal den Code von github mit copy+paste kopiert. Vorher hatte ich die files von github mit "Link speichern unter" geholt, da ist ein html draus geworden.
Boah, so ein billiger Fehler....

Gruß Roland
Titel: Antw:Javascript Editor einbinden
Beitrag von: franky08 am 10 Juli 2014, 14:34:14
Hallo, ich bin genau so vorgegangen, wie hier im Thread beschrieben. Die 3 Dateien von git.hub mittels copy&paste ins fhem/codemirror Verzeichnis kopiert, Besitzer/Gruppe angepasst, Rechte angepasst. Den zusätzlichen Code ans Ende der fhem_codemirror.js eingefügt.
Leider funktioniert die Suche nur in dem Bereich der gerade auf dem Screen ist.

Die Fehlerconsole liefert:

[Warning] Invalid CSS property declaration at: * (dashboard_darkstyle.css, line 110)
[Log] Loading /fhem/pgm2/jquery.min.js (fhemweb.js, line 14)
[Error] ReferenceError: Can't find variable: $
(anonyme Funktion) (fhem_codemirror.js, line 78)
loadScript (fhemweb.js, line 309)
[Log] Loading /fhem/codemirror/codemirror.css (fhemweb.js, line 14)
[Log] Loading /fhem/codemirror/show-hint.css (fhemweb.js, line 14)
[Log] Loading /fhem/codemirror/codemirror.js (fhemweb.js, line 14)
[Log] Loading /fhem/codemirror/closebrackets.js (fhemweb.js, line 14)
[Log] Loading /fhem/codemirror/matchbrackets.js (fhemweb.js, line 14)
[Log] Loading /fhem/codemirror/show-hint.js (fhemweb.js, line 14)
[Log] Loading /fhem/codemirror/search.js (fhemweb.js, line 14)
[Log] Loading /fhem/codemirror/match-highlighter.js (fhemweb.js, line 14)
[Log] Loading /fhem/codemirror/searchcursor.js (fhemweb.js, line 14)
[Warning] Invalid CSS property declaration at: * (codemirror.css, line 178)
[Warning] Invalid CSS property declaration at: * (codemirror.css, line 179)
[Warning] Invalid CSS property declaration at: * (codemirror.css, line 258)
[Log] Loading /fhem/codemirror/blackboard.css (fhemweb.js, line 14)
[Log] Loading /fhem/codemirror/fhem.js (fhemweb.js, line 14)
[Log] Calling CodeMirror (fhemweb.js, line 14)
[Log] Longpoll:  (fhemweb.js, line 14)


VG
Frank
Titel: Antw:Javascript Editor einbinden
Beitrag von: franky08 am 10 Juli 2014, 21:52:37
Wie kann ich folgenden Fehler beheben:
Zitat[Error] ReferenceError: Can't find variable: $
   (anonyme Funktion) (fhem_codemirror.js, line 78)
   loadScript (fhemweb.js, line 309)

Ich denke das desshalb die Suche auf den aktuellen Screen beschränkt bleibt.

VG
Frank
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 11 Juli 2014, 07:08:06
Dazu kann ich nichts sagen. Da müsste man sich ggf. an den codemirror-Support wenden.
Titel: Antw:Javascript Editor einbinden
Beitrag von: franky08 am 11 Juli 2014, 09:24:03
Die beschriebene Codezeile ist folgende:
loadScript("pgm2/jquery.min.js", function(){
  $(document).ready(function(){


Die beschriebene Zeile stammt aus dem zusätzlichen Code, der hier im Thread beschrieben wurde (eingefügt in die orginale fhem_codemirror.js)
Titel: Antw:Javascript Editor einbinden
Beitrag von: frank am 11 Juli 2014, 09:38:26
was ist denn mit der offenen klammer nach ready.
Titel: Antw:Javascript Editor einbinden
Beitrag von: franky08 am 11 Juli 2014, 09:47:59
Hallo frank, die offene Klammer kommt vom copy&paste. Der komplette Codeauschnitt siehe oben im Post im Screenshot.
Wo finde ich die Erweiterung, die in die fhem_codemirror.js muss? Vielleicht ist da beim copy was falsch gelaufen. Habe die hier aus dem Thread genommen.
Antwort 327 von hauwech:

ZitatHallo Marvin,
auch auf die Gefahr hin, daß ich mich als Dummy outen muß...
Ich habe
- die drei files nach /opt/fhem/www/codemirror kopiert
- owner/group auf fhem/dialout gesetzt (wie die anderen *.js files in diesem Verzeichnis)
- die Rechte auf 644 gesetzt (wie die anderen *.js files in diesem Verzeichnis)

- die fhem_codemirror.js erweitert:
Code: [Auswählen]
var cm_loaded = 0, cm_editor;

loadScript("pgm2/jquery.min.js", function(){
  $(document).ready(function(){
    var els = document.getElementsByTagName("textarea");
    if(els.length == 0)
      return;
...
   
VG
Frank
Titel: Antw:Javascript Editor einbinden
Beitrag von: franky08 am 11 Juli 2014, 11:29:33
OK, wenn der Cursor im Editor Fenster steht, geht die Suche über den gesamten Code. Trotzdem hab ich auf der Console die oben beschriebene Meldung.
[Error] ReferenceError: Can't find variable: $
   (anonyme Funktion) (fhem_codemirror.js, line 78)
   loadScript (fhemweb.js, line 309)


VG
Frank
Titel: Antw:Javascript Editor einbinden
Beitrag von: frank am 11 Juli 2014, 11:44:15
hallo frank,

ich glaube du hast da zu viel copy und paste gemacht. du hast jetzt bestimmt die normale js plus die veränderte js in einer datei. also fast alles doppelt.

gruss frank
Titel: Antw:Javascript Editor einbinden
Beitrag von: franky08 am 11 Juli 2014, 11:57:18
Eigentlich nicht, ich habe, wie beschrieben, die fhem_codemirror.js nur mit dem hier angegebenen Code erweitert.
Sehe am WE nochmal danach, bin dann erstmal arbeiten.

VG
Frank
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 11 Juli 2014, 17:04:22
ZitatGute Idee, funktioniert allerdings nicht. Ich nehme an, weil sie auf diese Weise nicht als Plugin des Codemirror-Editors erkannt werden.
Nein, es liegt daran, dass die Skripte geladen werden, bevor fhem_codemirror.js mit dem Laden der benoetigten jquery.min.js und codemirror.js fertig ist.

Mit dem Attribut geht es trotzdem:
attr WEB JavaScripts pgm2/jquery.min.js codemirror/codemirror.js codemirror/search.js codemirror/fhem_codemirror.js
auch wenn das etwas langsamer ist, wegen doppeltes Parsen von jquery & codemirror.
Titel: Antw:Javascript Editor einbinden
Beitrag von: P.A.Trick am 11 Juli 2014, 18:17:15
Also ich bin dafür auch zu blöd. Ich wollte gleich den Wiki Artikel dazu schreiben, ich bekomme es aber nicht hin.
Was mache ich falsch Rudi?

Wer im Codemirror Editor auch die eingebaute Suche verwenden will, muss zusätzlich die folgenden drei Dateien aus dem GIT [https://github.com/marijnh/CodeMirror/tree/master/addon/search] Repository herunterladen
und im Ordner ././fhem/www/codemirror kopieren. Danach noch die beiden Dialog Dateien unter [https://github.com/marijnh/CodeMirror/tree/master/addon/dialog] herunterladen und in den Codemirror Ordner kopieren.
Eventuell müssen noch die Rechte (unter Linux mit dem Befehl <code>chmod 755 *.js</code> im Codemirror Verzeichnis) angepasst werden.
Nun müssen die zusätzlichen Dateien noch der Webinstanz WEB bekannt gemacht werden. Dies geschieht mit dem folgenden Aufruf:

<code>attr WEB JavaScripts pgm2/jquery.min.js codemirror/codemirror.js codemirror/search.js codemirror/dialog.js codemirror/fhem_codemirror.js</code>

Weitere Informationen sind hier [http://codemirror.net/demo/search.html] zu finden.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 11 Juli 2014, 22:09:17
ZitatIch wollte gleich den Wiki Artikel dazu schreiben, ich bekomme es aber nicht hin.
Was mache ich falsch Rudi?

Weiss nicht, ich bin kein Wiki-Experte :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: P.A.Trick am 11 Juli 2014, 22:12:18
Zitat von: rudolfkoenig am 11 Juli 2014, 22:09:17
Weiss nicht, ich bin kein Wiki-Experte :)

Nein ich meine den Inhalt der nicht funktioniert! :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: franky08 am 11 Juli 2014, 22:30:49
Tröste dich, bei mir funktioniert es auch nur mit attr WEB JavaScrips codemirror/fhem_codemirror, wenn ich die anderen Scrips mittels attr einbinde, geht gar nicht´s mehr! So bekomme ich auf der Console nur den folgenden Fehler, obwohl alles funktioniert.
An der Stelle $(document): Siehe Screenshot



loadScript("pgm2/jquery.min.js", function(){
  $(document).ready(function(){
    var els = document.getElementsByTagName("textarea");
    if(els.length == 0)
      return;
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 11 Juli 2014, 22:32:42
Und du bist der Meinung, dass ich aus "ich bekomme es aber nicht hin" die genaue Fehlerursache feststellen kann?

dialog.js kenne ich nicht, und ich habe nur die Suchfunktion mit fhem.cfg.demo getestet, nachdem ich das Attribut wie vorher beschrieben gesetzt habe. Mit Firefox und Chrome. Steht was bei dir in der JavaScript-Console?
Titel: Antw:Javascript Editor einbinden
Beitrag von: FHEMAN am 23 Februar 2015, 22:41:01
Der Editor ist sehr praktisch. Eine Frage dazu:
Kann man alle Themes (http://codemirror.net/demo/theme.html (http://codemirror.net/demo/theme.html)) hinterlegen?
Leider hat es bei mir mit 3024-day nicht funktioniert:

attr WEB codemirrorParam { "theme":"3024-day", "lineNumbers":true }
Ich hätte gerne den hellen Style..
Habe die Antwort hier gefunden: http://forum.fhem.de/index.php/topic,20444.msg169104/topicseen.html#msg169104
Titel: Antw:Javascript Editor einbinden
Beitrag von: frank am 26 Februar 2015, 11:42:33
beim editieren von attributen gibt es probleme mit codemirror.

Zitatwenn ich das im widget angezeigte attribut nicht ändern möchte und mit cancel abbreche, kann ich kein weiteres attribut editieren, da die attribute nicht mehr im widget angezeigt werden. das widget öffnet sich, aber bleibt vollkommen leer. erst nach einem refresh der browserseite kann wieder editiert werden.

eventuell hat ein codemirror-experte eine idee. hier geht es zum problem-thread: http://forum.fhem.de/index.php/topic,34011.msg266848.html#msg266848 (http://forum.fhem.de/index.php/topic,34011.msg266848.html#msg266848)

gruss frank
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 24 Oktober 2015, 16:31:33
Für die Notepad++ User, habe die extraKeys bei mir noch erweitert damit das Einrücken, Auskommentieren und hoch/runterscrollen im integrierten Editor Notepad++ like ist.

Dazu die extraKeys in der fhem_codemirror.js anpassen:

...
  var attr = {
    extraKeys:{
        'Tab': function(cm) {
            if (cm.somethingSelected()) {
                var sel = cm.getSelection("\n");
                // Indent only if there are multiple lines selected, or if the selection spans a full line
                if (sel.length > 0 && (sel.indexOf("\n") > -1 || sel.length === cm.getLine(cm.getCursor().line).length)) {
                    cm.indentSelection("add");
                    return;
                }
            }
            cm.getOption("indentWithTabs") ? cm.execCommand("insertTab") : cm.execCommand("insertSoftTab");
        },
        'Shift-Tab': function(cm) {
            cm.indentSelection("subtract");
        },
        'Ctrl-Q': function(cm) {   // Needs comment.js
            cm.toggleComment({ indent: false, lineComment: "#" });
        },
        'Ctrl-Up': function(cm) {
            var info = cm.getScrollInfo();
            if (!cm.somethingSelected()) {
                var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, "local");
                if (cm.getCursor().line >= visibleBottomLine)
                    cm.execCommand("goLineUp");
            }
            cm.scrollTo(null, info.top - cm.defaultTextHeight());
        },
        'Ctrl-Down': function(cm) {
            var info = cm.getScrollInfo();
            if (!cm.somethingSelected()) {
                var visibleTopLine = cm.lineAtHeight(info.top, "local")+1;
                if (cm.getCursor().line <= visibleTopLine)
                    cm.execCommand("goLineDown");
            }
            cm.scrollTo(null, info.top + cm.defaultTextHeight());
        }
    }
  };
...


Die Einrücktiefe, und ob mit Leerzeichen oder Tabulator eingerückt werden soll kann über
Zitatattr WEB codemirrorParam { "indentUnit":4, "indentWithTabs":false }
gesteuert werden.

Um mit STRG+Q Zeilen auszukommentieren oder die Kommentare zu entfernen muss noch die comment.js (https://raw.githubusercontent.com/codemirror/CodeMirror/master/addon/comment/comment.js) eingebunden werden und die codemirror.js (https://raw.githubusercontent.com/codemirror/CodeMirror/master/lib/codemirror.js) sowie codemirror.css (https://raw.githubusercontent.com/codemirror/CodeMirror/master/lib/codemirror.css) aktualisiert werden.
_______________________

BTW: Hat einer einen Tipp wie ich die extraKeys am besten in ein separates File auslagere, damit das nicht bei einem update überschrieben wird?


Gruß
  Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 25 Oktober 2015, 11:46:14
Ich vermute, dafuer gibt es kein Hook.
Hilft nur fhem_codemirror.js aus update auszuschliessen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 25 Oktober 2015, 14:49:49
Rudi, macht es Sinn die standard .js files von codemirror als optimierte (minified) Version über fhem bereitzustellen?

Hab sie mal durch den google closure-compiler gejagt, und dabei pro file etwas über 50% einsparen können.
Bei allen .js Files aus meinem codemirror/ macht das immerhin 232kB zu 576kB (auch wenn natürlich nicht alle geladen werden)
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 25 Oktober 2015, 14:57:37
Das musst du betateilchen Fragen, laut MAINTAINER ist er zustaendig :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 25 Oktober 2015, 18:00:31
Habe codemirror und die module im SVN (https://sourceforge.net/p/fhem/code/9668/) auf Verison 5.8 aktualisiert.
desweiteren ist nun search & replace standardmäßig aktiviert, sowie sind die extraKeys aus obigem Post auch gleich mit drin.

Um codemirror mit search & replace, blackboard-theme  usw. zu aktivieren reicht es jetzt
attr fhemweb JavaScripts codemirror/fhem_codemirror.js
zu setzen.

Das sollte nun auch ein paar Probleme lösen, wie z.B. ein schwarzes Editorfenster beim zweiten Öffnen eines Attributes usw.

Hier ein Auszug aus CHANGED:
Zitat- feature: codemirror modules now loaded by default: search.js, comment.js
                 dialog.js, autorefresh.js, searchcursor.js, dialog.css
             codemirror search & replace is now activated by default.
                 to use this feature now you must only load in fhemweb
                 attribute 'JavaScripts' the codemirror/fhem_codemirror.js file
             new extraKeys for 'TAB', 'Shift+Tab', 'STRG+Q', 'STRG+UP',
                 and 'STRG+DOWN' are added.
             codemirror default parameters are now:
                 indentUnit:4, indentWithTabs:false, autoCloseBrackets:false,
                 matchBrackets:true, autofocus:true, theme:"blackboard",
                 lineNumbers:true, autoRefresh:true
               this can be overwritten with fhemweb attribute 'codemirrorParam'
  - updated: codemirror version to 5.8
             the default codemirror javascript files are now minified

Gruß
  Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: igami am 27 Oktober 2015, 12:46:40
Hi,

ich nutze schon länger den Editor, was mir noch fehlt ist die Möglichkeit des Text Folding. Könnte man das noch einbauen?

Grüße
igami
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 27 Oktober 2015, 14:30:35
Hi,

eigtl. sollte code folding schon möglich sein einzubauen, hatte das vor kurzem auch mal probiert, allerdings hat es bei meinem Versuch einfach ohne irgend einen Fehler zu werfen nicht funktioniert :-\

Wollte da dann nicht zuviel Zeit investieren und hab es erstmal sein gelassen.

Hier findet sich ein Demo mit den zusätzlich zu ladenen codemirror-modulen https://codemirror.net/demo/folding.html (https://codemirror.net/demo/folding.html) wenn man mal Lust und Zeit zum basteln/ausprobieren hat :)

Gruß
  Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 27 Oktober 2015, 20:00:50
Habe das Wiki mit den Neuerungen ergänzt: http://www.fhemwiki.de/wiki/Konfiguration#Syntaxhervorhebung (http://www.fhemwiki.de/wiki/Konfiguration#Syntaxhervorhebung)
Titel: Antw:Javascript Editor einbinden
Beitrag von: P.A.Trick am 27 Oktober 2015, 20:41:21
Cooll Danke!
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 27 Oktober 2015, 21:27:12
Zitat von: igami am 27 Oktober 2015, 12:46:40
Text Folding. Könnte man das noch einbauen?

Bitte nicht noch mehr Zeugs einbauen, das ein Großteil der Nutzer nicht braucht.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 27 Oktober 2015, 21:46:43
@Betateilchen,
Den Fall habe ich schon bedacht, bin auch noch nicht mit dem fhem_codemirror Umbau fertig :)

Kommt noch wenn Funktionen in codemirrorParam deaktiviert wurden, z.B. {"autoCloseBrackets":false,"comment":false} gesetzt ist, die entsprechenden Module (hier closebrackets.js und comment.js) nicht geladen werden.

Würde das dann entsprechend für Folding auch so implementieren, falls jemand einen funktionierenden Patch bereitstellt oder ich in der Winterzeit mal Lust und Laune habe das selber auszutüfteln (Allerdings sind hier erst ein paar andere Projekte geplant ;)).

Gruß
  Claudiu

PS, oder entsprechend natürlich das Modul nur geladen wird, wenn der user es zuvor explizit in codemirrorParam aktiviert hat ;)
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 28 Oktober 2015, 00:52:24
Die zusätzlich geladenen Codemirror-Module lassen sich jetzt über das codemirrorParam Attribut steuern.

default's:

{
    "matchBrackets":true,
    "autoRefresh":true,
    "search":true,
    "comment":true,
    "autocomplete":true,
    "autoCloseBrackets":false
}


Desweiteren sollte die Geschwindigkeit bis codemirror geladen ist etwas erhöht worden sein.
Etwas flexibler ist das ganze jetzt auch geworden, werde die Tage mal das Wiki hierzu ergänzen.

Gruß
  Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 28 Oktober 2015, 11:13:05
Im Wiki kann nun nachgelesen werden durch welchen Paramter welches Modul geladen wird, oder welcher Parameter aktiviert werden muss um ein spezielles Modul zu laden / Funktion zu aktivieren.
http://www.fhemwiki.de/wiki/Konfiguration#Syntaxhervorhebung (http://www.fhemwiki.de/wiki/Konfiguration#Syntaxhervorhebung)
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 30 Oktober 2015, 13:11:34
Die neuen default-Einstellungen für codemirror sind zum Kotzen Brechen...

Für mich gab es keinen Grund (ausser persönlicher Willkür) an den bestehenden und bewährten Vorgaben etwas ändern zu müssen.
Stattdessen muss ich nun auf allen meinen fhem-Installationen die Parameter neu definieren.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 30 Oktober 2015, 13:19:30
Vorschläge sind willkommen, meckern alleine hilft nicht :)

Das gröbste was sich geändert hat ist das standardmäßige laden des suchen (und ersetzen) features,
allerdings weiss ich dass genau dieses feature von sehr vielen Anfänger im integrierten vermisst wird und es hier nicht wirklich zumutbar ist wie bisher irgendwelche Infos aus dem Thread zu saugen um selbstständig js Module einzubauen und zu laden.

Allerdings währe es einem Anfänger zumutbar das feature über das setzen eines Parameters zu aktivieren (wobei ich denke dass der großteil der Leute dieses feature haben wollen).

Gruß
  Claudiu

EDIT: Ich habe die default-Einstellungen i.M. so gesetzt wie ich es in meinen Systemen verwende (bis auf autocomplete welches ich nicht verwende, allerdings historisch schon immer da war).

Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 30 Oktober 2015, 13:21:55
Es geht nicht um das, was Du neu eingebaut hast, sondern um das, was Du geändert hast. Beispielsweise das Verhalten von Klammern und das automatische Einrücken. Ich brauche inzwischen beim Bearbeiten meiner Dateien mehr Zeit dafür, das sinnlose Verschieben von Zeilen wieder zu korrigieren als für meine vorgenommenen Funktionsänderungen selbst.

Das Argument mit den Anfängern lasse ich grundsätzlich nicht gelten. Denn Anfänger werden nicht von Anfang an mit dem codemirror arbeiten.
Titel: Antw:Javascript Editor einbinden
Beitrag von: krikan am 30 Oktober 2015, 13:22:48
Hallo Claudiu!
Ich würde mir wünschen, dass zumindest "autoCloseBrackets" -wie bisher(?)- per Standard eingeschaltet ist. Fehlende/Falsche Klammern sind doch eines der üblichen Probleme.
Oder gibt es einen Grund, das nun nicht mehr einzuschalten?
Gruß, Christian
Titel: Antw:Javascript Editor einbinden
Beitrag von: krikan am 30 Oktober 2015, 13:25:31
Zitat von: betateilchen am 30 Oktober 2015, 13:21:55
Das Argument mit den Anfängern lasse ich grundsätzlich nicht gelten. Denn Anfänger werden nicht von Anfang an mit dem codemirror arbeiten.
Was spricht dagegen codemirror per default zu aktivieren? Denke der Anfänger nutzt es nicht, da er es nicht kennt...
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 30 Oktober 2015, 13:28:18
Zitat von: krikan am 30 Oktober 2015, 13:25:31
Was spricht dagegen codemirror per default zu aktivieren? Denke der Anfänger nutzt es nicht, da er es nicht kennt...

Die Frage muss Rudi beantworten. Er hatte seinerzeit bei der Einführung gewichtige Gründe dagegen, deshalb wurde der externe Editor nur als Option "bewilligt". Was genau damals seine Argumente waren, weiß ich nicht mehr, aber er hatte irgendwie recht, das weiß ich noch.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 30 Oktober 2015, 13:35:57
@Krikan
ja da habe ich länger darüber nachgedacht, allerdings war ich der Meinung dass die ganzen Klammer-Probleme welche in dutzenden Posts zu finden sind, oft genau auf dieses Feature zurückzuführen sind und habe es genau deswegen deaktiviert.

Da bisher der Editor selbstständig Klammern geschlossen hat, wurde das vom User einfach nicht mehr wirklich aufmerksam beachtet.

Das sieht man vor allem auch da viele Klammer-Probleme meist erst bei mehrere Klammern wie "foo(baar("baz")" auftreten, in welchen der User foo() vorgegeben bekommt, die letzte Klammer selbst wieder gelöscht hat, allerdings nie am Ende wieder geschlossen hat.

Werde das nun allerdings wieder aktivieren, da dies anscheinend nur meine Ansicht war.

@Betateilchen
autoCloseBrackets aktiviere ich wie oben geschrieben wieder per default,

Bzgl. automatischen Einrückens wurde allerdings nichts geändert? Was genau meinst du damit?
Das einzige was beim Einrücken anders ist als bisher ist dass beim verwenden der TAB-Taste nicht mehr mit einem Tabulator eingerückt wird, sondern mit einer definierten Anzahl Leerzeichen, was denke ich auf jedenfall nicht verkehrt ist oder?

Doch, ich kenne so einige Anfänger Installationen, sogut wie jeder hat codemirror über das Wiki in den ersten fhem-Tagen entdeckt und genutzt. Und alle fanden es wie du sagen würdest zum 'Brechen' dass im Editor nicht gesucht werden konnte ;)

Gruß
  Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 30 Oktober 2015, 13:42:44
Zitat von: rapster am 30 Oktober 2015, 13:35:57
@Betateilchen
autoCloseBrackets aktiviere ich wie oben geschrieben wieder per default,

Bei jeder Änderung solltest Du im Hinterkopf behalten, dass die ursprünglichen Defaultwerte das Ergebnis eines langen Diskussionsprozesses mehrere Anwender während der Integration von codemirror in FHEMWEB waren und nicht eine einsame Entscheidung irgendeines Entwicklers.

Und gerade die automatische Klammersetzung war damals eines der HAUPTARGUMENTE für den codemirror.

Zitat von: rapster am 30 Oktober 2015, 13:35:57
Das einzige was beim Einrücken anders ist als bisher ist dass beim verwenden der TAB-Taste nicht mehr mit einem Tabulator eingerückt wird, sondern mit einer definierten Anzahl Leerzeichen, was denke ich auf jedenfall nicht verkehrt ist oder?

Doch, das ist völliger Schwachsinn und wieder so eine einsame Entscheidung von Dir alleine. Wenn ich die TAB Taste drücke, will ich auch ein TAB haben. Und was momentan das größte Problem im Zusammenhang mit den Klammern ist: Bei jedem Klammersetzen verändert sich das Einrücken, sodaß die Klammer nie da erscheint, wo ich sie haben möchte.
Titel: Antw:Javascript Editor einbinden
Beitrag von: krikan am 30 Oktober 2015, 13:50:05
ZitatWerde das nun allerdings wieder aktivieren, da dies anscheinend nur meine Ansicht war.
Und das andere nur meine  ;) Du entscheidest, da Du weiterentwickelt hast. Trotzdem danke.
Suchen finde ich auch gut.
Persönlich habe ich lieber alle Möglichkeiten per default und schalte ab, was ich nicht brauche. Aber ich bin kein EDVler mit Support(problem)erfahrung...
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 30 Oktober 2015, 13:53:34
Als einer der "Paten" der grundsätzlichen codemirror-Einbindung habe ich naturgemäß eine etwas andere Sichtweise.

Zitat von: krikan am 30 Oktober 2015, 13:50:05
Suchen finde ich auch gut.

Gegen die Suchfunktion an sich habe ich auch nie was gesagt.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 30 Oktober 2015, 14:04:32
Das Ändern des TAB-Verhaltens in fhem war natürlich meine einsame Entscheidung, wem seine sonst? :)
Allerdings entspring das ganze nicht meiner einsamen Idee dass dieses Verhalten besser ist. Sehr viele OpenSource-Projekte, Entwicklungsumgebungen setzen entweder das Einrücken mit spaces statt tab vorraus, haben dies als Standardeinstellung, oder empfehlen es zumindest als best-practice.

Da ich allerdings die Meinung des "codemirror Paten", trotz:
Zitat von: betateilchen am 25 Oktober 2015, 16:53:51Für die in www/codemirror enthaltenen, von anderen Forummitgliedern in der Entwicklungsphase erstellten .js Dateien habe ich nichts zu tun. Meine Aufgabe war damals bei der Einbindung des codemirror lediglich, dafür zu sorgen, dass die Dateien an der richtigen Stelle im SVN auftauchen und dazu auch ein Maintainer angegeben ist. Insofern ist meine "Verantwortung" eher organisatorischer Natur und nicht inhaltlich. Ich hasse Javascript.
beherzigen möchte, habe ich das Standardverhalten wieder geändert damit die TAB-Taste auch Tabs schreibt und keine blöden Leerzeichen ;)
____

Das Problem mit dem falschen automatischen Einrückens konnte ich bei { nachvollziehen, ist mir bisher garnicht aufgefallen und es ist auch so definitiv nicht gewollt.
Ich denke das ist ein Bug in der verwendeten Codemirror Version, gehe dem ganzen mal nach und versuche es zu fixen.

Gruß
  Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 30 Oktober 2015, 14:07:27
Zitat von: krikan am 30 Oktober 2015, 13:50:05
Und das andere nur meine  ;) Du entscheidest, da Du weiterentwickelt hast. Trotzdem danke.
Da es bisher der Standard war hab ich damit zumindest keine schmerzen es wieder zu aktivieren :)

Zitat von: krikan am 30 Oktober 2015, 13:50:05
Persönlich habe ich lieber alle Möglichkeiten per default und schalte ab, was ich nicht brauche. Aber ich bin kein EDVler mit Support(problem)erfahrung...
Ja das fände ich auch gut, denke auch dass es gut währe wenn codemirror standardmäßig geladen wird, vor allem für die ersten Berührungen mit fhem...
Allerdings wurde hier ja nicht nur einmal gerufen "Nicht noch mehr Funktionen standardmäßig laden"...

Gruß
  Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: betateilchen am 30 Oktober 2015, 14:16:46
Suchst Du Streit? Dann lass uns vor die Tür gehen...
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 30 Oktober 2015, 14:30:26
Zitat von: betateilchen am 30 Oktober 2015, 13:42:44Und was momentan das größte Problem im Zusammenhang mit den Klammern ist: Bei jedem Klammersetzen verändert sich das Einrücken, sodaß die Klammer nie da erscheint, wo ich sie haben möchte.

Da bisher eine relativ alte Version von codemirror in Verwendung war, hat sich hier wohl das Standardverhalten geändert.

Habe das ganze nun glaube ich behoben, indem standardmäßig der Paramter "smartIndent:false" gesetzt wird.

Bitte mal ausprobieren und bescheid geben ob das damit behoben ist.

Zitat von: betateilchen am 30 Oktober 2015, 14:16:46
Suchst Du Streit? Dann lass uns vor die Tür gehen...
Sei doch nicht gleich so Aggro, ist doch alles gut, oder wo drückt's?
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 04 November 2015, 14:48:37
Hab eine neue Version eingecheckt,
bei der standardmäßig bei jedem Tastendruck die Befehlsvervollständigung durchgeführt wird (nicht mehr nur bei STRG+SPACE, ist über codemirrorParam deaktivierbar)
und IF/DOIF/DOELSE/DOELSEIF mit dabei ist.

Leider verhält sich codemirror an manchen Stellen (z.B. in bestimmten Situationen beim Vervollständigung von readings) nicht wie erwartet und beachtet den Parameter "completeSingle:false" nicht. (Werde mir das noch bei Gelegenheit anschauen)

Falls hierdurch Probleme auftreten oder euch noch etwas auffällt bescheid geben.

Gruß
  Claudiu

EDIT: habe by default "autocompleteAlways" doch wieder deaktiviert, leider sind mir grad beim editieren von multiline-Attributen ein paar unschöne Nebeneffekte begegnet.
Werde das noch bei Gelegenheit etwas verfeinern.
Bis dahin kann es mit "attr web codemirrorParam { "autocompleteAlways":true } zum testen aktiviert werden.
Titel: Antw:Javascript Editor einbinden
Beitrag von: RoBra81 am 13 November 2015, 07:32:24
Guten Morgen,

ich habe gestern seit einer Weile mal wieder ein Update gemacht und habe mit Begeisterung das Autocomplete-Feature (und auch die das Suchen und Ersetzen) entdeckt. Meine Begeisterung hat sich noch einmal gesteigert, als ich beim Ausprobieren feststelle, dass das Autocomplete auch für eigene Geräte (und nicht wie erwartet nur für Schlüsselwörter) funktioniert. Dann gab es jedoch einen kleinen Dämpfer: ich nutze in meinen Device-Namen viele Punkte (z.B. OG.sp.KL.Klima.DI.Heizkoerperventil) - gebe ich nun 'OG' ein und drücke STRG+Leertaste, dann listet er mir alle Geräte im 1. Obergeschoss auf ;D. Gebe ich jedoch 'OG.ku' ein um alle Geräte in der Küche im 1. OG zu erhalten, gibt es gar kein Ergebnis (vermutlich, da ich kein Gerät habe, das mit 'ku' beginnt) :( - kann man da etwas machen? :-[

Vielen Dank für das tolle Feature!

Ronny
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 13 November 2015, 10:06:13
Da müssen wir mal die Regular Expressions anpassen. Soweit ich das jetzt in meinen ur-alten Code sehe, werden nur Buachstanben und '-' im Gerätenamen erwartet.
Titel: Antw:Javascript Editor einbinden
Beitrag von: RoBra81 am 13 November 2015, 10:23:34
Das wäre super  :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 13 April 2016, 15:59:09
Hi,
Habe gesehen dass der Thread schon etwas älter ist, aber:
auf der Suche nach der gleichen Problematik wollte ich mal nachfragen, ob sich hier irgendwas geändert hat, oder ob es noch kein Update dazu gibt..

Habe nämlich ebenfalls Punkte, die AutoVervollständigung arbeitet aber nur bis zum ersten Punkt mit einer langen Liste ;)

HMW01<STRG+LEER> = Lange Liste aller HMW01.*-Geräte
HMW01.I01<STRG+LEER> = eigentlich will ich nur den Rest ergänzt haben, aber es wird nicht vervollständigt..

Grüße
Stephan
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 13 April 2016, 16:02:15
@rapster: es scheint ein problem zu geben wenn man codemirror und das neue perlSynatxCheck feature gemeinsam verwendet.

scheinbar wird unter bestimmten bedingungen nicht mehr der text aus codemirror verwendet sondern der im dahinterliegende text feld. ich tippe auf ein timing problem oder ähnliches beim überschreiben der event handler.

vielleicht magst du mal danach schauen?

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 13 April 2016, 22:07:23
Ich habe mal ne Sonderbehandlung für "." im Namen eingebaut. Bitte mal das angehängte fhem.js in www/codemirror speichern und ausprobieren. Wenn das gut funktioniert, müsste mal jemand das ins SVN einchecken.
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 14 April 2016, 01:02:13
Hi,
sieht für mich erstmal gut aus soweit. Vervollständigung funktioniert anscheinend wie gewünscht.
Danke für den schnellen Fix!

viele Grüße
Stephan

Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 14 April 2016, 07:57:26
Ah, stop, ich muss meine Zustimmung revidieren:

HMW01<STRG+LEER> = Lange Liste aller HMW01.*-Geräte - ist gleich geblieben
HMW01.<STRG+LEER> = Liste aller HMW01.-Geräte, funktioniert jetzt
HMW01.I<STRG+LEER> = vervollständigt mir auf  "HMW01.IF" ... Allerdings würde ich nach HMW01.I01_Taster_Tuere_Flur suchen ..

Auch der Teil nach dem Punkt müsste als zugehörig betrachtet werden...

Sorry, war ich heute Nacht nicht so fit :)

Stephan
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 17 April 2016, 19:06:23
Hier nochmal ein update. Bitte mal testen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 17 April 2016, 21:20:41
Jupp, besser :-)
Danke für den schnellen fix 8)

Grüße
Stephan
Titel: Antw:Javascript Editor einbinden
Beitrag von: papa am 17 April 2016, 21:25:07
Könnte das dann jemand mal einchecken ?
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 18 April 2016, 08:31:51
Laut MAINTAINER.txt ist rapster dafuer zustaendig, also nicht irgendjemand.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 09:16:21
Moin,

ist drin :-)

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: krikan am 18 April 2016, 09:24:22
Zitat von: justme1968 am 13 April 2016, 16:02:15
.... es scheint ein problem zu geben wenn man codemirror und das neue perlSynatxCheck feature gemeinsam verwendet.

scheinbar wird unter bestimmten bedingungen nicht mehr der text aus codemirror verwendet sondern der im dahinterliegende text feld. ich tippe auf ein timing problem oder ähnliches beim überschreiben der event handler.
...
Bei mir ergibt sich leider auch ein Problem im Zusammenspiel codemirror und perlSyntaxCheck. Wurde hier https://forum.fhem.de/index.php/topic,52319.msg440652.html#msg440652 detaillierter von einem andern Nutzer beschrieben. Ich kann derzeit nur codemirror oder perlSyntaxCheck nutzen. Falls ich über den verlinkten Thread hinaus Problembeschreibungen liefern soll oder irgendetwas ausprobieren/testen soll/darf, bitte melden.

Gruß, Christian
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 09:54:56
Hi Christian,

bei mir ist perlSyntaxCheck ebenfalls aktiviert, allerdings treten bei mir keine Probleme bzgl. Codemirror auf.

Was hast du denn unter FHEMWEB codemirrorParam stehen?
Welchen Browser verwendest du?
Welche Probleme treten genau auf?

Wäre gut wenn ich das ganze irgendwie Nachstellen könnte :-)

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 18 April 2016, 10:16:05
codemirrorParam: { "lineWrapping":true }
Browser Firefox 45.0.1 und Chrome Version 49.0.2623.110 unknown (64-bit)

Probleme:
https://forum.fhem.de/index.php/topic,52319.msg440819.html#msg440819

Wenn du noch mehr Infos brauchst, sag Bescheid.
Grüße
Stephan

Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 10:25:44
Hallo Stephan,

wie sieht dein FHEMWEB Attribut "JavaScripts" aus?

Es sollte zumindest so aussehen:
attr TYPE=FHEMWEB JavaScripts codemirror/fhem_codemirror.js
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 18 April 2016, 11:08:03
Hi, screenshot anbei.
ich denke das ist korrekt.

Mit deinem Code kann ich nicht viel anfangen, ich verstehe zwar, was der Befehl machen würde (allen Devices vom Typ FHEMWEB das attribut zuordnen), also vermute ich, dass meine Definition korrekt ist, aber wie wäre denn der Weg (ausser einen Screenshot zu posten), dass ich selbst prüfen kann, ob das bei mir so ist (und das nicht anderen (=dir) überlassen muss)?

Abweichend davon ist codemirror bei mir auch nur einem FHEMWEB zugeordnet, nämlich WEB. Die anderen brauchen das nicht.

Viele Grüße
Stephan
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 11:39:06
Um selbst zu prüfen ob eine Konfiguration korrekt ist, hilft am besten die Commandref, das Wiki, oder das Forum.
In diesem Fall findet man die gesuchten Infos unter diesen beiden Links: http://www.fhemwiki.de/wiki/Konfiguration#Integrierter_Editor http://fhem.de/commandref_DE.html#FHEMWEB

Allerdings schaut bei dir alles soweit OK aus, jetzt stellt sich natürlich die Frage warum bei dir (und manch anderem) Probleme mit Codemirror auftreten...

Kannst du mir ein Beispiel Device Posten bei dem es zu Problemen kommt, da du sagtest es tritt nicht immer auf?

Hierzu ist ein "list" im Codeblock besser geeignet als ein Screenshot, also in der fhem-Befehlszeile "list devicename" eingeben.

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 18 April 2016, 12:00:17
Hi, ich glaube du hast mich falsch verstanden,
es ging nicht darum zu prüfen, ob die config allgemein korrekt ist, sondern ob mein Systemzustand mit dem von dir abgefragten Zustand ( attr ... ) übereinstimmt. Im DEF-Editor sehe ich ja immer nur einen Teil ( das TYPE=) zum beispiel ja nicht.


Hier das list eines Devices, bei dem das problem auftrat (es trat bei ALLEN Devices dieses Typs (Homematic Wired) auf:


Internals:
   DEF        0000D125_19
   IODev
   MODEL      HMW_IO_12_Sw7_DR
   NAME       HMW03.O07_Leuchte_Dusche_Decke
   NR         258
   PeerList
   STATE      off
   TYPE       HM485
   chanNo     19
   device     HMW03.HMW_IO_12_Sw7_DR_LEQ0233076
   Readings:
     2016-04-17 21:32:46   R-logging       on
     2016-04-18 10:43:37   state           off
     2016-04-18 10:43:37   working         off
   Devhash:
     DEF        0000D125
     FW_VERSION 3.06
     FailedConfigReads 0
     IODev      MyHMLAN
     MODEL      HMW_IO_12_Sw7_DR
     NAME       HMW03.HMW_IO_12_Sw7_DR_LEQ0233076
     NR         239
     STATE      ACK
     TYPE       HM485
     channel_01 HMW03.I01
     channel_02 HMW03.I02
     channel_03 HMW03.I03
     channel_04 HMW03.I04
     channel_05 HMW03.I05
     channel_06 HMW03.I06
     channel_07 HMW03.I07
     channel_08 HMW03.I08
     channel_09 HMW03.I09
     channel_10 HMW03.I10
     channel_11 HMW03.I11
     channel_12 HMW03.I12
     channel_13 HMW03.O01_Leuchte_Esszimmer_Decke
     channel_14 HMW03.O02_Leuchte_Buero_Decke
     channel_15 HMW03.O03_Leuchte_Dachboden_Decke
     channel_16 HMW03.O04_Leuchte_Wohnzimmer_Decke
     channel_17 HMW03.O05_Leuchte_Wegelicht_Decke
     channel_18 HMW03.O06_Leuchte_Kueche_Decke
     channel_19 HMW03.O07_Leuchte_Dusche_Decke
     Readings:
       2016-04-17 21:32:46   R-central_address 00000001
       2016-04-17 21:32:46   R-logging_time  2.00
       2016-04-18 10:54:01   configStatus    PENDING
       2016-04-18 11:47:30   state           ACK
     Cache:
       Linkparams:
         Actuator:
           address_start 857
           address_step 6
           channel_param channel
           channels   01 02 03 04 05 06 07 08 09 10 11 12
           count      27
           peer_param actuator
           type       link
           Parameter:
             Actuator:
               hidden     1
               operations none
               Logical:
                 type       address
               physical:
                 HASH(0x26ffe88)
                 HASH(0x26fff60)
             Channel:
               hidden     1
               operations none
               Logical:
                 default    255
                 max        255
                 min        0
                 type       integer
               Physical:
                 interface  eeprom
                 size       1
                 type       integer
                 Address:
                   index      0
         Sensor:
           address_start 45
           address_step 28
           channel_param channel
           channels   13 14 15 16 17 18 19
           count      29
           peer_param sensor
           type       link
           Parameter:
             Channel:
               hidden     1
               operations none
               Logical:
                 default    255
                 max        255
                 min        0
                 type       integer
               Physical:
                 interface  eeprom
                 size       1
                 type       integer
                 Address:
                   index      5
             Long_action_type:
               Logical:
                 type       option
                 option:
                   HASH(0x27075b0)
                   HASH(0x27075f8)
               Physical:
                 interface  eeprom
                 size       0.1
                 type       integer
                 Address:
                   index      17
             Long_jt_off:
               Logical:
                 type       option
                 option:
                   HASH(0x2707850)
                   HASH(0x27078b0)
                   HASH(0x27078f8)
                   HASH(0x2707940)
                   HASH(0x2707988)
               Physical:
                 endian     little
                 interface  eeprom
                 read_size  2
                 size       0.3
                 type       integer
                 Address:
                   index      26.9
             Long_jt_offdelay:
               Logical:
                 type       option
                 option:
                   HASH(0x27097a8)
                   HASH(0x27097f0)
                   HASH(0x2709838)
                   HASH(0x2709880)
                   HASH(0x27098e0)
               Physical:
                 endian     little
                 interface  eeprom
                 read_size  2
                 size       0.3
                 type       integer
                 Address:
                   index      26.6
             Long_jt_on:
               Logical:
                 type       option
                 option:
                   HASH(0x2709b98)
                   HASH(0x2709be0)
                   HASH(0x2709c28)
                   HASH(0x2709c88)
                   HASH(0x2709cd0)
               Physical:
                 endian     little
                 interface  eeprom
                 read_size  2
                 size       0.3
                 type       integer
                 Address:
                   index      26.3
             Long_jt_ondelay:
               Logical:
                 type       option
                 option:
                   HASH(0x2709f88)
                   HASH(0x2709fd0)
                   HASH(0x270a030)
                   HASH(0x270a078)
                   HASH(0x270a0c0)
               Physical:
                 endian     little
                 interface  eeprom
                 read_size  2
                 size       0.3
                 type       integer
                 Address:
                   index      26
             Long_multiexecute:
               Logical:
                 default    1
                 type       boolean
               Physical:
                 interface  eeprom
                 size       0.1
                 type       integer
                 Address:
                   index      17.2
             Long_off_time:
               Conversion:
                 1:
                   factors    0.1,1,60,1000
                   type       float_configtime
                   value_size 1.6
                 2:
                   type       integer_integer_map
                   Value_map:
                     device_value 49152
                     mask       49152
                     parameter_value 65535
               Logical:
                 default    16383000
                 max        982980
                 min        0
                 type       float
                 unit       s
                 Special_value:
                   id         not_used
                   value      16383000
               Physical:
                 endian     little
                 interface  eeprom
                 size       2
                 type       integer
                 Address:
                   index      24
             Long_off_time_mode:
               Logical:
                 type       option
                 option:
                   HASH(0x270b820)
                   HASH(0x270b868)
               Physical:
                 interface  eeprom
                 size       0.1
                 type       integer
                 Address:
                   index      17.6
             Long_offdelay_time:
               Conversion:
                 1:
                   factors    0.1,1,60,1000
                   type       float_configtime
                   value_size 1.6
                 2:
                   type       integer_integer_map
                   Value_map:
                     device_value 49152
                     mask       49152
                     parameter_value 65535
               Logical:
                 default    0
                 max        982980
                 min        0
                 type       float
                 unit       s
               Physical:
                 endian     little
                 interface  eeprom
                 size       2
                 type       integer
                 Address:
                   index      22
             Long_on_time:
               Conversion:
                 1:
                   factors    0.1,1,60,1000
                   type       float_configtime
                   value_size 1.6
                 2:
                   type       integer_integer_map
                   Value_map:
                     device_value 49152
                     mask       49152
                     parameter_value 65535
               Logical:
                 default    16383000
                 max        982980
                 min        0
                 type       float
                 unit       s
                 Special_value:
                   id         not_used
                   value      16383000
               Physical:
                 endian     little
                 interface  eeprom
                 size       2
                 type       integer
                 Address:
                   index      20
             Long_on_time_mode:
               Logical:
                 type       option
                 option:
                   HASH(0x270fb50)
                   HASH(0x270fb98)
               Physical:
                 interface  eeprom
                 size       0.1
                 type       integer
                 Address:
                   index      17.7
             Long_ondelay_time:
               Conversion:
                 1:
                   factors    0.1,1,60,1000
                   type       float_configtime
                   value_size 1.6
                 2:
                   type       integer_integer_map
                   Value_map:
                     device_value 49152
                     mask       49152
                     parameter_value 65535
               Logical:
                 default    0
                 max        982980
                 min        0
                 type       float
                 unit       s
               Physical:
                 endian     little
                 interface  eeprom
                 size       2
                 type       integer
                 Address:
                   index      18
             Long_toggle_use:
               Conversion:
                 type       option_integer
                 Value_map:
                   1:
                     device_value 3
                     from_device 1
                     parameter_value 0
                     to_device  1
                   2:
                     device_value 2
                     from_device 1
                     parameter_value 1
                     to_device  1
                   3:
                     device_value 0
                     from_device 1
                     parameter_value 2
                     to_device  1
               Logical:
                 type       option
                 option:
                   HASH(0x2710078)
                   HASH(0x27100d8)
                   HASH(0x2710120)
               Physical:
                 interface  eeprom
                 size       0.2
                 type       integer
                 Address:
                   index      17.4
             Sensor:
               hidden     1
               operations none
               Logical:
                 type       address
               physical:
                 HASH(0x2710420)
                 HASH(0x27104f8)
             Short_action_type:
               Logical:
                 type       option
                 option:
                   HASH(0x2710678)
                   HASH(0x27106c0)
               Physical:
                 interface  eeprom
                 size       0.1
                 type       integer
                 Address:
                   index      6
             Short_jt_off:
               Logical:
                 type       option
                 option:
                   HASH(0x2712430)
                   HASH(0x2712490)
                   HASH(0x27124d8)
                   HASH(0x2712520)
                   HASH(0x2712568)
               Physical:
                 endian     little
                 interface  eeprom
                 read_size  2
                 size       0.3
                 type       integer
                 Address:
                   index      15.9
             Short_jt_offdelay:
               Logical:
                 type       option
                 option:
                   HASH(0x2712820)
                   HASH(0x2712868)
                   HASH(0x27128b0)
                   HASH(0x27128f8)
                   HASH(0x2712958)
               Physical:
                 endian     little
                 interface  eeprom
                 read_size  2
                 size       0.3
                 type       integer
                 Address:
                   index      15.6
             Short_jt_on:
               Logical:
                 type       option
                 option:
                   HASH(0x2712c10)
                   HASH(0x2712c58)
                   HASH(0x2712ca0)
                   HASH(0x2712d00)
                   HASH(0x2712d48)
               Physical:
                 endian     little
                 interface  eeprom
                 read_size  2
                 size       0.3
                 type       integer
                 Address:
                   index      15.3
             Short_jt_ondelay:
               Logical:
                 type       option
                 option:
                   HASH(0x2713000)
                   HASH(0x2713048)
                   HASH(0x27130a8)
                   HASH(0x27130f0)
                   HASH(0x2713138)
               Physical:
                 endian     little
                 interface  eeprom
                 read_size  2
                 size       0.3
                 type       integer
                 Address:
                   index      15
             Short_off_time:
               Conversion:
                 1:
                   factors    0.1,1,60,1000
                   type       float_configtime
                   value_size 1.6
                 2:
                   type       integer_integer_map
                   Value_map:
                     device_value 49152
                     mask       49152
                     parameter_value 65535
               Logical:
                 default    16383000
                 max        982980
                 min        0
                 type       float
                 unit       s
                 Special_value:
                   id         not_used
                   value      16383000
               Physical:
                 endian     little
                 interface  eeprom
                 size       2
                 type       integer
                 Address:
                   index      13
             Short_off_time_mode:
               Logical:
                 type       option
                 option:
                   HASH(0x2715750)
                   HASH(0x2715798)
               Physical:
                 interface  eeprom
                 size       0.1
                 type       integer
                 Address:
                   index      6.6
             Short_offdelay_time:
               Conversion:
                 1:
                   factors    0.1,1,60,1000
                   type       float_configtime
                   value_size 1.6
                 2:
                   type       integer_integer_map
                   Value_map:
                     device_value 49152
                     mask       49152
                     parameter_value 65535
               Logical:
                 default    0
                 max        982980
                 min        0
                 type       float
                 unit       s
               Physical:
                 endian     little
                 interface  eeprom
                 size       2
                 type       integer
                 Address:
                   index      11
             Short_on_time:
               Conversion:
                 1:
                   factors    0.1,1,60,1000
                   type       float_configtime
                   value_size 1.6
                 2:
                   type       integer_integer_map
                   Value_map:
                     device_value 49152
                     mask       49152
                     parameter_value 65535
               Logical:
                 default    16383000
                 max        982980
                 min        0
                 type       float
                 unit       s
                 Special_value:
                   id         not_used
                   value      16383000
               Physical:
                 endian     little
                 interface  eeprom
                 size       2
                 type       integer
                 Address:
                   index      9
             Short_on_time_mode:
               Logical:
                 type       option
                 option:
                   HASH(0x2716cb0)
                   HASH(0x2716cf8)
               Physical:
                 interface  eeprom
                 size       0.1
                 type       integer
                 Address:
                   index      6.7
             Short_ondelay_time:
               Conversion:
                 1:
                   factors    0.1,1,60,1000
                   type       float_configtime
                   value_size 1.6
                 2:
                   type       integer_integer_map
                   Value_map:
                     device_value 49152
                     mask       49152
                     parameter_value 65535
               Logical:
                 default    0
                 max        982980
                 min        0
                 type       float
                 unit       s
               Physical:
                 endian     little
                 interface  eeprom
                 size       2
                 type       integer
                 Address:
                   index      7
             Short_toggle_use:
               Conversion:
                 type       option_integer
                 Value_map:
                   1:
                     device_value 3
                     from_device 1
                     parameter_value 0
                     to_device  1
                   2:
                     device_value 2
                     from_device 1
                     parameter_value 1
                     to_device  1
                   3:
                     device_value 0
                     from_device 1
                     parameter_value 2
                     to_device  1
               Logical:
                 type       option
                 option:
                   HASH(0x27171d8)
                   HASH(0x2717238)
                   HASH(0x2717280)
               Physical:
                 interface  eeprom
                 size       0.2
                 type       integer
                 Address:
                   index      6.4
             Ui_hint:
               Logical:
                 default
                 type       string
                 use_default_on_failure 1
               Physical:
                 id         ui_hint
                 interface  store
                 save_on_change 1
                 type       string
       Peers:
         Sensors:
           0:
             Sensor:
               channel    255
Attributes:
   DbLogExclude .*
   building   S_Haus
   floor      S_OG
   model      HMW_IO_12_Sw7_DR
   room       HM485
   subType    switch
   userattr   building building_map floor floor_map room_map structexclude




Hier das list eines notify, bei dem das problem auftrat (es trat bei allen von mir probierten notifys auf, dass ich attribute (room) nicht ändern konnte und die DEF nicht modifizieren:

Internals:
   DEF        D_MischerPID.* {
my $tuwas = 0;
my $cnt = ReadingsVal("D_MischerWert","state","0");
if ( ReadingsVal("DS18B20_VorlaufHK","temperature","100") > 45){
$tuwas = -100;
} else {
$tuwas = int(ReadingsVal("PID.FUBO","actuation","0")/10);
}
$cnt += $tuwas;
if ($tuwas >= 1)
{
# waermer
fhem "
        set HMW01.O01_Mischer_kalt off;
        set HMW01.O02_Mischer_warm on-for-timer $tuwas;
        set D_MischerWert $cnt;
        "
}
elsif ($tuwas <= 1)
{
$tuwas = abs($tuwas);
# kaelter
fhem "
        set HMW01.O02_Mischer_warm off;
        set HMW01.O01_Mischer_kalt on-for-timer $tuwas;
        set D_MischerWert $cnt;
        "
}
}
   NAME       N_changeVL
   NR         206
   NTFY_ORDER 50-N_changeVL
   REGEXP     D_MischerPID.*
   STATE      2016-04-18 11:55:42
   TYPE       notify
   Readings:
     2016-04-18 10:53:50   state           active
     2016-04-17 21:38:58   tuwas           0
Attributes:
   disable    0
   room       Heizung,_notify
   userReadings tuwas { ReadingsVal("MischerPID","state","0")/10; }


Und dann vollständigerweise noch ein Device, bei dem es *NICHT* auftrat (ich also das attr. ändern konnte)

Internals:
   BTN        00
   DEF        48c5 00
   IODev      CUL_0
   NAME       FS20_Garage
   NR         128
   STATE      off
   TYPE       FS20
   XMIT       48c5
   Code:
     1          48c5 00
   Readings:
     2016-04-18 10:43:36   state           off
Attributes:
   DbLogExclude .*
   IODev      CUL_0
   building   S_Haus
   floor      S_EG
   group      FS20,LichtAktoren
   room       Fernsteuerung,FS20
   userattr   building building_map floor floor_map room_map structexclude


Wobei zu berücksichtigen ist, das die Structure heute erst dazukam.

Viele Grüße
Stephan
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 12:46:54
Hi Stephan,

Danke hierfür, ich konnte das Problem jetzt bei mir Nachstellen und gucke mal :-)

Bzgl. deiner Frage hab ich dich wirklich falsch verstanden, allerdings ist das TYPE=... keine direkte Konfiguration die in der fhem.cfg landet, sondern die fhem devspec Angabe, hier nachzulesen: http://fhem.de/commandref_DE.html#devspec

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 18 April 2016, 12:52:57
Zitat von: rapster am 18 April 2016, 12:46:54
Danke hierfür, ich konnte das Problem jetzt bei mir Nachstellen und gucke mal :-)

cool!

Zitat
Bzgl. deiner Frage hab ich dich wirklich falsch verstanden, allerdings ist das TYPE=... keine direkte Konfiguration die in der fhem.cfg landet, sondern die fhem devspec Angabe, hier nachzulesen: http://fhem.de/commandref_DE.html#devspec
genau darum ging es ja, dass die Zeile so nicht auftaucht und beim bewerten, ob diese zutrifft, je nach Erfahrung des Nutzers ein mehr oder weniger großer Spielraum entsteht :-)
mit dem list kann man es ja umbauen, von daher für mich okay! Danke :-)  /OT
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 18:28:13
Problem mit Codemirror und perlSyntaxCheck sollte (zumindest im DEF) behoben sein nachdem Rudi den Patch eingecheckt hat: https://forum.fhem.de/index.php?topic=52379

Falls anschließend noch an anderer Stelle Probleme im Zusammenhang dieser beiden Features auftreten bitte nochmal bescheid geben.

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 18 April 2016, 18:31:03
ich hatte das problem auch bei attributen mit Textfeld-long. vielleicht kannst du auch mal nach sehen?

danke
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 18:42:33
Hi Andre,

wird bei textField-long überhaupt der PSC durchgeführt?

Ich konnte zumindest beim durchklicken einiger textField-long's keine Probleme erkennen. (Oder habse einfach nur nicht bemerkt ;D)

Wenn beim textField-long dennoch Probleme auftreten wäre ein kleines Beispiel nicht schlecht  ::)

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 18 April 2016, 18:54:10
readingsGroup und readingsProxy verwenden inzwischen perlSyntaxCheck für die attribute bei denen perl code erlaubt ist.

zum testen müsste eindefine test readingsProxy testreichen. und dann z.b. das setFn attribut über fhemweb auf etwas mit syntax fehler wie z.b. { xyz } setzen.

irgendwann passiert dann das gleiche wie bei DEF das der inhalt von codemirror popup nicht mehr mit dem inhalt des attribut text feldes übereinstimmt.

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 19:01:41
Argh, hatte es zwar genau so getestet, allerdings ohne geschweifte Klammern :-)

Allerdings funktioniert das, so wie ich das sehe, wie erwartet? (Siehe Bild)

Auch nachdem der Syntaxfehler angezeigt wurde, und CM erneut geöffnet wird, erscheint der Text unverändert.

Hmm....

(https://forum.fhem.de/index.php?action=dlattach;topic=20444.0;attach=50784;image)
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 18 April 2016, 19:13:20
ja. so soll es sein. als ich das ganz zu anfang probiert hatte ist es auch nicht immer passiert. so wie im DEF bereich zumindest bei mir auch nicht. deswegen der verdacht das es mit dem timing zusammen hängt mit dem das default verhalten mit dem popup für codeMirror und syntaxcheck überschrieben wird.

oder kann es sein das es mit dem problem im DEF Bereich zu sammeln hängt und nur ein folgefehler war der jetzt auch erledigt ist?
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 19:17:29
Möglich...
Oder es könnte an der fhem_codemirror.js gelegen haben, die bisher bei jeder gefundenen textarea einen Codemirror gestartet hat.
Rudi hat allerdings in der fhemweb.js für die textField-long selber ebenfalls nochmal einen Codemirror initialisiert.

Ich habe das mit der gefixten fhem_codemirror.js ausprobiert welche ich nach dem Patch-checkin von Rudi einchecken werde,
diese hat das Problem der mehrfachen Codemirror initialisierung nicht mehr.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 18 April 2016, 19:18:48
dann warte ich einfach mal ab.

danke
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 19:20:58
 8)

Sag bescheid falls danach noch irgendwas auffällt  :)

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 18 April 2016, 22:17:32
Rudi hat ja die Änderungen eingecheckt, ab wann stehen die denn üblicherweise zum Update bereit?
Bei mir zeigt update check für die 10_FHEMWEB.pm  noch keine neue Version an..

Grüße
Stephan
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 18 April 2016, 22:28:15
Hi Stephan,

ca. 8:00 Morgen früh per Update.

Oder jetzt sofort aus dem SVN.

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 18 April 2016, 22:28:57
Dann hab ich Zeit bis morgen  ;D
Danke
Stephan
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 19 April 2016, 13:13:56
In der heutigen fhem-update Version ist leider noch ein Problem enthalten dass Codemirror für Textareas unter Edit-Files nicht gestartet wird.

Patch hierfür muss noch von Rudi eingecheckt werden: https://forum.fhem.de/index.php/topic,52379.msg441549.html#msg441549

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 19 April 2016, 17:23:38
Mir ist gerade aufgefallen, dass das codewort "defmod" ebenfalls noch nicht erkannt wird...
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 20 April 2016, 10:26:35
Zitat von: abc2006 am 19 April 2016, 17:23:38
Mir ist gerade aufgefallen, dass das codewort "defmod" ebenfalls noch nicht erkannt wird...

Hab ich hinzugefügt.

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 23 April 2016, 11:16:44
Hi,
habe gerade (wieder?) das Problem, dass die DEF in der Übersicht und im Editor sich unterscheidet...

Steht vielleicht in Zusammenhang mit https://forum.fhem.de/index.php?topic=52546.msg443011#msg443011 ?

Grüße
Stephan
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 23 April 2016, 13:28:27
Hi,

kann das leider nicht Nachstellen, Problem tritt bei mir nicht auf...
Hat sonst noch jemand dieses Problem?

Bzgl. des verlinkten Threads, tauchen bei mir die Fehlermeldung ebenfalls in einem PopUp auf (siehe Bild)

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 23 April 2016, 14:51:09
mach mal nen trigger rein, aber ganz am ende eine klammer zuviel :


([08:00])(set xy on))
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 23 April 2016, 15:45:01
Wird bei mir wieder mit einem Fehler-PopUp quittiert.
Nach klick auf OK bin ich weiterhin im Codemirror mit dem richtigen Inhalt und könnte den Fehler korrigieren.

Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 25 April 2016, 10:34:27
Hi,
also ich habe bei mir gerade ein update gemacht, und PerlSyntaxCheck aktiviert ( war vorher deaktiviert).

Beim klick auf modify df_test kommt die FehlerSeite <DF_Fehler.png>
wenn ich dann auf zurück klicke, wird im DEF die alte Definition angezeigt, wenn ich dann auf DEF klicke, erscheint im Codemirror die geänderte (fehlerhafte) Definition.

Bei einem notify hingegen frisst er erstaunlicherweise auch Syntax-Fehler wie

test { fhe(set xy on) }

ohne Fehlermeldung...


Was mir noch aufgefallen ist, bsp bei remoteBot, aber dürfte überall so sein, wo ein Fenster aufgeht, dass die Autocomplete-Dropdown-Liste hinter dem Popup-Fenster dargestellt wird (siehe dropdown...png).


list WEB:
Internals:
   CONNECTS   33
   DEF        8083 global
   FD         6
   NAME       WEB
   NR         7
   NTFY_ORDER 50-WEB
   PORT       8083
   STATE      Initialized
   TYPE       FHEMWEB
Attributes:
   JavaScripts codemirror/fhem_codemirror.js
   SVGcache   1
   codemirrorParam { "lineWrapping":true, "height":"auto" }
   editConfig 1
   endPlotNow 1
   longpoll   1
   room       HTTP,System


list global:
Internals:
   DEF        <no definition>
   NAME       global
   NR         1
   STATE      <no definition>
   TYPE       Global
   currentlogfile ./log/fhem-2016-04-25.log
   logfile    ./log/fhem-%Y-%m-%d.log
Attributes:
   autoload_undefined_devices 1
   backup_before_update 1
   configfile fhem.cfg
   exclude_from_update 15_CUL_EM.pm 15_vz.pm
   featurelevel 5.7
   language   DE
   latitude   50.106173
   logfile    ./log/fhem-%Y-%m-%d.log
   longitude  8.662170
   modpath    .
   motd       SecurityCheck:

WEB,WEBdarkdash,WEBdevel,WEBgast,WEBnadine,WEBphone has no associated allowed device with basicAuth.
telnetPort has no associated allowed device with password/globalpassword.

Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

   mseclog    1
   room       HTTP,System
   sendStatistics onUpdate
   statefile  ./log/fhem.save
   updateInBackground 0
   userattr   DbLogExclude DbLogInclude cmdIcon devStateIcon devStateStyle fp_Erdgeschoss icon sortby structexclude webCmd webcmdDevice widgetOverride
   verbose    3
   version    fhem.pl:11304/2016-04-24


list df_test

Internals:
   CFGFN
   DEF        ([08:00])(set xy on)
   NAME       df_test
   NR         345
   NTFY_ORDER 50-df_test
   STATE      initialized
   TYPE       DOIF
   Readings:
     2016-04-25 10:27:48   state           initialized
     2016-04-25 10:27:48   timer_1_c1      26.04.2016 08:00:00
   Condition:
     0          DOIF_time_once($hash,$hash->{timer}{0},$wday,"")
   Days:
   Devices:
   Do:
     0:
       0          set xyz on
   Helper:
     globalinit 1
     last_timer 1
     sleeptimer -1
   Itimer:
   Localtime:
     0          1461650400
   Realtime:
     0          08:00:00
   Regexp:
   State:
   Time:
     0          08:00:00
   Timecond:
     0          0
   Timer:
     0          0
   Timers:
     0           0
   Triggertime:
     1461650400:
       localtime  1461650400
       Hash:
Attributes:
   room       x_devel


list n_test:
Internals:
   DEF        test { fhe(set xy on) }
   NAME       n_test
   NOTIFYDEV  test
   NR         314
   NTFY_ORDER 50-n_test
   REGEXP     test
   STATE      active
   TYPE       notify
   Readings:
     2016-04-25 10:29:51   state           active
Attributes:
   DbLogExclude .*
   room       x_devel
   webCmd     an:aus




Kann ich dir noch was liefern, damit du den Fehler reproduzieren kannst?

Grüße

Stephan
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 25 April 2016, 10:39:17
Hi Stephan,

perlSyntaxCheck (und somit die Fehler im eigenen PopUp) sind soweit ich das gesehen habe erst ab featurelevel >5.7 aktiv, setz mal dein featurelevel auf irgendwas höheres.

Und setze noch das globale Attribut perlSyntaxCheck.

Gruß
Claudiu
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 25 April 2016, 10:46:49
perlSyntaxCheck wird ab 5.8 default sein, solange muss man das Attribut aber noch manuell spezifizieren.
Titel: Antw:Javascript Editor einbinden
Beitrag von: justme1968 am 25 April 2016, 10:47:46
perl syntax check prüft nur perl code.

dein test ausdruck:test { fhe(set xy on) }")wird aber garnicht erst als perl code der getestet werden kann erkannt weil keine { am anfang steht. d.h. am anfang steht test das als potentielles fhem kommando mit einem ein paar parametern erkennt wird.

wenn dutest; { fhe(set xy on) }") zum testen verwendest teilt der parser das in ein fhem kommando test und ein zweites in {..} eingeschlossen perl kommando auf. dieses wird dann getestet und wirft auch einen fehler.

um das vielleicht irgendwann mal 'intelligenter' zu machen müsste man zum einen einen syntax check für die fhem ebene bauen und eventuell den kommando zeilen parser umstellen.


zurück im browser zu verwenden ist hier ziemlich sicher ungeschickt. wenn du auf ok klickst bleibst du in code mirror und kannst direkt korrigieren.

gruss
  andre
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 25 April 2016, 11:04:43
Zitat von: rapster am 25 April 2016, 10:39:17
perlSyntaxCheck (und somit die Fehler im eigenen PopUp) sind soweit ich das gesehen habe erst ab featurelevel >5.7 aktiv, setz mal dein featurelevel auf irgendwas höheres.

Und setze noch das globale Attribut perlSyntaxCheck.

Erledigt, funzt einwandfrei.  Fehler kommt jetzt im Popup, nachdemich auf featurelevel 5.8 gesetzt habe. Das hatte irgendwann mal auch mit 5.7 funktioniert, nach den Problemem nmit Codemirror hatte ichs deaktiviert, und dann ist jetzt wohl an mir vorbeigegangen, dass es erst wieder ab 5.8 verfügbar ist bzw dass es 5.8 überhaupt schon gibt.

Danke!

Zitat von: justme1968 am 25 April 2016, 10:47:46
...wird aber garnicht erst als perl code der getestet werden kann erkannt

liefert aber zumindest ein Popup, siehe Bild.


Zitatwenn dutest; { fhe(set xy on) }") zum testen verwendest teilt der parser das in ein fhem kommando test und ein zweites in {..} eingeschlossen perl kommando auf. dieses wird dann getestet und wirft auch einen fehler.

und trotzdem wird test als trigger erkannt?
Hm. Ist aber zuviel Arbeit, deswegen alle notify's umzubauen ;D Ich werds mir zur Fehlersuche merken, wenn merkwürdige Fehler auftreten;-)


Zitatzurück im browser zu verwenden ist hier ziemlich sicher ungeschickt. wenn du auf ok klickst bleibst du in code mirror und kannst direkt korrigieren.

zurück im Browser zu verwenden, ist recht oft ungeschickt. Andererseits bleiben Seiten oft im Cache, auch wenn das, was beim Server ankommt, was ganz anderes ist. Manchmal hat man dann die möglichkeit, in dieser unsauberen Situation den Code zu kopieren, dann eine saubere, neue Seite zu laden und den Code dort einzufügen - anstatt erneut eine halbe Stunde zu basteln:-)

Es ging bei mir ja gar nicht drum, irgendwas zu klicken, wenn du dir df_Fehler.png in meinem vorherigen Post anschaust, dort existiert kein Button. Und wenn ich mich durch den Baum klicke, dann ist die alte DEF ganz bestimmt weg ;)

Nagut, so wies jetzt ist, gehts ja. Bis auf das Dropdown :-) Das befindet sich immer noch hinter dem Fenster, zb. wenn man attribute im CM bearbeitet.


Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 25 April 2016, 11:18:34
Editiert man Attribute, die über texField-long den Codemirror verwenden, landet das Ergebnis (nur in der Ansicht) im DEF in den Internals. Hier wird sicher nur ein DOM-Element falsch angesprochen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rapster am 25 April 2016, 11:26:57
Zitat von: marvin78 am 25 April 2016, 11:18:34
Editiert man Attribute, die über texField-long den Codemirror verwenden, landet das Ergebnis (nur in der Ansicht) im DEF in den Internals. Hier wird sicher nur ein DOM-Element falsch angesprochen.
=> https://forum.fhem.de/index.php/topic,52379.msg441851.html#msg441851
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 25 April 2016, 11:33:34
Es gibt auch noch weitere Probleme mit Attributen die eigentlich normale Textfelder sind, die man aber per widgetOverride zu textField-long gemacht hat. Auch ganz einfache userReadings ohne Schnickschnack machen Probleme mit einem Konsolenfehler:

Error: Syntax error, unrecognized expression: .dval[informid=EG.wz.UL.Decke.light-userReadings]
...value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized exp...

Es ist mir aber aktuell zu mühselig das alles nachzustellen und zu analysieren. Ich brauche den Syntax-Check nicht wirklich. Also fliegt er wieder raus.
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 26 April 2016, 21:15:31
ZitatError: Syntax error, unrecognized expression: .dval[informid=EG.wz.UL.Decke.light-userReadings]
Dieses Problem sollte jetzt gefixt sein.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Aladin222 am 06 Juni 2016, 11:44:49
hi @all,

sorry , aber ist es gewollt das Backspace und Curserpfeiltasten ( links rechts auf ab ) nun nicht mehr funktionieren ???
Oder hab ich was grundsätzliches verpeilt bzw falsch verstanden ?
Titel: Antw:Javascript Editor einbinden
Beitrag von: CoolTux am 06 Juni 2016, 11:47:38
Hast Du schon ein Update gemacht? Es gab da die Tage kleine Probleme welche wohl mit dem heutigen Update gefixt sein sollten. Gibt diesbezüglich auch eine Menge Einträge im Forum.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Aladin222 am 06 Juni 2016, 12:32:10
Nein , sorry , hatte ich noch nicht :-(

Aber leider auch nachdem update & restart funktionieren die Cursortasten & Backspace nicht mehr  :-\
Titel: Antw:Javascript Editor einbinden
Beitrag von: CoolTux am 06 Juni 2016, 12:39:32
https://forum.fhem.de/index.php/topic,54253.msg458647.html#msg458647
Titel: Antw:Javascript Editor einbinden
Beitrag von: marvin78 am 06 Juni 2016, 12:40:24
Wenn wirklich alles aktuell ist, wird Cache leeren helfen.
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 14 Oktober 2016, 21:48:30
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
Titel: Antw:Javascript Editor einbinden
Beitrag von: abc2006 am 25 Oktober 2016, 12:02:35
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
Titel: Antw:Javascript Editor einbinden
Beitrag von: iamandy am 03 März 2017, 15:54:10
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?
Titel: Antw:Javascript Editor einbinden
Beitrag von: kotaro am 04 Dezember 2018, 13:42:07
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
Titel: Antw:Javascript Editor einbinden
Beitrag von: Keule_09 am 14 Dezember 2018, 18:38:00
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
Titel: Antw:Javascript Editor einbinden
Beitrag von: rudolfkoenig am 14 Dezember 2018, 18:50:00
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.
Titel: Antw:Javascript Editor einbinden
Beitrag von: Keule_09 am 14 Dezember 2018, 20:36:28
ok danke für die Info.
Titel: Antw:Javascript Editor einbinden
Beitrag von: krikan am 03 Mai 2019, 10:21:46
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
Titel: Antw:Javascript Editor einbinden - Fullscreen/Vollbildschirm
Beitrag von: jschuppe am 29 Januar 2021, 19:57:23
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 (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 (https://codemirror.net/addon/display/fullscreen.css) und https://codemirror.net/addon/display/fullscreen.js (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  :)
Titel: Antw:Javascript Editor einbinden
Beitrag von: FHEMAN am 25 August 2021, 14:39:13
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");