FHEM Forum

FHEM => Sonstiges => Thema gestartet von: betateilchen am 19 Januar 2019, 17:45:10

Titel: 98_version.pm - unklare Rückgabe bei Eingabefehler
Beitrag von: betateilchen am 19 Januar 2019, 17:45:10
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.
Titel: Antw:98_version.pm - unklare Rückgabe bei Eingabefehler
Beitrag von: Markus Bloch am 19 Januar 2019, 22:02:26
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
Titel: Antw:98_version.pm - unklare Rückgabe bei Eingabefehler
Beitrag von: rudolfkoenig am 20 Januar 2019, 09:41:14
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.
Titel: Antw:98_version.pm - unklare Rückgabe bei Eingabefehler
Beitrag von: Otto123 am 20 Januar 2019, 10:38:48
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
Titel: Antw:98_version.pm - unklare Rückgabe bei Eingabefehler
Beitrag von: betateilchen am 20 Januar 2019, 11:12:21
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.
Titel: Antw:98_version.pm - unklare Rückgabe bei Eingabefehler
Beitrag von: betateilchen am 23 Februar 2019, 16:40:41
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" };
}

#####################################