From 5a1bf8299fa925e9b0a0f77fcb3779980fbb84cb Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 13 Oct 2017 23:11:42 -0400 Subject: [PATCH] vault listing page fixes --- src/models/domainModels.js | 14 ++++---- .../app/components/actionButtonsComponent.js | 18 ++++++++++ src/popup/app/components/iconComponent.js | 13 +++---- src/popup/app/vault/vaultController.js | 8 ++--- .../app/vault/vaultViewFolderController.js | 34 +++++++++---------- src/popup/app/vault/views/vault.html | 8 ++--- src/popup/index.html | 1 + src/services/loginService.js | 20 +++++------ src/services/syncService.js | 9 ++--- 9 files changed, 71 insertions(+), 54 deletions(-) create mode 100644 src/popup/app/components/actionButtonsComponent.js diff --git a/src/models/domainModels.js b/src/models/domainModels.js index 049971261a..fe1465d035 100644 --- a/src/models/domainModels.js +++ b/src/models/domainModels.js @@ -278,17 +278,13 @@ function buildDomainModel(model, obj, map, alreadyEncrypted, notEncList) { } (function () { - var bg = chrome.extension.getBackgroundPage(), - cryptoService = bg ? bg.bg_cryptoService : null; - CipherString.prototype.decrypt = function (orgId) { if (this.decryptedValue) { - var deferred = Q.defer(); - deferred.resolve(this.decryptedValue); - return deferred.promise; + return Q(this.decryptedValue); } - var self = this; + var self = this, + cryptoService = chrome.extension.getBackgroundPage().bg_cryptoService; return cryptoService.getOrgKey(orgId).then(function (orgKey) { return cryptoService.decrypt(self, orgKey); }).then(function (decValue) { @@ -416,15 +412,19 @@ function buildDomainModel(model, obj, map, alreadyEncrypted, notEncList) { switch (self.type) { case 1: // cipherType.login model.login = decObj; + model.subTitle = model.login.username; break; case 2: // cipherType.secureNote model.secureNote = decObj; + model.subTitle = '-'; break; case 3: // cipherType.card model.card = decObj; + model.subTitle = model.identity.brand; break; case 4: // cipherType.identity model.identity = decObj; + model.subTitle = model.identity.firstName; break; default: break; diff --git a/src/popup/app/components/actionButtonsComponent.js b/src/popup/app/components/actionButtonsComponent.js new file mode 100644 index 0000000000..1f6db7b9e7 --- /dev/null +++ b/src/popup/app/components/actionButtonsComponent.js @@ -0,0 +1,18 @@ +angular + .module('bit.components') + + .component('actionButtonsComponent', { + bindings: { + uri: '<' + }, + template: '', + controller: function (stateService) { + this.$onInit = (function () { + + }).bind(this); + + this.$onChanges = (function () { + + }).bind(this); + } + }); diff --git a/src/popup/app/components/iconComponent.js b/src/popup/app/components/iconComponent.js index 66c587f780..837314e7b2 100644 --- a/src/popup/app/components/iconComponent.js +++ b/src/popup/app/components/iconComponent.js @@ -1,13 +1,14 @@ angular .module('bit.components') + .component('icon', { - bindings: { - uri: '<' - }, + bindings: { + uri: '<' + }, template: '
', - controller: function(stateService) { - this.$onInit = (function() { - this.enabled = function() { + controller: function (stateService) { + this.$onInit = (function () { + this.enabled = function () { return stateService.getState('faviconEnabled'); }; }).bind(this); diff --git a/src/popup/app/vault/vaultController.js b/src/popup/app/vault/vaultController.js index efdc99782d..eef574b511 100644 --- a/src/popup/app/vault/vaultController.js +++ b/src/popup/app/vault/vaultController.js @@ -51,11 +51,11 @@ }); promises.push(folderPromise); - var loginPromise = $q.when(loginService.getAllDecrypted()); - loginPromise.then(function (logins) { - decLogins = logins; + var cipherPromise = loginService.getAllDecrypted(); + cipherPromise.then(function (ciphers) { + decLogins = ciphers; }); - promises.push(loginPromise); + promises.push(cipherPromise); $q.all(promises).then(function () { $scope.loaded = true; diff --git a/src/popup/app/vault/vaultViewFolderController.js b/src/popup/app/vault/vaultViewFolderController.js index aa3b7ed5f5..603c971872 100644 --- a/src/popup/app/vault/vaultViewFolderController.js +++ b/src/popup/app/vault/vaultViewFolderController.js @@ -39,17 +39,17 @@ promises.push(folderDeferred.promise); } - var loginPromise = $q.when(loginService.getAllDecryptedForFolder($scope.folder.id)); - loginPromise.then(function (logins) { + var cipherPromise = loginService.getAllDecryptedForFolder($scope.folder.id); + cipherPromise.then(function (ciphers) { if (utilsService.isEdge()) { // Edge is super slow at sorting - decLogins = logins; + decLogins = ciphers; } else { - decLogins = logins.sort(loginSort); + decLogins = ciphers.sort(cipherSort); } }); - promises.push(loginPromise); + promises.push(cipherPromise); $q.all(promises).then(function () { $scope.loaded = true; @@ -68,7 +68,7 @@ }); } - function loginSort(a, b) { + function cipherSort(a, b) { if (!a.name) { return -1; } @@ -85,19 +85,19 @@ return -1; } - if (!a.username) { + if (!a.subTitle) { return -1; } - if (!b.username) { + if (!b.subTitle) { return 1; } - var aUsername = a.username.toLowerCase(), - bUsername = b.username.toLowerCase(); - if (aUsername > bUsername) { + var aSubTitle = a.subTitle.toLowerCase(), + bSubTitle = b.subTitle.toLowerCase(); + if (aSubTitle > bSubTitle) { return 1; } - if (aUsername < bUsername) { + if (aSubTitle < bSubTitle) { return -1; } @@ -123,7 +123,7 @@ var matchedLogins = []; for (var i = 0; i < decLogins.length; i++) { - if (searchLogin(decLogins[i])) { + if (searchCipher(decLogins[i])) { matchedLogins.push(decLogins[i]); } } @@ -149,15 +149,15 @@ $scope.loadMore(); } - function searchLogin(login) { + function searchCipher(cipher) { var searchTerm = $scope.searchText.toLowerCase(); - if (login.name && login.name.toLowerCase().indexOf(searchTerm) !== -1) { + if (cipher.name && cipher.name.toLowerCase().indexOf(searchTerm) !== -1) { return true; } - if (login.username && login.username.toLowerCase().indexOf(searchTerm) !== -1) { + if (cipher.subTitle && cipher.subTitle.toLowerCase().indexOf(searchTerm) !== -1) { return true; } - if (login.uri && login.uri.toLowerCase().indexOf(searchTerm) !== -1) { + if (cipher.login && cipher.login.uri && cipher.login.uri.toLowerCase().indexOf(searchTerm) !== -1) { return true; } diff --git a/src/popup/app/vault/views/vault.html b/src/popup/app/vault/views/vault.html index d80a218c86..3ceaae4e28 100644 --- a/src/popup/app/vault/views/vault.html +++ b/src/popup/app/vault/views/vault.html @@ -40,7 +40,7 @@ + | filter: searchLogins() | orderBy: ['name', 'subTitle']) track by $index"> @@ -61,7 +61,7 @@ - {{login.username}} + {{login.subTitle}} @@ -72,7 +72,7 @@
- {{login.username}} + {{login.subTitle}}
diff --git a/src/popup/index.html b/src/popup/index.html index bba0d92177..0f52932bba 100644 --- a/src/popup/index.html +++ b/src/popup/index.html @@ -61,6 +61,7 @@ + diff --git a/src/services/loginService.js b/src/services/loginService.js index 58972c57db..e175e1f0bc 100644 --- a/src/services/loginService.js +++ b/src/services/loginService.js @@ -182,7 +182,7 @@ function initLoginService() { key = null, localData = null; - self.userService.getUserIdPromise().then(function (userId) { + return self.userService.getUserIdPromise().then(function (userId) { key = 'ciphers_' + userId; return self.utilsService.getObjFromStorage(self.localDataKey); }).then(function (data) { @@ -191,11 +191,11 @@ function initLoginService() { localData = {}; } return self.utilsService.getObjFromStorage(key); - }).then(function (logins) { + }).then(function (ciphers) { var response = []; - for (var id in logins) { + for (var id in ciphers) { if (id) { - response.push(new Login(logins[id], false, localData[id])); + response.push(new Cipher(ciphers[id], false, localData[id])); } } @@ -205,7 +205,7 @@ function initLoginService() { LoginService.prototype.getAllDecrypted = function () { var self = this, - decLogins = []; + decCiphers = []; return self.cryptoService.getKey().then(function (key) { if (!key) { @@ -219,19 +219,19 @@ function initLoginService() { } return self.getAll(); - }).then(function (logins) { + }).then(function (ciphers) { var promises = []; - for (var i = 0; i < logins.length; i++) { + for (var i = 0; i < ciphers.length; i++) { /* jshint ignore:start */ - promises.push(logins[i].decrypt().then(function (login) { - decLogins.push(login); + promises.push(ciphers[i].decrypt().then(function (cipher) { + decCiphers.push(cipher); })); /* jshint ignore:end */ } return Q.all(promises); }).then(function () { - self.decryptedCipherCache = decLogins; + self.decryptedCipherCache = decCiphers; return self.decryptedCipherCache; }); }; diff --git a/src/services/syncService.js b/src/services/syncService.js index 4fb6ce2f24..c0846d9f18 100644 --- a/src/services/syncService.js +++ b/src/services/syncService.js @@ -139,14 +139,11 @@ function initSyncService() { } function syncCiphers(self, userId, response) { - var logins = {}; + var ciphers = {}; for (var i = 0; i < response.length; i++) { - var data = response[i]; - if (data.type === 1) { - logins[data.id] = new LoginData(data, userId); - } + ciphers[response[i].id] = new CipherData(response[i], userId); } - return self.loginService.replace(logins); + return self.loginService.replace(ciphers); } function syncSettings(self, userId, response) {