using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using CMS.GlobalHelper;
using CMS.SiteProvider;
using CMS.UIControls;
using CMS.ExtendedControls;
public partial class CMSModules_Settings_Controls_SettingsGroupEdit : CMSUserControl
{
#region "Variables"
///
/// Code name of displayed category. This category is NOT group (CategoryIsGroup = false).
///
private string mCategoryName = null;
///
/// Allows filtering for specific site.
///
private int mSiteId = 0;
#endregion
#region "Properties"
///
/// Code name of displayed category. This category is NOT group (CategoryIsGroup = false).
///
public string CategoryName
{
get
{
return mCategoryName;
}
set
{
mCategoryName = value;
}
}
///
/// Allows filtering of keys only for specific site. Set SiteID = 0 for all sites (dafault).
///
public int SiteID
{
get
{
return mSiteId;
}
set
{
mSiteId = value;
}
}
#endregion
#region "Events"
///
/// Event raised, when edit/delete/moveUp/moveDown category button is clicked.
///
public event CommandEventHandler ActionPerformed;
///
/// Event raised, when asked to add new key.
///
public event CommandEventHandler OnNewKey;
///
/// Event raised, when unigrid's button is clicked.
///
public event OnActionEventHandler OnKeyAction;
#endregion
#region "Control events"
///
/// Handles the whole category actions.
///
/// Sender of event
/// Event arguments
protected void group_ActionPerformed(object sender, CommandEventArgs e)
{
if (ActionPerformed != null)
{
ActionPerformed(sender, e);
}
}
///
/// Handles request for creating of new settings key.
///
/// Sender of event
/// Event arguments
protected void group_OnNewKey(object sender, CommandEventArgs e)
{
if (OnNewKey != null)
{
OnNewKey(sender, e);
}
}
///
/// Handles settings keys actions (delete, edit, move up, move down).
///
/// Name of the action
/// Argument of the action
protected void group_OnKeyAction(string actionName, object actionArgument)
{
if (OnKeyAction != null)
{
OnKeyAction(actionName, actionArgument);
}
}
#endregion
#region "Methods"
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
// Reload data;
ReloadData();
}
///
/// Creates SettingsGroup panel for a specified category.
///
/// Non-group category
protected CMSUserControl CreatePanelForCategory(SettingsCategoryInfo category)
{
if (category == null)
{
return null;
}
// Create new Category bar and initialize it
SettingsGroup group = Page.LoadUserControl("~/CMSModules/Settings/Controls/SettingsGroup.ascx") as SettingsGroup;
group.Category = category;
group.SiteID = mSiteId;
group.ActionPerformed += new CommandEventHandler(group_ActionPerformed);
group.OnNewKey += new CommandEventHandler(group_OnNewKey);
group.OnKeyAction += new OnActionEventHandler(group_OnKeyAction);
return group;
}
///
/// Reloads data.
///
public void ReloadData()
{
CMSUserControl catPanel;
// Get data
DataSet ds = SettingsCategoryInfoProvider.GetChildSettingsCategories(mCategoryName, "CategoryIsGroup = 1");
Controls.Clear();
if (!DataHelper.DataSourceIsEmpty(ds))
{
DataRowCollection rows = ds.Tables[0].Rows;
foreach (DataRow row in rows)
{
// Create new panel with info about subcategory
var sci = new SettingsCategoryInfo(row);
catPanel = CreatePanelForCategory(sci);
catPanel.ID = ControlsHelper.GetUniqueID(this, "CategoryPanel_" + ValidationHelper.GetIdentifier(sci.CategoryName));
Controls.Add(catPanel);
}
}
}
#endregion
}