using System; using System.Web.UI.WebControls; using CMS.CMSHelper; using CMS.Controls; using CMS.ExtendedControls; using CMS.GlobalHelper; using CMS.PortalEngine; using CMS.UIControls; public partial class CMSModules_DocumentTypes_Controls_HierarchicalTransformations_Edit : CMSAdminEditControl { #region "Private Variables" private Guid mHierarchicalID; private TransformationInfo mTransInfo; private HierarchicalTransformationInfo mHierInfo; private UniViewItemType mTemplateType; private HierarchicalTransformations mTransformations; private bool mShowInfoLable = false; private string mSelectedItemType = String.Empty; #endregion #region "Properties" /// /// Messages placeholder /// public override MessagesPlaceHolder MessagesPlaceHolder { get { return plcMess; } } /// /// Indicates if control is used on live site. /// public override bool IsLiveSite { get { return base.IsLiveSite; } set { plcMess.IsLiveSite = value; base.IsLiveSite = value; } } /// /// Data for transformation. /// public Guid HierarchicalID { get { return mHierarchicalID; } set { mHierarchicalID = value; } } /// /// Transformation info. /// public TransformationInfo TransInfo { get { return mTransInfo; } set { mTransInfo = value; } } /// /// If this control is loaded directly after item save, show this info label. /// public bool ShowInfoLabel { set { mShowInfoLable = value; } get { return mShowInfoLable; } } /// /// If true site manager is used. /// public bool IsSiteManager { get { return ucTransformations.IsSiteManager; } set { ucTransformations.IsSiteManager = value; IsLiveSite = !value; } } /// /// Value of item type. /// public string SelectedItemType { get { return mSelectedItemType; } } #endregion #region "Methods" protected override void OnInit(EventArgs e) { base.OnInit(e); mSelectedItemType = Request.Form[drpTemplateType.UniqueID]; } protected void Page_Load(object sender, EventArgs e) { string templateType = QueryHelper.GetString("templatetype", String.Empty); // If not in site manager - filter class selector for only site documents if (!IsSiteManager) { ucClassSelector.SiteID = CMSContext.CurrentSiteID; } if (!RequestHelper.IsPostBack()) { drpTemplateType.Items.Add(new ListItem(GetString("hiertransf.item"), "item")); drpTemplateType.Items.Add(new ListItem(GetString("hiertransf.alternatingitem"), "alternatingitem")); drpTemplateType.Items.Add(new ListItem(GetString("hiertransf.firstitem"), "firstitem")); drpTemplateType.Items.Add(new ListItem(GetString("hiertransf.lastitem"), "lastitem")); drpTemplateType.Items.Add(new ListItem(GetString("hiertransf.header"), "header")); drpTemplateType.Items.Add(new ListItem(GetString("hiertransf.footer"), "footer")); drpTemplateType.Items.Add(new ListItem(GetString("hiertransf.singleitem"), "singleitem")); drpTemplateType.Items.Add(new ListItem(GetString("hiertransf.separator"), "separator")); drpTemplateType.Items.Add(new ListItem(GetString("hiertransf.currentitem"), "currentitem")); //If new template type set via url if (!String.IsNullOrEmpty(templateType)) { //lblTemplateType.Text = ConvertTemplateTypeToString(templateType); if (templateType != "all") { drpTemplateType.SelectedValue = templateType; } else { drpTemplateType.SelectedValue = "item"; } } } //First edit after save ... show info message if (ShowInfoLabel) { ShowChangesSaved(); } if (!String.IsNullOrEmpty(templateType)) { mTemplateType = HierarchicalTransformations.StringToUniViewItemType(templateType); } //Load transformations xml mTransformations = new HierarchicalTransformations("ClassName"); if (TransInfo != null) { if (!String.IsNullOrEmpty(TransInfo.TransformationHierarchicalXML)) { mTransformations.LoadFromXML(TransInfo.TransformationHierarchicalXML); } } //Edit if (HierarchicalID != Guid.Empty) { mHierInfo = mTransformations.GetTransformation(HierarchicalID); //Load Transformation values if (!RequestHelper.IsPostBack()) { txtLevel.Text = mHierInfo.ItemLevel.ToString(); ucTransformations.Value = mHierInfo.TransformationName; ucClassSelector.Value = mHierInfo.Value; templateType = HierarchicalTransformations.UniViewItemTypeToString(mHierInfo.ItemType); drpTemplateType.SelectedValue = templateType; mTemplateType = mHierInfo.ItemType; } } // Disable class selector for separator, header and foot transformation ucClassSelector.Enabled = true; if ((drpTemplateType.SelectedValue == "header") || (drpTemplateType.SelectedValue == "footer") || (drpTemplateType.SelectedValue == "separator")) { ucClassSelector.Value = ""; ucClassSelector.Enabled = false; } } protected void btnOK_Click(object sender, EventArgs e) { //Validate data string errorMessage = new Validator().NotEmpty(ucTransformations.Value, GetString("transformationedit.erroremptytransformation")).Result; if ((errorMessage == "") && (txtLevel.Text.Trim() != String.Empty) && (!ValidationHelper.IsInteger(txtLevel.Text))) { errorMessage = GetString("development.invalidtransformationlevel"); } if (String.IsNullOrEmpty(txtLevel.Text)) { txtLevel.Text = "-1"; } int level = ValidationHelper.GetInteger(txtLevel.Text, -1); if (level < -1) { errorMessage = GetString("development.invalidtransformationlevel"); } if (errorMessage != String.Empty) { ShowError(errorMessage); return; } //Fill the info if (mHierInfo == null) { mHierInfo = new HierarchicalTransformationInfo(); mHierInfo.ItemID = Guid.NewGuid(); } mHierInfo.ItemLevel = ValidationHelper.GetInteger(txtLevel.Text, 0); mHierInfo.TransformationName = ucTransformations.Value.ToString(); mHierInfo.Value = ucClassSelector.Value.ToString(); mHierInfo.ItemType = HierarchicalTransformations.StringToUniViewItemType(drpTemplateType.SelectedValue); if ((mTransformations != null) && (TransInfo != null)) { mTransformations.SetTransformation(mHierInfo); TransInfo.TransformationHierarchicalXML = mTransformations.GetXML(); TransformationInfoProvider.SetTransformation(TransInfo); HierarchicalID = mHierInfo.ItemID; RaiseOnSaved(); } ShowChangesSaved(); } #endregion }