Adding PasswordField and improving validation API.

This commit is contained in:
Sipke Schoorstra
2014-10-16 00:53:04 -07:00
parent d096bc206c
commit ea2d3a6c4b
35 changed files with 510 additions and 110 deletions

View File

@@ -0,0 +1,28 @@
using System;
using Orchard.DynamicForms.Helpers;
using Orchard.DynamicForms.Services;
using Orchard.DynamicForms.Services.Models;
using Orchard.Localization;
namespace Orchard.DynamicForms.ValidationRules {
public class Compare : ValidationRule {
public string TargetName { get; set; }
public override void Validate(ValidateInputContext context) {
var targetValue = context.Values[TargetName];
if (!String.Equals(context.AttemptedValue, targetValue)) {
var message = GetValidationMessage(context);
context.ModelState.AddModelError(context.FieldName, message.Text);
}
}
public override void RegisterClientAttributes(RegisterClientValidationAttributesContext context) {
context.ClientAttributes["data-val-equalto"] = GetValidationMessage(context).Text;
context.ClientAttributes["data-val-equalto-other"] = "*." + TargetName;
}
private LocalizedString GetValidationMessage(ValidationContext context) {
return T(ErrorMessage.WithDefault("{0} must match the value of {1}."), context.FieldName, TargetName);
}
}
}