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));