bitwarden-estensione-browser/src/popup/app/vault/vaultController.js

126 lines
4.0 KiB
JavaScript

angular
.module('bit.vault')
.controller('vaultController', function ($scope, siteService, folderService, $q, cipherService) {
$scope.parentScope = $scope;
$scope.sites = [];
$scope.folders = [];
$scope.focusedSiteId = null;
$scope.$on('$ionicView.enter', function (event, data) {
loadVault();
});
function loadVault() {
var decSites = [];
var decFolders = [{
id: null,
name: '(none)'
}];
folderService.getAll(function (folders) {
siteService.getAll(function (sites) {
var promises = [];
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;
});
}
for (var j = 0; j < sites.length; j++) {
decSites.push({
id: sites[j].id,
folderId: sites[j].folderId,
favorite: sites[j].favorite
});
var namePromise = cipherService.decrypt(sites[j].name, j);
promises.push(namePromise);
namePromise.then(function (obj) {
decSites[obj.index].name = obj.val;
});
var usernamePromise = cipherService.decrypt(sites[j].username, j);
promises.push(usernamePromise);
usernamePromise.then(function (obj) {
decSites[obj.index].username = obj.val;
});
}
$q.all(promises).then(function () {
$scope.sites = decSites;
$scope.folders = decFolders;
});
});
});
}
$scope.folderSort = function (item) {
if (!item.id) {
return '';
}
return item.name.toLowerCase();
};
/*
$scope.viewSite = function (site) {
$scope.focusedSiteId = site.id;
$ionicModal.fromTemplateUrl('app/vault/views/vaultViewSite.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function (modal) {
$scope.viewSiteModal = modal;
modal.show();
});
};
$scope.editSite = function (site) {
$scope.focusedSiteId = site.id;
$ionicModal.fromTemplateUrl('app/vault/views/vaultEditSite.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function (modal) {
$scope.editSiteModal = modal;
modal.show();
});
};
$scope.addSite = function () {
$ionicModal.fromTemplateUrl('app/vault/views/vaultAddSite.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function (modal) {
$scope.addSiteModal = modal;
modal.show();
});
};
*/
$scope.closeAddSite = function () {
$scope.addSiteModal.hide();
};
$scope.closeViewSite = function () {
$scope.viewSiteModal.hide();
$scope.focusedSiteId = null;
};
$scope.closeEditSite = function () {
$scope.editSiteModal.hide();
$scope.focusedSiteId = null;
};
$scope.$on('closeViewSite.hidden', function () {
console.log('modal hidden');
loadVault();
});
});