[#68,model/Field][s]: introduce default renderers for object and float:percentage.
This commit is contained in:
parent
dea4b3ece1
commit
498e9712c6
16
src/model.js
16
src/model.js
@ -186,6 +186,20 @@ my.Field = Backbone.Model.extend({
|
||||
this.renderer = options.renderer;
|
||||
this.deriver = options.deriver;
|
||||
}
|
||||
if (!this.renderer) {
|
||||
this.renderer = this.defaultRenderers[this.get('type')];
|
||||
}
|
||||
},
|
||||
defaultRenderers: {
|
||||
object: function(val, field, doc) {
|
||||
return JSON.stringify(val)
|
||||
},
|
||||
'float': function(val, field, doc) {
|
||||
var format = field.get('format');
|
||||
if (format === 'percentage') {
|
||||
return val + '%';
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -217,7 +231,7 @@ my.FieldList = Backbone.Collection.extend({
|
||||
// * query: Query in ES Query DSL <http://www.elasticsearch.org/guide/reference/api/search/query.html>
|
||||
// * filter: See filters and <a href="http://www.elasticsearch.org/guide/reference/query-dsl/filtered-query.html">Filtered Query</a>
|
||||
// * fields: set of fields to return - http://www.elasticsearch.org/guide/reference/api/search/fields.html
|
||||
// * facets: TODO - see http://www.elasticsearch.org/guide/reference/api/search/facets/
|
||||
// * facets: specification of facets - see http://www.elasticsearch.org/guide/reference/api/search/facets/
|
||||
//
|
||||
// Additions:
|
||||
//
|
||||
|
||||
@ -38,7 +38,20 @@ test('Field: basics', function () {
|
||||
equal('XX', out[0].label);
|
||||
});
|
||||
|
||||
test('Field: deriver and renderer', function () {
|
||||
test('Field: default renderers', function () {
|
||||
var doc = new recline.Model.Document({x: 12.3, myobject: {a: 1, b: 2}});
|
||||
var field = new recline.Model.Field({id: 'myobject', type: 'object'});
|
||||
var out = doc.getFieldValue(field);
|
||||
var exp = '{"a":1,"b":2}';
|
||||
equal(out, exp);
|
||||
|
||||
var field = new recline.Model.Field({id: 'x', type: 'float', format: 'percentage'});
|
||||
var out = doc.getFieldValue(field);
|
||||
var exp = '12.3%';
|
||||
equal(out, exp);
|
||||
});
|
||||
|
||||
test('Field: custom deriver and renderer', function () {
|
||||
var doc = new recline.Model.Document({x: 123});
|
||||
var cellRenderer = function(value, field) {
|
||||
return '<span class="field-' + field.id + '">' + value + '</span>';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user