diff --git a/apps/web/src/app/organizations/manage/member-dialog/index.ts b/apps/web/src/app/organizations/manage/member-dialog/index.ts new file mode 100644 index 00000000000..455d477c962 --- /dev/null +++ b/apps/web/src/app/organizations/manage/member-dialog/index.ts @@ -0,0 +1,2 @@ +export * from "./member-dialog.component"; +export * from "./member-dialog.module"; diff --git a/apps/web/src/app/organizations/manage/member-dialog/member-dialog.component.html b/apps/web/src/app/organizations/manage/member-dialog/member-dialog.component.html new file mode 100644 index 00000000000..22ed712c76b --- /dev/null +++ b/apps/web/src/app/organizations/manage/member-dialog/member-dialog.component.html @@ -0,0 +1,433 @@ +
diff --git a/apps/web/src/app/organizations/manage/user-add-edit.component.ts b/apps/web/src/app/organizations/manage/member-dialog/member-dialog.component.ts similarity index 69% rename from apps/web/src/app/organizations/manage/user-add-edit.component.ts rename to apps/web/src/app/organizations/manage/member-dialog/member-dialog.component.ts index 4a9d01efb5d..1f0a559af26 100644 --- a/apps/web/src/app/organizations/manage/user-add-edit.component.ts +++ b/apps/web/src/app/organizations/manage/member-dialog/member-dialog.component.ts @@ -1,4 +1,6 @@ -import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; +import { DialogConfig, DialogRef, DIALOG_DATA } from "@angular/cdk/dialog"; +import { Component, Inject, OnInit } from "@angular/core"; +import { FormBuilder } from "@angular/forms"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { CollectionService } from "@bitwarden/common/abstractions/collection.service"; @@ -15,21 +17,35 @@ import { OrganizationUserUpdateRequest } from "@bitwarden/common/models/request/ import { SelectionReadOnlyRequest } from "@bitwarden/common/models/request/selection-read-only.request"; import { CollectionDetailsResponse } from "@bitwarden/common/models/response/collection.response"; import { CollectionView } from "@bitwarden/common/models/view/collection.view"; +import { DialogService } from "@bitwarden/components"; + +export enum MemberDialogTab { + Role = 0, + Groups = 1, + Collections = 2, +} + +export interface MemberDialogParams { + name: string; + organizationId: string; + organizationUserId: string; + usesKeyConnector: boolean; + initialTab?: MemberDialogTab; +} + +export enum MemberDialogResult { + Saved = "saved", + Canceled = "canceled", + Deleted = "deleted", + Revoked = "revoked", + Restored = "restored", +} @Component({ - selector: "app-user-add-edit", - templateUrl: "user-add-edit.component.html", + selector: "app-member-dialog", + templateUrl: "member-dialog.component.html", }) -export class UserAddEditComponent implements OnInit { - @Input() name: string; - @Input() organizationUserId: string; - @Input() organizationId: string; - @Input() usesKeyConnector = false; - @Output() onSavedUser = new EventEmitter(); - @Output() onDeletedUser = new EventEmitter(); - @Output() onRevokedUser = new EventEmitter(); - @Output() onRestoredUser = new EventEmitter(); - +export class MemberDialogComponent implements OnInit { loading = true; editMode = false; isRevoked = false; @@ -40,10 +56,12 @@ export class UserAddEditComponent implements OnInit { showCustom = false; access: "all" | "selected" = "selected"; collections: CollectionView[] = []; - formPromise: Promise