diff --git a/fhem/CHANGED b/fhem/CHANGED index c61a9653f..c8f6f0bca 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - feature: 01_FHEMWEB.pm: add webCmdLabel (Forum #72581) - changed: fhem.pl: search cmds via lowercase/abbrev in modules (Forum #75007) - changed: 14_CUL_TCM97001: Add rain/wind Sensor - changed: 10_IT: Add FreeTec update documentation diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index b6129aa0b..161e3aca6 100755 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -199,8 +199,8 @@ FHEMWEB_Initialize($) ############### # Initialize internal structures - map { addToAttrList($_) } ( "webCmd", "icon", "cmdIcon", "devStateIcon", - "widgetOverride", "sortby", "devStateStyle"); + map { addToAttrList($_) } ( "webCmd", "webCmdLabel:textField-long", "icon", + "cmdIcon", "devStateIcon", "widgetOverride", "sortby", "devStateStyle"); InternalTimer(time()+60, "FW_closeInactiveClients", 0, 0); $FW_dir = "$attr{global}{modpath}/www"; @@ -1701,7 +1701,14 @@ FW_makeDeviceLine($$$$$) Log 1, "ERROR: bad cmdIcon definition for $d" if(@a % 2); my %cmdIcon = @a; - foreach my $cmd (split(":", $cmdlist)) { + my @cl = split(":", $cmdlist); + my @wcl = split(":", AttrVal($d, "webCmdLabel", "")); + my $nRows; + $nRows = split("\n", AttrVal($d, "webCmdLabel", "")) if(@wcl); + @wcl = () if(@wcl != @cl); # some safety + + for(my $i1=0; $i1<@cl; $i1++) { + my $cmd = $cl[$i1]; my $htmlTxt; my @c = split(' ', $cmd); # @c==0 if $cmd==" "; if(int(@c) && $allSets && $allSets =~ m/\b$c[0]:([^ ]*)/) { @@ -1720,7 +1727,23 @@ FW_makeDeviceLine($$$$$) } else { my $nCmd = $cmdIcon{$cmd} ? FW_makeImage($cmdIcon{$cmd},$cmd,"webCmd") : $cmd; - FW_pH "cmd.$d=set $d $cmd$rf", $nCmd, 1, "col3"; + if(@wcl > $i1) { + if($nRows > 1) { + FW_pO "
| $wcl[$i1] | "; + FW_pH "cmd.$d=set $d $cmd$rf", $nCmd, 0, "col3"; + FW_pO " | "; + FW_pO "