31_LightScene.pm: workaround for global $scn and multiple tabs

git-svn-id: https://svn.fhem.de/fhem/trunk@16181 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
justme-1968 2018-02-14 20:20:12 +00:00
parent c747ad9503
commit 6c27581126

View File

@ -942,46 +942,51 @@ LightScene_editTable($) {
$dd.=FW_hidden("detail",$hash->{NAME}) . "\n"; $dd.=FW_hidden("detail",$hash->{NAME}) . "\n";
$dd.="</form>\n"; $dd.="</form>\n";
# make table # make table
if ($scn eq "Choose scene" || $scn eq '') { my @devices;
$html.="<table><tr><td>Edit scene</td><td>$dd</td></tr>"; if( $scn && defined($hash->{SCENES}{$scn}) ) {
} else { if( defined($hash->{switchingOrder}) && defined($hash->{switchingOrder}{$scn}) ) {
$html.="<table><tr><td>Edit scene</td><td>$dd</td></tr></table>";
$html .= '<table class="block wide">';
$html .= '<tr><th>Device</th><th>Command</th></tr>'."\n";
my $row=0;
my @devices;
if( $scn && defined($hash->{switchingOrder}) && defined($hash->{switchingOrder}{$scn}) ) {
@devices = @{$hash->{switchingOrder}{$scn}}; @devices = @{$hash->{switchingOrder}{$scn}};
} else { } else {
@devices = @{$hash->{devices}}; @devices = @{$hash->{devices}};
} }
} else {
$scn = '';
}
if ($scn eq "Choose scene" || $scn eq '') {
$html.="<table><tr><td>Edit scene</td><td>$dd</td></tr>";
} else {
$html.="<table><tr><td>Edit scene</td><td>$dd</td></tr></table>";
$html .= '<table class="block wide">';
$html .= '<tr><th>Device</th><th>Command</th></tr>'."\n";
my $row=0;
#table rows #table rows
my @cmds = qw(set setcmd); my @cmds = qw(set setcmd);
my $set = "set $hash->{NAME} set $scn"; my $set = "set $hash->{NAME} set $scn";
my $setcmd = ''; my $setcmd = '';
foreach my $dev (@devices) { foreach my $dev (@devices) {
$row+=1; $row+=1;
$html .= "<tr class=\"".(($row&1)?"odd":"even")."\">"; $html .= "<tr class=\"".(($row&1)?"odd":"even")."\">";
$html .= "<td>$dev</td>"; $html .= "<td>$dev</td>";
my $default = $hash->{SCENES}{$scn}{$dev}; my $default = $hash->{SCENES}{$scn}{$dev};
if ($hash->{SCENES}{$scn}{$dev} =~ m/^;/) { if ($hash->{SCENES}{$scn}{$dev} =~ m/^;/) {
$default =~ s/^;//; $default =~ s/^;//;
$setcmd='setcmd'; $setcmd='setcmd';
} else { } else {
$setcmd='set'; $setcmd='set';
} }
$default = $default->{state} if( ref($default) eq 'HASH' ); $default = $default->{state} if( ref($default) eq 'HASH' );
$html.="<td><form method=\"get\" action=\"" . $FW_ME . "/LightScene\">\n"; $html.="<td><form method=\"get\" action=\"" . $FW_ME . "/LightScene\">\n";
$html.=FW_select('',"cmd1", \@cmds, $setcmd, 'select')."\n"; $html.=FW_select('',"cmd1", \@cmds, $setcmd, 'select')."\n";
$html.=FW_textfieldv("val.$dev", 50, 'class',$default)."\n"; $html.=FW_textfieldv("val.$dev", 50, 'class',$default)."\n";
$html.=FW_hidden("dev.$dev", $dev) . "\n"; $html.=FW_hidden("dev.$dev", $dev) . "\n";
$html.=FW_hidden("cmd.$dev", $set) . "\n"; $html.=FW_hidden("cmd.$dev", $set) . "\n";
$html.=FW_submit("lse", 'saveline'); $html.=FW_submit("lse", 'saveline');
$html.=FW_hidden("scn", $scn) . "\n"; $html.=FW_hidden("scn", $scn) . "\n";
$html.=FW_hidden("detail",$hash->{NAME}) . "\n"; $html.=FW_hidden("detail",$hash->{NAME}) . "\n";
$html .= "</form></td>\n"; $html .= "</form></td>\n";
} }
} }
#table end #table end
$html .= "</table><br>\n"; $html .= "</table><br>\n";