From cfe4e6ac73355ad4856e3e6f46c169a0c5ff8ebb Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Fri, 28 Feb 2014 15:02:15 +0000 Subject: [PATCH] BIS-675 / SP-1214 : ELN UI - Ask to save changes if work can be lost (Ask to save changes on Data Set Form) SVN: 30794 --- .../newbrowser/html/js/views/DataSetForm.js | 28 +++++++++++++++++-- .../newbrowser/html/js/views/SampleForm.js | 4 +-- 2 files changed, 27 insertions(+), 5 deletions(-) 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 dca22b35ac7..22b44dc2c9f 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 @@ -26,6 +26,11 @@ function DataSetForm(serverFacade, containerId, profile, sample, mode) { this.mode = mode; this.dataSetTypes = null; this.files = []; + this.isFormDirty = false; + + this.isDirty = function() { + return this.isFormDirty; + } this.init = function() { var localInstance = this; @@ -131,6 +136,7 @@ function DataSetForm(serverFacade, containerId, profile, sample, mode) { } this._updateFileOptions = function() { + var localInstance = this; $wrapper = $("#fileOptionsContainer"); //Clean existing $wrapper.empty(); @@ -142,11 +148,16 @@ function DataSetForm(serverFacade, containerId, profile, sample, mode) { } if(this.files.length > 1) { + var $textField = this._getInputField('text', 'folderName', 'Folder Name', null, true); + $textField.change(function(event) { + localInstance.isFormDirty = true; + }); + var $folderName = $('<fieldset>') .append($('<div>', { class : "control-group"}) .append($('<label>', {class : 'control-label'}).text('Folder Name:')) .append($('<div>', {class: 'controls'}) - .append(this._getInputField('text', 'folderName', 'Folder Name', null, true)) + .append($textField) .append(' (Required)')) ); $wrapper.append($folderName); @@ -164,14 +175,19 @@ function DataSetForm(serverFacade, containerId, profile, sample, mode) { ); $wrapper.append($fileFieldSetIsDirectory); - var localInstance = this; $("#isZipDirectoryUpload").change(function() { + localInstance.isFormDirty = true; if($("#isZipDirectoryUpload"+":checked").val() === "on") { + var $textField = localInstance._getInputField('text', 'folderName', 'Folder Name', null, true); + $textField.change(function(event) { + localInstance.isFormDirty = true; + }); + var $folderName = $('<fieldset>', { "id" : "folderNameContainer"}) .append($('<div>', { class : "control-group"}) .append($('<label>', {class : 'control-label'}).text('Folder Name:')) .append($('<div>', {class: 'controls'}) - .append(localInstance._getInputField('text', 'folderName', 'Folder Name', null, true)) + .append($textField) .append(' (Required)')) ); $("#fileOptionsContainer").append($folderName); @@ -196,6 +212,7 @@ function DataSetForm(serverFacade, containerId, profile, sample, mode) { } this._repaintMetadata = function(dataSetType) { + var localInstance = this; $("#metadataContainer").empty(); var $wrapper = $("<div>"); @@ -224,6 +241,10 @@ function DataSetForm(serverFacade, containerId, profile, sample, mode) { $fieldset.append($controlGroup); var $component = this.getFieldForPropertyType(propertyType); + $component.change(function(event) { + localInstance.isFormDirty = true; + }); + $controls.append($component); if(propertyType.mandatory) { $controls.append(' (Required)') @@ -423,6 +444,7 @@ function DataSetForm(serverFacade, containerId, profile, sample, mode) { Util.showError(errorMessage, function() {Util.unblockUI();}); } else if (response.result.columns[0].title === "STATUS" && response.result.rows[0][0].value === "OK") { //Success Case var callbackOk = function() { + localInstance.isFormDirty = false; Util.unblockUI(); mainController.navigationBar.backButton(null); } 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 dec0545c43e..25bbcecc45d 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 @@ -49,10 +49,10 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod this.sample = sample; this.storage = null; this.dataSetViewer = null; - this.isDirty = false; + this.isFormDirty = false; this.isDirty = function() { - return this.isDirty; + return this.isFormDirty; } this.init = function() { -- GitLab