/**
* A data field that automatically {@link #convert converts} its value to a boolean.
*
* @example
* Ext.define('Task', {
* extend: 'Ext.data.Model',
* fields: [
* { name: 'completed', type: 'boolean' }
* ]
* });
*
* var record = Ext.create('Task', { completed: true }),
* value = record.get('completed');
*
* Ext.toast("completed is " + value);
*/
Ext.define('Ext.data.field.Boolean', {
extend: 'Ext.data.field.Field',
alias: [
'data.field.bool',
'data.field.boolean'
],
isBooleanField: true,
/**
* @property [trueRe]
* Values matching this regular expression are considered `true`.
*/
trueRe: /^\s*(?:true|yes|on|1)\s*$/i,
convert: function(v) {
if (typeof v === 'boolean') {
return v;
}
if (this.allowNull && (v === undefined || v === null || v === '')) {
return null;
}
return this.trueRe.test(String(v));
},
getType: function() {
return 'bool';
}
});