using System;
using System.Data;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.SiteProvider;
using CMS.UIControls;
public partial class CMSModules_Modules_Pages_Development_Module_UI_Tree : SiteManagerPage
{
protected void Page_Load(object sender, EventArgs e)
{
int moduleId = QueryHelper.GetInteger("moduleid", 0);
int parentId = QueryHelper.GetInteger("parentId", 0);
ScriptHelper.RegisterJQuery(Page);
// Use images according to culture
if (CultureHelper.IsUICultureRTL())
{
uniTree.LineImagesFolder = GetImageUrl("RTL/Design/Controls/Tree", false, false);
}
else
{
uniTree.LineImagesFolder = GetImageUrl("Design/Controls/Tree", false, false);
}
if (!RequestHelper.IsPostBack())
{
// Get module root element
UIElementInfo elemInfo = UIElementInfoProvider.GetRootUIElementInfo(moduleId);
if (elemInfo != null)
{
uniTree.SelectPath = elemInfo.ElementIDPath;
uniTree.ExpandPath = elemInfo.ElementIDPath + "/";
menuElem.Value = elemInfo.ElementID + "|" + elemInfo.ElementParentID;
}
else
{
// Get current resource
ResourceInfo resInfo = ResourceInfoProvider.GetResourceInfo(moduleId);
if (resInfo != null)
{
// Create new UI element
elemInfo = new UIElementInfo();
elemInfo.ElementResourceID = moduleId;
elemInfo.ElementDisplayName = resInfo.ResourceDisplayName;
elemInfo.ElementName = resInfo.ResourceName.ToLowerCSafe().Replace(".", "");
elemInfo.ElementIsCustom = false;
UIElementInfoProvider.SetUIElementInfo(elemInfo);
uniTree.SelectPath = elemInfo.ElementIDPath;
uniTree.ExpandPath = elemInfo.ElementIDPath;
menuElem.Value = elemInfo.ElementID + "|0";
}
}
}
menuElem.ResourceID = moduleId;
menuElem.AfterAction += new OnActionEventHandler(menuElem_AfterAction);
// Create and set UIElements provider
UniTreeProvider elementProvider = new UniTreeProvider();
elementProvider.ObjectType = "CMS.UIElement";
elementProvider.DisplayNameColumn = "ElementDisplayName";
elementProvider.IDColumn = "ElementID";
elementProvider.LevelColumn = "ElementLevel";
elementProvider.OrderColumn = "ElementOrder";
elementProvider.ParentIDColumn = "ElementParentID";
elementProvider.PathColumn = "ElementIDPath";
elementProvider.ValueColumn = "ElementID";
elementProvider.ChildCountColumn = "ElementChildCount";
elementProvider.WhereCondition = "ElementResourceID = " + moduleId;
elementProvider.Columns = "ElementID,ElementLevel,ElementOrder,ElementParentID,ElementIDPath,ElementChildCount,ElementDisplayName";
uniTree.UsePostBack = false;
uniTree.ProviderObject = elementProvider;
uniTree.ExpandTooltip = GetString("general.expand");
uniTree.CollapseTooltip = GetString("general.collapse");
uniTree.NodeTemplate = "##NODENAME##";
uniTree.SelectedNodeTemplate = "##NODENAME##";
if (!RequestHelper.IsPostBack())
{
string selectedPath = QueryHelper.GetString("path", String.Empty);
int elementId = QueryHelper.GetInteger("elementId", 0);
if (!string.IsNullOrEmpty(selectedPath))
{
uniTree.SelectPath = selectedPath;
}
if (elementId > 0)
{
menuElem.ElementID = elementId;
menuElem.ParentID = parentId;
menuElem.Value = elementId + "|" + parentId;
}
}
// Load data
uniTree.ReloadData();
string script = "var frameURL = '" + ResolveUrl("~/CMSModules/Modules/Pages/Development/Module_UI_EditFrameset.aspx") + "';";
script += "var newURL = '" + ResolveUrl("~/CMSModules/Modules/Pages/Development/Module_UI_New.aspx") + "';";
script += "var postParentId = " + parentId + ";";
ltlScript.Text = ScriptHelper.GetScript(script);
}
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)
{
uniTree.SelectPath = elemInfo.ElementIDPath;
switch (actionName.ToLowerCSafe())
{
case "delete":
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("}");
ltlScript.Text += ScriptHelper.GetScript(sb.ToString());
// Update menu actions parameters
menuElem.Value = elemInfo.ElementID + "|" + elemInfo.ElementParentID;
break;
case "moveup":
case "movedown":
if (split.Length == 2)
{
ltlScript.Text += ScriptHelper.GetScript("window.tabIndex = " + split[1] + ";");
}
break;
}
ltlScript.Text += ScriptHelper.GetScript("var postParentId = " + elemInfo.ElementParentID + ";");
// Load data
uniTree.ReloadData();
}
}
}