Changes following the mail correspondence with Omar, changing the paging on the

home page of the customer to a dropdownlist.
This commit is contained in:
Christiaan Swiers 2015-01-13 17:39:35 +01:00
parent 9584fb2dd7
commit a810e3c78b
11 changed files with 96 additions and 203 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

View file

@ -162,13 +162,4 @@
<data name="litFileManagerEditableExtensions.Text" xml:space="preserve"> <data name="litFileManagerEditableExtensions.Text" xml:space="preserve">
<value>(One (1) extension per line)</value> <value>(One (1) extension per line)</value>
</data> </data>
<data name="lclPackageDisplaySettings.Text" xml:space="preserve">
<value>Package Display Settings</value>
</data>
<data name="lclPackagePackagesPerPage.Text" xml:space="preserve">
<value>Display packages per page</value>
</data>
<data name="lclPackageUsePaging" xml:space="preserve">
<value>Use paging on package overview</value>
</data>
</root> </root>

View file

@ -181,6 +181,16 @@ namespace WebsitePanel.Portal
return ret; return ret;
} }
public DataSet GetMyPackage(int packageid) {
DataSet ret = new DataSet();
DataTable table = ES.Services.Packages.GetRawMyPackages(PanelSecurity.SelectedUserId).Tables[0];
if(table.Rows.Count > 0) {
DataTable t = table.Select("PackageID = " + packageid).CopyToDataTable();
ret.Tables.Add(t);
}
return ret;
}
#region Packages Paged ODS Methods #region Packages Paged ODS Methods
DataSet dsPackagesPaged; DataSet dsPackagesPaged;

View file

@ -41,22 +41,6 @@
</table> </table>
</asp:Panel> </asp:Panel>
<wsp:CollapsiblePanel id="lclPackageDisplaySettings" runat="server"
TargetControlID="PackageDisplaySettings" meta:resourcekey="lclPackageDisplaySettings" Text="Package Display Settings"/>
<asp:Panel ID="PackageDisplaySettings" runat="server" Height="0" style="overflow:hidden;">
<table>
<tr>
<td class="SubHead" style="width:200px;"><asp:Localize runat="server" meta:resourcekey="lclPackageUsePaging" /></td>
<td><asp:CheckBox runat="server" ID="chkPackageUsePaging" /></td>
</tr>
<tr>
<td class="SubHead" style="width:200px;"><asp:Localize runat="server" meta:resourcekey="lclPackagePackagesPerPage" /></td>
<td><asp:TextBox runat="server" ID="txtPackagePackagesPerPage" Width="80px" /></td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="lclWpiSettings" runat="server" <wsp:CollapsiblePanel id="lclWpiSettings" runat="server"
TargetControlID="WpiPanel" meta:resourcekey="lclWpiSettings" Text="Web Platform Installer Settings"/> TargetControlID="WpiPanel" meta:resourcekey="lclWpiSettings" Text="Web Platform Installer Settings"/>

View file

