From c03407dca00d224c7195cb4db19d1d8bff9d8983 Mon Sep 17 00:00:00 2001 From: alaskowski <alaskowski@ethz.ch> Date: Wed, 19 Jul 2023 15:56:24 +0200 Subject: [PATCH] SSDM-55: Amended property history view to show multi-value properties changes --- .../html/js/views/History/HistoryModel.js | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/History/HistoryModel.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/History/HistoryModel.js index 5f9bfd410b9..305cb47540a 100644 --- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/History/HistoryModel.js +++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/History/HistoryModel.js @@ -67,10 +67,20 @@ function HistoryModel(entity) { if (entryType === "PROPERTY") { var validFromPropertyChanges = _this._getPropertyChanges(validFromChanges, entry.propertyName) - validFromPropertyChanges.newValue = entry.propertyValue + if(validFromPropertyChanges.propertyType.multiValue) { +// validFromPropertyChanges.newValue = (validFromPropertyChanges.newValue ?? []).concat(entry.propertyValue); + _this._setMultiValueProperty(validFromPropertyChanges, 'newValue', entry.propertyValue); + } else { + validFromPropertyChanges.newValue = entry.propertyValue + } if (validToChanges) { var validToPropertyChanges = _this._getPropertyChanges(validToChanges, entry.propertyName) - validToPropertyChanges.oldValue = entry.propertyValue + if(validToPropertyChanges.propertyType.multiValue) { +// validToPropertyChanges.oldValue = (validToPropertyChanges.oldValue ?? []).concat(entry.propertyValue); + _this._setMultiValueProperty(validToPropertyChanges, 'oldValue', entry.propertyValue); + } else { + validToPropertyChanges.oldValue = entry.propertyValue + } } } else if (entryType === "RELATION") { if (!entry.relationType) { @@ -377,4 +387,18 @@ function HistoryModel(entity) { return relatedObjectId.permId } } + + this._setMultiValueProperty = function(propertyChange, valueType, value) { + if(propertyChange[valueType]) { + if(propertyChange.propertyType.dataType == "CONTROLLEDVOCABULARY") { + var lastVal = propertyChange[valueType][propertyChange[valueType].length-1]; + lastVal = lastVal.substring(0, lastVal.lastIndexOf(' [')); + propertyChange[valueType][propertyChange[valueType].length-1] = lastVal; + } + propertyChange[valueType] = propertyChange[valueType].concat(value); + } else { + propertyChange[valueType] = [value]; + } + } + } -- GitLab