Autor Thema: Online Attributhilfe für ähnliche Attribute duplizieren/übernehmen  (Gelesen 1395 mal)

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7134
Guten Morgen,

es gibt ja für Attribute/Setter/Getter die Möglichkeit die Hilfe im FHEMWEB einzublenden wenn das Attr ausgewählt wird.
Gibt es die Möglichkeit den identischen Hilfetext nicht immer duplizieren zu müssen wenn er für mehrere Attr gilt ?

Zum Beispiel habe ich ein Attr consumer01 mit der entsprechenden (recht umfangreichen) Hilfe.
Nun gibt es noch die Attr consumer02,consumer03,consumer04,...  für die ebenfalls die identische Hilfe gilt.
Die müsste ich nun entsprechend oft in der CommandRef kopieren.

Geht das besser ?

LG und einen schönen Feiertag allen.
Heiko
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24164
Ich gehe davon aus, dass du damit das "In der FHEMWEB Detailseite beim Attribut auswaehlen die passende Doku einblenden" meinst.
Ich kann fhemweb.js erweitern, damit bei nicht gefundener Doku und Zahl am Ende nach dem Namen ohne Zahl am Ende gesucht wird.
Ich brauche nur ein OK, will nicht sinnlos Code einbauen.

ich ich ich :)

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7134
Zitat
Ich gehe davon aus, dass du damit das "In der FHEMWEB Detailseite beim Attribut auswaehlen die passende Doku einblenden" meinst.
Ja genau, das meine ich  :)

Diese Erweiterung wäre bestimmt auch für andere Entwickler hilfreich, denn solche Attribut/Setter/Getter-Fortschreibungen sind sicher kein Einzelfall.

Danke !  :D
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6231
  • Finger weg von der fhem.cfg
Hi,

ich habe sowas ähnliches, aber halt nicht mit Zahl am Ende...
Allerdings habe ich auch sowas wie "backend_.*" in der Attributliste. Vielleicht könnte man dessen Doku einblenden, wenn man ein "passendes" Attribut bearbeitet.

Ach ja, wenn wir gerade dabei sind: Es wäre außerdem schön, wenn das mit den Sprachen nicht ganz so strikt gehandhabt werden würde. D.h. wenn es die Doku nicht in der richtigen Sprache, aber in einer anderen Sprache gibt, dann wäre es schön, wenn eben die andere Sprache angezeigt wird.

Gruß,
   Thorsten
FUIP

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24164
Hab was eingebaut.

- die Doku kommt erst, wenn man den Attribut-Namen per Dropdown auswaehlt. Das funktioniert bei Regexp-Namen nicht direkt, erst muss man auf ein bereits gesetzten Attributnamen klicken (damit kommt er in die Auswahlliste), dann was Anderes auswaehlen, dann wieder zurueck.
- es wird nur fuer Attribute mit Zahl am Ende eine erneute Suche in der Hilfe ohne Zahl unternommen. Falls jemand einen Vorschlag hat, wie man vom Attributnamen auch in anderen Faellen zum Hilfstext-ID kommt, bitte melden.

P.S.: Bitte bei der Doku die neue Syntax benutzen (<a id="modulName-[set|get|attr]-attrName"> und nicht mehr <a name="attrName"> )

Zitat
Es wäre außerdem schön, wenn das mit den Sprachen nicht ganz so strikt gehandhabt werden würde. D.h. wenn es die Doku nicht in der richtigen Sprache, aber in einer anderen Sprache gibt, dann wäre es schön, wenn eben die andere Sprache angezeigt wird.
Ich meine das ist eine Aufgabe fuer das help Modul.
fhemweb.js versucht es trotzdem nochmal auf deutsch, wenn "No help found" zurueckkommt.
Kannst du mir den Fall nennen, wo das nicht funktioniert?

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7134
Habs mal ausprobiert. Neue fhemweb.js aus SVN geladen und restartet.
Klappt aber noch nicht. Vllt. mache ich etwas falsch.

