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.CMSHelper;
using CMS.GlobalHelper;
using CMS.Reporting;
using CMS.UIControls;
public partial class CMSModules_Reporting_Tools_ItemsList : CMSUserControl
{
#region "Variables"
private string mEditUrl = "";
private int mReportID = 0;
private ReportInfo mReport = null;
private ReportItemType mItemType = ReportItemType.Graph;
#endregion
#region "Public properties"
///
/// URL of the edit page.
///
public string EditUrl
{
get
{
return mEditUrl;
}
set
{
mEditUrl = value;
}
}
///
/// Gets or sets report id, which is used for loading the report if Report property is null.
///
public int ReportID
{
get
{
return mReportID;
}
set
{
mReportID = value;
}
}
///
/// Gets or sets the report object to load the items.
///
public ReportInfo Report
{
get
{
return mReport;
}
set
{
mReport = value;
}
}
///
/// Item type.
///
public ReportItemType ItemType
{
get
{
return mItemType;
}
set
{
mItemType = value;
}
}
#endregion
///
/// Page load.
///
protected void Page_Load(object sender, EventArgs e)
{
// Check 'Read' permission
if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.reporting", "Read"))
{
CMSReportingPage.RedirectToCMSDeskAccessDenied("cms.reporting", "Read");
}
if (Report != null)
{
brsItems.ReportID = Report.ReportID;
}
brsItems.ReportType = ItemType;
brsItems.Display = false;
brsItems.IsLiveSite = IsLiveSite;
btnPreview.ImageUrl = UIHelper.GetImageUrl(Page, "CMSModules/CMS_Reporting/previewitem.png");
btnClone.ImageUrl = UIHelper.GetImageUrl(Page, "CMSModules/CMS_Reporting/clone.png");
btnEdit.ImageUrl = UIHelper.GetImageUrl(Page, "CMSModules/CMS_Reporting/edit.png");
btnDelete.ImageUrl = UIHelper.GetImageUrl(Page, "CMSModules/CMS_Reporting/delete.png");
btnPreview.AlternateText = GetString("general.preview");
btnPreview.ToolTip = GetString("general.preview");
btnClone.AlternateText = GetString("general.clone");
btnClone.ToolTip = GetString("general.clone");
btnEdit.AlternateText = GetString("general.edit");
btnEdit.ToolTip = GetString("general.edit");
btnDelete.AlternateText = GetString("general.delete");
btnDelete.ToolTip = GetString("general.delete");
// Enable page methods to get item name
ScriptManager man = ScriptManager.GetCurrent(this.Page);
man.EnablePageMethods = true;
}
///
/// Pre render.
///
protected void Page_PreRender(object sender, EventArgs e)
{
Initialize();
}
///
/// Sets buttons actions.
///
protected void Initialize()
{
ScriptHelper.RegisterDialogScript(Page);
ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "GetSelectedItem" + ItemType.ToString(), ScriptHelper.GetScript(@"
function getSelectedItem_" + ItemType.ToString() + "() { \n" +
" if (document.getElementById('" + brsItems.UniSelectorClientID + "') != null) { \n" +
" return document.getElementById('" + brsItems.UniSelectorClientID + "').value; " +
" } \n" +
" return 0; } \n\n" +
"function DeleteItem_" + ItemType.ToString() + "() { \n" +
" if ((document.getElementById('" + brsItems.UniSelectorClientID + "') != null) && (document.getElementById('" + brsItems.UniSelectorClientID + "').value != '0')) { \n" +
" if (confirm(" + ScriptHelper.GetString(ResHelper.GetString("general.confirmdelete")) + ")) { \n" +
" document.getElementById('" + hdnItemId.ClientID + "').value = getSelectedItem_" + ItemType.ToString() + "(); " + Page.ClientScript.GetPostBackEventReference(btnHdnDelete, null) + " } \n" +
" } else { alert(" + ScriptHelper.GetString(ResHelper.GetString("Reporting_General.SelectObjectFirst")) + "); } \n" +
"} \n\n" +
"function InserMacro_" + ItemType.ToString() + "() { \n" +
" if ((document.getElementById('" + brsItems.UniSelectorClientID + "') != null) && (document.getElementById('" + brsItems.UniSelectorClientID + "').value != '0')) { \n" +
" PageMethods.GetReportItemName('" + ReportInfoProvider.ReportItemTypeToString(ItemType) + "',getSelectedItem_" + ItemType.ToString() + "(),OnComplete_" + ItemType.ToString() + ");\n" +
" } else { alert(" + ScriptHelper.GetString(ResHelper.GetString("Reporting_General.SelectObjectFirst")) + "); } \n" +
@"}
function OnComplete_" + ItemType.ToString() + @"(result, response, context){
InsertHTML('%%control:Report" + ItemType.ToString() + "?" + Report.ReportName + @".' + result +'%%');
}
function CloneItem_" + ItemType.ToString() + @"(id){
if ((document.getElementById('" + brsItems.UniSelectorClientID + @"') != null) && (document.getElementById('" + brsItems.UniSelectorClientID + @"').value != '0')) {
modalDialog('" + URLHelper.ResolveUrl("~/CMSModules/Objects/Dialogs/CloneObjectDialog.aspx?objectType=" + GetObjectType() + @"&objectId='+id") + @", 'CloneObject', 750, 400);
} else { alert(" + ScriptHelper.GetString(ResHelper.GetString("Reporting_General.SelectObjectFirst")) + @"); }
}"));
string modalHeight = "760";
string modalWidth = "1050";
if (Report != null)
{
btnAdd.OnClientClick = "modalDialog('" + ResolveUrl(mEditUrl) + "?reportId=" + Report.ReportID + "','ReportItemEdit'," + modalWidth + "," + modalHeight + ");return false;";
btnEdit.OnClientClick = "if (getSelectedItem_" + ItemType.ToString() + "() != '0') { modalDialog('" + ResolveUrl(mEditUrl) + "?reportId=" + Report.ReportID + "&itemid='+ getSelectedItem_" + ItemType.ToString() + "(),'ReportItemEdit'," + modalWidth + "," + modalHeight + "); } else { alert(" + ScriptHelper.GetString(ResHelper.GetString("Reporting_General.SelectObjectFirst")) + ");} return false;";
btnDelete.OnClientClick = "DeleteItem_" + ItemType.ToString() + "(); return false;";
btnInsert.OnClientClick = "InserMacro_" + mItemType.ToString() + "(); return false;";
btnClone.OnClientClick = "CloneItem_" + ItemType.ToString() + @"(getSelectedItem_" + ItemType.ToString() + "()); return false;";
btnPreview.OnClientClick = "if (getSelectedItem_" + ItemType.ToString() + "() != '0') { modalDialog('" + ResolveUrl(mEditUrl) + "?preview=true&reportId=" + Report.ReportID + "&itemid='+ getSelectedItem_" + ItemType.ToString() + "(),'ReportItemEdit'," + modalWidth + "," + modalHeight + "); } else { alert(" + ScriptHelper.GetString(ResHelper.GetString("Reporting_General.SelectObjectFirst")) + ");} return false;";
}
}
///
/// Returns current object type
///
protected string GetObjectType()
{
// Switch by item type
switch (ItemType)
{
// Graph
case ReportItemType.Graph:
case ReportItemType.HtmlGraph:
return ReportGraphInfo.TYPEINFO.ObjectType;
// Table
case ReportItemType.Table:
return ReportTableInfo.TYPEINFO.ObjectType;
// Value
case ReportItemType.Value:
return ReportValueInfo.TYPEINFO.ObjectType;
}
return String.Empty;
}
protected void btnHdnDelete_Click(object sender, EventArgs e)
{
// Check 'Modify' permission
if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.reporting", "Modify"))
{
CMSReportingPage.RedirectToCMSDeskAccessDenied("cms.reporting", "Modify");
}
// Check whether object is defined
if (!String.IsNullOrEmpty(hdnItemId.Value))
{
// Get id
int id = ValidationHelper.GetInteger(hdnItemId.Value, 0);
// Switch by type
switch (ItemType)
{
// Graph
case ReportItemType.Graph:
case ReportItemType.HtmlGraph:
ReportGraphInfoProvider.DeleteReportGraphInfo(id);
break;
// Table
case ReportItemType.Table:
ReportTableInfoProvider.DeleteReportTableInfo(id);
break;
// Value
case ReportItemType.Value:
ReportValueInfoProvider.DeleteReportValueInfo(id);
break;
}
}
}
}