예제 #1
0
    /// <summary>
    /// Prepares JSON object to be inserted to the breadcrumbs. This object will be used when updating breadcrumbs after changing display name of the campaign.
    /// </summary>
    /// <returns>List of objects containing breadcrumb for root element and single campaign.</returns>
    private object GetBreadcrumbsData()
    {
        var breadcrumbsList = new List <object>();
        var application     = UIContext.UIElement.Application;

        // Root application
        string rootRedirectUrl = UrlResolver.ResolveUrl(ApplicationUrlHelper.GetApplicationUrl(application));

        breadcrumbsList.Add(new
        {
            text        = MacroResolver.Resolve(application.ElementDisplayName),
            redirectUrl = rootRedirectUrl,
            isRoot      = true
        });

        // (Campaign)
        breadcrumbsList.Add(new
        {
            suffix = ResHelper.GetString("analytics.campaign")
        });


        return(new
        {
            data = breadcrumbsList,
            pin = new
            {
                elementGuid = UIElementInfoProvider.GetUIElementInfo(UIContext.UIElement.ElementParentID).ElementGUID,
                applicationGuid = application.ElementGUID,
                objectType = CampaignInfo.OBJECT_TYPE
            }
        });
    }
예제 #2
0
    /// <summary>
    /// Creates role UI element. Called when the "Add element to role" button is pressed.
    /// Expects the CreateUIElement method to be run first.
    /// </summary>
    private bool AddUIElementToRole()
    {
        // Get the role
        RoleInfo role = RoleInfoProvider.GetRoleInfo("cmsdeskadmin", SiteContext.CurrentSiteID);

        // Get the UI element
        UIElementInfo element = UIElementInfoProvider.GetUIElementInfo("MyNewModule", "MyNewElement");

        if ((role != null) && (element != null))
        {
            // Create new role UI element object
            RoleUIElementInfo newRoleElement = new RoleUIElementInfo();

            // Set the properties
            newRoleElement.RoleID    = role.RoleID;
            newRoleElement.ElementID = element.ElementID;

            // Save the role UI element
            RoleUIElementInfoProvider.SetRoleUIElementInfo(newRoleElement);

            return(true);
        }

        return(false);
    }
    /// <summary>
    /// Sets selection after action.
    /// </summary>
    /// <param name="actionName">Action name</param>
    /// <param name="elementId">Element ID</param>
    private void AfterAction(string actionName, int elementId)
    {
        UIElementInfo elemInfo = UIElementInfoProvider.GetUIElementInfo(elementId);

        if (elemInfo != null)
        {
            ContentTree.SelectPath = elemInfo.ElementIDPath;
            ContentTree.ExpandPath = elemInfo.ElementIDPath + "/";

            switch (actionName.ToLowerCSafe())
            {
            case "delete":
                // Update menu actions parameters
                SelectNode(elemInfo);
                break;

            case "moveup":
            case "movedown":
                SelectNode(elemInfo, false);
                break;

            default:
                SelectNode(elemInfo);
                break;
            }
        }
    }
예제 #4
0
    private string ValidateForm()
    {
        // Finds whether required fields are not empty or codename is in requested form
        string result = new Validator()
                        .NotEmpty(txtDisplayName.Text.Trim(), GetString("general.requiresdisplayname"))
                        .NotEmpty(txtName.Text.Trim(), GetString("general.requirescodename"))
                        .IsCodeName(txtName.Text.Trim(), GetString("general.invalidcodename"))
                        .Result;

        if (String.IsNullOrEmpty(result) && plcCMSVersion.Visible)
        {
            if (string.IsNullOrEmpty(versionSelector.Value.ToString()))
            {
                result = GetString("general.requirescmsversion");
            }
        }

        if (String.IsNullOrEmpty(result))
        {
            // Check if code name is unique
            UIElementInfo elemInfo = UIElementInfoProvider.GetUIElementInfo(ResourceID, txtName.Text.Trim());
            if ((elemInfo != null) && (elemInfo.ElementID != this.ElementID))
            {
                result = GetString("general.uniquecodenameerror");
            }
        }

        return(result);
    }
