[#68,model/Field][s]: introduce default renderers for object and float:percentage.
This commit is contained in:
16
src/model.js
16
src/model.js
@@ -186,6 +186,20 @@ my.Field = Backbone.Model.extend({
|
|||||||
this.renderer = options.renderer;
|
this.renderer = options.renderer;
|
||||||
this.deriver = options.deriver;
|
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>
|
// * 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>
|
// * 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
|
// * 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:
|
// Additions:
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -38,7 +38,20 @@ test('Field: basics', function () {
|
|||||||
equal('XX', out[0].label);
|
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 doc = new recline.Model.Document({x: 123});
|
||||||
var cellRenderer = function(value, field) {
|
var cellRenderer = function(value, field) {
|
||||||
return '<span class="field-' + field.id + '">' + value + '</span>';
|
return '<span class="field-' + field.id + '">' + value + '</span>';
|
||||||
|
|||||||
Reference in New Issue
Block a user