From f293400a706542fbc43ee685254b5c119841eccf Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Fri, 28 Feb 2014 15:18:19 +0000 Subject: [PATCH] BIS-675 / SP-1214 : ELN UI - Ask to save changes if work can be lost (Ask to save changes on Sample Form + Data Set Form) SVN: 30796 --- .../newbrowser/html/js/views/DataSetForm.js | 2 ++ .../newbrowser/html/js/views/SampleForm.js | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/DataSetForm.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/DataSetForm.js index 22b44dc2c9f..3b2c20bdc93 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/DataSetForm.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/DataSetForm.js @@ -73,10 +73,12 @@ function DataSetForm(serverFacade, containerId, profile, sample, mode) { $dataSetTypeFieldSet.append($('<legend>').text('Type Info')); var $dataSetTypeDropDownObj = this._getDropDownForField('DATASET_TYPE', this.dataSetTypes); + $dataSetTypeDropDownObj.change(function() { localInstance._repaintMetadata( localInstance._getDataSetType($('#DATASET_TYPE').val()) ); + localInstance.isFormDirty = true; }); var $dataSetTypeDropDown = $('<div>', { class : 'control-group'}); diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js index 25bbcecc45d..06babf65fc4 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js @@ -537,6 +537,25 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod if (this.mode === SampleFormMode.VIEW) { this.enableEditButtonEvent(); } + + //Events to take care of a dirty form + $("#sampleSpaceProject").change(function(event) { + localInstance.isFormDirty = true; + }); + $("#sampleCode").change(function(event) { + localInstance.isFormDirty = true; + }); + + for(var i = 0; i < sampleType.propertyTypeGroups.length; i++) { + var propertyTypeGroup = sampleType.propertyTypeGroups[i]; + for(var j = 0; j < propertyTypeGroup.propertyTypes.length; j++) { + var propertyType = propertyTypeGroup.propertyTypes[j]; + var $field = $("#"+propertyType.code.replace('$','\\$').replace(/\./g,'\\.')); + $field.change(function(event) { + localInstance.isFormDirty = true; + }); + } + } } this.showSamplesWithoutPage = function(event) { @@ -681,6 +700,7 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod } Util.showSuccess(sampleTypeDisplayName + " " + message, callbackOk); + this.isFormDirty = false; } else { //This should never happen Util.showError("Unknown Error.", function() {Util.unblockUI();}); } -- GitLab