From 6f67c2b52b09791f2ef822675a8d07b51abdd8da Mon Sep 17 00:00:00 2001 From: dev_amdtel Date: Wed, 4 Sep 2013 20:16:48 +0400 Subject: [PATCH] Added check "Enterprise Voice Allowed" quota. In page "Add/Edit Phone numbers" shows only the servers that have a lync service configured. Fix to set focus on the search box when you go to the home page of the panel. --- .../Lync/LyncAddLyncUserPlan.ascx.cs | 74 +++++++++---------- .../WebsitePanel/Lync/LyncCreateUser.ascx.cs | 21 ++++-- .../WebsitePanel/Lync/LyncEditUser.ascx.cs | 21 ++++-- .../PhoneNumbersAddPhoneNumber.ascx.cs | 11 ++- .../PhoneNumbersEditPhoneNumber.ascx.cs | 12 ++- .../UserControls/SearchBox.ascx.cs | 6 ++ .../WebsitePanel/UserCustomers.ascx.cs | 5 +- .../WebsitePanel/UserCustomersSummary.ascx.cs | 3 + 8 files changed, 98 insertions(+), 55 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncAddLyncUserPlan.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncAddLyncUserPlan.ascx.cs index 236327ec..119ebfdd 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncAddLyncUserPlan.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncAddLyncUserPlan.ascx.cs @@ -42,12 +42,10 @@ namespace WebsitePanel.Portal.Lync { protected void Page_Load(object sender, EventArgs e) { - PackageContext cntx = null; + PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); if (!IsPostBack) { - cntx = ES.Services.Packages.GetPackageContext(PanelSecurity.PackageId); - string[] archivePolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Archiving, null); if (archivePolicy != null) { @@ -95,22 +93,15 @@ namespace WebsitePanel.Portal.Lync */ chkRemoteUserAccess.Checked = plan.RemoteUserAccess; - chkAllowOrganizeMeetingsWithExternalAnonymous.Checked = plan.AllowOrganizeMeetingsWithExternalAnonymous; - ddTelephony.SelectedIndex = plan.Telephony; + Utils.SelectListItem(ddTelephony, plan.Telephony); tbServerURI.Text = plan.ServerURI; - locTitle.Text = plan.LyncUserPlanName; - this.DisableControls = true; - - string planArchivePolicy = ""; - if (plan.ArchivePolicy != null) planArchivePolicy = plan.ArchivePolicy; - string planTelephonyDialPlanPolicy = ""; - if (plan.TelephonyDialPlanPolicy != null) planTelephonyDialPlanPolicy = plan.TelephonyDialPlanPolicy; - string planTelephonyVoicePolicy = ""; - if (plan.TelephonyVoicePolicy != null) planTelephonyVoicePolicy = plan.TelephonyVoicePolicy; + string planArchivePolicy = ""; if (plan.ArchivePolicy != null) planArchivePolicy = plan.ArchivePolicy; + string planTelephonyDialPlanPolicy = ""; if (plan.TelephonyDialPlanPolicy != null) planTelephonyDialPlanPolicy = plan.TelephonyDialPlanPolicy; + string planTelephonyVoicePolicy = ""; if (plan.TelephonyVoicePolicy != null) planTelephonyVoicePolicy = plan.TelephonyVoicePolicy; ddArchivingPolicy.Items.Clear(); ddArchivingPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planArchivePolicy.Replace("Tag:", ""), planArchivePolicy)); @@ -119,12 +110,16 @@ namespace WebsitePanel.Portal.Lync ddTelephonyVoicePolicy.Items.Clear(); ddTelephonyVoicePolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planTelephonyVoicePolicy.Replace("Tag:", ""), planTelephonyVoicePolicy)); + locTitle.Text = plan.LyncUserPlanName; + this.DisableControls = true; } else { chkIM.Checked = true; chkIM.Enabled = false; + // chkNone.Checked = true; because not used + if (cntx != null) { foreach (QuotaValueInfo quota in cntx.QuotasArray) @@ -139,10 +134,6 @@ namespace WebsitePanel.Portal.Lync chkConferencing.Checked = Convert.ToBoolean(quota.QuotaAllocatedValue); chkConferencing.Enabled = Convert.ToBoolean(quota.QuotaAllocatedValue); break; - case 375: - chkEnterpriseVoice.Checked = Convert.ToBoolean(quota.QuotaAllocatedValue); - chkEnterpriseVoice.Enabled = Convert.ToBoolean(quota.QuotaAllocatedValue); - break; } } } @@ -151,32 +142,29 @@ namespace WebsitePanel.Portal.Lync } } + bool enterpriseVoiceQuota = Utils.CheckQouta(Quotas.LYNC_ENTERPRISEVOICE, cntx); + + PlanFeaturesTelephony.Visible = enterpriseVoiceQuota; + secPlanFeaturesTelephony.Visible = enterpriseVoiceQuota; + if (!enterpriseVoiceQuota) Utils.SelectListItem(ddTelephony, "0"); + + bool enterpriseVoice = enterpriseVoiceQuota && (ddTelephony.SelectedValue == "2"); + chkEnterpriseVoice.Enabled = false; - chkEnterpriseVoice.Checked = false; + chkEnterpriseVoice.Checked = enterpriseVoice; + pnEnterpriseVoice.Visible = enterpriseVoice; - pnEnterpriseVoice.Visible = false; - pnServerURI.Visible = false; - - switch (ddTelephony.SelectedIndex) + switch (ddTelephony.SelectedValue) { - case 1: - break; - case 2: - pnEnterpriseVoice.Visible = true; - chkEnterpriseVoice.Checked = true; - break; - case 3: + case "3": + case "4": pnServerURI.Visible = true; - break; - case 4: - pnServerURI.Visible = true; - break; - + break; + default: + pnServerURI.Visible = false; + break; } - cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); - PlanFeaturesTelephony.Visible = Utils.CheckQouta(Quotas.LYNC_ENTERPRISEVOICE, cntx); - secPlanFeaturesTelephony.Visible = PlanFeaturesTelephony.Visible; } @@ -220,6 +208,8 @@ namespace WebsitePanel.Portal.Lync { try { + PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); + Providers.HostedSolution.LyncUserPlan plan = new Providers.HostedSolution.LyncUserPlan(); plan.LyncUserPlanName = txtPlan.Text; plan.IsDefault = false; @@ -229,8 +219,10 @@ namespace WebsitePanel.Portal.Lync plan.Federation = chkFederation.Checked; plan.Conferencing = chkConferencing.Checked; + bool enterpriseVoiceQuota = Utils.CheckQouta(Quotas.LYNC_ENTERPRISEVOICE, cntx); + bool enterpriseVoice = enterpriseVoiceQuota && (ddTelephony.SelectedValue == "2"); - plan.EnterpriseVoice = chkEnterpriseVoice.Checked; + plan.EnterpriseVoice = enterpriseVoice; plan.VoicePolicy = LyncVoicePolicyType.None; @@ -259,7 +251,9 @@ namespace WebsitePanel.Portal.Lync plan.AllowOrganizeMeetingsWithExternalAnonymous = chkAllowOrganizeMeetingsWithExternalAnonymous.Checked; - plan.Telephony = ddTelephony.SelectedIndex; + int telephonyId = -1; + int.TryParse(ddTelephony.SelectedValue, out telephonyId); + plan.Telephony = telephonyId; plan.ServerURI = tbServerURI.Text; diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncCreateUser.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncCreateUser.ascx.cs index ddbd98ec..9b0e6655 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncCreateUser.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncCreateUser.ascx.cs @@ -75,21 +75,24 @@ namespace WebsitePanel.Portal.Lync protected void Page_PreRender(object sender, EventArgs e) { - bool EnterpriseVoice = false; + PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); + bool enterpriseVoiceQuota = Utils.CheckQouta(Quotas.LYNC_ENTERPRISEVOICE, cntx); + + bool enterpriseVoice = false; WebsitePanel.Providers.HostedSolution.LyncUserPlan plan = planSelector.plan; if (plan != null) - EnterpriseVoice = plan.EnterpriseVoice; + enterpriseVoice = plan.EnterpriseVoice && enterpriseVoiceQuota && (ddlPhoneNumber.Items.Count > 0); - pnEnterpriseVoice.Visible = EnterpriseVoice && (ddlPhoneNumber.Items.Count>0); + pnEnterpriseVoice.Visible = enterpriseVoice; - if (!EnterpriseVoice) + if (!enterpriseVoice) { ddlPhoneNumber.Text = ""; tbPin.Text = ""; } - if (EnterpriseVoice) + if (enterpriseVoice) { string[] pinPolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Pin, "MinPasswordLength"); if (pinPolicy != null) @@ -115,9 +118,15 @@ namespace WebsitePanel.Portal.Lync if (res.IsSuccess && res.ErrorCodes.Count == 0) { + PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); + bool enterpriseVoiceQuota = Utils.CheckQouta(Quotas.LYNC_ENTERPRISEVOICE, cntx); + + string lineUri = ""; + if (enterpriseVoiceQuota) lineUri = ddlPhoneNumber.SelectedItem.Text + ":" + tbPin.Text; + //#1 LyncUser lyncUser = ES.Services.Lync.GetLyncUserGeneralSettings(PanelRequest.ItemID, accountId); - ES.Services.Lync.SetLyncUserGeneralSettings(PanelRequest.ItemID, accountId, lyncUser.SipAddress, ddlPhoneNumber.SelectedItem.Text + ":" + tbPin.Text); + ES.Services.Lync.SetLyncUserGeneralSettings(PanelRequest.ItemID, accountId, lyncUser.SipAddress, lineUri); Response.Redirect(EditUrl("AccountID", accountId.ToString(), "edit_lync_user", "SpaceID=" + PanelSecurity.PackageId, diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncEditUser.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncEditUser.ascx.cs index 14651246..b92a3b37 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncEditUser.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/LyncEditUser.ascx.cs @@ -70,21 +70,24 @@ namespace WebsitePanel.Portal.Lync protected void Page_PreRender(object sender, EventArgs e) { - bool EnterpriseVoice = false; + PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); + bool enterpriseVoiceQuota = Utils.CheckQouta(Quotas.LYNC_ENTERPRISEVOICE, cntx); + + bool enterpriseVoice = false; WebsitePanel.Providers.HostedSolution.LyncUserPlan plan = planSelector.plan; if (plan != null) - EnterpriseVoice = plan.EnterpriseVoice; + enterpriseVoice = plan.EnterpriseVoice && enterpriseVoiceQuota && (ddlPhoneNumber.Items.Count > 0); - pnEnterpriseVoice.Visible = EnterpriseVoice && (ddlPhoneNumber.Items.Count>0); + pnEnterpriseVoice.Visible = enterpriseVoice; - if (!EnterpriseVoice) + if (!enterpriseVoice) { ddlPhoneNumber.Text = ""; tbPin.Text = ""; } - if (EnterpriseVoice) + if (enterpriseVoice) { string[] pinPolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Pin, "MinPasswordLength"); if (pinPolicy != null) @@ -123,10 +126,16 @@ namespace WebsitePanel.Portal.Lync return; try { + PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); + bool enterpriseVoiceQuota = Utils.CheckQouta(Quotas.LYNC_ENTERPRISEVOICE, cntx); + + string lineUri = ""; + if (enterpriseVoiceQuota) lineUri = ddlPhoneNumber.SelectedItem.Text + ":" + tbPin.Text; + LyncUserResult res = ES.Services.Lync.SetUserLyncPlan(PanelRequest.ItemID, PanelRequest.AccountID, Convert.ToInt32(planSelector.planId)); if (res.IsSuccess && res.ErrorCodes.Count == 0) { - res = ES.Services.Lync.SetLyncUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID, lyncUserSettings.sipAddress, ddlPhoneNumber.SelectedItem.Text + ":" + tbPin.Text); + res = ES.Services.Lync.SetLyncUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID, lyncUserSettings.sipAddress, lineUri); } if (res.IsSuccess && res.ErrorCodes.Count == 0) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/PhoneNumbersAddPhoneNumber.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/PhoneNumbersAddPhoneNumber.ascx.cs index f050f67c..a6271ed6 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/PhoneNumbersAddPhoneNumber.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/PhoneNumbersAddPhoneNumber.ascx.cs @@ -30,6 +30,7 @@ using System; using System.Data; using System.Configuration; using System.Collections; +using System.Collections.Generic; using System.Web; using System.Web.Security; using System.Web.UI; @@ -73,7 +74,15 @@ namespace WebsitePanel.Portal { try { - ddlServer.DataSource = ES.Services.Servers.GetServers(); + ServerInfo[] allServers = ES.Services.Servers.GetServers(); + List servers = new List(); + foreach(ServerInfo server in allServers) + { + ServiceInfo[] service = ES.Services.Servers.GetServicesByServerIdGroupName(server.ServerId, ResourceGroups.Lync); + if (service.Length>0) servers.Add(server); + } + + ddlServer.DataSource = servers; ddlServer.DataBind(); } catch (Exception ex) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/PhoneNumbersEditPhoneNumber.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/PhoneNumbersEditPhoneNumber.ascx.cs index c056895d..97eb87ff 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/PhoneNumbersEditPhoneNumber.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/PhoneNumbersEditPhoneNumber.ascx.cs @@ -30,6 +30,7 @@ using System; using System.Data; using System.Configuration; using System.Collections; +using System.Collections.Generic; using System.Web; using System.Web.Security; using System.Web.UI; @@ -96,7 +97,16 @@ namespace WebsitePanel.Portal private void BindServers() { - ddlServer.DataSource = ES.Services.Servers.GetServers(); + ServerInfo[] allServers = ES.Services.Servers.GetServers(); + List servers = new List(); + foreach (ServerInfo server in allServers) + { + ServiceInfo[] service = ES.Services.Servers.GetServicesByServerIdGroupName(server.ServerId, ResourceGroups.Lync); + if (service.Length > 0) servers.Add(server); + } + + ddlServer.DataSource = servers; + ddlServer.DataBind(); ddlServer.Items.Insert(0, new ListItem(GetLocalizedString("Text.NotAssigned"), "")); } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.cs index e3a06bb8..a021d867 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.cs @@ -79,5 +79,11 @@ namespace WebsitePanel.Portal { ddlFilterColumn.Items.Add(new ListItem(columnTitle, columnName)); } + + public override void Focus() + { + base.Focus(); + txtFilterValue.Focus(); + } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomers.ascx.cs index 6c8337c1..4227131e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomers.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomers.ascx.cs @@ -67,8 +67,11 @@ namespace WebsitePanel.Portal gvUsers.Sort("Username", System.Web.UI.WebControls.SortDirection.Ascending); + } - } + + searchBox.Focus(); + } public string GetUserHomePageUrl(int userId) { diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.cs index 95f1afe8..37ce14b1 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.cs @@ -44,6 +44,9 @@ namespace WebsitePanel.Portal this.ContainerControl.Visible = (PanelSecurity.SelectedUser.Role != UserRole.User); lnkAllCustomers.NavigateUrl = NavigatePageURL(PortalUtils.GetUserCustomersPageId(), PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString()); + + if (!IsPostBack) + txtFilterValue.Focus(); } private void BindGroupings()