예제 #5
0
    protected void SetRootNode()
    {
        if (String.IsNullOrEmpty(ElementName))
        {
            // Get the root UI element
            root = UIElementInfoProvider.GetRootUIElementInfo(ModuleName);
        }
        else
        {
            // Get the specified element
            root = UIElementInfoProvider.GetUIElementInfo(ModuleName, ElementName);
        }

        string codeName = root.ElementName.Replace(".", String.Empty).ToLowerCSafe();
        string caption  = ResHelper.LocalizeString(!String.IsNullOrEmpty(root.ElementCaption) ? root.ElementCaption : root.ElementDisplayName);
        string rootIcon = DisplayRootIcon ? GetImageUrl(root.ElementIconPath) : "";
        string rootUrl  = !String.IsNullOrEmpty(RootTargetURL) ? GetUrl(RootTargetURL) : GetUrl(root.ElementTargetURL);
        string rootText = devIcon + caption;

        if (EnableRootSelect)
        {
            rootText = String.Format("{0}<a href=\"{1}\" target=\"{2}\"><span id=\"node_{3}\" name=\"treeNode\" class=\"ContentTreeItem ContentTreeSelectedItem\"><span class=\"Name\">{4}</span></span></a>", devIcon, rootUrl, TargetFrame, codeName, caption);
            treeElem.SetRoot(rootText, root.ElementID.ToString(), rootIcon, rootUrl, TargetFrame);
            treeElem.EnableRootAction = true;
        }
        else
        {
            treeElem.SetRoot(rootText, root.ElementID.ToString(), rootIcon);
        }

        treeElem.ExpandPath = root.ElementIDPath;
    }
    protected void SetRootNode()
    {
        if (String.IsNullOrEmpty(ElementName))
        {
            // Get the root UI element
            root = UIElementInfoProvider.GetRootUIElementInfo(ModuleName);
        }
        else
        {
            // Get the specified element
            root = UIElementInfoProvider.GetUIElementInfo(ModuleName, ElementName);
        }

        string codeName = root.ElementName.Replace(".", String.Empty).ToLowerCSafe();
        string caption  = UIElementInfoProvider.GetElementCaption(root);
        string rootUrl  = !String.IsNullOrEmpty(RootTargetURL) ? GetUrl(RootTargetURL) : GetUrl(root.ElementTargetURL);

        string rootText = caption + DevIcon;

        if (EnableRootSelect)
        {
            rootText = String.Format("<a href=\"{0}\" target=\"{1}\"><span id=\"node_{2}\" name=\"treeNode\" class=\"ContentTreeItem ContentTreeSelectedItem\"><span class=\"Name\">{3}</span></span></a>", rootUrl, TargetFrame, codeName, caption);
            treeElem.SetRoot(rootText, root.ElementID.ToString(), null, rootUrl, TargetFrame);
            treeElem.EnableRootAction = true;
        }
        else
        {
            treeElem.SetRoot(rootText, root.ElementID.ToString(), null);
        }

        treeElem.ExpandPath = root.ElementIDPath;
    }
예제 #7
0
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    /// <param name="resourceName">Resource name</param>
    /// <param name="elementName">Element name</param>
    /// <param name="transformation">Transformation object info</param>
    private String GetEditUrl(string resourceName, string elementName, TransformationInfo transformation)
    {
        var uiChild = UIElementInfoProvider.GetUIElementInfo(resourceName, elementName);

        if (uiChild != null)
        {
            string url   = String.Empty;
            string query = RequestContext.CurrentQueryString;
            // Remove parentobjectid parameter to prevent from duplicating (URL generated by UIContextHelper.GetElementUrl already contains it).
            query = URLHelper.RemoveUrlParameter(query, "parentobjectid");

            if (!DialogMode)
            {
                url = UIContextHelper.GetElementUrl(uiChild, UIContext);
                url = URLHelper.AppendQuery(url, query);
                // Remove hash parameter as it's useless in non-dialog mode.
                url = URLHelper.RemoveParameterFromUrl(url, "hash");
            }
            else
            {
                url = ApplicationUrlHelper.GetElementDialogUrl(uiChild, 0, query);
            }


            return(URLHelper.AppendQuery(url, "objectid=" + transformation.TransformationID));
        }

        return(String.Empty);
    }
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    /// <param name="resourceName">Resource name</param>
    /// <param name="elementName">Element name</param>
    /// <param name="transformation">Transformation object info</param>
    private String GetEditUrl(string resourceName, string elementName, TransformationInfo transformation)
    {
        var uiChild = UIElementInfoProvider.GetUIElementInfo(resourceName, elementName);

        if (uiChild != null)
        {
            string url   = String.Empty;
            string query = RequestContext.CurrentQueryString;

            if (!DialogMode)
            {
                url = UIContextHelper.GetElementUrl(uiChild, UIContext);
                url = URLHelper.AppendQuery(url, query);
            }
            else
            {
                url = UIContextHelper.GetElementDialogUrl(uiChild, 0, query);
            }


            return(URLHelper.AppendQuery(url, "objectid=" + transformation.TransformationID));
        }

        return(String.Empty);
    }
