Merge pull request #388 from aliounedia/master

[#385]add row add delete support for reclinejs
This commit is contained in:
Rufus Pollock
2014-02-05 10:08:32 +00:00
2 changed files with 15 additions and 11 deletions

View File

@@ -78,6 +78,8 @@ var createExplorer = function(dataset, state) {
gridOptions: { gridOptions: {
editable: true, editable: true,
enabledAddRow: true, enabledAddRow: true,
enabledDelRow: true,
autoEdit: false,
enableCellNavigation: true enableCellNavigation: true
}, },
columnsEditor: [ columnsEditor: [

View File

@@ -5,9 +5,6 @@ this.recline.View = this.recline.View || {};
(function($, my) { (function($, my) {
"use strict"; "use strict";
// Add new grid Control to display a new row add menu bouton // Add new grid Control to display a new row add menu bouton
// It display a simple side-bar menu ,for user to add new // It display a simple side-bar menu ,for user to add new
// row to grid // row to grid
@@ -101,11 +98,10 @@ my.SlickGrid = Backbone.View.extend({
&& this.state.get("gridOptions").enabledAddRow == true ){ && this.state.get("gridOptions").enabledAddRow == true ){
this.editor = new my.GridControl() this.editor = new my.GridControl()
this.elSidebar = this.editor.$el this.elSidebar = this.editor.$el
this.listenTo(this.editor.state, 'change', function(){ this.listenTo(this.editor.state, 'change', function(){
this.model.records.add({}) this.model.records.add(new recline.Model.Record())
}); });
} }
}, },
onRecordChanged: function(record) { onRecordChanged: function(record) {
// Ignore if the grid is not yet drawn // Ignore if the grid is not yet drawn
@@ -150,9 +146,11 @@ my.SlickGrid = Backbone.View.extend({
var validator = function(field){ var validator = function(field){
return function(value){ return function(value){
if(field.type == "date" && isNaN(Date.parse(value))){ if(field.type == "date" && isNaN(Date.parse(value))){
return {valid: false, msg: "A date is required , check field field-date-format"}; return {
valid: false,
msg: "A date is required, check field field-date-format"};
}else { }else {
return {valid: true, msg :null } return {valid: true, msg :null }
} }
} }
}; };
@@ -230,12 +228,16 @@ my.SlickGrid = Backbone.View.extend({
} }
} }
columns = columns.concat(tempHiddenColumns); columns = columns.concat(tempHiddenColumns);
// Transform a model object into a row // Transform a model object into a row
function toRow(m) { function toRow(m) {
var row = {}; var row = {};
self.model.fields.each(function(field){ self.model.fields.each(function(field){
row[field.id] = m.getFieldValueUnrendered(field); var render = "";
//when adding row from slickgrid the field value is undefined
if(!_.isUndefined(m.getFieldValueUnrendered(field))){
render =m.getFieldValueUnrendered(field)
}
row[field.id] = render
}); });
return row; return row;
} }
@@ -304,7 +306,7 @@ my.SlickGrid = Backbone.View.extend({
this._slickHandler.subscribe(this.grid.onCellChange, function (e, args) { this._slickHandler.subscribe(this.grid.onCellChange, function (e, args) {
// We need to change the model associated value // We need to change the model associated value
var grid = args.grid; var grid = args.grid;
var model = data.getModel(args.row); var model = data.getModel(args.row);
var field = grid.getColumns()[args.cell].id; var field = grid.getColumns()[args.cell].id;
var v = {}; var v = {};
v[field] = args.item[field]; v[field] = args.item[field];