ucan-ext-js-kitchen-sink
Version:
my-ext-gen-app description for Ext JS app MyExtGenApp
79 lines (76 loc) • 1.56 kB
JavaScript
Ext.define('UCANSink.model.Entity', {
extend: 'Ext.data.Model',
alternateClassName: 'Entity',
statics: {
// Workaround to generate the Same Object with new crudState C
valueCopy: function(entity) {
const dataCopy = Object.assign({}, entity.data);
delete dataCopy.id;
const newEntity = Ext.create(entity.entityName, dataCopy);
newEntity.set('id', entity.data.id);
return newEntity;
},
valueTransform: function(type, entity) {
const dataCopy = Object.assign({}, entity.data);
return Ext.create(type, dataCopy);
}
},
fields: [
{
type: 'int',
name: 'id'
},
{
type: 'string',
name: 'name'
},
{
type: 'string',
name: 'asString',
persist: false,
convert: function(value, record) {
return record.get('name');
},
depends: ['name']
},
{
type: 'string',
name: 'nameId',
persist: false,
convert: function(value, record) {
return record.get('name') + ' (' + record.get('id') + ')';
},
depends: ['name', 'id']
},
{
type: 'boolean',
name: 'deleted'
},
{
name: 'created',
type: 'date',
dateFormat: 'C'
},
{
name: 'updated',
type: 'auto',
dateFormat: 'C'
},
{
name: 'language',
type: 'string'
},
{
name: 'owner',
type: 'int'
},
{
name: 'creator',
type: 'string'
},
{
name: 'externalId',
type: 'string'
}
]
});