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;
public partial class CMSModules_Avatars_Controls_AvatarsGallery : CMSAdminEditControl
{
#region "Variables"
private AvatarTypeEnum mAvatarType = AvatarTypeEnum.All;
private int maxSideSize = 100;
public string avatarUrl = null;
#endregion
#region "Public properties"
///
/// Avatar type.
///
public AvatarTypeEnum AvatarType
{
get
{
return mAvatarType;
}
set
{
mAvatarType = value;
}
}
///
/// Indicates if control buttons should be displayed.
///
public bool DisplayButtons
{
get
{
return plcButtons.Visible;
}
set
{
plcButtons.Visible = value;
}
}
#endregion
#region "Events and public methods"
protected void Page_Load(object sender, EventArgs e)
{
ScriptHelper.RegisterWOpenerScript(Page);
// Get resource strings
Page.Title = GetString("avatars.gallery.title");
lblInfo.ResourceString = "avat.noavatarsfound";
// Resolve avatar url
avatarUrl = ResolveUrl("~/CMSModules/Avatars/CMSPages/GetAvatar.aspx?maxsidesize=" + maxSideSize + "&avatarguid=");
avatarUrl = URLHelper.EncodeQueryString(avatarUrl);
// Get avatar type from querystring
string avatarType = QueryHelper.GetString("avatartype", "all");
AvatarType = AvatarInfoProvider.GetAvatarTypeEnum(avatarType);
// Get client ID from querystring
string clientID = QueryHelper.GetString("clientid", String.Empty);
// Avoid XSS injection
if (!ValidationHelper.IsValidClientID(clientID))
{
clientID = String.Empty;
}
// Get all avatars form database
DataSet ds = getAvatars();
if (!DataHelper.DataSourceIsEmpty(ds))
{
repAvatars.DataSource = ds;
repAvatars.DataBind();
pnlAvatars.Visible = true;
}
else
{
lblInfo.Visible = true;
repAvatars.Visible = false;
btnOk.Enabled = false;
}
// Javacript code to mark selected pictures and to fill hidden input value
string avatarScript = ScriptHelper.GetScript(
@"function markImage(id) {
hidden = document.getElementById('" + hiddenAvatarGuid.ClientID + @"');
if( hidden.value != '') {
img = document.getElementById(hidden.value);
img.style.border = '5px solid #FFFFFF' ;
}
img = document.getElementById(id);
img.style.border ='5px solid #A8BACF';
fillHiddenfield(id);
}
function fillHiddenfield(id)
{
hidden = document.getElementById('" + hiddenAvatarGuid.ClientID + @"');
hidden.value = id ;
}");
ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "avatarScript", avatarScript);
// Javacript code which handles window closing and assignment of guid to parent window
string addToHiddenScript = ScriptHelper.GetScript(
@"function CloseAndRefresh() {
if((wopener!=null) && (wopener.UpdateForm!=null))
{
wopener.UpdateForm();
}
CloseDialog();
}
function addToHidden() {
hidden = document.getElementById('" + hiddenAvatarGuid.ClientID + @"');
wopener." + clientID + "updateHidden(hidden.value, '" + clientID + @"');
CloseAndRefresh();
}");
ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "addToHiddenAndClose", addToHiddenScript);
// Setup up buttons click action
btnOk.OnClientClick = "addToHidden()";
btnCancel.OnClientClick = "CloseDialog();";
}
///
/// Creates URL for.
///
/// URL paramater
/// Value
public string CreateUrl(string param, object number)
{
return HTMLHelper.EncodeLinkReference(URLHelper.UpdateParameterInUrl(URLHelper.CurrentURL, param, ValidationHelper.GetString(number, "1")));
}
///
/// Indicates if there are avatars to be displayed.
///
public bool HasData()
{
return repAvatars.HasData();
}
#endregion
#region "Private methods"
///
/// Gets avatars from database.
///
private DataSet getAvatars()
{
// Get the data
int currentPage = QueryHelper.GetInteger("tpage", pgrAvatars.CurrentPage);
int currentGroup = currentPage / pgrAvatars.GroupSize + 1;
int topN = currentGroup * pgrAvatars.GroupSize * pgrAvatars.PageSize + pgrAvatars.PageSize;
// Execute query
DataSet ds = null;
switch (AvatarType)
{
case AvatarTypeEnum.Group:
ds = AvatarInfoProvider.GetAvatars("AvatarName, AvatarGUID", "AvatarType IN ('group','all') AND AvatarIsCustom = 0", null, topN);
break;
case AvatarTypeEnum.User:
ds = AvatarInfoProvider.GetAvatars("AvatarName, AvatarGUID", "AvatarType IN ('user','all') AND AvatarIsCustom = 0", null, topN);
break;
case AvatarTypeEnum.All:
default:
ds = AvatarInfoProvider.GetAvatars("AvatarName, AvatarGUID", "AvatarType = 'all' AND AvatarIsCustom = 0", null, topN);
break;
}
return ds;
}
private void CloseWindow()
{
ltlScript.Text = ScriptHelper.GetScript("addToHidden(); CloseAndRefresh();");
}
#endregion
}