diff --git a/webfrontend/pgm2/01_FHEMWEB.pm b/webfrontend/pgm2/01_FHEMWEB.pm
index cc9e9f816..9c2bab0be 100755
--- a/webfrontend/pgm2/01_FHEMWEB.pm
+++ b/webfrontend/pgm2/01_FHEMWEB.pm
@@ -21,7 +21,7 @@ sub FW_makeEdit($$$);
sub FW_makeTable($$@);
sub FW_ReadIcons();
sub FW_roomOverview($);
-sub FW_select($$$$);
+sub FW_select($$$$@);
sub FW_showLog($);
sub FW_showRoom();
sub FW_showWeblink($$$$);
@@ -396,23 +396,13 @@ FW_AnswerCall($)
$FW_tp ? "640,160" : "800,160");
##############################
# Axels FHEMWEB modules...
- my $fwextPtr;
if(defined($data{FWEXT})) {
foreach my $k (sort keys %{$data{FWEXT}}) {
if($arg =~ m/^$k/) {
-
- if($data{FWEXT}{$k}{EMBEDDED}) {
- $fwextPtr = $data{FWEXT}{$k};
- last;
-
- } else {
- no strict "refs";
- ($FW_RETTYPE, $FW_RET) = &{$data{FWEXT}{$k}{FUNC}}($arg);
- use strict "refs";
- return 0;
-
- }
-
+ no strict "refs";
+ ($FW_RETTYPE, $FW_RET) = &{$data{FWEXT}{$k}{FUNC}}($arg);
+ use strict "refs";
+ return 0;
}
}
}
@@ -497,7 +487,6 @@ FW_AnswerCall($)
if($FW_tp || $FW_ss) {
FW_pO '';
FW_pO '';
- #FW_pO ''
if($FW_ss) {
FW_pO '';
} elsif($FW_tp) {
@@ -511,15 +500,11 @@ FW_AnswerCall($)
$prf = "smallscreen" if(!$prf && $FW_ss);
$prf = "touchpad" if(!$prf && $FW_tp);
FW_pO "";
- FW_pO "{STYLESHEET}\" rel=\"stylesheet\"/>"
- if($fwextPtr && $fwextPtr->{STYLESHEET});
FW_pO ""
if($FW_plotmode eq "SVG");
- FW_pO ""
- if($FW_longpoll);
- FW_pO ""
- if($fwextPtr && $fwextPtr->{JAVASCRIPT});
- FW_pO "\n
";
+ FW_pO "";
+ my $onload = $FW_longpoll ? "onload=\"FW_delayedStart()\"" : "";
+ FW_pO "\n";
if($FW_cmdret) {
$FW_detail = "";
@@ -538,8 +523,7 @@ FW_AnswerCall($)
}
FW_roomOverview($cmd);
- if($fwextPtr) { &{$fwextPtr->{FUNC}}($arg); }
- elsif($cmd =~ m/^style /) { FW_style($cmd,undef); }
+ if($cmd =~ m/^style /) { FW_style($cmd,undef); }
elsif($FW_detail) { FW_doDetail($FW_detail); }
elsif($FW_room) { FW_showRoom(); }
elsif($cmd =~ /^logwrapper/) { FW_logWrapper($cmd); }
@@ -681,13 +665,14 @@ FW_makeSelect($$$$)
{
my ($d, $cmd, $list,$class) = @_;
return if(!$list || $FW_hiddenroom{input});
- my @al = sort map { s/[:;].*//;$_ } split(" ", $list);
+ my @al = sort map { s/:.*//;$_ } split(" ", $list);
FW_pO "";
}
@@ -721,7 +706,11 @@ FW_doDetail($)
FW_makeTable($d, $defs{$d});
FW_pO "Readings" if($defs{$d}{READINGS});
FW_makeTable($d, $defs{$d}{READINGS});
- FW_makeSelect($d, "attr", getAllAttr($d),"attr");
+ my $attrList = getAllAttr($d);
+ my $roomList = join(",", sort keys %FW_rooms);
+ $roomList=~s/ /\ /g;
+ $attrList =~ s/room /room:$roomList /;
+ FW_makeSelect($d, "attr", $attrList,"attr");
FW_makeTable($d, $attr{$d}, "deleteattr");
@@ -1287,10 +1276,11 @@ FW_hidden($$)
##################
# Generate a select field with option list
sub
-FW_select($$$$)
+FW_select($$$$@)
{
- my ($n, $va, $def,$class) = @_;
- my $s = "