using System;
using System.Data;
using CMS.GlobalHelper;
using CMS.SiteProvider;
using CMS.UIControls;
public partial class CMSSiteManager_Development_WebTemplates_WebTemplate_Edit : SiteManagerPage
{
#region "Protected variables"
protected int webTemplateId = 0;
protected WebTemplateInfo currentWebTemplateInfo = null;
#endregion
#region "Page events"
protected void Page_Load(object sender, EventArgs e)
{
rfvWebTemplateDisplayName.ErrorMessage = GetString("Administration-WebTemplate_New.ErrorEmptyWebTemplateDisplayName");
rfvWebTemplateName.ErrorMessage = GetString("Administration-WebTemplate_New.ErrorEmptyWebTemplateName");
rfvWebTemplateFileName.ErrorMessage = GetString("Administration-PageLayout_New.ErrorEmptyWebTemplateFileName");
rfvWebTemplateDescription.ErrorMessage = GetString("Administration-PageLayout_New.ErrorEmptyWebTemplateDescription");
// Gets 'webtemplateid' from querystring
webTemplateId = QueryHelper.GetInteger("webtemplateid", 0);
if (!RequestHelper.IsPostBack() && !String.IsNullOrEmpty(Request.QueryString["saved"]))
{
ShowChangesSaved();
}
string currentWebTemplate = GetString("Administration-WebTemplate_New.CurrentWebTemplate");
string title = GetString("Administration-WebTemplate_New.NewWebTemplate");
string image = GetImageUrl("Objects/CMS_WebTemplate/new.png");
if (webTemplateId > 0)
{
currentWebTemplateInfo = WebTemplateInfoProvider.GetWebTemplateInfo(webTemplateId);
// Set edited object
EditedObject = currentWebTemplateInfo;
if (currentWebTemplateInfo != null)
{
if (!RequestHelper.IsPostBack())
{
txtWebTemplateDisplayName.Text = currentWebTemplateInfo.WebTemplateDisplayName;
txtWebTemplateName.Text = currentWebTemplateInfo.WebTemplateName;
txtWebTemplateFileName.Text = currentWebTemplateInfo.WebTemplateFileName;
txtWebTemplateDescription.Text = currentWebTemplateInfo.WebTemplateDescription;
ucLicenseSelector.Value = currentWebTemplateInfo.WebTemplateLicenses;
ucLicensePackageSelector.Value = currentWebTemplateInfo.WebTemplatePackages;
// Init file uploader
attachmentFile.ObjectID = webTemplateId;
attachmentFile.ObjectType = SiteObjectType.WEBTEMPLATE;
attachmentFile.Category = MetaFileInfoProvider.OBJECT_CATEGORY_THUMBNAIL;
}
// Update title for editing
currentWebTemplate = currentWebTemplateInfo.WebTemplateDisplayName;
}
title = GetString("Administration-WebTemplate_New.EditWebTemplate");
image = GetImageUrl("Objects/CMS_WebTemplate/object.png");
}
else
{
lblUploadFile.Visible = false;
attachmentFile.Visible = false;
}
// Initialize master page elements
InitializeMasterPage(currentWebTemplate, title, image);
}
#endregion
#region "Private methods"
///
/// Initializes the master page elements.
///
private void InitializeMasterPage(string currentWebTemplate, string title, string image)
{
// Set title
CurrentMaster.Title.TitleText = title;
CurrentMaster.Title.TitleImage = image;
CurrentMaster.Title.HelpTopicName = "newedit_web_template";
CurrentMaster.Title.HelpName = "helpTopic";
// Set breadcrumbs
string[,] pageTitleTabs = new string[2,3];
pageTitleTabs[0, 0] = GetString("Administration-WebTemplate_List.Title");
pageTitleTabs[0, 1] = "~/CMSSiteManager/Development/WebTemplates/WebTemplate_List.aspx";
pageTitleTabs[0, 2] = string.Empty;
pageTitleTabs[1, 0] = currentWebTemplate;
pageTitleTabs[1, 1] = string.Empty;
pageTitleTabs[1, 2] = string.Empty;
CurrentMaster.Title.Breadcrumbs = pageTitleTabs;
}
#endregion
#region "Button handling"
///
/// Handles btnOK's OnClick event - Update web template info DB.
///
protected void btnOK_Click(object sender, EventArgs e)
{
// Finds whether required fields are not empty
string result = new Validator().NotEmpty(txtWebTemplateDisplayName.Text, GetString("Administration-WebTemplate_New.ErrorEmptyWebTemplateDisplayName"))
.NotEmpty(txtWebTemplateName.Text, GetString("Administration-WebTemplate_New.ErrorEmptyWebTemplateName"))
.NotEmpty(txtWebTemplateFileName.Text, GetString("Administration-PageLayout_New.ErrorEmptyWebTemplateFileName"))
.NotEmpty(txtWebTemplateDescription.Text, GetString("Administration-PageLayout_New.ErrorEmptyWebTemplateDescription")).Result;
if (!ucLicenseSelector.IsValid())
{
result = GetString("Administration-WebTemplate_New.ErrorEmptyWebTemplateNameLicenses");
}
if (result == string.Empty)
{
WebTemplateInfo wi = WebTemplateInfoProvider.GetWebTemplateInfo(txtWebTemplateName.Text);
// Check if entered code name is unique
if (wi == null || wi.WebTemplateId == webTemplateId)
{
// New web template info
if ((wi == null) && (currentWebTemplateInfo == null))
{
wi = new WebTemplateInfo();
DataSet ds = WebTemplateInfoProvider.GetWebTemplates(null, null, 0, "WebTemplateID", false);
if (!DataHelper.DataSourceIsEmpty(ds))
{
wi.WebTemplateOrder = ds.Tables[0].Rows.Count + 1;
}
else
{
wi.WebTemplateOrder = 1;
}
}
// Current template info
else
{
wi = currentWebTemplateInfo;
}
wi.WebTemplateId = webTemplateId;
wi.WebTemplateDisplayName = txtWebTemplateDisplayName.Text;
wi.WebTemplateName = txtWebTemplateName.Text;
wi.WebTemplateDescription = txtWebTemplateDescription.Text;
wi.WebTemplateFileName = txtWebTemplateFileName.Text;
wi.WebTemplateLicenses = (string)ucLicenseSelector.Value;
wi.WebTemplatePackages = (string)ucLicensePackageSelector.Value;
try
{
WebTemplateInfoProvider.SetWebTemplateInfo(wi);
URLHelper.Redirect("WebTemplate_Edit.aspx?webtemplateid=" + wi.WebTemplateId + "&saved=1");
}
catch (Exception ex)
{
// WebTemplateInfoProvider doesn't make any unique controls
ShowError(GetString("general.saveerror"), ex.Message, null);
}
}
else
{
ShowError(GetString("Administration-WebTemplate_New.ErrorWebTemplateNameNotUnique"));
}
}
else
{
ShowError(result);
}
}
#endregion
}