In der Doku jetzt so definiert:

       <a id="SolarForecast-attr-consumer"></a>
       <li><b>consumerXX &lt;Device Name&gt; type=&lt;type&gt; power=&lt;power&gt; [mode=&lt;mode&gt;] [icon=&lt;Icon&gt;] [mintime=&lt;minutes&gt;] [on=&lt;Kommando&gt;] [off=&lt;Kommando&gt;] [etotal=&lt;Readingname&gt;:&lt;Einheit&gt;] </b><br>
        Registriert einen Verbraucher &lt;Device Name&gt; beim SolarForecast Device. Dabei ist &lt;Device Name&gt;
....

Die Attr heißen wie oben angegeben consumer01, consumer02, ...
« Letzte Änderung: 01 Mai 2021, 17:29:14 von DS_Starter »
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6231
  • Finger weg von der fhem.cfg
Hi,
ich wollte jetzt auch mal sehen, ob meine Problemchen vielleicht an einem alten Stand liegen und habe ein update gemacht.
Tja:
2021.05.01 13:14:32 1: ERROR: Select error -1 (128), error count= 0
Select error -1 (128)
Der Befehl "uptime" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
...das muss ich jetzt erstmal finden.
Gruß,
   Thorsten
FUIP

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6231
  • Finger weg von der fhem.cfg
Hi,
so, ich habe das Problem gefunden. Das Modul SYSSTAT schmiert inzwischen unter Windows ab. Das ist wohl nicht so schlimm da es für Windows sowieso nicht funktioniert.

- die Doku kommt erst, wenn man den Attribut-Namen per Dropdown auswaehlt. Das funktioniert bei Regexp-Namen nicht direkt, erst muss man auf ein bereits gesetzten Attributnamen klicken (damit kommt er in die Auswahlliste), dann was Anderes auswaehlen, dann wieder zurueck.
Du hattest mir den Tipp mit $hash->{'.AttrList'} gegeben, wobei $hash der Hash des Geräts ist. Dort trage ich die "Instanzen" des Regexp-Attributs ein. Dadurch sieht man das auch sofort in der Drop-Down-Liste und kann es sofort auswählen. Im Prinzip könnte man da dann auch die passende Doku anzeigen. (Ich habe wahrscheinlich auch vor, zu "backend_.*" passende "Instanzen" anzubieten, um es dem Anwender einfacher zu machen.)
Allerdings sehe ich momentan auch die Doku zum Attribut "backend_.*" nicht, wenn man es auswählt. Mir ist klar, dass man einem Attribut wie "backend_.*" keinen Wert zuordnen kann, aber es wäre trotzdem schön, wenn man die Doku sehen würde.
Ich kann aber auch selbst mal nachschauen, warum das nicht klappt.

Zitat
Ich meine das ist eine Aufgabe fuer das help Modul.
fhemweb.js versucht es trotzdem nochmal auf deutsch, wenn "No help found" zurueckkommt.
Kannst du mir den Fall nennen, wo das nicht funktioniert?
Ich habe nochmal nachgesehen. Das funktioniert in meiner Produktivumgebung nicht, aber da habe ich ein relativ altes FHEM. In einer aktuellen Installation klappt das tatsächlich so, wie ich es mir gewünscht hatte.

Gruß,
   Thorsten
FUIP

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7134
@Thorsten, klappt bei dir dieses Konstrukt mit <a id= ...  ?
Geht bei mir nicht wie ich in #5  geschrieben habe. Inzwischen noch Browser Cash gelöscht, nochmal update gemacht, restartet etc.
Entweder klappt es wirklich noch nicht oder ich habe etwas falsch geschrieben.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6231
  • Finger weg von der fhem.cfg
