Fix finding Storage by ServerId
This commit is contained in:
parent
b8f6617db3
commit
9e8a876101
|
@ -53,64 +53,65 @@ $primary_key = 'Id';
|
|||
#__PACKAGE__->primary_key('Id');
|
||||
|
||||
sub find {
|
||||
shift if $_[0] eq 'ZoneMinder::Storage';
|
||||
my %sql_filters = @_;
|
||||
shift if $_[0] eq 'ZoneMinder::Storage';
|
||||
my %sql_filters = @_;
|
||||
|
||||
my $sql = 'SELECT * FROM Storage';
|
||||
my @sql_filters;
|
||||
my @sql_values;
|
||||
my $sql = 'SELECT * FROM Storage';
|
||||
my @sql_filters;
|
||||
my @sql_values;
|
||||
|
||||
if ( exists $sql_filters{Id} ) {
|
||||
push @sql_filters , ' Id=? ';
|
||||
push @sql_values, $sql_filters{Id};
|
||||
}
|
||||
if ( exists $sql_filters{Name} ) {
|
||||
push @sql_filters , ' Name = ? ';
|
||||
push @sql_values, $sql_filters{Name};
|
||||
}
|
||||
if ( exists $sql_filters{ServerId} ) {
|
||||
push @sql_filters, ' Id IN ( SELECT StorageId FROM Monitors WHERE ServerId=? )';
|
||||
push @sql_values, $sql_filters{ServerId};
|
||||
}
|
||||
if ( exists $sql_filters{Id} ) {
|
||||
push @sql_filters , ' Id=? ';
|
||||
push @sql_values, $sql_filters{Id};
|
||||
}
|
||||
if ( exists $sql_filters{Name} ) {
|
||||
push @sql_filters , ' Name = ? ';
|
||||
push @sql_values, $sql_filters{Name};
|
||||
}
|
||||
if ( exists $sql_filters{ServerId} ) {
|
||||
push @sql_filters, ' ServerId = ?';
|
||||
push @sql_values, $sql_filters{ServerId};
|
||||
}
|
||||
|
||||
|
||||
$sql .= ' WHERE ' . join(' AND ', @sql_filters ) if @sql_filters;
|
||||
$sql .= ' LIMIT ' . $sql_filters{limit} if $sql_filters{limit};
|
||||
$sql .= ' WHERE ' . join(' AND ', @sql_filters) if @sql_filters;
|
||||
$sql .= ' LIMIT ' . $sql_filters{limit} if $sql_filters{limit};
|
||||
|
||||
my $sth = $ZoneMinder::Database::dbh->prepare_cached( $sql )
|
||||
or Fatal( "Can't prepare '$sql': ".$ZoneMinder::Database::dbh->errstr() );
|
||||
my $res = $sth->execute( @sql_values )
|
||||
or Fatal( "Can't execute '$sql': ".$sth->errstr() );
|
||||
my $sth = $ZoneMinder::Database::dbh->prepare_cached( $sql )
|
||||
or Fatal( "Can't prepare '$sql': ".$ZoneMinder::Database::dbh->errstr() );
|
||||
my $res = $sth->execute( @sql_values )
|
||||
or Fatal( "Can't execute '$sql': ".$sth->errstr() );
|
||||
|
||||
my @results;
|
||||
my @results;
|
||||
|
||||
while( my $db_filter = $sth->fetchrow_hashref() ) {
|
||||
my $filter = new ZoneMinder::Storage( $$db_filter{Id}, $db_filter );
|
||||
push @results, $filter;
|
||||
} # end while
|
||||
return @results;
|
||||
while( my $db_filter = $sth->fetchrow_hashref() ) {
|
||||
my $filter = new ZoneMinder::Storage( $$db_filter{Id}, $db_filter );
|
||||
push @results, $filter;
|
||||
} # end while
|
||||
Debug("SQL: $sql returned " . @results . ' results');
|
||||
return @results;
|
||||
}
|
||||
|
||||
sub find_one {
|
||||
my @results = find(@_);
|
||||
return $results[0] if @results;
|
||||
my @results = find(@_);
|
||||
return $results[0] if @results;
|
||||
}
|
||||
|
||||
sub Path {
|
||||
if ( @_ > 1 ) {
|
||||
$_[0]{Path} = $_[1];
|
||||
}
|
||||
if ( ! ( $_[0]{Id} or $_[0]{Path} ) ) {
|
||||
$_[0]{Path} = ($Config{ZM_DIR_EVENTS}=~/^\//) ? $Config{ZM_DIR_EVENTS} : ($Config{ZM_PATH_WEB}.'/'.$Config{ZM_DIR_EVENTS})
|
||||
}
|
||||
return $_[0]{Path};
|
||||
if ( @_ > 1 ) {
|
||||
$_[0]{Path} = $_[1];
|
||||
}
|
||||
if ( ! ( $_[0]{Id} or $_[0]{Path} ) ) {
|
||||
$_[0]{Path} = ($Config{ZM_DIR_EVENTS}=~/^\//) ? $Config{ZM_DIR_EVENTS} : ($Config{ZM_PATH_WEB}.'/'.$Config{ZM_DIR_EVENTS})
|
||||
}
|
||||
return $_[0]{Path};
|
||||
} # end sub Path
|
||||
|
||||
sub Name {
|
||||
if ( @_ > 1 ) {
|
||||
$_[0]{Name} = $_[1];
|
||||
}
|
||||
return $_[0]{Name};
|
||||
if ( @_ > 1 ) {
|
||||
$_[0]{Name} = $_[1];
|
||||
}
|
||||
return $_[0]{Name};
|
||||
} # end sub Path
|
||||
|
||||
sub DoDelete {
|
||||
|
|
Loading…
Reference in New Issue