From b4902f03c50d558d8b59eb02dda4add9efabfe9a Mon Sep 17 00:00:00 2001 From: Mo Bitar Date: Fri, 29 Jun 2018 17:47:02 -0500 Subject: [PATCH] Functioning integration --- .../javascripts/app/controllers/footer.js | 5 ++++- .../javascripts/app/controllers/home.js | 8 +++---- .../javascripts/app/controllers/lockScreen.js | 2 +- .../app/directives/views/accountMenu.js | 21 +++++++++++++------ .../javascripts/app/services/authManager.js | 5 ++--- .../javascripts/app/services/modelManager.js | 2 +- .../app/services/storageManager.js | 8 +++---- 7 files changed, 31 insertions(+), 20 deletions(-) diff --git a/app/assets/javascripts/app/controllers/footer.js b/app/assets/javascripts/app/controllers/footer.js index da68e1b77..04687474d 100644 --- a/app/assets/javascripts/app/controllers/footer.js +++ b/app/assets/javascripts/app/controllers/footer.js @@ -25,7 +25,10 @@ angular.module('app') .controller('FooterCtrl', function ($rootScope, authManager, modelManager, $timeout, dbManager, syncManager, storageManager, passcodeManager, componentManager, singletonManager, nativeExtManager) { - this.securityUpdateAvailable = authManager.checkForSecurityUpdate(); + authManager.checkForSecurityUpdate().then((available) => { + this.securityUpdateAvailable = available; + }) + $rootScope.$on("security-update-status-changed", () => { this.securityUpdateAvailable = authManager.securityUpdateAvailable; }) diff --git a/app/assets/javascripts/app/controllers/home.js b/app/assets/javascripts/app/controllers/home.js index 29d28c4d1..d8aae28ac 100644 --- a/app/assets/javascripts/app/controllers/home.js +++ b/app/assets/javascripts/app/controllers/home.js @@ -88,7 +88,7 @@ angular.module('app') $rootScope.$broadcast(syncEvent, data || {}); }); - syncManager.loadLocalItems(function(items) { + syncManager.loadLocalItems().then(() => { $scope.allTag.didLoad = true; $scope.$apply(); @@ -285,20 +285,20 @@ angular.module('app') return $location.search()[key]; } - function autoSignInFromParams() { + async function autoSignInFromParams() { var server = urlParam("server"); var email = urlParam("email"); var pw = urlParam("pw"); if(!authManager.offline()) { // check if current account - if(syncManager.serverURL === server && authManager.user.email === email) { + if(await syncManager.getServerURL() === server && authManager.user.email === email) { // already signed in, return return; } else { // sign out authManager.signOut(); - storageManager.clearAllData(() => { + storageManager.clearAllData().then(() => { window.location.reload(); }) } diff --git a/app/assets/javascripts/app/controllers/lockScreen.js b/app/assets/javascripts/app/controllers/lockScreen.js index 6dd3312eb..6c1c8f4c0 100644 --- a/app/assets/javascripts/app/controllers/lockScreen.js +++ b/app/assets/javascripts/app/controllers/lockScreen.js @@ -34,7 +34,7 @@ class LockScreen { } authManager.signOut(); - storageManager.clearAllData(() => { + storageManager.clearAllData().then(() => { window.location.reload(); }) } diff --git a/app/assets/javascripts/app/directives/views/accountMenu.js b/app/assets/javascripts/app/directives/views/accountMenu.js index 53f580059..d91b21dfd 100644 --- a/app/assets/javascripts/app/directives/views/accountMenu.js +++ b/app/assets/javascripts/app/directives/views/accountMenu.js @@ -13,10 +13,19 @@ class AccountMenu { $timeout, $compile, archiveManager) { 'ngInject'; - $scope.formData = {mergeLocal: true, url: syncManager.serverURL, ephemeral: false}; + $scope.formData = {mergeLocal: true, ephemeral: false}; $scope.user = authManager.user; - $scope.server = syncManager.serverURL; - $scope.securityUpdateAvailable = authManager.checkForSecurityUpdate(); + + syncManager.getServerURL().then((url) => { + $timeout(() => { + $scope.server = url; + $scope.formData.url = url; + }) + }) + + authManager.checkForSecurityUpdate().then((available) => { + $scope.securityUpdateAvailable = available; + }) $scope.close = function() { $timeout(() => { @@ -145,7 +154,7 @@ class AccountMenu { } else { modelManager.resetLocalMemory(); - storageManager.clearAllModels(function(){ + storageManager.clearAllModels().them(() => { block(); }) } @@ -162,7 +171,7 @@ class AccountMenu { // clearAllModels will remove data from backing store, but not from working memory // See: https://github.com/standardnotes/desktop/issues/131 $scope.clearDatabaseAndRewriteAllItems = function(alternateUuids, callback) { - storageManager.clearAllModels(() => { + storageManager.clearAllModels().then(() => { syncManager.markAllItemsDirtyAndSaveOffline(alternateUuids).then(() => { callback && callback(); }) @@ -175,7 +184,7 @@ class AccountMenu { } authManager.signOut(); - storageManager.clearAllData(() => { + storageManager.clearAllData().then(() => { window.location.reload(); }) } diff --git a/app/assets/javascripts/app/services/authManager.js b/app/assets/javascripts/app/services/authManager.js index b4c647ce1..5e9636ecf 100644 --- a/app/assets/javascripts/app/services/authManager.js +++ b/app/assets/javascripts/app/services/authManager.js @@ -87,7 +87,6 @@ class AuthManager extends SFAuthManager { return super.login(url, email, password, strictSignin, extraParams).then((response) => { if(!response.error) { this.setEphemeral(ephemeral); - this.handleAuthResponse(response, email, url, authParams, keys); this.checkForSecurityUpdate(); } @@ -124,13 +123,13 @@ class AuthManager extends SFAuthManager { } } - checkForSecurityUpdate() { + async checkForSecurityUpdate() { if(this.offline()) { return false; } let latest = SFJS.version(); - let updateAvailable = this.protocolVersion() !== latest; + let updateAvailable = await this.protocolVersion() !== latest; if(updateAvailable !== this.securityUpdateAvailable) { this.securityUpdateAvailable = updateAvailable; this.$rootScope.$broadcast("security-update-status-changed"); diff --git a/app/assets/javascripts/app/services/modelManager.js b/app/assets/javascripts/app/services/modelManager.js index 52012717d..668c78977 100644 --- a/app/assets/javascripts/app/services/modelManager.js +++ b/app/assets/javascripts/app/services/modelManager.js @@ -102,7 +102,7 @@ class ModelManager extends SFModelManager { _.pull(this._extensions, item); } - this.storageManager.deleteModel(item, callback); + this.storageManager.deleteModel(item).then(callback); } /* diff --git a/app/assets/javascripts/app/services/storageManager.js b/app/assets/javascripts/app/services/storageManager.js index 4f1ba26fb..ade66dd1c 100644 --- a/app/assets/javascripts/app/services/storageManager.js +++ b/app/assets/javascripts/app/services/storageManager.js @@ -70,7 +70,7 @@ class StorageManager extends SFStorageManager { var length = this.storage.length; for(var i = 0; i < length; i++) { var key = this.storage.key(i); - newStorage.setItem(key, this.storage.getItem(key)); + newStorage.setItem(key, this.storage.getItemSync(key)); } this.itemsStorageMode = mode; @@ -134,7 +134,7 @@ class StorageManager extends SFStorageManager { var length = this.storage.length; for(var i = 0; i < length; i++) { var key = this.storage.key(i); - hash[key] = this.storage.getItem(key) + hash[key] = this.storage.getItemSync(key) } return hash; } @@ -157,7 +157,7 @@ class StorageManager extends SFStorageManager { } async decryptStorage() { - var stored = JSON.parse(this.getItem("encryptedStorage", StorageManager.Fixed)); + var stored = JSON.parse(this.getItemSync("encryptedStorage", StorageManager.Fixed)); await SFJS.itemTransformer.decryptItem(stored, this.encryptedStorageKeys); var encryptedStorage = new EncryptedStorage(stored); @@ -167,7 +167,7 @@ class StorageManager extends SFStorageManager { } hasPasscode() { - return this.getItem("encryptedStorage", StorageManager.Fixed) !== null; + return this.getItemSync("encryptedStorage", StorageManager.Fixed) !== null; }