moved some cipher selection logic to base component

This commit is contained in:
Addison Beck 2020-07-16 15:39:19 -05:00
parent 5dcd69bc62
commit 80c5ded785
1 changed files with 27 additions and 0 deletions

View File

@ -31,6 +31,8 @@ export class CiphersComponent {
private pagedCiphersCount = 0;
private refreshing = false;
private maxCheckedCount = 500;
constructor(protected searchService: SearchService) { }
async load(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) {
@ -126,4 +128,29 @@ export class CiphersComponent {
this.pagedCiphers = [];
this.loadMore();
}
selectAll(select: boolean) {
if (select) {
this.selectAll(false);
}
const selectCount = select && this.ciphers.length > this.maxCheckedCount ? this.maxCheckedCount : this.ciphers.length;
for (let i = 0; i < selectCount; i++) {
this.checkCipher(this.ciphers[i], select);
}
}
checkCipher(c: CipherView, select?: boolean) {
(c as any).checked = select == null ? !(c as any).checked : select;
}
getSelected(): CipherView[] {
if (this.ciphers == null) {
return [];
}
return this.ciphers.filter((c) => !!(c as any).checked);
}
getSelectedIds(): string[] {
return this.getSelected().map((c) => c.id);
}
}