diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js index dca6c45015d44670a1c012d437fabb5e131744a8..3405303c269323581bad11628e6e62a0f3368dc6 100644 --- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js +++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormController.js @@ -29,7 +29,13 @@ function ExperimentFormController(mainController, mode, experiment) { this._addCommentsWidget = function($container) { var commentsController = new CommentsController(this._experimentFormModel.experiment, this._experimentFormModel.mode, this._experimentFormModel); - commentsController.init($container); + if(this._experimentFormModel.mode !== FormMode.VIEW || + this._experimentFormModel.mode === FormMode.VIEW && !commentsController.isEmpty()) { + commentsController.init($container); + return true; + } else { + return false; + } } this.deleteExperiment = function(reason) { diff --git a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js index f3de0ad6c2ff168e88ff16f0603fbf2fe74b3bfc..fc8ff1c2a0c5c1108acd3528d36918f94797abdf 100644 --- a/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js +++ b/plasmid/source/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js @@ -241,73 +241,76 @@ function ExperimentFormView(experimentFormController, experimentFormModel) { if(propertyType.code === "XMLCOMMENTS") { var $commentsContainer = $("<div>"); $fieldset.append($commentsContainer); - this._experimentFormController._addCommentsWidget($commentsContainer); - continue; - } - var $controlGroup = null; - - var value = this._experimentFormModel.experiment.properties[propertyType.code]; - var isSystemProperty = false; - if(!value && propertyType.code.charAt(0) === '$') { - value = this._experimentFormModel.experiment.properties[propertyType.code.substr(1)]; - isSystemProperty = true; - } - - if(this._experimentFormModel.mode === FormMode.VIEW) { //Show values without input boxes if the form is in view mode - if(Util.getEmptyIfNull(value) !== "") { //Don't show empty fields, whole empty sections will show the title - if(propertyType.dataType === "CONTROLLEDVOCABULARY") { - value = FormUtil.getVocabularyLabelForTermCode(propertyType, value); - } - $controlGroup = FormUtil.getFieldForLabelWithText(propertyType.label, value); - } else { + var isAvailable = this._experimentFormController._addCommentsWidget($commentsContainer); + if(!isAvailable) { continue; } } else { - var $component = FormUtil.getFieldForPropertyType(propertyType); - //Update values if is into edit mode - if(this._experimentFormModel.mode === FormMode.EDIT) { - if(propertyType.dataType === "BOOLEAN") { - $($component.children()[0]).prop('checked', value === "true"); - } else if(propertyType.dataType === "TIMESTAMP") { - $($($component.children()[0]).children()[0]).val(value); + var $controlGroup = null; + + var value = this._experimentFormModel.experiment.properties[propertyType.code]; + var isSystemProperty = false; + if(!value && propertyType.code.charAt(0) === '$') { + value = this._experimentFormModel.experiment.properties[propertyType.code.substr(1)]; + isSystemProperty = true; + } + + if(this._experimentFormModel.mode === FormMode.VIEW) { //Show values without input boxes if the form is in view mode + if(Util.getEmptyIfNull(value) !== "") { //Don't show empty fields, whole empty sections will show the title + if(propertyType.dataType === "CONTROLLEDVOCABULARY") { + value = FormUtil.getVocabularyLabelForTermCode(propertyType, value); + } + $controlGroup = FormUtil.getFieldForLabelWithText(propertyType.label, value); } else { - $component.val(value); + continue; } } else { - $component.val(""); //HACK-FIX: Not all browsers show the placeholder in Bootstrap 3 if you don't set an empty value. - } - - var changeEvent = function(propertyType, isSystemProperty) { - return function() { - var propertyTypeCode = null; - if(isSystemProperty) { - propertyTypeCode = propertyType.code.substr(1); - } else { - propertyTypeCode = propertyType.code; - } - _this._experimentFormModel.isFormDirty = true; - var field = $(this); + var $component = FormUtil.getFieldForPropertyType(propertyType); + //Update values if is into edit mode + if(this._experimentFormModel.mode === FormMode.EDIT) { if(propertyType.dataType === "BOOLEAN") { - _this._experimentFormModel.experiment.properties[propertyTypeCode] = field.children()[0].checked; - } else if (propertyType.dataType === "TIMESTAMP") { - var timeValue = $($(field.children()[0]).children()[0]).val(); - _this._experimentFormModel.experiment.properties[propertyTypeCode] = timeValue; + $($component.children()[0]).prop('checked', value === "true"); + } else if(propertyType.dataType === "TIMESTAMP") { + $($($component.children()[0]).children()[0]).val(value); } else { - _this._experimentFormModel.experiment.properties[propertyTypeCode] = Util.getEmptyIfNull(field.val()); + $component.val(value); } + } else { + $component.val(""); //HACK-FIX: Not all browsers show the placeholder in Bootstrap 3 if you don't set an empty value. } + + var changeEvent = function(propertyType, isSystemProperty) { + return function() { + var propertyTypeCode = null; + if(isSystemProperty) { + propertyTypeCode = propertyType.code.substr(1); + } else { + propertyTypeCode = propertyType.code; + } + _this._experimentFormModel.isFormDirty = true; + var field = $(this); + if(propertyType.dataType === "BOOLEAN") { + _this._experimentFormModel.experiment.properties[propertyTypeCode] = field.children()[0].checked; + } else if (propertyType.dataType === "TIMESTAMP") { + var timeValue = $($(field.children()[0]).children()[0]).val(); + _this._experimentFormModel.experiment.properties[propertyTypeCode] = timeValue; + } else { + _this._experimentFormModel.experiment.properties[propertyTypeCode] = Util.getEmptyIfNull(field.val()); + } + } + } + + //Avoid modifications in properties managed by scripts + if(propertyType.managed || propertyType.dinamic) { + $component.prop('disabled', true); + } + + $component.change(changeEvent(propertyType, isSystemProperty)); + $controlGroup = FormUtil.getFieldForComponentWithLabel($component, propertyType.label); } - //Avoid modifications in properties managed by scripts - if(propertyType.managed || propertyType.dinamic) { - $component.prop('disabled', true); - } - - $component.change(changeEvent(propertyType, isSystemProperty)); - $controlGroup = FormUtil.getFieldForComponentWithLabel($component, propertyType.label); + $fieldset.append($controlGroup); } - - $fieldset.append($controlGroup); propertyGroupPropertiesOnForm++; }