Beispiel #1
0
        /// <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();
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        /// <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);
            }
        }
Beispiel #5
0
        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);
        }
Beispiel #7
0
        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);
                }
            }
        }
Beispiel #8
0
 public void SaveTemplateId([FromUri] int?templateId)
 {
     SexyUncached.UpdateTemplateForGroup(Sexy.GetContentGroupIdFromModule(ActiveModule.ModuleID), templateId, UserInfo.UserID);
 }