diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js index 421c299af1bb689c8221d45b01899753bc970d35..c936af9e377967a380fc0760e5c429bdcea5c48f 100644 --- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js +++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js @@ -899,7 +899,7 @@ var FormUtil = new function() { this.getFieldForPropertyType = function(propertyType, timestampValue) { var $component = null; if (propertyType.dataType === "BOOLEAN") { - $component = this._getBooleanField(propertyType.code, propertyType.description, undefined, propertyType.mandatory); + $component = this._getBoolean2Field(propertyType.code, propertyType.description, propertyType.mandatory); } else if (propertyType.dataType === "CONTROLLEDVOCABULARY") { var vocabulary = profile.getVocabularyByCode(propertyType.vocabulary.code); $component = this._getDropDownFieldForVocabulary(propertyType.code, vocabulary.terms, propertyType.description, propertyType.mandatory); @@ -943,18 +943,37 @@ var FormUtil = new function() { // this.setFieldValue = function(propertyType, $field, value) { if(propertyType.dataType === "BOOLEAN") { - $($($field.children()[0]).children()[0]).prop('checked', value === "true"); + if(value === 'true') { + value = 'true'; + } else if (value === 'false') { + value = 'false'; + } else { + value = ''; + } + $field.val(value); } else if(propertyType.dataType === "TIMESTAMP" || propertyType.dataType === "DATE") { $($($field.children()[0]).children()[0]).val(value); } else { $field.val(value); } } - + + this.getBooleanValue = function($field) { + var value = null; + if($field.val() === 'true') { + value = true; + } else if ($field.val() === 'false') { + value = false; + } else { + value = null; + } + return value; + } + this.getFieldValue = function(propertyType, $field) { var propertyTypeValue; if (propertyType.dataType === "BOOLEAN") { - propertyTypeValue = $field.children().is(":checked"); + propertyTypeValue = this.getBooleanValue($field); } else { propertyTypeValue = $field.val(); } @@ -964,6 +983,14 @@ var FormUtil = new function() { // // Form Fields // + this._getBoolean2Field = function(id, alt, isRequired) { + var $dropdown = this.getDropDownForTerms(id, [ + { code : "true", label : "yes" }, + { code : "false", label : "no" } + ], alt, isRequired); + return $dropdown; + } + this._getBooleanField = function(id, alt, checked, isRequired) { var attr = {'type' : 'checkbox', 'alt' : alt, 'placeholder' : alt }; if(checked) { diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js index 415236759430eb752266c8b57e07cf0a046d5af5..2663a2d1765b65f5d2ccd803e03aa3db994d4dbb 100644 --- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js +++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js @@ -828,7 +828,7 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) { _this._dataSetFormModel.isFormDirty = true; var field = $(this); if(propertyType.dataType === "BOOLEAN") { - _this._dataSetFormModel.dataSet.properties[propertyTypeCode] = $(field.children()[0]).children()[0].checked; + _this._dataSetFormModel.dataSet.properties[propertyTypeCode] = FormUtil.getBooleanValue(field); } else if (propertyType.dataType === "TIMESTAMP" || propertyType.dataType === "DATE") { var timeValue = $($(field.children()[0]).children()[0]).val(); var isValidValue = Util.isDateValid(timeValue, propertyType.dataType === "DATE"); @@ -850,7 +850,7 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) { //Update values if is into edit mode if(this._dataSetFormModel.mode === FormMode.EDIT) { if(propertyType.dataType === "BOOLEAN") { - $($($component.children()[0]).children()[0]).prop('checked', value === "true"); + FormUtil.setFieldValue(propertyType, $component, value); } else if(propertyType.dataType === "TIMESTAMP" || propertyType.dataType === "DATE") { } else { $component.val(value); diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js index 97be4cc598a6060ed5705fca9a68c2b3b29d2460..e33959cff9f094e2a5089de43c4c8010114cd472 100644 --- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js +++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js @@ -576,7 +576,7 @@ function ExperimentFormView(experimentFormController, experimentFormModel) { if(this._experimentFormModel.mode === FormMode.EDIT) { if(propertyType.dataType === "BOOLEAN") { - $($($component.children()[0]).children()[0]).prop('checked', value === "true"); + FormUtil.setFieldValue(propertyType, $component, value); } else if(propertyType.dataType === "TIMESTAMP" || propertyType.dataType === "DATE") { } else { $component.val(value); @@ -592,7 +592,7 @@ function ExperimentFormView(experimentFormController, experimentFormModel) { _this._experimentFormModel.isFormDirty = true; var field = $(this); if(propertyType.dataType === "BOOLEAN") { - _this._experimentFormModel.experiment.properties[propertyTypeCode] = $(field.children()[0]).children()[0].checked; + _this._experimentFormModel.experiment.properties[propertyTypeCode] = FormUtil.getBooleanValue(field); } else if (propertyType.dataType === "TIMESTAMP" || propertyType.dataType === "DATE") { var timeValue = $($(field.children()[0]).children()[0]).val(); var isValidValue = Util.isDateValid(timeValue, propertyType.dataType === "DATE"); diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js index 7ae12b8a3bea0ba49e2294cba12a7f53236cdd72..dd90c6f1a2f27ba740c148d98e328361e5798847 100644 --- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js +++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js @@ -741,7 +741,7 @@ function SampleFormView(sampleFormController, sampleFormModel) { //Update values if is into edit mode if(this._sampleFormModel.mode === FormMode.EDIT || loadFromTemplate) { if(propertyType.dataType === "BOOLEAN") { - $($($component.children()[0]).children()[0]).prop('checked', value === "true"); + FormUtil.setFieldValue(propertyType, $component, value); } else if(propertyType.dataType === "TIMESTAMP" || propertyType.dataType === "DATE") { } else { $component.val(value); @@ -757,7 +757,7 @@ function SampleFormView(sampleFormController, sampleFormModel) { _this._sampleFormModel.isFormDirty = true; var field = $(this); if(propertyType.dataType === "BOOLEAN") { - _this._sampleFormModel.sample.properties[propertyTypeCode] = $(field.children()[0]).children()[0].checked; + _this._sampleFormModel.sample.properties[propertyTypeCode] = FormUtil.getBooleanValue(field); } else if (propertyType.dataType === "TIMESTAMP" || propertyType.dataType === "DATE") { var timeValue = $($(field.children()[0]).children()[0]).val(); var isValidValue = Util.isDateValid(timeValue, propertyType.dataType === "DATE");