diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableController.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableController.js index c67303535105e097ddd23acd45c9acf2c5d6bb79..93a2bdd4c9a4936a3b2554c2c8ae341a6366dde7 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableController.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableController.js @@ -37,26 +37,36 @@ function FreeFormTableController(sample, isEnabled) { this._freeFormTableModel.tables = JSON.parse(state); } } - + this.addTable = function(tableIdx) { var newTableIndex = tableIdx + 1; this._freeFormTableModel.tables.splice(newTableIndex, 0, this._freeFormTableModel.getDefaultTableToAdd()); //Adds to model var newTableModel = this._freeFormTableModel.tables[newTableIndex]; //New model var $newTableContainer = this._freeFormTableView._getTableWithContainer(newTableModel, newTableIndex); //Creates Table from model this._freeFormTableView.addTable(newTableIndex, $newTableContainer); + + this.save(); } this.deleteTable = function(tableIdx) { this._freeFormTableModel.tables.splice(tableIdx, 1); //Removes from model this._freeFormTableView.deleteTable(tableIdx); //Removes from view + + this.save(); } this.addRow = function(tableIdx, rowIdx) { + var tableModel = this._freeFormTableModel.tables[tableIdx]; + var numColumns = tableModel.modelDetailed[0].length; + tableModel.modelDetailed.splice(rowIdx, 0, [numColumns]); + this.save(); } this.delRow = function(tableIdx, rowIdx) { + tableModel.modelDetailed.splice(rowIdx, 1); + this.save(); } this.addColumn = function(tableIdx, colIdx) { diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableModel.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableModel.js index 2937401c2482895249e8d3f78a0a3a68c24d09ee..379680050942d4160ade993a598462e9c3f3c852 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableModel.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableModel.js @@ -18,8 +18,8 @@ function FreeFormTableModel(sample, isEnabled) { this.samplePropertyCode = "FREEFORM_TABLE_STATE"; this.defaultTable = { name : "Untitled", - modelDetailed : [['1,1']], - modelMini : { rows : ['1'], columns : ['1'] } + modelDetailed : [['1,1', '1,2']], + modelMini : { rows : ['1'], columns : ['1', '2'] } }; this.getDefaultTableToAdd = function() { diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableView.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableView.js index 15d1d512291f824dfc0b1072454d3dd860982d4c..78045a483b0d50532063fb6eb9373ac3d3f31eb3 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableView.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm/widgets/FreeFormTableView.js @@ -110,7 +110,7 @@ function FreeFormTableView(freeFormTableController, freeFormTableModel) { } var $rowsTitle = $("<h4>").append("Rows"); var $rowsContainer = $("<div>"); - for(var i = 0; i < modelMini.columns.length; i++) { + for(var i = 0; i < modelMini.rows.length; i++) { if(this._freeFormTableModel.isEnabled) { var $textField = FormUtil._getInputField('text', null, "Row " + (i+1), null, false); $textField.val(modelMini.rows[i]); @@ -166,7 +166,6 @@ function FreeFormTableView(freeFormTableController, freeFormTableModel) { $column.append(modelDetailed[i][j]); } } - } return $table; } @@ -231,7 +230,10 @@ function FreeFormTableView(freeFormTableController, freeFormTableModel) { var focusEventTDC = this._getFocusEventAction( tableIdx, function(selectedField) { return selectedField.columnIdx !== null; }, - function(selectedField) { _this._freeFormTableController.delColumn(selectedField.tableIdx, selectedField.columnIdx); } + function(selectedField) { + _this._freeFormTableController.delColumn(selectedField.tableIdx, selectedField.columnIdx); + _this._freeFormTableModel.selectedField = null; + } ); $toolBarBtnTDC.click(focusEventTDC); @@ -258,7 +260,10 @@ function FreeFormTableView(freeFormTableController, freeFormTableModel) { var focusEventTDR = this._getFocusEventAction( tableIdx, function(selectedField) { return selectedField.rowIdx !== null; }, - function(selectedField) { _this._freeFormTableController.delRow(selectedField.tableIdx, selectedField.rowIdx); } + function(selectedField) { + _this._freeFormTableController.delRow(selectedField.tableIdx, selectedField.rowIdx); + _this._freeFormTableModel.selectedField = null; + } ); $toolBarBtnTDR.click(focusEventTDR);