Only refresh entities that are visible on the interface

This commit is contained in:
Fabio Manganiello 2022-05-30 09:23:25 +02:00
parent 1df71cb54a
commit 5b3e1317f4
Signed by: blacklight
GPG Key ID: D90FBA7F76362774
1 changed files with 19 additions and 17 deletions

View File

@ -127,25 +127,27 @@ export default {
this.$emit('input', value)
},
resetGroupFilter() {
this.selectedGroups = Object.keys(
this.entityGroups[this.value?.grouping] || {}
).reduce(
(obj, group) => {
obj[group] = true
return obj
}, {}
)
refreshGroupFilter(reset) {
if (reset)
this.selectedGroups = Object.keys(
this.entityGroups[this.value?.grouping] || {}
).reduce(
(obj, group) => {
obj[group] = true
return obj
}, {}
)
else {
for (const group of Object.keys(this.entityGroups[this.value?.grouping]))
if (this.selectedGroups[group] == null)
this.selectedGroups[group] = true
}
this.synchronizeSelectedEntities()
},
toggleGroup(group) {
if (this.selectedGroups[group])
delete this.selectedGroups[group]
else
this.selectedGroups[group] = true
this.selectedGroups[group] = !this.selectedGroups[group]
this.synchronizeSelectedEntities()
},
@ -160,10 +162,10 @@ export default {
},
mounted() {
this.resetGroupFilter()
this.$watch(() => this.value?.grouping, this.resetGroupFilter)
this.refreshGroupFilter(true)
this.$watch(() => this.value?.grouping, () => { this.refreshGroupFilter(true) })
this.$watch(() => this.searchTerm, this.updateSearchTerm)
this.$watch(() => this.entityGroups, this.resetGroupFilter)
this.$watch(() => this.entityGroups, () => { this.refreshGroupFilter(false) })
},
}
</script>