예제 #9
0
    /// <summary>
    /// Handles the OnAfterSave event of the EditForm control.
    /// </summary>
    protected void EditForm_OnAfterSave(object sender, EventArgs ea)
    {
        String saveScript = AfterSaveScript;

        if (saveScript != String.Empty)
        {
            ScriptHelper.RegisterClientScriptBlock(this, typeof(String), "aftersavescript", ScriptHelper.GetScript(saveScript));
        }
        else
        {
            if (!String.IsNullOrEmpty(RedirectURL))
            {
                URLHelper.Redirect(RedirectURL);
            }

            if (newItem)
            {
                String url = RedirectURL;
                if (String.IsNullOrEmpty(RedirectURL))
                {
                    // Find element representing new object
                    UIElementInfo uiPar = UIElementInfoProvider.GetUIElementInfo(UIContext.UIElement.ElementParentID);
                    if (uiPar != null)
                    {
                        // Append parameters
                        url = UIContextHelper.GetElementUrl(uiPar.GetEditElement(), UIContext);
                        url = URLHelper.AppendQuery(url, "objectid=" + EditForm.EditedObject.Generalized.ObjectID + "&saved=1");

                        // Ensure that the redirected edit page will behave as a top dialog page (hide breadcrumbs, uses dialog page title...)
                        url = URLHelper.RemoveParameterFromUrl(url, "rootelementid");

                        // Append action edit parameter
                        url = URLHelper.AddParameterToUrl(url, "action", "edit");
                    }
                }

                // Ensure hash for dialog mode
                url = UIContextHelper.AppendDialogHash(UIContext, url);

                EditForm.RedirectUrlAfterSave = url;
            }
        }

        // Raise the javascript return handler function
        RaiseReturnHandler();

        if (itemChanged)
        {
            String refreshWopener = String.Empty;

            // Refresh opener for dialog page.
            if (IsDialog)
            {
                refreshWopener = "if(wopener!=null) {if (wopener.Refresh != null) {wopener.Refresh()} else if (wopener.RefreshPage != null) wopener.RefreshPage();}";
            }

            ScriptHelper.RegisterClientScriptBlock(Page, typeof(String), "RefreshParent", ScriptHelper.GetScript(refreshWopener + "if (parent.refreshPage) {parent.refreshPage()} else parent.location = parent.location;"));
        }
    }
