From 6ea48622497ab3e8d3245db28bbaeebef18f96a8 Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Wed, 2 Sep 2020 11:52:33 +0200 Subject: [PATCH] GetEmpty() for creating pages works now --- .../App/components/overlays/dropdown-button.vue | 3 ++- zero.Web.UI/App/pages/pages/page.vue | 8 +++----- zero.Web/Controllers/PagesController.cs | 16 ++++++++-------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/zero.Web.UI/App/components/overlays/dropdown-button.vue b/zero.Web.UI/App/components/overlays/dropdown-button.vue index 6a7ca358..d04c45cb 100644 --- a/zero.Web.UI/App/components/overlays/dropdown-button.vue +++ b/zero.Web.UI/App/components/overlays/dropdown-button.vue @@ -171,7 +171,8 @@ cursor: default; pointer-events: none; - .ui-dropdown-list-item-icon + .ui-dropdown-list-item-icon, + .ui-dropdown-button-icon { color: var(--color-fg-dim); } diff --git a/zero.Web.UI/App/pages/pages/page.vue b/zero.Web.UI/App/pages/pages/page.vue index b4a094d1..bdad70dd 100644 --- a/zero.Web.UI/App/pages/pages/page.vue +++ b/zero.Web.UI/App/pages/pages/page.vue @@ -3,11 +3,9 @@ diff --git a/zero.Web/Controllers/PagesController.cs b/zero.Web/Controllers/PagesController.cs index 42516adb..69a38b7c 100644 --- a/zero.Web/Controllers/PagesController.cs +++ b/zero.Web/Controllers/PagesController.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Mvc; +using System; using System.Threading.Tasks; using zero.Core.Api; using zero.Core.Entities; @@ -11,13 +12,11 @@ namespace zero.Web.Controllers { IPagesApi Api; IRevisionsApi RevisionsApi; - IPage Blueprint; - public PagesController(IPagesApi api, IRevisionsApi revisionsApi, IPage blueprint) + public PagesController(IPagesApi api, IRevisionsApi revisionsApi) { Api = api; RevisionsApi = revisionsApi; - Blueprint = blueprint; } @@ -40,12 +39,13 @@ namespace zero.Web.Controllers public IActionResult GetEmpty(string type, string parent = null) { - // TODO this will return an instance of Page, but the subclass with type=$type is needed - IPage entity = Blueprint.Clone(); - entity.PageTypeAlias = type; - entity.ParentId = parent; + PageType pageType = Api.GetPageType(type); + IPage model = Activator.CreateInstance(pageType.ContentType) as IPage; - return Edit(entity); + model.PageTypeAlias = type; + model.ParentId = parent; + + return Edit(model); } public async Task GetRevisions([FromQuery] string id, [FromQuery] int page = 1) => Json(await RevisionsApi.GetPaged(id, page));