diff --git a/src/Squidex.Domain.Apps.Entities/Apps/AppHistoryEventsCreator.cs b/src/Squidex.Domain.Apps.Entities/Apps/AppHistoryEventsCreator.cs index d36f551f0..e8aee083d 100644 --- a/src/Squidex.Domain.Apps.Entities/Apps/AppHistoryEventsCreator.cs +++ b/src/Squidex.Domain.Apps.Entities/Apps/AppHistoryEventsCreator.cs @@ -53,7 +53,7 @@ namespace Squidex.Domain.Apps.Entities.Apps "added pattern {[Name]}"); AddEventMessage( - "deleted pattern {[Name]}"); + "deleted pattern {[PatternId]}"); AddEventMessage( "updated pattern {[Name]}"); @@ -164,7 +164,7 @@ namespace Squidex.Domain.Apps.Entities.Apps return Task.FromResult( ForEvent(@event, channel) - .AddParameter("Name", @event.Name)); + .AddParameter("PatternId", @event.PatternId)); } protected override Task CreateEventCoreAsync(Envelope @event) diff --git a/src/Squidex.Domain.Apps.Events/Apps/AppPatternDeleted.cs b/src/Squidex.Domain.Apps.Events/Apps/AppPatternDeleted.cs index 0759e3fb3..3ae54ab42 100644 --- a/src/Squidex.Domain.Apps.Events/Apps/AppPatternDeleted.cs +++ b/src/Squidex.Domain.Apps.Events/Apps/AppPatternDeleted.cs @@ -14,7 +14,5 @@ namespace Squidex.Domain.Apps.Events.Apps public sealed class AppPatternDeleted : AppEvent { public Guid PatternId { get; set; } - - public string Name { get; set; } } } diff --git a/src/Squidex/app/features/administration/pages/event-consumers/event-consumers-page.component.html b/src/Squidex/app/features/administration/pages/event-consumers/event-consumers-page.component.html index 14c598818..540d8fde1 100644 --- a/src/Squidex/app/features/administration/pages/event-consumers/event-consumers-page.component.html +++ b/src/Squidex/app/features/administration/pages/event-consumers/event-consumers-page.component.html @@ -60,11 +60,11 @@ - + Error - + \ No newline at end of file diff --git a/src/Squidex/app/framework/angular/http/http-extensions.ts b/src/Squidex/app/framework/angular/http/http-extensions.ts index b215d1ce9..fd5b7e29a 100644 --- a/src/Squidex/app/framework/angular/http/http-extensions.ts +++ b/src/Squidex/app/framework/angular/http/http-extensions.ts @@ -67,7 +67,11 @@ export const pretifyError = (message: string) => (source: Observable) => if (!Types.is(response.error, Error)) { try { - const errorDto = Types.isObject(response.error) ? response.error : JSON.parse(response.error); + let errorDto = Types.isObject(response.error) ? response.error : JSON.parse(response.error); + + if (!errorDto) { + errorDto = { message: 'Failed to make the request.', details: [] }; + } if (response.status === 412) { result = new ErrorDto(response.status, 'Failed to make the update. Another user has made a change. Please reload.'); diff --git a/src/Squidex/app/shared/state/contributors.state.ts b/src/Squidex/app/shared/state/contributors.state.ts index 2b218bcd8..4b1ed31f4 100644 --- a/src/Squidex/app/shared/state/contributors.state.ts +++ b/src/Squidex/app/shared/state/contributors.state.ts @@ -6,14 +6,16 @@ */ import { Injectable } from '@angular/core'; -import { Observable } from 'rxjs'; -import { distinctUntilChanged, map, tap } from 'rxjs/operators'; +import { Observable, throwError } from 'rxjs'; +import { catchError, distinctUntilChanged, map, tap } from 'rxjs/operators'; import { DialogService, + ErrorDto, ImmutableArray, notify, State, + Types, Version } from '@app/framework'; @@ -100,6 +102,13 @@ export class ContributorsState extends State { this.replaceContributors(contributors, dto.version); }), + catchError(error => { + if (Types.is(error, ErrorDto) && error.statusCode === 404) { + return throwError(new ErrorDto(404, 'The user does not exist.')); + } else { + return throwError(error); + } + }), notify(this.dialogs)); } diff --git a/src/Squidex/package.json b/src/Squidex/package.json index 55c6b4665..5ab170f23 100644 --- a/src/Squidex/package.json +++ b/src/Squidex/package.json @@ -34,6 +34,7 @@ "moment": "2.22.2", "mousetrap": "1.6.2", "ng2-dnd": "5.0.2", + "npm": "^6.2.0", "oidc-client": "1.4.1", "pikaday": "1.7.0", "progressbar.js": "1.0.1",