password feedback changes

This commit is contained in:
vfedosevich 2015-05-18 03:58:37 -07:00
parent 56c589de15
commit 22590afbe6
17 changed files with 150 additions and 73 deletions

View file

@ -430,7 +430,7 @@ namespace WebsitePanel.WebDavPortal.Resources {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Initials. /// Looks up a localized string similar to Middle Initial.
/// </summary> /// </summary>
public static string Initials { public static string Initials {
get { get {

View file

@ -235,7 +235,7 @@
<value>Info</value> <value>Info</value>
</data> </data>
<data name="Initials" xml:space="preserve"> <data name="Initials" xml:space="preserve">
<value>Initials</value> <value>Middle Initial</value>
</data> </data>
<data name="ItemExist" xml:space="preserve"> <data name="ItemExist" xml:space="preserve">
<value>File already exist</value> <value>File already exist</value>

View file

@ -379,4 +379,75 @@ p.warningText {font-size:14px; color:Red; text-align:center;}
} }
.ui-menu-item:hover { .ui-menu-item:hover {
background-color: #f0f0f0; background-color: #f0f0f0;
}
.tip-bluesimple {
z-index:1000;
text-align:left;
border:1px solid #5e86aa;
border-radius:4px;
-moz-border-radius:4px;
-webkit-border-radius:4px;
min-width:50px;
max-width:300px;
color:#333;
background-color:#ffffff;
/**
* - If you set a background-image, border/padding/background-color will be ingnored.
* You can set any padding to .tip-inner instead if you need.
* - If you want a tiled background-image and border/padding for the tip,
* set the background-image to .tip-inner instead.
*/
}
.tip-bluesimple .tip-inner {
font:12px/16px arial,helvetica,sans-serif;
}
/* Configure an arrow image - the script will automatically position it on the correct side of the tip */
.tip-bluesimple .tip-arrow-top {
margin-top:-6px;
margin-left:-5px; /* approx. half the width to center it */
top:0;
left:50%;
width:9px;
height:6px;
}
.tip-bluesimple .tip-arrow-right {
margin-top:-4px; /* approx. half the height to center it */
margin-left:0;
top:50%;
left:100%;
width:6px;
height:9px;
}
.tip-bluesimple .tip-arrow-bottom {
margin-top:0;
margin-left:-5px; /* approx. half the width to center it */
top:100%;
left:50%;
width:9px;
height:6px;
}
.tip-bluesimple .tip-arrow-left {
margin-top:-3px; /* approx. half the height to center it */
margin-left:-6px;
top:50%;
left:0;
width:6px;
height:9px;
}
.popover-title {
padding: 8px 14px;
margin: 0 !important;
font-size: 14px;
background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb;
border-radius: 5px 5px 0 0;
}
.popover-content {
padding:6px 8px;
} }

View file

@ -163,7 +163,7 @@
<value>Home Phone:</value> <value>Home Phone:</value>
</data> </data>
<data name="locInitials.Text" xml:space="preserve"> <data name="locInitials.Text" xml:space="preserve">
<value>Initials:</value> <value>Middle Initial:</value>
</data> </data>
<data name="locJobTitle.Text" xml:space="preserve"> <data name="locJobTitle.Text" xml:space="preserve">
<value>Job Title:</value> <value>Job Title:</value>

View file

@ -157,7 +157,7 @@
<value>Home Phone:</value> <value>Home Phone:</value>
</data> </data>
<data name="locInitials.Text" xml:space="preserve"> <data name="locInitials.Text" xml:space="preserve">
<value>Initials:</value> <value>Middle Initial:</value>
</data> </data>
<data name="locJobTitle.Text" xml:space="preserve"> <data name="locJobTitle.Text" xml:space="preserve">
<value>Job Title:</value> <value>Job Title:</value>

View file

@ -166,7 +166,7 @@
<value>Home Phone:</value> <value>Home Phone:</value>
</data> </data>
<data name="locInitials.Text" xml:space="preserve"> <data name="locInitials.Text" xml:space="preserve">
<value>Initials:</value> <value>Middle Initial:</value>
</data> </data>
<data name="locJobTitle.Text" xml:space="preserve"> <data name="locJobTitle.Text" xml:space="preserve">
<value>Job Title:</value> <value>Job Title:</value>

View file

@ -61,7 +61,7 @@
<td> <td>
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100"></asp:TextBox> <asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100"></asp:TextBox>
&nbsp; &nbsp;
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Initials:" /> <asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Middle Initial:" />
<asp:TextBox ID="txtInitials" runat="server" CssClass="TextBox100"></asp:TextBox> <asp:TextBox ID="txtInitials" runat="server" CssClass="TextBox100"></asp:TextBox>
</td> </td>
</tr> </tr>

View file

@ -1,31 +1,3 @@
// Copyright (c) 2015, 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.
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.

View file

@ -73,7 +73,7 @@
<td> <td>
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox> <asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox>
&nbsp; &nbsp;
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Initials:" /> <asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Middle Initial:" />
<asp:TextBox ID="txtInitials" runat="server" MaxLength="6" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox> <asp:TextBox ID="txtInitials" runat="server" MaxLength="6" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox>
</td> </td>
</tr> </tr>

View file

@ -47,7 +47,7 @@
<td> <td>
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox> <asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox>
&nbsp; &nbsp;
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Initials:" /> <asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Middle Initial:" />
<asp:TextBox ID="txtInitials" runat="server" MaxLength="6" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox> <asp:TextBox ID="txtInitials" runat="server" MaxLength="6" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox>
</td> </td>
</tr> </tr>

View file

@ -77,7 +77,7 @@
<td> <td>
<asp:label ID="lblFirstName" runat="server"></asp:label> <asp:label ID="lblFirstName" runat="server"></asp:label>
&nbsp; &nbsp;
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Initials:" /> <asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Middle Initial:" />
<asp:Label ID="lblInitials" runat="server"></asp:Label> <asp:Label ID="lblInitials" runat="server"></asp:Label>
</td> </td>
</tr> </tr>

View file

@ -95,7 +95,7 @@
<td> <td>
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100"></asp:TextBox> <asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100"></asp:TextBox>
&nbsp; &nbsp;
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Initials:" /> <asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Middle Initial:" />
<asp:TextBox ID="txtInitials" runat="server" MaxLength="6" CssClass="TextBox100"></asp:TextBox> <asp:TextBox ID="txtInitials" runat="server" MaxLength="6" CssClass="TextBox100"></asp:TextBox>
</td> </td>
</tr> </tr>
@ -294,4 +294,5 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -9,7 +9,8 @@
<asp:HyperLink ID="lnkGenerate" runat="server" NavigateUrl="#" meta:resourcekey="lnkGenerate" Visible="false">Generate random</asp:HyperLink></td> <asp:HyperLink ID="lnkGenerate" runat="server" NavigateUrl="#" meta:resourcekey="lnkGenerate" Visible="false">Generate random</asp:HyperLink></td>
</tr> </tr>
<tr> <tr>
<td class="SubHead"><asp:Label id="lblConfirmPassword" runat="server" meta:resourcekey="lblConfirmPassword"></asp:Label></td> <td class="SubHead">
<asp:Label ID="lblConfirmPassword" runat="server" meta:resourcekey="lblConfirmPassword"></asp:Label></td>
</tr> </tr>
<tr> <tr>
<td class="Normal"> <td class="Normal">
@ -18,7 +19,7 @@
meta:resourcekey="valRequireConfirmPassword" ErrorMessage="*" ControlToValidate="txtConfirmPassword" SetFocusOnError="True"></asp:RequiredFieldValidator> meta:resourcekey="valRequireConfirmPassword" ErrorMessage="*" ControlToValidate="txtConfirmPassword" SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="valRequireEqualPassword" runat="server" ControlToCompare="txtPassword" <asp:CompareValidator ID="valRequireEqualPassword" runat="server" ControlToCompare="txtPassword"
ControlToValidate="txtConfirmPassword" meta:resourcekey="valRequireEqualPassword" Display="Dynamic" ErrorMessage="*"></asp:CompareValidator> ControlToValidate="txtConfirmPassword" meta:resourcekey="valRequireEqualPassword" Display="Dynamic" ErrorMessage="*"></asp:CompareValidator>
<asp:CustomValidator ID="valCorrectLength" runat="server" <asp:CustomValidator ID="valCorrectLength" runat="server"
ControlToValidate="txtPassword" ErrorMessage="len" Display="Dynamic" Enabled="false" ControlToValidate="txtPassword" ErrorMessage="len" Display="Dynamic" Enabled="false"
ClientValidationFunction="wspValidatePasswordLength" OnServerValidate="valCorrectLength_ServerValidate"></asp:CustomValidator> ClientValidationFunction="wspValidatePasswordLength" OnServerValidate="valCorrectLength_ServerValidate"></asp:CustomValidator>
@ -33,4 +34,55 @@
ClientValidationFunction="wspValidatePasswordSymbols" OnServerValidate="valRequireSymbols_ServerValidate"></asp:CustomValidator> ClientValidationFunction="wspValidatePasswordSymbols" OnServerValidate="valRequireSymbols_ServerValidate"></asp:CustomValidator>
</td> </td>
</tr> </tr>
</table> </table>
<% if (ValidationEnabled)
{%>
<div style="display: none;" id="password-hint-popup">
<h3 class="popover-title">
Password must meet the following requirements:
</h3>
<ul class="popover-content">
<li><%= string.Format("Password should be at least {0} characters", MinimumLength) %>
</li>
<li><%= string.Format("Password should be maximum {0} characters", MaximumLength) %>
</li>
<% if (MinimumUppercase > 0)
{%>
<li><%= string.Format("Password should contain at least {0} UPPERCASE characters", MinimumUppercase) %>
</li>
<% }%>
<% if (MinimumNumbers > 0)
{%>
<li><%= string.Format("Password should contain at least {0} numbers", MinimumNumbers) %>
</li>
<% }%>
<% if (MinimumSymbols > 0)
{%>
<li><%= string.Format("Password should contain at least {0} non-alphanumeric symbols", MinimumSymbols) %>
</li>
<% }%>
</ul>
</div>
<% }%>
<script>
$(document).ready(function () {
$('#<%=txtPassword.ClientID%>').poshytip({
className: 'tip-bluesimple',
showOn: 'focus',
alignTo: 'target',
alignX: 'center',
alignY: 'bottom',
offsetX: 2,
content: function () {
return $('#password-hint-popup').html();
}
});
});
</script>

View file

@ -277,7 +277,9 @@ namespace WebsitePanel.Portal
return ((matches != null) && matches.length >= minMatches); return ((matches != null) && matches.length >= minMatches);
} }
", true); ", true);
Page.ClientScript.RegisterClientScriptInclude("jqueryui-tooltip", ResolveUrl("~/JavaScript/jquery.poshytip.min.js"));
} }
} }

View file

@ -1,38 +1,9 @@
// Copyright (c) 2015, 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.
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
// Runtime Version:2.0.50727.1873
// //
// Changes to this file may cause incorrect behavior and will be lost if // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------

File diff suppressed because one or more lines are too long

View file

@ -241,6 +241,7 @@
<Content Include="Error.htm" /> <Content Include="Error.htm" />
<Content Include="JavaScript\jquery-1.4.4.min.js" /> <Content Include="JavaScript\jquery-1.4.4.min.js" />
<Content Include="JavaScript\jquery-ui-1.8.9.min.js" /> <Content Include="JavaScript\jquery-ui-1.8.9.min.js" />
<Content Include="JavaScript\jquery.poshytip.min.js" />
<Content Include="JavaScript\jquery.window.js" /> <Content Include="JavaScript\jquery.window.js" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>