Allerdings sehe ich momentan auch die Doku zum Attribut "backend_.*" nicht, wenn man es auswählt. Mir ist klar, dass man einem Attribut wie "backend_.*" keinen Wert zuordnen kann, aber es wäre trotzdem schön, wenn man die Doku sehen würde.
Ich kann aber auch selbst mal nachschauen, warum das nicht klappt.
Ich habe jetzt mal den JavaScript-Debugger angeworfen...
Wenn ich das hier mache:
<a name="backend_____">backend_.*</a>
Anstatt
<a name="backend_.*">backend_.*</a>
...dann wird die Doku zumindest mal angezeigt, wenn ich "backend_.*" auswähle. (Ja, ich weiß, die Version mit FUIP-attr-backend... wäre besser.)
Bei der Implementierung ist dann auch klar, warum es schwierig ist, die Doku zum Regexp-Attribut anzuzeigen, wenn eine "Instanz" davon ausgewählt wird. Ich glaube, dass man prinzipiell zwar Zeichen wie . und * in ein HTML-id-Tag aufnehmen kann, aber schön ist das tatsächlich nicht.
 
@Thorsten, klappt bei dir dieses Konstrukt mit <a id= ...  ?
Ich habe das nicht ausprobiert und mir würde es ja auch nichts nützen. Mein Szenario ist ein klein wenig anders.

Gruß,
   Thorsten
FUIP

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24164
@DS_Starter: ich habe mit deiner Doku kein Problem, siehe Anhang.
Wichtig: das erste gefundene ID enthaelt den Modulnamen: <a id="SolarForecast">, es wird mit diesem Namen weitergesucht nach <a id="SolarForecast-attr-consumer">.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24164
Zitat
Mir ist klar, dass man einem Attribut wie "backend_.*" keinen Wert zuordnen kann, aber es wäre trotzdem schön, wenn man die Doku sehen würde.
Ausser Zahlen wird am Ende auch .* abgeschnitten, und ohne diese erneut versucht :)

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7134
Hmm, ich habe am Anfang der Doku stehen:

=begin html_DE

<a id="SolarForecast"></a>
<h3>SolarForecast</h3>
<br>

Das Modul SolarForecast erstellt auf Grundlage der Werte aus generischen Quellendevices eine
...

Dann kommen keinerlei Marken mehr bis zu dieser:

       <a id="SolarForecast-attr-consumer"></a>
       <li><b>consumer01 &lt;Device Name&gt; type=&lt;type&gt; power=&lt;power&gt; [mode=&lt;mode&gt;] [icon=&lt;Icon&gt;] [mintime=&lt;minutes&gt;] [on=&lt;Kommando&gt;] [off=&lt;Kommando&gt;] [etotal=&lt;Readingname&gt;:&lt;Einheit&gt;] </b><br>
        Registriert einen Verbraucher &lt;Device Name&gt; beim SolarForecast Device. Dabei ist &lt;Device Name&gt;
....

Klappt bei mir leider nicht. Irgendwas mache ich offensichtlich falsch.
Alternative Browser hab ich auch schon probiert. Werde morgen früh auch mal meine produktive Instanz frisch updaten und dort probieren.
Mal schauen ob sich noch etwas ergibt.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24164
Ansonsten bitte komplette Doku hier anhaengen, und ich teste es mal selbst.

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7134
Ich habe die Doku mal radikal eingekürzt. Geht bei mir trotzdem nicht und habe es als File hier angehängt.
Vielleicht siehst du den Fehler ...
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6231
  • Finger weg von der fhem.cfg
Falls jemand einen Vorschlag hat, wie man vom Attributnamen auch in anderen Faellen zum Hilfstext-ID kommt, bitte melden.
Mich mal meld...
Ich habe mal folgendes Experiment in fhemweb.js eingebaut:
    if(!$(aTag).length) { // old style #2 syntax : webCmd
      var v = (val).replace(/[^a-z0-9_-]/ig,'_');
      aTag = $("#content > #workbench").find("a[name="+v+"]");
    }

