98_version.pm - unklare Rückgabe bei Eingabefehler

Begonnen von betateilchen, 19 Januar 2019, 17:45:10

Vorheriges Thema - Nächstes Thema

betateilchen

Hallo Markus,

wenn man in die FHEM Befehlszeile versehentlich "versions" statt "version" eingibt, bekommt man ein Popup, in dem steht, dass der Befehl "versions" unbekannt ist, unterhalb dieser Info befindet sich dann aber trotzdem noch die Versionsangabe zu fhemweb.js, Siehe Screenshot

Wenn man schon den Befehl falsch eingibt, sollte man besser gar keine Ausgabe bekommen. Und ob man die Fehlermeldung dann in einem Popup braucht, würde ich auch in Frage stellen.

Kein wirklich großes Problem, aber wenn Du mal wieder irgendwann das Modul in Arbeit hast, kannst Du es ja auf die ToDo Liste setzen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus Bloch

Hallo Udo,

da muss ich Dich leider an Rudi weiterverweisen. Die geladenen JavaScript-Files mit deren Versionen wird durch fhemweb.js an den Output von 98_version.pm anhängt.

In fhemweb.js wird dabei nur der eingegebene Befehl auf die Regexp ^\s*ver.* geprüft:

Code (fhemweb.js ab Zeile 164) Auswählen

    $(this).on("submit", function(e) {
      var val = $(input).val();
      if(val.match(/^\s*ver.*/)) {              // version
        e.preventDefault();
        $(input).val("");
        return FW_showVersion(val);
       
      }

...

function
FW_showVersion(val)
{
  FW_cmd(FW_root+"?cmd="+encodeURIComponent(val)+"&XHR=1", function(data){
    var list = Object.keys(FW_version);
    list.sort();
    for(var i1=0; i1<list.length; i1++) {
      var ma = /\$Id: ([^ ]*) (.*) \$/.exec(FW_version[list[i1]]);
      if(ma) {
        if(ma[1].length < 26)
          ma[1] = (ma[1]+"                            ").substr(0,26);
        data += "\n"+ma[1]+" "+ma[2];
      }
    }
    FW_okDialog('<pre>'+data+'</pre>');
  });
  return false;
}


Das ist auch von ihm implementiert worden.

Viele Grüße

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

Wenn jemandem eine kurze und verstaendliche Loesung dafuer einfaellt, wie man version mit all seinen Abkeurzungen abfaengt (mir is das nicht gelungen), dann baue ich das ein.
Solange muss jeder, der sich bei version vertippt, ganz tapfer sein, und diesen Dialog ertragen.

Otto123

Ich habe auch keinen Vorschlag, aber etwas rumgespielt. Das "Problem" ist doch mehrstufig ?
Wenn man version bis zum dritten Buchstaben eingibt: v ve oder ver -> bekommt man die Versionsliste im Browser ohne Popup
Wenn man version dann weiter vervollständigt, also vers versi versio version -> bekommt man die Versionsliste im Popup.
Wenn man mehr eingibt (wie im ersten Post bemerkt) oder sich auf dem Weg zu "version" verschreibt, also z.B. versa -> bekommt man das popup mit der Fehlermeldung wie von udo bemerkt.

Viele Grüße
Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

Es ist ja auch kein wirklicher Fehler, der irgendwelche Probleme nach sich zieht. Es sieht halt nur merkwürdig auf. Aber tagelang den Kopf darüber zu zerbrechen lohnt sich bestimmt nicht.
-----------------------
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: betateilchen am 19 Januar 2019, 17:45:10
wenn man in die FHEM Befehlszeile versehentlich "versions" statt "version" eingibt,

... könnte man das einfach durch folgenden kleinen patch abfangen :)


Index: 98_version.pm
===================================================================
--- 98_version.pm       (revision 18702)
+++ 98_version.pm       (working copy)
@@ -8,6 +8,7 @@

   $cmds{version} = {  Fn => "CommandVersion",
                       Hlp=>"[<filter>|revision] [noheader],print SVN version of loaded modules"};
+  $cmds{versions} = { ReplacedBy => "version" };
}

#####################################
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!