diff --git a/src/Squidex/app/features/administration/pages/restore/restore-page.component.ts b/src/Squidex/app/features/administration/pages/restore/restore-page.component.ts index c0f6304ab..e23671154 100644 --- a/src/Squidex/app/features/administration/pages/restore/restore-page.component.ts +++ b/src/Squidex/app/features/administration/pages/restore/restore-page.component.ts @@ -51,7 +51,7 @@ export class RestorePageComponent extends ResourceOwner implements OnInit { const value = this.restoreForm.submit(); if (value) { - this.restoreForm.submitCompleted({}); + this.restoreForm.submitCompleted({ url: '' }); this.backupsService.postRestore(value) .subscribe(() => { diff --git a/src/Squidex/app/features/administration/pages/users/user-page.component.ts b/src/Squidex/app/features/administration/pages/users/user-page.component.ts index e2be65749..fa4f43c82 100644 --- a/src/Squidex/app/features/administration/pages/users/user-page.component.ts +++ b/src/Squidex/app/features/administration/pages/users/user-page.component.ts @@ -12,6 +12,7 @@ import { ActivatedRoute, Router } from '@angular/router'; import { ResourceOwner } from '@app/shared'; import { + CreateUserDto, UserDto, UserForm, UsersState @@ -61,7 +62,7 @@ export class UserPageComponent extends ResourceOwner implements OnInit { this.userForm.submitFailed(error); }); } else { - this.usersState.create(value) + this.usersState.create(value) .subscribe(() => { this.back(); }, error => { diff --git a/src/Squidex/app/features/administration/state/users.forms.ts b/src/Squidex/app/features/administration/state/users.forms.ts index e998d449f..ca3effe38 100644 --- a/src/Squidex/app/features/administration/state/users.forms.ts +++ b/src/Squidex/app/features/administration/state/users.forms.ts @@ -2,9 +2,9 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Form, ValidatorsEx } from '@app/shared'; -import { UserDto } from './../services/users.service'; +import { UpdateUserDto } from './../services/users.service'; -export class UserForm extends Form { +export class UserForm extends Form { constructor( formBuilder: FormBuilder ) { @@ -36,25 +36,11 @@ export class UserForm extends Form { })); } - public load(user?: UserDto) { - if (user) { - this.form.controls['password'].setValidators(null); - - super.load({ ...user, permissions: user.permissions.join('\n') }); - } else { - this.form.controls['password'].setValidators(Validators.required); - - super.load(undefined); - } + protected transformLoad(user: UpdateUserDto) { + return { ...user, permissions: user.permissions.join('\n') }; } - public submit() { - const result = super.submit(); - - if (result) { - result['permissions'] = result['permissions'].split('\n').filter((x: any) => !!x); - } - - return result; + protected transformSubmit(value: any): UpdateUserDto { + return { ...value, permissions: value['permissions'].split('\n').filter((x: any) => !!x) }; } } \ No newline at end of file diff --git a/src/Squidex/app/features/rules/pages/rules/rule-wizard.component.ts b/src/Squidex/app/features/rules/pages/rules/rule-wizard.component.ts index a6339aa75..c9b1a77a2 100644 --- a/src/Squidex/app/features/rules/pages/rules/rule-wizard.component.ts +++ b/src/Squidex/app/features/rules/pages/rules/rule-wizard.component.ts @@ -27,11 +27,11 @@ export const MODE_EDIT_ACTION = 'EditAction'; templateUrl: './rule-wizard.component.html' }) export class RuleWizardComponent implements OnInit { - public actionForm = new Form(new FormGroup({})); + public actionForm = new Form(new FormGroup({})); public actionType: string; public action: any = {}; - public triggerForm = new Form(new FormGroup({})); + public triggerForm = new Form(new FormGroup({})); public triggerType: string; public trigger: any = {}; diff --git a/src/Squidex/app/features/schemas/pages/schema/field-wizard.component.ts b/src/Squidex/app/features/schemas/pages/schema/field-wizard.component.ts index ea4a99529..f89b9ebb3 100644 --- a/src/Squidex/app/features/schemas/pages/schema/field-wizard.component.ts +++ b/src/Squidex/app/features/schemas/pages/schema/field-wizard.component.ts @@ -21,6 +21,8 @@ import { Types } from '@app/shared'; +const DEFAULT_FIELD = { name: '', partitioning: 'invariant', properties: createProperties('String') }; + @Component({ selector: 'sqx-field-wizard', styleUrls: ['./field-wizard.component.scss'], @@ -73,7 +75,7 @@ export class FieldWizardComponent implements OnInit { .subscribe(dto => { this.field = dto; - this.addFieldForm.submitCompleted({ type: fieldTypes[0].type }); + this.addFieldForm.submitCompleted({ ...DEFAULT_FIELD }); if (addNew) { if (Types.isFunction(this.nameInput.nativeElement.focus)) { diff --git a/src/Squidex/app/features/schemas/pages/schema/schema-preview-urls-form.component.ts b/src/Squidex/app/features/schemas/pages/schema/schema-preview-urls-form.component.ts index 8522190d5..9f8574a04 100644 --- a/src/Squidex/app/features/schemas/pages/schema/schema-preview-urls-form.component.ts +++ b/src/Squidex/app/features/schemas/pages/schema/schema-preview-urls-form.component.ts @@ -46,7 +46,7 @@ export class SchemaPreviewUrlsFormComponent implements OnInit { } public cancelAdd() { - this.addForm.submitCompleted({}); + this.addForm.submitCompleted({ name: '', url: '' }); } public add() { @@ -55,7 +55,7 @@ export class SchemaPreviewUrlsFormComponent implements OnInit { if (value) { this.editForm.add(value); - this.addForm.submitCompleted({}); + this.cancelAdd(); } } diff --git a/src/Squidex/app/features/schemas/pages/schemas/schema-form.component.ts b/src/Squidex/app/features/schemas/pages/schemas/schema-form.component.ts index fdac8d2fd..d6f7f53bb 100644 --- a/src/Squidex/app/features/schemas/pages/schemas/schema-form.component.ts +++ b/src/Squidex/app/features/schemas/pages/schemas/schema-form.component.ts @@ -44,7 +44,7 @@ export class SchemaFormComponent implements OnInit { } public ngOnInit() { - this.createForm.load({ import: this.import }); + this.createForm.load({ name: '', import: this.import }); this.showImport = !!this.import; } diff --git a/src/Squidex/app/features/schemas/pages/schemas/schemas-page.component.ts b/src/Squidex/app/features/schemas/pages/schemas/schemas-page.component.ts index cf0ac2093..8650792c5 100644 --- a/src/Squidex/app/features/schemas/pages/schemas/schemas-page.component.ts +++ b/src/Squidex/app/features/schemas/pages/schemas/schemas-page.component.ts @@ -77,7 +77,7 @@ export class SchemasPageComponent extends ResourceOwner implements OnInit { try { this.schemasState.addCategory(value.name); } finally { - this.addCategoryForm.submitCompleted({}); + this.addCategoryForm.submitCompleted({ name: '' }); } } } diff --git a/src/Squidex/app/features/settings/pages/clients/clients-page.component.ts b/src/Squidex/app/features/settings/pages/clients/clients-page.component.ts index bb73da085..ab81b8776 100644 --- a/src/Squidex/app/features/settings/pages/clients/clients-page.component.ts +++ b/src/Squidex/app/features/settings/pages/clients/clients-page.component.ts @@ -47,7 +47,7 @@ export class ClientsPageComponent implements OnInit { const value = this.addClientForm.submit(); if (value) { - this.clientsState.attach(value) + this.clientsState.attach({ id: value.name }) .subscribe(() => { this.addClientForm.submitCompleted(); }, error => { diff --git a/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts b/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts index c3807c899..4bf0a1b52 100644 --- a/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts +++ b/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts @@ -99,7 +99,7 @@ export class ContributorsPageComponent implements OnInit { this.contributorsState.assign(requestDto) .subscribe(isCreated => { - this.assignContributorForm.submitCompleted({}); + this.assignContributorForm.submitCompleted({ user: '' }); if (isCreated) { this.dialogs.notifyInfo('A new user with the entered email address has been created and assigned as contributor.'); diff --git a/src/Squidex/app/features/settings/pages/patterns/pattern.component.ts b/src/Squidex/app/features/settings/pages/patterns/pattern.component.ts index 8b02c9a52..4a64c1f4d 100644 --- a/src/Squidex/app/features/settings/pages/patterns/pattern.component.ts +++ b/src/Squidex/app/features/settings/pages/patterns/pattern.component.ts @@ -58,7 +58,7 @@ export class PatternComponent implements OnInit { } else { this.patternsState.create(value) .subscribe(() => { - this.editForm.submitCompleted({}); + this.editForm.submitCompleted({ pattern: '', name: '' }); }, error => { this.editForm.submitFailed(error); }); diff --git a/src/Squidex/app/features/settings/pages/roles/role.component.ts b/src/Squidex/app/features/settings/pages/roles/role.component.ts index a0980abfc..7c02be173 100644 --- a/src/Squidex/app/features/settings/pages/roles/role.component.ts +++ b/src/Squidex/app/features/settings/pages/roles/role.component.ts @@ -85,7 +85,7 @@ export class RoleComponent implements OnChanges { if (value) { this.editForm.add(value.permission); - this.addPermissionForm.submitCompleted({}); + this.addPermissionForm.submitCompleted({ permission: '' }); this.addPermissionInput.focus(); } } diff --git a/src/Squidex/app/features/settings/pages/roles/roles-page.component.ts b/src/Squidex/app/features/settings/pages/roles/roles-page.component.ts index ddf0607e8..843b92360 100644 --- a/src/Squidex/app/features/settings/pages/roles/roles-page.component.ts +++ b/src/Squidex/app/features/settings/pages/roles/roles-page.component.ts @@ -67,7 +67,7 @@ export class RolesPageComponent implements OnInit { if (value) { this.rolesState.add(value) .subscribe(() => { - this.addRoleForm.submitCompleted({}); + this.addRoleForm.submitCompleted({ name: '' }); }, error => { this.addRoleForm.submitFailed(error); }); diff --git a/src/Squidex/app/framework/state.ts b/src/Squidex/app/framework/state.ts index 4a529406d..1319ad555 100644 --- a/src/Squidex/app/framework/state.ts +++ b/src/Squidex/app/framework/state.ts @@ -20,7 +20,7 @@ export interface FormState { error?: string | null; } -export class Form { +export class Form { private readonly state = new State({ submitted: false }); public submitted = @@ -42,12 +42,20 @@ export class Form { this.form.enable(); } - protected reset(value: V | undefined) { - this.form.reset(value); + protected setValue(value?: V) { + if (value) { + this.form.reset(this.transformLoad(value)); + } else { + this.form.reset(); + } + } + + protected transformLoad(value: V): any { + return value; } - protected setValue(value: V | undefined) { - this.form.reset(value, { emitEvent: true }); + protected transformSubmit(value: any): V { + return value; } public load(value: V | undefined) { @@ -60,7 +68,7 @@ export class Form { this.state.next(_ => ({ submitted: true })); if (this.form.valid) { - const value = fullValue(this.form); + const value = this.transformSubmit(fullValue(this.form)); this.disable(); @@ -76,7 +84,7 @@ export class Form { this.enable(); if (newValue) { - this.reset(newValue); + this.setValue(newValue); } else { this.form.markAsPristine(); } diff --git a/src/Squidex/app/shared/components/comments.component.ts b/src/Squidex/app/shared/components/comments.component.ts index 5cbea6db8..cb493d69a 100644 --- a/src/Squidex/app/shared/components/comments.component.ts +++ b/src/Squidex/app/shared/components/comments.component.ts @@ -69,7 +69,7 @@ export class CommentsComponent extends ResourceOwner implements OnInit { if (value) { this.state.create(value.text).pipe(onErrorResumeNext()).subscribe(); - this.commentForm.submitCompleted({}); + this.commentForm.submitCompleted({ text: '' }); } } diff --git a/src/Squidex/app/shared/services/schemas.service.spec.ts b/src/Squidex/app/shared/services/schemas.service.spec.ts index 6bfd583e4..0a9bed879 100644 --- a/src/Squidex/app/shared/services/schemas.service.spec.ts +++ b/src/Squidex/app/shared/services/schemas.service.spec.ts @@ -419,7 +419,7 @@ describe('SchemasService', () => { const dto = new AddFieldDto('name', 'invariant', createProperties('Number')); - let field: FieldDto; + let field: FieldDto; schemasService.postField('my-app', 'my-schema', dto, undefined, version).subscribe(result => { field = result.payload; @@ -466,7 +466,7 @@ describe('SchemasService', () => { const dto = new AddFieldDto('name', 'invariant', createProperties('Number')); - let field: FieldDto; + let field: FieldDto; schemasService.postField('my-app', 'my-schema', dto, 13, version).subscribe(result => { field = result.payload; diff --git a/src/Squidex/app/shared/state/apps.forms.ts b/src/Squidex/app/shared/state/apps.forms.ts index 16d37f9de..b69ecd676 100644 --- a/src/Squidex/app/shared/state/apps.forms.ts +++ b/src/Squidex/app/shared/state/apps.forms.ts @@ -16,7 +16,7 @@ import { const FALLBACK_NAME = 'my-app'; -export class CreateAppForm extends Form { +export class CreateAppForm extends Form { public appName = value$(this.form.controls['name']).pipe(map(v => v || FALLBACK_NAME)); constructor(formBuilder: FormBuilder) { diff --git a/src/Squidex/app/shared/state/assets.forms.ts b/src/Squidex/app/shared/state/assets.forms.ts index 324bd7258..7d711093a 100644 --- a/src/Squidex/app/shared/state/assets.forms.ts +++ b/src/Squidex/app/shared/state/assets.forms.ts @@ -13,7 +13,7 @@ import { Form, Types } from '@app/framework'; import { AssetDto } from './../services/assets.service'; -export class AnnotateAssetForm extends Form { +export class AnnotateAssetForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ fileName: ['', @@ -37,7 +37,7 @@ export class AnnotateAssetForm extends Form { public submit(asset?: AssetDto) { const result = super.submit(); - if (asset) { + if (asset && result) { let index = asset.fileName.lastIndexOf('.'); if (index > 0) { diff --git a/src/Squidex/app/shared/state/backups.forms.ts b/src/Squidex/app/shared/state/backups.forms.ts index 6de3c6168..3decfeff7 100644 --- a/src/Squidex/app/shared/state/backups.forms.ts +++ b/src/Squidex/app/shared/state/backups.forms.ts @@ -13,18 +13,18 @@ import { ValidatorsEx } from '@app/framework'; -export class RestoreForm extends Form { +export class RestoreForm extends Form { public hasNoUrl = hasNoValue$(this.form.controls['url']); constructor(formBuilder: FormBuilder) { super(formBuilder.group({ - name: [null, + name: ['', [ Validators.maxLength(40), ValidatorsEx.pattern('[a-z0-9]+(\-[a-z0-9]+)*', 'Name can contain lower case letters (a-z), numbers and dashes (not at the end).') ] ], - url: [null, + url: ['', [ Validators.required ] diff --git a/src/Squidex/app/shared/state/clients.forms.ts b/src/Squidex/app/shared/state/clients.forms.ts index 1532c62ab..4b1ad2372 100644 --- a/src/Squidex/app/shared/state/clients.forms.ts +++ b/src/Squidex/app/shared/state/clients.forms.ts @@ -13,7 +13,7 @@ import { ValidatorsEx } from '@app/framework'; -export class RenameClientForm extends Form { +export class RenameClientForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ name: ['', @@ -25,7 +25,7 @@ export class RenameClientForm extends Form { } } -export class AttachClientForm extends Form { +export class AttachClientForm extends Form { public hasNoName = hasNoValue$(this.form.controls['name']); constructor(formBuilder: FormBuilder) { diff --git a/src/Squidex/app/shared/state/comments.form.ts b/src/Squidex/app/shared/state/comments.form.ts index a2620fbb4..1905d8b0d 100644 --- a/src/Squidex/app/shared/state/comments.form.ts +++ b/src/Squidex/app/shared/state/comments.form.ts @@ -9,7 +9,7 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Form } from '@app/framework'; -export class UpsertCommentForm extends Form { +export class UpsertCommentForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ text: ['', diff --git a/src/Squidex/app/shared/state/contents.forms.ts b/src/Squidex/app/shared/state/contents.forms.ts index 20c07a9bf..df52801fd 100644 --- a/src/Squidex/app/shared/state/contents.forms.ts +++ b/src/Squidex/app/shared/state/contents.forms.ts @@ -35,7 +35,7 @@ import { TagsFieldPropertiesDto } from './../services/schemas.types'; -export class SaveQueryForm extends Form { +export class SaveQueryForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ name: ['', @@ -298,7 +298,7 @@ export class FieldDefaultValue implements FieldPropertiesVisitor { } } -export class EditContentForm extends Form { +export class EditContentForm extends Form { constructor( private readonly schema: SchemaDetailsDto, private readonly languages: ImmutableArray @@ -466,7 +466,7 @@ export class EditContentForm extends Form { } } -export class PatchContentForm extends Form { +export class PatchContentForm extends Form { constructor( private readonly schema: SchemaDetailsDto, private readonly language: AppLanguageDto diff --git a/src/Squidex/app/shared/state/contributors.forms.ts b/src/Squidex/app/shared/state/contributors.forms.ts index 1ce37b075..e709f5637 100644 --- a/src/Squidex/app/shared/state/contributors.forms.ts +++ b/src/Squidex/app/shared/state/contributors.forms.ts @@ -9,7 +9,9 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Form, hasNoValue$ } from '@app/framework'; -export class AssignContributorForm extends Form { +import { UserDto } from './../services/users.service'; + +export class AssignContributorForm extends Form { public hasNoUser = hasNoValue$(this.form.controls['user']); constructor(formBuilder: FormBuilder) { diff --git a/src/Squidex/app/shared/state/languages.forms.ts b/src/Squidex/app/shared/state/languages.forms.ts index bc2e57568..776ea1724 100644 --- a/src/Squidex/app/shared/state/languages.forms.ts +++ b/src/Squidex/app/shared/state/languages.forms.ts @@ -9,7 +9,9 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Form } from '@app/framework'; -export class EditLanguageForm extends Form { +import { LanguageDto } from '../services/languages.service'; + +export class EditLanguageForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ isMaster: false, @@ -32,7 +34,7 @@ export class EditLanguageForm extends Form { } } -export class AddLanguageForm extends Form { +export class AddLanguageForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ language: [null, diff --git a/src/Squidex/app/shared/state/patterns.forms.ts b/src/Squidex/app/shared/state/patterns.forms.ts index 4267d5da2..a3d571069 100644 --- a/src/Squidex/app/shared/state/patterns.forms.ts +++ b/src/Squidex/app/shared/state/patterns.forms.ts @@ -9,7 +9,7 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Form, ValidatorsEx } from '@app/framework'; -export class EditPatternForm extends Form { +export class EditPatternForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ name: ['', diff --git a/src/Squidex/app/shared/state/roles.forms.ts b/src/Squidex/app/shared/state/roles.forms.ts index c8d859591..e9783e796 100644 --- a/src/Squidex/app/shared/state/roles.forms.ts +++ b/src/Squidex/app/shared/state/roles.forms.ts @@ -13,7 +13,7 @@ import { hasValue$ } from '@app/framework'; -export class EditPermissionsForm extends Form { +export class EditPermissionsForm extends Form { constructor() { super(new FormArray([])); } @@ -39,12 +39,12 @@ export class EditPermissionsForm extends Form { } } -export class AddPermissionForm extends Form { +export class AddPermissionForm extends Form { public hasPermission = hasValue$(this.form.controls['permission']); constructor(formBuilder: FormBuilder) { super(formBuilder.group({ - permission: [null, + permission: ['', [ Validators.required ] @@ -53,12 +53,12 @@ export class AddPermissionForm extends Form { } } -export class AddRoleForm extends Form { +export class AddRoleForm extends Form { public hasNoName = hasNoValue$(this.form.controls['name']); constructor(formBuilder: FormBuilder) { super(formBuilder.group({ - name: [null, + name: ['', [ Validators.required ] diff --git a/src/Squidex/app/shared/state/schemas.forms.ts b/src/Squidex/app/shared/state/schemas.forms.ts index 6f7e52207..a7aebd973 100644 --- a/src/Squidex/app/shared/state/schemas.forms.ts +++ b/src/Squidex/app/shared/state/schemas.forms.ts @@ -14,11 +14,13 @@ import { value$ } from '@app/framework'; +import { AddFieldDto } from '../services/schemas.service'; + import { createProperties } from './../services/schemas.types'; const FALLBACK_NAME = 'my-schema'; -export class CreateCategoryForm extends Form { +export class CreateCategoryForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ name: [''] @@ -26,7 +28,7 @@ export class CreateCategoryForm extends Form { } } -export class CreateSchemaForm extends Form { +export class CreateSchemaForm extends Form { public schemaName = value$(this.form.controls['name']).pipe(n => n || FALLBACK_NAME); @@ -45,7 +47,7 @@ export class CreateSchemaForm extends Form { } } -export class AddPreviewUrlForm extends Form { +export class AddPreviewUrlForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ name: ['', @@ -62,7 +64,7 @@ export class AddPreviewUrlForm extends Form { } } -export class ConfigurePreviewUrlsForm extends Form { +export class ConfigurePreviewUrlsForm extends Form { constructor( private readonly formBuilder: FormBuilder ) { @@ -89,7 +91,9 @@ export class ConfigurePreviewUrlsForm extends Form { this.form.removeAt(index); } - public load(value?: any) { + public transformLoad(value: { [name: string]: string }) { + const result: { name: string, url: string }[] = []; + if (Types.isObject(value)) { const length = Object.keys(value).length; @@ -101,38 +105,28 @@ export class ConfigurePreviewUrlsForm extends Form { this.remove(this.form.controls.length - 1); } - const array: any[] = []; - for (let key in value) { if (value.hasOwnProperty(key)) { - array.push({ name: key, url: value[key] }); + result.push({ name: key, url: value[key] }); } } - - value = array; } - super.load(value); + return result; } - public submit() { - let result = super.submit(); + public transformSubmit(value: { name: string, url: string }[]): { [name: string]: string } { + const result: { [name: string]: string } = {}; - if (result) { - const hash: { [name: string]: string } = {}; - - for (let item of result) { - hash[item.name] = item.url; - } - - result = hash; + for (let item of value) { + result[item.name] = item.url; } return result; } } -export class EditScriptsForm extends Form { +export class EditScriptsForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ query: '', @@ -144,7 +138,7 @@ export class EditScriptsForm extends Form { } } -export class EditFieldForm extends Form { +export class EditFieldForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ label: ['', @@ -169,7 +163,7 @@ export class EditFieldForm extends Form { } } -export class EditSchemaForm extends Form { +export class EditSchemaForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ label: ['', @@ -186,7 +180,7 @@ export class EditSchemaForm extends Form { } } -export class AddFieldForm extends Form { +export class AddFieldForm extends Form { constructor(formBuilder: FormBuilder) { super(formBuilder.group({ type: ['String', @@ -205,16 +199,16 @@ export class AddFieldForm extends Form { })); } - public submit() { - const value = super.submit(); + public transformLoad(value: AddFieldDto) { + const isLocalizable = value.partitioning === 'language'; - if (value) { - const properties = createProperties(value.type); - const partitioning = value.isLocalizable ? 'language' : 'invariant'; + return { name: value.name, isLocalizable, type: value.properties.fieldType }; + } - return { name: value.name, partitioning, properties }; - } + public transformSubmit(value: any): AddFieldDto { + const properties = createProperties(value.type); + const partitioning = value.isLocalizable ? 'language' : 'invariant'; - return null; + return { name: value.name, partitioning, properties }; } } \ No newline at end of file