예제 #10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get query parameters
        int moduleId  = QueryHelper.GetInteger("moduleid", 0);
        int elementId = QueryHelper.GetInteger("elementid", 0);
        int parentId  = QueryHelper.GetInteger("parentid", 0);

        string currentElement = "";

        // Get current element display name
        UIElementInfo elemInfo = UIElementInfoProvider.GetUIElementInfo(elementId);

        if (elemInfo != null)
        {
            currentElement = elemInfo.ElementDisplayName;
        }

        // Setup breadcrumbs
        string[,] pageTitleTabs = new string[2, 3];
        pageTitleTabs[0, 0]     = GetString("resource.ui.element");
        pageTitleTabs[0, 1]     = "~/CMSModules/Modules/Pages/Development/Module_UI_Frameset.aspx?moduleid=" + moduleId;
        pageTitleTabs[0, 2]     = "content";
        pageTitleTabs[1, 0]     = ResHelper.LocalizeString(currentElement);
        pageTitleTabs[1, 1]     = "";
        pageTitleTabs[1, 2]     = "";
        this.CurrentMaster.Title.Breadcrumbs = pageTitleTabs;

        // Setup Tabs if no creating and no parent element
        if (parentId > 0)
        {
            string[,] tabs = new string[2, 4];
            tabs[0, 0]     = GetString("general.general");
            tabs[0, 1]     = "SaveTab(0);SetHelpTopic('helpTopic', 'resource_ui_general');";
            tabs[0, 2]     = "Module_UI_General.aspx?moduleID=" + moduleId + "&elementId=" + elementId + "&parentId=" + parentId;
            tabs[1, 0]     = GetString("general.roles");
            tabs[1, 1]     = "SaveTab(1);SetHelpTopic('helpTopic', 'resource_ui_roles');";
            tabs[1, 2]     = "Module_UI_Roles.aspx?moduleID=" + moduleId + "&elementId=" + elementId + "&parentId=" + parentId;

            this.CurrentMaster.Tabs.Tabs      = tabs;
            this.CurrentMaster.Tabs.UrlTarget = "editcontent";

            int selectedTab = QueryHelper.GetInteger("tabindex", 0);
            this.CurrentMaster.Tabs.SelectedTab = selectedTab;

            if (selectedTab == 0)
            {
                this.CurrentMaster.Title.HelpTopicName = "resource_ui_general";
            }
            else
            {
                this.CurrentMaster.Title.HelpTopicName = "resource_ui_roles";
            }
            this.CurrentMaster.Title.HelpName = "helpTopic";

            this.CurrentMaster.HeadElements.Visible = true;
            this.CurrentMaster.HeadElements.Text    = ScriptHelper.GetScript("function SaveTab(tabIndex){\n if ((window.parent != null) && (window.parent.parent != null) && (window.parent.parent.frames['tree'])){\n window.parent.parent.frames['tree'].setTab(tabIndex);\n}}");
        }
    }
