From 12725bbbf6db75c6ab69acca926f90df5a1d2611 Mon Sep 17 00:00:00 2001 From: Christiaan Swiers Date: Mon, 5 Jan 2015 16:41:30 +0100 Subject: [PATCH 01/24] wsp-10294 In System settings added option to configure the paging. Enable/ disable and the amount of packages per page. At the home page of a customer the paging itself has been added as well. --- WebsitePanel/Sources/VersionInfo.cs | 30 +------- WebsitePanel/Sources/VersionInfo.vb | 10 +-- .../System/SystemSettings.cs | 3 +- .../App_Themes/Default/Styles/Skin.css | 5 +- .../SystemSettings.ascx.resx | 9 +++ .../Code/Helpers/PackagesHelper.cs | 17 +++++ .../WebsitePanel/SystemSettings.ascx | 16 +++++ .../WebsitePanel/SystemSettings.ascx.cs | 23 +++++++ .../SystemSettings.ascx.designer.cs | 64 +++++++++-------- .../WebsitePanel/UserSpaces.ascx | 8 +++ .../WebsitePanel/UserSpaces.ascx.cs | 69 +++++++++++++++++-- .../WebsitePanel/UserSpaces.ascx.designer.cs | 9 +++ 12 files changed, 192 insertions(+), 71 deletions(-) diff --git a/WebsitePanel/Sources/VersionInfo.cs b/WebsitePanel/Sources/VersionInfo.cs index eafbfbf3..df25dde8 100644 --- a/WebsitePanel/Sources/VersionInfo.cs +++ b/WebsitePanel/Sources/VersionInfo.cs @@ -1,35 +1,7 @@ -// Copyright (c) 2014, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.18051 +// Runtime Version:4.0.30319.34014 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. diff --git a/WebsitePanel/Sources/VersionInfo.vb b/WebsitePanel/Sources/VersionInfo.vb index bf02a9da..d14bcc16 100644 --- a/WebsitePanel/Sources/VersionInfo.vb +++ b/WebsitePanel/Sources/VersionInfo.vb @@ -1,7 +1,7 @@ '------------------------------------------------------------------------------ ' ' This code was generated by a tool. -' Runtime Version:4.0.30319.18051 +' Runtime Version:4.0.30319.34014 ' ' Changes to this file may cause incorrect behavior and will be lost if ' the code is regenerated. @@ -15,9 +15,9 @@ Imports System Imports System.Reflection Imports System.Runtime.CompilerServices Imports System.Runtime.InteropServices - diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/System/SystemSettings.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/System/SystemSettings.cs index 14cd1dfe..5375fd69 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/System/SystemSettings.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/System/SystemSettings.cs @@ -43,7 +43,8 @@ namespace WebsitePanel.EnterpriseServer public const string SETUP_SETTINGS = "SetupSettings"; public const string WPI_SETTINGS = "WpiSettings"; public const string FILEMANAGER_SETTINGS = "FileManagerSettings"; - + public const string PACKAGE_DISPLAY_SETTINGS = "PackageDisplaySettings"; + // key to access to wpi main & custom feed in wpi settings public const string WPI_MAIN_FEED_KEY = "WpiMainFeedUrl"; public const string FEED_ULS_KEY = "FeedUrls"; diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css index 36f2ac89..dc9bab11 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css @@ -293,4 +293,7 @@ UL.ActionButtons LI {margin-bottom: 12px;} p.warningText {font-size:14px; color:Red; text-align:center;} .Hidden {display: none;} .LinkText {color:#428bca;} -.WrapText { white-space: normal;} \ No newline at end of file +.WrapText { white-space: normal;} +.activePageBlock, .pageBlock { display: inline-block; height: 24px; margin: 0 2px; width: 26px; font-size: 11px; line-height: 23px; text-align: center; white-space:nowrap; } +.activePageBlock { border: none; color: #222; font-weight: 600; } +.pageBlock { border: 1px solid #e6e6e6; border-radius: 1px; cursor: pointer; } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SystemSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SystemSettings.ascx.resx index d0dd8013..4c601438 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SystemSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SystemSettings.ascx.resx @@ -162,4 +162,13 @@ (One (1) extension per line) + + Package Display Settings + + + Display packages per page + + + Use paging on package overview + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs index a4c7f180..328a1b07 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs @@ -28,12 +28,14 @@ using System; using System.Data; +using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Caching; using WebsitePanel.EnterpriseServer; +using System.Collections; namespace WebsitePanel.Portal { @@ -162,6 +164,21 @@ namespace WebsitePanel.Portal return ES.Services.Packages.GetRawMyPackages(PanelSecurity.SelectedUserId); } + public Hashtable GetMyPackages(int index, int PackagesPerPage) + { + Hashtable ret = new Hashtable(); + + DataTable table = ES.Services.Packages.GetRawMyPackages(PanelSecurity.SelectedUserId).Tables[0]; + System.Collections.Generic.IEnumerable dr = table.AsEnumerable().Skip(PackagesPerPage * index - PackagesPerPage).Take(PackagesPerPage); + + DataSet set = new DataSet(); + set.Tables.Add(dr.CopyToDataTable()); + + ret.Add("DataSet", set); + ret.Add("RowCount", table.Rows.Count); + return ret; + } + #region Packages Paged ODS Methods DataSet dsPackagesPaged; diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx index 24542dbe..c222013d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx @@ -41,6 +41,22 @@ + + + + + + + + + + + + +
+
+ diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.cs index 151adbf9..e26e82a9 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.cs @@ -50,6 +50,8 @@ namespace WebsitePanel.Portal public const string SMTP_PASSWORD = "SmtpPassword"; public const string SMTP_ENABLE_SSL = "SmtpEnableSsl"; 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"; /* @@ -95,6 +97,15 @@ namespace WebsitePanel.Portal 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 settings = ES.Services.System.GetSystemSettings(WSP.SystemSettings.WPI_SETTINGS); @@ -174,6 +185,18 @@ namespace WebsitePanel.Portal 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 /* diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs index b5894df1..cb3bf389 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs @@ -1,31 +1,3 @@ -// Copyright (c) 2014, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -139,6 +111,42 @@ namespace WebsitePanel.Portal { /// protected global::System.Web.UI.WebControls.TextBox txtBackupsPath; + /// + /// lclPackageDisplaySettings control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel lclPackageDisplaySettings; + + /// + /// PackageDisplaySettings control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel PackageDisplaySettings; + + /// + /// chkPackageUsePaging control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox chkPackageUsePaging; + + /// + /// txtPackagePackagesPerPage control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtPackagePackagesPerPage; + /// /// lclWpiSettings control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx index de03cce4..67162da1 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx @@ -60,6 +60,14 @@ + + + + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs index 849ec12e..6ba28a05 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs @@ -36,6 +36,7 @@ using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; +using WSP = WebsitePanel.EnterpriseServer; using WebsitePanel.EnterpriseServer; using System.Xml; @@ -47,8 +48,21 @@ namespace WebsitePanel.Portal { XmlNodeList xmlIcons = null; + bool UsePaging = false; + int PackagesPerPage; + int currentPage = 1; + 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 bool isUser = PanelSecurity.SelectedUser.Role == UserRole.User; @@ -56,16 +70,26 @@ namespace WebsitePanel.Portal xmlIcons = this.Module.SelectNodes("Group"); if (isUser && xmlIcons != null) - { + { // USER UserPackagesPanel.Visible = true; - PackagesList.DataSource = new PackagesHelper().GetMyPackages(); - PackagesList.DataBind(); - - if (PackagesList.Items.Count == 0) + if(!UsePaging) + { + PackagesList.DataSource = new PackagesHelper().GetMyPackages(); + PackagesList.DataBind(); + if (PackagesList.Items.Count == 0) + { + litEmptyList.Text = GetLocalizedString("gvPackages.Empty"); + EmptyPackagesList.Visible = true; + } + } + else { - litEmptyList.Text = GetLocalizedString("gvPackages.Empty"); - EmptyPackagesList.Visible = true; + if(!IsPostBack) + { + ListPackagesWithPaging(); + packagePaging.Visible = true; + } } } else @@ -223,5 +247,36 @@ namespace WebsitePanel.Portal { return node.Attributes[name] != null ? node.Attributes[name].Value : null; } + + private void ListPackagesWithPaging() + { + Hashtable ht = new PackagesHelper().GetMyPackages(currentPage, PackagesPerPage); + PackagesList.DataSource = ht["DataSet"]; + 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 pages = new List(); + 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(); + } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.designer.cs index cc9a065a..7b9b8440 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.designer.cs @@ -48,6 +48,15 @@ namespace WebsitePanel.Portal { /// protected global::System.Web.UI.WebControls.Repeater PackagesList; + /// + /// packagePaging control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Repeater packagePaging; + /// /// EmptyPackagesList control. /// From c32aafcaac0d002487b40859a631d86e3f488603 Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Tue, 6 Jan 2015 05:58:18 -0800 Subject: [PATCH 02/24] Domain expiration sub domain fix --- .../SchedulerTasks/DomainExpirationTask.cs | 13 ++++++------- .../Servers/ServerController.cs | 2 ++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs index b6c9c613..5ca21217 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2015, Outercurve Foundation. +// Copyright (c) 2015, Outercurve Foundation. // All rights reserved. // // Redistribution and use in source and binary forms, with or without modification, @@ -57,7 +57,7 @@ namespace WebsitePanel.EnterpriseServer { BackgroundTask topTask = TaskManager.TopTask; var domainUsers = new Dictionary(); - var checkedDomains = new List(); + var checkedDomains = new List(); var expiredDomains = new List(); var nonExistenDomains = new List(); var allDomains = new List(); @@ -101,12 +101,12 @@ namespace WebsitePanel.EnterpriseServer foreach (var domain in domains) { - if (checkedDomains.Contains(domain.DomainId)) + if (checkedDomains.Any(x=> x.DomainId == domain.DomainId)) { continue; } - checkedDomains.Add(domain.DomainId); + checkedDomains.Add(domain); ServerController.UpdateDomainWhoisData(domain); @@ -124,12 +124,11 @@ namespace WebsitePanel.EnterpriseServer } } - var subDomains = allDomains.Where(x => x.ExpirationDate == null || CheckDomainExpiration(x.ExpirationDate, daysBeforeNotify)).GroupBy(p => p.DomainId).Select(g => g.First()).ToList(); - allTopLevelDomains = allTopLevelDomains.GroupBy(p => p.DomainId).Select(g => g.First()).ToList(); + var subDomains = allDomains.Where(x => !checkedDomains.Any(z => z.DomainId == x.DomainId)).GroupBy(p => p.DomainId).Select(g => g.First()).ToList(); foreach (var subDomain in subDomains) { - var mainDomain = allTopLevelDomains.Where(x => subDomain.DomainId != x.DomainId && subDomain.DomainName.ToLowerInvariant().Contains(x.DomainName.ToLowerInvariant())).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ; + var mainDomain = checkedDomains.Where(x => subDomain.DomainId != x.DomainId && subDomain.DomainName.ToLowerInvariant().Contains(x.DomainName.ToLowerInvariant())).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ; if (mainDomain != null) { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs index d0d17ade..c9aec104 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs @@ -2709,6 +2709,7 @@ namespace WebsitePanel.EnterpriseServer domain.CreationDate = ParseDate(creationDateString); domain.ExpirationDate = ParseDate(expirationDateString); domain.RegistrarName = ParseWhoisDomainInfo(whoisResult.Raw, _registrarNamePatterns); + domain.LastUpdateDate = DateTime.Now; DataProvider.UpdateWhoisDomainInfo(domain.DomainId, domain.CreationDate, domain.ExpirationDate, DateTime.Now, domain.RegistrarName); } @@ -2727,6 +2728,7 @@ namespace WebsitePanel.EnterpriseServer domain.CreationDate = creationDate; domain.ExpirationDate = expirationDate; domain.RegistrarName = registrarName; + domain.LastUpdateDate = DateTime.Now; return domain; } From 8f31f63054df3778ec73978a12fbee2f43ccee1c Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Tue, 6 Jan 2015 06:17:11 -0800 Subject: [PATCH 03/24] Domain expiration task subdomains fix --- .../SchedulerTasks/DomainExpirationTask.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs index 5ca21217..be4f50a3 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs @@ -124,7 +124,7 @@ namespace WebsitePanel.EnterpriseServer } } - var subDomains = allDomains.Where(x => !checkedDomains.Any(z => z.DomainId == x.DomainId)).GroupBy(p => p.DomainId).Select(g => g.First()).ToList(); + var subDomains = allDomains.Where(x => !checkedDomains.Any(z => z.DomainId == x.DomainId && z.ExpirationDate != null)).GroupBy(p => p.DomainId).Select(g => g.First()).ToList(); foreach (var subDomain in subDomains) { From e9461911ec3167a558d4e538614dd88ac22650f2 Mon Sep 17 00:00:00 2001 From: Olov Karlsson Date: Tue, 6 Jan 2015 15:43:30 +0100 Subject: [PATCH 04/24] Importing a zone now also imports secondary zone(s), wsp-10290 --- .../DnsServers/DnsServerController.cs | 51 ++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs index 8ee4d12a..039c3473 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs @@ -392,13 +392,62 @@ namespace WebsitePanel.EnterpriseServer if (itemType == typeof(DnsZone)) { + // Get ascii form in punycode + var zoneName = GetAsciiZoneName(itemName); + // add DNS zone DnsZone zone = new DnsZone(); - zone.Name = GetAsciiZoneName(itemName); + zone.Name = zoneName; zone.ServiceId = serviceId; zone.PackageId = packageId; int zoneId = PackageController.AddPackageItem(zone); + // Add secondary zone(s) + try + { + // get secondary DNS services + var primSettings = ServerController.GetServiceSettings(serviceId); + var secondaryServiceIds = new List(); + var strSecondaryServices = primSettings["SecondaryDNSServices"]; + if (!String.IsNullOrEmpty(strSecondaryServices)) + { + var secondaryServices = strSecondaryServices.Split(','); + secondaryServiceIds.AddRange(secondaryServices.Select(strSecondaryId => Utils.ParseInt(strSecondaryId, 0)).Where(secondaryId => secondaryId != 0)); + } + + // add secondary zones + var secondaryZoneFound = false; + + foreach (var secondaryId in secondaryServiceIds) + { + var secDns = GetDNSServer(secondaryId); + if (secDns.ZoneExists(zoneName)) + { + secondaryZoneFound = true; + + var secondaryZone = new SecondaryDnsZone + { + Name = zoneName, + ServiceId = secondaryId, + PackageId = packageId + }; + + PackageController.AddPackageItem(secondaryZone); + } + } + + if (!secondaryZoneFound) + { + TaskManager.WriteWarning("No secondary zone(s) found when importing zone " + itemName); + } + + } + catch (Exception ex) + { + TaskManager.WriteError(ex, "Error importing secondary zone(s)"); + } + + // add/update domains/pointers RestoreDomainByZone(itemName, packageId, zoneId); } From 5564412dab67b2505fc94db4b6311896c39237a8 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Tue, 6 Jan 2015 10:43:25 -0500 Subject: [PATCH 05/24] Added tag build-2.1.0.524 for changeset 524dcc89aa08 From ce78fc421e5c70573555469d782e20d641f9b0ac Mon Sep 17 00:00:00 2001 From: dev_amdtel Date: Wed, 7 Jan 2015 17:31:39 +0400 Subject: [PATCH 06/24] fix Disk Space Report. part 1 --- WebsitePanel/Database/update_db.sql | 41 ++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index d51e0c93..5fb9d203 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -7412,4 +7412,43 @@ LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID RETURN -GO \ No newline at end of file +GO + +-- fix Disk Space Report + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetPackageDiskspace') +DROP PROCEDURE GetPackageDiskspace +GO + +CREATE PROCEDURE [dbo].[GetPackageDiskspace] +( + @ActorID int, + @PackageID int +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +SELECT + RG.GroupID, + RG.GroupName, + ROUND(CONVERT(float, ISNULL(GD.Diskspace, 0)) / 1024 / 1024, 0) AS Diskspace, + ISNULL(GD.Diskspace, 0) AS DiskspaceBytes +FROM ResourceGroups AS RG +LEFT OUTER JOIN +( + SELECT + PD.GroupID, + SUM(ISNULL(PD.DiskSpace, 0)) AS Diskspace -- in megabytes + FROM PackagesTreeCache AS PT + INNER JOIN PackagesDiskspace AS PD ON PT.PackageID = PD.PackageID + INNER JOIN Packages AS P ON PT.PackageID = P.PackageID + WHERE PT.ParentPackageID = @PackageID + GROUP BY PD.GroupID +) AS GD ON RG.GroupID = GD.GroupID +WHERE GD.Diskspace <> 0 +ORDER BY RG.GroupOrder + +RETURN From 9a3609fcbcd4a5505705d56bcf9aa846035de5cf Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Wed, 7 Jan 2015 08:50:45 -0500 Subject: [PATCH 07/24] Added tag build-2.1.0.525 for changeset 522b3e8c5ceb From c341c7f58e4640d82fd884aae4ab2ea737040494 Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Sat, 10 Jan 2015 05:54:31 -0800 Subject: [PATCH 08/24] Checking RDS servers in existing collections by powershell --- .../RemoteDesktopServicesProxy.cs | 13 ++- .../RemoteDesktopServicesController.cs | 21 ++-- .../esRemoteDesktopServices.asmx.cs | 4 +- .../IRemoteDesktopServices.cs | 1 + .../Windows2012.cs | 100 +++++++++++++++++- .../RemoteDesktopServicesProxy.cs | 70 ++++++++++++ .../RemoteDesktopServices.asmx.cs | 17 +++ .../WebsitePanel_SharedResources.ascx.resx | 3 + .../WebsitePanel/Code/Helpers/RDSHelper.cs | 4 +- .../WebsitePanel/RDS/AddRDSServer.ascx.cs | 2 +- .../RDS/RDSCreateCollection.ascx.cs | 13 ++- 11 files changed, 226 insertions(+), 22 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs index 8b6f1e32..fee2d2d2 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs @@ -515,8 +515,9 @@ namespace WebsitePanel.EnterpriseServer { /// [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetFreeRdsServersPaged", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public RdsServersPaged GetFreeRdsServersPaged(string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) { + public RdsServersPaged GetFreeRdsServersPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) { object[] results = this.Invoke("GetFreeRdsServersPaged", new object[] { + packageId, filterColumn, filterValue, sortColumn, @@ -526,8 +527,9 @@ namespace WebsitePanel.EnterpriseServer { } /// - public System.IAsyncResult BeginGetFreeRdsServersPaged(string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, System.AsyncCallback callback, object asyncState) { + public System.IAsyncResult BeginGetFreeRdsServersPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("GetFreeRdsServersPaged", new object[] { + packageId, filterColumn, filterValue, sortColumn, @@ -542,16 +544,17 @@ namespace WebsitePanel.EnterpriseServer { } /// - public void GetFreeRdsServersPagedAsync(string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) { - this.GetFreeRdsServersPagedAsync(filterColumn, filterValue, sortColumn, startRow, maximumRows, null); + public void GetFreeRdsServersPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) { + this.GetFreeRdsServersPagedAsync(packageId, filterColumn, filterValue, sortColumn, startRow, maximumRows, null); } /// - public void GetFreeRdsServersPagedAsync(string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, object userState) { + public void GetFreeRdsServersPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, object userState) { if ((this.GetFreeRdsServersPagedOperationCompleted == null)) { this.GetFreeRdsServersPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFreeRdsServersPagedOperationCompleted); } this.InvokeAsync("GetFreeRdsServersPaged", new object[] { + packageId, filterColumn, filterValue, sortColumn, diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs index 3179899a..e0bbf5b9 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs @@ -93,9 +93,9 @@ namespace WebsitePanel.EnterpriseServer return GetRdsServersPagedInternal(filterColumn, filterValue, sortColumn, startRow, maximumRows); } - public static RdsServersPaged GetFreeRdsServersPaged(string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) + public static RdsServersPaged GetFreeRdsServersPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) { - return GetFreeRdsServersPagedInternal(filterColumn, filterValue, sortColumn, startRow, maximumRows); + return GetFreeRdsServersPagedInternal(packageId, filterColumn, filterValue, sortColumn, startRow, maximumRows); } public static RdsServersPaged GetOrganizationRdsServersPaged(int itemId, int? collectionId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) @@ -477,17 +477,26 @@ namespace WebsitePanel.EnterpriseServer return result; } - private static RdsServersPaged GetFreeRdsServersPagedInternal(string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) + private static RdsServersPaged GetFreeRdsServersPagedInternal(int itemId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) { - DataSet ds = DataProvider.GetRDSServersPaged(null, null, filterColumn, filterValue, sortColumn, startRow, maximumRows); - RdsServersPaged result = new RdsServersPaged(); + Organization org = OrganizationController.GetOrganization(itemId); + + if (org == null) + { + return result; + } + + var rds = GetRemoteDesktopServices(GetRemoteDesktopServiceID(org.PackageId)); + var existingServers = rds.GetServersExistingInCollections(); + + DataSet ds = DataProvider.GetRDSServersPaged(null, null, filterColumn, filterValue, sortColumn, startRow, maximumRows); result.RecordsCount = (int)ds.Tables[0].Rows[0][0]; List tmpServers = new List(); ObjectUtils.FillCollectionFromDataView(tmpServers, ds.Tables[1].DefaultView); - + tmpServers = tmpServers.Where(x => !existingServers.Select(y => y.ToUpper()).Contains(x.FqdName.ToUpper())).ToList(); result.Servers = tmpServers.ToArray(); return result; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs index f05d3ca3..4323237f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs @@ -99,10 +99,10 @@ namespace WebsitePanel.EnterpriseServer } [WebMethod] - public RdsServersPaged GetFreeRdsServersPaged(string filterColumn, string filterValue, + public RdsServersPaged GetFreeRdsServersPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) { - return RemoteDesktopServicesController.GetFreeRdsServersPaged(filterColumn, filterValue, + return RemoteDesktopServicesController.GetFreeRdsServersPaged(packageId, filterColumn, filterValue, sortColumn, startRow, maximumRows); } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/IRemoteDesktopServices.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/IRemoteDesktopServices.cs index acb3cc5d..2a9800fc 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/IRemoteDesktopServices.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/IRemoteDesktopServices.cs @@ -64,5 +64,6 @@ namespace WebsitePanel.Providers.RemoteDesktopServices string[] GetApplicationUsers(string collectionName, string applicationName); bool SetApplicationUsers(string collectionName, RemoteApplication remoteApp, string[] users); bool CheckRDSServerAvaliable(string hostname); + List GetServersExistingInCollections(); } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs index 77fe591f..bfb230f0 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs @@ -220,7 +220,15 @@ namespace WebsitePanel.Providers.RemoteDesktopServices try { - runSpace = OpenRunspace(); + runSpace = OpenRunspace(); + + var existingServers = GetServersExistingInCollections(runSpace); + existingServers = existingServers.Select(x => x.ToUpper()).Intersect(collection.Servers.Select(x => x.FqdName.ToUpper())).ToList(); + + if (existingServers.Any()) + { + throw new Exception(string.Format("Server{0} {1} already added to another collection", existingServers.Count == 1 ? "" : "s", string.Join(" ,", existingServers.ToArray()))); + } foreach (var server in collection.Servers) { @@ -302,6 +310,24 @@ namespace WebsitePanel.Providers.RemoteDesktopServices return result; } + public List GetServersExistingInCollections() + { + Runspace runSpace = null; + List existingServers = new List(); + + try + { + runSpace = OpenRunspace(); + existingServers = GetServersExistingInCollections(runSpace); + } + finally + { + CloseRunspace(runSpace); + } + + return existingServers; + } + public RdsCollection GetCollection(string collectionName) { RdsCollection collection =null; @@ -1380,6 +1406,23 @@ namespace WebsitePanel.Providers.RemoteDesktopServices return ExecuteShellCommand(runSpace, invokeCommand, false); } + internal Collection ExecuteRemoteShellCommand(Runspace runSpace, string hostName, List scripts, params string[] moduleImports) + { + Command invokeCommand = new Command("Invoke-Command"); + invokeCommand.Parameters.Add("ComputerName", hostName); + + RunspaceInvoke invoke = new RunspaceInvoke(); + string commandString = moduleImports.Any() ? string.Format("import-module {0};", string.Join(",", moduleImports)) : string.Empty; + + commandString = string.Format("{0};{1}", commandString, string.Join(";", scripts.ToArray())); + + ScriptBlock sb = invoke.Invoke(string.Format("{{{0}}}", commandString))[0].BaseObject as ScriptBlock; + + invokeCommand.Parameters.Add("ScriptBlock", sb); + + return ExecuteShellCommand(runSpace, invokeCommand, false); + } + internal Collection ExecuteShellCommand(Runspace runSpace, Command cmd) { return ExecuteShellCommand(runSpace, cmd, true); @@ -1396,6 +1439,38 @@ namespace WebsitePanel.Providers.RemoteDesktopServices return ExecuteShellCommand(runSpace, cmd, true, out errors); } + internal Collection ExecuteShellCommand(Runspace runspace, List scripts, out object[] errors) + { + Log.WriteStart("ExecuteShellCommand"); + var errorList = new List(); + Collection results; + + using (Pipeline pipeLine = runspace.CreatePipeline()) + { + foreach (string script in scripts) + { + pipeLine.Commands.AddScript(script); + } + + results = pipeLine.Invoke(); + + if (pipeLine.Error != null && pipeLine.Error.Count > 0) + { + foreach (object item in pipeLine.Error.ReadToEnd()) + { + errorList.Add(item); + string errorMessage = string.Format("Invoke error: {0}", item); + Log.WriteWarning(errorMessage); + } + } + } + + errors = errorList.ToArray(); + Log.WriteEnd("ExecuteShellCommand"); + + return results; + } + internal Collection ExecuteShellCommand(Runspace runSpace, Command cmd, bool useDomainController, out object[] errors) { @@ -1517,6 +1592,29 @@ namespace WebsitePanel.Providers.RemoteDesktopServices return result; } + internal List GetServersExistingInCollections(Runspace runSpace) + { + var existingHosts = new List(); + var scripts = new List(); + scripts.Add(string.Format("$sessions = Get-RDSessionCollection -ConnectionBroker {0}", ConnectionBroker)); + scripts.Add(string.Format("foreach($session in $sessions){{Get-RDSessionHost $session.CollectionName -ConnectionBroker {0}|Select SessionHost}}", ConnectionBroker)); + object[] errors; + + var sessionHosts = ExecuteShellCommand(runSpace, scripts, out errors); + + foreach(var host in sessionHosts) + { + var sessionHost = GetPSObjectProperty(host, "SessionHost"); + + if (sessionHost != null) + { + existingHosts.Add(sessionHost.ToString()); + } + } + + return existingHosts; + } + #endregion } } diff --git a/WebsitePanel/Sources/WebsitePanel.Server.Client/RemoteDesktopServicesProxy.cs b/WebsitePanel/Sources/WebsitePanel.Server.Client/RemoteDesktopServicesProxy.cs index 79bd1a40..65ca3c47 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server.Client/RemoteDesktopServicesProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server.Client/RemoteDesktopServicesProxy.cs @@ -71,6 +71,8 @@ namespace WebsitePanel.Providers.RemoteDesktopServices { private System.Threading.SendOrPostCallback CheckRDSServerAvaliableOperationCompleted; + private System.Threading.SendOrPostCallback GetServersExistingInCollectionsOperationCompleted; + /// public RemoteDesktopServices() { this.Url = "http://localhost:9003/RemoteDesktopServices.asmx"; @@ -139,6 +141,9 @@ namespace WebsitePanel.Providers.RemoteDesktopServices { /// public event CheckRDSServerAvaliableCompletedEventHandler CheckRDSServerAvaliableCompleted; + /// + public event GetServersExistingInCollectionsCompletedEventHandler GetServersExistingInCollectionsCompleted; + /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateCollection", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] @@ -1068,6 +1073,45 @@ namespace WebsitePanel.Providers.RemoteDesktopServices { } } + /// + [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetServersExistingInCollections", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string[] GetServersExistingInCollections() { + object[] results = this.Invoke("GetServersExistingInCollections", new object[0]); + return ((string[])(results[0])); + } + + /// + public System.IAsyncResult BeginGetServersExistingInCollections(System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("GetServersExistingInCollections", new object[0], callback, asyncState); + } + + /// + public string[] EndGetServersExistingInCollections(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((string[])(results[0])); + } + + /// + public void GetServersExistingInCollectionsAsync() { + this.GetServersExistingInCollectionsAsync(null); + } + + /// + public void GetServersExistingInCollectionsAsync(object userState) { + if ((this.GetServersExistingInCollectionsOperationCompleted == null)) { + this.GetServersExistingInCollectionsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetServersExistingInCollectionsOperationCompleted); + } + this.InvokeAsync("GetServersExistingInCollections", new object[0], this.GetServersExistingInCollectionsOperationCompleted, userState); + } + + private void OnGetServersExistingInCollectionsOperationCompleted(object arg) { + if ((this.GetServersExistingInCollectionsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetServersExistingInCollectionsCompleted(this, new GetServersExistingInCollectionsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + /// public new void CancelAsync(object userState) { base.CancelAsync(userState); @@ -1509,4 +1553,30 @@ namespace WebsitePanel.Providers.RemoteDesktopServices { } } } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + public delegate void GetServersExistingInCollectionsCompletedEventHandler(object sender, GetServersExistingInCollectionsCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetServersExistingInCollectionsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetServersExistingInCollectionsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public string[] Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string[])(this.results[0])); + } + } + } } diff --git a/WebsitePanel/Sources/WebsitePanel.Server/RemoteDesktopServices.asmx.cs b/WebsitePanel/Sources/WebsitePanel.Server/RemoteDesktopServices.asmx.cs index facdb011..3af935f3 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server/RemoteDesktopServices.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server/RemoteDesktopServices.asmx.cs @@ -410,5 +410,22 @@ namespace WebsitePanel.Server throw; } } + + [WebMethod, SoapHeader("settings")] + public List GetServersExistingInCollections() + { + try + { + Log.WriteStart("'{0}' GetServersExistingInCollections", ProviderSettings.ProviderName); + var result = RDSProvider.GetServersExistingInCollections(); + Log.WriteEnd("'{0}' GetServersExistingInCollections", ProviderSettings.ProviderName); + return result; + } + catch (Exception ex) + { + Log.WriteError(String.Format("'{0}' GetServersExistingInCollections", ProviderSettings.ProviderName), ex); + throw; + } + } } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx index f3dc6d89..27771dda 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx @@ -5626,4 +5626,7 @@ You cannot use a IDN domain name for organizations + + Collection not created + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/RDSHelper.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/RDSHelper.cs index 8b8f8f72..1af8a885 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/RDSHelper.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/RDSHelper.cs @@ -71,9 +71,9 @@ namespace WebsitePanel.Portal return rdsServers.Servers; } - public RdsServer[] GetFreeRDSServers() + public RdsServer[] GetFreeRDSServers(int packageId) { - return ES.Services.RDS.GetFreeRdsServersPaged("", "", "", 0, 1000).Servers; + return ES.Services.RDS.GetFreeRdsServersPaged(packageId, "", "", "", 0, 1000).Servers; } #endregion diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AddRDSServer.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AddRDSServer.ascx.cs index cd879f04..f0ed0cd1 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AddRDSServer.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/AddRDSServer.ascx.cs @@ -50,7 +50,7 @@ namespace WebsitePanel.Portal.RDS private void BindRDSServers() { - ddlServers.DataSource = new RDSHelper().GetFreeRDSServers(); + ddlServers.DataSource = new RDSHelper().GetFreeRDSServers(PanelRequest.ItemID); ddlServers.DataTextField = "Name"; ddlServers.DataValueField = "Id"; ddlServers.DataBind(); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx.cs index ba53d8a8..e8ee55af 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx.cs @@ -50,7 +50,9 @@ namespace WebsitePanel.Portal.RDS protected void btnSave_Click(object sender, EventArgs e) { if (!Page.IsValid) + { return; + } try { @@ -59,14 +61,15 @@ namespace WebsitePanel.Portal.RDS messageBox.ShowErrorMessage("RDS_CREATE_COLLECTION_RDSSERVER_REQUAIRED"); return; } + RdsCollection collection = new RdsCollection{ Name = txtCollectionName.Text, Servers = servers.GetServers(), Description = "" }; - ES.Services.RDS.AddRdsCollection(PanelRequest.ItemID, collection); - - Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "rds_collections", - "SpaceID=" + PanelSecurity.PackageId)); + Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "rds_collections", "SpaceID=" + PanelSecurity.PackageId)); + } + catch (Exception ex) + { + messageBox.ShowErrorMessage("RDSCOLLECTION_NOT_CREATED", ex); } - catch { } } } } \ No newline at end of file From e00f5dacb8f103c22e22ce1cc5fe39681c88ee24 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Sat, 10 Jan 2015 10:46:22 -0500 Subject: [PATCH 09/24] Added tag build-2.1.0.526 for changeset cbe19b49996b From 165813d041287d18215ec97102e0dfc9b71b02b7 Mon Sep 17 00:00:00 2001 From: Olov Karlsson Date: Sun, 11 Jan 2015 08:43:56 +0100 Subject: [PATCH 10/24] Fix for statistics in IceWarp provider. Numbers given in kB instead of Bytes. --- .../Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs index a7ad0c97..5a2d979b 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs @@ -477,7 +477,7 @@ namespace WebsitePanel.Providers.Mail Log.WriteStart(String.Format("Calculating mail account '{0}' size", item.Name)); // calculate disk space var accountObject = GetAccountObject(item.Name); - var size = Convert.ToInt64((object)accountObject.GetProperty("U_MailboxSize")); + var size = Convert.ToInt64((object)accountObject.GetProperty("U_MailboxSize")) * 1024; var diskspace = new ServiceProviderItemDiskSpace {ItemId = item.Id, DiskSpace = size}; itemsDiskspace.Add(diskspace); @@ -564,8 +564,8 @@ namespace WebsitePanel.Providers.Mail Year = date.Year, Month = date.Month, Day = date.Day, - BytesSent = line[mailSentField], - BytesReceived = line[mailReceivedField] + BytesSent = Convert.ToInt64(line[mailSentField])*1024, + BytesReceived = Convert.ToInt64(line[mailReceivedField])*1024 }; days.Add(dailyStats); continue; From 9584fb2dd71c559c6dff79b7cacac1ef071b837d Mon Sep 17 00:00:00 2001 From: Christiaan Swiers Date: Sun, 11 Jan 2015 11:30:32 +0100 Subject: [PATCH 11/24] Added a check to see if the current user has any packages in his account. If not return an empty hashtable. --- .../WebsitePanel/Code/Helpers/PackagesHelper.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs index 328a1b07..cd047414 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs @@ -169,13 +169,15 @@ namespace WebsitePanel.Portal Hashtable ret = new Hashtable(); DataTable table = ES.Services.Packages.GetRawMyPackages(PanelSecurity.SelectedUserId).Tables[0]; - System.Collections.Generic.IEnumerable dr = table.AsEnumerable().Skip(PackagesPerPage * index - PackagesPerPage).Take(PackagesPerPage); + if(table.Rows.Count > 0) { + System.Collections.Generic.IEnumerable dr = table.AsEnumerable().Skip(PackagesPerPage * index - PackagesPerPage).Take(PackagesPerPage); + + DataSet set = new DataSet(); + set.Tables.Add(dr.CopyToDataTable()); - DataSet set = new DataSet(); - set.Tables.Add(dr.CopyToDataTable()); - - ret.Add("DataSet", set); - ret.Add("RowCount", table.Rows.Count); + ret.Add("DataSet", set); + ret.Add("RowCount", table.Rows.Count); + } return ret; } From 598986a7d03a1a1040aec30626251a789f135882 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Sun, 11 Jan 2015 10:38:22 -0500 Subject: [PATCH 12/24] Added tag build-2.1.0.527 for changeset 13846ad3b5d7 From d3ce5dc5fce685bc06336a7e9d67793ce30f7f75 Mon Sep 17 00:00:00 2001 From: Olov Karlsson Date: Sun, 11 Jan 2015 18:53:28 +0100 Subject: [PATCH 13/24] Corrected bandwidth statistics in IceWarp provider --- .../Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs index 5a2d979b..608b740a 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs @@ -564,8 +564,8 @@ namespace WebsitePanel.Providers.Mail Year = date.Year, Month = date.Month, Day = date.Day, - BytesSent = Convert.ToInt64(line[mailSentField])*1024, - BytesReceived = Convert.ToInt64(line[mailReceivedField])*1024 + BytesSent = Convert.ToInt64(fields[mailSentField])*1024, + BytesReceived = Convert.ToInt64(fields[mailReceivedField])*1024 }; days.Add(dailyStats); continue; From bbddfc82eaa74eafba83fc17acd529bac12315d4 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Sun, 11 Jan 2015 13:07:57 -0500 Subject: [PATCH 14/24] Added tag build-2.1.0.528 for changeset 7a190021bba7 From c26b7460669c100042e08c947cdcc84a96642e93 Mon Sep 17 00:00:00 2001 From: Olov Karlsson Date: Mon, 12 Jan 2015 14:45:16 +0100 Subject: [PATCH 15/24] Corrected importing of aliases in IceWarp provider --- .../Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs index 608b740a..f0538c23 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Mail.IceWarp/IceWarp.cs @@ -1035,7 +1035,7 @@ namespace WebsitePanel.Providers.Mail { var forwardTo = GetForwardToAddressFromAccountObject(accountObject); var aliases = GetAliasListFromAccountObject(accountObject) as IEnumerable; - aliasList.AddRange(aliases.Where(a => a != forwardTo).Select(alias => new MailAlias {Name = alias + "@" + domainName, ForwardTo = forwardTo + "@" + domainName})); + aliasList.AddRange(aliases.Where(a => a + "@" + domainName != forwardTo).Select(alias => new MailAlias {Name = alias + "@" + domainName, ForwardTo = forwardTo})); } accountObject.FindDone(); From eebb2117cb37be93e5f1cefa5bf0a756acc04b16 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Mon, 12 Jan 2015 10:02:53 -0500 Subject: [PATCH 16/24] Added tag build-2.1.0.529 for changeset ca56dfcb1a78 From 37310201ba318e10026f2601201ce904911d5c0f Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Tue, 13 Jan 2015 10:38:50 -0500 Subject: [PATCH 17/24] Added tag build-2.1.0.530 for changeset 41efb7375170 From a810e3c78b3c684508a5b67e21e56fac09f54845 Mon Sep 17 00:00:00 2001 From: Christiaan Swiers Date: Tue, 13 Jan 2015 17:39:35 +0100 Subject: [PATCH 18/24] Changes following the mail correspondence with Omar, changing the paging on the home page of the customer to a dropdownlist. --- .../App_Themes/Default/Styles/chosen.min.css | 2 + .../Default/Styles/images/chosen-sprite.png | Bin 0 -> 538 bytes .../SystemSettings.ascx.resx | 9 -- .../Code/Helpers/PackagesHelper.cs | 10 ++ .../WebsitePanel/SystemSettings.ascx | 16 --- .../WebsitePanel/SystemSettings.ascx.cs | 24 +--- .../SystemSettings.ascx.designer.cs | 36 ------ .../WebsitePanel/UserSpaces.ascx | 103 +++++++++--------- .../WebsitePanel/UserSpaces.ascx.cs | 79 ++++---------- .../WebsitePanel/UserSpaces.ascx.designer.cs | 18 +-- .../JavaScript/chosen.min.js | 2 + 11 files changed, 96 insertions(+), 203 deletions(-) create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/chosen.min.css create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/images/chosen-sprite.png create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/JavaScript/chosen.min.js diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/chosen.min.css b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/chosen.min.css new file mode 100644 index 00000000..08fc2cd6 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/chosen.min.css @@ -0,0 +1,2 @@ +/* Chosen v1.3.0 | (c) 2011-2014 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */ +.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;zoom:1;*display:inline;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-moz-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(images/chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(images/chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:#fff url(images/chosen-sprite.png) no-repeat 100% -20px;background:url(images/chosen-sprite.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:-webkit-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-moz-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-o-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto!important;height:1%;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(#eee 1%,#fff 15%);background-image:-moz-linear-gradient(#eee 1%,#fff 15%);background-image:-o-linear-gradient(#eee 1%,#fff 15%);background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:transparent!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(images/chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#eee),color-stop(80%,#fff));background-image:-webkit-linear-gradient(#eee 20%,#fff 80%);background-image:-moz-linear-gradient(#eee 20%,#fff 80%);background-image:-o-linear-gradient(#eee 20%,#fff 80%);background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:0;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:#fff url(images/chosen-sprite.png) no-repeat -30px -20px;background:url(images/chosen-sprite.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:144dpi){.chosen-rtl .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type=text],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/images/chosen-sprite.png b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/images/chosen-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..c57da70b4b5b1e08a6977ddde182677af0e5e1b8 GIT binary patch literal 538 zcmV+#0_FXQP)cz2)-WJLkv8J@4bb5L`rsE?Kc|FrXHkKz)ov z76MHYM&Apx%05P7orE!>9=yZ~6O0^V?1%{=1UASqa<2Pgnk7fs!OIs9gh{NCN+@=) z>Gfttd5uq;oeR{%NHjtqV~jEQeY?tDff=(jqx>~SZ_e+iN26HR*`0Q!Re)~HD85p> zbL()Mw}bI^#`7wp0+cv&7*LhrtOmR)?PK>(-BeLm#jL5Jfogv-QS(TBnUb;))Krqm zD}uDDeVLNhm1G*pFB`O?iA=dnWBEpqHk8Yh%Qu45EIG=&F-dDmt|;|nN@|3lOkVZ7>z*~a1?_t?U)c+&|JFJke1`&0-a z#PjhRlg?=$KTo4|rU@NyV_fzDy@>h!lVyKShsO8>V>$xyIXRbHK%H~^Aaz=s$Jz^V zlb?KfaKdZqu3^#m$mintvgJ15@j`sb2Zr%69Sn=xN01Tm5r)NQanT=jhwm7zqj2>O cEB}D~0$b-QdD7|v=>Px#07*qoM6N<$g6AXnUH||9 literal 0 HcmV?d00001 diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SystemSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SystemSettings.ascx.resx index 4c601438..d0dd8013 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SystemSettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SystemSettings.ascx.resx @@ -162,13 +162,4 @@ (One (1) extension per line) - - Package Display Settings - - - Display packages per page - - - Use paging on package overview - \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs index cd047414..a9d6d1fd 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs @@ -181,6 +181,16 @@ namespace WebsitePanel.Portal 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 DataSet dsPackagesPaged; diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx index c222013d..24542dbe 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx @@ -41,22 +41,6 @@ - - - - - - - - - - - - -
-
- diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.cs index e26e82a9..2e213004 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.cs @@ -50,8 +50,6 @@ namespace WebsitePanel.Portal public const string SMTP_PASSWORD = "SmtpPassword"; public const string SMTP_ENABLE_SSL = "SmtpEnableSsl"; 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"; /* @@ -97,16 +95,7 @@ namespace WebsitePanel.Portal 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 settings = ES.Services.System.GetSystemSettings(WSP.SystemSettings.WPI_SETTINGS); @@ -185,17 +174,6 @@ namespace WebsitePanel.Portal 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 diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs index cb3bf389..d2f6687e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SystemSettings.ascx.designer.cs @@ -111,42 +111,6 @@ namespace WebsitePanel.Portal { ///
protected global::System.Web.UI.WebControls.TextBox txtBackupsPath; - /// - /// lclPackageDisplaySettings control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::WebsitePanel.Portal.CollapsiblePanel lclPackageDisplaySettings; - - /// - /// PackageDisplaySettings control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Panel PackageDisplaySettings; - - /// - /// chkPackageUsePaging control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.CheckBox chkPackageUsePaging; - - /// - /// txtPackagePackagesPerPage control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.TextBox txtPackagePackagesPerPage; - /// /// lclWpiSettings control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx index 67162da1..4802f422 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx @@ -5,69 +5,66 @@ <%@ Register Src="UserOrganization.ascx" TagName="UserOrganization" TagPrefix="wsp" %> <%@ Import Namespace="WebsitePanel.Portal" %> + + + + - + - - - -
-
- - <%# Eval("PackageName") %> - -
-
+
+
+ +
+ + +
+ + - - + - + + + + +
+ <%# Eval("Text") %> +
+ +
    + + +
  • <%# Eval("Text") %>
  • +
    +
    +
+
+ +
+
- - - - -
- <%# Eval("Text") %> -
- -
    - - -
  • <%# Eval("Text") %>
  • -
    -
    -
-
- -
-
+
+
-
-
- -
-
- - - - - - - - - - - +
+ + + + + +
+ diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs index 6ba28a05..3a9e0524 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs @@ -47,22 +47,10 @@ namespace WebsitePanel.Portal public partial class UserSpaces : WebsitePanelModuleBase { XmlNodeList xmlIcons = null; - - bool UsePaging = false; - int PackagesPerPage; - int currentPage = 1; - + DataSet myPackages; 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 bool isUser = PanelSecurity.SelectedUser.Role == UserRole.User; @@ -70,25 +58,28 @@ namespace WebsitePanel.Portal xmlIcons = this.Module.SelectNodes("Group"); 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 UserPackagesPanel.Visible = true; - if(!UsePaging) - { - PackagesList.DataSource = new PackagesHelper().GetMyPackages(); - PackagesList.DataBind(); - if (PackagesList.Items.Count == 0) - { + if(!IsPostBack) + { + if(ddlPackageSelect.Items.Count == 0) { litEmptyList.Text = GetLocalizedString("gvPackages.Empty"); EmptyPackagesList.Visible = true; - } - } - else - { - if(!IsPostBack) - { - ListPackagesWithPaging(); - packagePaging.Visible = true; + } else { + ddlPackageSelect.Visible = true; + myPackages = new PackagesHelper().GetMyPackage(int.Parse(ddlPackageSelect.SelectedValue)); + PackagesList.DataSource = myPackages; + PackagesList.DataBind(); } } } @@ -248,35 +239,9 @@ namespace WebsitePanel.Portal return node.Attributes[name] != null ? node.Attributes[name].Value : null; } - private void ListPackagesWithPaging() - { - Hashtable ht = new PackagesHelper().GetMyPackages(currentPage, PackagesPerPage); - PackagesList.DataSource = ht["DataSet"]; + public void openSelectedPackage(Object sender, EventArgs e) { + PackagesList.DataSource = new PackagesHelper().GetMyPackage(int.Parse(ddlPackageSelect.SelectedValue)); 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 pages = new List(); - 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(); } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.designer.cs index 7b9b8440..c1af8244 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.designer.cs @@ -39,6 +39,15 @@ namespace WebsitePanel.Portal { ///
protected global::System.Web.UI.WebControls.Panel UserPackagesPanel; + /// + /// ddlPackageSelect control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DropDownList ddlPackageSelect; + /// /// PackagesList control. /// @@ -48,15 +57,6 @@ namespace WebsitePanel.Portal { ///
protected global::System.Web.UI.WebControls.Repeater PackagesList; - /// - /// packagePaging control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Repeater packagePaging; - /// /// EmptyPackagesList control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/JavaScript/chosen.min.js b/WebsitePanel/Sources/WebsitePanel.WebPortal/JavaScript/chosen.min.js new file mode 100644 index 00000000..f24ac426 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/JavaScript/chosen.min.js @@ -0,0 +1,2 @@ +/* Chosen v1.3.0 | (c) 2011-2014 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */ +!function () { var a, AbstractChosen, Chosen, SelectParser, b, c = {}.hasOwnProperty, d = function (a, b) { function d() { this.constructor = a } for (var e in b) c.call(b, e) && (a[e] = b[e]); return d.prototype = b.prototype, a.prototype = new d, a.__super__ = b.prototype, a }; SelectParser = function () { function SelectParser() { this.options_index = 0, this.parsed = [] } return SelectParser.prototype.add_node = function (a) { return "OPTGROUP" === a.nodeName.toUpperCase() ? this.add_group(a) : this.add_option(a) }, SelectParser.prototype.add_group = function (a) { var b, c, d, e, f, g; for (b = this.parsed.length, this.parsed.push({ array_index: b, group: !0, label: this.escapeExpression(a.label), children: 0, disabled: a.disabled, classes: a.className }), f = a.childNodes, g = [], d = 0, e = f.length; e > d; d++) c = f[d], g.push(this.add_option(c, b, a.disabled)); return g }, SelectParser.prototype.add_option = function (a, b, c) { return "OPTION" === a.nodeName.toUpperCase() ? ("" !== a.text ? (null != b && (this.parsed[b].children += 1), this.parsed.push({ array_index: this.parsed.length, options_index: this.options_index, value: a.value, text: a.text, html: a.innerHTML, selected: a.selected, disabled: c === !0 ? c : a.disabled, group_array_index: b, classes: a.className, style: a.style.cssText })) : this.parsed.push({ array_index: this.parsed.length, options_index: this.options_index, empty: !0 }), this.options_index += 1) : void 0 }, SelectParser.prototype.escapeExpression = function (a) { var b, c; return null == a || a === !1 ? "" : /[\&\<\>\"\'\`]/.test(a) ? (b = { "<": "<", ">": ">", '"': """, "'": "'", "`": "`" }, c = /&(?!\w+;)|[\<\>\"\'\`]/g, a.replace(c, function (a) { return b[a] || "&" })) : a }, SelectParser }(), SelectParser.select_to_array = function (a) { var b, c, d, e, f; for (c = new SelectParser, f = a.childNodes, d = 0, e = f.length; e > d; d++) b = f[d], c.add_node(b); return c.parsed }, AbstractChosen = function () { function AbstractChosen(a, b) { this.form_field = a, this.options = null != b ? b : {}, AbstractChosen.browser_is_supported() && (this.is_multiple = this.form_field.multiple, this.set_default_text(), this.set_default_values(), this.setup(), this.set_up_html(), this.register_observers(), this.on_ready()) } return AbstractChosen.prototype.set_default_values = function () { var a = this; return this.click_test_action = function (b) { return a.test_active_click(b) }, this.activate_action = function (b) { return a.activate_field(b) }, this.active_field = !1, this.mouse_on_container = !1, this.results_showing = !1, this.result_highlighted = null, this.allow_single_deselect = null != this.options.allow_single_deselect && null != this.form_field.options[0] && "" === this.form_field.options[0].text ? this.options.allow_single_deselect : !1, this.disable_search_threshold = this.options.disable_search_threshold || 0, this.disable_search = this.options.disable_search || !1, this.enable_split_word_search = null != this.options.enable_split_word_search ? this.options.enable_split_word_search : !0, this.group_search = null != this.options.group_search ? this.options.group_search : !0, this.search_contains = this.options.search_contains || !1, this.single_backstroke_delete = null != this.options.single_backstroke_delete ? this.options.single_backstroke_delete : !0, this.max_selected_options = this.options.max_selected_options || 1 / 0, this.inherit_select_classes = this.options.inherit_select_classes || !1, this.display_selected_options = null != this.options.display_selected_options ? this.options.display_selected_options : !0, this.display_disabled_options = null != this.options.display_disabled_options ? this.options.display_disabled_options : !0 }, AbstractChosen.prototype.set_default_text = function () { return this.default_text = this.form_field.getAttribute("data-placeholder") ? this.form_field.getAttribute("data-placeholder") : this.is_multiple ? this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text : this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text, this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text }, AbstractChosen.prototype.mouse_enter = function () { return this.mouse_on_container = !0 }, AbstractChosen.prototype.mouse_leave = function () { return this.mouse_on_container = !1 }, AbstractChosen.prototype.input_focus = function () { var a = this; if (this.is_multiple) { if (!this.active_field) return setTimeout(function () { return a.container_mousedown() }, 50) } else if (!this.active_field) return this.activate_field() }, AbstractChosen.prototype.input_blur = function () { var a = this; return this.mouse_on_container ? void 0 : (this.active_field = !1, setTimeout(function () { return a.blur_test() }, 100)) }, AbstractChosen.prototype.results_option_build = function (a) { var b, c, d, e, f; for (b = "", f = this.results_data, d = 0, e = f.length; e > d; d++) c = f[d], b += c.group ? this.result_add_group(c) : this.result_add_option(c), (null != a ? a.first : void 0) && (c.selected && this.is_multiple ? this.choice_build(c) : c.selected && !this.is_multiple && this.single_set_selected_text(c.text)); return b }, AbstractChosen.prototype.result_add_option = function (a) { var b, c; return a.search_match ? this.include_option_in_results(a) ? (b = [], a.disabled || a.selected && this.is_multiple || b.push("active-result"), !a.disabled || a.selected && this.is_multiple || b.push("disabled-result"), a.selected && b.push("result-selected"), null != a.group_array_index && b.push("group-option"), "" !== a.classes && b.push(a.classes), c = document.createElement("li"), c.className = b.join(" "), c.style.cssText = a.style, c.setAttribute("data-option-array-index", a.array_index), c.innerHTML = a.search_text, this.outerHTML(c)) : "" : "" }, AbstractChosen.prototype.result_add_group = function (a) { var b, c; return a.search_match || a.group_match ? a.active_options > 0 ? (b = [], b.push("group-result"), a.classes && b.push(a.classes), c = document.createElement("li"), c.className = b.join(" "), c.innerHTML = a.search_text, this.outerHTML(c)) : "" : "" }, AbstractChosen.prototype.results_update_field = function () { return this.set_default_text(), this.is_multiple || this.results_reset_cleanup(), this.result_clear_highlight(), this.results_build(), this.results_showing ? this.winnow_results() : void 0 }, AbstractChosen.prototype.reset_single_select_options = function () { var a, b, c, d, e; for (d = this.results_data, e = [], b = 0, c = d.length; c > b; b++) a = d[b], a.selected ? e.push(a.selected = !1) : e.push(void 0); return e }, AbstractChosen.prototype.results_toggle = function () { return this.results_showing ? this.results_hide() : this.results_show() }, AbstractChosen.prototype.results_search = function () { return this.results_showing ? this.winnow_results() : this.results_show() }, AbstractChosen.prototype.winnow_results = function () { var a, b, c, d, e, f, g, h, i, j, k, l; for (this.no_results_clear(), d = 0, f = this.get_search_text(), a = f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), i = new RegExp(a, "i"), c = this.get_search_regex(a), l = this.results_data, j = 0, k = l.length; k > j; j++) b = l[j], b.search_match = !1, e = null, this.include_option_in_results(b) && (b.group && (b.group_match = !1, b.active_options = 0), null != b.group_array_index && this.results_data[b.group_array_index] && (e = this.results_data[b.group_array_index], 0 === e.active_options && e.search_match && (d += 1), e.active_options += 1), (!b.group || this.group_search) && (b.search_text = b.group ? b.label : b.text, b.search_match = this.search_string_match(b.search_text, c), b.search_match && !b.group && (d += 1), b.search_match ? (f.length && (g = b.search_text.search(i), h = b.search_text.substr(0, g + f.length) + "" + b.search_text.substr(g + f.length), b.search_text = h.substr(0, g) + "" + h.substr(g)), null != e && (e.group_match = !0)) : null != b.group_array_index && this.results_data[b.group_array_index].search_match && (b.search_match = !0))); return this.result_clear_highlight(), 1 > d && f.length ? (this.update_results_content(""), this.no_results(f)) : (this.update_results_content(this.results_option_build()), this.winnow_results_set_highlight()) }, AbstractChosen.prototype.get_search_regex = function (a) { var b; return b = this.search_contains ? "" : "^", new RegExp(b + a, "i") }, AbstractChosen.prototype.search_string_match = function (a, b) { var c, d, e, f; if (b.test(a)) return !0; if (this.enable_split_word_search && (a.indexOf(" ") >= 0 || 0 === a.indexOf("[")) && (d = a.replace(/\[|\]/g, "").split(" "), d.length)) for (e = 0, f = d.length; f > e; e++) if (c = d[e], b.test(c)) return !0 }, AbstractChosen.prototype.choices_count = function () { var a, b, c, d; if (null != this.selected_option_count) return this.selected_option_count; for (this.selected_option_count = 0, d = this.form_field.options, b = 0, c = d.length; c > b; b++) a = d[b], a.selected && (this.selected_option_count += 1); return this.selected_option_count }, AbstractChosen.prototype.choices_click = function (a) { return a.preventDefault(), this.results_showing || this.is_disabled ? void 0 : this.results_show() }, AbstractChosen.prototype.keyup_checker = function (a) { var b, c; switch (b = null != (c = a.which) ? c : a.keyCode, this.search_field_scale(), b) { case 8: if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) return this.keydown_backstroke(); if (!this.pending_backstroke) return this.result_clear_highlight(), this.results_search(); break; case 13: if (a.preventDefault(), this.results_showing) return this.result_select(a); break; case 27: return this.results_showing && this.results_hide(), !0; case 9: case 38: case 40: case 16: case 91: case 17: break; default: return this.results_search() } }, AbstractChosen.prototype.clipboard_event_checker = function () { var a = this; return setTimeout(function () { return a.results_search() }, 50) }, AbstractChosen.prototype.container_width = function () { return null != this.options.width ? this.options.width : "" + this.form_field.offsetWidth + "px" }, AbstractChosen.prototype.include_option_in_results = function (a) { return this.is_multiple && !this.display_selected_options && a.selected ? !1 : !this.display_disabled_options && a.disabled ? !1 : a.empty ? !1 : !0 }, AbstractChosen.prototype.search_results_touchstart = function (a) { return this.touch_started = !0, this.search_results_mouseover(a) }, AbstractChosen.prototype.search_results_touchmove = function (a) { return this.touch_started = !1, this.search_results_mouseout(a) }, AbstractChosen.prototype.search_results_touchend = function (a) { return this.touch_started ? this.search_results_mouseup(a) : void 0 }, AbstractChosen.prototype.outerHTML = function (a) { var b; return a.outerHTML ? a.outerHTML : (b = document.createElement("div"), b.appendChild(a), b.innerHTML) }, AbstractChosen.browser_is_supported = function () { return "Microsoft Internet Explorer" === window.navigator.appName ? document.documentMode >= 8 : /iP(od|hone)/i.test(window.navigator.userAgent) ? !1 : /Android/i.test(window.navigator.userAgent) && /Mobile/i.test(window.navigator.userAgent) ? !1 : !0 }, AbstractChosen.default_multiple_text = "Select Some Options", AbstractChosen.default_single_text = "Select an Option", AbstractChosen.default_no_result_text = "No results match", AbstractChosen }(), a = jQuery, a.fn.extend({ chosen: function (b) { return AbstractChosen.browser_is_supported() ? this.each(function () { var c, d; c = a(this), d = c.data("chosen"), "destroy" === b && d instanceof Chosen ? d.destroy() : d instanceof Chosen || c.data("chosen", new Chosen(this, b)) }) : this } }), Chosen = function (c) { function Chosen() { return b = Chosen.__super__.constructor.apply(this, arguments) } return d(Chosen, c), Chosen.prototype.setup = function () { return this.form_field_jq = a(this.form_field), this.current_selectedIndex = this.form_field.selectedIndex, this.is_rtl = this.form_field_jq.hasClass("chosen-rtl") }, Chosen.prototype.set_up_html = function () { var b, c; return b = ["chosen-container"], b.push("chosen-container-" + (this.is_multiple ? "multi" : "single")), this.inherit_select_classes && this.form_field.className && b.push(this.form_field.className), this.is_rtl && b.push("chosen-rtl"), c = { "class": b.join(" "), style: "width: " + this.container_width() + ";", title: this.form_field.title }, this.form_field.id.length && (c.id = this.form_field.id.replace(/[^\w]/g, "_") + "_chosen"), this.container = a("
", c), this.is_multiple ? this.container.html('
    ') : this.container.html('' + this.default_text + '
      '), this.form_field_jq.hide().after(this.container), this.dropdown = this.container.find("div.chosen-drop").first(), this.search_field = this.container.find("input").first(), this.search_results = this.container.find("ul.chosen-results").first(), this.search_field_scale(), this.search_no_results = this.container.find("li.no-results").first(), this.is_multiple ? (this.search_choices = this.container.find("ul.chosen-choices").first(), this.search_container = this.container.find("li.search-field").first()) : (this.search_container = this.container.find("div.chosen-search").first(), this.selected_item = this.container.find(".chosen-single").first()), this.results_build(), this.set_tab_index(), this.set_label_behavior() }, Chosen.prototype.on_ready = function () { return this.form_field_jq.trigger("chosen:ready", { chosen: this }) }, Chosen.prototype.register_observers = function () { var a = this; return this.container.bind("touchstart.chosen", function (b) { a.container_mousedown(b) }), this.container.bind("touchend.chosen", function (b) { a.container_mouseup(b) }), this.container.bind("mousedown.chosen", function (b) { a.container_mousedown(b) }), this.container.bind("mouseup.chosen", function (b) { a.container_mouseup(b) }), this.container.bind("mouseenter.chosen", function (b) { a.mouse_enter(b) }), this.container.bind("mouseleave.chosen", function (b) { a.mouse_leave(b) }), this.search_results.bind("mouseup.chosen", function (b) { a.search_results_mouseup(b) }), this.search_results.bind("mouseover.chosen", function (b) { a.search_results_mouseover(b) }), this.search_results.bind("mouseout.chosen", function (b) { a.search_results_mouseout(b) }), this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen", function (b) { a.search_results_mousewheel(b) }), this.search_results.bind("touchstart.chosen", function (b) { a.search_results_touchstart(b) }), this.search_results.bind("touchmove.chosen", function (b) { a.search_results_touchmove(b) }), this.search_results.bind("touchend.chosen", function (b) { a.search_results_touchend(b) }), this.form_field_jq.bind("chosen:updated.chosen", function (b) { a.results_update_field(b) }), this.form_field_jq.bind("chosen:activate.chosen", function (b) { a.activate_field(b) }), this.form_field_jq.bind("chosen:open.chosen", function (b) { a.container_mousedown(b) }), this.form_field_jq.bind("chosen:close.chosen", function (b) { a.input_blur(b) }), this.search_field.bind("blur.chosen", function (b) { a.input_blur(b) }), this.search_field.bind("keyup.chosen", function (b) { a.keyup_checker(b) }), this.search_field.bind("keydown.chosen", function (b) { a.keydown_checker(b) }), this.search_field.bind("focus.chosen", function (b) { a.input_focus(b) }), this.search_field.bind("cut.chosen", function (b) { a.clipboard_event_checker(b) }), this.search_field.bind("paste.chosen", function (b) { a.clipboard_event_checker(b) }), this.is_multiple ? this.search_choices.bind("click.chosen", function (b) { a.choices_click(b) }) : this.container.bind("click.chosen", function (a) { a.preventDefault() }) }, Chosen.prototype.destroy = function () { return a(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action), this.search_field[0].tabIndex && (this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex), this.container.remove(), this.form_field_jq.removeData("chosen"), this.form_field_jq.show() }, Chosen.prototype.search_field_disabled = function () { return this.is_disabled = this.form_field_jq[0].disabled, this.is_disabled ? (this.container.addClass("chosen-disabled"), this.search_field[0].disabled = !0, this.is_multiple || this.selected_item.unbind("focus.chosen", this.activate_action), this.close_field()) : (this.container.removeClass("chosen-disabled"), this.search_field[0].disabled = !1, this.is_multiple ? void 0 : this.selected_item.bind("focus.chosen", this.activate_action)) }, Chosen.prototype.container_mousedown = function (b) { return this.is_disabled || (b && "mousedown" === b.type && !this.results_showing && b.preventDefault(), null != b && a(b.target).hasClass("search-choice-close")) ? void 0 : (this.active_field ? this.is_multiple || !b || a(b.target)[0] !== this.selected_item[0] && !a(b.target).parents("a.chosen-single").length || (b.preventDefault(), this.results_toggle()) : (this.is_multiple && this.search_field.val(""), a(this.container[0].ownerDocument).bind("click.chosen", this.click_test_action), this.results_show()), this.activate_field()) }, Chosen.prototype.container_mouseup = function (a) { return "ABBR" !== a.target.nodeName || this.is_disabled ? void 0 : this.results_reset(a) }, Chosen.prototype.search_results_mousewheel = function (a) { var b; return a.originalEvent && (b = a.originalEvent.deltaY || -a.originalEvent.wheelDelta || a.originalEvent.detail), null != b ? (a.preventDefault(), "DOMMouseScroll" === a.type && (b = 40 * b), this.search_results.scrollTop(b + this.search_results.scrollTop())) : void 0 }, Chosen.prototype.blur_test = function () { return !this.active_field && this.container.hasClass("chosen-container-active") ? this.close_field() : void 0 }, Chosen.prototype.close_field = function () { return a(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action), this.active_field = !1, this.results_hide(), this.container.removeClass("chosen-container-active"), this.clear_backstroke(), this.show_search_field_default(), this.search_field_scale() }, Chosen.prototype.activate_field = function () { return this.container.addClass("chosen-container-active"), this.active_field = !0, this.search_field.val(this.search_field.val()), this.search_field.focus() }, Chosen.prototype.test_active_click = function (b) { var c; return c = a(b.target).closest(".chosen-container"), c.length && this.container[0] === c[0] ? this.active_field = !0 : this.close_field() }, Chosen.prototype.results_build = function () { return this.parsing = !0, this.selected_option_count = null, this.results_data = SelectParser.select_to_array(this.form_field), this.is_multiple ? this.search_choices.find("li.search-choice").remove() : this.is_multiple || (this.single_set_selected_text(), this.disable_search || this.form_field.options.length <= this.disable_search_threshold ? (this.search_field[0].readOnly = !0, this.container.addClass("chosen-container-single-nosearch")) : (this.search_field[0].readOnly = !1, this.container.removeClass("chosen-container-single-nosearch"))), this.update_results_content(this.results_option_build({ first: !0 })), this.search_field_disabled(), this.show_search_field_default(), this.search_field_scale(), this.parsing = !1 }, Chosen.prototype.result_do_highlight = function (a) { var b, c, d, e, f; if (a.length) { if (this.result_clear_highlight(), this.result_highlight = a, this.result_highlight.addClass("highlighted"), d = parseInt(this.search_results.css("maxHeight"), 10), f = this.search_results.scrollTop(), e = d + f, c = this.result_highlight.position().top + this.search_results.scrollTop(), b = c + this.result_highlight.outerHeight(), b >= e) return this.search_results.scrollTop(b - d > 0 ? b - d : 0); if (f > c) return this.search_results.scrollTop(c) } }, Chosen.prototype.result_clear_highlight = function () { return this.result_highlight && this.result_highlight.removeClass("highlighted"), this.result_highlight = null }, Chosen.prototype.results_show = function () { return this.is_multiple && this.max_selected_options <= this.choices_count() ? (this.form_field_jq.trigger("chosen:maxselected", { chosen: this }), !1) : (this.container.addClass("chosen-with-drop"), this.results_showing = !0, this.search_field.focus(), this.search_field.val(this.search_field.val()), this.winnow_results(), this.form_field_jq.trigger("chosen:showing_dropdown", { chosen: this })) }, Chosen.prototype.update_results_content = function (a) { return this.search_results.html(a) }, Chosen.prototype.results_hide = function () { return this.results_showing && (this.result_clear_highlight(), this.container.removeClass("chosen-with-drop"), this.form_field_jq.trigger("chosen:hiding_dropdown", { chosen: this })), this.results_showing = !1 }, Chosen.prototype.set_tab_index = function () { var a; return this.form_field.tabIndex ? (a = this.form_field.tabIndex, this.form_field.tabIndex = -1, this.search_field[0].tabIndex = a) : void 0 }, Chosen.prototype.set_label_behavior = function () { var b = this; return this.form_field_label = this.form_field_jq.parents("label"), !this.form_field_label.length && this.form_field.id.length && (this.form_field_label = a("label[for='" + this.form_field.id + "']")), this.form_field_label.length > 0 ? this.form_field_label.bind("click.chosen", function (a) { return b.is_multiple ? b.container_mousedown(a) : b.activate_field() }) : void 0 }, Chosen.prototype.show_search_field_default = function () { return this.is_multiple && this.choices_count() < 1 && !this.active_field ? (this.search_field.val(this.default_text), this.search_field.addClass("default")) : (this.search_field.val(""), this.search_field.removeClass("default")) }, Chosen.prototype.search_results_mouseup = function (b) { var c; return c = a(b.target).hasClass("active-result") ? a(b.target) : a(b.target).parents(".active-result").first(), c.length ? (this.result_highlight = c, this.result_select(b), this.search_field.focus()) : void 0 }, Chosen.prototype.search_results_mouseover = function (b) { var c; return c = a(b.target).hasClass("active-result") ? a(b.target) : a(b.target).parents(".active-result").first(), c ? this.result_do_highlight(c) : void 0 }, Chosen.prototype.search_results_mouseout = function (b) { return a(b.target).hasClass("active-result") ? this.result_clear_highlight() : void 0 }, Chosen.prototype.choice_build = function (b) { var c, d, e = this; return c = a("
    • ", { "class": "search-choice" }).html("" + b.html + ""), b.disabled ? c.addClass("search-choice-disabled") : (d = a("", { "class": "search-choice-close", "data-option-array-index": b.array_index }), d.bind("click.chosen", function (a) { return e.choice_destroy_link_click(a) }), c.append(d)), this.search_container.before(c) }, Chosen.prototype.choice_destroy_link_click = function (b) { return b.preventDefault(), b.stopPropagation(), this.is_disabled ? void 0 : this.choice_destroy(a(b.target)) }, Chosen.prototype.choice_destroy = function (a) { return this.result_deselect(a[0].getAttribute("data-option-array-index")) ? (this.show_search_field_default(), this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1 && this.results_hide(), a.parents("li").first().remove(), this.search_field_scale()) : void 0 }, Chosen.prototype.results_reset = function () { return this.reset_single_select_options(), this.form_field.options[0].selected = !0, this.single_set_selected_text(), this.show_search_field_default(), this.results_reset_cleanup(), this.form_field_jq.trigger("change"), this.active_field ? this.results_hide() : void 0 }, Chosen.prototype.results_reset_cleanup = function () { return this.current_selectedIndex = this.form_field.selectedIndex, this.selected_item.find("abbr").remove() }, Chosen.prototype.result_select = function (a) { var b, c; return this.result_highlight ? (b = this.result_highlight, this.result_clear_highlight(), this.is_multiple && this.max_selected_options <= this.choices_count() ? (this.form_field_jq.trigger("chosen:maxselected", { chosen: this }), !1) : (this.is_multiple ? b.removeClass("active-result") : this.reset_single_select_options(), c = this.results_data[b[0].getAttribute("data-option-array-index")], c.selected = !0, this.form_field.options[c.options_index].selected = !0, this.selected_option_count = null, this.is_multiple ? this.choice_build(c) : this.single_set_selected_text(c.text), (a.metaKey || a.ctrlKey) && this.is_multiple || this.results_hide(), this.search_field.val(""), (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) && this.form_field_jq.trigger("change", { selected: this.form_field.options[c.options_index].value }), this.current_selectedIndex = this.form_field.selectedIndex, this.search_field_scale())) : void 0 }, Chosen.prototype.single_set_selected_text = function (a) { return null == a && (a = this.default_text), a === this.default_text ? this.selected_item.addClass("chosen-default") : (this.single_deselect_control_build(), this.selected_item.removeClass("chosen-default")), this.selected_item.find("span").text(a) }, Chosen.prototype.result_deselect = function (a) { var b; return b = this.results_data[a], this.form_field.options[b.options_index].disabled ? !1 : (b.selected = !1, this.form_field.options[b.options_index].selected = !1, this.selected_option_count = null, this.result_clear_highlight(), this.results_showing && this.winnow_results(), this.form_field_jq.trigger("change", { deselected: this.form_field.options[b.options_index].value }), this.search_field_scale(), !0) }, Chosen.prototype.single_deselect_control_build = function () { return this.allow_single_deselect ? (this.selected_item.find("abbr").length || this.selected_item.find("span").first().after(''), this.selected_item.addClass("chosen-single-with-deselect")) : void 0 }, Chosen.prototype.get_search_text = function () { return this.search_field.val() === this.default_text ? "" : a("
      ").text(a.trim(this.search_field.val())).html() }, Chosen.prototype.winnow_results_set_highlight = function () { var a, b; return b = this.is_multiple ? [] : this.search_results.find(".result-selected.active-result"), a = b.length ? b.first() : this.search_results.find(".active-result").first(), null != a ? this.result_do_highlight(a) : void 0 }, Chosen.prototype.no_results = function (b) { var c; return c = a('
    • ' + this.results_none_found + ' ""
    • '), c.find("span").first().html(b), this.search_results.append(c), this.form_field_jq.trigger("chosen:no_results", { chosen: this }) }, Chosen.prototype.no_results_clear = function () { return this.search_results.find(".no-results").remove() }, Chosen.prototype.keydown_arrow = function () { var a; return this.results_showing && this.result_highlight ? (a = this.result_highlight.nextAll("li.active-result").first()) ? this.result_do_highlight(a) : void 0 : this.results_show() }, Chosen.prototype.keyup_arrow = function () { var a; return this.results_showing || this.is_multiple ? this.result_highlight ? (a = this.result_highlight.prevAll("li.active-result"), a.length ? this.result_do_highlight(a.first()) : (this.choices_count() > 0 && this.results_hide(), this.result_clear_highlight())) : void 0 : this.results_show() }, Chosen.prototype.keydown_backstroke = function () { var a; return this.pending_backstroke ? (this.choice_destroy(this.pending_backstroke.find("a").first()), this.clear_backstroke()) : (a = this.search_container.siblings("li.search-choice").last(), a.length && !a.hasClass("search-choice-disabled") ? (this.pending_backstroke = a, this.single_backstroke_delete ? this.keydown_backstroke() : this.pending_backstroke.addClass("search-choice-focus")) : void 0) }, Chosen.prototype.clear_backstroke = function () { return this.pending_backstroke && this.pending_backstroke.removeClass("search-choice-focus"), this.pending_backstroke = null }, Chosen.prototype.keydown_checker = function (a) { var b, c; switch (b = null != (c = a.which) ? c : a.keyCode, this.search_field_scale(), 8 !== b && this.pending_backstroke && this.clear_backstroke(), b) { case 8: this.backstroke_length = this.search_field.val().length; break; case 9: this.results_showing && !this.is_multiple && this.result_select(a), this.mouse_on_container = !1; break; case 13: this.results_showing && a.preventDefault(); break; case 32: this.disable_search && a.preventDefault(); break; case 38: a.preventDefault(), this.keyup_arrow(); break; case 40: a.preventDefault(), this.keydown_arrow() } }, Chosen.prototype.search_field_scale = function () { var b, c, d, e, f, g, h, i, j; if (this.is_multiple) { for (d = 0, h = 0, f = "position:absolute; left: -1000px; top: -1000px; display:none;", g = ["font-size", "font-style", "font-weight", "font-family", "line-height", "text-transform", "letter-spacing"], i = 0, j = g.length; j > i; i++) e = g[i], f += e + ":" + this.search_field.css(e) + ";"; return b = a("
      ", { style: f }), b.text(this.search_field.val()), a("body").append(b), h = b.width() + 25, b.remove(), c = this.container.outerWidth(), h > c - 10 && (h = c - 10), this.search_field.css({ width: h + "px" }) } }, Chosen }(AbstractChosen) }.call(this); \ No newline at end of file From f19ca9c8c50a38a8d7307f75f61d5900d0effadd Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Wed, 14 Jan 2015 03:33:02 -0800 Subject: [PATCH 19/24] RDS collections namig fixes --- WebsitePanel/Database/update_db.sql | 39 ++++++++++++++----- .../Data/DataProvider.cs | 12 +++--- .../RemoteDesktopServicesController.cs | 12 ++++-- .../RemoteDesktopServices/RdsCollection.cs | 2 +- .../Windows2012.cs | 2 +- .../WebsitePanel/RDS/RDSCollections.ascx | 4 +- .../RDS/RDSCreateCollection.ascx.cs | 2 +- .../UserControls/OrganizationMenuControl.cs | 17 ++++---- 8 files changed, 58 insertions(+), 32 deletions(-) diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index 6602dae8..56174015 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -5462,6 +5462,16 @@ CREATE TABLE RDSCollections ) GO +IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'RDSCollections' AND COLUMN_NAME = 'DisplayName') +BEGIN + ALTER TABLE [dbo].[RDSCollections] + ADD DisplayName NVARCHAR(255) +END +GO + +UPDATE [dbo].[RDSCollections] SET DisplayName = [Name] WHERE DisplayName IS NULL + + ALTER TABLE [dbo].[RDSCollectionUsers] DROP CONSTRAINT [FK_RDSCollectionUsers_RDSCollectionId] GO @@ -5744,7 +5754,8 @@ SELECT CR.ID, CR.ItemID, CR.Name, - CR.Description + CR.Description, + CR.DisplayName FROM @RDSCollections AS C INNER JOIN RDSCollections AS CR ON C.RDSCollectionId = CR.ID WHERE C.ItemPosition BETWEEN @StartRow AND @EndRow' @@ -5777,7 +5788,8 @@ SELECT Id, ItemId, Name, - Description + Description, + DisplayName FROM RDSCollections WHERE ItemID = @ItemID GO @@ -5796,9 +5808,10 @@ SELECT TOP 1 Id, Name, ItemId, - Description + Description, + DisplayName FROM RDSCollections - WHERE Name = @Name + WHERE DisplayName = @Name GO @@ -5815,7 +5828,8 @@ SELECT TOP 1 Id, ItemId, Name, - Description + Description, + DisplayName FROM RDSCollections WHERE ID = @ID GO @@ -5829,7 +5843,8 @@ CREATE PROCEDURE [dbo].[AddRDSCollection] @RDSCollectionID INT OUTPUT, @ItemID INT, @Name NVARCHAR(255), - @Description NVARCHAR(255) + @Description NVARCHAR(255), + @DisplayName NVARCHAR(255) ) AS @@ -5837,13 +5852,15 @@ INSERT INTO RDSCollections ( ItemID, Name, - Description + Description, + DisplayName ) VALUES ( @ItemID, @Name, - @Description + @Description, + @DisplayName ) SET @RDSCollectionID = SCOPE_IDENTITY() @@ -5860,7 +5877,8 @@ CREATE PROCEDURE [dbo].[UpdateRDSCollection] @ID INT, @ItemID INT, @Name NVARCHAR(255), - @Description NVARCHAR(255) + @Description NVARCHAR(255), + @DisplayName NVARCHAR(255) ) AS @@ -5868,7 +5886,8 @@ UPDATE RDSCollections SET ItemID = @ItemID, Name = @Name, - Description = @Description + Description = @Description, + DisplayName = @DisplayName WHERE ID = @Id GO diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs index 9e651565..03f345f3 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs @@ -4498,7 +4498,7 @@ namespace WebsitePanel.EnterpriseServer ); } - public static int AddRDSCollection(int itemId, string name, string description) + public static int AddRDSCollection(int itemId, string name, string description, string displayName) { SqlParameter rdsCollectionId = new SqlParameter("@RDSCollectionID", SqlDbType.Int); rdsCollectionId.Direction = ParameterDirection.Output; @@ -4510,7 +4510,8 @@ namespace WebsitePanel.EnterpriseServer rdsCollectionId, new SqlParameter("@ItemID", itemId), new SqlParameter("@Name", name), - new SqlParameter("@Description", description) + new SqlParameter("@Description", description), + new SqlParameter("DisplayName", displayName) ); // read identity @@ -4533,10 +4534,10 @@ namespace WebsitePanel.EnterpriseServer public static void UpdateRDSCollection(RdsCollection collection) { - UpdateRDSCollection(collection.Id, collection.ItemId, collection.Name, collection.Description); + UpdateRDSCollection(collection.Id, collection.ItemId, collection.Name, collection.Description, collection.DisplayName); } - public static void UpdateRDSCollection(int id, int itemId, string name, string description) + public static void UpdateRDSCollection(int id, int itemId, string name, string description, string displayName) { SqlHelper.ExecuteNonQuery( ConnectionString, @@ -4545,7 +4546,8 @@ namespace WebsitePanel.EnterpriseServer new SqlParameter("@Id", id), new SqlParameter("@ItemID", itemId), new SqlParameter("@Name", name), - new SqlParameter("@Description", description) + new SqlParameter("@Description", description), + new SqlParameter("@DisplayName", displayName) ); } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs index e0bbf5b9..f6dd9c39 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs @@ -271,10 +271,9 @@ namespace WebsitePanel.EnterpriseServer } var rds = GetRemoteDesktopServices(GetRemoteDesktopServiceID(org.PackageId)); - - rds.CreateCollection(org.OrganizationId, collection); - - collection.Id = DataProvider.AddRDSCollection(itemId, collection.Name, collection.Description); + collection.Name = GetFormattedCollectionName(collection.DisplayName, org.OrganizationId); + rds.CreateCollection(org.OrganizationId, collection); + collection.Id = DataProvider.AddRDSCollection(itemId, collection.Name, collection.Description, collection.DisplayName); foreach (var server in collection.Servers) { @@ -1247,5 +1246,10 @@ namespace WebsitePanel.EnterpriseServer return rds; } + + private static string GetFormattedCollectionName(string displayName, string organizationId) + { + return string.Format("{0}-{1}", organizationId, displayName.Replace(" ", "_")); + } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/RdsCollection.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/RdsCollection.cs index dda297f9..7fcbbaa5 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/RdsCollection.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/RemoteDesktopServices/RdsCollection.cs @@ -15,7 +15,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices public int ItemId { get; set; } public string Name { get; set; } public string Description { get; set; } + public string DisplayName { get; set; } public List Servers { get; set; } - } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs index bfb230f0..ba3180cd 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs @@ -1123,7 +1123,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices private string GetPolicyName(string organizationId, string collectionName, RdsPolicyTypes policyType) { - string policyName = string.Format("{0}-{1}-", organizationId, collectionName); + string policyName = string.Format("{0}-", collectionName); switch (policyType) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCollections.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCollections.ascx index 6c77a487..30835282 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCollections.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCollections.ascx @@ -45,10 +45,10 @@ OnRowCommand="gvRDSCollections_RowCommand" AllowPaging="True" AllowSorting="True" DataSourceID="odsRDSCollectionsPaged" PageSize="20"> - + - <%# Eval("Name").ToString() %> + <%# Eval("DisplayName").ToString() %> diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx.cs index e8ee55af..5f44ca90 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSCreateCollection.ascx.cs @@ -62,7 +62,7 @@ namespace WebsitePanel.Portal.RDS return; } - RdsCollection collection = new RdsCollection{ Name = txtCollectionName.Text, Servers = servers.GetServers(), Description = "" }; + RdsCollection collection = new RdsCollection{ Name = txtCollectionName.Text, DisplayName = txtCollectionName.Text, Servers = servers.GetServers(), Description = "" }; ES.Services.RDS.AddRdsCollection(PanelRequest.ItemID, collection); Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "rds_collections", "SpaceID=" + PanelSecurity.PackageId)); } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/OrganizationMenuControl.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/OrganizationMenuControl.cs index 371a1adb..6ae6fd78 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/OrganizationMenuControl.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/OrganizationMenuControl.cs @@ -472,13 +472,7 @@ namespace WebsitePanel.Portal.UserControls private void PrepareEnterpriseStorageMenu(MenuItemCollection enterpriseStorageItems) { - enterpriseStorageItems.Add(CreateMenuItem("EnterpriseStorageFolders", "enterprisestorage_folders", @"Icons/enterprisestorage_folders_48.png")); - - //if (ShortMenu) return; - - if (Utils.CheckQouta(Quotas.ENTERPRICESTORAGE_DRIVEMAPS, Cntx)) - enterpriseStorageItems.Add(CreateMenuItem("EnterpriseStorageDriveMaps", "enterprisestorage_drive_maps", @"Icons/enterprisestorage_drive_maps_48.png")); - + enterpriseStorageItems.Add(CreateMenuItem("EnterpriseStorageFolders", "enterprisestorage_folders", @"Icons/enterprisestorage_folders_48.png")); } private void PrepareRDSMenuRoot(MenuItemCollection items) @@ -507,7 +501,14 @@ namespace WebsitePanel.Portal.UserControls rdsItems.Add(CreateMenuItem("RDSCollections", "rds_collections", null)); if (Utils.CheckQouta(Quotas.RDS_SERVERS, Cntx) && (PanelSecurity.LoggedUser.Role != UserRole.User)) - rdsItems.Add(CreateMenuItem("RDSServers", "rds_servers", null)); + { + rdsItems.Add(CreateMenuItem("RDSServers", "rds_servers", null)); + } + + if (Utils.CheckQouta(Quotas.ENTERPRICESTORAGE_DRIVEMAPS, Cntx)) + { + rdsItems.Add(CreateMenuItem("EnterpriseStorageDriveMaps", "enterprisestorage_drive_maps", @"Icons/enterprisestorage_drive_maps_48.png")); + } } private MenuItem CreateMenuItem(string text, string key) From 86f4be82a22473af6633c8f68e2d9e4e4fb301bf Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Wed, 14 Jan 2015 11:38:22 -0500 Subject: [PATCH 20/24] Added tag build-2.1.0.531 for changeset 318cf3143f42 From cf079b2d1189b5fa76932204288ba5c2310660b1 Mon Sep 17 00:00:00 2001 From: Christiaan Swiers Date: Thu, 15 Jan 2015 12:43:22 +0100 Subject: [PATCH 21/24] Added the DefaultTopPackage checkbox to the space page. --- .../UpdatePackage_storedProcedure.sql | Bin 0 -> 7714 bytes .../Packages/PackageInfo.cs | 7 + .../PackagesProxy.cs | 361 ++++++++++-------- .../Data/DataProvider.cs | 5 +- .../Packages/PackageController.cs | 17 +- .../esPackages.asmx.cs | 5 + .../App_Themes/Default/Styles/Skin.css | 4 +- .../WebsitePanel/SpaceDetails.ascx | 3 + .../WebsitePanel/SpaceDetails.ascx.cs | 24 +- .../SpaceDetails.ascx.designer.cs | 12 +- .../WebsitePanel/UserSpaces.ascx.cs | 1 + 11 files changed, 266 insertions(+), 173 deletions(-) create mode 100644 WebsitePanel/Database/UpdatePackage_storedProcedure.sql diff --git a/WebsitePanel/Database/UpdatePackage_storedProcedure.sql b/WebsitePanel/Database/UpdatePackage_storedProcedure.sql new file mode 100644 index 0000000000000000000000000000000000000000..10c8ba58e044e1ab5a180388b788fbbd83a90729 GIT binary patch literal 7714 zcmeHMTW=dh6rNWj@gMdrY1O1DkUms^;`ovnT08ZnEkaf0CMF5EPKfOSe;)Y0IeRi^ zc4r;aG|&fR+3UHS`)$tbUw@9=z_ncFesnM0#JzQMckUMWcjU%yhUe71cAvY?+=1)) z=RGocj2xucLFR|_pJ-TE*~2#)qK7R_6IQ13wpbFYOuC^P}pgjRmS`Vv-I0LKM167SETS=!Ii<$r!H{UdPE za}CgMLY97lj|0$JKx=;#D3Bv!+w{LRw+FnmJuOa6WS~F8_`&u12tG9_tP;b$oU4I< za%Kyk4A{=FpE}6A)lV^A00(za!&&Y>+u&b!1|F1JAABg}W{JxOz_JI)184Uz^9{Z` zo=zW9b$n#>y{7t*cfky5Q;^;4Ci2 zG2?OxuFKF6*-iqcy=^weNIdXJ58wfV@*&p^leJ=fY^O7c^r z#nq?Yv(syBpP8pgxISc@f;$^Y#Mc7-F(^*+*b{lk`_0*&d)q!gvAV_a&P*e|f8_Pp z0asm6WA*tCxu4_gT0e77jqy%SB#R032)kGZi9gn-p>|kphtNwO zTIEYL=bAL`C)^gv*{(gZjfF0b#{fcuD z`yf(af5fvLpO^Tj-HMFDNuPN6z1zBzIv+|VVwa{j5yh-i-cfai=1vP;t|0RT=Ddw??t`*10>1A?U$87yUao zNS9IcRNo-&qtiIZJG~+Lje6d3P>;N`Y@k!C`+h`YQnPVcI`yD5Y!BAuZExA*xSwB} z$Je1oO_Gahj^qw6MOk1iFV$T#d5iN_F*Au(i&3gMi||tamZ)bMJE>|mf;>&=oBgoJ z7Ag!YEHxBv`YabAo20U*u4?4Pwkv0o6prF9#Z}HS0$rTf{jmoqrC^D$uPXZ}OnP16 zSJgMQ*Qz~=XPw+59NoM#_9TvYV{7e5pHc40D}<=>CZ3?QerKp5Jb#6=6>sHuvXb1` za<6=B^L8hAWK7TIW=3Njr=4(zFOd~PkawB4u#(qf&f`qXbDzAg(AzyL3n9yysD)a` zn{&z}P?o0lG4>tGra9q=mi0`WnH7zcR8`*1YqH({0@j=Qv#Vx5(QvSmm6a7b<~s8y z-(WYf+GU<4v;3Bv)s3>wU{N_G@D`M^la9Rc;2Vroru*7`3n=EM5M!)EJ!EzI$xStz zzRixFltQ)OsOIYib5b8!Df6Qt@RHhU`v`QL@9zUH7gzpqXg|GRl XZf_Z5Imu@O7@pzN@%FXQ_8k5<_33P6 literal 0 HcmV?d00001 diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/PackageInfo.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/PackageInfo.cs index bbcd7fca..0d7ba7fb 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/PackageInfo.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Packages/PackageInfo.cs @@ -52,6 +52,7 @@ namespace WebsitePanel.EnterpriseServer int diskSpaceQuota; int bandWidthQuota; bool overrideQuotas; + bool defaultTopPackage; HostingPlanGroupInfo[] groups; HostingPlanQuotaInfo[] quotas; @@ -155,6 +156,12 @@ namespace WebsitePanel.EnterpriseServer set { this.overrideQuotas = value; } } + public bool DefaultTopPackage + { + get { return this.defaultTopPackage; } + set { this.defaultTopPackage = value; } + } + public HostingPlanGroupInfo[] Groups { get { return this.groups; } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/PackagesProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/PackagesProxy.cs index fb9832c9..78136b51 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/PackagesProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/PackagesProxy.cs @@ -1,35 +1,7 @@ -// Copyright (c) 2014, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.6387 +// Runtime Version:2.0.50727.8009 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -37,7 +9,7 @@ //------------------------------------------------------------------------------ // -// This source code was auto-generated by wsdl, Version=2.0.50727.3038. +// This source code was auto-generated by wsdl, Version=2.0.50727.42. // namespace WebsitePanel.EnterpriseServer { using System.Xml.Serialization; @@ -50,7 +22,7 @@ namespace WebsitePanel.EnterpriseServer { /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name="esPackagesSoap", Namespace="http://smbsaas/websitepanel/enterpriseserver")] @@ -120,6 +92,8 @@ namespace WebsitePanel.EnterpriseServer { private System.Threading.SendOrPostCallback UpdatePackageSettingsOperationCompleted; + private System.Threading.SendOrPostCallback SetDefaultTopPackageOperationCompleted; + private System.Threading.SendOrPostCallback GetPackageAddonsOperationCompleted; private System.Threading.SendOrPostCallback GetPackageAddonOperationCompleted; @@ -277,6 +251,9 @@ namespace WebsitePanel.EnterpriseServer { /// public event UpdatePackageSettingsCompletedEventHandler UpdatePackageSettingsCompleted; + /// + public event SetDefaultTopPackageCompletedEventHandler SetDefaultTopPackageCompleted; + /// public event GetPackageAddonsCompletedEventHandler GetPackageAddonsCompleted; @@ -1781,6 +1758,50 @@ namespace WebsitePanel.EnterpriseServer { } } + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SetDefaultTopPackage", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public bool SetDefaultTopPackage(int userId, int packageId) { + object[] results = this.Invoke("SetDefaultTopPackage", new object[] { + userId, + packageId}); + return ((bool)(results[0])); + } + + /// + public System.IAsyncResult BeginSetDefaultTopPackage(int userId, int packageId, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("SetDefaultTopPackage", new object[] { + userId, + packageId}, callback, asyncState); + } + + /// + public bool EndSetDefaultTopPackage(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((bool)(results[0])); + } + + /// + public void SetDefaultTopPackageAsync(int userId, int packageId) { + this.SetDefaultTopPackageAsync(userId, packageId, null); + } + + /// + public void SetDefaultTopPackageAsync(int userId, int packageId, object userState) { + if ((this.SetDefaultTopPackageOperationCompleted == null)) { + this.SetDefaultTopPackageOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetDefaultTopPackageOperationCompleted); + } + this.InvokeAsync("SetDefaultTopPackage", new object[] { + userId, + packageId}, this.SetDefaultTopPackageOperationCompleted, userState); + } + + private void OnSetDefaultTopPackageOperationCompleted(object arg) { + if ((this.SetDefaultTopPackageCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.SetDefaultTopPackageCompleted(this, new SetDefaultTopPackageCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + /// [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetPackageAddons", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] public System.Data.DataSet GetPackageAddons(int packageId) { @@ -2743,7 +2764,7 @@ namespace WebsitePanel.EnterpriseServer { bool createFtpAccount, string ftpAccountName, bool createMailAccount, - string hostName, + string hostName, bool createZoneRecord) { object[] results = this.Invoke("CreateUserWizard", new object[] { parentPackageId, @@ -2791,8 +2812,8 @@ namespace WebsitePanel.EnterpriseServer { bool createFtpAccount, string ftpAccountName, bool createMailAccount, - string hostName, - bool createZoneRecord, + string hostName, + bool createZoneRecord, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CreateUserWizard", new object[] { @@ -2846,7 +2867,7 @@ namespace WebsitePanel.EnterpriseServer { bool createFtpAccount, string ftpAccountName, bool createMailAccount, - string hostName, + string hostName, bool createZoneRecord) { this.CreateUserWizardAsync(parentPackageId, username, password, roleId, firstName, lastName, email, secondaryEmail, htmlMail, sendAccountLetter, createPackage, planId, sendPackageLetter, domainName, tempDomain, createWebSite, createFtpAccount, ftpAccountName, createMailAccount, hostName, createZoneRecord, null); } @@ -2872,8 +2893,8 @@ namespace WebsitePanel.EnterpriseServer { bool createFtpAccount, string ftpAccountName, bool createMailAccount, - string hostName, - bool createZoneRecord, + string hostName, + bool createZoneRecord, object userState) { if ((this.CreateUserWizardOperationCompleted == null)) { this.CreateUserWizardOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateUserWizardOperationCompleted); @@ -3260,11 +3281,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetHostingPlansCompletedEventHandler(object sender, GetHostingPlansCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetHostingPlansCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3286,11 +3307,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetHostingAddonsCompletedEventHandler(object sender, GetHostingAddonsCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetHostingAddonsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3312,11 +3333,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetHostingPlanCompletedEventHandler(object sender, GetHostingPlanCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetHostingPlanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3338,11 +3359,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetHostingPlanQuotasCompletedEventHandler(object sender, GetHostingPlanQuotasCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetHostingPlanQuotasCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3364,11 +3385,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetHostingPlanContextCompletedEventHandler(object sender, GetHostingPlanContextCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetHostingPlanContextCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3390,11 +3411,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetUserAvailableHostingPlansCompletedEventHandler(object sender, GetUserAvailableHostingPlansCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetUserAvailableHostingPlansCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3416,11 +3437,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetUserAvailableHostingAddonsCompletedEventHandler(object sender, GetUserAvailableHostingAddonsCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetUserAvailableHostingAddonsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3442,11 +3463,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void AddHostingPlanCompletedEventHandler(object sender, AddHostingPlanCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class AddHostingPlanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3468,11 +3489,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void UpdateHostingPlanCompletedEventHandler(object sender, UpdateHostingPlanCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class UpdateHostingPlanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3494,11 +3515,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void DeleteHostingPlanCompletedEventHandler(object sender, DeleteHostingPlanCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class DeleteHostingPlanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3520,11 +3541,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackagesCompletedEventHandler(object sender, GetPackagesCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackagesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3546,11 +3567,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetNestedPackagesSummaryCompletedEventHandler(object sender, GetNestedPackagesSummaryCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetNestedPackagesSummaryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3572,11 +3593,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetRawPackagesCompletedEventHandler(object sender, GetRawPackagesCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetRawPackagesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3598,11 +3619,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void SearchServiceItemsPagedCompletedEventHandler(object sender, SearchServiceItemsPagedCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class SearchServiceItemsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3624,11 +3645,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackagesPagedCompletedEventHandler(object sender, GetPackagesPagedCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackagesPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3650,11 +3671,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetNestedPackagesPagedCompletedEventHandler(object sender, GetNestedPackagesPagedCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetNestedPackagesPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3676,11 +3697,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackagePackagesCompletedEventHandler(object sender, GetPackagePackagesCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackagePackagesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3702,11 +3723,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetMyPackagesCompletedEventHandler(object sender, GetMyPackagesCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetMyPackagesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3728,11 +3749,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetRawMyPackagesCompletedEventHandler(object sender, GetRawMyPackagesCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetRawMyPackagesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3754,11 +3775,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackageCompletedEventHandler(object sender, GetPackageCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3780,11 +3801,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackageContextCompletedEventHandler(object sender, GetPackageContextCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackageContextCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3806,11 +3827,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackageQuotasCompletedEventHandler(object sender, GetPackageQuotasCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackageQuotasCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3832,11 +3853,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackageQuotasForEditCompletedEventHandler(object sender, GetPackageQuotasForEditCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackageQuotasForEditCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3858,11 +3879,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void AddPackageCompletedEventHandler(object sender, AddPackageCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class AddPackageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3884,11 +3905,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void UpdatePackageCompletedEventHandler(object sender, UpdatePackageCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class UpdatePackageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3910,11 +3931,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void UpdatePackageLiteralCompletedEventHandler(object sender, UpdatePackageLiteralCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class UpdatePackageLiteralCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3936,11 +3957,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void UpdatePackageNameCompletedEventHandler(object sender, UpdatePackageNameCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class UpdatePackageNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3962,11 +3983,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void DeletePackageCompletedEventHandler(object sender, DeletePackageCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class DeletePackageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -3988,11 +4009,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void ChangePackageStatusCompletedEventHandler(object sender, ChangePackageStatusCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class ChangePackageStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4014,11 +4035,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void EvaluateUserPackageTempateCompletedEventHandler(object sender, EvaluateUserPackageTempateCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class EvaluateUserPackageTempateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4040,11 +4061,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackageSettingsCompletedEventHandler(object sender, GetPackageSettingsCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackageSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4066,11 +4087,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void UpdatePackageSettingsCompletedEventHandler(object sender, UpdatePackageSettingsCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class UpdatePackageSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4092,11 +4113,37 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + public delegate void SetDefaultTopPackageCompletedEventHandler(object sender, SetDefaultTopPackageCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class SetDefaultTopPackageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal SetDefaultTopPackageCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public bool Result { + get { + this.RaiseExceptionIfNecessary(); + return ((bool)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackageAddonsCompletedEventHandler(object sender, GetPackageAddonsCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackageAddonsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4118,11 +4165,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackageAddonCompletedEventHandler(object sender, GetPackageAddonCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackageAddonCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4144,11 +4191,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void AddPackageAddonByIdCompletedEventHandler(object sender, AddPackageAddonByIdCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class AddPackageAddonByIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4170,11 +4217,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void AddPackageAddonCompletedEventHandler(object sender, AddPackageAddonCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class AddPackageAddonCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4196,11 +4243,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void AddPackageAddonLiteralCompletedEventHandler(object sender, AddPackageAddonLiteralCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class AddPackageAddonLiteralCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4222,11 +4269,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void UpdatePackageAddonCompletedEventHandler(object sender, UpdatePackageAddonCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class UpdatePackageAddonCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4248,11 +4295,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void UpdatePackageAddonLiteralCompletedEventHandler(object sender, UpdatePackageAddonLiteralCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class UpdatePackageAddonLiteralCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4274,11 +4321,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void DeletePackageAddonCompletedEventHandler(object sender, DeletePackageAddonCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class DeletePackageAddonCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4300,11 +4347,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetSearchableServiceItemTypesCompletedEventHandler(object sender, GetSearchableServiceItemTypesCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetSearchableServiceItemTypesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4326,11 +4373,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetRawPackageItemsByTypeCompletedEventHandler(object sender, GetRawPackageItemsByTypeCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetRawPackageItemsByTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4352,11 +4399,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetRawPackageItemsPagedCompletedEventHandler(object sender, GetRawPackageItemsPagedCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetRawPackageItemsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4378,11 +4425,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetRawPackageItemsCompletedEventHandler(object sender, GetRawPackageItemsCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetRawPackageItemsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4404,11 +4451,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void DetachPackageItemCompletedEventHandler(object sender, DetachPackageItemCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class DetachPackageItemCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4430,11 +4477,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void MovePackageItemCompletedEventHandler(object sender, MovePackageItemCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class MovePackageItemCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4456,11 +4503,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackageQuotaCompletedEventHandler(object sender, GetPackageQuotaCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackageQuotaCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4482,11 +4529,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void SendAccountSummaryLetterCompletedEventHandler(object sender, SendAccountSummaryLetterCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class SendAccountSummaryLetterCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4508,11 +4555,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void SendPackageSummaryLetterCompletedEventHandler(object sender, SendPackageSummaryLetterCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class SendPackageSummaryLetterCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4534,11 +4581,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetEvaluatedPackageTemplateBodyCompletedEventHandler(object sender, GetEvaluatedPackageTemplateBodyCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetEvaluatedPackageTemplateBodyCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4560,11 +4607,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetEvaluatedAccountTemplateBodyCompletedEventHandler(object sender, GetEvaluatedAccountTemplateBodyCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetEvaluatedAccountTemplateBodyCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4586,11 +4633,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void AddPackageWithResourcesCompletedEventHandler(object sender, AddPackageWithResourcesCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class AddPackageWithResourcesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4612,11 +4659,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void CreateUserWizardCompletedEventHandler(object sender, CreateUserWizardCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class CreateUserWizardCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4638,11 +4685,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackagesBandwidthPagedCompletedEventHandler(object sender, GetPackagesBandwidthPagedCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackagesBandwidthPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4664,11 +4711,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackagesDiskspacePagedCompletedEventHandler(object sender, GetPackagesDiskspacePagedCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackagesDiskspacePagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4690,11 +4737,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackageBandwidthCompletedEventHandler(object sender, GetPackageBandwidthCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackageBandwidthCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4716,11 +4763,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetPackageDiskspaceCompletedEventHandler(object sender, GetPackageDiskspaceCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetPackageDiskspaceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4742,11 +4789,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetOverusageSummaryReportCompletedEventHandler(object sender, GetOverusageSummaryReportCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetOverusageSummaryReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4768,11 +4815,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetDiskspaceOverusageDetailsReportCompletedEventHandler(object sender, GetDiskspaceOverusageDetailsReportCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetDiskspaceOverusageDetailsReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { @@ -4794,11 +4841,11 @@ namespace WebsitePanel.EnterpriseServer { } /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] public delegate void GetBandwidthOverusageDetailsReportCompletedEventHandler(object sender, GetBandwidthOverusageDetailsReportCompletedEventArgs e); /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class GetBandwidthOverusageDetailsReportCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs index 9e651565..bf343f7e 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs @@ -1580,7 +1580,7 @@ namespace WebsitePanel.EnterpriseServer public static DataSet UpdatePackage(int actorId, int packageId, int planId, string packageName, string packageComments, int statusId, DateTime purchaseDate, - bool overrideQuotas, string quotasXml) + bool overrideQuotas, string quotasXml, bool defaultTopPackage) { return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure, ObjectQualifier + "UpdatePackage", @@ -1592,7 +1592,8 @@ namespace WebsitePanel.EnterpriseServer new SqlParameter("@planId", planId), new SqlParameter("@purchaseDate", purchaseDate), new SqlParameter("@overrideQuotas", overrideQuotas), - new SqlParameter("@quotasXml", quotasXml)); + new SqlParameter("@quotasXml", quotasXml), + new SqlParameter("@defaultTopPackage", defaultTopPackage)); } public static void UpdatePackageName(int actorId, int packageId, string packageName, diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs index 623b6a08..3d58882c 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs @@ -778,7 +778,7 @@ namespace WebsitePanel.EnterpriseServer // update package result.ExceedingQuotas = DataProvider.UpdatePackage(SecurityContext.User.UserId, package.PackageId, package.PlanId, package.PackageName, package.PackageComments, package.StatusId, - package.PurchaseDate, package.OverrideQuotas, quotasXml); + package.PurchaseDate, package.OverrideQuotas, quotasXml, package.DefaultTopPackage); if (result.ExceedingQuotas.Tables[0].Rows.Count > 0) result.Result = BusinessErrorCodes.ERROR_PACKAGE_QUOTA_EXCEED; @@ -1742,6 +1742,21 @@ namespace WebsitePanel.EnterpriseServer //} } + public static bool SetDefaultTopPackage(int userId, int packageId) { + List lpi = GetPackages(userId); + foreach(PackageInfo pi in lpi) { + if(pi.DefaultTopPackage) { + pi.DefaultTopPackage = false; + UpdatePackage(pi); + } + if(pi.PackageId == packageId) { + pi.DefaultTopPackage = true; + UpdatePackage(pi); + } + } + return true; + } + #endregion #region Quotas diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esPackages.asmx.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esPackages.asmx.cs index e3cc7331..75409bfb 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esPackages.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esPackages.asmx.cs @@ -262,6 +262,11 @@ namespace WebsitePanel.EnterpriseServer return PackageController.UpdatePackageSettings(settings); } + [WebMethod] + public bool SetDefaultTopPackage(int userId, int packageId) { + return PackageController.SetDefaultTopPackage(userId, packageId); + } + #endregion #region Package Add-ons diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css index dc9bab11..a68ecf37 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css @@ -294,6 +294,4 @@ p.warningText {font-size:14px; color:Red; text-align:center;} .Hidden {display: none;} .LinkText {color:#428bca;} .WrapText { white-space: normal;} -.activePageBlock, .pageBlock { display: inline-block; height: 24px; margin: 0 2px; width: 26px; font-size: 11px; line-height: 23px; text-align: center; white-space:nowrap; } -.activePageBlock { border: none; color: #222; font-weight: 600; } -.pageBlock { border: 1px solid #e6e6e6; border-radius: 1px; cursor: pointer; } \ No newline at end of file +.chosen-container { margin-top: -30px; } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceDetails.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceDetails.ascx index 57777d32..a50215e9 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceDetails.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceDetails.ascx @@ -34,6 +34,9 @@ +

      // This code was generated by a tool. -// Runtime Version:2.0.50727.1873 // // Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// the code is regenerated. // //------------------------------------------------------------------------------ @@ -130,6 +129,15 @@ namespace WebsitePanel.Portal { /// protected global::System.Web.UI.WebControls.HyperLink lnkDelete; + /// + /// chkDefault control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox chkDefault; + /// /// StatusHeader control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs index 3a9e0524..46249116 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx.cs @@ -63,6 +63,7 @@ namespace WebsitePanel.Portal if(!IsPostBack) { myPackages = new PackagesHelper().GetMyPackages(); + myPackages.Tables[0].DefaultView.Sort = "DefaultTopPackage DESC, PackageId ASC"; ddlPackageSelect.DataSource = myPackages.Tables[0].DefaultView; ddlPackageSelect.DataTextField = myPackages.Tables[0].Columns[2].ColumnName; ddlPackageSelect.DataValueField = myPackages.Tables[0].Columns[0].ColumnName; From b1edd255b82435f40b619a0ed0e6637281fcd33a Mon Sep 17 00:00:00 2001 From: Christiaan Swiers Date: Thu, 15 Jan 2015 15:09:33 +0100 Subject: [PATCH 22/24] Added databasechanges for default top package in user space --- WebsitePanel/Database/update_db.sql | 207 +++++++++++++++++++++++++++- 1 file changed, 206 insertions(+), 1 deletion(-) diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index 1099930f..a68e2c13 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -7360,4 +7360,209 @@ LEFT OUTER JOIN ServiceItems AS MD ON D.MailDomainID = MD.ItemID LEFT OUTER JOIN ServiceItems AS Z ON D.ZoneItemID = Z.ItemID RETURN -GO \ No newline at end of file +GO + +IF NOT EXISTS(select 1 from sys.columns COLS INNER JOIN sys.objects OBJS ON OBJS.object_id=COLS.object_id and OBJS.type='U' AND OBJS.name='Packages' AND COLS.name='DefaultTopPackage') +BEGIN +ALTER TABLE [dbo].[Packages] ADD + [DefaultTopPackage] [bit] DEFAULT 0 NOT NULL +END +GO + + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetMyPackages') +DROP PROCEDURE GetMyPackages +GO +CREATE PROCEDURE [dbo].[GetMyPackages] +( + @ActorID int, + @UserID int +) +AS + +-- check rights +IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0 +RAISERROR('You are not allowed to access this account', 16, 1) + +SELECT + P.PackageID, + P.ParentPackageID, + P.PackageName, + P.StatusID, + P.PlanID, + P.PurchaseDate, + + dbo.GetItemComments(P.PackageID, 'PACKAGE', @ActorID) AS Comments, + + -- server + ISNULL(P.ServerID, 0) AS ServerID, + ISNULL(S.ServerName, 'None') AS ServerName, + ISNULL(S.Comments, '') AS ServerComments, + ISNULL(S.VirtualServer, 1) AS VirtualServer, + + -- hosting plan + HP.PlanName, + + -- user + P.UserID, + U.Username, + U.FirstName, + U.LastName, + U.FullName, + U.RoleID, + U.Email, + + P.DefaultTopPackage +FROM Packages AS P +INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID +LEFT OUTER JOIN Servers AS S ON P.ServerID = S.ServerID +LEFT OUTER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID +WHERE P.UserID = @UserID +RETURN +GO + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetPackages') +DROP PROCEDURE GetPackages +GO +CREATE PROCEDURE [dbo].[GetPackages] +( + @ActorID int, + @UserID int +) +AS + +SELECT + P.PackageID, + P.ParentPackageID, + P.PackageName, + P.StatusID, + P.PurchaseDate, + + -- server + ISNULL(P.ServerID, 0) AS ServerID, + ISNULL(S.ServerName, 'None') AS ServerName, + ISNULL(S.Comments, '') AS ServerComments, + ISNULL(S.VirtualServer, 1) AS VirtualServer, + + -- hosting plan + P.PlanID, + HP.PlanName, + + -- user + P.UserID, + U.Username, + U.FirstName, + U.LastName, + U.RoleID, + U.Email, + + P.DefaultTopPackage +FROM Packages AS P +INNER JOIN Users AS U ON P.UserID = U.UserID +INNER JOIN Servers AS S ON P.ServerID = S.ServerID +INNER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID +WHERE + P.UserID = @UserID +RETURN + +GO + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetPackage') +DROP PROCEDURE GetPackage +GO +CREATE PROCEDURE [dbo].[GetPackage] +( + @PackageID int, + @ActorID int +) +AS + +-- Note: ActorID is not verified +-- check both requested and parent package + +SELECT + P.PackageID, + P.ParentPackageID, + P.UserID, + P.PackageName, + P.PackageComments, + P.ServerID, + P.StatusID, + P.PlanID, + P.PurchaseDate, + P.OverrideQuotas, + P.DefaultTopPackage +FROM Packages AS P +WHERE P.PackageID = @PackageID +RETURN + +GO + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdatePackage') +DROP PROCEDURE UpdatePackage +GO +CREATE PROCEDURE [dbo].[UpdatePackage] +( + @ActorID int, + @PackageID int, + @PackageName nvarchar(300), + @PackageComments ntext, + @StatusID int, + @PlanID int, + @PurchaseDate datetime, + @OverrideQuotas bit, + @QuotasXml ntext, + @DefaultTopPackage bit +) +AS + +-- check rights +IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0 +RAISERROR('You are not allowed to access this package', 16, 1) + +BEGIN TRAN + +DECLARE @ParentPackageID int +DECLARE @OldPlanID int + +SELECT @ParentPackageID = ParentPackageID, @OldPlanID = PlanID FROM Packages +WHERE PackageID = @PackageID + +-- update package +UPDATE Packages SET + PackageName = @PackageName, + PackageComments = @PackageComments, + StatusID = @StatusID, + PlanID = @PlanID, + PurchaseDate = @PurchaseDate, + OverrideQuotas = @OverrideQuotas, + DefaultTopPackage = @DefaultTopPackage +WHERE + PackageID = @PackageID + +-- update quotas (if required) +EXEC UpdatePackageQuotas @ActorID, @PackageID, @QuotasXml + +-- check resulting quotas +DECLARE @ExceedingQuotas AS TABLE (QuotaID int, QuotaName nvarchar(50), QuotaValue int) + +-- check exceeding quotas if plan has been changed +IF (@OldPlanID <> @PlanID) OR (@OverrideQuotas = 1) +BEGIN + INSERT INTO @ExceedingQuotas + SELECT * FROM dbo.GetPackageExceedingQuotas(@ParentPackageID) WHERE QuotaValue > 0 +END + +SELECT * FROM @ExceedingQuotas + +IF EXISTS(SELECT * FROM @ExceedingQuotas) +BEGIN + ROLLBACK TRAN + RETURN +END + + +COMMIT TRAN +RETURN + +GO From 5b55f0fbedca9bf99c25e2e510c76148ea754fcb Mon Sep 17 00:00:00 2001 From: Christiaan Swiers Date: Thu, 15 Jan 2015 15:14:38 +0100 Subject: [PATCH 23/24] Deleted UpdatePackage_storedProcedure.sql --- .../Database/UpdatePackage_storedProcedure.sql | Bin 7714 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 WebsitePanel/Database/UpdatePackage_storedProcedure.sql diff --git a/WebsitePanel/Database/UpdatePackage_storedProcedure.sql b/WebsitePanel/Database/UpdatePackage_storedProcedure.sql deleted file mode 100644 index 10c8ba58e044e1ab5a180388b788fbbd83a90729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7714 zcmeHMTW=dh6rNWj@gMdrY1O1DkUms^;`ovnT08ZnEkaf0CMF5EPKfOSe;)Y0IeRi^ zc4r;aG|&fR+3UHS`)$tbUw@9=z_ncFesnM0#JzQMckUMWcjU%yhUe71cAvY?+=1)) z=RGocj2xucLFR|_pJ-TE*~2#)qK7R_6IQ13wpbFYOuC^P}pgjRmS`Vv-I0LKM167SETS=!Ii<$r!H{UdPE za}CgMLY97lj|0$JKx=;#D3Bv!+w{LRw+FnmJuOa6WS~F8_`&u12tG9_tP;b$oU4I< za%Kyk4A{=FpE}6A)lV^A00(za!&&Y>+u&b!1|F1JAABg}W{JxOz_JI)184Uz^9{Z` zo=zW9b$n#>y{7t*cfky5Q;^;4Ci2 zG2?OxuFKF6*-iqcy=^weNIdXJ58wfV@*&p^leJ=fY^O7c^r z#nq?Yv(syBpP8pgxISc@f;$^Y#Mc7-F(^*+*b{lk`_0*&d)q!gvAV_a&P*e|f8_Pp z0asm6WA*tCxu4_gT0e77jqy%SB#R032)kGZi9gn-p>|kphtNwO zTIEYL=bAL`C)^gv*{(gZjfF0b#{fcuD z`yf(af5fvLpO^Tj-HMFDNuPN6z1zBzIv+|VVwa{j5yh-i-cfai=1vP;t|0RT=Ddw??t`*10>1A?U$87yUao zNS9IcRNo-&qtiIZJG~+Lje6d3P>;N`Y@k!C`+h`YQnPVcI`yD5Y!BAuZExA*xSwB} z$Je1oO_Gahj^qw6MOk1iFV$T#d5iN_F*Au(i&3gMi||tamZ)bMJE>|mf;>&=oBgoJ z7Ag!YEHxBv`YabAo20U*u4?4Pwkv0o6prF9#Z}HS0$rTf{jmoqrC^D$uPXZ}OnP16 zSJgMQ*Qz~=XPw+59NoM#_9TvYV{7e5pHc40D}<=>CZ3?QerKp5Jb#6=6>sHuvXb1` za<6=B^L8hAWK7TIW=3Njr=4(zFOd~PkawB4u#(qf&f`qXbDzAg(AzyL3n9yysD)a` zn{&z}P?o0lG4>tGra9q=mi0`WnH7zcR8`*1YqH({0@j=Qv#Vx5(QvSmm6a7b<~s8y z-(WYf+GU<4v;3Bv)s3>wU{N_G@D`M^la9Rc;2Vroru*7`3n=EM5M!)EJ!EzI$xStz zzRixFltQ)OsOIYib5b8!Df6Qt@RHhU`v`QL@9zUH7gzpqXg|GRl XZf_Z5Imu@O7@pzN@%FXQ_8k5<_33P6 From 388ed0e69e1dc2bfd4f1e71f5fe1b5f61cb00b02 Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Thu, 15 Jan 2015 11:57:12 -0500 Subject: [PATCH 24/24] Added tag build-2.1.0.532 for changeset 156e208b6829