From 06f2364733ae96ca7c5b716268d411e9b1c3fd2f Mon Sep 17 00:00:00 2001 From: Chad Griffis <16548994+gryffs@users.noreply.github.com> Date: Thu, 22 Apr 2021 23:13:21 +0800 Subject: [PATCH] Implement the markAsDirty form controls for AddEditComponent(#761). --- src/app/vault/add-edit.component.html | 2 +- src/app/vault/add-edit.component.ts | 9 +++++++++ src/app/vault/vault.component.ts | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/app/vault/add-edit.component.html b/src/app/vault/add-edit.component.html index a0d00e84d1..63e7d77109 100644 --- a/src/app/vault/add-edit.component.html +++ b/src/app/vault/add-edit.component.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/app/vault/add-edit.component.ts b/src/app/vault/add-edit.component.ts index ebc3d93b03..6b834f22e9 100644 --- a/src/app/vault/add-edit.component.ts +++ b/src/app/vault/add-edit.component.ts @@ -3,7 +3,9 @@ import { NgZone, OnChanges, OnDestroy, + ViewChild } from '@angular/core'; +import { NgForm } from '@angular/forms'; import { AuditService } from 'jslib/abstractions/audit.service'; import { CipherService } from 'jslib/abstractions/cipher.service'; @@ -21,6 +23,7 @@ import { BroadcasterService } from 'jslib/angular/services/broadcaster.service'; import { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/add-edit.component'; + const BroadcasterSubscriptionId = 'AddEditComponent'; @Component({ @@ -28,6 +31,8 @@ const BroadcasterSubscriptionId = 'AddEditComponent'; templateUrl: 'add-edit.component.html', }) export class AddEditComponent extends BaseAddEditComponent implements OnChanges, OnDestroy { + @ViewChild('form') + private form: NgForm; constructor(cipherService: CipherService, folderService: FolderService, i18nService: I18nService, platformUtilsService: PlatformUtilsService, auditService: AuditService, stateService: StateService, @@ -84,4 +89,8 @@ export class AddEditComponent extends BaseAddEditComponent implements OnChanges, return (!this.editMode || this.cloneMode) && this.ownershipOptions && (this.ownershipOptions.length > 1 || !this.allowPersonal); } + + markPasswordAsDirty() { + this.form.controls['Login.Password'].markAsDirty(); + } } diff --git a/src/app/vault/vault.component.ts b/src/app/vault/vault.component.ts index 3d9513fdbb..c0af15560b 100644 --- a/src/app/vault/vault.component.ts +++ b/src/app/vault/vault.component.ts @@ -554,6 +554,7 @@ export class VaultComponent implements OnInit, OnDestroy { this.modal.close(); if (this.addEditComponent != null && this.addEditComponent.cipher != null && this.addEditComponent.cipher.type === CipherType.Login && this.addEditComponent.cipher.login != null) { + this.addEditComponent.markPasswordAsDirty(); this.addEditComponent.cipher.login.password = password; } });