예제 #11
0
    /// <summary>
    /// Deletes UI element. Called when the "Delete element" button is pressed.
    /// Expects the CreateUIElement method to be run first.
    /// </summary>
    private bool DeleteUIElement()
    {
        // Get the UI element
        UIElementInfo deleteElement = UIElementInfoProvider.GetUIElementInfo("MyNewModule", "MyNewElement");

        // Delete the UI element
        UIElementInfoProvider.DeleteUIElementInfo(deleteElement);

        return(deleteElement != null);
    }
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    private String GetEditUrl()
    {
        UIElementInfo uiChild = UIElementInfoProvider.GetUIElementInfo("CMS.CustomTables", "EditTransformation");
        if (uiChild != null)
        {
            return URLHelper.AppendQuery(UIContextHelper.GetElementUrl(uiChild, UIContext), "displaytitle=false");
        }

        return String.Empty;
    }
    /// <summary>
    /// Gets URL where the page should be redirected after the unsubscription save.
    /// </summary>
    /// <returns>Relative URL navigating to the unsubscription listing page.</returns>
    private string GetRedirectUrl()
    {
        // Get URL of the unsubscription listing page
        var uiElement = UIElementInfoProvider.GetUIElementInfo(new Guid("C0B4B02A-F628-4204-9390-6CD9D9AE7125"));

        return(UIContextHelper.GetElementUrl(
                   uiElement,
                   displayTitle: false /* Ensure the black strip header won't be displayed */
                   ));
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        String text    = String.Empty;
        String url     = TargetUrl;
        bool   enabled = true;
        String onClick = String.Empty;

        // If new element is set, load it directly, otherwise use first element with prefix 'new' in its name.
        UIElementInfo uiNew = String.IsNullOrEmpty(NewElement) ? UIContext.UIElement.GetNewElement() :
                              UIElementInfoProvider.GetUIElementInfo(UIContext.UIElement.ElementResourceID, NewElement);

        bool   openInDialog = false;
        String dialogWidth  = null;
        String dialogHeight = null;

        if (uiNew != null)
        {
            UIContextData data = new UIContextData();
            data.LoadData(uiNew.ElementProperties);
            text    = UIElementInfoProvider.GetElementCaption(uiNew);
            enabled = UIContextHelper.CheckElementVisibilityCondition(uiNew);
            url     = ContextResolver.ResolveMacros(UIContextHelper.GetElementUrl(uiNew, UIContext));

            openInDialog = data["OpenInDialog"].ToBoolean(false);
            dialogWidth  = data["DialogWidth"].ToString(null);
            dialogHeight = data["DialogHeight"].ToString(null);

            // Set on-click for JavaScript type
            if (uiNew.ElementType == UIElementTypeEnum.Javascript)
            {
                onClick = url;
                url     = String.Empty;
            }
            else
            {
                // For URL append dialog hash if needed
                url = UIContextHelper.AppendDialogHash(UIContext, url);
            }
        }

        // If url is non empty add action
        if (((url != String.Empty) || (onClick != String.Empty)) && (HeaderActions != null))
        {
            HeaderActions.AddAction(new HeaderAction()
            {
                Text          = GetString(text),
                RedirectUrl   = url,
                Enabled       = enabled,
                OnClientClick = onClick,
                OpenInDialog  = openInDialog,
                DialogWidth   = dialogWidth,
                DialogHeight  = dialogHeight
            });
        }
    }
    /// <summary>
    /// Gets element ID from hidden value.
    /// </summary>
    private void GetHiddenValue()
    {
        string hidValue     = hidSelectedElem.Value;
        int    hiddenElemId = ValidationHelper.GetInteger(hidValue, 0);

        if ((hiddenElemId > 0) && (ElementId <= 0))
        {
            ElementId   = hiddenElemId;
            ElementInfo = UIElementInfoProvider.GetUIElementInfo(ElementId);
        }
    }
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    private String GetEditUrl()
    {
        UIElementInfo uiChild = UIElementInfoProvider.GetUIElementInfo("CMS.CustomTables", "EditCustomTable");

        if (uiChild != null)
        {
            return(URLHelper.AppendQuery(UIContextHelper.GetElementUrl(uiChild, false), "objectid={0}"));
        }

        return(String.Empty);
    }
    /// <summary>
    /// Page load event handler
    /// </summary>
    protected void Page_Load(object sender, EventArgs e)
    {
        pnlButtons.Visible = ShowTemplateButtons;
        btnClear.Visible   = DisplayClearButton;

        var template = PageTemplateInfo;

        if (template != null)
        {
            int templateId = template.PageTemplateId;

            // Hide Clone as AdHoc button for page templates when is used for UIElement edit page and UIElement does not exists
            var uiElement = Form?.EditedObject as UIElementInfo;
            plcUIClone.Visible = uiElement != null ? (template.IsReusable && UIElementInfoProvider.GetUIElementInfo(uiElement.ElementID) != null) : template.IsReusable;

            if (Enabled)
            {
                // Add root category filter
                String root = !String.IsNullOrEmpty(RootCategoryName) ? "&startingpath=" + RootCategoryName : "";

                // Set buttons
                btnSave.OnClientClick = String.Format(
                    "modalDialog('{0}?selectorid={1}{2}&templateId={3}&siteid={4}', 'SaveNewTemplate', 700, 400); return false;",
                    ResolveUrl("~/CMSModules/PortalEngine/UI/Layout/SaveNewPageTemplate.aspx"),
                    ClientID,
                    root,
                    templateId,
                    SiteContext.CurrentSiteID
                    );

                // Edit button
                string url = ApplicationUrlHelper.GetElementDialogUrl("cms.design", "PageTemplate.EditPageTemplate", templateId);

                btnEditTemplateProperties.OnClientClick = String.Format("modalDialog('{0}', 'Template edit', '95%', '95%'); return false;", url);

                btnClone.OnClientClick = String.Format(
                    "if (confirm({0})) {1};return false;",
                    ScriptHelper.GetString(GetString("pageselector.cloneasadhoc")),
                    Page.ClientScript.GetPostBackEventReference(btnFullPostback, null)
                    );
            }
        }
        else
        {
            pnlButtons.Visible = false;
        }

        SetButtonsOnClick();

        if (RequestHelper.IsPostBack() && (hdnSelected.Value == ""))
        {
            hdnSelected.Value = Request.Form[hdnSelected.UniqueID];
        }
    }
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    private String GetEditUrl()
    {
        UIElementInfo uiChild = UIElementInfoProvider.GetUIElementInfo("CMS.DocumentEngine", "EditQuery");

        if (uiChild != null)
        {
            return(URLHelper.AppendQuery(UIContextHelper.GetElementUrl(uiChild, UIContext), "displaytitle=false"));
        }

        return(String.Empty);
    }
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    private String GetEditUrl()
    {
        UIElementInfo uiChild = UIElementInfoProvider.GetUIElementInfo("CMS.MediaLibrary", "EditMediaLibrary");

        if (uiChild != null)
        {
            return(UIContextHelper.GetElementUrl(uiChild, false, elemList.SelectedItemID));
        }

        return(String.Empty);
    }
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    /// <param name="classId">Class info identifier</param>
    /// <param name="formId">Alternative form identifier</param>
    private String GetEditUrl(int classId, int formId)
    {
        UIElementInfo uiChild = UIElementInfoProvider.GetUIElementInfo("CMS.DocumentEngine", "EditAlternativeForm");

        if (uiChild != null)
        {
            return(URLHelper.AppendQuery(UIContextHelper.GetElementUrl(uiChild, UIContext), "displaytitle=false&objectid=" + formId + "&parentobjectid=" + classId));
        }

        return(String.Empty);
    }
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    private String GetEditUrl()
    {
        UIElementInfo uiChild = UIElementInfoProvider.GetUIElementInfo("CMS.BannerManagement", "EditBannerCategory");

        if (uiChild != null)
        {
            return(URLHelper.AppendQuery(UIContextHelper.GetElementUrl(uiChild, false), "objectid={0}&siteid={%SelectedSiteID%}"));
        }

        return(String.Empty);
    }
 /// <summary>
 /// Set path to preselected item
 /// </summary>
 private void HandleThePreselection()
 {
     if (!String.IsNullOrEmpty(SelectedNode))
     {
         UIElementInfo uiElement = UIElementInfoProvider.GetUIElementInfo(ModuleName, SelectedNode);
         if (uiElement != null)
         {
             treeElem.ExpandPath = uiElement.ElementIDPath;
         }
     }
 }
