From bd4aaa23a3318722ebb1a03114dd5336f208a896 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Wed, 20 Aug 2014 15:06:54 +0000 Subject: [PATCH] SSDM-344 : New Free Form Table structure (ongoing work). SVN: 32300 --- .../SampleForm/widgets/FreeFormTableController.js | 12 +++++++++++- .../views/SampleForm/widgets/FreeFormTableModel.js | 4 ++-- .../views/SampleForm/widgets/FreeFormTableView.js | 13 +++++++++---- 3 files changed, 22 insertions(+), 7 deletions(-) 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 c6730353510..93a2bdd4c9a 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 2937401c248..37968005094 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 15d1d512291..78045a483b0 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); -- GitLab