Skip to content
Snippets Groups Projects
Commit 84726e1e authored by juanf's avatar juanf
Browse files

SSDM-2320 : Experiment form comments widget fix

SVN: 34475
parent 4c4be8a8
No related branches found
No related tags found
No related merge requests found
......@@ -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) {
......
......@@ -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++;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment