From 3f0b069fce9c7210cb1dbc9723d282c0993f96ac Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Fri, 27 Dec 2013 14:12:04 +0000 Subject: [PATCH] FHEMWEB: sortRooms by andre git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@4472 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/01_FHEMWEB.pm | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index 563e86967..89c29d832 100755 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -138,6 +138,7 @@ FHEMWEB_Initialize($) refresh reverseLogs:0,1 roomIcons + sortRooms smallscreen:unused stylesheetPrefix touchpad:unused @@ -923,6 +924,18 @@ FW_makeTableFromArray($$@) { } } +sub +FW_roomIdx(\@$) +{ + my ($arr,$v) = @_; + my ($index) = grep { $arr->[$_] =~ /^$v$/ } 0..$#$arr; + + return "9999-$v" if( !defined($index) ); + + return $index; +} + + ############## # Header, Zoom-Icons & list of rooms at the left. sub @@ -982,9 +995,13 @@ FW_roomOverview($) } $FW_room = "" if(!$FW_room); + my @sortBy = split( " ", AttrVal( $FW_wname, "sortRooms", "" ) ); + @sortBy = sort keys %FW_rooms if( scalar @sortBy == 0 ); + ########################## # Rooms and other links - foreach my $r (sort keys %FW_rooms) { + foreach my $r ( sort { FW_roomIdx(@sortBy,$a) cmp + FW_roomIdx(@sortBy,$b) } keys %FW_rooms ) { next if($r eq "hidden" || $FW_hiddenroom{$r}); $FW_room = $r if(!$FW_room && $FW_ss); $r =~ s/
+ +
  • sortRooms
    + Space separated list of rooms to override the default + sort order of the room links. Example:
    + attr WEB sortRooms DG OG EG Keller +
  • +
    +
  • sortby
    Take the value of this attribute when sorting the devices in the room