diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/service-accounts/service-accounts-list.component.ts b/bitwarden_license/bit-web/src/app/secrets-manager/service-accounts/service-accounts-list.component.ts index 2cb02482f6..5bc0b1e7f9 100644 --- a/bitwarden_license/bit-web/src/app/secrets-manager/service-accounts/service-accounts-list.component.ts +++ b/bitwarden_license/bit-web/src/app/secrets-manager/service-accounts/service-accounts-list.component.ts @@ -2,6 +2,8 @@ import { SelectionModel } from "@angular/cdk/collections"; import { Component, EventEmitter, Input, OnDestroy, Output } from "@angular/core"; import { Subject, takeUntil } from "rxjs"; +import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; +import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; import { TableDataSource } from "@bitwarden/components"; import { ServiceAccountView } from "../models/view/service-account.view"; @@ -38,7 +40,10 @@ export class ServiceAccountsListComponent implements OnDestroy { selection = new SelectionModel(true, []); - constructor() { + constructor( + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService + ) { this.selection.changed .pipe(takeUntil(this.destroy$)) .subscribe((_) => this.onServiceAccountCheckedEvent.emit(this.selection.selected)); @@ -70,6 +75,12 @@ export class ServiceAccountsListComponent implements OnDestroy { this.deleteServiceAccountsEvent.emit( this.serviceAccounts.filter((sa) => this.selection.isSelected(sa.id)) ); + } else { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("nothingSelected") + ); } } } diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/shared/projects-list.component.ts b/bitwarden_license/bit-web/src/app/secrets-manager/shared/projects-list.component.ts index bc40f17485..1824c7b62d 100644 --- a/bitwarden_license/bit-web/src/app/secrets-manager/shared/projects-list.component.ts +++ b/bitwarden_license/bit-web/src/app/secrets-manager/shared/projects-list.component.ts @@ -2,6 +2,8 @@ import { SelectionModel } from "@angular/cdk/collections"; import { Component, EventEmitter, Input, OnDestroy, Output } from "@angular/core"; import { Subject, takeUntil } from "rxjs"; +import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; +import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; import { TableDataSource } from "@bitwarden/components"; import { ProjectListView } from "../models/view/project-list.view"; @@ -38,7 +40,10 @@ export class ProjectsListComponent implements OnDestroy { selection = new SelectionModel(true, []); - constructor() { + constructor( + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService + ) { this.selection.changed .pipe(takeUntil(this.destroy$)) .subscribe((_) => this.onProjectCheckedEvent.emit(this.selection.selected)); @@ -66,8 +71,16 @@ export class ProjectsListComponent implements OnDestroy { } bulkDeleteProjects() { - this.deleteProjectEvent.emit( - this.projects.filter((project) => this.selection.isSelected(project.id)) - ); + if (this.selection.selected.length >= 1) { + this.deleteProjectEvent.emit( + this.projects.filter((project) => this.selection.isSelected(project.id)) + ); + } else { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("nothingSelected") + ); + } } } diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/shared/secrets-list.component.ts b/bitwarden_license/bit-web/src/app/secrets-manager/shared/secrets-list.component.ts index 0f20e1e216..ec0be650d6 100644 --- a/bitwarden_license/bit-web/src/app/secrets-manager/shared/secrets-list.component.ts +++ b/bitwarden_license/bit-web/src/app/secrets-manager/shared/secrets-list.component.ts @@ -46,7 +46,10 @@ export class SecretsListComponent implements OnDestroy { selection = new SelectionModel(true, []); - constructor() { + constructor( + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService + ) { this.selection.changed .pipe(takeUntil(this.destroy$)) .subscribe((_) => this.onSecretCheckedEvent.emit(this.selection.selected)); @@ -74,12 +77,24 @@ export class SecretsListComponent implements OnDestroy { this.deleteSecretsEvent.emit( this.secrets.filter((secret) => this.selection.isSelected(secret.id)) ); + } else { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("nothingSelected") + ); } } bulkRestoreSecrets() { if (this.selection.selected.length >= 1) { this.restoreSecretsEvent.emit(this.selection.selected); + } else { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("nothingSelected") + ); } }