public async Task <ActionResult> AddNewModule_Partial(AddNewModuleModel model) { PageDefinition page = await PageDefinition.LoadAsync(model.CurrentPageGuid); if (page == null) { throw new Error("Can't edit this page"); } model.AddData(page); if (!ModelState.IsValid) { return(PartialView(model)); } ModuleDefinition module = ModuleDefinition.CreateNewDesignedModule(model.SelectedModule, model.ModuleName, model.ModuleTitle); if (!module.IsModuleUnique) { module.ModuleGuid = Guid.NewGuid(); } page.AddModule(model.SelectedPane, module, model.ModuleLocation == Location.Top); await page.SaveAsync(); return(Reload(model, PopupText: this.__ResStr("okNew", "New module added"))); }
public async Task <ActionResult> AddNewPage_Partial(AddNewPageModel model) { if (!ModelState.IsValid) { return(PartialView(model)); } PageDefinition basePage = null; if (model.CopyPage) { basePage = await PageDefinition.LoadAsync(model.CurrentPageGuid); } PageDefinition.NewPageInfo newPage = await PageDefinition.CreateNewPageAsync(model.Title, model.Description, model.Url, basePage, model.CopyModules); PageDefinition page = newPage.Page; if (page == null) { ModelState.AddModelError(nameof(model.Url), newPage.Message); return(PartialView(model)); } await page.SaveAsync(); return(FormProcessed(model, this.__ResStr("okNewPage", "New page created"), NextPage: page.EvaluatedCanonicalUrl)); }
public async Task <ActionResult> PageEdit_Partial(EditModel model) { PageDefinition page = await PageDefinition.LoadAsync(model.PageGuid); if (page == null) { throw new Error(this.__ResStr("alreadyDeleted", "This page has been removed and can no longer be updated.")); } model.UpdateData(page); ObjectSupport.CopyData(page, model.Page, ReadOnly: true); // update read only properties in model in case there is an error model.Page.FavIcon_Data = page.FavIcon_Data; // copy favicon if (!ModelState.IsValid) { return(PartialView(model)); } page = model.GetData(page); // merge new data into original model.SetData(page); // and all the data back into model for final display await page.SaveAsync(); // this handles changing the Url automatically MenuList.ClearCachedMenus(); // page changes may affect all menus so clear the menu cache (this only clears current session) // if we're in a popup and the parent page is the page we're editing, then force a reload //$$$$ rename with querystring doesn't work OnPopupCloseEnum popupClose = OnPopupCloseEnum.ReloadModule; if (PageDefinition.IsSamePage(Manager.QueryReturnToUrl.Url, model.Page.Url)) { popupClose = OnPopupCloseEnum.ReloadParentPage; } return(FormProcessed(model, this.__ResStr("okSaved", "Page settings saved"), OnPopupClose: popupClose)); }
public async Task <ActionResult> SetUser(Guid guid) { using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) { int adminRole = Resource.ResourceAccess.GetAdministratorRoleId(); int userRole = Resource.ResourceAccess.GetUserRoleId(); PageDefinition page = await PageDefinition.LoadAsync(guid); if (page == null) { throw new InternalError($"Page with Guid {0} not found", guid); } page.AllowedRoles = new SerializableList <PageDefinition.AllowedRole>(); page.AllowedUsers = new SerializableList <PageDefinition.AllowedUser>(); page.AllowedRoles.Add(new PageDefinition.AllowedRole { RoleId = userRole, View = PageDefinition.AllowedEnum.Yes }); foreach (PageDefinition.ModuleEntry modEntry in page.ModuleDefinitions) { ModuleDefinition module = await modEntry.GetModuleAsync(); if (module != null) { module.AllowedRoles = new SerializableList <ModuleDefinition.AllowedRole>(); module.AllowedUsers = new SerializableList <ModuleDefinition.AllowedUser>(); module.AllowedRoles.Add(new ModuleDefinition.AllowedRole { RoleId = userRole, View = ModuleDefinition.AllowedEnum.Yes }); } } await page.SaveAsync(); } return(Reload(null, Reload: ReloadEnum.ModuleParts)); }
public async Task <ActionResult> UpdateAdminAndEditorAuthorization() { using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) { int adminRole = Resource.ResourceAccess.GetAdministratorRoleId(); int editorRole = Resource.ResourceAccess.GetEditorRoleId(); DataProviderGetRecords <PageDefinition> pages = await pageDP.GetItemsAsync(0, 0, null, null); foreach (PageDefinition genericPage in pages.Data) { PageDefinition page = await PageDefinition.LoadAsync(genericPage.PageGuid); if (page != null) { PageDefinition.AllowedRole role; while ((role = PageDefinition.AllowedRole.Find(page.AllowedRoles, adminRole)) != null) { page.AllowedRoles.Remove(role); } page.AllowedRoles.Add(new PageDefinition.AllowedRole { RoleId = adminRole, View = PageDefinition.AllowedEnum.Yes, Edit = PageDefinition.AllowedEnum.Yes, Remove = PageDefinition.AllowedEnum.Yes, }); while ((role = PageDefinition.AllowedRole.Find(page.AllowedRoles, editorRole)) != null) { page.AllowedRoles.Remove(role); } page.AllowedRoles.Add(new PageDefinition.AllowedRole { RoleId = editorRole, View = PageDefinition.AllowedEnum.Yes, Edit = PageDefinition.AllowedEnum.Yes, }); await page.SaveAsync(); } } } return(Reload(null, Reload: ReloadEnum.ModuleParts)); }
public async Task <ActionResult> MoveBottom(Guid pageGuid, Guid moduleGuid, string pane, int moduleIndex = -1) { if (pageGuid == Guid.Empty || moduleGuid == Guid.Empty || pane == null || moduleIndex == -1) { throw new ArgumentException(); } PageDefinition page = await LoadPageAsync(pageGuid); if (!page.IsAuthorized_Edit()) { return(NotAuthorized()); } page.ModuleDefinitions.MoveBottom(pane, moduleGuid, moduleIndex); await page.SaveAsync(); return(Reload()); }
public async Task <ActionResult> MoveToPane(Guid pageGuid, Guid moduleGuid, string oldPane, string newPane) { if (pageGuid == Guid.Empty || moduleGuid == Guid.Empty || oldPane == null || newPane == null) { throw new ArgumentException(); } PageDefinition page = await LoadPageAsync(pageGuid); if (!page.IsAuthorized_Edit()) { return(NotAuthorized()); } page.ModuleDefinitions.MoveToPane(oldPane, moduleGuid, newPane); await page.SaveAsync(); return(Reload()); }
public async Task <ActionResult> AddExistingModule_Partial(AddExistingModel model) { PageDefinition page = await PageDefinition.LoadAsync(model.CurrentPageGuid); if (page == null) { throw new Error("Can't edit this page"); } model.AddData(page); if (!ModelState.IsValid) { return(PartialView(model)); } ModuleDefinition module = await ModuleDefinition.LoadAsync(model.ExistingModule); page.AddModule(model.ExistingModulePane, module, model.ModuleLocation == Location.Top); await page.SaveAsync(); return(Reload(model, PopupText: this.__ResStr("okExisting", "Module added"))); }
/// <summary> /// Builds the current site from the template file /// </summary> /// <returns></returns> private async Task BuildSiteFromTextAsync(List <string> lines, bool build) { // Build site from a template if (lines.Count() > 0) { lines = RemoveComments(lines); // process all lines for (; lines.Count > 0;) { string section = lines.First().Trim(); ++_LineCounter; lines.RemoveAt(0); if (section == "") { continue; } else if (section == "::PAGE-SECTION::") { await ExtractPageSectionAsync(lines, build); } else if (section == "::UNIQUE-MODULE-SECTION::") { await ExtractUniqueModuleSectionAsync(lines, build); } else if (section == "::NON-UNIQUE-MODULE-SECTION::") { await ExtractUniqueModuleSectionAsync(lines, build, Unique : false); } else if (section == "::LINK-SECTION::") { await ExtractLinkSectionAsync(lines, build); } else if (section == "::WEBCONFIG-SECTION::") { ExtractWebconfigSection(lines, build); } else if (section == "::COMMAND-SECTION::") { await ExtractCommandSectionAsync(lines, build); } else if (section == "::SQL-SECTION::") { ExtractSQLSection(lines, build); } else if (section.StartsWith("::INC ")) { await ExtractINCSectionAsync(lines, build, section); } else { throw TemplateError("Invalid section statement"); } } } else { if (build) { // Just build a site with a home page // Build a site with a few pages //PageDefinition page = new PageDefinition() { Title = "Home Page", Url = "/", PageGuid = new Guid(Globals.HomePageGuid) }; PageDefinition page = await PageDefinition.CreatePageDefinitionAsync("/"); await page.SaveAsync(); #if DEBUG page = await PageDefinition.CreatePageDefinitionAsync("/page1"); await page.SaveAsync(); page = await PageDefinition.CreatePageDefinitionAsync("/page2"); await page.SaveAsync(); page = await PageDefinition.CreatePageDefinitionAsync("/page3"); await page.SaveAsync(); #endif } } }