diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentFields.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentFields.cs index ca7f16ad6..58c247db8 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentFields.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentFields.cs @@ -85,7 +85,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents Name = "status", ResolvedType = AllTypes.NonNullString, Resolver = Resolve(x => x.Status.ToString().ToUpperInvariant()), - Description = "The the status of the content." + Description = "The status of the content." }; public static readonly FieldType StatusColor = new FieldType @@ -93,7 +93,23 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents Name = "statusColor", ResolvedType = AllTypes.NonNullString, Resolver = Resolve(x => x.StatusColor), - Description = "The color status of the content." + Description = "The status color of the content." + }; + + public static readonly FieldType NewStatus = new FieldType + { + Name = "newStatus", + ResolvedType = AllTypes.String, + Resolver = Resolve(x => x.NewStatus?.ToString().ToUpperInvariant()), + Description = "The new status of the content." + }; + + public static readonly FieldType NewStatusColor = new FieldType + { + Name = "newStatusColor", + ResolvedType = AllTypes.String, + Resolver = Resolve(x => x.NewStatusColor), + Description = "The new status color of the content." }; public static readonly FieldType SchemaId = new FieldType @@ -104,6 +120,14 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents Description = "The id of the schema." }; + public static readonly FieldType Url = new FieldType + { + Name = "url", + ResolvedType = AllTypes.NonNullString, + Resolver = ContentResolvers.Url, + Description = "The url to the content." + }; + private static IFieldResolver Resolve(Func resolver) { return Resolvers.Sync(resolver); diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs index 2949ab385..2b23f678e 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs @@ -44,14 +44,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents AddField(ContentFields.LastModifiedByUser); AddField(ContentFields.Status); AddField(ContentFields.StatusColor); - - AddField(new FieldType - { - Name = "url", - ResolvedType = AllTypes.NonNullString, - Resolver = ContentResolvers.Url, - Description = "The url to the content." - }); + AddField(ContentFields.NewStatus); + AddField(ContentFields.NewStatusColor); + AddField(ContentFields.Url); var contentDataType = new DataGraphType(builder, schemaInfo); diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentInterfaceGraphType.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentInterfaceGraphType.cs index 5411178f3..30bbeb8b1 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentInterfaceGraphType.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentInterfaceGraphType.cs @@ -24,6 +24,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents AddField(ContentFields.LastModifiedBy); AddField(ContentFields.Status); AddField(ContentFields.StatusColor); + AddField(ContentFields.NewStatus); + AddField(ContentFields.NewStatusColor); + AddField(ContentFields.Url); Description = "The structure of all content types."; } diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/TestContent.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/TestContent.cs index de6cf126a..ceb5ccd8f 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/TestContent.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/TestContent.cs @@ -34,6 +34,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL } status statusColor + newStatus + newStatusColor url data { myJson { @@ -113,6 +115,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL } status statusColor + newStatus + newStatusColor url flatData { myJson @@ -229,7 +233,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL Data = data, SchemaId = TestSchemas.DefaultId, Status = Status.Draft, - StatusColor = "red" + StatusColor = "red", + NewStatus = Status.Published, + NewStatusColor = "blue" }; return content; @@ -257,7 +263,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL Data = data, SchemaId = schemaId, Status = Status.Draft, - StatusColor = "red" + StatusColor = "red", + NewStatus = Status.Published, + NewStatusColor = "blue" }; return content; @@ -287,6 +295,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL }, status = "DRAFT", statusColor = "red", + newStatus = "PUBLISHED", + newStatusColor = "blue", url = $"contents/my-schema/{content.Id}", data = Data(content) }; @@ -316,6 +326,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL }, status = "DRAFT", statusColor = "red", + newStatus = "PUBLISHED", + newStatusColor = "blue", url = $"contents/my-schema/{content.Id}", flatData = FlatData(content) };