diff --git a/src/js/client.js b/src/js/client.js index a15ef9579..f124cfaae 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -1,9 +1,9 @@ 'use strict'; -/* global $:false */ -/* global angular:false */ -/* global EventSource:false */ -/* global asyncForEach:false */ +/* global $ */ +/* global angular */ +/* global EventSource */ +/* global async */ // keep in sync with box/src/apps.js var ISTATES = { @@ -1474,7 +1474,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout } var result = []; - asyncForEach(chunks, function (chunk, iteratorCallback) { + async.eachSeries(chunks, function (chunk, iteratorCallback) { var config = { params: { target: chunk, @@ -1801,7 +1801,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout this.getApps(function (error, apps) { if (error) return callback(error); - asyncForEach(apps, function (app, iteratorCallback) { + async.eachSeries(apps, function (app, iteratorCallback) { var canManageApp = that._userInfo.isAtLeastAdmin; if (!canManageApp) { diff --git a/src/js/index.js b/src/js/index.js index 38e970753..016a19956 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -19,22 +19,6 @@ if (search.accessToken) { window.location.search = encodeURIComponent(Object.keys(search).map(function (key) { return key + '=' + search[key]; }).join('&')); } -function asyncForEach(items, handler, callback) { - var cur = 0; - - if (items.length === 0) return callback(); - - (function iterator() { - handler(items[cur], function (error) { - if (error) return callback(error); - if (cur >= items.length-1) return callback(); - ++cur; - - iterator(); - }); - })(); -} - // create main application module var app = angular.module('Application', ['ngFitText', 'ngRoute', 'ngAnimate', 'ngSanitize', 'angular-md5', 'base64', 'slick', 'ui-notification', 'ui.bootstrap', 'ui.bootstrap-slider', 'ngTld', 'ui.multiselect']); diff --git a/src/views/app.js b/src/views/app.js index 3f5ac6e72..3b8f07320 100644 --- a/src/views/app.js +++ b/src/views/app.js @@ -3,7 +3,6 @@ /* global angular */ /* global $ */ /* global async */ -/* global asyncForEach */ /* global RSTATES */ /* global ISTATES */ /* global ERROR */ @@ -331,7 +330,7 @@ angular.module('Application').controller('AppController', ['$scope', '$location' domains.push({ subdomain: a.subdomain, domain: a.domain }); }); - asyncForEach(domains, function (domain, callback) { + async.eachSeries(domains, function (domain, callback) { if (overwriteDns) return callback(); Client.checkDNSRecords(domain.domain, domain.subdomain, function (error, result) { diff --git a/src/views/domains.js b/src/views/domains.js index 8544145e6..e34d201bb 100644 --- a/src/views/domains.js +++ b/src/views/domains.js @@ -1,8 +1,8 @@ 'use strict'; -/* global asyncForEach:false */ -/* global angular:false */ -/* global $:false */ +/* global async */ +/* global angular */ +/* global $ */ angular.module('Application').controller('DomainsController', ['$scope', '$location', 'Client', function ($scope, $location, Client) { Client.onReady(function () { if (!Client.getUserInfo().isAtLeastAdmin) $location.path('/'); }); @@ -82,7 +82,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat Client.getDomains(function (error, results) { if (error) return console.error(error); - asyncForEach(results, function (result, iteratorDone) { + async.eachSeries(results, function (result, iteratorDone) { Client.getDomain(result.domain, function (error, domain) { if (error) return iteratorDone(error); diff --git a/src/views/email.js b/src/views/email.js index 60b7aa284..bf4b6c288 100644 --- a/src/views/email.js +++ b/src/views/email.js @@ -1,8 +1,8 @@ 'use strict'; -/* global angular:false */ -/* global $:false */ -/* global asyncForEach */ +/* global angular */ +/* global $ */ +/* global async */ angular.module('Application').controller('EmailController', ['$scope', '$location', '$timeout', '$routeParams', 'Client', function ($scope, $location, $timeout, $routeParams, Client) { Client.onReady(function () { if (!Client.getUserInfo().isAtLeastAdmin) $location.path('/'); }); @@ -414,7 +414,7 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio $scope.mailboxes.mailboxes = mailboxes; - asyncForEach(mailboxes, function (m, iteratorCallback) { + async.eachSeries(mailboxes, function (m, iteratorCallback) { Client.getAliases(m.name, m.domain, function (error, aliases) { if (error) return iteratorCallback(error); @@ -700,7 +700,7 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio $scope.adminDomain = result.filter(function (d) { return d.domain === $scope.config.adminDomain; })[0]; $scope.refreshDomain(); - asyncForEach(result, function (domain, iteratorDone) { + async.eachSeries(result, function (domain, iteratorDone) { Client.getMailConfigForDomain(domain.domain, function (error, mailConfig) { if (error) return console.error('Failed to fetch mail config for domain', domain.domain, error); diff --git a/src/views/notifications.js b/src/views/notifications.js index 1439cf31a..f91e60b92 100644 --- a/src/views/notifications.js +++ b/src/views/notifications.js @@ -1,6 +1,8 @@ 'use strict'; -/* global asyncForEach, angular, $ */ +/* global async */ +/* global angular */ +/* global $ */ angular.module('Application').controller('NotificationsController', ['$scope', '$timeout', 'Client', function ($scope, $timeout, Client) { @@ -80,7 +82,7 @@ angular.module('Application').controller('NotificationsController', ['$scope', ' clearAll: function () { $scope.clearAllBusy = true; - asyncForEach($scope.notifications.notifications, function (notification, callback) { + async.eachSeries($scope.notifications.notifications, function (notification, callback) { if (notification.acknowledged) return callback(); $scope.notifications.ack(notification, null /* no click event */, callback); }, function (error) { diff --git a/src/views/profile.js b/src/views/profile.js index e532cdacb..4ab30af3c 100644 --- a/src/views/profile.js +++ b/src/views/profile.js @@ -1,8 +1,8 @@ 'use strict'; -/* global asyncForEach:false */ -/* global angular:false */ -/* global $:false */ +/* global async */ +/* global angular */ +/* global $ */ angular.module('Application').controller('ProfileController', ['$scope', '$location', 'Client', function ($scope, $location, Client) { $scope.user = Client.getUserInfo(); @@ -511,7 +511,7 @@ angular.module('Application').controller('ProfileController', ['$scope', '$locat revokeAllWebAndCliTokens: function () { $scope.tokens.busy = true; - asyncForEach($scope.tokens.webadminTokens.concat($scope.tokens.cliTokens), function (token, callback) { + async.eachSeries($scope.tokens.webadminTokens.concat($scope.tokens.cliTokens), function (token, callback) { // do not revoke token for this session, will do at the end with logout if (token.accessToken === Client.getToken()) return callback(); diff --git a/src/views/system.js b/src/views/system.js index 5d46441e9..e59db0d6a 100644 --- a/src/views/system.js +++ b/src/views/system.js @@ -1,8 +1,8 @@ 'use strict'; -/* global angular:false */ -/* global $:false */ -/* global asyncForEach */ +/* global angular */ +/* global $ */ +/* global async */ /* global Chart */ angular.module('Application').controller('SystemController', ['$scope', '$location', '$timeout', 'Client', function ($scope, $location, $timeout, Client) { @@ -189,7 +189,7 @@ angular.module('Application').controller('SystemController', ['$scope', '$locati $scope.disks.disks = result.disks; // [ { filesystem, type, size, used, available, capacity, mountpoint }] // render data of each disk - asyncForEach(result.disks, function (disk, iteratorCallback) { + async.eachSeries(result.disks, function (disk, iteratorCallback) { // /dev/sda1 -> sda1 // /dev/mapper/foo -> mapper_foo (see #348) var diskName = disk.filesystem.slice(disk.filesystem.indexOf('/', 1) + 1);