[#131,slickgrid] Support renderers and derivers

This commit is contained in:
amercader 2012-05-30 11:03:10 +01:00
parent 365b340019
commit 1cffd8fffb
2 changed files with 36 additions and 2 deletions

View File

@ -108,8 +108,15 @@ my.SlickGrid = Backbone.View.extend({
}
columns = columns.concat(tempHiddenColumns);
var data = [];
var data = this.model.currentDocuments.toJSON();
this.model.currentDocuments.each(function(doc){
var row = {};
self.model.fields.each(function(field){
row[field.id] = doc.getFieldValue(field);
});
data.push(row);
});
this.grid = new Slick.Grid(this.el, data, visibleColumns, options);

View File

@ -42,7 +42,7 @@ test('state', function () {
var visibleColumns = _.filter(_.pluck(dataset.fields.toArray(),'id'),function(f){
return (_.indexOf(view.state.get('hiddenColumns'),f) == -1)
});
// Hidden columns
assertPresent('.slick-header-column[title="y"]');
assertNotPresent('.slick-header-column[title="x"]');
@ -61,4 +61,31 @@ test('state', function () {
view.remove();
});
test('renderers', function () {
var dataset = Fixture.getDataset();
dataset.fields.get('country').renderer = function(val, field, doc){
return 'Country: ' + val;
};
var deriver = function(val, field, doc){
return doc.get('x') * 10;
}
dataset.fields.add(new recline.Model.Field({id:'computed'},{deriver:deriver}));
var view = new recline.View.SlickGrid({
model: dataset
});
$('.fixtures .test-datatable').append(view.el);
view.render();
// Render the grid manually
view.grid.init();
equal($(view.grid.getCellNode(0,view.grid.getColumnIndex('country'))).text(),'Country: DE');
equal($(view.grid.getCellNode(0,view.grid.getColumnIndex('computed'))).text(),'10');
view.remove();
});
})(this.jQuery);