// PFE experiments begin
if(!$(aTag).length) {
$("#content > #workbench").find("a[id^='"+mtype+"-"+selType+"-'][data-pattern]").each(
function(index) {
if( val.match($(this).data("pattern")) ) {
aTag = $(this);
return false;
};
return true;
}
);
};
// PFE experiments end


    if($(aTag).length) {
      var liTag = $(aTag).next("li");
...und in meiner Doku steht jetzt folgendes:
<li><a id="FUIP-attr-backend_" data-pattern="backend_.*">backend_.*</a>: Adresse eines (entfernten) Backend-FHEMs<br>
Wenn ich jetzt aus der Liste "backend_home" auswähle, dann kommt diese Doku hoch.
Ich dachte erst, dass das für die Performance ganz schlecht wird, aber es ist gar nicht so schlimm, da sowieso nur die Elemente ausgewählt werden, die auch das "data-pattern" Attribut haben. Das dürfte nicht wirklich schlimm sein.

Was haltet Ihr davon?

Gruß,
   Thorsten

FUIP

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7134
Guten Morgen,

habe heute früh auf allen Instanzen nochmal ein Update vorgenommen und jetzt läuft es ganz hervorragend.  :)
Auch bei Set/Get.
Weiß nicht was da gestern schief gelaufen war.

Nochmals herzlichen Dank Rudi, das ist eine sehr hilfreiche Erweiterung.

LG und einen schönen Sonntag.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24164
Zitat
Was haltet Ihr davon?
Viel, gekauft, ich habe dein Patch etwas vereinfacht eingebaut.

@Heiko: da diese Methode auch das implizite Loeschen der Zahlen am Ende abdeckt, aber transparent ist, habe ich den Hack mit dem Loeschen der Zahlen am Ende entfernt => Es tut mir leid, aber du muss deine Doku mit data-pattern="consumer.*" erweitern :)

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6231
  • Finger weg von der fhem.cfg
Hi,
danke für's Einbauen!

Das mit dem "return false" / "return true" war übrigens Absicht und es tut auch was. Zumindest das "return false" sollte bewirken, dass nicht weitergesucht wird, wenn ein Match gefunden wird. Das bringt ein paar Mikrosekunden und sorgt auch dafür, dass der erste Treffer benutzt wird. Bei Dir wird jetzt der letzte Treffer genommen. Das ist meiner Meinung nach nicht ganz so intuitiv.
Momentan ist das vielleicht egal, aber wenn das vielleicht mal ein bisschen mehr benutzt wird, dann wird es schwierig, das noch zu ändern.

EDIT:
Es gibt auch noch die "Kapitel"-Namen in der Doku, also z.B.
   <a name="Helloattr"></a>
Sollte das auch geändert werden in
   <a id"Hello-attr"></a>
?
Analog für define, set, get (etc.?)

Sind die ganzen Sachen eigentlich irgendwo dokumentiert? Hier z.B. sieht es etwas anders aus: https://wiki.fhem.de/wiki/DevelopmentModuleIntro#.22Hello_World.22_Beispiel
und hier steht dazu gar nichts:
https://wiki.fhem.de/wiki/Guidelines_zur_Dokumentation


Gruß,
   Thorsten
« Letzte Änderung: 02 Mai 2021, 11:17:13 von Thorsten Pferdekaemper »
FUIP

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24164
Das Optimieren habe ich auch ueberlegt, und habe die Microsekunden fuer die etwas bessere Lesbarkeit geopfert.
Falls mehrere data-patterns fuer ein Attribut zutreffen, dann tut mir das nur ein ganz ganz bisschen Leid.

Zitat
Sollte das auch geändert werden in
Ja, die Ursache bzw. Beschreibung ist hier https://forum.fhem.de/index.php/topic,118915.msg1135123.html#msg1135123
Ich habe in den MQTT2* Modulen damit angefangen, und habe vor meine anderen Module bei Gelegenheit auch nachzuziehen.

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7134
Zitat
Es tut mir leid, aber du muss deine Doku mit data-pattern="consumer.*" erweitern

