Skip to content

Commit 9258e98

Browse files
Shuwen Qiananthonykoerber
authored andcommitted
Fix error messaging
1 parent 1174446 commit 9258e98

2 files changed

Lines changed: 17 additions & 9 deletions

File tree

src/mm-repeater/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@
110110
<mm-repeater id="withData">
111111
<template preserve-content>
112112
<mm-input name="name" validation="alpha"></mm-input>
113+
<mm-input name="number"></mm-input>
113114
<mm-dropdown name="firstOption">
114115
<mm-list-item>Test Item 1</mm-list-item>
115116
<mm-list-item>Test Item 2</mm-list-item>
@@ -137,6 +138,10 @@
137138
},
138139
errorMessage: 'Name is not in the list of accepted values'
139140
},
141+
'number': {
142+
validation: 'int',
143+
errorMessage: 'Not an integer'
144+
},
140145
'firstOption': {
141146
validation: function() {
142147
return true;

src/mm-repeater/mm-repeater.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,9 @@
143143

144144
validateRow: function(row) {
145145
var keys = Object.keys(row);
146-
var error = keys.reduce(function(sum, key) {
146+
var errorMessage = "";
147+
148+
var valid = keys.reduce(function(sum, key) {
147149
var validation = DataUtils.getPathValue(key+'.validation', this.config),
148150
valid = true;
149151

@@ -152,24 +154,25 @@
152154
valid = validation.apply(this.config[key], [row[key], row, row._ref]);
153155
break;
154156
case "string":
155-
valid = Validator.rules[item](value);
157+
validatef = Validator.rules[validation];
158+
if(validatef) valid = validatef(row[key]);
156159
break;
157160
default:
158161
break;
159162
}
160-
return sum && valid;
161163

164+
if(!valid) {
165+
var message = DataUtils.getPathValue(key+'.errorMessage', this.config);
166+
errorMessage += ' '+message;
167+
}
168+
return sum && valid;
162169
}.bind(this), true);
163-
var errorMessage = keys.reduce(function(sum, key) {
164-
var message = DataUtils.getPathValue(key+'.errorMessage', this.config);
165-
return sum + " " + (message || "");
166-
}.bind(this), "");
167170

168171
var prefix = 'data.' + this.data.indexOf(row) + '.';
169-
this.set(prefix+'error', error);
172+
this.set(prefix+'error', !valid);
170173
this.set(prefix+'errorMessage', errorMessage.trim());
171174

172-
return error;
175+
return valid;
173176
},
174177

175178
validation: this.validate,

0 commit comments

Comments
 (0)