Initial commit — 16 posts converted from dasBlog XML, media assets
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
function convertXvalToValidateOptions(xRulesConfig) {
|
||||
// this is adapted from xVal.jquery.validate.js so that it can generate
|
||||
// the rule/message set rather than binding rules directly to DOM elements
|
||||
var vRules = {};
|
||||
var vMessages = {};
|
||||
|
||||
// returns true only if object is empty
|
||||
function isEmpty(obj) {
|
||||
for (var i in obj) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
for (var i = 0; i < xRulesConfig.Fields.length; i++) {
|
||||
var xFieldName = xRulesConfig.Fields[i].FieldName;
|
||||
var xFieldRules = xRulesConfig.Fields[i].FieldRules;
|
||||
|
||||
var vFieldRules = {};
|
||||
var vFieldMessages = {};
|
||||
|
||||
for (var j = 0; j < xFieldRules.length; j++) {
|
||||
var xRule = xFieldRules[j];
|
||||
if (xRule != null) {
|
||||
var ruleName = xRule.RuleName;
|
||||
var ruleParams = xRule.RuleParameters;
|
||||
var errorText = (typeof (xRule.Message) == 'undefined' ? null : xRule.Message);
|
||||
|
||||
switch (ruleName) {
|
||||
case "Required":
|
||||
vFieldRules.required = true;
|
||||
if (errorText)
|
||||
vFieldMessages.required = errorText;
|
||||
break;
|
||||
case "Range":
|
||||
// NOTE: If DataAnnotations could be sending different types for string and DateTime,
|
||||
// implement the checks here if needed
|
||||
if (typeof (ruleParams.Min) == 'undefined') {
|
||||
vFieldRules.max = ruleParams.Max;
|
||||
if (errorText)
|
||||
vFieldMessages.max = errorText;
|
||||
}
|
||||
else if (typeof (ruleParams.Max) == 'undefined') {
|
||||
vFieldRules.min = ruleParams.Min;
|
||||
if (errorText)
|
||||
vFieldMessages.min = errorText;
|
||||
}
|
||||
else {
|
||||
vFieldRules.range = [ruleParams.Min, ruleParams.Max];
|
||||
if (errorText)
|
||||
vFieldMessages.range = errorText;
|
||||
}
|
||||
break;
|
||||
case "StringLength":
|
||||
// NOTE: the StringLengthAttribute only takes a max length parameter
|
||||
vFieldRules.maxlength = ruleParams.MaxLength;
|
||||
if (errorText)
|
||||
vFieldMessages.maxlength = errorText;
|
||||
break;
|
||||
case "DataType":
|
||||
switch (ruleParams.Type) {
|
||||
case "EmailAddress":
|
||||
vFieldRules.email = true;
|
||||
if (errorText)
|
||||
vFieldMessages.email = errorText;
|
||||
break;
|
||||
case "Integer":
|
||||
vFieldRules.digits = true;
|
||||
if (errorText)
|
||||
vFieldMessages.digits = errorText;
|
||||
break;
|
||||
case "Decimal":
|
||||
vFieldRules.number = true;
|
||||
if (errorText)
|
||||
vFieldMessages.number = errorText;
|
||||
break;
|
||||
case "Date":
|
||||
vFieldRules.date = true;
|
||||
if (errorText)
|
||||
vFieldMessages.date = errorText;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isEmpty(vFieldRules))
|
||||
vRules[xFieldName] = vFieldRules;
|
||||
if (!isEmpty(vFieldMessages))
|
||||
vMessages[xFieldName] = vFieldMessages;
|
||||
}
|
||||
}
|
||||
removeNumberRuleForCurrency(vRules);
|
||||
return { rules: vRules, messages: vMessages };
|
||||
}
|
||||
Reference in New Issue
Block a user