From a968bf811b6eb28078c4c8654eb9acab138fd0f9 Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Wed, 7 Apr 2021 15:50:07 +0200 Subject: [PATCH] Background color. --- backend/Squidex.ruleset | 1 + .../Squidex.Extensions.csproj | 6 +-- .../Squidex.Domain.Apps.Core.Model.csproj | 2 +- ...Squidex.Domain.Apps.Core.Operations.csproj | 6 +-- ...quidex.Domain.Apps.Entities.MongoDb.csproj | 2 +- .../Types/Primitives/InstantGraphType.cs | 6 +-- .../GraphQL/Types/Primitives/JsonGraphType.cs | 8 ++-- .../Types/Primitives/JsonNoopGraphType.cs | 6 +-- .../Squidex.Domain.Apps.Entities.csproj | 14 +++---- .../Squidex.Domain.Users.MongoDb.csproj | 2 +- .../Squidex.Domain.Users.csproj | 2 +- .../Squidex.Infrastructure.MongoDb.csproj | 4 +- .../Squidex.Infrastructure.csproj | 16 +++---- backend/src/Squidex.Web/Squidex.Web.csproj | 4 +- .../Assets/Models/AssetContentQueryDto.cs | 6 +++ .../News/Service/FeaturesService.cs | 22 +++++++--- backend/src/Squidex/Squidex.csproj | 42 +++++++++---------- backend/src/Squidex/appsettings.json | 2 +- .../Squidex.Domain.Apps.Core.Tests.csproj | 4 +- .../Squidex.Domain.Apps.Entities.Tests.csproj | 10 ++--- .../Squidex.Domain.Users.Tests.csproj | 4 +- .../Newtonsoft/ReadOnlyCollectionTests.cs | 4 +- .../Squidex.Infrastructure.Tests.csproj | 8 ++-- .../Squidex.Web.Tests.csproj | 4 +- 24 files changed, 101 insertions(+), 84 deletions(-) diff --git a/backend/Squidex.ruleset b/backend/Squidex.ruleset index 1f62259db..e56b72abe 100644 --- a/backend/Squidex.ruleset +++ b/backend/Squidex.ruleset @@ -89,6 +89,7 @@ + diff --git a/backend/extensions/Squidex.Extensions/Squidex.Extensions.csproj b/backend/extensions/Squidex.Extensions/Squidex.Extensions.csproj index b83294232..7c3bbb353 100644 --- a/backend/extensions/Squidex.Extensions/Squidex.Extensions.csproj +++ b/backend/extensions/Squidex.Extensions/Squidex.Extensions.csproj @@ -13,12 +13,12 @@ - - + + - + diff --git a/backend/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj b/backend/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj index 9becff324..45d175f39 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj +++ b/backend/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj b/backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj index 0ce84d00e..850248033 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj @@ -18,11 +18,11 @@ - - + + - + diff --git a/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Squidex.Domain.Apps.Entities.MongoDb.csproj b/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Squidex.Domain.Apps.Entities.MongoDb.csproj index 7bdbc822f..6afd3b14a 100644 --- a/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Squidex.Domain.Apps.Entities.MongoDb.csproj +++ b/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Squidex.Domain.Apps.Entities.MongoDb.csproj @@ -17,7 +17,7 @@ - + diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/InstantGraphType.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/InstantGraphType.cs index 127933ef3..338b7a7ff 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/InstantGraphType.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/InstantGraphType.cs @@ -13,14 +13,14 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Primitives { public sealed class InstantGraphType : DateTimeGraphType { - public override object Serialize(object value) + public override object? Serialize(object? value) { return value; } - public override object ParseValue(object value) + public override object? ParseValue(object? value) { - return InstantPattern.ExtendedIso.Parse(value.ToString()!).Value; + return InstantPattern.ExtendedIso.Parse(value?.ToString()!).Value; } public override object? ParseLiteral(IValue value) diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/JsonGraphType.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/JsonGraphType.cs index 74cf0ec0f..7c37276ef 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/JsonGraphType.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/JsonGraphType.cs @@ -13,17 +13,17 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Primitives { public sealed class JsonGraphType : JsonNoopGraphType { - public override object Serialize(object value) + public override object? Serialize(object? value) { return value; } - public override object ParseValue(object value) + public override object? ParseValue(object? value) { return ParseJson(value); } - public static IJsonValue ParseJson(object value) + public static IJsonValue ParseJson(object? value) { switch (value) { @@ -72,7 +72,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Primitives return value; } - public override IValue ToAST(object value) + public override IValue ToAST(object? value) { return new JsonValueNode(ParseJson(value)); } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/JsonNoopGraphType.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/JsonNoopGraphType.cs index 4c4d7a78d..6dd1a4d3f 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/JsonNoopGraphType.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/JsonNoopGraphType.cs @@ -19,17 +19,17 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Primitives Description = "Unstructured Json object"; } - public override object ParseLiteral(IValue value) + public override object? ParseLiteral(IValue value) { return value.Value; } - public override object ParseValue(object value) + public override object? ParseValue(object? value) { return value; } - public override object Serialize(object value) + public override object? Serialize(object? value) { return value; } diff --git a/backend/src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj b/backend/src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj index 6abc4d527..bfc21f7e9 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj +++ b/backend/src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj @@ -17,21 +17,21 @@ - - + + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + - + all runtime; build; native; contentfiles; analyzers - + diff --git a/backend/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj b/backend/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj index 981894fab..912002e1e 100644 --- a/backend/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj +++ b/backend/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj @@ -20,7 +20,7 @@ - + diff --git a/backend/src/Squidex.Domain.Users/Squidex.Domain.Users.csproj b/backend/src/Squidex.Domain.Users/Squidex.Domain.Users.csproj index 537b082d2..f1039e7eb 100644 --- a/backend/src/Squidex.Domain.Users/Squidex.Domain.Users.csproj +++ b/backend/src/Squidex.Domain.Users/Squidex.Domain.Users.csproj @@ -17,7 +17,7 @@ - + diff --git a/backend/src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj b/backend/src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj index d43df3f3e..7fe217e37 100644 --- a/backend/src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj +++ b/backend/src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj b/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj index 08d096914..f33b976ff 100644 --- a/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj +++ b/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj @@ -13,18 +13,18 @@ - + - + all runtime; build; native; contentfiles; analyzers - - - - + + + + - + @@ -36,7 +36,7 @@ - + diff --git a/backend/src/Squidex.Web/Squidex.Web.csproj b/backend/src/Squidex.Web/Squidex.Web.csproj index 78f27cf8f..3ee3d51e6 100644 --- a/backend/src/Squidex.Web/Squidex.Web.csproj +++ b/backend/src/Squidex.Web/Squidex.Web.csproj @@ -12,11 +12,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/backend/src/Squidex/Areas/Api/Controllers/Assets/Models/AssetContentQueryDto.cs b/backend/src/Squidex/Areas/Api/Controllers/Assets/Models/AssetContentQueryDto.cs index 3056bdaa2..8000f8360 100644 --- a/backend/src/Squidex/Areas/Api/Controllers/Assets/Models/AssetContentQueryDto.cs +++ b/backend/src/Squidex/Areas/Api/Controllers/Assets/Models/AssetContentQueryDto.cs @@ -57,6 +57,12 @@ namespace Squidex.Areas.Api.Controllers.Assets.Models [FromQuery(Name = "mode")] public ResizeMode? Mode { get; set; } + /// + /// Optional background color. + /// + [FromQuery(Name = "bg")] + public string? Background { get; set; } + /// /// Override the y focus point. /// diff --git a/backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs b/backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs index cfa10a875..272515baf 100644 --- a/backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs +++ b/backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs @@ -44,18 +44,28 @@ namespace Squidex.Areas.Api.Controllers.News.Service public async Task GetFeaturesAsync(int version = 0) { - var result = new FeaturesDto { Features = new List(), Version = FeatureVersion }; + var result = new FeaturesDto + { + Version = FeatureVersion + }; if (client != null && version < FeatureVersion) { - var query = new ContentQuery + try { - Filter = $"data/version/iv ge {FeatureVersion}" - }; + var query = new ContentQuery + { + Filter = $"data/version/iv ge {FeatureVersion}" + }; - var features = await client.GetAsync(query, flatten); + var features = await client.GetAsync(query, flatten); - result.Features.AddRange(features.Items.Select(x => x.Data)); + result.Features = features.Items.Select(x => x.Data).ToList(); + } + catch + { + result.Features = new List(); + } } return result; diff --git a/backend/src/Squidex/Squidex.csproj b/backend/src/Squidex/Squidex.csproj index 7f2d8568b..7b158b929 100644 --- a/backend/src/Squidex/Squidex.csproj +++ b/backend/src/Squidex/Squidex.csproj @@ -33,40 +33,40 @@ - - - - - + + + + + - - - - + + + + - - - - + + + + - - + + - + - - - - - + + + + + diff --git a/backend/src/Squidex/appsettings.json b/backend/src/Squidex/appsettings.json index 4b4c11a73..d7e6d6b70 100644 --- a/backend/src/Squidex/appsettings.json +++ b/backend/src/Squidex/appsettings.json @@ -676,7 +676,7 @@ /* * The credentials to the app (Readonly). */ - "clientId": "squidex-website:default", + "clientId": "squidex-website:default2", "clientSecret": "QGgqxd7bDHBTEkpC6fj8sbdPWgZrPrPfr3xzb3LKoec=" }, diff --git a/backend/tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj b/backend/tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj index e7e4f2842..354647526 100644 --- a/backend/tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj +++ b/backend/tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj @@ -12,11 +12,11 @@ - + - + diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj index 38ebc0548..1ef202994 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj @@ -17,15 +17,15 @@ - + - - + + - - + + diff --git a/backend/tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj b/backend/tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj index c8a4fa277..66c0654bb 100644 --- a/backend/tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj +++ b/backend/tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj @@ -13,9 +13,9 @@ - + - + diff --git a/backend/tests/Squidex.Infrastructure.Tests/Json/Newtonsoft/ReadOnlyCollectionTests.cs b/backend/tests/Squidex.Infrastructure.Tests/Json/Newtonsoft/ReadOnlyCollectionTests.cs index 5e2b2a449..278f2bdfe 100644 --- a/backend/tests/Squidex.Infrastructure.Tests/Json/Newtonsoft/ReadOnlyCollectionTests.cs +++ b/backend/tests/Squidex.Infrastructure.Tests/Json/Newtonsoft/ReadOnlyCollectionTests.cs @@ -37,7 +37,7 @@ namespace Squidex.Infrastructure.Json.Newtonsoft var json = JsonConvert.SerializeObject(source, serializerSettings); - var serialized = JsonConvert.DeserializeObject>>(json); + var serialized = JsonConvert.DeserializeObject>>(json)!; Assert.DoesNotContain("$type", json); Assert.Equal(2, serialized.Values.Count); @@ -62,7 +62,7 @@ namespace Squidex.Infrastructure.Json.Newtonsoft var json = JsonConvert.SerializeObject(source, serializerSettings); - var serialized = JsonConvert.DeserializeObject>>(json); + var serialized = JsonConvert.DeserializeObject>>(json)!; Assert.DoesNotContain("$type", json); Assert.Equal(2, serialized.Values.Count); diff --git a/backend/tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj b/backend/tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj index 971c1267e..8bb399776 100644 --- a/backend/tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj +++ b/backend/tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj @@ -13,13 +13,13 @@ - + - - - + + + all runtime; build; native; contentfiles; analyzers diff --git a/backend/tests/Squidex.Web.Tests/Squidex.Web.Tests.csproj b/backend/tests/Squidex.Web.Tests/Squidex.Web.Tests.csproj index 37667f789..56b3f4a2a 100644 --- a/backend/tests/Squidex.Web.Tests/Squidex.Web.Tests.csproj +++ b/backend/tests/Squidex.Web.Tests/Squidex.Web.Tests.csproj @@ -11,10 +11,10 @@ - + - +