1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 00:03:56 +00:00

refactoring with promises throughout

This commit is contained in:
Kyle Spearrin
2016-09-16 23:47:50 -04:00
parent 2fcf3ff129
commit ac4d5836b2
11 changed files with 94 additions and 223 deletions

View File

@@ -1,7 +1,7 @@
angular
.module('bit.current')
.controller('currentController', function ($scope, siteService, cipherService, tldjs, toastr, $q, $window, $state) {
.controller('currentController', function ($scope, siteService, tldjs, toastr, $q, $window, $state) {
var pageDetails = null,
tabId = null,
url = null,

View File

@@ -1,37 +0,0 @@
angular
.module('bit.services')
.factory('cipherService', function ($q, siteService) {
var _service = {};
_service.encryptSite = function (site) {
return $q.when(siteService.encrypt(site));
};
_service.decryptSite = function (site) {
return $q.when(site.decrypt());
};
_service.decrypt = decrypt;
function decrypt(cipherString, index) {
return $q(function (resolve, reject) {
if (!cipherString) {
resolve({
val: null,
index: index
});
}
else {
cipherString.decrypt(function (decVal) {
resolve({
val: decVal,
index: index
});
});
}
});
}
return _service;
});

View File

@@ -1,7 +1,7 @@
angular
.module('bit.vault')
.controller('vaultAddSiteController', function ($scope, $state, $stateParams, siteService, folderService, cipherService, $q) {
.controller('vaultAddSiteController', function ($scope, $state, $stateParams, siteService, folderService, cryptoService, $q, toastr) {
var returnScrollY = $stateParams.returnScrollY;
var returnSearchText = $stateParams.returnSearchText;
var fromCurrent = $stateParams.uri !== null;
@@ -20,35 +20,18 @@
}
popupUtils.initListSectionItemListeners();
var promises = [];
var decFolders = [{
id: null,
name: '(none)'
}];
folderService.getAll(function (folders) {
for (var i = 1; i < folders.length; i++) {
decFolders.push({
id: folders[i].id
});
var folderNamePromise = cipherService.decrypt(folders[i].name, i);
promises.push(folderNamePromise);
folderNamePromise.then(function (obj) {
decFolders[obj.index].name = obj.val;
});
}
$q.all(promises).then(function () {
$scope.folders = decFolders;
});
$q.when(folderService.getAllDecrypted()).then(function (folders) {
$scope.folders = folders.concat([{
id: null,
name: '(none)'
}]);
});
$scope.savePromise = null;
$scope.save = function (model) {
$scope.savePromise = cipherService.encryptSite(model).then(function (siteModel) {
$scope.savePromise = $q.when(siteService.encrypt(model)).then(function (siteModel) {
var site = new Site(siteModel, true);
return saveSite(site).then(function (site) {
return $q.when(siteService.saveWithServer(site)).then(function (site) {
toastr.success('Added site');
$scope.close();
});
@@ -69,14 +52,4 @@
});
}
};
function saveSite(site) {
return $q(function (resolve, reject) {
siteService.saveWithServer(site, function (site) {
resolve(site);
}, function (error) {
reject(error);
});
});
}
});

View File

@@ -1,7 +1,7 @@
angular
.module('bit.vault')
.controller('vaultController', function ($scope, $rootScope, siteService, folderService, $q, cipherService, $state, $stateParams, toastr) {
.controller('vaultController', function ($scope, $rootScope, siteService, folderService, $q, $state, $stateParams, toastr) {
$('#search').focus();
var delayLoad = true;

View File

@@ -1,7 +1,7 @@
angular
.module('bit.vault')
.controller('vaultEditSiteController', function ($scope, $state, $stateParams, siteService, folderService, cipherService, $q, toastr) {
.controller('vaultEditSiteController', function ($scope, $state, $stateParams, siteService, folderService, cryptoService, $q, toastr) {
var returnScrollY = $stateParams.returnScrollY;
var returnSearchText = $stateParams.returnSearchText;
@@ -10,42 +10,25 @@ angular
};
siteService.get($stateParams.siteId, function (site) {
cipherService.decryptSite(site).then(function (model) {
$q.when(site.decrypt()).then(function (model) {
$scope.site = model;
});
});
var promises = [];
var decFolders = [{
id: null,
name: '(none)'
}];
folderService.getAll(function (folders) {
for (var i = 1; i < folders.length; i++) {
decFolders.push({
id: folders[i].id
});
var folderNamePromise = cipherService.decrypt(folders[i].name, i);
promises.push(folderNamePromise);
folderNamePromise.then(function (obj) {
decFolders[obj.index].name = obj.val;
});
}
$q.all(promises).then(function () {
$scope.folders = decFolders;
});
$q.when(folderService.getAllDecrypted()).then(function (folders) {
$scope.folders = folders.concat([{
id: null,
name: '(none)'
}]);
});
popupUtils.initListSectionItemListeners();
$scope.savePromise = null;
$scope.save = function (model) {
$scope.savePromise = cipherService.encryptSite(model).then(function (siteModel) {
$scope.savePromise = $q.when(siteService.encrypt(model)).then(function (siteModel) {
var site = new Site(siteModel, true);
return saveSite(site).then(function (site) {
return $q.when(siteService.saveWithServer(site)).then(function (site) {
toastr.success('Edited site');
$scope.close();
});
@@ -69,14 +52,4 @@ angular
});
}
};
function saveSite(site) {
return $q(function (resolve, reject) {
siteService.saveWithServer(site, function (site) {
resolve(site);
}, function (error) {
reject(error);
});
});
}
});

View File

@@ -1,13 +1,13 @@
angular
.module('bit.vault')
.controller('vaultViewSiteController', function ($scope, $state, $stateParams, siteService, cipherService, tldjs, toastr) {
.controller('vaultViewSiteController', function ($scope, $state, $stateParams, siteService, tldjs, toastr, $q) {
var returnScrollY = $stateParams.returnScrollY;
var returnSearchText = $stateParams.returnSearchText;
$scope.site = null;
siteService.get($stateParams.siteId, function (site) {
cipherService.decryptSite(site).then(function (model) {
$q.when(site.decrypt()).then(function (model) {
$scope.site = model;
if (model.password) {

View File

@@ -39,7 +39,6 @@
<script src="app/services/servicesModule.js"></script>
<script src="app/services/backgroundService.js"></script>
<script src="app/services/loginService.js"></script>
<script src="app/services/cipherService.js"></script>
<script src="app/services/validationService.js"></script>
<script src="app/global/globalModule.js"></script>