mirror of
https://github.com/bitwarden/browser
synced 2025-12-21 18:53:29 +00:00
decrypt and list sites
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
angular
|
||||
.module('bit.vault')
|
||||
|
||||
.controller('vaultController', function ($scope, $ionicModal, siteService, folderService) {
|
||||
.controller('vaultController', function ($scope, $ionicModal, siteService, folderService, $q) {
|
||||
$scope.parentScope = $scope;
|
||||
$scope.sites = [];
|
||||
$scope.folders = [];
|
||||
@@ -14,14 +14,16 @@
|
||||
|
||||
folderService.getAll(function (folders) {
|
||||
siteService.getAll(function (sites) {
|
||||
var promises = [];
|
||||
|
||||
for (var i = 0; i < folders.length; i++) {
|
||||
decFolders.push({
|
||||
id: folders[i].id
|
||||
});
|
||||
|
||||
folders[i].name.decrypt(function (name) {
|
||||
decFolders.name = name;
|
||||
});
|
||||
promises.push(decrypt(folders[j].name, i).then(function (obj) {
|
||||
decFolders[obj.index].name = obj.val;
|
||||
}));
|
||||
}
|
||||
|
||||
for (var j = 0; j < sites.length; j++) {
|
||||
@@ -31,24 +33,35 @@
|
||||
favorite: sites[j].favorite
|
||||
});
|
||||
|
||||
if (sites[j].name && sites[j].name.encryptedString) {
|
||||
sites[j].name.decrypt(function (name) {
|
||||
decSites.name = name;
|
||||
});
|
||||
}
|
||||
|
||||
if (sites[j].username && sites[j].username.encryptedString) {
|
||||
sites[j].username.decrypt(function (username) {
|
||||
decSites.username = username;
|
||||
});
|
||||
}
|
||||
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;
|
||||
}));
|
||||
}
|
||||
|
||||
$scope.sites = decSites;
|
||||
$scope.folders = decFolders;
|
||||
$q.all(promises).then(function () {
|
||||
$scope.sites = decSites;
|
||||
$scope.folders = decFolders;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
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 });
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$scope.addSite = function () {
|
||||
$ionicModal.fromTemplateUrl('app/vault/views/vaultAddSite.html', {
|
||||
scope: $scope,
|
||||
|
||||
@@ -4,10 +4,16 @@
|
||||
</ion-nav-buttons>
|
||||
<ion-content>
|
||||
<div class="list">
|
||||
<div class="item item-button-right">
|
||||
Site 1
|
||||
<button class="button button-clear button-dark"><i class="icon ion-more"></i></button>
|
||||
</div>
|
||||
<ng-repeat ng-repeat="folder in folders | orderBy: folderSort" ng-show="folders.length">
|
||||
<div class="item item-divider">
|
||||
{{folder.name}}
|
||||
</div>
|
||||
<div class="item item-button-right" ng-repeat="site in folderSites = (sites | filter: { folderId: folder.id } | orderBy: ['name', 'username'])">
|
||||
{{site.name}}<br />
|
||||
{{site.username}}
|
||||
<button class="button button-clear button-dark"><i class="icon ion-more"></i></button>
|
||||
</div>
|
||||
</ng-repeat>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
|
||||
Reference in New Issue
Block a user