/// <summary> /// Page init for the settingswrapper control /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Init(object sender, EventArgs e) { // Nothing to do if PostBack if (Page.IsPostBack) { return; } // Break if there is no ContentGroupItem if (ContentGroupItem == null || !ContentGroupItem.TemplateID.HasValue) { return; } int?entityID = ContentGroupItem.EntityID; int?attributeSetID = SexyUncached.GetTemplateDefault(ContentGroupItem.TemplateID.Value, ContentGroupItem.ItemType).ContentTypeID; if (attributeSetID.HasValue) { ddlEntities.DataSource = Sexy.ContentContext.GetItemsTable(attributeSetID.Value).AsEnumerable().Select(i => new { EntityTitle = i["EntityTitle"] + " (" + i["EntityID"] + ")", EntityID = i["EntityID"] }); ddlEntities.DataBind(); } if (entityID.HasValue) { ddlEntities.SelectedValue = entityID.Value.ToString(); } }
public void AddItem([FromUri] int?sortOrder = null) { var contentGroupId = Sexy.GetContentGroupIdFromModule(ActiveModule.ModuleID); var templateId = Sexy.GetTemplateForModule(ActiveModule.ModuleID).TemplateID; SexyUncached.AddContentGroupItem(contentGroupId, UserInfo.UserID, templateId, null, sortOrder.HasValue ? sortOrder.Value + 1 : sortOrder, true, ContentGroupItemType.Content, false); }
/// <summary> /// After the Update button is clicked, updates the template or creates a new one, /// depending if in edit mode or not. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnUpdate_Click(object sender, EventArgs e) { var attributeSetId = ctrContentType.ContentTypeID.HasValue && ctrContentType.ContentTypeID > 0 ? ctrContentType.ContentTypeID.Value : new int?(); // Get a new template if the temlpate does not exist yet, else take existing Template = ModeIsEdit ? Template : Sexy.TemplateContext.GetNewTemplate(AppId.Value); Template.PortalID = this.PortalId; Template.AttributeSetID = attributeSetId; Template.DemoEntityID = ctrContentType.DemoEntityID; Template.Location = ddlTemplateLocations.SelectedValue; Template.Type = ddlTemplateTypes.SelectedValue; Template.PipelineEntityID = ddlDataPipeline.SelectedValue == "0" ? (int?)null : int.Parse(ddlDataPipeline.SelectedValue); Template.ViewNameInUrl = txtViewNameInUrl.Text; Template.SysModifiedBy = UserId; Template.SysModified = DateTime.Now; Template.Name = txtTemplateName.Text; Template.Script = ""; Template.IsHidden = chkHidden.Checked; Template.UseForList = chkEnableList.Checked; Template.AppID = AppId.Value; Template.PublishData = chkPublishSource.Checked; Template.StreamsToPublish = txtPublishStreams.Text; if (pnlSelectTemplateFile.Visible) { Template.Path = ddlTemplateFiles.SelectedValue; } else { SexyUncached.CreateTemplateFileIfNotExists(txtTemplateFileName.Text, Template, Server, LocalizeString("NewTemplateFile.DefaultText")); } if (ModeIsEdit) { SexyUncached.TemplateContext.UpdateTemplate(Template); } else { Template.SysCreatedBy = UserId; SexyUncached.TemplateContext.AddTemplate(Template); } if (!chkSeparateContentPresentation.Checked) { ctrPresentationType.ContentTypeID = new int?(); } // Add template configuration entities for presentation, list header content type, list content, etc. SexyUncached.CreateOrUpdateTemplateDefault(Template.TemplateID, ContentGroupItemType.Presentation.ToString("F"), ctrPresentationType.ContentTypeID, ctrPresentationType.DemoEntityID); SexyUncached.CreateOrUpdateTemplateDefault(Template.TemplateID, ContentGroupItemType.ListContent.ToString("F"), ctrListContentType.ContentTypeID, ctrListContentType.DemoEntityID); SexyUncached.CreateOrUpdateTemplateDefault(Template.TemplateID, ContentGroupItemType.ListPresentation.ToString("F"), ctrListPresentationType.ContentTypeID, ctrListPresentationType.DemoEntityID); // Redirect to the manage templates control string RedirectUrl = UrlUtils.PopUpUrl(DotNetNuke.Common.Globals.NavigateURL(SexyContent.ControlKeys.ManageTemplates, "mid", ModuleId.ToString(), SexyContent.AppIDString, AppId.ToString()), this, PortalSettings, false, true); Response.Redirect(RedirectUrl); }
/// <summary> /// Process View if a Template has been set /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_PreRender(object sender, EventArgs e) { try { var isSharedModule = ModuleConfiguration.PortalID != ModuleConfiguration.OwnerPortalID; if (!isSharedModule) { var noTemplatesYet = !Sexy.GetVisibleTemplates(PortalId).Any(); // If there are no templates configured - show "getting started" frame if (noTemplatesYet && IsEditable && UserInfo.IsInRole(PortalSettings.AdministratorRoleName)) { pnlGetStarted.Visible = true; var gettingStartedControl = (GettingStartedFrame)LoadControl("~/DesktopModules/ToSIC_SexyContent/SexyContent/GettingStarted/GettingStartedFrame.ascx"); gettingStartedControl.ModuleID = this.ModuleId; gettingStartedControl.ModuleConfiguration = this.ModuleConfiguration; pnlGetStarted.Controls.Add(gettingStartedControl); } if (UserMayEditThisModule) { pnlTemplateChooser.Visible = true; } if (AppId.HasValue && !Sexy.PortalIsConfigured(Server, ControlPath)) { Sexy.ConfigurePortal(Server); } } if (AppId.HasValue) { if (Items.Any() && Template != null) { ProcessView(phOutput, pnlError, pnlMessage); } else if (!IsContentApp && UserMayEditThisModule) // Select first available template automatically if it's not set yet - then refresh page { var templates = Sexy.GetAvailableTemplatesForSelector(ModuleConfiguration).ToList(); if (templates.Any()) { SexyUncached.UpdateTemplateForGroup(Sexy.GetContentGroupIdFromModule(ModuleConfiguration.ModuleID), templates.First().TemplateID, UserInfo.UserID); } Response.Redirect(Request.RawUrl); } } } catch (Exception ex) { Exceptions.ProcessModuleLoadException(this, ex); } }
protected void grdEntities_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e) { int ContentGroupItemID = Convert.ToInt32(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ID"]); var item = Items.First(p => p.ContentGroupItemID == ContentGroupItemID); switch (e.CommandName) { case "add": SexyUncached.AddContentGroupItem(ContentGroupID, UserId, item.TemplateID.Value, null, item.SortOrder + 1, true, ContentGroupItemType.Content, false); // Refresh page Response.Redirect(Request.RawUrl); break; case "addwithedit": Response.Redirect(Sexy.GetElementAddWithEditLink(ContentGroupID, item.SortOrder + 1, ModuleId, TabId, Request.RawUrl)); break; } }
protected void NewItem_OnInserted(ToSic.Eav.Entity Entity) { ContentGroupItem NewItem; if (Item != null) { NewItem = SexyUncached.TemplateContext.GetContentGroupItem(Item.ContentGroupItemID); } else { NewItem = SexyUncached.AddContentGroupItem(ContentGroupID, UserId, TemplateID, Entity.EntityID, SortOrder, true, ItemType, ItemType != ContentGroupItemType.Content); } NewItem.EntityID = Entity.EntityID; NewItem.SysModified = DateTime.Now; NewItem.SysModifiedBy = UserId; SexyUncached.TemplateContext.SaveChanges(); UpdateModuleTitleIfNecessary(Entity, NewItem); }
public void SetAppId(int?appId) { // Reset template to nothing (prevents errors after changing app) SexyUncached.UpdateTemplateForGroup(Sexy.GetContentGroupIdFromModule(ActiveModule.ModuleID), null, UserInfo.UserID); SexyContent.SetAppIdForModule(ActiveModule, appId); // Change to 1. template if app has been set if (appId.HasValue) { var sexyForNewApp = new SexyContent(Sexy.App.ZoneId, appId.Value, false); var templates = sexyForNewApp.GetAvailableTemplatesForSelector(ActiveModule).ToList(); if (templates.Any()) { SexyUncached.UpdateTemplateForGroup(Sexy.GetContentGroupIdFromModule(ActiveModule.ModuleID), templates.First().TemplateID, UserInfo.UserID); } else { SexyUncached.UpdateTemplateForGroup(Sexy.GetContentGroupIdFromModule(ActiveModule.ModuleID), null, UserInfo.UserID); } } }
public void SaveTemplateId([FromUri] int?templateId) { SexyUncached.UpdateTemplateForGroup(Sexy.GetContentGroupIdFromModule(ActiveModule.ModuleID), templateId, UserInfo.UserID); }