diff --git a/src/app/vault/vaultController.js b/src/app/vault/vaultController.js index 8c7e823c01f..b1cc18aba21 100644 --- a/src/app/vault/vaultController.js +++ b/src/app/vault/vaultController.js @@ -2,20 +2,23 @@ .module('bit.vault') .controller('vaultController', function ($scope, $uibModal, apiService, $filter, cryptoService, authService, toastr, - cipherService, $q) { + cipherService, $q, $localStorage) { $scope.logins = []; $scope.folders = []; $scope.loading = true; + $scope.favoriteCollapsed = $localStorage.collapsedFolders && 'favorite' in $localStorage.collapsedFolders; $scope.$on('$viewContentLoaded', function () { var folderPromise = apiService.folders.list({}, function (folders) { var decFolders = [{ id: null, - name: 'No Folder' + name: 'No Folder', + collapsed: $localStorage.collapsedFolders && 'none' in $localStorage.collapsedFolders }]; for (var i = 0; i < folders.Data.length; i++) { var decFolder = cipherService.decryptFolderPreview(folders.Data[i]); + decFolder.collapsed = $localStorage.collapsedFolders && decFolder.id in $localStorage.collapsedFolders; decFolders.push(decFolder); } @@ -48,6 +51,20 @@ return item.name.toLowerCase(); }; + $scope.collapseExpand = function (folder, favorite) { + if (!$localStorage.collapsedFolders) { + $localStorage.collapsedFolders = {}; + } + + var id = favorite ? 'favorite' : (folder.id || 'none'); + if (id in $localStorage.collapsedFolders) { + delete $localStorage.collapsedFolders[id]; + } + else { + $localStorage.collapsedFolders[id] = true; + } + }; + $scope.editLogin = function (login) { var editModel = $uibModal.open({ animation: true, diff --git a/src/app/vault/vaultSubvaultsController.js b/src/app/vault/vaultSubvaultsController.js index f425c4917bf..c97f24dd0a7 100644 --- a/src/app/vault/vaultSubvaultsController.js +++ b/src/app/vault/vaultSubvaultsController.js @@ -1,7 +1,7 @@ angular .module('bit.vault') - .controller('vaultSubvaultsController', function ($scope, apiService, cipherService, $analytics, $q) { + .controller('vaultSubvaultsController', function ($scope, apiService, cipherService, $analytics, $q, $localStorage) { $scope.logins = []; $scope.subvaults = []; $scope.loading = true; @@ -12,6 +12,8 @@ for (var i = 0; i < subvaults.Data.length; i++) { var decSubvault = cipherService.decryptSubvault(subvaults.Data[i], null, true); + decSubvault.collapsed = $localStorage.collapsedSubvaults && + decSubvault.id in $localStorage.collapsedSubvaults; decSubvaults.push(decSubvault); } @@ -41,4 +43,17 @@ return cipher.subvaultIds.indexOf(subvault.id) > -1; }; }; + + $scope.collapseExpand = function (subvault) { + if (!$localStorage.collapsedSubvaults) { + $localStorage.collapsedSubvaults = {}; + } + + if (subvault.id in $localStorage.collapsedFolders) { + delete $localStorage.collapsedSubvaults[subvault.id]; + } + else { + $localStorage.collapsedSubvaults[subvault.id] = true; + } + }; }); diff --git a/src/app/vault/views/vault.html b/src/app/vault/views/vault.html index cca3cdf1e71..8b5063e7289 100644 --- a/src/app/vault/views/vault.html +++ b/src/app/vault/views/vault.html @@ -8,7 +8,7 @@
Loading...
No subvaults.