@ -50,8 +50,6 @@ namespace WebsitePanel.Portal
public const string SMTP_PASSWORD = "SmtpPassword"; public const string SMTP_PASSWORD = "SmtpPassword";
public const string SMTP_ENABLE_SSL = "SmtpEnableSsl"; public const string SMTP_ENABLE_SSL = "SmtpEnableSsl";
public const string BACKUPS_PATH = "BackupsPath"; public const string BACKUPS_PATH = "BackupsPath";
public const string PACKAGE_USE_PAGING = "PackageUsePaging";
public const string PACKAGES_PER_PAGE = "PackagesPerPage";
public const string FILE_MANAGER_EDITABLE_EXTENSIONS = "EditableExtensions"; public const string FILE_MANAGER_EDITABLE_EXTENSIONS = "EditableExtensions";
/* /*
@ -97,16 +95,7 @@ namespace WebsitePanel.Portal
txtBackupsPath.Text = settings["BackupsPath"]; txtBackupsPath.Text = settings["BackupsPath"];
} }
// PACKAGE DISPLAY
settings = ES.Services.System.GetSystemSettings(
WSP.SystemSettings.PACKAGE_DISPLAY_SETTINGS);
if(settings != null)
{
chkPackageUsePaging.Checked = Utils.ParseBool(settings[PACKAGE_USE_PAGING], false);
txtPackagePackagesPerPage.Text = settings[PACKAGES_PER_PAGE];
}
// WPI // WPI
settings = ES.Services.System.GetSystemSettings(WSP.SystemSettings.WPI_SETTINGS); settings = ES.Services.System.GetSystemSettings(WSP.SystemSettings.WPI_SETTINGS);
@ -185,17 +174,6 @@ namespace WebsitePanel.Portal
return; return;
} }
settings = new WSP.SystemSettings();
settings[PACKAGE_USE_PAGING] = chkPackageUsePaging.Checked.ToString();
settings[PACKAGES_PER_PAGE] = txtPackagePackagesPerPage.Text;
result = ES.Services.System.SetSystemSettings(
WSP.SystemSettings.PACKAGE_DISPLAY_SETTINGS, settings);
if(result < 0) {
ShowResultMessage(result);
return;
}
// WPI // WPI

View file

@ -111,42 +111,6 @@ namespace WebsitePanel.Portal {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtBackupsPath; protected global::System.Web.UI.WebControls.TextBox txtBackupsPath;
/// <summary>
/// lclPackageDisplaySettings control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel lclPackageDisplaySettings;
/// <summary>
/// PackageDisplaySettings control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel PackageDisplaySettings;
/// <summary>
/// chkPackageUsePaging control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CheckBox chkPackageUsePaging;
/// <summary>
/// txtPackagePackagesPerPage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtPackagePackagesPerPage;
/// <summary> /// <summary>
/// lclWpiSettings control. /// lclWpiSettings control.
/// </summary> /// </summary>

View file

@ -5,69 +5,66 @@
<%@ Register Src="UserOrganization.ascx" TagName="UserOrganization" TagPrefix="wsp" %> <%@ Register Src="UserOrganization.ascx" TagName="UserOrganization" TagPrefix="wsp" %>
<%@ Import Namespace="WebsitePanel.Portal" %> <%@ Import Namespace="WebsitePanel.Portal" %>
<script src="/JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="/JavaScript/chosen.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$(".chosen-select").chosen({ width: "200px" });
});
</script>
<asp:Panel id="ButtonsPanel" runat="server" class="FormButtonsBar UserSpaces"> <asp:Panel id="ButtonsPanel" runat="server" class="FormButtonsBar UserSpaces">
<asp:Button ID="btnAddItem" runat="server" meta:resourcekey="btnAddItem" Text="Create Hosting Space" CssClass="Button3" OnClick="btnAddItem_Click" /> <asp:Button ID="btnAddItem" runat="server" meta:resourcekey="btnAddItem" Text="Create Hosting Space" CssClass="Button3" OnClick="btnAddItem_Click" />
</asp:Panel> </asp:Panel>
<asp:Panel ID="UserPackagesPanel" runat="server" Visible="false"> <asp:Panel ID="UserPackagesPanel" runat="server" Visible="false">
<asp:Repeater ID="PackagesList" runat="server" EnableViewState="false"> <div class="IconsBlock">
<ItemTemplate> <div class="IconsTitle">
<div class="IconsBlock"> <asp:DropDownList ID="ddlPackageSelect" OnSelectedIndexChanged="openSelectedPackage" AutoPostBack="true" CssClass="chosen-select" runat="server" Visible="false" />
<div class="IconsTitle"> </div>
<asp:hyperlink id="lnkEdit" runat="server" NavigateUrl='<%# GetSpaceHomePageUrl((int)Eval("PackageID")) %>'> <asp:Repeater ID="PackagesList" runat="server" EnableViewState="false">
<%# Eval("PackageName") %> <ItemTemplate>
</asp:hyperlink> <div>
</div> <asp:Repeater ID="PackageGroups" runat="server" DataSource='<%# GetIconsDataSource((int)Eval("PackageID")) %>' >
<div> <ItemTemplate>
<asp:Repeater ID="PackageGroups" runat="server" DataSource='<%# GetIconsDataSource((int)Eval("PackageID")) %>' > <asp:Label ID="lblGroup" runat="server" CssClass="LinkText" Text='<%# Eval("Text") %>' />
<ItemTemplate>
<asp:Label ID="lblGroup" runat="server" CssClass="LinkText" Text='<%# Eval("Text") %>' /> <asp:DataList ID="PackageIcons" runat="server" DataSource='<%# GetIconMenuItems(Eval("ChildItems")) %>'
CellSpacing="1" RepeatColumns="5" RepeatDirection="Horizontal">
<ItemTemplate>
<asp:Panel ID="IconPanel" runat="server" CssClass="Icon">
<asp:HyperLink ID="imgLink" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><asp:Image ID="imgIcon" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' /></asp:HyperLink>
<br />
<asp:HyperLink ID="lnkIcon" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><%# Eval("Text") %></asp:HyperLink>
</asp:Panel>
<asp:Panel ID="IconMenu" runat="server" CssClass="IconMenu" Visible='<%# IsIconMenuVisible(Eval("ChildItems")) %>'>
<ul>
<asp:Repeater ID="MenuItems" runat="server" DataSource='<%# GetIconMenuItems(Eval("ChildItems")) %>'>
<ItemTemplate>
<li><asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><%# Eval("Text") %></asp:HyperLink></li>
</ItemTemplate>
</asp:Repeater>
</ul>
</asp:Panel>
<ajaxToolkit:HoverMenuExtender TargetControlID="IconPanel" PopupControlID="IconMenu" runat="server"
PopupPosition="Right" HoverCssClass="Icon Hover"></ajaxToolkit:HoverMenuExtender>
</ItemTemplate>
</asp:DataList>
<asp:DataList ID="PackageIcons" runat="server" DataSource='<%# GetIconMenuItems(Eval("ChildItems")) %>' </ItemTemplate>
CellSpacing="1" RepeatColumns="5" RepeatDirection="Horizontal"> </asp:Repeater>
<ItemTemplate>
<asp:Panel ID="IconPanel" runat="server" CssClass="Icon">
<asp:HyperLink ID="imgLink" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><asp:Image ID="imgIcon" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' /></asp:HyperLink>
<br />
<asp:HyperLink ID="lnkIcon" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><%# Eval("Text") %></asp:HyperLink>
</asp:Panel>
<asp:Panel ID="IconMenu" runat="server" CssClass="IconMenu" Visible='<%# IsIconMenuVisible(Eval("ChildItems")) %>'>
<ul>
<asp:Repeater ID="MenuItems" runat="server" DataSource='<%# GetIconMenuItems(Eval("ChildItems")) %>'>
<ItemTemplate>
<li><asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><%# Eval("Text") %></asp:HyperLink></li>
</ItemTemplate>
</asp:Repeater>
</ul>
</asp:Panel>
<ajaxToolkit:HoverMenuExtender TargetControlID="IconPanel" PopupControlID="IconMenu" runat="server"
PopupPosition="Right" HoverCssClass="Icon Hover"></ajaxToolkit:HoverMenuExtender>
</ItemTemplate>
</asp:DataList>
</ItemTemplate> </div>
</asp:Repeater> <asp:Panel ID="OrgPanel" runat="server" Visible='<%# IsOrgPanelVisible((int)Eval("PackageID")) %>'>
<wsp:UserOrganization ID="UserOrganization" runat="server" PackageId='<%# (int)Eval("PackageID") %>' />
</div> </asp:Panel>
</div> </ItemTemplate>
<asp:Panel ID="OrgPanel" runat="server" Visible='<%# IsOrgPanelVisible((int)Eval("PackageID")) %>'> </asp:Repeater>
<wsp:UserOrganization ID="UserOrganization" runat="server" PackageId='<%# (int)Eval("PackageID") %>' /> </div>
</asp:Panel>
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="packagePaging" runat="server" Visible="false">
<ItemTemplate>
<asp:LinkButton ID="lnkPage" runat="server" Text='<%#Eval("Text") %>' CommandArgument='<%# Eval("Value") %>'
CssClass='<%# (Convert.ToBoolean(Eval("Enabled"))) ? "pageBlock" : "activePageBlock" %>'
OnClick="Page_Changed" OnClientClick='<%# !Convert.ToBoolean(Eval("Enabled")) ? "return false;" : "" %>'>
</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
<asp:Panel ID="EmptyPackagesList" runat="server" Visible="false" CssClass="FormBody"> <asp:Panel ID="EmptyPackagesList" runat="server" Visible="false" CssClass="FormBody">
<asp:Literal ID="litEmptyList" runat="server" EnableViewState="false"></asp:Literal> <asp:Literal ID="litEmptyList" runat="server" EnableViewState="false"></asp:Literal>
</asp:Panel> </asp:Panel>

View file

@ -47,22 +47,10 @@ namespace WebsitePanel.Portal
public partial class UserSpaces : WebsitePanelModuleBase public partial class UserSpaces : WebsitePanelModuleBase
{ {
XmlNodeList xmlIcons = null; XmlNodeList xmlIcons = null;
DataSet myPackages;
bool UsePaging = false;
int PackagesPerPage;
int currentPage = 1;
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
// PACKAGE DISPLAY SETTINGS
WSP.SystemSettings settings = ES.Services.System.GetSystemSettings(
WSP.SystemSettings.PACKAGE_DISPLAY_SETTINGS);
if(Utils.ParseBool(settings[SystemSettings.PACKAGE_USE_PAGING], false))
{
UsePaging = true;
PackagesPerPage = Utils.ParseInt(settings[SystemSettings.PACKAGES_PER_PAGE]);
}
// check for user // check for user
bool isUser = PanelSecurity.SelectedUser.Role == UserRole.User; bool isUser = PanelSecurity.SelectedUser.Role == UserRole.User;
@ -70,25 +58,28 @@ namespace WebsitePanel.Portal
xmlIcons = this.Module.SelectNodes("Group"); xmlIcons = this.Module.SelectNodes("Group");
if (isUser && xmlIcons != null) if (isUser && xmlIcons != null)
{ {
if(!IsPostBack)
{
myPackages = new PackagesHelper().GetMyPackages();
ddlPackageSelect.DataSource = myPackages.Tables[0].DefaultView;
ddlPackageSelect.DataTextField = myPackages.Tables[0].Columns[2].ColumnName;
ddlPackageSelect.DataValueField = myPackages.Tables[0].Columns[0].ColumnName;
ddlPackageSelect.DataBind();
}
// USER // USER
UserPackagesPanel.Visible = true; UserPackagesPanel.Visible = true;
if(!UsePaging) if(!IsPostBack)
{ {
PackagesList.DataSource = new PackagesHelper().GetMyPackages(); if(ddlPackageSelect.Items.Count == 0) {
PackagesList.DataBind();
if (PackagesList.Items.Count == 0)
{
litEmptyList.Text = GetLocalizedString("gvPackages.Empty"); litEmptyList.Text = GetLocalizedString("gvPackages.Empty");
EmptyPackagesList.Visible = true; EmptyPackagesList.Visible = true;
} } else {
} ddlPackageSelect.Visible = true;
else myPackages = new PackagesHelper().GetMyPackage(int.Parse(ddlPackageSelect.SelectedValue));
{ PackagesList.DataSource = myPackages;
if(!IsPostBack) PackagesList.DataBind();
{
ListPackagesWithPaging();
packagePaging.Visible = true;
} }
} }
} }
@ -248,35 +239,9 @@ namespace WebsitePanel.Portal
return node.Attributes[name] != null ? node.Attributes[name].Value : null; return node.Attributes[name] != null ? node.Attributes[name].Value : null;
} }
private void ListPackagesWithPaging() public void openSelectedPackage(Object sender, EventArgs e) {
{ PackagesList.DataSource = new PackagesHelper().GetMyPackage(int.Parse(ddlPackageSelect.SelectedValue));
Hashtable ht = new PackagesHelper().GetMyPackages(currentPage, PackagesPerPage);
PackagesList.DataSource = ht["DataSet"];
PackagesList.DataBind(); PackagesList.DataBind();
if(PackagesList.Items.Count == 0) {
litEmptyList.Text = GetLocalizedString("gvPackages.Emtpy");
EmptyPackagesList.Visible = true;
}
else
{
int pageCount = (int)Math.Ceiling(Convert.ToDecimal(ht["RowCount"]) / Convert.ToDecimal(PackagesPerPage));
List<ListItem> pages = new List<ListItem>();
if(pageCount > 0)
{
for(int i = 1; i <= pageCount; i++)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage));
}
}
packagePaging.DataSource = pages;
packagePaging.DataBind();
}
}
public void Page_Changed(Object sender, EventArgs e)
{
currentPage = Utils.ParseInt(((LinkButton)sender).CommandArgument);
ListPackagesWithPaging();
} }
} }
} }

View file

@ -39,6 +39,15 @@ namespace WebsitePanel.Portal {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Panel UserPackagesPanel; protected global::System.Web.UI.WebControls.Panel UserPackagesPanel;
/// <summary>
/// ddlPackageSelect control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlPackageSelect;
/// <summary> /// <summary>
/// PackagesList control. /// PackagesList control.
/// </summary> /// </summary>
@ -48,15 +57,6 @@ namespace WebsitePanel.Portal {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Repeater PackagesList; protected global::System.Web.UI.WebControls.Repeater PackagesList;
/// <summary>
/// packagePaging control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Repeater packagePaging;
/// <summary> /// <summary>
/// EmptyPackagesList control. /// EmptyPackagesList control.
/// </summary> /// </summary>

File diff suppressed because one or more lines are too long