Kein Problem  :) ... habs angepasst und funktioniert.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6231
  • Finger weg von der fhem.cfg
Das Optimieren habe ich auch ueberlegt, und habe die Microsekunden fuer die etwas bessere Lesbarkeit geopfert.
Falls mehrere data-patterns fuer ein Attribut zutreffen, dann tut mir das nur ein ganz ganz bisschen Leid.
Das ist auch ok für mich.

Zitat
Ja, die Ursache bzw. Beschreibung ist hier https://forum.fhem.de/index.php/topic,118915.msg1135123.html#msg1135123
Ich habe in den MQTT2* Modulen damit angefangen, und habe vor meine anderen Module bei Gelegenheit auch nachzuziehen.
Mal sehen, vielleicht habe ich die Muße, das irgendwo im Wiki aufzuschreiben.

Gruß,
   Thorsten
FUIP

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6231
  • Finger weg von der fhem.cfg
Hi,
ich habe mich jetzt nochmal damit befasst, nicht zuletzt wegen der Doku. Dabei sind mir noch folgende Sachen aufgefallen:

Anzeige mehrerer Hilfetexte, wenn's mal nicht ganz so schnell geht
Wenn das Laden des ersten Hilfetextes etwas dauert (kann bei großen Modulen schnell mal passieren), dann klicke ich manchmal schon auf das nächste Attribut. Das Ergebnis sieht dann so aus, wie im Screenshot "DoppelteDoku".
Die zweite Doku geht erst weg, wenn man die ganze Seite aktualisiert. (Wenn man schnell klickt, kann man auch mehr als zwei hinbekommen.)
Das Problem liegt daran, dass das Laden der Doku asynchron passiert und man währenddessen ein anderes Attribut wählen kann. Das Löschen der "alten" Doku wird aber am Anfang synchron gemacht.
Lösen lässt sich das so:
      if(!$(liTag).length)
        liTag = $(aTag).parent().next("li");
      if($(liTag).length) {
// PFE experiments begin
$("#devSpecHelp").remove();
// PFE experiments end
        $(sel).closest("div[cmd='"+selType+"']")
           .after('<div class="makeTable" id="devSpecHelp"></div>')
        $("#devSpecHelp").html($(liTag).html());
      }
    }
    wb.remove();
...wobei ich mir nicht 100% sicher bin, ob die Callbacks immer in der richtigen Reihenfolge kommen. Soweit ich es ausprobiert habe hat es immer gepasst.

Device specific help geht manchmal nicht auf
Ich hatte mich schon lange gewundert, warum die "Device specific help" manchmal erst beim zweiten Klick aufgeht. Das passiert dann, wenn man vorher schon eine Set-/Get- oder Attribut-Hilfe offen hat. Dann geht beim ersten Klick die offene Hilfe zu und erst der zweite Klick öffnet die richtige Hilfe.
Das kann man auch relativ einfach wegbekommen:
  $("div.devSpecHelp a").each(function(){       // Help on detail window
    var dev = FW_getLink(this).split("#").pop();
    $(this).unbind("click");
    $(this).attr("href", "#"); // Desktop: show underlined Text
    $(this).removeAttr("onclick");

    $(this).click(function(evt){
  // PFE experiments begin
          if($("#content > #devSpecHelp").length) {
  // if($("#devSpecHelp").length) {
  // PFE experiments end  
  $("#devSpecHelp").remove();
  return;
      }
  // PFE experiments begin
  $("#devSpecHelp").remove();
  // PFE experiments end  
      FW_getHelp(dev, function(data){
        $("#content").append('<div id="devSpecHelp"></div>');
        $("#devSpecHelp").html(data);
        var off = $("#devSpecHelp").position().top-20;
        $('body, html').animate({scrollTop:off}, 500);
      });
    });
  });
Dadurch bleibt die vorherige Funktionalität erhalten (d.h. man kann die "Device specific help" auch wieder zumachen), aber eben nur auf die "Device specific help" bezogen.

