@using Microsoft.AspNetCore.Components.Routing @using Oqtane.Services @using Oqtane.Models @using Oqtane.Themes @using Oqtane.Shared @using Oqtane.Security @namespace Oqtane.Themes.Controls @inherits ThemeObjectBase @inject IUriHelper UriHelper @inject IUserService UserService @inject IModuleDefinitionService ModuleDefinitionService @inject IThemeService ThemeService @inject IModuleService ModuleService @inject IPageModuleService PageModuleService @if (UserSecurity.IsAuthorized(PageState.User, "Edit", PageState.Page.Permissions)) {
x

@if (moduledefinitions != null) { }
@if (PageState.EditMode) { } else { } } @code { List moduledefinitions; Dictionary containers = new Dictionary(); int pagemanagementmoduleid = -1; string moduledefinitionname; string pane; string title = ""; string containertype; protected override async Task OnInitializedAsync() { if (UserSecurity.IsAuthorized(PageState.User, "Edit", PageState.Page.Permissions)) { moduledefinitions = PageState.ModuleDefinitions; containers = ThemeService.GetContainerTypes(PageState.Themes); List modules = await ModuleService.GetModulesAsync(PageState.Site.SiteId, Constants.PageManagementModule); if (modules.Count > 0) { pagemanagementmoduleid = modules.FirstOrDefault().ModuleId; } } } private async Task AddModule() { if (UserSecurity.IsAuthorized(PageState.User, "Edit", PageState.Page.Permissions)) { Module module = new Module(); module.SiteId = PageState.Site.SiteId; module.ModuleDefinitionName = moduledefinitionname; module.Permissions = PageState.Page.Permissions; await ModuleService.AddModuleAsync(module); List modules = await ModuleService.GetModulesAsync(PageState.Site.SiteId, moduledefinitionname); int ModuleId = modules.LastOrDefault().ModuleId; PageModule pagemodule = new PageModule(); pagemodule.PageId = PageState.Page.PageId; pagemodule.ModuleId = ModuleId; if (title == "") { title = moduledefinitions.Where(item => item.ModuleDefinitionName == moduledefinitionname).FirstOrDefault().Name; } pagemodule.Title = title; pagemodule.Pane = pane; pagemodule.Order = int.MaxValue; pagemodule.ContainerType = containertype; await PageModuleService.AddPageModuleAsync(pagemodule); await PageModuleService.UpdatePageModuleOrderAsync(pagemodule.PageId, pagemodule.Pane); PageState.Reload = Constants.ReloadPage; UriHelper.NavigateTo(NavigateUrl()); } } private string PageUrl(string action) { string url = ""; if (pagemanagementmoduleid != -1) { switch (action) { case "Add": url = EditUrl("admin/pages", pagemanagementmoduleid, action, ""); break; case "Edit": url = EditUrl("admin/pages", pagemanagementmoduleid, action, "id=" + PageState.Page.PageId.ToString()); break; case "Delete": url = EditUrl("admin/pages", pagemanagementmoduleid, action, "id=" + PageState.Page.PageId.ToString()); break; } } return url; } private void EditMode() { if (UserSecurity.IsAuthorized(PageState.User, "Edit", PageState.Page.Permissions)) { if (PageState.EditMode) { PageState.EditMode = false; PageState.DesignMode = false; } else { PageState.EditMode = true; PageState.DesignMode = true; } PageState.Reload = Constants.ReloadPage; UriHelper.NavigateTo(NavigateUrl(PageState.Page.Path, "edit=" + PageState.EditMode.ToString().ToLower())); } } }