From 293d6db4c094ab8c2f5caffa6ba172fdedda62ee Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Sun, 16 Jun 2019 20:36:46 +0200 Subject: [PATCH] Inline editing (patch) fixed. --- .../Api/Controllers/Contents/Models/ContentDto.cs | 2 ++ .../content/shared/content-item.component.html | 2 +- .../content/shared/content-item.component.ts | 15 +++++++++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/Squidex/Areas/Api/Controllers/Contents/Models/ContentDto.cs b/src/Squidex/Areas/Api/Controllers/Contents/Models/ContentDto.cs index d61283bdf..96a1cb900 100644 --- a/src/Squidex/Areas/Api/Controllers/Contents/Models/ContentDto.cs +++ b/src/Squidex/Areas/Api/Controllers/Contents/Models/ContentDto.cs @@ -130,6 +130,8 @@ namespace Squidex.Areas.Api.Controllers.Contents.Models if (controller.HasPermission(Permissions.AppContentsUpdate, app, schema)) { + AddPatchLink("patch", controller.Url(x => nameof(x.PatchContent), values)); + AddPutLink("update", controller.Url(x => nameof(x.PutContent), values)); if (Status == Status.Published) diff --git a/src/Squidex/app/features/content/shared/content-item.component.html b/src/Squidex/app/features/content/shared/content-item.component.html index 4c99f32eb..1b84a7d20 100644 --- a/src/Squidex/app/features/content/shared/content-item.component.html +++ b/src/Squidex/app/features/content/shared/content-item.component.html @@ -12,7 +12,7 @@ - + diff --git a/src/Squidex/app/features/content/shared/content-item.component.ts b/src/Squidex/app/features/content/shared/content-item.component.ts index 9922a7f41..5f27a6cf9 100644 --- a/src/Squidex/app/features/content/shared/content-item.component.ts +++ b/src/Squidex/app/features/content/shared/content-item.component.ts @@ -74,13 +74,14 @@ export class ContentItemComponent implements OnChanges { public content: ContentDto; public patchForm: PatchContentForm; + public patchAllowed = false; public dropdown = new ModalModel(); public values: any[] = []; public get isDirty() { - return this.patchForm.form.dirty; + return this.patchForm && this.patchForm.form.dirty; } constructor( @@ -90,8 +91,14 @@ export class ContentItemComponent implements OnChanges { } public ngOnChanges(changes: SimpleChanges) { + if (changes['content']) { + this.patchAllowed = !this.isReadOnly && this.content.canUpdate; + } + if (changes['schema'] || changes['language']) { - this.patchForm = new PatchContentForm(this.schema, this.language); + if (this.patchAllowed) { + this.patchForm = new PatchContentForm(this.schema, this.language); + } } if (changes['content'] || changes['language']) { @@ -100,6 +107,10 @@ export class ContentItemComponent implements OnChanges { } public save() { + if (!this.content.canUpdate) { + return; + } + const value = this.patchForm.submit(); if (value) {