diff --git a/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesFieldProperties.cs b/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesFieldProperties.cs index 31131e4dc..6b5ae3e84 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesFieldProperties.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesFieldProperties.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Linq; namespace Squidex.Domain.Apps.Core.Schemas { @@ -23,10 +24,12 @@ namespace Squidex.Domain.Apps.Core.Schemas public ReferencesFieldEditor Editor { get; set; } - public ReadOnlyCollection? SchemaIds { get; set; } - public Guid SchemaId { + get + { + return SchemaIds?.FirstOrDefault() ?? Guid.Empty; + } set { if (value != default) @@ -40,6 +43,8 @@ namespace Squidex.Domain.Apps.Core.Schemas } } + public ReadOnlyCollection? SchemaIds { get; set; } + public override T Accept(IFieldPropertiesVisitor visitor) { return visitor.Visit(this); diff --git a/backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaTests.cs b/backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaTests.cs index 2079c1620..bec691665 100644 --- a/backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaTests.cs @@ -20,6 +20,21 @@ namespace Squidex.Domain.Apps.Core.Model.Schemas { private readonly Schema schema_0 = new Schema("my-schema"); + public static IEnumerable FieldProperyTypes() + { + return typeof(Schema).Assembly.GetTypes().Where(x => x.BaseType == typeof(FieldProperties)).Select(x => new object[] { x }); + } + + [Theory] + [MemberData(nameof(FieldProperyTypes))] + public void Should_make_deep_equal_test(Type type) + { + var lhs = (FieldProperties)Activator.CreateInstance(type)!; + var rhs = (FieldProperties)Activator.CreateInstance(type)!; + + Assert.True(lhs.DeepEquals(rhs)); + } + [Fact] public void Should_instantiate_schema() { diff --git a/frontend/app/features/rules/pages/rules/rule-wizard.component.ts b/frontend/app/features/rules/pages/rules/rule-wizard.component.ts index 29f62d5a4..75070f7f7 100644 --- a/frontend/app/features/rules/pages/rules/rule-wizard.component.ts +++ b/frontend/app/features/rules/pages/rules/rule-wizard.component.ts @@ -168,7 +168,7 @@ export class RuleWizardComponent implements AfterViewInit, OnInit { .subscribe(() => { this.emitComplete(); - this.triggerForm.submitCompleted(); + this.triggerForm.submitCompleted({ noReset: true }); }, error => { this.triggerForm.submitFailed(error); }); @@ -183,7 +183,7 @@ export class RuleWizardComponent implements AfterViewInit, OnInit { .subscribe(() => { this.emitComplete(); - this.actionForm.submitCompleted(); + this.actionForm.submitCompleted({ noReset: true }); }, error => { this.actionForm.submitFailed(error); }); diff --git a/frontend/app/features/schemas/pages/schema/field.component.ts b/frontend/app/features/schemas/pages/schema/field.component.ts index b05987ddd..ee8d24b71 100644 --- a/frontend/app/features/schemas/pages/schema/field.component.ts +++ b/frontend/app/features/schemas/pages/schema/field.component.ts @@ -118,7 +118,7 @@ export class FieldComponent implements OnChanges { this.schemasState.updateField(this.schema, this.field, { properties }) .subscribe(() => { - this.editForm.submitCompleted(); + this.editForm.submitCompleted({ noReset: true }); }, error => { this.editForm.submitFailed(error); }); diff --git a/frontend/app/features/schemas/pages/schema/types/assets-validation.component.html b/frontend/app/features/schemas/pages/schema/types/assets-validation.component.html index 98c89760d..a0f9dec29 100644 --- a/frontend/app/features/schemas/pages/schema/types/assets-validation.component.html +++ b/frontend/app/features/schemas/pages/schema/types/assets-validation.component.html @@ -38,12 +38,15 @@ - -
- -
- +
+
+
+ + +
diff --git a/frontend/app/features/settings/pages/languages/language.component.ts b/frontend/app/features/settings/pages/languages/language.component.ts index 485262ca6..8d75e2541 100644 --- a/frontend/app/features/settings/pages/languages/language.component.ts +++ b/frontend/app/features/settings/pages/languages/language.component.ts @@ -78,7 +78,7 @@ export class LanguageComponent implements OnChanges { this.languagesState.update(this.language, request) .subscribe(() => { - this.editForm.submitCompleted(); + this.editForm.submitCompleted({ noReset: true }); this.toggleEditing(); }, error => { diff --git a/frontend/app/features/settings/pages/patterns/pattern.component.ts b/frontend/app/features/settings/pages/patterns/pattern.component.ts index c2df438d9..419726a72 100644 --- a/frontend/app/features/settings/pages/patterns/pattern.component.ts +++ b/frontend/app/features/settings/pages/patterns/pattern.component.ts @@ -63,8 +63,8 @@ export class PatternComponent implements OnChanges { if (value) { if (this.pattern) { this.patternsState.update(this.pattern, value) - .subscribe(newPattern => { - this.editForm.submitCompleted(newPattern); + .subscribe(() => { + this.editForm.submitCompleted({ noReset: true }); }, error => { this.editForm.submitFailed(error); });