Esempio n. 1
0
    protected void btnOK_Click(object sender, EventArgs e)
    {
        if (pt != null)
        {
            // Limit text length
            txtTemplateCodeName.Text    = TextHelper.LimitLength(txtTemplateCodeName.Text.Trim(), 100, "");
            txtTemplateDisplayName.Text = TextHelper.LimitLength(txtTemplateDisplayName.Text.Trim(), 200, "");

            // finds whether required fields are not empty
            string result = new Validator().NotEmpty(txtTemplateDisplayName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName")).NotEmpty(txtTemplateCodeName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName"))
                            .IsCodeName(txtTemplateCodeName.Text, GetString("general.invalidcodename"))
                            .Result;

            if (String.IsNullOrEmpty(result))
            {
                // Check if template with given name already exists
                if (PageTemplateInfoProvider.PageTemplateNameExists(txtTemplateCodeName.Text))
                {
                    lblError.Text = GetString("general.codenameexists");
                    return;
                }

                if (pt.IsReusable == true)
                {
                    // Clone template with clear
                    pt = pt.Clone(true);
                }
                pt.CodeName    = txtTemplateCodeName.Text;
                pt.DisplayName = txtTemplateDisplayName.Text;
                pt.Description = txtTemplateDescription.Text;

                pt.CategoryID = Convert.ToInt32(categorySelector.Value);

                pt.IsReusable         = true;
                pt.PageTemplateSiteID = 0;
                try
                {
                    PageTemplateInfoProvider.SetPageTemplateInfo(pt);
                    int siteId = QueryHelper.GetInteger("siteid", 0);
                    if (siteId > 0)
                    {
                        PageTemplateInfoProvider.AddPageTemplateToSite(pt.PageTemplateId, siteId);
                    }
                    ltlScript.Text = ScriptHelper.GetScript("SelectActualData(" + pt.PageTemplateId.ToString() + ", " + pt.IsPortal.ToString().ToLower() + ", " + pt.IsReusable.ToString().ToLower() + ");");
                }
                catch (Exception ex)
                {
                    lblError.Text = ex.Message;
                }
            }
            else
            {
                lblError.Visible = true;
                lblError.Text    = result;
            }
        }
    }
    protected void btnOK_Click(object sender, EventArgs e)
    {
        // Limit text length
        txtTemplateCodeName.Text    = TextHelper.LimitLength(txtTemplateCodeName.Text.Trim(), 100, "");
        txtTemplateDisplayName.Text = TextHelper.LimitLength(txtTemplateDisplayName.Text.Trim(), 200, "");

        // finds whether required fields are not empty
        string result = new Validator().NotEmpty(txtTemplateDisplayName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName")).NotEmpty(txtTemplateCodeName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName"))
                        .IsCodeName(txtTemplateCodeName.Text, GetString("general.invalidcodename"))
                        .Result;

        if (result == "")
        {
            if (parentCategoryId > 0)
            {
                if (!PageTemplateInfoProvider.PageTemplateNameExists(txtTemplateCodeName.Text))
                {
                    //Insert page template info
                    PageTemplateInfo pi = new PageTemplateInfo();

                    pi.PageTemplateType = PageTemplateTypeEnum.Portal;
                    pi.DisplayName      = txtTemplateDisplayName.Text;
                    pi.CodeName         = txtTemplateCodeName.Text;
                    pi.IsPortal         = true;
                    pi.FileName         = "";
                    pi.WebParts         = "";
                    pi.Description      = txtTemplateDescription.Text;
                    pi.CategoryID       = parentCategoryId;
                    pi.IsReusable       = true; //set default value for isReusable

                    PageTemplateInfoProvider.SetPageTemplateInfo(pi);

                    EditedObject = pi;
                    CMSObjectManager.CheckOutNewObject(this.Page);

                    string script = "parent.frames['pt_tree'].location.href = 'PageTemplate_Tree.aspx?templateid=" + pi.PageTemplateId + "';";
                    script         += "this.location.href = 'PageTemplate_Edit.aspx?templateid=" + pi.PageTemplateId + "';";
                    ltlScript.Text += ScriptHelper.GetScript(script);
                }
                else
                {
                    ShowError(GetString("Administration-PageTemplate_New.TemplateExistsAlready"));
                }
            }
            else
            {
                ShowError(GetString("Administration-PageTemplate_New.NoParentIdGiven"));
            }
        }
        else
        {
            rfvTemplateDisplayName.Visible = false;
            rfvTemplateCodeName.Visible    = false;
            ShowError(result);
        }
    }