예제 #23
0
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    private String GetEditUrl()
    {
        UIElementInfo uiChild = UIElementInfoProvider.GetUIElementInfo("CMS.MediaLibrary", "Group.EditMediaLibrary");

        if (uiChild != null)
        {
            return(URLHelper.AppendQuery(UIContextHelper.GetElementUrl(uiChild, UIContext), "displaytitle=false&objectid={%EditedObject.ID%}&parentobjectid=" + elemEdit.MediaLibraryGroupID));
        }

        return(String.Empty);
    }
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    private String GetEditUrl()
    {
        UIElementInfo uiChild = UIElementInfoProvider.GetUIElementInfo("CMS.BannerManagement", "EditBanner");

        if (uiChild != null)
        {
            return(URLHelper.AppendQuery(UIContextHelper.GetElementUrl(uiChild, UIContext), "objectid={0}&siteid={%SelectedSiteID%}&parentobjectid={?parentobjectid?}&displaytitle=false"));
        }

        return(String.Empty);
    }
예제 #25
0
    /// <summary>
    /// Creates URL for editing.
    /// </summary>
    private String GetEditUrl()
    {
        UIElementInfo uiChild = UIElementInfoProvider.GetUIElementInfo("CMS.MediaLibrary", "EditMediaLibrary");

        if (uiChild != null)
        {
            return(URLHelper.AppendQuery(UIContextHelper.GetElementUrl(uiChild, false), "objectid={%EditedObject.ID%}"));
        }

        return(String.Empty);
    }
