using System; using System.Data; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CMS.CMSHelper; using CMS.Community; using CMS.GlobalHelper; using CMS.SettingsProvider; using CMS.SiteProvider; using CMS.UIControls; using CMS.ExtendedControls; public partial class CMSModules_Groups_Controls_Members_Members : CMSAdminControl { #region "Variables" private bool mHideWhenGroupIsNotSupplied = false; #endregion #region "Public properties" /// /// Determines whether to hide the content of the control when GroupID is not supplied. /// public bool HideWhenGroupIsNotSupplied { get { return mHideWhenGroupIsNotSupplied; } set { mHideWhenGroupIsNotSupplied = value; } } /// /// Gets or sets the group ID for which the members should be displayed. /// public int GroupID { get { if (memberListElem.GroupID <= 0) { memberListElem.GroupID = ValidationHelper.GetInteger(GetValue("GroupID"), 0); } return memberListElem.GroupID; } set { memberListElem.GroupID = value; } } /// /// Indicates if control is used on live site /// public override bool IsLiveSite { get { return base.IsLiveSite; } set { base.IsLiveSite = value; actionsElem.IsLiveSite = value; } } #endregion protected void Page_Load(object sender, EventArgs e) { #region "Security" memberListElem.OnCheckPermissions += new CheckPermissionsEventHandler(memberListElem_OnCheckPermissions); memberEditElem.OnCheckPermissions += memberEditElem_OnCheckPermissions; #endregion if (!Visible) { EnableViewState = false; } if (StopProcessing) { actionsElem.StopProcessing = true; memberListElem.StopProcessing = true; memberEditElem.StopProcessing = true; } else { if ((GroupID == 0) && HideWhenGroupIsNotSupplied) { Visible = false; return; } memberListElem.OnAction += new CommandEventHandler(memberListElem_GridOnAction); lnkEditBack.Click += lnkEditBack_Click; lnkEditBack.Text = GetString("group.members"); // Initialize the invite customer element string[,] actions = new string[1,7]; actions[0, 0] = HeaderActions.TYPE_LINKBUTTON; actions[0, 1] = GetString("groupinvitation.invite"); actions[0, 2] = "OpenInvite(); return false;"; actions[0, 5] = GetImageUrl("CMSModules/CMS_Groups/invitemember.png"); actions[0, 6] = "invitemember"; actionsElem.Actions = actions; string script = "function OpenInvite() {\n" + "modalDialog('" + CMSContext.ResolveDialogUrl("~/CMSModules/Groups/CMSPages/InviteToGroup.aspx") + "?groupid=" + GroupID + "','inviteToGroup', 500, 310); \n" + " } \n"; // Register menu management scripts ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "Members", ScriptHelper.GetScript(script)); // Register the dialog script ScriptHelper.RegisterDialogScript(Page); } } #region "Security handlers" protected void memberEditElem_OnCheckPermissions(string permissionType, CMSAdminControl sender) { RaiseOnCheckPermissions(permissionType, sender); } protected void memberListElem_OnCheckPermissions(string permissionType, CMSAdminControl sender) { RaiseOnCheckPermissions(permissionType, sender); } #endregion protected void lnkEditBack_Click(object sender, EventArgs e) { lblInfo.Visible = true; plcList.Visible = true; plcEdit.Visible = false; memberListElem.ReloadGrid(); } protected void memberListElem_GridOnAction(object sender, CommandEventArgs args) { switch (args.CommandName.ToLowerCSafe()) { case "approve": lblInfo.Text = GetString("group.member.userhasbeenapproved"); lblInfo.Visible = true; break; case "reject": lblInfo.Text = GetString("group.member.userhasbeenrejected"); lblInfo.Visible = true; break; case "edit": int memberId = ValidationHelper.GetInteger(args.CommandArgument, 0); memberEditElem.MemberID = memberId; memberEditElem.GroupID = GroupID; plcList.Visible = false; plcEdit.Visible = true; memberEditElem.Visible = true; memberEditElem.ReloadData(); GroupMemberInfo gmi = GroupMemberInfoProvider.GetGroupMemberInfo(memberId); if (gmi != null) { UserInfo ui = UserInfoProvider.GetUserInfo(gmi.MemberUserID); if (ui != null) { lblEditBack.Text = "   " + HTMLHelper.HTMLEncode(ui.FullName); } } break; } } }