FHEMWEB Widgets

Begonnen von rudolfkoenig, 19 September 2017, 14:17:17

Vorheriges Thema - Nächstes Thema

justme1968

pong :)

ich habe eine version vom fhemweb_uzsu.js die mit deiner neuen FW_callCreateFn zu funktionieren scheint.

die frage ist jetzt nur ob ich im code noch einen fallback auf die alte version vorsehe oder wir das einchecken so koordinieren das alles an einem tag (z.b. morgen) eingecheckt wird.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Ich bin fuer Koordinieren und kein Fallback.
Sag mir hier Bescheid, nachdem du es eingecheckt hast.

justme1968

bescheid...

hab es eben eingecheckt
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus Bloch

Muss dann auch heute Abend noch die geänderten fhemweb_*.js Dateien mit integrierter Commandref-Doku vorhanden sein?

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

rudolfkoenig

Habe meine Aenderungen jetzt auch eingecheckt.

Ich werde die Doku morgen selbst in die einzelnen fhemweb_*.js Dateien rueberkopieren, aus 01_FHEMWEB.pm loeschen und commandref_join.pl anpassen.

Bleibt dann noch help.pm uebrig.

justme1968

@rudi: ich glaube in fhemweb.js zeile 1079 fehlt noch ein var vor newEl.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Benni

#21
Ist das folgendes "Problem" (s.a. Screenshot)?

Ausgabe in der Entwicklerkonsole im Chrome:

fhemweb.js:1079 Uncaught ReferenceError: newEl is not defined
    at FW_replaceWidget (fhemweb.js:1079)
    at FW_detailSelect (fhemweb.js:1034)
    at HTMLSelectElement.<anonymous> (fhemweb.js:105)
    at Function.each (jquery.min.js:2)
    at m.fn.init.each (jquery.min.js:2)
    at HTMLDocument.FW_jqueryReadyFn (fhemweb.js:104)
    at j (jquery.min.js:2)
    at Object.fireWith [as resolveWith] (jquery.min.js:2)
    at Function.ready (jquery.min.js:2)
    at HTMLDocument.J (jquery.min.js:2)


Zitat von: justme1968 am 03 Oktober 2017, 09:43:24
ja. var davor schreiben behebt es.

Funktioniert!


justme1968

 ja. var davor schreiben behebt es.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Habe die Doku umgebaut, und die geaenderten fhemweb_*.js Dateien eingecheckt.
Diese Aenderung ist eine Ausnahme, ich will die Verantwortung fuer diese Dateien damit nicht uebernehmen, nur das Verschieben der Doku vereinfachen.

Die Verlagerung der Doku ist generisch, und passiert mit der Zeile
        <!-- INSERT_DOC_FROM: www/pgm2/fhemweb.*.js -->
was in aehnlicher Form auch von anderen Modulen verwendet werden kann.

Verbliebene Probleme:
*** EN www/pgm2/fhemweb_colorpicker.js: No document text found
*** EN www/pgm2/fhemweb_fbcalllist.js: No document text found
*** EN www/pgm2/fhemweb_readingsGroup.js: No document text found
*** EN www/pgm2/fhemweb_readingsHistory.js: No document text found
*** EN www/pgm2/fhemweb_weekprofile.js: No document text found

Wenn ich es richtig verstehe, muesste fhemweb_readings*.js umbenannt werden, und die anderen dokumentiert werden.
Da eine Umbenennung von dem FHEM update Mechanismus nicht ohne Weiteres unterstuetzt wird, muesste ich in contrib/fhemupdate.control.fhem zwei MOV Zeilen einfuegen, nachdem die Umbenennung erfolgt ist.

Damit die Fehlermeldungen solange nicht alle nerven, habe ich diese Pruefungen deaktiviert.


Patchvorschlag fuer 98_help.pm:
Index: FHEM/98_help.pm
===================================================================
--- FHEM/98_help.pm    (revision 15175)
+++ FHEM/98_help.pm    (working copy)
@@ -184,6 +184,15 @@
         $skip = 1;
      } elsif(!$skip) {
         $output .= "$l\n";
+        if($l =~ m,INSERT_DOC_FROM: ([^ ]+)/([^ /]+) ,) {
+          my ($dir, $re) = ($1, $2);
+          if(opendir(DH, $dir)) {
+            foreach my $file (grep { m/^$2$/ } readdir(DH)) {
+              $output .= cref_search("$dir/$file", $lang);
+            }
+            closedir(DH);
+          }
+        }
      }
    }
    return $output;

justme1968

ich habe die colorpicker doku eben eingecheckt. dabei ist mir aufgefallen:
- vielleicht wäre es sinnvoll die einzelnen abschnitte mit jeweils einer zwischenüberschrift zu versehenen?
  das würde es übersichtlicher machen und auch erlauben für die unterschiedlichen widgets zusätzlichen
  erklärenden text vor oder hinter die jeweilige liste zu setzen.
