diff --git a/packages/web/src/tabs/CompareModelTab.svelte b/packages/web/src/tabs/CompareModelTab.svelte index 62316bd7c..a182ed01e 100644 --- a/packages/web/src/tabs/CompareModelTab.svelte +++ b/packages/web/src/tabs/CompareModelTab.svelte @@ -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; + }