From d49f0fcac32cba2f6bef5a42c38090da440ba354 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Mon, 26 Sep 2016 20:29:23 -0400 Subject: [PATCH] move sync upon login to vault controller initiated via state params. --- .../app/accounts/accountsLoginController.js | 2 +- .../accountsLoginTwoFactorController.js | 2 +- src/popup/app/config.js | 2 +- src/popup/app/services/loginService.js | 6 ++---- src/popup/app/vault/vaultController.js | 20 ++++++++++++------- src/services/apiService.js | 2 +- src/services/syncService.js | 20 +++++++++---------- 7 files changed, 29 insertions(+), 25 deletions(-) diff --git a/src/popup/app/accounts/accountsLoginController.js b/src/popup/app/accounts/accountsLoginController.js index fde4deaa29..540cab38ac 100644 --- a/src/popup/app/accounts/accountsLoginController.js +++ b/src/popup/app/accounts/accountsLoginController.js @@ -39,7 +39,7 @@ $state.go('twoFactor', { animation: 'in-slide-left' }); } else { - $state.go('tabs.vault', { animation: 'in-slide-left' }); + $state.go('tabs.vault', { animation: 'in-slide-left', syncOnLoad: true }); } }); }); diff --git a/src/popup/app/accounts/accountsLoginTwoFactorController.js b/src/popup/app/accounts/accountsLoginTwoFactorController.js index 8ba78db2c3..29715c2a47 100644 --- a/src/popup/app/accounts/accountsLoginTwoFactorController.js +++ b/src/popup/app/accounts/accountsLoginTwoFactorController.js @@ -15,7 +15,7 @@ $scope.loginPromise = loginService.logInTwoFactor(model.code); $scope.loginPromise.then(function () { - $state.go('tabs.vault', { animation: 'in-slide-left' }); + $state.go('tabs.vault', { animation: 'in-slide-left', syncOnLoad: true }); }); }; }); diff --git a/src/popup/app/config.js b/src/popup/app/config.js index 0ac47d2d2d..3c942f7fc7 100644 --- a/src/popup/app/config.js +++ b/src/popup/app/config.js @@ -75,7 +75,7 @@ url: '/vault', templateUrl: 'app/vault/views/vault.html', controller: 'vaultController', - params: { scrollY: 0, searchText: null } + params: { scrollY: 0, searchText: null, syncOnLoad: false } }) .state('tabs.settings', { url: '/settings', diff --git a/src/popup/app/services/loginService.js b/src/popup/app/services/loginService.js index e043799e5d..1307431be3 100644 --- a/src/popup/app/services/loginService.js +++ b/src/popup/app/services/loginService.js @@ -1,8 +1,8 @@ angular .module('bit.services') - .factory('loginService', function (cryptoService, apiService, userService, tokenService, $q, syncService, - $rootScope, siteService, folderService) { + .factory('loginService', function (cryptoService, apiService, userService, tokenService, $q, $rootScope, siteService, + folderService) { var _service = {}; _service.logIn = function (email, masterPassword) { @@ -22,7 +22,6 @@ if (response.profile) { userService.setUserId(response.profile.id, function () { userService.setEmail(response.profile.email, function () { - syncService.fullSync(function () { }); deferred.resolve(response); }); }); @@ -52,7 +51,6 @@ tokenService.setToken(response.token, function () { userService.setUserId(response.profile.id, function () { userService.setEmail(response.profile.email, function () { - syncService.fullSync(function () { }); deferred.resolve(response); }); }); diff --git a/src/popup/app/vault/vaultController.js b/src/popup/app/vault/vaultController.js index 5f0c5bd0c4..0af1f77b24 100644 --- a/src/popup/app/vault/vaultController.js +++ b/src/popup/app/vault/vaultController.js @@ -2,9 +2,16 @@ .module('bit.vault') .controller('vaultController', function ($scope, $rootScope, siteService, folderService, $q, $state, $stateParams, toastr, - syncService) { + syncService, utilsService) { $('#search').focus(); + var syncOnLoad = $stateParams.syncOnLoad; + if (syncOnLoad) { + setTimeout(function () { + syncService.fullSync(function () { }); + }, utilsService.isFirefox() ? 500 : 0); + } + var delayLoad = true; $scope.loaded = true; if (!$rootScope.vaultSites) { @@ -21,7 +28,7 @@ setTimeout(setScrollY, 100); setTimeout(loadVault, 1000); } - else { + else if (!syncOnLoad) { loadVault(); } @@ -43,11 +50,10 @@ promises.push(sitePromise); $q.all(promises).then(function () { - if (decSites.length || !syncService.syncInProgress) { - $scope.loaded = true; - $rootScope.vaultFolders = decFolders; - $rootScope.vaultSites = decSites; - } + $scope.loaded = true; + $rootScope.vaultFolders = decFolders; + $rootScope.vaultSites = decSites; + if (!delayLoad) { setScrollY(); } diff --git a/src/services/apiService.js b/src/services/apiService.js index 43c70ab1a2..78dce38667 100644 --- a/src/services/apiService.js +++ b/src/services/apiService.js @@ -270,7 +270,7 @@ function initApiService() { function handleError(errorCallback, jqXHR, textStatus, errorThrown) { if (jqXHR.status === 401 || jqXHR.status === 403) { - chrome.runtime.sendMessage(null, { command: 'logout' }); + chrome.runtime.sendMessage({ command: 'logout' }); return; } diff --git a/src/services/syncService.js b/src/services/syncService.js index 559991530a..e1589db308 100644 --- a/src/services/syncService.js +++ b/src/services/syncService.js @@ -14,12 +14,12 @@ function initSyncService() { throw 'callback function required'; } - syncStarted(); - var self = this; + + self.syncStarted(); self.userService.isAuthenticated(function (isAuthenticated) { if (!isAuthenticated) { - syncCompleted(false); + self.syncCompleted(false); callback(false); return; } @@ -43,7 +43,7 @@ function initSyncService() { self.folderService.replace(folders, function () { self.siteService.replace(sites, function () { self.setLastSync(now, function () { - syncCompleted(true); + self.syncCompleted(true); callback(true); }); }); @@ -169,15 +169,15 @@ function initSyncService() { }); }; - function syncStarted() { + SyncService.prototype.syncStarted = function () { this.syncInProgress = true; - chrome.runtime.sendMessage(null, { command: 'syncStarted' }); - } + chrome.runtime.sendMessage({ command: 'syncStarted' }); + }; - function syncCompleted(successfully) { + SyncService.prototype.syncCompleted = function (successfully) { this.syncInProgress = false; - chrome.runtime.sendMessage(null, { command: 'syncCompleted', successfully: successfully }); - } + chrome.runtime.sendMessage({ command: 'syncCompleted', successfully: successfully }); + }; function handleError() { syncCompleted(false);