diff --git a/LICENSE.txt b/LICENSE.txt index ac88e62c..a0993c64 100755 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2011 Max Ogden & Contributors +Copyright (c) 2011-2014 Max Ogden, Rufus Pollock and Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/demos/multiview/app.js b/demos/multiview/app.js index 06e3dc61..2aec5896 100755 --- a/demos/multiview/app.js +++ b/demos/multiview/app.js @@ -73,7 +73,18 @@ var createExplorer = function(dataset, state) { id: 'grid', label: 'Grid', view: new recline.View.SlickGrid({ - model: dataset + model: dataset, + state: { + gridOptions: { + editable: true, + enabledAddRow: true, + enableCellNavigation: true + }, + columnsEditor: [ + { column: 'date', editor: Slick.Editors.Date }, + { column: 'title', editor: Slick.Editors.Text } + ] + } }) }, { @@ -81,6 +92,7 @@ var createExplorer = function(dataset, state) { label: 'Graph', view: new recline.View.Graph({ model: dataset + }) }, { diff --git a/src/view.slickgrid.js b/src/view.slickgrid.js index 55477852..f7512f8d 100644 --- a/src/view.slickgrid.js +++ b/src/view.slickgrid.js @@ -23,7 +23,11 @@ this.recline.View = this.recline.View || {}; // model: dataset, // el: $el, // state: { -// gridOptions: {editable: true}, +// gridOptions: { +// editable: true, +// enableAddRows: true +// ... +// }, // columnsEditor: [ // {column: 'date', editor: Slick.Editors.Date }, // {column: 'title', editor: Slick.Editors.Text} @@ -113,6 +117,24 @@ my.SlickGrid = Backbone.View.extend({ var editInfo = _.find(self.state.get('columnsEditor'),function(c){return c.column === field.id;}); if (editInfo){ column.editor = editInfo.editor; + } else { + // guess editor type + var typeToEditorMap = { + 'string': Slick.Editors.LongText, + 'integer': Slick.Editors.IntegerEditor, + 'number': Slick.Editors.Text, + // TODO: need a way to ensure we format date in the right way + // Plus what if dates are in distant past or future ... (?) + // 'date': Slick.Editors.DateEditor, + 'date': Slick.Editors.Text, + 'boolean': Slick.Editors.YesNoSelectEditor + // TODO: (?) percent ... + }; + if (field.type in typeToEditorMap) { + column.editor = typeToEditorMap[field.type] + } else { + column.editor = Slick.Editors.LongText; + } } columns.push(column); });