using System;
using System.Globalization;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using CMS.CMSHelper;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.UIControls;
using CMS.WebAnalytics;
using CMS.ExtendedControls;
public partial class CMSModules_WebAnalytics_Pages_Tools_Campaign_CampaignGoals : CMSCampaignAndConversionPage
{
#region "Variables"
private bool isSaved = false;
private bool reportDisplayed = false;
private string statCodeName = String.Empty;
private string dataCodeName = String.Empty;
private IDisplayReport ucDisplayReport;
#endregion
#region "Properties"
///
/// Messages placeholder
///
public override MessagesPlaceHolder MessagesPlaceHolder
{
get
{
return plcMess;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
CurrentMaster.PanelContent.CssClass = "";
reportHeader.ActionPerformed += HeaderActions_ActionPerformed;
statCodeName = QueryHelper.GetString("statCodeName", String.Empty);
dataCodeName = QueryHelper.GetString("dataCodeName", String.Empty);
ucDisplayReport = this.LoadUserControl("~/CMSModules/Reporting/Controls/DisplayReport.ascx") as IDisplayReport;
pnlDisplayReport.Controls.Add((Control)ucDisplayReport);
CheckWebAnalyticsUI(dataCodeName);
// Set disabled module info
ucDisabledModule.SettingsKeys = "CMSAnalyticsEnabled;";
ucDisabledModule.InfoText = GetString("WebAnalytics.Disabled");
ucDisabledModule.ParentPanel = pnlDisabled;
CurrentMaster.Title.TitleText = GetString("analytics_codename.campaign") + " - " + GetString("analytics_codename." + HTMLHelper.HTMLEncode(statCodeName));
// Icon
string iconName = QueryHelper.GetString("icon", String.Empty);
string imageUrl = GetImageUrl("CMSModules/CMS_WebAnalytics/Details/" + iconName + ".png");
if (!FileHelper.FileExists(imageUrl))
{
imageUrl = GetImageUrl("Objects/Reporting_ReportCategory/object.png");
}
CurrentMaster.Title.TitleImage = imageUrl;
CurrentMaster.Title.HelpTopicName = Server.UrlEncode(statCodeName).Replace(".", "_");
}
protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e)
{
switch (e.CommandName)
{
case ComponentEvents.SAVE:
DisplayReport(true);
Save();
break;
}
}
///
/// OnPreRender - Display report
///
protected override void OnPreRender(EventArgs e)
{
DisplayReport(true);
reportHeader.ReportName = ucDisplayReport.ReportName;
reportHeader.ReportParameters = ucDisplayReport.ReportParameters;
reportHeader.SelectedInterval = ucGraphType.SelectedInterval;
reportHeader.DisplayManageData = false;
base.OnPreRender(e);
}
///
/// Used in rendering to control outside render stage (save method)
///
/// Control
public override void VerifyRenderingInServerForm(Control control)
{
if (!isSaved)
{
base.VerifyRenderingInServerForm(control);
}
}
///
/// Displays the given report
///
private void DisplayReport(bool reloadInnerReport)
{
// If report was already displayed .. return
if (reportDisplayed)
{
return;
}
ucGraphType.ProcessChartSelectors(false);
// Prepare report parameters
DataTable dtp = new DataTable();
dtp.Columns.Add("FromDate", typeof(DateTime));
dtp.Columns.Add("ToDate", typeof(DateTime));
dtp.Columns.Add("CampaignName", typeof(string));
object[] parameters = new object[3];
parameters[0] = ucGraphType.From;
parameters[1] = ucGraphType.To;
parameters[2] = "";
// Get report name from query
string reportName = ucGraphType.GetReportName(QueryHelper.GetString("reportCodeName", String.Empty));
if (CMSString.Compare(Convert.ToString(ucSelectCampaign.Value), "-1", true) != 0)
{
parameters[2] = ucSelectCampaign.Value;
}
else
{
reportName = "all" + reportName;
}
dtp.Rows.Add(parameters);
dtp.AcceptChanges();
ucDisplayReport.ReportName = reportName;
// Set display report
if (!ucDisplayReport.IsReportLoaded())
{
ShowError(String.Format(GetString("Analytics_Report.ReportDoesnotExist"), reportName));
}
else
{
ucDisplayReport.LoadFormParameters = false;
ucDisplayReport.DisplayFilter = false;
ucDisplayReport.ReportParameters = dtp.Rows[0];
ucDisplayReport.GraphImageWidth = 100;
ucDisplayReport.IgnoreWasInit = true;
ucDisplayReport.UseExternalReload = true;
ucDisplayReport.UseProgressIndicator = true;
if (reloadInnerReport)
{
ucDisplayReport.ReloadData(true);
}
}
if (reloadInnerReport)
{
// Mark as report displayed
reportDisplayed = true;
}
}
///
/// Saves the graph report.
///
private void Save()
{
// Check web analytics save permission
if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.WebAnalytics", "SaveReports"))
{
RedirectToCMSDeskAccessDenied("CMS.WebAnalytics", "SaveReports");
}
isSaved = true;
if (ucDisplayReport.SaveReport() > 0)
{
ShowConfirmation(String.Format(GetString("Analytics_Report.ReportSavedTo"), ucDisplayReport.ReportDisplayName + " - " + DateTime.Now.ToString()));
}
isSaved = false;
}
}