From 2e8c1967f3d7ccd5a7de6f77fff0ede4ad327d40 Mon Sep 17 00:00:00 2001 From: Ryan Deba Date: Mon, 4 Dec 2017 13:04:54 -0600 Subject: [PATCH] change how various table compoments are initialized --- src/dom_components/model/ComponentTable.js | 50 +------------------ .../model/ComponentTableBody.js | 35 ++++++++++++- .../model/ComponentTableFoot.js | 6 +-- .../model/ComponentTableHead.js | 6 +-- src/dom_components/model/ComponentTableRow.js | 1 - 5 files changed, 41 insertions(+), 57 deletions(-) diff --git a/src/dom_components/model/ComponentTable.js b/src/dom_components/model/ComponentTable.js index 64ecab2dc..5e12f68f1 100644 --- a/src/dom_components/model/ComponentTable.js +++ b/src/dom_components/model/ComponentTable.js @@ -6,19 +6,6 @@ module.exports = Component.extend({ type: 'table', tagName: 'table', droppable: ['tbody', 'thead', 'tfoot'], - columns: 3, - rows: 2, - /* - traits: [{ - label: 'Columns', - name: 'columns', - changeProp: 1, - },{ - label: 'Rows', - name: 'rows', - changeProp: 1, - }] - */ }), initialize(o, opt) { @@ -29,43 +16,8 @@ module.exports = Component.extend({ // Init components if empty if(!components.length){ - var rowsToAdd = []; - - while(rows--){ - var columnsToAdd = []; - var clm = columns; - - while (clm--) { - columnsToAdd.push({ - type: 'cell', - classes: ['cell'] - }); - } - - rowsToAdd.push({ - type: 'row', - classes: ['row'], - components: columnsToAdd - }); - } - components.add(rowsToAdd); + components.add({type: 'tbody'}); } - - // Clean table from non rows - var rowsColl = []; - components.each(model => { - if(model.get('type') != 'row'){ - model.get('components').each(row => { - if(row.get('type') == 'row'){ - row.collection = components; - rowsColl.push(row); - } - }); - }else{ - rowsColl.push(model); - } - }); - // TODO: create tbody element if it doesn't exist? components.reset(rowsColl); }, },{ diff --git a/src/dom_components/model/ComponentTableBody.js b/src/dom_components/model/ComponentTableBody.js index 238c3b348..1ed348326 100644 --- a/src/dom_components/model/ComponentTableBody.js +++ b/src/dom_components/model/ComponentTableBody.js @@ -5,9 +5,42 @@ module.exports = Component.extend({ defaults: _.extend({}, Component.prototype.defaults, { type: 'tbody', tagName: 'tbody', - droppable: ['tr'] + droppable: ['tr'], + columns: 1, + rows: 1, }), + initialize(o, opt) { + Component.prototype.initialize.apply(this, arguments); + var components = this.get('components'); + var rows = this.get('rows'); + var columns = this.get('columns'); + + // Init components if empty + if(!components.length){ + var rowsToAdd = []; + + while(rows--){ + var columnsToAdd = []; + var clm = columns; + + while (clm--) { + columnsToAdd.push({ + type: 'cell', + classes: ['cell'] + }); + } + + rowsToAdd.push({ + type: 'row', + classes: ['row'], + components: columnsToAdd + }); + } + components.add(rowsToAdd); + } + }, + },{ /** diff --git a/src/dom_components/model/ComponentTableFoot.js b/src/dom_components/model/ComponentTableFoot.js index b682d4bf1..b1b21c0f6 100644 --- a/src/dom_components/model/ComponentTableFoot.js +++ b/src/dom_components/model/ComponentTableFoot.js @@ -1,8 +1,8 @@ -var Component = require('./Component'); +var ComponentTableBody = require('./ComponentTableBody'); -module.exports = Component.extend({ +module.exports = ComponentTableBody.extend({ - defaults: _.extend({}, Component.prototype.defaults, { + defaults: _.extend({}, ComponentTableBody.prototype.defaults, { type: 'tfoot', tagName: 'tfoot', droppable: ['tr'] diff --git a/src/dom_components/model/ComponentTableHead.js b/src/dom_components/model/ComponentTableHead.js index 4afeff490..01587abf5 100644 --- a/src/dom_components/model/ComponentTableHead.js +++ b/src/dom_components/model/ComponentTableHead.js @@ -1,8 +1,8 @@ -var Component = require('./Component'); +var ComponentTableBody = require('./ComponentTableBody'); -module.exports = Component.extend({ +module.exports = ComponentTableBody.extend({ - defaults: _.extend({}, Component.prototype.defaults, { + defaults: _.extend({}, ComponentTableBody.prototype.defaults, { type: 'thead', tagName: 'thead', droppable: ['tr'] diff --git a/src/dom_components/model/ComponentTableRow.js b/src/dom_components/model/ComponentTableRow.js index 3c2642421..958a2949b 100644 --- a/src/dom_components/model/ComponentTableRow.js +++ b/src/dom_components/model/ComponentTableRow.js @@ -5,7 +5,6 @@ module.exports = Component.extend({ defaults: _.extend({}, Component.prototype.defaults, { type: 'row', tagName: 'tr', - draggable: ['table', 'tbody', 'thead'], droppable: ['th', 'td'] }),