protected void CreateNewItemButton_OnClick(object sender, EventArgs e) { Guid defaultSiteId = Guid.Empty; var defaultFrontendSite = SiteManagementContext.GetSiteToManage(); if (defaultFrontendSite != null) { defaultSiteId = defaultFrontendSite.ContentId; } var uriBuilder = new CmsUriBuilder(); var editPage = new CmsPageRepository() .FindContentVersions(By.ContentId(Config.AddPage), ContentEnvironment.Live) .Result .Single(); var defaultValues = new DefaultValueCollection { ["SiteId"] = defaultSiteId.ToString() }; var newPageUri = uriBuilder.CreateUri(editPage, UriSettings.Default, new Dictionary <string, string> { [nameof(DynamicFormRequestContext.DefaultValues)] = defaultValues.ToString() }); Response.Redirect(newPageUri.PathAndQuery); }
public T GetById(Guid contentId) { var conditionText = By.ContentId(contentId); var filter = SqlTranslator.Build(conditionText, typeof(T)); return(Orm.FindUnversionedContent <T>(filter).Result.Single()); }
public ViewResult Index() { var frontendSites = _siteRepository.GetFrontendSites(); var rt = WebPipeline.CurrentRequest; var siteId = rt.Route.SiteId; var site = _siteRepository.GetById(siteId); var livePage = new CmsPageRepository() .FindContentVersions(By.ContentId(site.HomepageId.Value), ContentEnvironment.Live).Result; var uriBuilder = new CmsUriBuilder(); var uri = uriBuilder.CreateUri( livePage.Single(), UriSettings.Default, new Dictionary <string, string> { ["SiteId"] = siteId.ToString() }); return(View(new NavigationBarViewModel { Sites = frontendSites.Select(x => new NavBarItem { Text = x.Name, Url = uri.ToString() }).ToList(), TopLevelNavigationItems = CreateNavBarItems().ToList() })); }
public PreviewNode Page(Guid formId) { var draft = new FormRepository().FindContentVersions(By.ContentId(formId), ContentEnvironment.Draft).Result.Single(); var structureNodeConverter = new StructureNodeConverter(); var structure = structureNodeConverter.GetPageStructure(draft); return(new FormDesignerPreviewWriter().Write(structure)); }
public void SaveDraft(Guid formId, PageStructure pageStructure) { var pageRepository = new FormRepository(); var draft = pageRepository.FindContentVersions(By.ContentId(formId), ContentEnvironment.Draft).Result.Single(); new StructureNodeConverter().ApplyNewStructureToCmsPage(draft, pageStructure); pageRepository.Save(draft); }
private CmsForm SetupRedirectPageSettingsForm() { var form = new CmsForm { ContentId = KnownFormIds.RedirectPageSettingsForm, Name = "Redirect Page Settings", RepositoryUid = new Guid(CmsPageRepository.ApiId), }; //CmsPageContentBuilder builder = new CmsPageContentBuilder(); //var twoColumn = // builder.BuildCmsPageContentFromWebFormsControl(new RowLayout { NumColumns = 2 }); //twoColumn.PlacementContentPlaceHolderId = ConfiguratorFormBuilder.RuntimePlaceHolderId; //form.FormContent.Add(twoColumn); //var textboxPageContent = // builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorTextBox // { // PropertyName = nameof(CmsPage.Name), // DisplayName = "Page Name", // }); //textboxPageContent.PlacementContentPlaceHolderId = "0"; //var urlSelector = // builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorUrlSelector() // { // PropertyName = nameof(CmsPage.RedirectUri), // DisplayName = "Redirect To", // }); //textboxPageContent.PlacementContentPlaceHolderId = "0"; //twoColumn.AllContent.Add(textboxPageContent); //twoColumn.AllContent.Add(urlSelector); //var siteIdDropdown = // builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorHiddenField() // { // PropertyName = nameof(CmsPage.SiteId) // }); //twoColumn.AllContent.Add(siteIdDropdown); var formRepository = new FormRepository(); formRepository.Save(form); formRepository.Publish(By.ContentId(form.ContentId)); return(form); }
protected override void OnInit(EventArgs e) { base.OnInit(e); var formIdRaw = Request["formId"]; var formTypeRaw = Request["formType"]; ContentTypePicker.Visible = string.IsNullOrEmpty(formTypeRaw) && string.IsNullOrEmpty(formIdRaw); if (ContentTypePicker.Visible) { ContentTypeDropDownList.Items.Add(new ListItem(string.Empty, string.Empty)); var all = new RepositoryMetadataManager().Find(); foreach (var contentType in all) { var text = RepositoryTypeResolver.ResolveTypeByApiId(contentType.ApiId).Name; ContentTypeDropDownList.Items.Add(new ListItem(text, contentType.ApiId.ToString())); } SelectContentTypeButton.Click += (sender, args) => { //todo: make this work regardless of the querystring already present. var url = HttpContext.Current.Request.RawUrl + "&formType=" + ContentTypeDropDownList.SelectedValue; HttpContext.Current.Response.Redirect(url); }; return; } CmsForm cmsForm; if (string.IsNullOrEmpty(formIdRaw)) { cmsForm = new CmsForm { ContentId = Guid.NewGuid(), RepositoryUid = new Guid(formTypeRaw) } } ; else { var formRepository = new FormRepository(); cmsForm = formRepository.FindContentVersions(By.ContentId(new Guid(formIdRaw)), ContentEnvironment.Draft).Result.Single(); } //var mgr = new EditingContextManager(); //var ec = mgr.GetOrCreateEditingContext(cmsForm); //CmsPageLayoutEngine.ActivateAndPlaceContent(RuntimePlaceHolder, ec.AllContent,PageRenderMode.PageDesigner); //RuntimePlaceHolder.Controls.AddAt(0, new DropTarget(RuntimePlaceHolder, DropTargetDirective.Begin)); //RuntimePlaceHolder.Controls.Add(new DropTarget(RuntimePlaceHolder, DropTargetDirective.End)); //this.Page.Init += (x,y) => this.Page.EnableDesignerDependencies(); }
public PreviewNode Page(Guid pageId) { var draft = new CmsPageRepository().FindContentVersions(By.ContentId(pageId), ContentEnvironment.Draft).Result.Single(); var page = new PageCompositionBuilder().CreatePageComposition(draft); var cre = new BatchingFragmentRenderer(); var batch = cre.Execute(page, FragmentRenderMode.PageDesigner); var compositor = new RenderFragmentCompositor(page, batch); var treeWriter = new PagePreviewWriter(draft); compositor.WriteComposedFragments(FragmentRenderMode.PageDesigner, treeWriter); return(treeWriter.RootNode); }
public InternalLayout GetInternalLayout() { EnsureLayoutInitialized(); var layout = new InternalLayout(); layout.PlaceHolderIds.Add(nameof(surface)); var formRepository = new FormRepository(); _cmsForm = formRepository.FindContentVersions(By.ContentId(FormId), ContentEnvironment.Live).Result.Single(); foreach (var item in _cmsForm.ChildNodes) //todo: better way. { item.PlacementContentPlaceHolderId = nameof(surface); } layout.DefaultContent.AddRange(_cmsForm.ChildNodes.Select(x => PresentationElementHelpers.ToPresentationElement(x))); return(layout); }
public EditingSession InitializeEditingSession(Guid formId, Guid?contentId) { var form = new FormRepository().FindContentVersions(By.ContentId(formId), WarpCore.Platform.Orm.ContentEnvironment.Draft).Result.Single(); var repo = RepositoryActivator.ActivateRepository <ISupportsCmsForms>(form.RepositoryUid); WarpCoreEntity entity; if (contentId != null) { entity = repo.GetById(contentId.Value); } else { entity = repo.New(); } var runtime = new FormsRuntime(); return(runtime.EditingSession(form, entity)); }
private void SaveDraftChecksum(VersionedContentEntity item) { var contentType = item.GetType().GetCustomAttribute <TableAttribute>().TableName; var booleanExpression = By.ContentId(item.ContentId); var filter = SqlTranslator.Build(booleanExpression, item.GetType()); var currentPublishingData = Orm.FindUnversionedContent <ContentChecksum>(filter) .Result.SingleOrDefault(); if (currentPublishingData == null) { currentPublishingData = new ContentChecksum { ContentId = item.ContentId, Draft = item.GetContentChecksum(), ContentType = contentType }; Orm.Save(currentPublishingData); } }
public ConfiguratorFormDescription GetConfiguratorForm(Guid formId) { var form = new FormRepository().FindContentVersions(By.ContentId(formId), WarpCore.Platform.Orm.ContentEnvironment.Live).Result.Single(); var description = new ConfiguratorFormDescription { Layout = new StructureNodeConverter().GetPageStructure(form), DefaultValues = new Dictionary <string, string>() }; var repo = RepositoryActivator.ActivateRepository <ISupportsCmsForms>(form.RepositoryUid); var entityType = repo.New().GetType(); var dtd = Dependency.Resolve <IDynamicTypeDefinitionResolver>().Resolve(entityType); description.Metadata = new EntityMetadata { TitleProperty = dtd?.TitleProperty }; return(description); }
public void Publish(Guid id) { var cmsPageRepository = new CmsPageRepository(); cmsPageRepository.Publish(By.ContentId(id)); }
public Requests.CmsPageRequest Build(IHttpRequest httpRequest) { var routeRaw = httpRequest.QueryString[PageDesignerUriComponents.PageId]; var environmentRaw = httpRequest.QueryString[PageDesignerUriComponents.ContentEnvironment]; var contentVersionRaw = httpRequest.QueryString[PageDesignerUriComponents.ContentVersion]; var viewModeRaw = httpRequest.QueryString[PageDesignerUriComponents.ViewMode]; var siteRaw = httpRequest.QueryString[PageDesignerUriComponents.SiteId]; PageRenderMode pageRenderMode = PageRenderMode.Readonly; if (!string.IsNullOrWhiteSpace(viewModeRaw)) { pageRenderMode = (PageRenderMode)Enum.Parse(typeof(PageRenderMode), viewModeRaw, true); } ContentEnvironment env = ContentEnvironment.Live; if (!string.IsNullOrWhiteSpace(environmentRaw)) { env = (ContentEnvironment)Enum.Parse(typeof(ContentEnvironment), environmentRaw, true); } else { if (pageRenderMode == PageRenderMode.PageDesigner) { env = ContentEnvironment.Draft; } } decimal contentVersion = 0; if (!string.IsNullOrWhiteSpace(contentVersionRaw)) { contentVersion = Convert.ToDecimal(contentVersionRaw); } var routeContext = new Requests.CmsPageRequest(); routeContext.PageRenderMode = pageRenderMode; SiteRoute route; if (!string.IsNullOrWhiteSpace(routeRaw)) { route = new ContentPageRoute { Authority = UriAuthorityFilter.Any, PageId = new Guid(routeRaw), SiteId = new Guid(siteRaw), }; } else { var success = CmsRoutes.Current.TryResolveRoute(httpRequest.Uri, out route); } routeContext.Route = route; if (route?.PageId == null) { return(routeContext); } var cmsPageVersions = new CmsPageRepository().FindContentVersions(By.ContentId(route.PageId.Value), env).Result; if (env == ContentEnvironment.Archive) { routeContext.CmsPage = cmsPageVersions.Single(x => x.ContentVersion == contentVersion); } else { routeContext.CmsPage = cmsPageVersions.Single(); } return(routeContext); }
WarpCoreEntity ISupportsCmsForms.GetById(Guid id) { return(this.FindContentVersions(By.ContentId(id), ContentEnvironment.Draft).Result.Single()); }
public ContentListData GetContentListData(Guid repositoryApiId, Guid listId, string filter) { var definition = new ContentListDefinitionRepository().FindContentVersions(By.ContentId(listId)).Result .Single(); var repo = RepositoryActivator.ActivateRepository(repositoryApiId); List <WarpCoreEntity> allItems = null; var entityType = RepositoryTypeResolver.ResolveTypeByApiId(repositoryApiId); var tokens = new BooleanExpressionParser().ReadBooleanExpressionTokens(filter); var expression = new BooleanExpressionTokenReader().CreateBooleanExpressionFromTokens(tokens); if (repo is IUnversionedContentRepository unversionedRepo) { allItems = unversionedRepo.FindContent(expression) .Cast <WarpCoreEntity>() .ToList(); } if (repo is IVersionedContentRepository versionedRepo) { allItems = versionedRepo.FindContentVersions(expression, ContentEnvironment.Draft) .Cast <WarpCoreEntity>() .ToList(); } if (allItems == null) { throw new Exception(); } var propertyNameLookup = definition.Fields.ToLookup(x => x.PropertyName); var wrapper = new ContentListData(); foreach (var item in allItems) { var dict = item.GetPropertyValues(x => propertyNameLookup.Contains(x.Name)); dict[nameof(item.ContentId)] = item.ContentId.ToString(); wrapper.Items.Add(dict); } return(wrapper); }
public ContentListDescription ListDescription(Guid listId) { var definition = new ContentListDefinitionRepository().FindContentVersions(By.ContentId(listId)).Result .Single(); return(new ContentListDescription { Fields = definition.Fields.Select(x => new ListField { FieldId = x.Id, DisplayName = x.Label, PropertyName = x.PropertyName }).ToList() }); }
public PageStructure PageStructure(Guid formId) { var draft = new FormRepository().FindContentVersions(By.ContentId(formId), ContentEnvironment.Draft).Result.Single(); return(new StructureNodeConverter().GetPageStructure(draft)); }
private CmsForm SetupPageSettingsForm() { var form = new ConfiguratorCmsPageContentBuilder().GenerateDefaultForm(typeof(CmsPage), FormStyle.Edit); form.ContentId = KnownFormIds.ContentPageSettingsForm; form.Name = "Content Page Settings"; form.RepositoryUid = new Guid(CmsPageRepository.ApiId); // CmsPageContentBuilder builder = new CmsPageContentBuilder(); // var twoColumn = // builder.BuildCmsPageContentFromWebFormsControl(new RowLayout { NumColumns = 2 }); // twoColumn.PlacementContentPlaceHolderId = ConfiguratorFormBuilder.RuntimePlaceHolderId; // form.FormContent.Add(twoColumn); // var textboxPageContent = // builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorTextBox // { // PropertyName = nameof(CmsPage.Name), // DisplayName = "Page Name", // }); // textboxPageContent.PlacementContentPlaceHolderId = "0"; // twoColumn.AllContent.Add(textboxPageContent); // var layoutDropDown = // builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorDropDownList // { // PropertyName = nameof(CmsPage.LayoutId), // DisplayName = "Layout", // }); // layoutDropDown.PlacementContentPlaceHolderId = "1"; // twoColumn.AllContent.Add(layoutDropDown); // var oneColumn = //builder.BuildCmsPageContentFromWebFormsControl(new RowLayout { NumColumns = 1 }); // oneColumn.PlacementContentPlaceHolderId = ConfiguratorFormBuilder.RuntimePlaceHolderId; // form.FormContent.Add(oneColumn); // var keywords = // builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorTextBox // { // PropertyName = nameof(CmsPage.Keywords), // DisplayName = "Keywords", // }); // keywords.PlacementContentPlaceHolderId = "0"; // oneColumn.AllContent.Add(keywords); // var description = // builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorTextBox // { // PropertyName = nameof(CmsPage.Description), // DisplayName = "Description", // }); // oneColumn.AllContent.Add(description); // var siteIdDropdown = // builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorHiddenField() // { // PropertyName = nameof(CmsPage.SiteId) // }); // oneColumn.AllContent.Add(siteIdDropdown); var formRepository = new FormRepository(); formRepository.Save(form); formRepository.Publish(By.ContentId(form.ContentId)); return(form); }
public void SetupBackendSite() { var listRepo = new ContentListDefinitionRepository(); var customPageList = new ConfiguratorCmsPageContentBuilder().GenerateDefaultContentListDefinition(typeof(CmsPage)); customPageList.EntityUid = new Guid(CmsForm.ApiId); listRepo.Save(customPageList); listRepo.Publish(By.ContentId(customPageList.ContentId)); var backendLayout = new Layout { Name = "Backend Layout", MasterPagePath = "/App_Data/BackendPage.Master", PageContent = new List <CmsPageContent> { new CmsPageContent { Id = Guid.NewGuid(), PlacementContentPlaceHolderId = "Body", WidgetTypeCode = "wc-navigation-bar" } } }; var layoutRepository = new LayoutRepository(); layoutRepository.Save(backendLayout); var siteRepo = new SiteRepository(); var backendSite = new Site { Name = "Admin", RoutePrefix = "Admin", ContentId = new Guid("00000000-0000-0000-0000-000000000001"), }; siteRepo.Save(backendSite); var formDesigner = new CmsPage { Name = "Form Designer", ContentId = KnownPageIds.FormDesigner, SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId, DisplayInNavigation = false, }; formDesigner.PageContent.Add(new CmsPageContent { Id = Guid.NewGuid(), PlacementContentPlaceHolderId = "Body", WidgetTypeCode = "wc-formdesigner" }); var pageTree = new CmsPage { Name = "Pages", SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId }; pageTree.PageContent.AddBlazorApp(new PageTreeApp()); var redirectPageSettingsForm = SetupRedirectPageSettingsForm(); var groupingPageSettingsForm = SetupGroupingPageSettingsForm(); var pageSettingsForm = SetupPageSettingsForm(); var addPageWizard = new CmsPage { Name = "Add Page Wizard", ContentId = KnownPageIds.AddPageWizard, SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId, DisplayInNavigation = false }; addPageWizard.PageContent.Add(new CmsPageContent { Id = Guid.NewGuid(), PlacementContentPlaceHolderId = "Body", WidgetTypeCode = AddPageWizard.ApiId, }); var contentPageSettings = new CmsPage { Name = "Content Page Settings", ContentId = KnownPageIds.ContentPageSettings, SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId, DisplayInNavigation = false }; contentPageSettings.PageContent.AddDynamicForm(pageSettingsForm); var groupingPageSettings = new CmsPage { Name = "Group Page Settings", ContentId = KnownPageIds.GroupingPageSettings, SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId, DisplayInNavigation = false }; groupingPageSettings.PageContent.AddDynamicForm(groupingPageSettingsForm); var redirectPageSettings = new CmsPage { Name = "Redirect Page Settings", ContentId = KnownPageIds.RedirectPageSettings, SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId, DisplayInNavigation = false }; redirectPageSettings.PageContent.AddDynamicForm(redirectPageSettingsForm); var dashboardPage = new CmsPage { Name = "Dashboard", SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId }; var entityBuilderPage = new CmsPage { Name = "Entity Builder", SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId }; entityBuilderPage.PageContent.Add(new CmsPageContent { Id = Guid.NewGuid(), PlacementContentPlaceHolderId = "Body", WidgetTypeCode = "wc-entitybuilder", Parameters = new Dictionary <string, string> { } }); var entityListPage = new CmsPage { Name = "Entities", SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId }; entityListPage.PageContent.Add(new CmsPageContent { Id = Guid.NewGuid(), PlacementContentPlaceHolderId = "Body", WidgetTypeCode = "wc-entity-list", Parameters = new Dictionary <string, string> { } }); ////////////////// var dynamicListTest = new CmsPage { Name = "Dynamic List Test", SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId, DisplayInNavigation = true }; //var contentListControl = new ContentList() //{ // RepositoryId = new Guid(CmsPageRepository.ApiId), // Config = new ContentListConfiguration // { // Fields = new List<ContentListField> // { // new ContentListField // { // Header = "Name", // Template = "{" + nameof(CmsPage.Name) + "}" // } // } // }, //}; //var parameters = (Dictionary<string, string>)contentListControl.GetPropertyValues(ToolboxPropertyFilter.SupportsDesigner); //var list= new ContentListDefinitionRepository().GetRandomList(new Guid(CmsForm.ApiId)); //var bApp = new BlazorApp //{ // StartingRouteTemplate = "", // StartingRouteParameters = new RouteDataDictionary() // { // ["RepositoryApiId"] = FormRepository.ApiId, // ["ListId"] = list.ContentId.ToString() // } //}; //var listContent =new InstallationHelpers().BuildCmsPageContentFromToolboxItemTemplate(); //listContent.PlacementContentPlaceHolderId = "Body"; var contentBrowserConfig = new ContentBrowserConfiguration(); contentBrowserConfig.RepositoryApiId = new Guid(CmsPageRepository.ApiId); contentBrowserConfig.ListId = customPageList.ContentId; contentBrowserConfig.EditFormId = KnownFormIds.ContentPageSettingsForm; contentBrowserConfig.AddFormId = KnownFormIds.ContentPageSettingsForm; dynamicListTest.PageContent.AddBlazorApp(new ContentBrowserApp { Configuration = contentBrowserConfig }); //dynamicListTest.PageContent.Add(new CmsPageContent //{ // Id = Guid.NewGuid(), // PlacementContentPlaceHolderId = "Body", // WidgetTypeCode = ContentList.ApiId, // Parameters = //}); //////////////// var formsList = new CmsPage { Name = "FormsLegacy", SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId, DisplayInNavigation = true }; var formList = new ContentList() { RepositoryId = new Guid(FormRepository.ApiId), Config = new ContentListConfiguration { Fields = new List <ContentListField> { new ContentListField { Header = "Title", Template = "{" + nameof(CmsForm.Title) + "}" }, new ContentListField { Header = "Actions", Template = @"<a href='/Admin/form-designer?formId={" + nameof(CmsForm.DesignForContentId) + "}'><span class='glyphicon glyphicon-text-background'></span>Design</a>" } }, AddPage = KnownPageIds.FormDesigner } }; var formListParameters = (Dictionary <string, string>)formList.GetPropertyValues(ToolboxPropertyFilter.SupportsDesigner); formsList.PageContent.Add(new CmsPageContent { Id = Guid.NewGuid(), PlacementContentPlaceHolderId = "Body", WidgetTypeCode = ContentList.ApiId, Parameters = formListParameters }); var pageRepo = new CmsPageRepository(); pageRepo.Save(dashboardPage); pageRepo.Save(pageTree); pageRepo.Save(formDesigner); pageRepo.Save(contentPageSettings); pageRepo.Save(groupingPageSettings); pageRepo.Save(redirectPageSettings); pageRepo.Save(addPageWizard); pageRepo.Save(entityBuilderPage); pageRepo.Save(entityListPage); pageRepo.Save(dynamicListTest); pageRepo.Save(formsList); backendSite.HomepageId = dashboardPage.ContentId; siteRepo.Save(backendSite); var editBackendPageTreeLink = new CmsPage { Name = "Edit Backend Pages", SiteId = backendSite.ContentId, LayoutId = backendLayout.ContentId, PageType = PageType.RedirectPage, RedirectUri = new WarpCorePageUri(pageTree), InternalRedirectParameters = new Dictionary <string, string> { ["SiteId"] = backendSite.ContentId.ToString() } }; pageRepo.Save(editBackendPageTreeLink); }