diff --git a/tests/dummy/app/controllers/validators/numericality.js b/tests/dummy/app/controllers/validators/numericality.js new file mode 100644 index 00000000..a4b72880 --- /dev/null +++ b/tests/dummy/app/controllers/validators/numericality.js @@ -0,0 +1,5 @@ +import BaseContoller from './base'; + +export default BaseContoller.extend({ + modelName: 'for-numericality' +}); \ No newline at end of file diff --git a/tests/dummy/app/models/specifics/for-numericality.js b/tests/dummy/app/models/specifics/for-numericality.js new file mode 100644 index 00000000..21976ad3 --- /dev/null +++ b/tests/dummy/app/models/specifics/for-numericality.js @@ -0,0 +1,44 @@ +import DS from 'ember-data'; +import Validator from '../../mixins/model-validator'; + +export default DS.Model.extend(Validator,{ + anInteger: DS.attr('number'), + anIntegerLessThan4: DS.attr('number'), + anIntegerGreaterThan4: DS.attr('number'), + anIntegerGreaterThanOrEqual7: DS.attr('number'), + anIntegerLessThanOrEqual6: DS.attr('number'), + aTenNumber: DS.attr('number'), + anOddNumber: DS.attr('number'), + anEvenNumber: DS.attr('number'), + anOptionalNumber: DS.attr('number'), + + validations: { + anInteger:{ + numericality: {onlyInteger: true } + }, + anIntegerLessThan4:{ + numericality: {lessThan: 4} + }, + anIntegerGreaterThan4:{ + numericality: {greaterThan: 4} + }, + anIntegerGreaterThanOrEqual7:{ + numericality: {greaterThanOrEqualTo: 7} + }, + anIntegerLessThanOrEqual6:{ + numericality: {lessThanOrEqualTo: 6} + }, + aTenNumber:{ + numericality: {equalTo: 10} + }, + anOddNumber:{ + numericality: {odd: true} + }, + anEvenNumber:{ + numericality: {even: true} + }, + anOptionalNumber:{ + numericality: {onlyInteger: true, allowBlank: true} + } + } +}); diff --git a/tests/dummy/app/router.js b/tests/dummy/app/router.js index 0c74bb82..fda0583d 100644 --- a/tests/dummy/app/router.js +++ b/tests/dummy/app/router.js @@ -23,7 +23,7 @@ Router.map(function() { this.route('exclusion'); this.route('match'); this.route('date'); - + this.route('numericality'); }); }); diff --git a/tests/dummy/app/templates/_menu.hbs b/tests/dummy/app/templates/_menu.hbs index 3d45bcb7..7cab29f9 100644 --- a/tests/dummy/app/templates/_menu.hbs +++ b/tests/dummy/app/templates/_menu.hbs @@ -22,3 +22,4 @@ {{#link-to 'validators.exclusion' class='item'}}Exclusion{{/link-to}} {{#link-to 'validators.match' class='item'}}Match{{/link-to}} {{#link-to 'validators.date' class='item'}}Date{{/link-to}} +{{#link-to 'validators.numericality' class='item'}}Numericality{{/link-to}} diff --git a/tests/dummy/app/templates/validators/numericality.hbs b/tests/dummy/app/templates/validators/numericality.hbs new file mode 100644 index 00000000..82324661 --- /dev/null +++ b/tests/dummy/app/templates/validators/numericality.hbs @@ -0,0 +1,189 @@ +
+
+
+ +

+ Numericality + +
+ Validates the attributes' values by testing whether it is specifc numeric. +
+

+ + + +
+ +
+
+ +
+

+

Specific Options

+ + + {{#ui-annotation showing=true type="javascript"}} +validations: { + anInteger:{ + numericality: {onlyInteger: true } + }, + anIntegerLessThan4:{ + numericality: {lessThan: 4} + }, + anIntegerGreaterThan4:{ + numericality: {greaterThan: 4} + }, + anIntegerGreaterThanOrEqual7:{ + numericality: {greaterThanOrEqualTo: 7} + }, + anIntegerLessThanOrEqual6:{ + numericality: {lessThanOrEqualTo: 6} + }, + aTenNumber:{ + numericality: {equalTo: 10} + }, + anOddNumber:{ + numericality: {odd: true} + }, + anEvenNumber:{ + numericality: {even: true} + }, + anOptionalNumber:{ + numericality: {onlyInteger: true, allowBlank: true} + } +} + {{/ui-annotation}} +

+ + {{config-options defaultMessage=messages.wrongLengthMessage}} + + {{#ui-example + header="Examples" + as |showing setCopyCode|}} + + {{#ui-html showing=showing}} +
+
+

The Numericality Party

+ {{#object-form for=model classNames="segment"}} + +
+
+ {{#form-field for='anInteger' label="An integer" required=true}} + {{input value=model.anInteger placeholder="An integer"}} + {{/form-field}} +
+
+ {{#form-field for='anIntegerLessThan4' label="Less than 4" required=true}} + {{input value=model.anIntegerLessThan4 placeholder="Less than 4"}} + {{/form-field}} +
+
+ {{#form-field for='anIntegerGreaterThan4' label="Greater than 4" required=true}} + {{input value=model.anIntegerGreaterThan4 placeholder="Greater than 4"}} + {{/form-field}} +
+
+ {{#form-field for='aTenNumber' label="A ten" required=true}} + {{input value=model.aTenNumber placeholder="A ten"}} + {{/form-field}} +
+
+ +
+
+ {{#form-field for='anOddNumber' label="Odd Number" required=true}} + {{input value=model.anOddNumber placeholder="Odd Number"}} + {{/form-field}} +
+
+ {{#form-field for='anEvenNumber' label="Even Number" required=true}} + {{input value=model.anEvenNumber placeholder="Even Number"}} + {{/form-field}} +
+
+ {{#form-field for='anOptionalNumber' label="Optional Number" required=true}} + {{input value=model.anOptionalNumber placeholder="Optional Number"}} + {{/form-field}} +
+
+
+
+ {{#form-field for='anIntegerGreaterThanOrEqual7' label="Greater than or equal 7" required=true}} + {{input value=model.anIntegerGreaterThanOrEqual7 placeholder="Greater than or equal 7"}} + {{/form-field}} +
+
+ {{#form-field for='anIntegerLessThanOrEqual6' label="Less than or equal 6" required=true}} + {{input value=model.anIntegerLessThanOrEqual6 placeholder="Less than or equal 6"}} + {{/form-field}} +
+
+
+
+ + +
+
+ {{/object-form}} + +
+
+
+ {{model-errors-to-json errors=model.errors modelName=modelName}} +
+
+
+ {{/ui-html}} + + {{#ui-annotation showing=showing type="javascript" setCopyCode=setCopyCode}} +import DS from 'ember-data'; +import Validator from '../mixins/model-validator'; + +export default DS.Model.extend(Validator,{ + socialSecurity: DS.attr('string'), + nsaNumber: DS.attr('string'), + chuncaluchoNumber: DS.attr('string'), + hugeName: DS.attr('string'), + smallName: DS.attr('string'), + + validations: { + socialSecurity: { + length: 5 + }, + nsaNumber: { + length: [3, 5] + }, + chuncaluchoNumber: { + length: { is: 10, message: 'this is not the length of a chuncalucho' } + }, + hugeName:{ + length: { + minimum: 3, + maximum: 5 + } + }, + smallName:{ + length: { + minimum: 1, + maximum: { + value: 2, + message: 'should be smaller' + } + } + } + } +}); + {{/ui-annotation}} + + {{/ui-example}} +
\ No newline at end of file