diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Framework/Utils.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Framework/Utils.cs index 56b27c79..2285cd13 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Framework/Utils.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Framework/Utils.cs @@ -327,5 +327,22 @@ namespace WebsitePanel.Portal var idn = new IdnMapping(); return idn.GetAscii(domainName); } + + /// + /// Adds the specified parameter to the Query String. + /// + /// + /// Name of the parameter to add. + /// Value for the parameter to add. + /// Url with added parameter. + public static Uri AddParameterToUrl(Uri url, string paramName, string paramValue) + { + var uriBuilder = new UriBuilder(url); + var query = HttpUtility.ParseQueryString(uriBuilder.Query); + query[paramName] = paramValue; + uriBuilder.Query = query.ToString(); + + return new Uri(uriBuilder.ToString()); + } } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/IPAddressesAddIPAddress.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/IPAddressesAddIPAddress.ascx.cs index d4df6d54..46fff296 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/IPAddressesAddIPAddress.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/IPAddressesAddIPAddress.ascx.cs @@ -149,7 +149,14 @@ namespace WebsitePanel.Portal private void RedirectBack() { - Response.Redirect(NavigateURL("PoolID", ddlPools.SelectedValue)); + var returnUrl = Request["ReturnUrl"]; + + if (string.IsNullOrEmpty(returnUrl)) + { + returnUrl = NavigateURL("PoolID", ddlPools.SelectedValue); + } + + Response.Redirect(returnUrl); } protected void ddlPools_SelectedIndexChanged(object sender, EventArgs e) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/IPAddressesEditIPAddress.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/IPAddressesEditIPAddress.ascx.cs index 7ac5711a..c3cea0fd 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/IPAddressesEditIPAddress.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/IPAddressesEditIPAddress.ascx.cs @@ -107,7 +107,14 @@ namespace WebsitePanel.Portal private void RedirectBack() { - Response.Redirect(NavigateURL("PoolID", ddlPools.SelectedValue)); + var returnUrl = Request["ReturnUrl"]; + + if (string.IsNullOrEmpty(returnUrl)) + { + returnUrl = NavigateURL("PoolID", ddlPools.SelectedValue); + } + + Response.Redirect(returnUrl); } protected void btnUpdate_Click(object sender, EventArgs e) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServerIPAddressesControl.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServerIPAddressesControl.ascx index 4c63c10d..8df5d222 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServerIPAddressesControl.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServerIPAddressesControl.ascx @@ -11,7 +11,7 @@ - + <%# Eval("ExternalIP") %> diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServerIPAddressesControl.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServerIPAddressesControl.ascx.cs index 44c7de99..6718425e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServerIPAddressesControl.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServerIPAddressesControl.ascx.cs @@ -55,9 +55,15 @@ namespace WebsitePanel.Portal return HostModule.EditUrl(key, keyVal, ctrlKey, key2 + "=" + keyVal2); } + public string GetReturnUrl() + { + var returnUrl = Utils.AddParameterToUrl(Request.Url, "IpAddressesCollapsed", "False"); + return Uri.EscapeDataString("~" + returnUrl.PathAndQuery); + } + protected void btnAdd_Click(object sender, EventArgs e) { - Response.Redirect(HostModule.EditUrl("ServerID", PanelRequest.ServerId.ToString(), "add_ip"), true); + Response.Redirect(EditModuleUrl("ServerID", PanelRequest.ServerId.ToString(), "add_ip", "ReturnUrl", GetReturnUrl()), true); } } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditServer.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditServer.ascx.cs index e9d268e6..c31abfbd 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditServer.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditServer.ascx.cs @@ -59,6 +59,8 @@ namespace WebsitePanel.Portal return; } } + + IPAddressesHeader.IsCollapsed = IsIpAddressesCollapsed; } private void BindTools() @@ -232,5 +234,13 @@ namespace WebsitePanel.Portal return; } } + + protected bool IsIpAddressesCollapsed + { + get + { + return PanelRequest.GetBool("IpAddressesCollapsed", true); + } + } } }