From 82e04ecbf409dcc48814835b156199015d298944 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Fri, 10 Feb 2017 19:38:09 +0000 Subject: [PATCH] 01_FHEMWEB.pm: sortby is avaluated if enclosed in {} git-svn-id: https://svn.fhem.de/fhem/trunk@13378 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/01_FHEMWEB.pm | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index b77988cb4..99ef5f687 100755 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -1690,6 +1690,27 @@ FW_makeDeviceLine($$$$$) FW_pO ""; } +sub +FW_sortIndex($) +{ + my ($d) = @_; + return $d if(!$attr{$d}); + + my $val = $attr{$d}{sortby}; + if($val) { + return $val =~ m/^{.*}/ ? AnalyzePerlCommand($FW_chash, $val) : lc($val); + } + + if($FW_room) { + $val = $attr{$d}{"alias_$FW_room"}; + return $val if($val); + } + + $val = $attr{$d}{"alias"}; + return $val if($val); + return $d; +} + ######################## # Show the overview of devices in one room # room can be a room, all or Unsorted @@ -1717,7 +1738,7 @@ FW_showRoom() if($modules{$defs{$dev}{TYPE}}{FW_atPageEnd}) { $usuallyAtEnd{$dev} = 1; if(!AttrVal($dev, "group", undef)) { - $sortIndex{$dev} = lc(AttrVal($dev,"sortby",FW_alias($dev))); + $sortIndex{$dev} = FW_sortIndex($dev); push @atEnds, $dev; next; } @@ -1725,7 +1746,7 @@ FW_showRoom() next if(!$FW_types{$dev}); # FHEMWEB connection, missed due to caching foreach my $grp (split(",", AttrVal($dev, "group", $FW_types{$dev}))) { next if($FW_hiddengroup{$grp}); - $sortIndex{$dev} = lc(AttrVal($dev,"sortby",FW_alias($dev))); + $sortIndex{$dev} = FW_sortIndex($dev); $group{$grp}{$dev} = 1; } } @@ -3641,7 +3662,8 @@ FW_widgetOverride($$)