using System; using System.Web.UI.WebControls; using System.Data; using CMS.CMSHelper; using CMS.GlobalHelper; using CMS.SettingsProvider; using CMS.SiteProvider; using CMS.UIControls; public partial class CMSModules_Staging_Tools_Data_Tree : CMSStagingDataPage { protected void Page_Load(object sender, EventArgs e) { // Check 'Manage data tasks' permission if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.staging", "ManageDataTasks")) { RedirectToAccessDenied("cms.staging", "ManageDataTasks"); } if (CultureHelper.IsUICultureRTL()) { objectTree.LineImagesFolder = GetImageUrl("RTL/Design/Controls/Tree", false, false); } else { objectTree.LineImagesFolder = GetImageUrl("Design/Controls/Tree", false, false); } objectTree.ImageSet = TreeViewImageSet.Custom; objectTree.ExpandImageToolTip = GetString("General.Expand"); objectTree.CollapseImageToolTip = GetString("General.Collapse"); CreateTreeView(); } /// /// Creates tree view. /// private void CreateTreeView() { objectTree.Nodes.Clear(); // Fill in the custom tables TreeNode rootNode = new TreeNode(); rootNode.Text = "" + GetString("DataStaging.RootNodeText") + ""; rootNode.Expanded = true; rootNode.NavigateUrl = "#"; objectTree.Nodes.Add(rootNode); string objectType = null; if (Request.Params["objectType"] != null) { objectType = ValidationHelper.GetString(Request.Params["objectType"], null); } // Initialize tree view with custom tables bool tableSelected = false; DataSet dsTables = DataClassInfoProvider.GetCustomTableClasses(CMSContext.CurrentSiteID, null, null, 0, "ClassID,ClassDisplayName,ClassName"); if (!DataHelper.DataSourceIsEmpty(dsTables)) { DataTable table = dsTables.Tables[0]; foreach (DataRow dr in table.Rows) { string tableDisplayName = ResHelper.LocalizeString(dr["ClassDisplayName"].ToString()); TreeNode tableNode = new TreeNode(); tableNode.ImageUrl = GetImageUrl("Objects/CMS_CustomTable/list.png"); string currentObjectType = CustomTableItemProvider.GetObjectType(dr["ClassName"].ToString()); if (currentObjectType == objectType) { tableNode.Text = "" + HTMLHelper.HTMLEncode(tableDisplayName) + ""; tableSelected = true; } else { tableNode.Text = "" + HTMLHelper.HTMLEncode(tableDisplayName) + ""; } tableNode.Value = currentObjectType; tableNode.NavigateUrl = "#"; objectTree.Nodes[0].ChildNodes.Add(tableNode); } } string script = "var currentNode = document.getElementById('treeSelectedNode');\n"; if ((objectType != null) && tableSelected) { script += " \t SelectNode('" + objectType + "');\n"; } ScriptHelper.RegisterStartupScript(Page, typeof(string), "RefreshScript", ScriptHelper.GetScript(script)); } }