From b08277baa91260ead4814e5f51b15c7ca7233da3 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Mon, 17 Jun 2013 18:13:24 +0000 Subject: [PATCH] FIX: call summaryFn for each event (longpoll). git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@3298 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/01_FHEMWEB.pm | 42 +++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index df43b70c5..58ffe4ad9 100755 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -15,6 +15,7 @@ sub FW_iconPath($); sub FW_answerCall($); sub FW_calcWeblink($$); sub FW_dev2image($); +sub FW_devState($$@); sub FW_digestCgi($); sub FW_doDetail($); sub FW_fatal($); @@ -1073,23 +1074,9 @@ FW_showRoom() } $row++; - my ($allSets, $cmdlist, $txt) = FW_devState($d, $rf); + my ($allSets, $cmdlist, $txt) = FW_devState($d, $rf, \%extPage); - my $sfn = $modules{$type}{FW_summaryFn}; - my $newtxt; - if($sfn) { - no strict "refs"; - $newtxt = &{$sfn}($FW_wname, $d, $FW_room, \%extPage); - use strict "refs"; - } - - if(defined($newtxt)) { - FW_pO "$newtxt"; - - } else { - FW_pO "$txt"; - - } + FW_pO "$txt"; ###### @@ -2330,8 +2317,9 @@ FW_roomStatesForInform($) my $data = ""; my @rl = devspec2array("room=$room"); + my %extPage = (); foreach my $dn (@rl) { - my ($allSet, $cmdlist, $txt) = FW_devState($dn, ""); + my ($allSet, $cmdlist, $txt) = FW_devState($dn, "", \%extPage); $data .= "$dn<<$defs{$dn}{STATE}<<$txt\r\n" if($defs{$dn} && $defs{$dn}{STATE}); } @@ -2349,6 +2337,7 @@ FW_Notify($$) my $ln = $ntfy->{NAME}; my $dn = $dev->{NAME}; my $data; + my %extPage; my $rn = AttrVal($dn, "room", ""); if($filter eq "all" || $rn =~ m/\b$filter\b/) { @@ -2361,7 +2350,7 @@ FW_Notify($$) $FW_ss = ($FW_sp =~ m/smallscreen/); $FW_tp = ($FW_sp =~ m/smallscreen|touchpad/); - my ($allSet, $cmdlist, $txt) = FW_devState($dn, ""); + my ($allSet, $cmdlist, $txt) = FW_devState($dn, "", \%extPage); ($FW_wname, $FW_ME, $FW_ss, $FW_tp, $FW_subdir) = @old; $data = "$dn<<$dev->{STATE}<<$txt\n"; @@ -2418,9 +2407,9 @@ FW_FlushInform($) ################### # Compute the state (==second) column sub -FW_devState($$) +FW_devState($$@) { - my ($d, $rf) = @_; + my ($d, $rf, $extPage) = @_; my ($hasOnOff, $link); @@ -2487,6 +2476,19 @@ FW_devState($$) } } + + my $type = $defs{$d}{TYPE}; + my $sfn = $modules{$type}{FW_summaryFn}; + if($sfn) { + if(!defined($extPage)) { + my %hash; + $extPage = \%hash; + } + no strict "refs"; + $txt = &{$sfn}($FW_wname, $d, $FW_room, $extPage); + use strict "refs"; + } + return ($allSets, $cmdList, $txt); }