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('