FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Christoph Morrison am 18 Februar 2021, 13:19:00

Titel: [CommandRef][Bug] Konflikt zwischen Module Statistics und BOTVAC
Beitrag von: Christoph Morrison am 18 Februar 2021, 13:19:00
Hallo zusammen,

in der Commandref funktioniert der Anker #statistics (https://fhem.de/commandref.html#statistics) nicht korrekt, denn es gibt zwei A-Elemente mit name-Attribut "statistics":
BOTVAC: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/70_BOTVAC.pm#L2911
Statistics: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/98_statistics.pm#L1172 bzw. https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/98_statistics.pm#L1339

Man landet aktuell bei BOTVAC, wenn man oben im Inhaltsmenü statistics auswählt.

statistics hat hier IMHO Vorrang. @vuffiraa - magst du das bei dir beheben?
Titel: Antw:[CommandRef][Bug] Konflikt zwischen Module Statistics und BOTVAC
Beitrag von: vuffiraa am 18 Februar 2021, 13:22:07
Oh klar, ich kümmere mich darum.
Titel: Antw:[CommandRef][Bug] Konflikt zwischen Module Statistics und BOTVAC
Beitrag von: Christoph Morrison am 18 Februar 2021, 13:36:56
Betrifft aber auch nur die englische CRef, nb.
Titel: Antw:[CommandRef][Bug] Konflikt zwischen Module Statistics und BOTVAC
Beitrag von: vuffiraa am 18 Februar 2021, 13:51:28
Zitat von: Christoph Morrison am 18 Februar 2021, 13:36:56
Betrifft aber auch nur die englische CRef, nb.

Ich weiß auch warum, für mein Modul existiert nur eine englische Doku  ;)
Titel: Antw:[CommandRef][Bug] Konflikt zwischen Module Statistics und BOTVAC
Beitrag von: rudolfkoenig am 18 Februar 2021, 14:01:46
Ich empfehle Anker der Form  <a name="bla"> gegen <a name="MODULNAMEbla"> auszutauschen, damit das eindeutig wird.
fhemweb.js sucht bereits nach Anker dieser "neuen" Form, um die Hilfe fuer ein Attribut in der FHEMWEB-Detailansicht anzuzeigen.
Jetzt bleibt nur alle Module durchzugehen, und die Anker umzustellen.
Titel: Antw:[CommandRef][Bug] Konflikt zwischen Module Statistics und BOTVAC
Beitrag von: Christoph Morrison am 18 Februar 2021, 14:47:02
Wäre das nicht ne gute Gelegenheit um mal in Richtung id zu gehen? name ist in HTML5 ja nicht mehr valide.
Dann könnte man auch gleich sowas wie modulename.subsection in Kleinbuchstaben oder so vorgeben.
Titel: Antw:[CommandRef][Bug] Konflikt zwischen Module Statistics und BOTVAC
Beitrag von: vuffiraa am 19 Februar 2021, 08:06:12
So, das Problem sollte behoben sein. Der Link https://fhem.de/commandref.html#statistics zeigt jetzt auf das Hilfsmodul.

Was mir gestern bei der Lösungssuche aufgefallen war, dass ich auf die Schnelle keine Dokumentation zu dem Ankerpunkten finden konnte. Mein erster Gedanke war DevelopmentModuleIntro im Wiki. Dort wurden dann noch Guidelines zur Dokumentation erwähnt, aber auf beiden Seiten steht nix zu den Ankerpunkten.

Als Entwickler bin ich dann natürlich der Strategie "Die Wahrheit steht im Code" gefolgt und habe die Anzeige der Hilfe im Modul debugged. Dort stand dann, dass ich noch das alte Format verwendet hatte:
      var mtype = $("#content > #workbench a[name]").attr("name"), aTag;
      if(mtype) {
        var mv = (""+mtype+val).replace(/[^a-z0-9_]/ig,'_');
        aTag = $("#content > #workbench").find("a[name="+mv+"]");
      }
      if(!$(aTag).length) { // old style syntax without type
        var v = (val).replace(/[^a-z0-9_]/ig,'_');
        aTag = $("#content > #workbench").find("a[name="+v+"]");
      }
Titel: Antw:[CommandRef][Bug] Konflikt zwischen Module Statistics und BOTVAC
Beitrag von: rudolfkoenig am 23 Februar 2021, 22:50:22
ZitatWäre das nicht ne gute Gelegenheit um mal in Richtung id zu gehen? name ist in HTML5 ja nicht mehr valide.
Danke fuer den Hinweis, war mir nicht bewusst.

Die Umstellung ist leider nicht so einfach, aber ich habe schon mal eine erste Version versucht.
Erweitern musste ich fhemweb_modular.js, commandref_modular.pl, commandref_static.pl, und als Testkandidaten die drei MQTT2*.pm Dateien.
Bin gespannt, ob/was ich uebersehen habe.

Neuer Syntax (wird zusaetzlich zu den bisherigen akzeptiert):
<a id="MQTT2_DEVICE">
<a id="MQTT2_DEVICE-define">
<a id="MQTT2_DEVICE-attr">
<a id="MQTT2_DEVICE-attr-setList">
fhemweb.js sucht bei set/get nach id="MODUL-set-XXX" bzw. id="MODUL-get-XXX"

ZitatDann könnte man auch gleich sowas wie modulename.subsection in Kleinbuchstaben oder so vorgeben.
Das habe ich nicht verstanden.
Titel: Antw:[CommandRef][Bug] Konflikt zwischen Module Statistics und BOTVAC
Beitrag von: Christoph Morrison am 26 Februar 2021, 11:09:33
Zitat von: rudolfkoenig am 23 Februar 2021, 22:50:22
Das habe ich nicht verstanden.

Im Prinzip sowas wie du jetzt gemacht hast, $Device.$subsection, aber $Device-$subsection ist genauso gut.