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