From e605c0e3025b1216633d4d8b46f2263388af2f73 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 16 Mar 2017 21:37:06 +0100 Subject: [PATCH] 1) Correct language displayed in Content overview 2) Invariant language becomes master language. --- src/Squidex.Core/Contents/ContentData.cs | 4 ++++ .../pages/contents/content-item.component.ts | 12 +++++++++-- .../Contents/ContentDataTests.cs | 20 +++++++++++++++++++ .../RefTokenTests.cs | 2 +- 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/Squidex.Core/Contents/ContentData.cs b/src/Squidex.Core/Contents/ContentData.cs index 7c1e93920..283dd52a4 100644 --- a/src/Squidex.Core/Contents/ContentData.cs +++ b/src/Squidex.Core/Contents/ContentData.cs @@ -152,6 +152,10 @@ namespace Squidex.Core.Contents { fieldResult.Add(languageCode, value); } + else if (language.Equals(masterLanguage) && fieldValues.TryGetValue(invariantCode, out value)) + { + fieldResult.Add(languageCode, value); + } } } else diff --git a/src/Squidex/app/features/content/pages/contents/content-item.component.ts b/src/Squidex/app/features/content/pages/contents/content-item.component.ts index b7abf920d..ebfd0bf4a 100644 --- a/src/Squidex/app/features/content/pages/contents/content-item.component.ts +++ b/src/Squidex/app/features/content/pages/contents/content-item.component.ts @@ -5,7 +5,7 @@ * Copyright (c) Sebastian Stehle. All rights reserved */ -import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core'; import { AppComponentBase, @@ -28,7 +28,7 @@ import { fadeAnimation ] }) -export class ContentItemComponent extends AppComponentBase implements OnInit { +export class ContentItemComponent extends AppComponentBase implements OnInit, OnChanges { public dropdown = new ModalView(false, true); @Output() @@ -58,7 +58,15 @@ export class ContentItemComponent extends AppComponentBase implements OnInit { super(notifications, users, apps); } + public ngOnChanges() { + this.updateValues(); + } + public ngOnInit() { + this.updateValues(); + } + + private updateValues() { this.values = []; for (let field of this.fields) { diff --git a/tests/Squidex.Core.Tests/Contents/ContentDataTests.cs b/tests/Squidex.Core.Tests/Contents/ContentDataTests.cs index acb33415c..ca0446480 100644 --- a/tests/Squidex.Core.Tests/Contents/ContentDataTests.cs +++ b/tests/Squidex.Core.Tests/Contents/ContentDataTests.cs @@ -157,6 +157,26 @@ namespace Squidex.Core.Contents Assert.Equal(expected, actual); } + [Fact] + public void Should_provide_master_language_from_invariant() + { + var expected = + new ContentData() + .AddField("field1", + new ContentFieldData() + .AddValue("en", 3)); + + var input = + new ContentData() + .AddField("field1", + new ContentFieldData() + .AddValue("iv", 3)); + + var actual = input.ToApiModel(schema, languages, masterLanguage); + + Assert.Equal(expected, actual); + } + [Fact] public void Should_remove_null_values_when_cleaning() { diff --git a/tests/Squidex.Infrastructure.Tests/RefTokenTests.cs b/tests/Squidex.Infrastructure.Tests/RefTokenTests.cs index 4f5aed92e..b03254a30 100644 --- a/tests/Squidex.Infrastructure.Tests/RefTokenTests.cs +++ b/tests/Squidex.Infrastructure.Tests/RefTokenTests.cs @@ -89,7 +89,7 @@ namespace Squidex.Infrastructure object token1a = RefToken.Parse("client:client1"); object token1b = RefToken.Parse("client:client1"); object token2a = RefToken.Parse("client:client2"); - + Assert.True(token1a.Equals(token1b)); Assert.False(token1a.Equals(token2a));