diff --git a/src/dom_components/model/ComponentLink.js b/src/dom_components/model/ComponentLink.js index d4125c845..76840e723 100644 --- a/src/dom_components/model/ComponentLink.js +++ b/src/dom_components/model/ComponentLink.js @@ -4,6 +4,7 @@ define(['./ComponentText'], return Component.extend({ defaults: _.extend({}, Component.prototype.defaults, { + type: 'link', tagName: 'a', traits: ['title', 'href', 'target'], }), diff --git a/src/dom_components/model/ComponentTable.js b/src/dom_components/model/ComponentTable.js index 5c94267f1..39870232a 100644 --- a/src/dom_components/model/ComponentTable.js +++ b/src/dom_components/model/ComponentTable.js @@ -4,6 +4,7 @@ define(['./Component'], return Component.extend({ defaults: _.extend({}, Component.prototype.defaults, { + type: 'table', tagName: 'table', droppable: ['tr', 'tbody', 'thead', 'tfoot'], columns: 3, @@ -48,6 +49,22 @@ define(['./Component'], } components.add(rowsToAdd); } + + // Clean table from non rows + var rowsColl = []; + components.each(function(model){ + if(model.get('type') != 'row'){ + model.get('components').each(function(row) { + if(row.get('type') == 'row'){ + row.collection = components; + rowsColl.push(row); + } + }); + }else{ + rowsColl.push(model); + } + }); + components.reset(rowsColl); }, },{ diff --git a/src/dom_components/model/ComponentTableCell.js b/src/dom_components/model/ComponentTableCell.js index de3bb9875..ae961ccc9 100644 --- a/src/dom_components/model/ComponentTableCell.js +++ b/src/dom_components/model/ComponentTableCell.js @@ -4,6 +4,7 @@ define(['./Component'], return Component.extend({ defaults: _.extend({}, Component.prototype.defaults, { + type: 'cell', tagName: 'td', draggable: ['tr'], }), diff --git a/src/dom_components/model/ComponentTableRow.js b/src/dom_components/model/ComponentTableRow.js index b4d1b5633..52789705d 100644 --- a/src/dom_components/model/ComponentTableRow.js +++ b/src/dom_components/model/ComponentTableRow.js @@ -4,11 +4,26 @@ define(['./Component'], return Component.extend({ defaults: _.extend({}, Component.prototype.defaults, { + type: 'row', tagName: 'tr', draggable: ['table', 'tbody', 'thead'], droppable: ['th', 'td'] }), + initialize: function(o, opt) { + Component.prototype.initialize.apply(this, arguments); + + // Clean the row from non cell components + var cells = []; + var components = this.get('components'); + components.each(function(model){ + if(model.get('type') == 'cell'){ + cells.push(model); + } + }); + components.reset(cells); + } + },{ /** diff --git a/src/dom_components/view/ComponentTableView.js b/src/dom_components/view/ComponentTableView.js index 201310e9a..75c7d9296 100644 --- a/src/dom_components/view/ComponentTableView.js +++ b/src/dom_components/view/ComponentTableView.js @@ -4,19 +4,6 @@ define(['backbone', './ComponentView'], return ComponentView.extend({ events: {}, - /* - initialize: function(o){ - ComponentView.prototype.initialize.apply(this, arguments); - this.classEmpty = this.ppfx + 'plh-map'; - }, - */ -/* - render: function() { - ComponentView.prototype.render.apply(this, arguments); - this.updateClasses(); - this.el.appendChild(this.getIframe()); - return this; - }, -*/ + }); });