1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-10-20 07:40:57 +02:00
bitwarden-browser/src/popup/app/vault/vaultController.js

97 lines
3.0 KiB
JavaScript
Raw Normal View History

angular
.module('bit.vault')
2016-09-06 04:27:32 +02:00
.controller('vaultController', function ($scope, $ionicModal, siteService, folderService, $q) {
$scope.parentScope = $scope;
$scope.sites = [];
$scope.folders = [];
var decSites = [];
var decFolders = [{
id: null,
name: '(none)'
}];
folderService.getAll(function (folders) {
siteService.getAll(function (sites) {
2016-09-06 04:27:32 +02:00
var promises = [];
for (var i = 0; i < folders.length; i++) {
decFolders.push({
2016-09-05 17:05:27 +02:00
id: folders[i].id
});
2016-09-06 04:27:32 +02:00
promises.push(decrypt(folders[j].name, i).then(function (obj) {
decFolders[obj.index].name = obj.val;
}));
}
for (var j = 0; j < sites.length; j++) {
decSites.push({
id: sites[j].id,
folderId: sites[j].folderId,
2016-09-05 17:05:27 +02:00
favorite: sites[j].favorite
});
2016-09-05 17:05:27 +02:00
2016-09-06 04:27:32 +02:00
promises.push(decrypt(sites[j].name, j).then(function (obj) {
decSites[obj.index].name = obj.val;
}));
promises.push(decrypt(sites[j].username, j).then(function (obj) {
decSites[obj.index].username = obj.val;
}));
}
2016-09-06 04:27:32 +02:00
$q.all(promises).then(function () {
$scope.sites = decSites;
$scope.folders = decFolders;
});
});
});
2016-09-06 04:27:32 +02:00
function decrypt(cipherString, index) {
return $q(function(resolve, reject) {
if (!cipherString) {
resolve({val: null, index: index});
}
else {
cipherString.decrypt(function (decString) {
resolve({ val: decString, index: index });
});
}
});
}
2016-09-03 22:48:39 +02:00
$scope.addSite = function () {
2016-09-04 03:45:45 +02:00
$ionicModal.fromTemplateUrl('app/vault/views/vaultAddSite.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function (modal) {
$scope.addSiteModal = modal;
modal.show();
});
2016-09-03 22:48:39 +02:00
};
$scope.closeAddSite = function () {
$scope.addSiteModal.hide();
};
// Cleanup the modal when we're done with it!
$scope.$on('$destroy', function () {
2016-09-04 03:45:45 +02:00
console.log('modal destroyed');
2016-09-03 22:48:39 +02:00
$scope.addSiteModal.remove();
});
// Execute action on hide modal
$scope.$on('modal.hidden', function () {
2016-09-04 03:45:45 +02:00
console.log('modal hidden');
2016-09-03 22:48:39 +02:00
// Execute action
});
// Execute action on remove modal
$scope.$on('modal.removed', function () {
2016-09-04 03:45:45 +02:00
console.log('modal removed');
2016-09-03 22:48:39 +02:00
// Execute action
});
});