This commit is contained in:
vfedosevich 2015-01-20 00:39:19 -08:00
commit bfd17a48c1
44 changed files with 1688 additions and 1387 deletions

View file

@ -327,5 +327,22 @@ namespace WebsitePanel.Portal
var idn = new IdnMapping();
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

@ -10,7 +10,7 @@
<div class="FormBody">
<p id="DomainPanel" runat="server" style="padding: 15px 0 15px 5px;">
<wsp:DomainControl ID="DomainName" runat="server" RequiredEnabled="True" ValidationGroup="Domain" OnTextChanged="DomainName_TextChanged"></wsp:DomainControl>
<wsp:DomainControl ID="DomainName" runat="server" RequiredEnabled="True" ValidationGroup="Domain"></wsp:DomainControl>
</p>
<wsp:CollapsiblePanel id="OptionsPanelHeader" runat="server"

View file

@ -158,7 +158,10 @@ namespace WebsitePanel.Portal
// allow sub-domains
AllowSubDomainsPanel.Visible = (type == DomainType.Domain) && PanelSecurity.EffectiveUser.Role != UserRole.User;
CheckForCorrectIdnDomainUsage(DomainName.Text);
if (IsPostBack)
{
CheckForCorrectIdnDomainUsage(DomainName.Text);
}
}
private DomainType GetDomainType(string typeName)
@ -279,10 +282,5 @@ namespace WebsitePanel.Portal
return true;
}
protected void DomainName_TextChanged(object sender, DomainControl.DomainNameEventArgs e)
{
CheckForCorrectIdnDomainUsage(e.DomainName);
}
}
}

View file

@ -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)

View file

@ -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)

View file

@ -11,7 +11,7 @@
<Columns>
<asp:TemplateField SortExpression="ExternalIP" HeaderText="gvIPAddressesExternalIP">
<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") %>
</asp:hyperlink>
</ItemTemplate>

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}
}

View file

@ -77,11 +77,15 @@ namespace WebsitePanel.Portal.UserControls
get
{
var domainName = txtDomainName.Text.Trim();
if (IsSubDomain)
if (!IsSubDomain) return domainName;
if (string.IsNullOrEmpty(domainName))
{
domainName += "." + DomainsList.SelectedValue;
// Only return selected domain from DomainsList when no subdomain is entered yet
return DomainsList.SelectedValue;
}
return domainName;
return domainName + "." + DomainsList.SelectedValue;
}
set { txtDomainName.Text = value; }
}

View file

@ -220,7 +220,7 @@ namespace WebsitePanel.Portal
function wspValidatePasswordSymbols(source, args)
{
if(args.Value == source.getAttribute('dpsw')) return true;
args.IsValid = wspValidatePattern(/(\W)/g, args.Value,
args.IsValid = wspValidatePattern(/([\W_])/g, args.Value,
parseInt(source.getAttribute('minimumNumber')));
}
@ -357,7 +357,7 @@ namespace WebsitePanel.Portal
protected void valRequireSymbols_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = ((args.Value == EMPTY_PASSWORD) || ValidatePattern("(\\W)", args.Value, MinimumSymbols));
args.IsValid = ((args.Value == EMPTY_PASSWORD) || ValidatePattern("([\\W_])", args.Value, MinimumSymbols));
}
private bool ValidatePattern(string regexp, string val, int minimumNumber)

View file

@ -24,6 +24,8 @@
<IISExpressAnonymousAuthentication />
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -74,8 +76,7 @@
</Reference>
<Reference Include="Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Lib\Microsoft.Web.Services3.dll</HintPath>
<Private>True</Private>
<HintPath>..\packages\Microsoft.Web.Services3.3.0.0.0\lib\net20\Microsoft.Web.Services3.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
@ -292,6 +293,7 @@
<Content Include="App_Themes\Default\Common.skin" />
<Content Include="App_Themes\Default\DataBoundControls.skin" />
<Content Include="App_Themes\Default\Icons.skin" />
<Content Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Content Include="App_Containers\Default\TopPane.ascx" />
@ -802,4 +804,5 @@
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
</Project>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Web.Services3" version="3.0.0.0" targetFramework="net40" />
</packages>