Javascript Editor einbinden

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

Vorheriges Thema - Nächstes Thema

papa

Wenn man alles im Kopf hat schon :-)
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

betateilchen

dann sind wir uns ja einig  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

papa

Aber gerade für Neueinsteiger, die noch nicht jedes Attribute oder Reading kennen, ist das sehr hilfreich.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Inputsammler

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.
Rpi's und Bpi's und Hw von Dirk und locutus
CCU2,F20,Ks300,1-Wire,Homematic usw ...
vitodens 300 & IstrkrM372 auslesen über USB und FHEM
RUHE IN FRIEDEN AHA1805 RIP Mallorca +29.08.16
I miss you and your Family H.H.L.L.

betateilchen

Schön, dass er Dir gefällt. Aber:

Der enhancedEditor war weder meine Idee noch meine alleinige Umsetzung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

dafex

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.

Navigator

...selbst ein erfahrener Zehn-Finger Schreiber verknotet sich alles bei den ganzen Sonderzeichen in Perl. Möchte echt mal den Schreibfluss eines Programmieres sehen.
Gruß aus Sachsen. FHEM auf Cubietruck. Vormals EZControl XS1 User.

rudolfkoenig

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.

betateilchen

Danke. Funktioniert auch hier im ersten Test.

Ist das codemirror-Verzeichnis jetzt generell im update enthalten?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

der-Lolo

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?

marvin78

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?

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

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?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

der-Lolo

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?

betateilchen

tja, wenn nur root auf die Dateien zugreifen darf, könnte es schwierig werden...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!