mirror of
https://github.com/bitwarden/browser
synced 2025-12-16 08:13:42 +00:00
[Linked fields] Fix change detection on cipherType (#536)
* Fix bug that clears linkedId values when editing * Add null check * Fix linting
This commit is contained in:
@@ -49,6 +49,10 @@ export class AddEditCustomFieldsComponent implements OnChanges {
|
|||||||
ngOnChanges(changes: SimpleChanges) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
if (changes.thisCipherType != null) {
|
if (changes.thisCipherType != null) {
|
||||||
this.setLinkedFieldOptions();
|
this.setLinkedFieldOptions();
|
||||||
|
|
||||||
|
if (!changes.thisCipherType.firstChange) {
|
||||||
|
this.resetCipherLinkedFields();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,9 +96,7 @@ export class AddEditCustomFieldsComponent implements OnChanges {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private setLinkedFieldOptions() {
|
private setLinkedFieldOptions() {
|
||||||
// Delete any Linked custom fields if the item type does not support them
|
|
||||||
if (this.cipher.linkedFieldOptions == null) {
|
if (this.cipher.linkedFieldOptions == null) {
|
||||||
this.cipher.fields = this.cipher.fields.filter(f => f.type !== FieldType.Linked);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,11 +104,21 @@ export class AddEditCustomFieldsComponent implements OnChanges {
|
|||||||
this.cipher.linkedFieldOptions.forEach((linkedFieldOption, id) =>
|
this.cipher.linkedFieldOptions.forEach((linkedFieldOption, id) =>
|
||||||
options.push({ name: this.i18nService.t(linkedFieldOption.i18nKey), value: id }));
|
options.push({ name: this.i18nService.t(linkedFieldOption.i18nKey), value: id }));
|
||||||
this.linkedFieldOptions = options.sort(Utils.getSortFunction(this.i18nService, 'name'));
|
this.linkedFieldOptions = options.sort(Utils.getSortFunction(this.i18nService, 'name'));
|
||||||
|
}
|
||||||
|
|
||||||
if (!this.editMode) {
|
private resetCipherLinkedFields() {
|
||||||
this.cipher.fields
|
if (this.cipher.fields == null || this.cipher.fields.length === 0) {
|
||||||
.filter(f => f.type = FieldType.Linked)
|
return;
|
||||||
.forEach(f => f.linkedId = this.linkedFieldOptions[0].value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete any Linked custom fields if the item type does not support them
|
||||||
|
if (this.cipher.linkedFieldOptions == null) {
|
||||||
|
this.cipher.fields = this.cipher.fields.filter(f => f.type !== FieldType.Linked);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.cipher.fields
|
||||||
|
.filter(f => f.type = FieldType.Linked)
|
||||||
|
.forEach(f => f.linkedId = this.linkedFieldOptions[0].value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user