1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-15 07:43:35 +00:00

tracking vault state with stateService

This commit is contained in:
Kyle Spearrin
2016-12-08 00:56:38 -05:00
parent ced707647f
commit e414dd1867
9 changed files with 80 additions and 75 deletions

View File

@@ -2,13 +2,18 @@
.module('bit.vault')
.controller('vaultViewFolderController', function ($scope, siteService, folderService, $q, $state, $stateParams, toastr,
syncService, $analytics, i18nService) {
syncService, $analytics, i18nService, stateService) {
var stateKey = 'viewFolder',
state = stateService.getState(stateKey) || {};
state.folderId = $stateParams.folderId || state.folderId;
var pageSize = 100,
decFolder = null,
decSites = [];
$scope.folder = {
id: $stateParams.folderId || null,
id: !state.folderId || state.folderId === '0' ? null : state.folderId,
name: '(none)'
};
$scope.i18n = i18nService;
@@ -17,6 +22,7 @@
$scope.loaded = false;
$scope.vaultSites = [];
$scope.pagedVaultSites = [];
$scope.searchText = null;
loadVault();
function loadVault() {
@@ -46,7 +52,13 @@
if (decFolder) {
$scope.folder.name = decFolder.name;
}
setScrollY();
if (state.searchText) {
$scope.searchText = state.searchText;
$scope.searchSites();
}
setTimeout(setScrollY, 200);
});
}
@@ -95,11 +107,6 @@
}
};
$scope.searchText = null;
if ($stateParams.searchText) {
$scope.searchText = $stateParams.searchText;
}
$scope.searchSites = function () {
if (!$scope.searchText || $scope.searchText.length < 2) {
if ($scope.vaultSites.length !== decSites.length) {
@@ -140,20 +147,18 @@
}
$scope.addSite = function () {
storeState();
$state.go('addSite', {
animation: 'in-slide-up',
returnScrollY: getScrollY(),
returnSearchText: $scope.searchText,
from: 'folder'
});
};
$scope.viewSite = function (site) {
storeState();
$state.go('viewSite', {
siteId: site.id,
animation: 'in-slide-up',
returnScrollY: getScrollY(),
returnSearchText: $scope.searchText,
from: 'folder'
});
};
@@ -168,15 +173,24 @@
toastr.info(type + i18nService.valueCopied);
};
function storeState() {
angular.extend(state, {
scrollY: getScrollY(),
searchText: $scope.searchText
});
stateService.saveState(stateKey, state);
}
function getScrollY() {
var content = document.getElementsByClassName('content')[0];
return content.scrollTop;
}
function setScrollY() {
if ($stateParams.scrollY) {
if (state.scrollY) {
var content = document.getElementsByClassName('content')[0];
content.scrollTop = $stateParams.scrollY;
content.scrollTop = state.scrollY;
}
}
});