diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ESModule_ControlsHierarchy.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ESModule_ControlsHierarchy.config new file mode 100644 index 00000000..1d37b463 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ESModule_ControlsHierarchy.config @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/SkinLayout.css b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/SkinLayout.css index 7c8d82e3..60640b6b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/SkinLayout.css +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/SkinLayout.css @@ -18,6 +18,7 @@ body {font-family:'Segoe UI Light','Open Sans',Arial; color:#333; margin:0px; pa #Breadcrumb .Path {padding:20px; margin-bottom:20px; background-color:#f5f5f5;} #Breadcrumb .Path img {display:none;} #Breadcrumb .Path a:not(:last-child):after, #Breadcrumb .Path span a:after {content:'/\00a0'; padding:0 5px 0 10px; color:#999; display:inline-block;} +#Breadcrumb .Path .OrgSpan a:last-child:after {content: none;} #Breadcrumb .Path a, #Breadcrumb .Path a:Active, #Breadcrumb .Path a:Visited, #Breadcrumb .Path a:Hover {color:#428bca; font-size:13px; line-height:1.428571429;} #Breadcrumb .Path a:last-child {color:#999;} #Breadcrumb .Path a:hover {text-decoration:none;} diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs index 7ed0fc77..3719073a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs @@ -56,10 +56,12 @@ namespace WebsitePanel.Portal public const string CONFIG_FOLDER = "~/App_Data/"; public const string SUPPORTED_THEMES_FILE = "SupportedThemes.config"; public const string SUPPORTED_LOCALES_FILE = "SupportedLocales.config"; + public const string EXCHANGE_SERVER_HIERARCHY_FILE = "ESModule_ControlsHierarchy.config"; public const string USER_ID_PARAM = "UserID"; public const string SPACE_ID_PARAM = "SpaceID"; public const string SEARCH_QUERY_PARAM = "Query"; + public static string CultureCookieName { get { return PortalConfiguration.SiteSettings["CultureCookieName"]; } @@ -981,6 +983,34 @@ namespace WebsitePanel.Portal return "~/Default.aspx?" + String.Join("&", url.ToArray()); } #endregion + + public static string GetGeneralESControlKey(string controlKey) + { + string generalControlKey = string.Empty; + + string appData = HttpContext.Current.Server.MapPath(CONFIG_FOLDER); + string xmlFilePath = Path.Combine(appData, EXCHANGE_SERVER_HIERARCHY_FILE); + if (File.Exists(xmlFilePath)) + { + try + { + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.Load(xmlFilePath); + + XmlElement xmlNode = (XmlElement)xmlDoc.SelectSingleNode(string.Format("/Controls/Control[@key='{0}']", controlKey)); + + if (xmlNode.HasAttribute("general_key")) + { + generalControlKey = xmlNode.GetAttribute("general_key"); + } + else generalControlKey = xmlNode.GetAttribute("key"); + } + catch + { + } + } + return generalControlKey; + } } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAddFederationDomain.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAddFederationDomain.ascx.resx index 5eaa9432..f8ed0b7d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAddFederationDomain.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAddFederationDomain.ascx.resx @@ -138,4 +138,7 @@ Lync Add Federation Domain + + Lync Add Federation Domain + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAllocatePhoneNumbers.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAllocatePhoneNumbers.ascx.resx index 118ce42a..fa8d4635 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAllocatePhoneNumbers.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncAllocatePhoneNumbers.ascx.resx @@ -126,4 +126,7 @@ Phone Numbers + + Lync Allocate Phone Numbers + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncPhoneNumbers.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncPhoneNumbers.ascx.resx index 118ce42a..d793d960 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncPhoneNumbers.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncPhoneNumbers.ascx.resx @@ -124,6 +124,9 @@ Quotas - Phone Numbers + Lync Phone Numbers + + + Lync Phone Numbers \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUsers.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUsers.ascx.resx index 8c44e59c..4558bd62 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUsers.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/App_LocalResources/LyncUsers.ascx.resx @@ -153,4 +153,7 @@ Login + + Lync Users + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/AllocatePackagePhoneNumbers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/AllocatePackagePhoneNumbers.ascx.cs index 214feaec..f3159ee1 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/AllocatePackagePhoneNumbers.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Lync/UserControls/AllocatePackagePhoneNumbers.ascx.cs @@ -149,7 +149,8 @@ namespace WebsitePanel.Portal.UserControls protected void btnCancel_Click(object sender, EventArgs e) { - Response.Redirect(HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), ListAddressesControl)); + Response.Redirect(HostModule.EditUrl("ItemID", PanelRequest.ItemID.ToString(), ListAddressesControl, + PortalUtils.SPACE_ID_PARAM + "=" + PanelSecurity.PackageId)); } protected void radioExternalSelected_CheckedChanged(object sender, EventArgs e) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx index 5c9f2de6..3f25e61d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx @@ -18,11 +18,11 @@ - + Organization - Home + Home diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx.cs index b72ba87b..1849cf0e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx.cs @@ -127,7 +127,10 @@ namespace WebsitePanel.Portal.SkinControls "SpaceID=" + PanelSecurity.PackageId.ToString()); lnkOrgn.Text = org.Name; - string ctrlKey = Request[DefaultPage.CONTROL_ID_PARAM].ToLower(System.Globalization.CultureInfo.InvariantCulture); + string curCtrlKey = PanelRequest.Ctl.ToLower(); + string ctrlKey = PortalUtils.GetGeneralESControlKey(Request[DefaultPage.CONTROL_ID_PARAM].ToLower(System.Globalization.CultureInfo.InvariantCulture)); + + if (curCtrlKey == "edit_user") ctrlKey = PanelRequest.Context.ToLower() == "user" ? "users" : "mailboxes"; ModuleDefinition definition = PortalConfiguration.ModuleDefinitions[EXCHANGE_SERVER_MODULE_DEFINTION_ID]; ModuleControl control = null; @@ -136,7 +139,10 @@ namespace WebsitePanel.Portal.SkinControls if (!String.IsNullOrEmpty(control.Src)) { - lbOrgCurPage.Text = PortalUtils.GetLocalizedString(DM_FOLDER_VIRTUAL_PATH + control.Src, PAGE_NANE_KEY); + lnkOrgCurPage.Text = PortalUtils.GetLocalizedString(DM_FOLDER_VIRTUAL_PATH + control.Src, PAGE_NANE_KEY); + lnkOrgCurPage.NavigateUrl = PortalUtils.EditUrl( + "ItemID", PanelRequest.ItemID.ToString(), ctrlKey, + "SpaceID=" + PanelSecurity.PackageId.ToString()); } } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx.designer.cs index 6ee25ed6..e61a07dd 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/UserSpaceBreadcrumb.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. @@ -140,13 +112,13 @@ namespace WebsitePanel.Portal.SkinControls { protected global::System.Web.UI.WebControls.Image imgSep4; /// - /// lbOrgCurPage control. + /// lnkOrgCurPage control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Label lbOrgCurPage; + protected global::System.Web.UI.WebControls.HyperLink lnkOrgCurPage; /// /// SpaceOrgs control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/WebsitePanel.WebPortal.csproj b/WebsitePanel/Sources/WebsitePanel.WebPortal/WebsitePanel.WebPortal.csproj index c5ae723d..f106d40a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/WebsitePanel.WebPortal.csproj +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/WebsitePanel.WebPortal.csproj @@ -229,6 +229,7 @@ Designer +