I'm using ng-admin.
According to doc, I created a custom field.
ng-admin recognize the FooFiledType but it dosn't render the FoofieldView and use the original FieldView !
config module :
angular.module('admin', ['ng-admin']);
import FooField from './FooFieldType';
angular.module('admin')
.config(['NgAdminConfigurationProvider', function (nga) {
nga.registerFieldType('foo', FooField);
}])
.config(['FieldViewConfigurationProvider', function (fvp) {
fvp.registerFieldView('foo', require('./FooFieldView'));
}])
;
angular.module('admin').config(['NgAdminConfigurationProvider', function (nga) {
var bar = nga.entity('bar');
bar.creationView().fields([nga.field('foo','foo')]);
});
FooField.js :
import Field from 'admin-config/lib/Field/Field';
class FooField extends Field {
constructor(name) {
super(name);
}
}
export default FooField;
FooFieldView.js :
export default {
// displayed in listView and showView
getReadWidget : () => '<ma-number-column field="::field" value="::entry.values[field.name()]"></ma-number-column>',
// displayed in listView and showView when isDetailLink is true
getLinkWidget : () => '<a ng-click="gotoDetail()">' + module.exports.getReadWidget() + '</a>',
// displayed in the filter form in the listView
getFilterWidget : () => '<ma-input-field type="number" field="::field" value="values[field.name()]"></ma-input-field>',
// displayed in editionView and creationView
getWriteWidget : () => '<h1>testFoo</h1><ma-input-field type="number" field="::field" value="entry.values[field.name()]"></ma-input-field>'
};
Doc seems incomplete... but I've narrowed it down to a missing 'this._type' setting into the Field. You need to change FooField.js as follows:
....
class FooField extends Field {
constructor(name) {
super(name);
//THIS IS THE IMPORTANT PART:
this._type = 'foo';
//DOC DOESN'T SPEAK ABOUT
}
}
....
When you define _type in the FooField class then the view according to type is called and therefore rendered. Else since we are inheriting from 'Field' the String view is rendered and it seems like nothing works...
Doc really needs to get some update :)