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

infinite scroll vault folder view

This commit is contained in:
Kyle Spearrin
2016-12-07 23:01:02 -05:00
parent 4541185a51
commit f1c9075768
6 changed files with 53 additions and 20 deletions

View File

@@ -3,6 +3,8 @@
.controller('vaultViewFolderController', function ($scope, siteService, folderService, $q, $state, $stateParams, toastr,
syncService, $analytics, i18nService) {
var pageSize = 100;
$scope.folder = {
id: $stateParams.folderId || null,
name: '(none)'
@@ -12,6 +14,7 @@
$scope.loaded = false;
$scope.vaultSites = [];
$scope.pagedVaultSites = [];
loadVault();
function loadVault() {
@@ -38,7 +41,37 @@
$q.all(promises).then(function () {
$scope.loaded = true;
$scope.vaultSites = decSites;
$scope.vaultSites = decSites.sort(function (a, b) {
if (!a.name) {
return 1;
}
var aName = a.name.toLowerCase(),
bName = b.name.toLowerCase();
if (aName > bName) {
return 1;
}
if (aName < bName) {
return -1;
}
if (!a.username) {
return 1;
}
var aUsername = a.username.toLowerCase(),
bUsername = b.username.toLowerCase();
if (aUsername > bUsername) {
return 1;
}
if (aUsername < bUsername) {
return -1;
}
// a must be equal to b
return 0;
});;
if (decFolder) {
$scope.folder.name = decFolder.name;
}
@@ -46,19 +79,19 @@
});
}
$scope.loadMore = function () {
var pagedLength = $scope.pagedVaultSites.length;
if ($scope.vaultSites.length > pagedLength) {
$scope.pagedVaultSites =
$scope.pagedVaultSites.concat($scope.vaultSites.slice(pagedLength, pagedLength + pageSize));
}
};
$scope.searchText = null;
if ($stateParams.searchText) {
$scope.searchText = $stateParams.searchText;
}
$scope.folderSort = function (item) {
if (!item.id) {
return '';
}
return item.name.toLowerCase();
};
$scope.searchSites = function () {
if (!$scope.searchText || $scope.searchText.length < 2) {
return;
@@ -111,10 +144,6 @@
toastr.info(type + i18nService.valueCopied);
};
$scope.$on('syncCompleted', function (event, successfully) {
setTimeout(loadVault, 500);
});
function getScrollY() {
var content = document.getElementsByClassName('content')[0];
return content.scrollTop;