The fix of the redirection after editing the IP Address in a edit server page

This commit is contained in:
Alexander Trofimov 2015-01-19 18:50:45 +07:00
parent ce82c938ac
commit 39c5356501
6 changed files with 51 additions and 4 deletions

View file

@ -327,5 +327,22 @@ namespace WebsitePanel.Portal
var idn = new IdnMapping(); var idn = new IdnMapping();
return idn.GetAscii(domainName); return idn.GetAscii(domainName);
} }
/// <summary>
/// Adds the specified parameter to the Query String.
/// </summary>
/// <param name="url"></param>
/// <param name="paramName">Name of the parameter to add.</param>
/// <param name="paramValue">Value for the parameter to add.</param>
/// <returns>Url with added parameter.</returns>
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());
}
} }
} }

View file

@ -149,7 +149,14 @@ namespace WebsitePanel.Portal
private void RedirectBack() 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) protected void ddlPools_SelectedIndexChanged(object sender, EventArgs e)

View file

@ -107,7 +107,14 @@ namespace WebsitePanel.Portal
private void RedirectBack() 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) protected void btnUpdate_Click(object sender, EventArgs e)

View file

@ -11,7 +11,7 @@
<Columns> <Columns>
<asp:TemplateField SortExpression="ExternalIP" HeaderText="gvIPAddressesExternalIP"> <asp:TemplateField SortExpression="ExternalIP" HeaderText="gvIPAddressesExternalIP">
<ItemTemplate> <ItemTemplate>
<asp:hyperlink NavigateUrl='<%# EditModuleUrl("AddressID", Eval("AddressID").ToString(), "edit_ip") %>' runat="server" ID="lnkEdit"> <asp:hyperlink NavigateUrl='<%# EditModuleUrl("AddressID", Eval("AddressID").ToString(), "edit_ip", "ReturnUrl", GetReturnUrl()) %>' runat="server" ID="lnkEdit">
<%# Eval("ExternalIP") %> <%# Eval("ExternalIP") %>
</asp:hyperlink> </asp:hyperlink>
</ItemTemplate> </ItemTemplate>

View file

@ -55,9 +55,15 @@ namespace WebsitePanel.Portal
return HostModule.EditUrl(key, keyVal, ctrlKey, key2 + "=" + keyVal2); 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) 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);
} }
} }
} }

View file

@ -59,6 +59,8 @@ namespace WebsitePanel.Portal
return; return;
} }
} }
IPAddressesHeader.IsCollapsed = IsIpAddressesCollapsed;
} }
private void BindTools() private void BindTools()
@ -232,5 +234,13 @@ namespace WebsitePanel.Portal
return; return;
} }
} }
protected bool IsIpAddressesCollapsed
{
get
{
return PanelRequest.GetBool("IpAddressesCollapsed", true);
}
}
} }
} }