using System;
using System.Data;
using CMS.Controls;
using CMS.DocumentEngine;
using CMS.GlobalHelper;
using CMS.PortalEngine;
using CMS.UIControls;
public partial class CMSModules_DocumentTypes_Controls_HierarchicalTransformations_List : CMSAdminEditControl
{
#region "Variables"
private TransformationInfo mTransInfo;
private bool mDialogMode;
private string mTemplateType;
private bool mIsSiteManager = false;
#endregion
#region "Properties"
///
/// Selected template type.
///
public string TemplateType
{
get
{
return mTemplateType;
}
set
{
mTemplateType = value;
}
}
///
/// Transformation info.
///
public TransformationInfo TransInfo
{
get
{
return mTransInfo;
}
set
{
mTransInfo = value;
}
}
///
/// Indicates whether control is shown in modal dialog window (different master page).
///
public bool DialogMode
{
get
{
return mDialogMode;
}
set
{
mDialogMode = value;
}
}
///
/// Indicate whether is site manager
///
public bool IsSiteManager
{
get
{
return mIsSiteManager;
}
set
{
mIsSiteManager = value;
}
}
#endregion
#region "Methods"
protected void Page_Load(object sender, EventArgs e)
{
ugTransformations.GridName = "~/CMSModules/DocumentTypes/Controls/HierarchicalTransformations_List.xml";
ugTransformations.OnLoadColumns += ugTransformations_OnLoadColumns;
ugTransformations.OnExternalDataBound += ugTransformations_OnExternalDataBound;
ugTransformations.OnAction += ugTransformations_OnAction;
ugTransformations.OrderBy = "ClassName";
ugTransformations.OnDataReload += ugTransformations_OnDataReload;
ugTransformations.ShowActionsMenu = true;
// All column names retrievable from XML
ugTransformations.AllColumns = "ID, Level, Type, ClassName, TransformationName";
}
private DataSet ugTransformations_OnDataReload(string completeWhere, string currentOrder, int currentTopN, string columns, int currentOffset, int currentPageSize, ref int totalRecords)
{
//Set filters
int level = ValidationHelper.GetInteger(txtLevel.Text, -1);
string docType = txtDocTypes.Text;
//Set new info to XML collection
HierarchicalTransformations transf = LoadTransformation();
int pageSize = ValidationHelper.GetInteger(ugTransformations.PageSizeDropdown.SelectedValue, 0);
int count = transf.ItemsCount;
// Hide filter when no pager used for grid or if all items count is larger then page size
if ((pageSize == TreeProvider.ALL_LEVELS) || (count < pageSize))
{
pnlFilter.Visible = false;
}
else
{
pnlFilter.Visible = true;
}
return transf.GetDataSet(level, HierarchicalTransformations.StringToUniViewItemType(TemplateType), docType);
}
private void ugTransformations_OnLoadColumns()
{
if (TemplateType == "all")
{
ugTransformations.AddColumn(GetString("general.type"), "Type", 10, true);
}
}
protected object ugTransformations_OnExternalDataBound(object sender, string sourceName, object parameter)
{
switch (sourceName)
{
case "level":
int level = (int)parameter;
if (level == -1)
{
return "All";
}
break;
case "doctype":
string docType = (string)parameter;
if (docType == String.Empty)
{
return "All";
}
break;
}
return parameter;
}
///
/// Load transformation for xml usage.
///
private HierarchicalTransformations LoadTransformation()
{
HierarchicalTransformations transformations = new HierarchicalTransformations("ClassName");
if (TransInfo != null)
{
if (!String.IsNullOrEmpty(TransInfo.TransformationHierarchicalXML))
{
transformations.LoadFromXML(TransInfo.TransformationHierarchicalXML);
}
}
return transformations;
}
protected void ugTransformations_OnAction(string actionName, object actionArgument)
{
if (actionName == "edit")
{
string isManager = IsSiteManager ? "&sitemanager=true" : String.Empty;
URLHelper.Redirect(String.Format("HierarchicalTransformations_Transformations_Edit.aspx?guid={0}&transid={1}&templatetype={2}&editonlycode={3}&tabmode={4}&instanceguid={5}&aliaspath={6}{7}",
actionArgument, TransInfo.TransformationID, TemplateType, mDialogMode, QueryHelper.GetInteger("tabmode", 0), QueryHelper.GetGuid("instanceguid", Guid.Empty), QueryHelper.GetString("aliaspath", ""), isManager));
}
if (actionName == "delete")
{
HierarchicalTransformations transf = LoadTransformation();
transf.DeleteTransformation(new Guid(Convert.ToString(actionArgument)));
TransInfo.TransformationHierarchicalXML = transf.GetXML();
TransformationInfoProvider.SetTransformation(TransInfo);
//Reloads data
ugTransformations.ReloadData();
}
}
#endregion
}