- das würde auch helfen wenn nicht beide sprachen gibt. die formatierung der meldung in diesem fall
  ist auch noch nicht korrekt. der link zeigt auch noch ins leere.
- ich habe am ende des colorpicker blocks noch einen hinweis auf das wiki gesetzt. die formatierung ist
  aber nicht optimal da es aktuell nur eine lange bullet liste ist. s.o.
- der readingsGroup und readingsHistory js code beinhaltet aktuell keine widgets die sich mit widgetOverride
  nutzen lässt sondern nur coder der intern verwendet wird. d.h. wenn es keine doku gibt ist das ok.
  das gleiche gilt für fbcalllist und weekprofile. in allen fällen ist es eher code der zur darstellung in der raum
  (oder detail) ansicht nötig ist. das gleiche wird demnächst für ein webcam device der fall sein. d.h. es gibt js code
  der geladen werden muss wenn ein device verwendet wird ohne das es etwas mit widgets oder widgetOverride zu
  tun hat. das mit dem umbenennen ist deshalb glaube ich zumindest aktuell auch nicht nötig.

- der : am anfang der zeilen ist eigentlich redundant
- die formatierung der parameter ist nicht überwall einheitlich. manche einträge verwenden <...>, andere lassen die eckigen klammern weg
- im einleitenden text fehlt noch ein s hinter modifiers: Following is the list of known modifiers
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Zitat- vielleicht wäre es sinnvoll die einzelnen abschnitte mit jeweils einer zwischenüberschrift zu versehenen?
Bin unsicher, bei meinen "einzelnen" Widgets wuerde es komisch ausschauen. Habe aber nichts dagegen, falls du bei Colorpicker oder UZSU sowas machst.

Zitatdas mit dem umbenennen ist deshalb glaube ich zumindest aktuell auch nicht nötig.
Und wann soll ich eine Warnung bei nicht vorhandenen Doku ausgeben?

Zitat- der : am anfang der zeilen ist eigentlich redundant
- die formatierung der parameter ist nicht überwall einheitlich. manche einträge verwenden <...>, andere lassen die eckigen klammern weg
- im einleitenden text fehlt noch ein s hinter modifiers: Following is the list of known modifiers
Danke, habe es in meinen Dateien angepasst.

justme1968

ZitatBin unsicher, bei meinen "einzelnen" Widgets wuerde es komisch ausschauen. Habe aber nichts dagegen, falls du bei Colorpicker oder UZSU sowas machst.

so lange das <ul>...</ul> von comandref_join erzeugt wird kann man dazwischen nicht viel machen. wenn die jeweilige doku selber die listen auf und zu macht und commandref_join dann einfach alles aneinander hängt. wäre das flexibler.


Und wann soll ich eine Warnung bei nicht vorhandenen Doku ausgeben?
das problem ist das es nicht nur zwei sondern drei zustände gibt die unterschieden werden müssen:
- doku da
- doku nicht nötig
- keine doku da

wenn für 2. ein leeres =pod/=cut oder =begin html/=end html ok ist könnte man es so machen.


hattest du das mit den unschönen und falschen link bei nicht vorhander deutschen doku gesehen?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Zitatso lange das <ul>...</ul> von comandref_join erzeugt wird kann man dazwischen nicht viel machen.
Das verstehe ich nicht. Ich sehe keine von commandref erzeugten <ul>'s und selbst wenn, muesste man doch dazwischen was machen koennen.

Zitatwenn für 2. ein leeres =pod/=cut oder =begin html/=end html ok ist könnte man es so machen.
Waere fuer mich ok.

Zitathattest du das mit den unschönen und falschen link bei nicht vorhander deutschen doku gesehen?
Nein, ich sehe nur keine Doku, siehe Anhang. Habs mit commandref_join.pl und help (gepatchte Variante) probiert.

rudolfkoenig

Zitatunschönen und falschen link
Unschoen finde ich es nicht, falsch ja: es heisst href und nicht hef :)

justme1968

ja... die <ul> werden nicht von commandref_join erzeugt sondern stehen in 01_FHEMWEB um die <!-- INSERT_DOC_FROM: www/pgm2/fhemweb.*.js --> zeile.

naja... nicht viel machen heisst man keine zwischenüberschrift auf höhe der bullets (ohne bullet) erzeugen.


readings.*js habe ich mit leerem =pod/=cut eingecheckt das scheint zu funktionieren.


mein link war falsch. seltsamer weise hat safari trotzdem einen anklickbaren link draus gemacht. aber den habe ich garnicht gemeint :)

ich hatte in zeile 177 das !$jsFile aus dem if raus genommen um die meldungen in der ausgabe zu bekommen.

und in zeile 178 ebenso. weil sonst bei fehlender deutschen doku der link auf die englische fehlt.

aber dann kommt so etwas wie auf meinem screenshot dabei raus.

wenn das garnicht beabsichtig dann ist das natürlich nicht relevant.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968