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); }