Attribut-Hilfe erscheint nicht, wenn man das Attribut über den Link auswählt
Bisher erscheint die Attribut-Hilfe nur, wenn man das Attribut über die Drop-Down-Liste auswählt. Das mache ich praktisch nie, wenn das Attribut schon gesetzt ist.
Man kann das auch relativ einfach ändern:
  $("table.attributes tr div.dname")    // Click on attribute fills input value
    .each(function(){
      $(this)
        .html('<a>'+$(this).html()+'</a>')
        .css({cursor:"pointer"})
        .click(function(){
          var attrName = $(this).text();
          var sel = "#sel_attr"+$(this).attr("data-name").replace(/\./g,'_');
          if($(sel+" option[value='"+attrName+"']").length == 0)
            $(sel).append('<option value="'+attrName+'">'+attrName+'</option>');
          $(sel).val(attrName);
          FW_detailSelect(sel, true);
    // PFE experiments begin
  $(sel).trigger("change");
          // PFE experiments end  
        });
    });
Man könnte sich auch auf den Standpunkt stellen, dass man das Attribut ja schon kennt, wenn man es mal gesetzt hat. Komischerweise ist das bei mir oft nicht so. Außerdem schreiben einige Module Vorbelegungen explizit in die Attribute rein, wodurch die Attribute auch schon da sind, bevor man sie als Benutzer angefasst hat.

Gruß,
   Thorsten


FUIP

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24164
Zitat
Anzeige mehrerer Hilfetexte, wenn's mal nicht ganz so schnell geht
Die Ursache liegt vmtl. nicht in der grossen Doku, sondern im langsamen (weil blockierten) FHEM.
Ich habe die Aenderung uebernommen.

Zitat
Device specific help geht manchmal nicht auf
Da war eigentlich Absicht, damit man die Hilfe entfernen kann. Mit der Aenderung hat man zwei identische IDs im Dokument, was nicht der reinen Lehre entspricht, und erfordert, dass Ueberall die lange Identifikation (#content>#devSpecHelp, usw) verwendet wird. Ich habe die Aenderung erstmal nicht eingebaut.

Zitat
Attribut-Hilfe erscheint nicht, wenn man das Attribut über den Link auswählt
Das habe ich urspruenglich aus genau dem erwaehnten Gruenden nicht eingebaut, wollte "alte Benutzer" nicht aergern.
Bin aber nicht mehr sicher, dass meine Grunde valide sind, und habe die Aenderung uebernommen.

Offline Thorsten Pferdekaemper

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6231
  • Finger weg von der fhem.cfg
Hi,
danke für's Übernehmen!

Da war eigentlich Absicht, damit man die Hilfe entfernen kann. Mit der Aenderung hat man zwei identische IDs im Dokument, was nicht der reinen Lehre entspricht, und erfordert, dass Ueberall die lange Identifikation (#content>#devSpecHelp, usw) verwendet wird. Ich habe die Aenderung erstmal nicht eingebaut.
Die identischen #devSpecHelp waren vorher schon da. Meine Änderung bedeutet nur, dass beim Klick auf den Link nur geprüft wird, ob "#content>#devSpecHelp" offen ist und nicht irgendein #devSpecHelp.
Mit meiner Änderung kann man die Set/Get/Attribut-Hilfe tatsächlich nicht mehr entfernen. Ich hätte aber auch nicht vermutet, dass man durch einen Klick auf "Device specific help" die Attribut-Hilfe wegbekommt. Ich selbst weiß das jetzt alles und habe kein persönliches Problem damit. Ich hatte halt eher einen Bug dahinter vermutet als Absicht.
Schöner wäre es meiner Meinung nach, wenn es direkt bei der Set/Get/Attribut-Hilfe ein Knöpchen gäbe, um die Doku zu schließen. Ich kann ja mal was dazu ausprobieren.

Gruß,
   Thorsten
FUIP