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
}