From 91d588d1cf7331c1e159241c844a20fdecf62665 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 5 May 2021 13:31:42 +0200 Subject: [PATCH] Fixes. --- .../DomainObject/ContentDomainObject.cs | 20 +++++++++---------- backend/src/Squidex/appsettings.json | 7 ++++++- frontend/app/shared/state/contents.state.ts | 10 +++++++--- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentDomainObject.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentDomainObject.cs index 1eb7eb6ab..6662bf221 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentDomainObject.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentDomainObject.cs @@ -1,4 +1,4 @@ -// ========================================================================== +// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschraenkt) @@ -265,11 +265,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject await operation.CheckTransitionAsync(c.Status); } - if (c.CheckReferrers && Snapshot.IsPublished()) - { - await operation.CheckReferrersAsync(); - } - if (!c.DoNotScript) { var newData = await operation.ExecuteChangeScriptAsync(c.Status, GetChange(c.Status)); @@ -291,6 +286,11 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject } } + if (c.CheckReferrers && Snapshot.IsPublished()) + { + await operation.CheckReferrersAsync(); + } + if (!c.DoNotValidate && c.Status == Status.Published && operation.SchemaDef.Properties.ValidateOnPublish) { await operation.ValidateContentAndInputAsync(Snapshot.Data, c.OptimizeValidation, true); @@ -374,14 +374,14 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject operation.MustHavePermission(Permissions.AppContentsDeleteOwn); operation.MustNotDeleteSingleton(); - if (c.CheckReferrers) + if (!c.DoNotScript) { - await operation.CheckReferrersAsync(); + await operation.ExecuteDeleteScriptAsync(); } - if (!c.DoNotScript) + if (c.CheckReferrers) { - await operation.ExecuteDeleteScriptAsync(); + await operation.CheckReferrersAsync(); } Delete(c); diff --git a/backend/src/Squidex/appsettings.json b/backend/src/Squidex/appsettings.json index a4565523f..9150ad045 100644 --- a/backend/src/Squidex/appsettings.json +++ b/backend/src/Squidex/appsettings.json @@ -347,7 +347,12 @@ /* * True, to enable datadog integration. */ - "datadog": false + "datadog": false, + + /* + * True, to enable application insights integraon. + */ + "applicationInsights": true }, "assetStore": { diff --git a/frontend/app/shared/state/contents.state.ts b/frontend/app/shared/state/contents.state.ts index ddeb1fa5c..dc50c163c 100644 --- a/frontend/app/shared/state/contents.state.ts +++ b/frontend/app/shared/state/contents.state.ts @@ -341,9 +341,11 @@ export abstract class ContentsStateBase extends State { private bulkWithRetry(contents: ReadonlyArray, job: Partial, confirmTitle: string, confirmText: string, confirmKey: string): Observable> { return this.bulkMany(contents, true, job).pipe( switchMap(results => { - const failed = contents.filter(x => isReferrerError(results.find(r => r.contentId === x.id)?.error)); + const referrerFailures = results.filter(x => isReferrerError(x.error)); + + if (referrerFailures.length > 0) { + const failed = contents.filter(x => referrerFailures.find(r => r.contentId === x.id)); - if (failed.length > 0) { return this.dialogs.confirm(confirmTitle, confirmText, confirmKey).pipe( switchMap(confirmed => { if (confirmed) { @@ -353,7 +355,9 @@ export abstract class ContentsStateBase extends State { } }), map(results2 => { - return [...results, ...results2]; + const nonRetried = results.filter(x => !isReferrerError(x.error)); + + return [...nonRetried, ...results2]; }) ); } else {