diff --git a/lib/Ravada/WebSocket.pm b/lib/Ravada/WebSocket.pm index cd37f25c0..c39632b84 100644 --- a/lib/Ravada/WebSocket.pm +++ b/lib/Ravada/WebSocket.pm @@ -280,11 +280,29 @@ sub _list_domains_with_device($rvd,$row) { push @domains, ($domain); } } + push @domains,( _list_domains_with_devices_locked($rvd, values %devices) ); + $row->{_domains} = \@domains; $row->{_bases} = \@bases; $row->{devices} = [values %devices]; } +sub _list_domains_with_devices_locked($rvd, @devices) { + my $sql = + "SELECT d.id, d.name, d.is_base, d.status " + ." FROM host_devices_domain_locked l, domains d " + ." WHERE l.id_domain = d.id " + ." AND "; + + my $where = ''; + for (@devices ) { + $where .= " OR " if $where; + $where .= " name = ? " + } + $sth = $rvd->_dbh->prepare($sql); + $sth->execute(@devices); +} + sub _list_requests($rvd, $args) { my $login = $args->{login} or die "Error: no login arg ".Dumper($args); my $user = Ravada::Auth::SQL->new(name => $login) or die "Error: uknown user $login";