예제 #26
0
    protected void Page_Load(object sender, EventArgs e)
    {
        this.plcCMSVersion.Visible = SettingsKeyProvider.DevelopmentMode;

        if (ElementID > 0)
        {
            elemInfo = UIElementInfoProvider.GetUIElementInfo(ElementID);
            if ((!RequestHelper.IsPostBack()) && (elemInfo != null))
            {
                // Load selected element
                this.txtDisplayName.Text   = elemInfo.ElementDisplayName;
                this.txtName.Text          = elemInfo.ElementName;
                this.chkCustom.Checked     = elemInfo.ElementIsCustom;
                this.txtCaption.Text       = elemInfo.ElementCaption;
                this.txtTargetURL.Text     = elemInfo.ElementTargetURL;
                this.txtIconPath.Text      = elemInfo.ElementIconPath;
                this.txtDescription.Text   = elemInfo.ElementDescription;
                this.radRegular.Checked    = (elemInfo.ElementSize == UIElementSizeEnum.Regular);
                this.radLarge.Checked      = (elemInfo.ElementSize == UIElementSizeEnum.Large);
                this.elemSelector.ModuleID = elemInfo.ElementResourceID;
                // Exclude current element and childs from dropdown list
                this.elemSelector.WhereCondition = "ElementIDPath NOT LIKE N'" + elemInfo.ElementIDPath + "%'";

                if (this.plcCMSVersion.Visible)
                {
                    this.versionSelector.Value = elemInfo.ElementFromVersion;
                }
            }
        }
        else
        {
            // Hide parent selector for creating new element
            this.plcParentElem.Visible       = false;
            this.elemSelector.StopProcessing = true;

            // Set Is custom to default value
            if (!URLHelper.IsPostback())
            {
                this.chkCustom.Checked = (SettingsKeyProvider.DevelopmentMode ? false : true);
            }
        }
        this.rfvDisplayName.ErrorMessage = GetString("general.requiresdisplayname");
        this.rfvName.ErrorMessage        = GetString("general.requirescodename");

        if (!URLHelper.IsPostback())
        {
            if (QueryHelper.GetBoolean("saved", false))
            {
                this.lblInfo.ResourceString = "general.changessaved";
                this.lblInfo.Visible        = true;
            }
        }
    }
    /// <summary>
    /// Set default value of DisplayBreadcrumbs checkbox depending on element level.
    /// </summary>
    private void Form_OnAfterDataLoad(object sender, EventArgs e)
    {
        var parent = UIElementInfoProvider.GetUIElementInfo(ParentID);

        // Show breadcrumbs checkbox depending on element level
        bool displayBreadcrumbs = (parent != null) && (parent.ElementLevel >= UIElementInfoProvider.APPLICATION_LEVEL);

        if (!displayBreadcrumbs)
        {
            editElem.Form.FieldsToHide.Add("ElementDisplayBreadcrumbs");
        }
    }
예제 #28
0
    /// <summary>
    /// Handles all the specific operations for upgrade from 8.0 to 8.1.
    /// </summary>
    /// <returns></returns>
    private static bool Upgrade80To81()
    {
        #region "Remove unsupported UI elements"

        // Resource application
        var uiElement = UIElementInfoProvider.GetUIElementInfo("CMS", "Development.Resources");
        if ((uiElement != null) && (uiElement.ElementChildCount == 0))
        {
            UIElementInfoProvider.DeleteUIElementInfo(uiElement);
        }

        // Unit tests application
        uiElement = UIElementInfoProvider.GetUIElementInfo("CMS", "Development.Tests");
        if ((uiElement != null) && (uiElement.ElementChildCount == 0))
        {
            UIElementInfoProvider.DeleteUIElementInfo(uiElement);
        }

        // Unused 'Users' UI element
        uiElement = UIElementInfoProvider.GetUIElementInfo("CMS.Users", "Users");
        if ((uiElement != null) && (uiElement.ElementChildCount == 0))
        {
            UIElementInfoProvider.DeleteUIElementInfo(uiElement);
        }

        // Forgotten test element from version 8.0 'General' UI element
        uiElement = UIElementInfoProvider.GetUIElementInfo(new Guid("9CFF9173-4AAF-4CAE-AAEA-32B05F9188B1"));
        if ((uiElement != null) && (uiElement.ElementChildCount == 0))
        {
            UIElementInfoProvider.DeleteUIElementInfo(uiElement);
        }

        // Forgotten test element from version 8.0 'EditState' UI element
        uiElement = UIElementInfoProvider.GetUIElementInfo(new Guid("4D6C9A5E-CB53-445E-B22B-C702220D1338"));
        if ((uiElement != null) && (uiElement.ElementChildCount == 0))
        {
            UIElementInfoProvider.DeleteUIElementInfo(uiElement);
        }

        // Forgotten test element from version 8.0 'State' UI element
        uiElement = UIElementInfoProvider.GetUIElementInfo(new Guid("FD00B888-551D-40B6-B3D3-4B7EB896AB81"));
        if ((uiElement != null) && (uiElement.ElementChildCount == 0))
        {
            UIElementInfoProvider.DeleteUIElementInfo(uiElement);
        }

        #endregion

        return(true);
    }
