From 2547f46f6b9bd9b317850dfaac5172913cbfdf4a Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 5 Jul 2024 17:55:49 -0700 Subject: [PATCH] Frontend UI for creating select fields, alter extra_data format --- src-ui/messages.xlf | 19 +++++-- .../custom-field-display.component.spec.ts | 4 +- .../custom-field-display.component.ts | 4 +- .../custom-field-edit-dialog.component.html | 17 ++++++ ...custom-field-edit-dialog.component.spec.ts | 21 +++++++ .../custom-field-edit-dialog.component.ts | 26 ++++++++- .../document-detail.component.html | 2 +- src-ui/src/app/data/custom-field.ts | 4 +- src/documents/serialisers.py | 13 +++-- src/documents/tests/test_api_custom_fields.py | 56 +++++++++++++++++-- 10 files changed, 147 insertions(+), 19 deletions(-) diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index c4e70f1fe..dc25ca462 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -544,7 +544,7 @@ src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html - 19 + 36 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html @@ -1447,6 +1447,10 @@ src/app/components/admin/users-groups/users-groups.component.html 76 + + src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html + 26 + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts 53 @@ -1624,7 +1628,7 @@ src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html - 18 + 35 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html @@ -3445,18 +3449,25 @@ 14 + + Add option + + src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html + 20 + + Create new custom field src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts - 36 + 44 Edit custom field src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts - 40 + 48 diff --git a/src-ui/src/app/components/common/custom-field-display/custom-field-display.component.spec.ts b/src-ui/src/app/components/common/custom-field-display/custom-field-display.component.spec.ts index 43d101611..8706cfac1 100644 --- a/src-ui/src/app/components/common/custom-field-display/custom-field-display.component.spec.ts +++ b/src-ui/src/app/components/common/custom-field-display/custom-field-display.component.spec.ts @@ -16,7 +16,9 @@ const customFields: CustomField[] = [ id: 4, name: 'Field 4', data_type: CustomFieldDataType.Select, - extra_data: ['Option 1', 'Option 2', 'Option 3'], + extra_data: { + select_options: ['Option 1', 'Option 2', 'Option 3'], + }, }, ] const document: Document = { diff --git a/src-ui/src/app/components/common/custom-field-display/custom-field-display.component.ts b/src-ui/src/app/components/common/custom-field-display/custom-field-display.component.ts index 1b309506b..7c97c660a 100644 --- a/src-ui/src/app/components/common/custom-field-display/custom-field-display.component.ts +++ b/src-ui/src/app/components/common/custom-field-display/custom-field-display.component.ts @@ -115,8 +115,8 @@ export class CustomFieldDisplayComponent implements OnInit, OnDestroy { return this.docLinkDocuments?.find((d) => d.id === docId)?.title } - public getSelectValue(field: CustomField, value: number): string { - return field.extra_data[value] + public getSelectValue(field: CustomField, index: number): string { + return field.extra_data.select_options[index] } ngOnDestroy(): void { diff --git a/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html b/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html index 681f4d8c7..2c8d5493d 100644 --- a/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html +++ b/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html @@ -13,6 +13,23 @@ @if (typeFieldDisabled) { Data type cannot be changed after a field is created } + + @switch (objectForm.get('data_type').value) { + @case (CustomFieldDataType.Select) { + + Add option + + + @for (option of objectForm.controls.extra_data.controls.select_options.controls; track option; let i = $index) { + + + Delete + + } + + } + } +