From 5c57bcc7c63522aabd7b20bf0821941eed5123fb Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 5 Jun 2019 15:35:27 +0200 Subject: [PATCH] defer member search in admin panel to optimize requesting --- .../javascripts/controllers/admin/members.js.erb | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/controllers/admin/members.js.erb b/app/assets/javascripts/controllers/admin/members.js.erb index babdcf8b7..c810d04df 100644 --- a/app/assets/javascripts/controllers/admin/members.js.erb +++ b/app/assets/javascripts/controllers/admin/members.js.erb @@ -225,8 +225,11 @@ Application.Controllers.controller('AdminMembersController', ['$scope', '$sce', * Callback when the search field content changes: reload the search results */ $scope.updateTextSearch = function () { - resetSearchMember(); - return memberSearch(); + if (searchTimeout) clearTimeout(searchTimeout); + searchTimeout = setTimeout(function() { + resetSearchMember(); + memberSearch(); + }, 500); }; /** @@ -252,6 +255,11 @@ Application.Controllers.controller('AdminMembersController', ['$scope', '$sce', } }; + /** + * Will temporize the search query to prevent overloading the API + */ + var searchTimeout = null; + /** * Iterate through the provided array and return the index of the requested admin * @param admins {Array} full list of users with role 'admin' @@ -267,13 +275,13 @@ Application.Controllers.controller('AdminMembersController', ['$scope', '$sce', */ var resetSearchMember = function () { $scope.member.noMore = false; - return $scope.member.page = 1; + $scope.member.page = 1; }; /** * Run a search query with the current parameters set ($scope.member[searchText,order,page]) * and affect or append the result in $scope.members, depending on the concat parameter - * @param concat {boolean} if true, the result will be append to $scope.members instead of being affected + * @param [concat] {boolean} if true, the result will be append to $scope.members instead of being affected */ var memberSearch = function (concat) { Member.list({