Esempio n. 3
0
    protected void btnOK_Click(object sender, EventArgs e)
    {
        if (pt != null)
        {
            // Limit text length
            txtTemplateDisplayName.Text = TextHelper.LimitLength(txtTemplateDisplayName.Text.Trim(), 200, "");

            // finds whether required fields are not empty
            string result = new Validator()
                            .NotEmpty(txtTemplateDisplayName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName"))
                            .NotEmpty(txtTemplateCodeName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName"))
                            .IsCodeName(txtTemplateCodeName.Text, GetString("general.invalidcodename"))
                            .Result;

            if (String.IsNullOrEmpty(result))
            {
                // Check if template with given name already exists
                if (PageTemplateInfoProvider.PageTemplateNameExists(txtTemplateCodeName.Text))
                {
                    ShowError(GetString("general.codenameexists"));
                }

                if (pt.IsReusable || !chkKeep.Checked)
                {
                    // Clone template with clear
                    pt = pt.Clone(true);
                }
                pt.CodeName    = txtTemplateCodeName.Text;
                pt.DisplayName = txtTemplateDisplayName.Text;
                pt.Description = txtTemplateDescription.Text;

                pt.CategoryID = Convert.ToInt32(categorySelector.Value);

                // Reset the Ad-hoc status
                pt.IsReusable           = true;
                pt.PageTemplateNodeGUID = Guid.Empty;

                pt.PageTemplateSiteID = 0;

                try
                {
                    PageTemplateInfoProvider.SetPageTemplateInfo(pt);
                    int siteId = QueryHelper.GetInteger("siteid", 0);
                    if (siteId > 0)
                    {
                        PageTemplateInfoProvider.AddPageTemplateToSite(pt.PageTemplateId, siteId);
                    }

                    if (!chkKeep.Checked)
                    {
                        ShowInformation(GetString("PortalEngine.SaveNewPageTemplate.Saved"));

                        txtTemplateCodeName.Text = pt.CodeName;

                        pnlContent.Enabled = false;
                        btnOk.Visible      = false;
                    }
                    else
                    {
                        string script;

                        bool refresh = QueryHelper.GetBoolean("refresh", false);
                        if (refresh)
                        {
                            script = "wopener.location.replace(wopener.location); CloseDialog();";
                        }
                        else
                        {
                            String selId = QueryHelper.GetString("selectorID", String.Empty);
                            script = "SelectTemplate(" + pt.PageTemplateId + "," + ScriptHelper.GetString(selId) + ");";
                        }

                        ltlScript.Text = ScriptHelper.GetScript(script);
                    }
                }
                catch (Exception ex)
                {
                    ShowError(ex.Message);
                }
            }
            else
            {
                ShowError(result);
            }
        }
    }
Esempio n. 4
0
    protected void btnOK_Click(object sender, EventArgs e)
    {
        if (pt != null)
        {
            // Limit text length
            txtTemplateDisplayName.Text = TextHelper.LimitLength(txtTemplateDisplayName.Text.Trim(), 200, "");

            // finds whether required fields are not empty
            string result = new Validator()
                            .NotEmpty(txtTemplateDisplayName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName"))
                            .NotEmpty(txtTemplateCodeName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName"))
                            .IsCodeName(txtTemplateCodeName.Text, GetString("general.invalidcodename"))
                            .Result;

            if (String.IsNullOrEmpty(result))
            {
                // Check if template with given name already exists
                if (PageTemplateInfoProvider.PageTemplateNameExists(txtTemplateCodeName.Text))
                {
                    ShowError(GetString("general.codenameexists"));
                }

                bool templateCloned      = false;
                var  reusableOrInherited = pt.IsReusable || QueryHelper.GetBoolean("inherits", false);

                // Clone template when page template is reusable or inherited from the parent page or template shouldn't be assigned to the current page
                // Do not clone template when page template is ad-hoc and new template should be assigned to the current page
                if (reusableOrInherited || !chkKeep.Checked)
                {
                    // Clone template with clear
                    pt             = pt.Clone(true);
                    templateCloned = true;
                }

                // Moving an ad-hoc template to a reusable template
                if (!pt.IsReusable)
                {
                    // Transfer template layout from file system to the database object to ensure that the new layout file (created afterwards) will contain the correct content
                    pt.PageTemplateLayout = pt.PageTemplateLayout;
                }

                pt.CodeName    = txtTemplateCodeName.Text;
                pt.DisplayName = txtTemplateDisplayName.Text;
                pt.Description = txtTemplateDescription.Text;

                pt.CategoryID = Convert.ToInt32(categorySelector.Value);

                // Reset the Ad-hoc status
                pt.IsReusable           = true;
                pt.PageTemplateNodeGUID = Guid.Empty;

                pt.PageTemplateSiteID = 0;

                if (templateCloned)
                {
                    // After all properties were set, reset object original values in order to behave as a new object. This ensures that a new layout file is created and the original one is not deleted.
                    pt.ResetChanges();
                }

                try
                {
                    PageTemplateInfoProvider.SetPageTemplateInfo(pt);
                    int siteId = QueryHelper.GetInteger("siteid", 0);
                    if (siteId > 0)
                    {
                        PageTemplateInfoProvider.AddPageTemplateToSite(pt.PageTemplateId, siteId);
                    }

                    if (!chkKeep.Checked)
                    {
                        ShowInformation(GetString("PortalEngine.SaveNewPageTemplate.Saved"));

                        txtTemplateCodeName.Text = pt.CodeName;

                        pnlContent.Enabled = false;
                        btnOk.Visible      = false;
                    }
                    else
                    {
                        var documentId = QueryHelper.GetInteger("documentId", 0);
                        if (reusableOrInherited && (documentId > 0))
                        {
                            // Assign the new page template to the current document
                            AssignNewTemplateToDocument(documentId, pt.PageTemplateId);
                        }

                        RegisterPageTemplateSavedScript();
                    }
                }
                catch (Exception ex)
                {
                    ShowError(ex.Message);
                }
            }
            else
            {
                ShowError(result);
            }
        }
    }
    /// <summary>
    /// Save button action.
    /// </summary>
    protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e)
    {
        switch (e.CommandName.ToLower())
        {
        case "lnksave_click":
            // Template has to exist
            if (pti == null)
            {
                return;
            }

            // Limit text length
            txtTemplateCodeName.Text    = TextHelper.LimitLength(txtTemplateCodeName.Text.Trim(), 100, "");
            txtTemplateDisplayName.Text = TextHelper.LimitLength(txtTemplateDisplayName.Text.Trim(), 200, "");

            // Finds whether required fields are not empty
            string result = String.Empty;

            result = new Validator().NotEmpty(txtTemplateDisplayName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName")).NotEmpty(txtTemplateCodeName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName"))
                     .IsCodeName(txtTemplateCodeName.Text, GetString("general.invalidcodename"))
                     .Result;

            if ((result == String.Empty) && (SelectedPageType == PageTemplateTypeEnum.Aspx || SelectedPageType == PageTemplateTypeEnum.AspxPortal))
            {
                if (!FileSystemSelector.IsValid())
                {
                    result = FileSystemSelector.ValidationError;
                }
            }

            // If name changed, check if new name is unique
            if ((result == String.Empty) && (String.Compare(pti.CodeName, txtTemplateCodeName.Text, true) != 0))
            {
                if (PageTemplateInfoProvider.PageTemplateNameExists(txtTemplateCodeName.Text))
                {
                    result = GetString("general.codenameexists");
                }
            }

            if (result == "")
            {
                // Update page template info
                pti.DisplayName = txtTemplateDisplayName.Text;
                pti.CodeName    = txtTemplateCodeName.Text;
                pti.Description = txtTemplateDescription.Text;
                pti.CategoryID  = Convert.ToInt32(categorySelector.Value);

                if (SelectedPageType == PageTemplateTypeEnum.Portal)
                {
                    pti.IsPortal = true;
                    pti.FileName = String.Empty;

                    // Save inherit levels
                    if (!chkShowAsMasterTemplate.Checked)
                    {
                        pti.InheritPageLevels = ValidationHelper.GetString(lvlElem.Value, "");
                    }
                    else
                    {
                        pti.InheritPageLevels = "/";
                    }

                    // Show hide inherit levels radio buttons
                    pti.ShowAsMasterTemplate = chkShowAsMasterTemplate.Checked;
                }
                else
                {
                    // ASPX page templates
                    pti.IsPortal             = false;
                    pti.FileName             = FileSystemSelector.Value.ToString();
                    pti.ShowAsMasterTemplate = false;
                    pti.InheritPageLevels    = "";
                }

                pti.PageTemplateType = SelectedPageType;

                pti.IsReusable = pageTemplateIsReusable;
                pti.WebParts   = pageTemplateWebParts;

                try
                {
                    // Save the template and update the header
                    PageTemplateInfoProvider.SetPageTemplateInfo(pti);
                    ScriptHelper.RegisterStartupScript(this, typeof(string), "pageTemplateSaveScript", ScriptHelper.GetScript("RefreshContent()"));
                    lblInfo.Text = ResHelper.GetString("General.ChangesSaved");
                }
                catch (Exception ex)
                {
                    lblError.Text    = ex.Message;
                    lblError.Visible = true;
                }
            }
            else
            {
                rfvTemplateDisplayName.Visible = false;
                rfvTemplateCodeName.Visible    = false;

                lblError.Visible = true;
                lblError.Text    = result;
            }
            break;
        }
    }
    /// <summary>
    /// Save button action.
    /// </summary>
    protected void ObjectManager_OnSaveData(object sender, SimpleObjectManagerEventArgs e)
    {
        // Template has to exist
        if (PageTemplate == null)
        {
            return;
        }

        // Limit text length
        txtTemplateCodeName.Text    = TextHelper.LimitLength(txtTemplateCodeName.Text.Trim(), 100, "");
        txtTemplateDisplayName.Text = TextHelper.LimitLength(txtTemplateDisplayName.Text.Trim(), 200, "");

        // Finds whether required fields are not empty
        string result = String.Empty;

        result = new Validator().NotEmpty(txtTemplateDisplayName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateDisplayName")).NotEmpty(txtTemplateCodeName.Text, GetString("Administration-PageTemplate_General.ErrorEmptyTemplateCodeName"))
                 .IsCodeName(txtTemplateCodeName.Text, GetString("general.invalidcodename"))
                 .Result;

        if ((result == String.Empty) && (SelectedPageType == PageTemplateTypeEnum.Aspx || SelectedPageType == PageTemplateTypeEnum.AspxPortal))
        {
            if (!FileSystemSelector.IsValid())
            {
                result = FileSystemSelector.ValidationError;
            }
        }

        // If name changed, check if new name is unique
        if ((result == String.Empty) && (CMSString.Compare(PageTemplate.CodeName, txtTemplateCodeName.Text, true) != 0))
        {
            if (PageTemplateInfoProvider.PageTemplateNameExists(txtTemplateCodeName.Text))
            {
                result = GetString("general.codenameexists");
            }
        }


        // Check dashboard prerequisites
        if ((PageTemplate.PageTemplateId > 0) && (SelectedPageType == PageTemplateTypeEnum.Dashboard))
        {
            // Check live site usage
            TreeProvider            tp         = new TreeProvider(CMSContext.CurrentUser);
            NodeSelectionParameters parameters = new NodeSelectionParameters()
            {
                ClassNames = TreeProvider.ALL_CLASSNAMES,
                SiteName   = TreeProvider.ALL_SITES,
                Columns    = "NodeID",
                Where      = String.Format("DocumentPageTemplateID = {0} OR NodeTemplateID = {0} OR NodeWireframeTemplateID = {0}", PageTemplate.PageTemplateId)
            };

            DataSet ds = tp.SelectNodes(parameters);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                result = GetString("template.dahsboardliveused");
            }

            // Check valid zones
            if (String.IsNullOrEmpty(result))
            {
                PageTemplateInstance inst = PageTemplate.TemplateInstance;
                if (inst != null)
                {
                    foreach (WebPartZoneInstance zone in inst.WebPartZones)
                    {
                        switch (zone.WidgetZoneType)
                        {
                        case WidgetZoneTypeEnum.Dashboard:
                        case WidgetZoneTypeEnum.None:
                            continue;
                        }

                        result = GetString("template.dashboardinvalidzone");
                        break;
                    }
                }
            }
        }

        if (String.IsNullOrEmpty(result))
        {
            // Update page template info
            PageTemplate.DisplayName = txtTemplateDisplayName.Text;
            PageTemplate.CodeName    = txtTemplateCodeName.Text;
            PageTemplate.Description = txtTemplateDescription.Text;
            PageTemplate.CategoryID  = Convert.ToInt32(categorySelector.Value);

            if (SelectedPageType == PageTemplateTypeEnum.MVC)
            {
                // MVC template
                PageTemplate.IsPortal = false;
                PageTemplate.FileName = String.Empty;

                PageTemplate.ShowAsMasterTemplate     = false;
                PageTemplate.PageTemplateCloneAsAdHoc = false;

                PageTemplate.PageTemplateDefaultController = txtController.Text;
                PageTemplate.PageTemplateDefaultAction     = txtAction.Text;
            }
            else if (SelectedPageType == PageTemplateTypeEnum.Portal)
            {
                // Portal template of various types
                PageTemplate.IsPortal = true;
                PageTemplate.FileName = String.Empty;

                // Save inherit levels
                if (!chkShowAsMasterTemplate.Checked)
                {
                    PageTemplate.InheritPageLevels = ValidationHelper.GetString(lvlElem.Value, "");
                }
                else
                {
                    PageTemplate.InheritPageLevels = "/";
                }

                // Show hide inherit levels radio buttons
                PageTemplate.ShowAsMasterTemplate     = chkShowAsMasterTemplate.Checked;
                PageTemplate.PageTemplateCloneAsAdHoc = chkAdHoc.Checked;
            }
            else
            {
                // ASPX page templates
                PageTemplate.IsPortal = false;
                PageTemplate.FileName = FileSystemSelector.Value.ToString();

                PageTemplate.ShowAsMasterTemplate     = false;
                PageTemplate.PageTemplateCloneAsAdHoc = false;

                PageTemplate.InheritPageLevels = "";
            }

            PageTemplate.PageTemplateType = SelectedPageType;

            // Set ad-hoc status
            PageTemplate.IsReusable = pageTemplateIsReusable;
            if (pageTemplateIsReusable)
            {
                PageTemplate.PageTemplateNodeGUID = Guid.Empty;
            }

            PageTemplate.WebParts = pageTemplateWebParts;

            try
            {
                // Save the template and update the header
                PageTemplateInfoProvider.SetPageTemplateInfo(PageTemplate);
                ScriptHelper.RegisterStartupScript(this, typeof(string), "pageTemplateSaveScript", ScriptHelper.GetScript("RefreshContent()"));
                ShowChangesSaved();
            }
            catch (UnauthorizedAccessException ex)
            {
                ShowError(ResHelper.GetStringFormat("general.sourcecontrolerror", ex.Message));
            }
            catch (Exception ex)
            {
                ShowError(ex.Message);
            }
        }
        else
        {
            rfvTemplateDisplayName.Visible = false;
            rfvTemplateCodeName.Visible    = false;

            ShowError(result);
        }
    }