diff --git a/kolibri/plugins/facility/assets/src/composables/useUserManagement.js b/kolibri/plugins/facility/assets/src/composables/useUserManagement.js index bc1dd1047c2..6291a3fa2a0 100644 --- a/kolibri/plugins/facility/assets/src/composables/useUserManagement.js +++ b/kolibri/plugins/facility/assets/src/composables/useUserManagement.js @@ -33,6 +33,10 @@ export default function useUserManagement({ classes, }); + const clearSelectedUsers = () => { + selectedUsers.value = new Set(); + }; + const fetchUsers = async () => { dataLoading.value = true; try { @@ -78,7 +82,7 @@ export default function useUserManagement({ function onChange({ resetSelection = false, affectedClasses = null } = {}) { if (resetSelection) { - selectedUsers.value = new Set(); + clearSelectedUsers(); } if ( // If there isn't any specific class affected, always refetch @@ -108,6 +112,15 @@ export default function useUserManagement({ { immediate: true }, ); + watch([numAppliedFilters, search], (newValues, oldValues) => { + const [newNumFilters, newSearch] = newValues; + const [oldNumFilters, oldSearch] = oldValues; + + if (newNumFilters !== oldNumFilters || newSearch !== oldSearch) { + clearSelectedUsers(); + } + }); + return { selectedUsers, facilityUsers, @@ -126,5 +139,6 @@ export default function useUserManagement({ fetchUsers, fetchClasses, resetFilters, + clearSelectedUsers, }; } diff --git a/kolibri/plugins/facility/assets/src/views/users/NewUsersPage.vue b/kolibri/plugins/facility/assets/src/views/users/NewUsersPage.vue index a9ec1d72e8d..d4825a0ff16 100644 --- a/kolibri/plugins/facility/assets/src/views/users/NewUsersPage.vue +++ b/kolibri/plugins/facility/assets/src/views/users/NewUsersPage.vue @@ -266,6 +266,7 @@ onChange, fetchClasses, resetFilters, + clearSelectedUsers, } = useUserManagement({ activeFacilityId, dateJoinedGt: newUsersCreationTreshold, @@ -314,10 +315,6 @@ clearFiltersLabel$, } = bulkUserManagementStrings; - function clearSelectedUsers() { - selectedUsers.value = new Set(); - } - function onModalBlur() { selectedUsers.value.clear(); selectedUsers.value = new Set(selectedUsers.value); diff --git a/kolibri/plugins/facility/assets/src/views/users/UsersRootPage/index.vue b/kolibri/plugins/facility/assets/src/views/users/UsersRootPage/index.vue index 2442236cc0d..b22a27c248f 100644 --- a/kolibri/plugins/facility/assets/src/views/users/UsersRootPage/index.vue +++ b/kolibri/plugins/facility/assets/src/views/users/UsersRootPage/index.vue @@ -168,7 +168,6 @@ @clearSelectedUsers="clearSelectedUsers" @change="onChange" /> - -