using System;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using CMS.GlobalHelper;
using CMS.PortalEngine;
using CMS.UIControls;
public partial class CMSModules_PortalEngine_UI_PageTemplates_PageTemplate_Category : SiteManagerPage
{
#region "Variables"
protected int templateCategoryId = 0;
protected int parentCategoryId = 0;
#endregion
#region "Page events"
///
/// Handles the Load event of the Page control.
///
protected void Page_Load(object sender, EventArgs e)
{
lblCategoryDisplayName.Text = GetString("Development-PageTemplate_Category.DisplayName");
lblCategoryName.Text = GetString("Development-PageTemplate_Category.Name");
btnOk.Text = GetString("General.OK");
rfvCategoryDisplayName.ErrorMessage = GetString("General.RequiresDisplayName");
rfvCategoryName.ErrorMessage = GetString("General.RequiresCodeName");
CurrentMaster.Title.TitleText = GetString("development-pagetemplate_category.title");
CurrentMaster.Title.TitleImage = GetImageUrl("Objects/CMS_PageTemplateCategory/new.png");
CurrentMaster.Title.HelpTopicName = "new_category";
CurrentMaster.Title.HelpName = "helpTopic";
string templateCategoryDisplayName = "";
string templateCategoryName = "";
string currentTemplateCategoryName = GetString("Development-PageTemplate_Category.Title");
string categoryImagePath = "";
templateCategoryId = QueryHelper.GetInteger("categoryid", 0);
parentCategoryId = QueryHelper.GetInteger("parentcategoryid", 0);
if (templateCategoryId > 0)
{
// Existing category
// Hide breadcrumbs and title
CurrentMaster.Title.TitleText = "";
CurrentMaster.Title.Breadcrumbs = null;
PageTemplateCategoryInfo ptci = PageTemplateCategoryInfoProvider.GetPageTemplateCategoryInfo(templateCategoryId);
if (ptci != null)
{
templateCategoryDisplayName = ptci.DisplayName;
templateCategoryName = ptci.CategoryName;
currentTemplateCategoryName = ptci.CategoryName;
categoryImagePath = ptci.CategoryImagePath;
parentCategoryId = ptci.ParentId;
// If it's root category hide category name textbox
if ((parentCategoryId == 0) || (ptci.CategoryName == "AdHoc"))
{
plcCategoryName.Visible = false;
}
}
}
else
{
// New category
CurrentMaster.Title.HelpName = "helpTopic";
CurrentMaster.Title.HelpTopicName = "page_template_category_general";
// Load parent category name
PageTemplateCategoryInfo parentCategoryInfo = PageTemplateCategoryInfoProvider.GetPageTemplateCategoryInfo(parentCategoryId);
string parentCategoryName = GetString("development.pagetemplates");
if (parentCategoryInfo != null)
{
parentCategoryName = parentCategoryInfo.DisplayName;
}
// initializes breadcrumbs
string[,] tabs = new string[3,4];
tabs[0, 0] = GetString("development.pagetemplates");
tabs[0, 1] = URLHelper.ResolveUrl("~/CMSModules/PortalEngine/UI/PageTemplates/Category_Frameset.aspx");
tabs[0, 2] = "";
tabs[0, 3] = "if (parent.frames['pt_tree']) { parent.frames['pt_tree'].location.href = '" + URLHelper.ResolveUrl("~/CMSModules/PortalEngine/UI/PageTemplates/PageTemplate_Tree.aspx") + "'; }";
tabs[1, 0] = HTMLHelper.HTMLEncode(parentCategoryName);
tabs[1, 1] = URLHelper.ResolveUrl("~/CMSModules/PortalEngine/UI/PageTemplates/Category_Frameset.aspx?categoryid=" + parentCategoryId);
tabs[1, 2] = "";
tabs[2, 0] = GetString("Development-PageTemplate_Category.TitleNew");
tabs[2, 1] = "";
tabs[2, 2] = "";
// set master page
CurrentMaster.Title.Breadcrumbs = tabs;
CurrentMaster.Title.TitleText = currentTemplateCategoryName;
CurrentMaster.Title.TitleImage = GetImageUrl("Objects/CMS_PageTemplateCategory/new.png");
}
if (!RequestHelper.IsPostBack())
{
txtCategoryDisplayName.Text = templateCategoryDisplayName;
txtCategoryName.Text = templateCategoryName;
txtCategoryImagePath.Text = categoryImagePath;
}
}
///
/// Saves data of edited workflow scope from TextBoxes into DB.
///
protected void btnOK_Click(object sender, EventArgs e)
{
// Check whether required fields are not empty
string displayName = txtCategoryDisplayName.Text.Trim();
string codeName = txtCategoryName.Text.Trim();
string imagePath = txtCategoryImagePath.Text.Trim();
string result = new Validator().NotEmpty(displayName, GetString("General.RequiresDisplayName")).NotEmpty(codeName, GetString("General.RequiresCodeName")).Result;
// Validate the codename
if (parentCategoryId != 0)
{
if (!ValidationHelper.IsCodeName(codeName))
{
result = GetString("General.ErrorCodeNameInIdentifierFormat");
}
}
// Check codename uniqness
if ((templateCategoryId == 0) && (PageTemplateCategoryInfoProvider.GetPageTemplateCategoryInfoByCodeName(codeName) != null))
{
result = GetString("General.CodeNameExists");
}
if (result == "")
{
if (templateCategoryId > 0)
{
PageTemplateCategoryInfo ptci = PageTemplateCategoryInfoProvider.GetPageTemplateCategoryInfo(templateCategoryId);
if (ptci != null)
{
ptci.DisplayName = displayName;
ptci.CategoryName = codeName;
ptci.CategoryImagePath = imagePath;
PageTemplateCategoryInfoProvider.SetPageTemplateCategoryInfo(ptci);
ShowChangesSaved();
// Reload tree
string script = "parent.parent.frames['pt_tree'].location.href = '" + URLHelper.ResolveUrl("~/CMSModules/PortalEngine/UI/PageTemplates/PageTemplate_Tree.aspx?categoryid=" + templateCategoryId) + "';";
script += "parent.frames['categoryHeader'].location.href = '" + URLHelper.ResolveUrl("~/CMSModules/PortalEngine/UI/PageTemplates/Category_Header.aspx?categoryid=" + templateCategoryId + "&saved=1") + "';";
ltlScript.Text += ScriptHelper.GetScript(script);
}
}
else
{
PageTemplateCategoryInfo ptci = new PageTemplateCategoryInfo();
ptci.DisplayName = displayName;
ptci.CategoryName = codeName;
ptci.CategoryImagePath = imagePath;
ptci.ParentId = parentCategoryId;
try
{
PageTemplateCategoryInfoProvider.SetPageTemplateCategoryInfo(ptci);
string script = "parent.frames['pt_tree'].location.href = '" + URLHelper.ResolveUrl("~/CMSModules/PortalEngine/UI/PageTemplates/PageTemplate_Tree.aspx?categoryid=" + ptci.CategoryId) + "';";
script += "this.location.href = '" + URLHelper.ResolveUrl("~/CMSModules/PortalEngine/UI/PageTemplates/Category_Frameset.aspx?categoryid=" + ptci.CategoryId) + "';";
ltlScript.Text += ScriptHelper.GetScript(script);
}
catch (Exception ex)
{
ShowError(ex.Message);
}
}
}
else
{
ShowError(result);
}
}
#endregion
}