Data Quality

Keep your data clean and tidy without annoying your users.

Filters are normally used by form widgets to process raw input data. They may be used individually, or chained together.

Trim


             
var trim = new Trim,
    filteredValue = trim.filter(value);

Lowercase


             
var lowercase = new Lowercase,
    filteredValue = lowercase.filter(value);

Uppercase


             
var uppercase = new Uppercase,
    filteredValue = uppercase.filter(value);

Propercase


             
var propercase = new propercase,
    filteredValue = propercase.filter(value);

Chains

Chain filters together. The result of each filter will be passed to the next filter in the chain.


             
var chain = new Chain({filters: [
        new Trim,
        new Uppercase
    ]}),
    filteredValue = chain.filter(value);

Custom Filters

Define your own filters by extending from havok/filter/Base and overriding the filter method.


             
require(['havok/filter/Base', 'dojo/_base/declare'],
   function(FilterBase, declare){

       var Dollar = declare([FilterBase], {
           filter: function(value){
               return '$' + value;
           }
       });

       var dollar = new Dollar;
       filteredValue = dollar.filter(value);
   }
)

Filter Factory

The filter factory can be used to create instances of filters. eg:


             
require(['havok/get!havok/filter/factory'],
   function(factory){
       factory.create(['Trim', 'Lowercase']).then(function(filter){
           filteredValue = filter.filter(value);
       })
   }
)

The filter factory uses havok/di to create and configure the filters. It accepts any valid di config.

Validators will check if data meets certain criteria and return a message if it does not.

Havok uses the mystique validator library. Which includes:

  • Alpha
  • Boolean
  • Chain
  • CreditCard
  • CreditCardExpiry
  • Cvv
  • Date
  • Equal
  • Alpha
  • Float
  • GreaterThan
  • LessThan
  • HexColor
  • Int
  • Length
  • LessThan
  • LethThanEqual
  • NotEqual
  • NotRequired
  • Password
  • Regex
  • Slug
  • String
  • And probably more ...

Mystique Validators

Use the mystique validators as described in the mystique docs. Eg

require(['mystique/Length'], function(Length){
    var validator = new Length({min: 10, max: 20}),
        result = validator.isValid(myValue);
})

Mystique validators can be extended and chained. See the mystique docs for more detail.

Validator Factory

The validator factory can be used to create instances of validators. eg:

require(['havok/get!havok/validator/factory'],
   function(factory){
       factory.create(['Alpha', {base: 'Length', params: {min: 5, max: 10}}]).then(function(validator){
           result = validator.isValid(value);
       })
   }
)

The validator factory uses havok/di to create and configure the validators. It accepts any valid di config.

Loading more havok...