forked from ariatemplates/ariatemplates
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ErrorListBindingCtrl.js
73 lines (64 loc) · 3.18 KB
/
ErrorListBindingCtrl.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Aria.classDefinition({
$classpath : 'test.aria.widgets.wai.errorlist.binding.ErrorListBindingCtrl',
$extends : 'aria.templates.ModuleCtrl',
$implements : ['test.aria.widgets.wai.errorlist.binding.IErrorListBindingCtrl'],
$dependencies : ['aria.utils.validators.Mandatory'],
$constructor : function () {
this.$ModuleCtrl.constructor.call(this);
this._data = {
firstName : "",
lastName : "",
phoneNumber : "",
email : "",
errorMessages : [],
focus: false,
focusOnError: true
};
this.myDataUtil = aria.utils.Data;
this.validators = [];
},
$destructor : function () {
var validators = this.validators;
for(var i in validators) {
validators[i].$dispose();
}
this.$ModuleCtrl.$destructor.call(this);
},
$prototype : {
$publicInterfaceName : "test.aria.widgets.wai.errorlist.binding.IErrorListBindingCtrl",
init : function (arg, cb) {
var validatorPkg = aria.utils.validators;
if ("ariaLive" in arg) {
this.json.setValue(this._data, "ariaLive", arg.ariaLive);
}
if ("focusOnError" in arg) {
this.json.setValue(this._data, "focusOnError", arg.focusOnError);
}
var firstNameValidator = new validatorPkg.Mandatory("The first name is a required field using a mandatory validator.");
this.myDataUtil.setValidatorProperties(firstNameValidator, null, "onblur");
this.validators.push(firstNameValidator);
var lastNameValidator = new validatorPkg.Mandatory("The last name is a required field using a mandatory validator.");
this.myDataUtil.setValidatorProperties(lastNameValidator, null, "onblur");
this.validators.push(lastNameValidator);
var emailValidator = new validatorPkg.Mandatory("The email is a required field using a mandatory validator.");
this.myDataUtil.setValidatorProperties(emailValidator, null, "onblur");
this.validators.push(emailValidator);
var phoneNumberValidator = new validatorPkg.Mandatory("The phone number is a required field using a mandatory validator.");
this.myDataUtil.setValidatorProperties(phoneNumberValidator, null, "onblur");
this.validators.push(phoneNumberValidator);
this.myDataUtil.setValidator(this._data, "firstName", firstNameValidator);
this.myDataUtil.setValidator(this._data, "lastName", lastNameValidator);
this.myDataUtil.setValidator(this._data, "email", emailValidator);
this.myDataUtil.setValidator(this._data, "phoneNumber", phoneNumberValidator);
this.$callback(cb);
},
submit : function () {
var messages = {};
this.myDataUtil.validateModel(this._data, messages);
this.json.setValue(this._data, "errorMessages", messages.listOfMessages);
if (messages.listOfMessages && messages.listOfMessages.length && this._data.focusOnError) {
this.json.setValue(this._data, "focus", true);
}
}
}
});