From 7c65aa776f7a1fce528cda94e573525df7d49cca Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sun, 29 Jul 2018 15:07:19 +0000 Subject: [PATCH] fhemweb.js: direct help for attr on dropdown change git-svn-id: https://svn.fhem.de/fhem/trunk@17049 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/01_FHEMWEB.pm | 2 ++ fhem/www/pgm2/fhemweb.js | 39 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index d9e46f30d..9246bbd86 100644 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -3423,6 +3423,7 @@ FW_widgetOverride($$) instance from now on.
+
  • allowedHttpMethods
    FHEMWEB implements the GET, POST and OPTIONS HTTP methods. Some external devices require the HEAD method, which is not implemented correctly in @@ -4116,6 +4117,7 @@ FW_widgetOverride($$) für eine FHEMWEB Instanz unerwünscht.

  • +
  • allowedHttpMethods
    FHEMWEB implementiert die HTTP Methoden GET, POST und OPTIONS. Manche externe Geräte benötigen HEAD, das ist aber in FHEMWEB nicht diff --git a/fhem/www/pgm2/fhemweb.js b/fhem/www/pgm2/fhemweb.js index c5065cc93..305d20be0 100644 --- a/fhem/www/pgm2/fhemweb.js +++ b/fhem/www/pgm2/fhemweb.js @@ -223,9 +223,7 @@ FW_jqueryReadyFn() return; } $("#content").append('
    '); - FW_cmd(FW_root+"?cmd=help "+dev+"&XHR=1", function(data) { - if(!$("#devSpecHelp").length) // FHEM slow, user clicked again, #68166 - return; + FW_getHelp(dev, function(data){ $("#devSpecHelp").html(data); var off = $("#devSpecHelp").position().top-20; $('body, html').animate({scrollTop:off}, 500); @@ -280,12 +278,47 @@ FW_jqueryReadyFn() FW_urlParams[kv[0]] = kv[1]; } + $("select[id^=sel_attr],select[id^=sel_set],select[id^=sel_get]") + .change(function(){ // online help + var val = $(this).val(); + var m = $(this).attr("id").match(/sel_(set|get|attr)(.*)/); + if(!m) + return; + if($("#devSpecHelp").length == 0) + $("#content").append('
    '); + FW_getHelp(m[2], function(data) { + var str = ''; // my regexp crashes Chrome :( + var o1 = data.indexOf(str); + if(o1 < 0) + return; + data = data.substr(o1+str.length); + o1 = data.indexOf('