예제 #29
0
    /// <summary>
    /// PreInit event handler.
    /// </summary>
    protected override void OnPreInit(EventArgs e)
    {
        base.OnPreInit(e);

        // Init the page components
        manPortal.SetMainPagePlaceholder(plc);

        var ui = UIElementInfoProvider.GetUIElementInfo(QueryHelper.GetInteger("elementid", 0));

        // Clear UIContext data of element "Modules.UserInterface.Design" (put by UIElement attribute to check permissions)
        UIContext.Data = null;

        if (ui != null)
        {
            UIContext.UIElement = ui;

            // Store resource name
            UIContext.ResourceName = UIContextHelper.GetResourceName(ui.ElementResourceID);

            int pageTemplateId = ui.ElementPageTemplateID;

            // If no page template is set, dont show any content
            if (pageTemplateId == 0)
            {
                RedirectToInformation(GetString("uielement.design.notemplate"));
            }

            // Prepare the page info
            PageInfo pi = PageInfoProvider.GetVirtualPageInfo(pageTemplateId);
            pi.DocumentNamePath = "/" + ResHelper.GetString("edittabs.design");

            DocumentContext.CurrentPageInfo = pi;

            // Set the design mode
            bool enable = (SystemContext.DevelopmentMode || (ui.ElementResourceID == QueryHelper.GetInteger("moduleId", 0) && ui.ElementIsCustom));
            PortalContext.SetRequestViewMode(ViewModeEnum.Design);

            // If displayed module is not selected, disable design mode
            if (!enable)
            {
                plc.ViewMode = ViewModeEnum.DesignDisabled;
            }

            ContextHelper.Add("DisplayContentInDesignMode", PortalHelper.DisplayContentInUIElementDesignMode, true, false, false, DateTime.MinValue);

            ManagersContainer    = plcManagers;
            ScriptManagerControl = manScript;
        }
    }
예제 #30
0
    protected void menuElem_AfterAction(string actionName, object actionArgument)
    {
        string[] split     = actionArgument.ToString().Split('|');
        int      elementId = ValidationHelper.GetInteger(split[0], 0);

        UIElementInfo elemInfo = UIElementInfoProvider.GetUIElementInfo(elementId);

        if (elemInfo != null)
        {
            this.uniTree.SelectPath = elemInfo.ElementIDPath;
            switch (actionName.ToLower())
            {
            case "delete":
                this.uniTree.ExpandPath = elemInfo.ElementIDPath + "/";
                // Reload header and content after save
                StringBuilder sb = new StringBuilder();

                sb.Append("if (window.parent != null) {");
                sb.Append("if (window.parent.frames['uicontent'] != null) {");
                if (elemInfo.ElementParentID > 0)
                {
                    // If not root element load edit frameset
                    sb.Append("window.parent.frames['uicontent'].location = '" + ResolveUrl("~/CMSModules/Modules/Pages/Development/Module_UI_EditFrameset.aspx") + "?moduleID=" + elemInfo.ElementResourceID + "&elementId=" + elemInfo.ElementID + "&parentId=" + elemInfo.ElementParentID + "';");
                }
                else
                {
                    // Else load root info page
                    sb.Append("window.parent.frames['uicontent'].location = '" + ResolveUrl("~/CMSModules/Modules/Pages/Development/Module_UI_New.aspx") + "?moduleID=" + elemInfo.ElementResourceID + "&parentId=0';");
                }
                sb.Append("}");
                sb.Append("}");
                this.ltlScript.Text += ScriptHelper.GetScript(sb.ToString());
                // Update menu actions parameters
                this.menuElem.Value = elemInfo.ElementID + "|" + elemInfo.ElementParentID;
                break;

            case "moveup":
            case "movedown":
                if (split.Length == 2)
                {
                    this.ltlScript.Text += ScriptHelper.GetScript("window.tabIndex = " + split[1] + ";");
                }
                break;
            }
            this.ltlScript.Text += ScriptHelper.GetScript("var postParentId = " + elemInfo.ElementParentID + ";");
            // Load data
            this.uniTree.ReloadData();
        }
    }