public void SaveSitePage(SitePage page, bool storeImages = false) { Logger?.LogInformation($"Saving page {page.Url}"); page.LastModified = DateTime.Now; if (page.Sections == null) { page.Sections = new List <PageSection>(); } if (storeImages) { //NOTE(RC): save current with base 64 so at least it's saved. Storage.StoreSitePage(page); //NOTE(RC): can this be done saner? foreach (var item in page.Sections.SelectMany(s => s.Items).Where(i => i.Values.Any(kv => kv.Value.Contains("data:")))) { for (var i = 0; i < item.Values.Count; i++) { var kv = item.Values.ElementAt(i); item.Values[kv.Key] = SaveEmbeddedImages(item.Values[kv.Key]); } } } Storage.StoreSitePage(page); ReloadPages(); }
public IActionResult Index(string url) { _webSite.Logger?.LogInformation($"index action {Request.Path.Value}"); if (Request.Query["reloadpages"] == "true") { _webSite.ReloadPages(); } if (string.IsNullOrWhiteSpace(url) || url == "/") { _webSite.Logger?.LogVerbose("Homepage"); url = _webSite.Configuration.DefaultPage; } SitePage page = _webSite.GetPageByUrl(url, _webSite.IsAuthenticated(User)); ViewBag.CurrentUrl = page.Url; if (_webSite.Configuration.RedirectToFirstSub && page.Pages.Any()) { return(Redirect(page.Pages.First().Url)); } if (page.Url == "404") { Response.StatusCode = 404; } return(View(page.Template, page)); }
public IActionResult SavePage(SitePage page) { //ignore move for now... if (Request.Form.ContainsKey("OldUrl") && (string)Request.Form["OldUrl"] != page.Url) { string message = $"Moving pages not allowed yet, tried to move {Request.Form["OldUrl"]} to new location: {page.Url}"; _webSite.Logger?.LogError(message); return(new JsonResult(new { result = false, message = message })); } //keep sections only change page properties SitePage oldPage = _webSite.Pages.FirstOrDefault(p => p.Url == page.Url); if (oldPage != null) { page.Sections = oldPage.Sections; } else { //new page page.Created = DateTime.Now; page.Sections = _webSite.GetDefaultContentForTemplate(page.Template); } _webSite.SaveSitePage(page); return(new JsonResult(new { result = true, url = _webSite.GetPageUrl(page) })); }
private string SectionContent(IHtmlHelper html, SitePage sitepage, string section) { if (sitepage?.Sections?.Any(s => s?.Key == section) == true) { return(SectionContent(html, sitepage, sitepage.Sections.First(s => s.Key == section))); } return(String.Empty); }
public IActionResult RemovePage(string url) { _webSite.Logger?.LogInformation($"remove {url}"); SitePage page = _webSite.Pages.FirstOrDefault(p => p.Url == url); _webSite.DeleteSitePage(page); var redirectUrl = page.Parent == null ? _webSite.Configuration.DefaultPage : _webSite.GetPageUrl(page.Parent); return(new JsonResult(new { result = true, url = redirectUrl })); }
public string GetPageUrl(SitePage page) { if (page == null) { return("/"); } if (string.IsNullOrWhiteSpace(Configuration.PageExtension)) { return($"/{page.Url}"); } return($"/{page.Url}.{Configuration.PageExtension}"); }
private static string SectionContent(IHtmlHelper html, SitePage sitepage, PageSection model) { using (StringWriter result = new StringWriter()) { foreach (ContentItem item in model.Items) { item.Page = sitepage; html.Partial(item.Template, item).WriteTo(result, HtmlEncoder.Default); } return(result.ToString()); } }
public IActionResult SaveContent(string url, string items) { SitePage page = _webSite.Pages.FirstOrDefault(p => p.Url == url); if (page != null) { _webSite.Logger?.LogInformation($"save PAGE found {page.Url}"); var newSections = Newtonsoft.Json.JsonConvert.DeserializeObject <IEnumerable <PageSection> >(items); page.Sections.Clear(); page.Sections.AddRange(newSections); _webSite.SaveSitePage(page, true); return(new JsonResult(new { result = true })); } return(new JsonResult(new { result = false })); }
public void DeleteSitePage(SitePage page) { Logger?.LogInformation($"Deleting page {page.Url}"); Storage.DeleteSitePage(page); ReloadPages(); }