using System; using System.Web.UI.WebControls; using CMS.CMSHelper; using CMS.FormControls; using CMS.GlobalHelper; using CMS.SiteProvider; public partial class CMSModules_Messaging_FormControls_MessageUserSelector : FormEngineUserControl { #region "Private variables" private bool? mVisisble = null; #endregion #region "Public properties" /// /// Gets or sets field value. You need to override this method to make the control work properly with the form. /// public override object Value { get { return SelectedUserID; } set { SelectedUserID = ValidationHelper.GetInteger(value, 0); } } /// /// Gets or sets the enabled state of the control. /// public override bool Enabled { get { return base.Enabled; } set { base.Enabled = value; txtUser.Enabled = value; btnSelect.Enabled = value; } } /// /// Name of the selected user. /// public string SelectedUserName { get { UserInfo ui = GetUser(); return ui != null ? ui.UserName : string.Empty; } set { UserInfo ui = UserInfoProvider.GetUserInfo(value); if (ui != null) { txtUser.Text = ui.UserName; hiddenField.Value = ui.UserName; } } } /// /// ID of the selected user. /// public int SelectedUserID { get { UserInfo ui = GetUser(); return ui != null ? ui.UserID : 0; } set { UserInfo ui = UserInfoProvider.GetUserInfo(value); if (ui != null) { txtUser.Text = ui.UserName; hiddenField.Value = ui.UserName; } else { txtUser.Text = string.Empty; hiddenField.Value = string.Empty; } } } /// /// Visibility of control. /// public override bool Visible { get { if (mVisisble.HasValue) { return mVisisble.Value; } else { return base.Visible; } } set { mVisisble = value; base.Visible = value; } } /// /// Gets textbox with user name. /// public TextBox UserNameTextBox { get { return txtUser; } } #endregion #region "Private methods" /// /// Returns UserInfo object from hidden field value (because readonly textbox). /// private UserInfo GetUser() { // Try to find by username string userName = txtUser.Text.Trim(); if (!string.IsNullOrEmpty(userName)) { return UserInfoProvider.GetUserInfo(txtUser.Text.Trim()); } int userId = ValidationHelper.GetInteger(hiddenField.Value, 0); if (userId > 0) { return UserInfoProvider.GetUserInfo(userId); } return null; } #endregion #region "Page events" protected void Page_Load(object sender, EventArgs e) { if (StopProcessing) { // Do nothing } else { btnSelect.Text = GetString("General.Select"); ScriptHelper.RegisterDialogScript(Page); ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "fillScript", ScriptHelper.GetScript("function FillUserName(userId, mText, mId, mId2) {document.getElementById(mId).value = mText;document.getElementById(mId2).value = userId;}")); string showTab = CMSContext.CurrentUser.IsPublic() ? "Search" : "ContactList"; string query = QueryHelper.BuildQueryWithHash("refresh", "false", "showtab", showTab, "hidid", hiddenField.ClientID, "mid", txtUser.ClientID); string url = CMSContext.ResolveDialogUrl("~/CMSModules/Messaging/Dialogs/MessageUserSelector_Frameset.aspx"); if (IsLiveSite) { if (!CMSContext.CurrentUser.IsPublic()) { url = CMSContext.ResolveDialogUrl("~/CMSModules/Messaging/CMSPages/MessageUserSelector_Frameset.aspx"); } else { url = CMSContext.ResolveDialogUrl("~/CMSModules/Messaging/CMSPages/PublicMessageUserSelector.aspx"); } } btnSelect.OnClientClick = "modalDialog('" + url + query + "','MessageUserSelector',600, 510); return false;"; if (!RequestHelper.IsPostBack()) { txtUser.Text = SelectedUserName; } } } #endregion }