From bd6d8388af9cfd22b972a07b01d142e2af731d6c Mon Sep 17 00:00:00 2001
From: rudolfkoenig <>
Date: Mon, 16 Apr 2012 13:41:00 +0000
Subject: [PATCH] Some attribute values are selectable via dropdown
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@1458 2b470e98-0d58-463d-a4d8-8e2adae1ed80
---
webfrontend/pgm2/01_FHEMWEB.pm | 54 ++++++++++-------------
webfrontend/pgm2/fhemweb.js | 78 ++++++++++++++++++++++++++++++++++
webfrontend/pgm2/longpoll.js | 51 ----------------------
3 files changed, 100 insertions(+), 83 deletions(-)
create mode 100644 webfrontend/pgm2/fhemweb.js
delete mode 100644 webfrontend/pgm2/longpoll.js
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 = "