Skip to content

Commit

Permalink
Fix #593 Add between/not_between validation
Browse files Browse the repository at this point in the history
  • Loading branch information
mistic100 committed Nov 11, 2017
1 parent 3cf90e7 commit 6331d3e
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/data.js
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,29 @@ QueryBuilder.prototype._validateValue = function(rule, value) {
}
}

if ((rule.operator.type === 'between' || rule.operator.type === 'not_between') && value.length === 2) {
switch (QueryBuilder.types[filter.type]) {
case 'number':
if (value[0] > value[1]) {
result = ['number_between_invalid', value[0], value[1]];
}
break;

case 'datetime':
// we need MomentJS
if (validation.format) {
if (!('moment' in window)) {
Utils.error('MissingLibrary', 'MomentJS is required for Date/Time validation. Get it here http://momentjs.com');
}

if (moment(value[0], validation.format).isAfter(moment(value[1], validation.format))) {
result = ['datetime_between_invalid', value[0], value[1]];
}
}
break;
}
}

return result;
};

Expand Down
2 changes: 2 additions & 0 deletions src/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,12 @@
"number_exceed_min": "Must be greater than {0}",
"number_exceed_max": "Must be lower than {0}",
"number_wrong_step": "Must be a multiple of {0}",
"number_between_invalid": "Invalid values, {0} is greater than {1}",
"datetime_empty": "Empty value",
"datetime_invalid": "Invalid date format ({0})",
"datetime_exceed_min": "Must be after {0}",
"datetime_exceed_max": "Must be before {0}",
"datetime_between_invalid": "Invalid values, {0} isgreater than {1}",
"boolean_not_valid": "Not a boolean",
"operator_not_multiple": "Operator \"{1}\" cannot accept multiple values"
}
Expand Down
2 changes: 2 additions & 0 deletions src/i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,12 @@
"number_exceed_min": "Doit être plus grand que {0}",
"number_exceed_max": "Doit être plus petit que {0}",
"number_wrong_step": "Doit être un multiple de {0}",
"number_between_invalid": "Valeurs invalides, {0} est plus grand que {1}",
"datetime_empty": "Valeur vide",
"datetime_invalid": "Fomat de date invalide ({0})",
"datetime_exceed_min": "Doit être après {0}",
"datetime_exceed_max": "Doit être avant {0}",
"datetime_between_invalid": "Valeurs invalides, {0} est plus grand que {1}",
"boolean_not_valid": "N'est pas un booléen",
"operator_not_multiple": "L'opérateur \"{1}\" ne peut utiliser plusieurs valeurs"
}
Expand Down
10 changes: 10 additions & 0 deletions tests/data.module.js
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,11 @@ $(function() {
/number_wrong_step/
);

assert.validationError($b,
{ id: 'integer', operator: 'between', value: [5, 1] },
/number_between_invalid/
);

assert.validationError($b,
{ id: 'date' },
/datetime_empty/
Expand All @@ -190,6 +195,11 @@ $(function() {
/datetime_exceed_max/
);

assert.validationError($b,
{ id: 'date', operator: 'between', value: ['2015/01/01', '2014/01/01'] },
/datetime_between_invalid/
);

assert.validationError($b,
{ id: 'boolean', value: 'oui' },
/boolean_not_valid/
Expand Down

0 comments on commit 6331d3e

Please sign in to comment.