db diff object counts

This commit is contained in:
Jan Prochazka
2021-11-07 20:20:04 +01:00
parent dcfc695678
commit e3ef332881

View File

@@ -80,15 +80,26 @@
return { sql: dmp.s };
}
function filterDiffRows(rows, values, filter) {
let res = rows
.filter(row => filterName(filter, row.sourcePureName, row.targetPureName))
.filter(row => !values?.hideAdded || row.state != 'added')
.filter(row => !values?.hideRemoved || row.state != 'removed')
.filter(row => !values?.hideChanged || row.state != 'changed')
.filter(row => !values?.hideEqual || row.state != 'equal');
function filterDiffRowsByFlag(rows, values, skip = null) {
let res = rows;
if (skip != 'added') {
res = res.filter(row => !values?.hideAdded || row.state != 'added');
}
if (skip != 'removed') {
res = res.filter(row => !values?.hideRemoved || row.state != 'removed');
}
if (skip != 'changed') {
res = res.filter(row => !values?.hideChanged || row.state != 'changed');
}
if (skip != 'equal') {
res = res.filter(row => !values?.hideEqual || row.state != 'equal');
}
for (const objectTypeField of _.keys(DbDiffCompareDefs)) {
if (skip == objectTypeField) {
continue;
}
if (values && values[`hide_${objectTypeField}`]) {
res = res.filter(row => row.objectTypeField != objectTypeField);
}
@@ -96,6 +107,14 @@
return res;
}
function filterDiffRows(rows, values, filter) {
let res = rows.filter(row => filterName(filter, row.sourcePureName, row.targetPureName));
res = filterDiffRowsByFlag(rows, values);
return res;
}
</script>
<script lang="ts">
@@ -365,28 +384,44 @@
label="Added"
{values}
field="hideAdded"
count={diffRowsAll.filter(x => x.state == 'added').length}
count={filterDiffRowsByFlag(
diffRowsAll.filter(x => x.state == 'added'),
$values,
'added'
).length}
/>
<RowsFilterSwitcher
icon="img minus"
label="Removed"
{values}
field="hideRemoved"
count={diffRowsAll.filter(x => x.state == 'removed').length}
count={filterDiffRowsByFlag(
diffRowsAll.filter(x => x.state == 'removed'),
$values,
'removed'
).length}
/>
<RowsFilterSwitcher
icon="img changed"
label="Changed"
{values}
field="hideChanged"
count={diffRowsAll.filter(x => x.state == 'changed').length}
count={filterDiffRowsByFlag(
diffRowsAll.filter(x => x.state == 'changed'),
$values,
'changed'
).length}
/>
<RowsFilterSwitcher
icon="img equal"
label="Equal"
{values}
field="hideEqual"
count={diffRowsAll.filter(x => x.state == 'equal').length}
count={filterDiffRowsByFlag(
diffRowsAll.filter(x => x.state == 'equal'),
$values,
'equal'
).length}
/>
{#each _.keys(DbDiffCompareDefs) as objectTypeField}
@@ -395,7 +430,11 @@
label={DbDiffCompareDefs[objectTypeField].plural}
{values}
field={'hide_' + objectTypeField}
count={diffRowsAll.filter(x => x.objectTypeField == objectTypeField).length}
count={filterDiffRowsByFlag(
diffRowsAll.filter(x => x.objectTypeField == objectTypeField),
$values,
objectTypeField
).length}
/>
{/each}
</div>