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.SettingsProvider; using CMS.UIControls; public partial class CMSModules_EventLog_Controls_EventFilter : CMSUserControl { #region "Variables" private int mSiteId = 0; private bool isAdvancedMode = false; #endregion #region "Public properties" /// /// Gets or sets the site ID for which the events should be filtered. /// public int SiteID { get { return mSiteId; } set { mSiteId = value; } } /// /// Gets the where condition created using filtered parameters. /// public string WhereCondition { get { return GenerateWhereCondition(); } } #endregion #region "Page methods" protected void Page_Init(object sender, EventArgs e) { if (!URLHelper.IsPostback()) { drpEventLogType.Value = QueryHelper.GetString("type", null); } } protected void Page_Load(object sender, EventArgs e) { InitializeForm(); // Show correct filter panel EnsureFilterMode(); plcAdvancedSearch.Visible = isAdvancedMode; } #endregion #region "UI methods" /// /// Shows/hides all elements for advanced or simple mode. /// /// Whether to display advanced filter private void ShowFilterElements(bool showAdvanced) { plcAdvancedSearch.Visible = showAdvanced; pnlAdvanced.Visible = showAdvanced; pnlSimple.Visible = !showAdvanced; } /// /// Initializes the layout of the form. /// private void InitializeForm() { // General UI lnkShowAdvancedFilter.Text = GetString("user.filter.showadvanced"); imgShowAdvancedFilter.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/SortDown.png"); lnkShowSimpleFilter.Text = GetString("user.filter.showsimple"); imgShowSimpleFilter.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/SortUp.png"); plcAdvancedSearch.Visible = isAdvancedMode; pnlAdvanced.Visible = isAdvancedMode; pnlSimple.Visible = !isAdvancedMode; } /// /// Ensures correct filter mode flag if filter mode was just changed. /// private void EnsureFilterMode() { if (URLHelper.IsPostback()) { // Get current event target string uniqieId = ValidationHelper.GetString(Request.Params["__EVENTTARGET"], String.Empty); uniqieId = uniqieId.Replace("$", "_"); // If postback was fired by mode switch, update isAdvancedMode variable if (uniqieId == lnkShowAdvancedFilter.ClientID) { isAdvancedMode = true; } else if (uniqieId == lnkShowSimpleFilter.ClientID) { isAdvancedMode = false; } else { isAdvancedMode = ValidationHelper.GetBoolean(ViewState["IsAdvancedMode"], false); } } } /// /// Sets the advanced mode. /// protected void lnkShowAdvancedFilter_Click(object sender, EventArgs e) { isAdvancedMode = true; ViewState["IsAdvancedMode"] = isAdvancedMode; ShowFilterElements(isAdvancedMode); } /// /// Sets the simple mode. /// protected void lnkShowSimpleFilter_Click(object sender, EventArgs e) { isAdvancedMode = false; ViewState["IsAdvancedMode"] = isAdvancedMode; ShowFilterElements(isAdvancedMode); } #endregion #region "Search methods - where condition" /// /// Generates complete filter where condition. /// private string GenerateWhereCondition() { // Get mode from viewstate EnsureFilterMode(); string whereCond = ""; // Create WHERE condition for basic filter if (!String.IsNullOrEmpty(drpEventLogType.Value.ToString())) { whereCond = "EventType='" + drpEventLogType.Value + "'"; } whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltSource.GetCondition()); whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltEventCode.GetCondition()); whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltTimeBetween.GetCondition()); // Create WHERE condition for advanced filter (id needed) if (isAdvancedMode) { whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltUserName.GetCondition()); whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltIPAddress.GetCondition()); whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltDocumentName.GetCondition()); whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltMachineName.GetCondition()); whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltEventURL.GetCondition()); whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltEventURLRef.GetCondition()); whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltDescription.GetCondition()); whereCond = SqlHelperClass.AddWhereCondition(whereCond, fltUserAgent.GetCondition()); } // Append site condition if siteid given if (!String.IsNullOrEmpty(whereCond) && (SiteID >= 0)) { whereCond += " AND "; } if (SiteID > 0) { whereCond += " (SiteID=" + SiteID.ToString() + ")"; } else if (SiteID == 0) { whereCond += " (SiteID IS NULL)"; } return whereCond; } #endregion }