diff --git a/src/js/client.js b/src/js/client.js index 694221ad5..aa46a7ede 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -1384,7 +1384,7 @@ angular.module('Application').service('Client', ['$http', '$interval', 'md5', 'N if (error) return callback(error); if (status !== 202) return callback(new ClientError(status, data)); - callback(null); + callback(null, data.taskId); }); }; diff --git a/src/views/users.js b/src/views/users.js index e9b736f17..ec6d794ef 100644 --- a/src/views/users.js +++ b/src/views/users.js @@ -429,14 +429,25 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio sync: function () { $scope.externalLdap.syncBusy = true; - Client.startExternalLdapSync(function (error, result) { + + Client.startExternalLdapSync(function (error, taskId) { if (error) { $scope.externalLdap.syncBusy = false; console.error('Unable to start ldap syncer task.', error); - } else { - console.log(result); + return; } - }) + + function refreshTaskStatus() { + Client.getTask(taskId, function (error, result) { + if (error) console.error(error); + if (result && result.active) return $timeout(refreshTaskStatus, 2000); + + $scope.externalLdap.syncBusy = false; + }); + } + + refreshTaskStatus(); + }); }, submit: function () {