예제 #1
0
        List <PageSetting> GetPageSettings(WebpageInfo page)
        {
            List <PageSetting> pageSettings = new List <PageSetting>();

            // check IsAlias before checking ExternalUrl (otherwise an alias
            //_to_ an external link will look like an external link).
            if (page.IsAlias)
            {
                //TODO: add alias settings
                //if (AllowEditPage()) pageSettings.Add(new PageSetting("AliasSettings", "Alias Settings", "Settings"));

                if (!_isSystemRoot && Permission.AllowDeletePage())
                {
                    pageSettings.Add(new PageSetting("PageDelete", "Delete Alias", "Delete"));
                }
            }
            else if (!string.IsNullOrEmpty(page.ExternalUrl))
            { //the navigation instance is an external link.
                if (Permission.AllowManagePage())
                {
                    pageSettings.Add(new PageSetting("LinkSettings", "Link Settings", "Settings"));
                }
                if (!_isSystemRoot && Permission.AllowDeletePage())
                {
                    bool bEnableDelete = false;
                    if (page.Children.Count == 0)
                    {
                        bEnableDelete = true;
                    }

                    string strDisabledToolTip = "This link cannot be deleted because it contains subpages.  Please first delete all subpages before attempting to delete this link.";
                    pageSettings.Add(new PageSetting("PageDelete", "Delete Link", "Delete", bEnableDelete, strDisabledToolTip));
                }
            }
            else
            {
                if (_isSystemRoot)
                { //the page is the system root.
                  //if (Permission.AllowManageSystem()) pageSettings.Add(new PageSetting("WebsiteEdit", "Manage Websites", "Settings"));
                  //pageSettings.Add(new PageSetting("PagesModulesList", "Manage Modules", "Settings"));
                }
                else
                {
                    if (Permission.AllowManagePage())
                    {
                        pageSettings.Add(new PageSetting("PageSettings", "Page Settings", "Settings"));
                    }

                    if (page.ParentInstanceId.HasValue && page.ParentInstanceId.Value == Webpage.RootNavigationId)
                    { //the page is a website root page.
                        pageSettings.Add(new PageSetting("PagesModulesList", "Website Modules", "Settings"));
                        if (Permission.AllowManageSystem())
                        {
                            pageSettings.Add(new PageSetting("WebsiteEdit", "Website Settings", "Settings"));
                        }
                    }
                    else
                    { //the page is not a website root page.
                        if (Permission.AllowManagePage())
                        {
                            pageSettings.Add(new PageSetting("PageSecurity", "Page Security", "Security"));
                        }

                        bool bEnableDelete = false;

                        if (page.Children.Count == 0)
                        {
                            List <WebModuleInfo> modules = WebModule.GetModules(_instanceId);
                            if (modules.Count == 0)
                            {
                                bEnableDelete = true;
                            }
                        }

                        string strDisabledToolTip = "This page cannot be deleted because it contains modules and/or subpages.  Please first delete all modules and subpages before attempting to delete this page.";
                        if (Permission.AllowDeletePage())
                        {
                            pageSettings.Add(new PageSetting("PageDelete", "Delete Page", "Delete", bEnableDelete, strDisabledToolTip));
                        }
                    }
                }
            }

            return(pageSettings);
        }