Fix record list filter to discard active prefilter tag when value changes
This commit is contained in:
@@ -556,7 +556,7 @@ export default {
|
||||
// Create record and fill its values property if value exists
|
||||
this.componentFilter = this.recordListFilter
|
||||
.filter(({ filter = [] }) => filter.some(f => f.name))
|
||||
.map(({ groupCondition, filter = [] }) => {
|
||||
.map(({ groupCondition, filter = [], name }) => {
|
||||
filter = filter.map(({ value, ...f }) => {
|
||||
f.record = new compose.Record(this.mock.module, {})
|
||||
|
||||
@@ -583,7 +583,7 @@ export default {
|
||||
return f
|
||||
})
|
||||
|
||||
return { groupCondition, filter }
|
||||
return { groupCondition, filter, name }
|
||||
})
|
||||
|
||||
// If no filterGroups, add default
|
||||
@@ -598,7 +598,7 @@ export default {
|
||||
}
|
||||
|
||||
// Emit only value and not whole record with every filter
|
||||
this.$emit('filter', this.componentFilter.map(({ groupCondition, filter = [] }) => {
|
||||
this.$emit('filter', this.componentFilter.map(({ groupCondition, filter = [], name }) => {
|
||||
filter = filter.map(({ record, ...f }) => {
|
||||
if (record) {
|
||||
f.value = record[f.name] || record.values[f.name]
|
||||
@@ -614,7 +614,7 @@ export default {
|
||||
return f
|
||||
})
|
||||
|
||||
return { groupCondition, filter }
|
||||
return { groupCondition, filter, name }
|
||||
}))
|
||||
},
|
||||
|
||||
|
||||
@@ -727,7 +727,7 @@
|
||||
</wrap>
|
||||
</template>
|
||||
<script>
|
||||
import { debounce } from 'lodash'
|
||||
import { debounce, isEqual } from 'lodash'
|
||||
import { mapGetters, mapActions } from 'vuex'
|
||||
import base from './base'
|
||||
import FieldViewer from 'corteza-webapp-compose/src/components/ModuleFields/Viewer'
|
||||
@@ -1072,6 +1072,17 @@ export default {
|
||||
},
|
||||
|
||||
onFilter (filter = []) {
|
||||
filter.forEach(f => {
|
||||
if (this.activeFilters.includes(f.name)) {
|
||||
this.filterPresets.find(p => p.name === f.name).filter.forEach((filterPreset) => {
|
||||
if (!isEqual(f.filter, filterPreset.filter)) {
|
||||
const filterIndex = this.activeFilters.indexOf(f.name)
|
||||
this.activeFilters.splice(filterIndex, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
this.recordListFilter = filter
|
||||
this.setStorageRecordListFilter()
|
||||
this.refresh(true)
|
||||
|
||||
Reference in New Issue
Block a user