using System;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS.CMSHelper;
using CMS.FormControls;
using CMS.GlobalHelper;
using CMS.UIControls;
using CMS.WebAnalytics;
public partial class CMSModules_WebAnalytics_Controls_UI_Campaign_Edit : CMSAdminEditControl
{
#region "Variables"
private String formerCodeName = String.Empty;
#endregion
#region "Properties"
///
/// UIForm control used for editing objects properties.
///
public UIForm UIFormControl
{
get
{
return EditForm;
}
}
///
/// Indicates if the control should perform the operations.
///
public override bool StopProcessing
{
get
{
return base.StopProcessing;
}
set
{
base.StopProcessing = value;
EditForm.StopProcessing = value;
}
}
///
/// Indicates if the control is used on the live site.
///
public override bool IsLiveSite
{
get
{
return base.IsLiveSite;
}
set
{
base.IsLiveSite = value;
EditForm.IsLiveSite = value;
}
}
#endregion
#region "Page events"
protected void Page_Load(object sender, EventArgs e)
{
pnlAdvanced.GroupingText = GetString("campaign.advanced");
pnlBasic.GroupingText = GetString("campaign.basic");
// For new items (via dialog) - enable set true
CampaignInfo ci = EditForm.EditedObject as CampaignInfo;
if (((ci == null) || (ci.CampaignID == 0)) && !URLHelper.IsPostback())
{
chkEnabled.Value = true;
}
EditForm.OnAfterValidate += new EventHandler(EditForm_OnAfterValidate);
if (QueryHelper.GetBoolean("modaldialog", false))
{
EditForm.SubmitButton.Visible = false;
EditForm.RedirectUrlAfterCreate = "";
}
EditForm.OnBeforeSave += new EventHandler(EditForm_OnBeforeSave);
EditForm.OnAfterSave += new EventHandler(EditForm_OnAfterSave);
ucMacroEditor.ResolverName = "AnalyticsResolver";
}
private void EditForm_OnAfterSave(object sender, EventArgs e)
{
CampaignInfo ci = EditForm.EditedObject as CampaignInfo;
// If code name has changed (on existing object) => Rename all analytics statistics data.
if ((ci != null) && (ci.CampaignName != formerCodeName) && (formerCodeName != String.Empty))
{
CampaignInfoProvider.RenameCampaignStatistics(formerCodeName, ci.CampaignName, CMSContext.CurrentSiteID);
}
}
private void EditForm_OnBeforeSave(object sender, EventArgs e)
{
CampaignInfo ci = EditForm.EditedObject as CampaignInfo;
if (ci != null)
{
if (ci.CampaignSiteID == 0)
{
ci.CampaignSiteID = CMSContext.CurrentSiteID;
}
// Init goals values for new item
if (ci.CampaignID == 0)
{
ci.CampaignGoalValuePercent = false;
ci.CampaignGoalVisitorsPercent = false;
ci.CampaignGoalPerVisitorPercent = false;
ci.CampaignGoalConversionsPercent = false;
}
// Save old codename
formerCodeName = ci.CampaignName;
}
}
private void EditForm_OnAfterValidate(object sender, EventArgs e)
{
// Validate ToDate > FromDate
FormEngineUserControl fromField = EditForm.FieldControls["CampaignOpenFrom"] as FormEngineUserControl;
FormEngineUserControl toField = EditForm.FieldControls["CampaignOpenTo"] as FormEngineUserControl;
DateTime from = DateTimeHelper.ZERO_TIME;
DateTime to = DateTimeHelper.ZERO_TIME;
if (fromField != null)
{
from = ValidationHelper.GetDateTime(fromField.Value, DateTimeHelper.ZERO_TIME);
}
if (toField != null)
{
to = ValidationHelper.GetDateTime(toField.Value, DateTimeHelper.ZERO_TIME);
}
if ((from != DateTimeHelper.ZERO_TIME) && (to != DateTimeHelper.ZERO_TIME) && (from > to))
{
EditForm.StopProcessing = true;
EditForm.DisplayErrorLabel("CampaignOpenFrom", GetString("campaign.wronginterval"));
}
}
///
/// Saves the data
///
/// If true, use server redirect after successful save
public bool Save(bool redirect)
{
string selectorID = QueryHelper.GetString("selectorID", String.Empty);
bool ret = EditForm.SaveData("");
// If saved - redirect with campaign ID parameter
if ((ret) && (redirect))
{
CampaignInfo ci = (CampaignInfo)EditForm.EditedObject;
if (ci != null)
{
URLHelper.Redirect("tab_general.aspx?campaignid=" + ci.CampaignID + "&saved=1&modaldialog=true&selectorID=" + selectorID);
}
}
return ret;
}
#endregion
}