diff --git a/src/app/vault/ciphers.component.html b/src/app/vault/ciphers.component.html index 9c9838f011..2a3e6f6a8e 100644 --- a/src/app/vault/ciphers.component.html +++ b/src/app/vault/ciphers.component.html @@ -1,6 +1,7 @@ diff --git a/src/app/vault/ciphers.component.ts b/src/app/vault/ciphers.component.ts index 0e97826af0..0e7ef771e7 100644 --- a/src/app/vault/ciphers.component.ts +++ b/src/app/vault/ciphers.component.ts @@ -23,6 +23,7 @@ export class CiphersComponent implements OnInit { ciphers: CipherView[] = []; searchText: string; + searchPlaceholder: string = null; private filter: (cipher: CipherView) => boolean = null; constructor(private cipherService: CipherService) { diff --git a/src/app/vault/vault.component.ts b/src/app/vault/vault.component.ts index 26ee7f2c6e..f55705dd7a 100644 --- a/src/app/vault/vault.component.ts +++ b/src/app/vault/vault.component.ts @@ -27,6 +27,8 @@ import { CipherView } from 'jslib/models/view/cipherView'; import { CollectionView } from 'jslib/models/view/collectionView'; import { FolderView } from 'jslib/models/view/folderView'; +import { I18nService } from 'jslib/abstractions/i18n.service'; + @Component({ selector: 'app-vault', template: template, @@ -45,7 +47,7 @@ export class VaultComponent implements OnInit { collectionId: string = null; constructor(private route: ActivatedRoute, private router: Router, private location: Location, - private componentFactoryResolver: ComponentFactoryResolver) { + private componentFactoryResolver: ComponentFactoryResolver, private i18nService: I18nService) { } async ngOnInit() { @@ -138,12 +140,14 @@ export class VaultComponent implements OnInit { } async clearGroupingFilters() { + this.ciphersComponent.searchPlaceholder = this.i18nService.t('searchVault'); await this.ciphersComponent.load(); this.clearFilters(); this.go(); } async filterFavorites() { + this.ciphersComponent.searchPlaceholder = this.i18nService.t('searchFavorites'); await this.ciphersComponent.load((c) => c.favorite); this.clearFilters(); this.favorites = true; @@ -151,6 +155,7 @@ export class VaultComponent implements OnInit { } async filterCipherType(type: CipherType) { + this.ciphersComponent.searchPlaceholder = this.i18nService.t('searchType'); await this.ciphersComponent.load((c) => c.type === type); this.clearFilters(); this.type = type; @@ -159,6 +164,7 @@ export class VaultComponent implements OnInit { async filterFolder(folderId: string) { folderId = folderId === 'none' ? null : folderId; + this.ciphersComponent.searchPlaceholder = this.i18nService.t('searchFolder'); await this.ciphersComponent.load((c) => c.folderId === folderId); this.clearFilters(); this.folderId = folderId == null ? 'none' : folderId; @@ -166,6 +172,7 @@ export class VaultComponent implements OnInit { } async filterCollection(collectionId: string) { + this.ciphersComponent.searchPlaceholder = this.i18nService.t('searchCollection'); await this.ciphersComponent.load((c) => c.collectionIds.indexOf(collectionId) > -1); this.clearFilters(); this.collectionId = collectionId; diff --git a/src/locales/en/messages.json b/src/locales/en/messages.json index 8461ee5fc3..85747d9005 100644 --- a/src/locales/en/messages.json +++ b/src/locales/en/messages.json @@ -333,5 +333,18 @@ }, "ambiguous": { "message": "Avoid Ambiguous Characters" + }, + "searchCollection": { + "message": "Search collection" + }, + "searchFolder": { + "message": "Search folder" + }, + "searchFavorites": { + "message": "Search favorites" + }, + "searchType": { + "message": "Search type", + "description": "Search item type" } }