From 5d67ba276bcea859f7e2d2bfd156911c9ba28f63 Mon Sep 17 00:00:00 2001 From: Eduard Czimbalmos <Eduard.Czimbalmos@ericsson.com> Date: Wed, 30 Apr 2025 09:41:17 +0200 Subject: [PATCH] Fix UnionTable getResponseElement: handle node elements correctly --- .../ViewModels/ViewModel_UnionTable.js | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/htdocs/WebApplications/CustomizableApp/ViewModels/ViewModel_UnionTable.js b/htdocs/WebApplications/CustomizableApp/ViewModels/ViewModel_UnionTable.js index abdd796..e2b4e6c 100644 --- a/htdocs/WebApplications/CustomizableApp/ViewModels/ViewModel_UnionTable.js +++ b/htdocs/WebApplications/CustomizableApp/ViewModels/ViewModel_UnionTable.js @@ -73,7 +73,7 @@ function CViewModel_UnionTable(aViewModel, aOptions) { return mViewModel.getRequestFromPath(mResponseDataPaths[0]).getData.element; }; - this.getResponseElement = function (aReponseDataPath, aFullTableSelection) { + this.getResponseElement = function (aReponseDataPath, aFullTableSelection) { var lElement; if (aFullTableSelection) { aFullTableSelection.parents = []; @@ -86,9 +86,9 @@ function CViewModel_UnionTable(aViewModel, aOptions) { lElement = lElement[aReponseDataPath[0]]; } if (lElement) { - var lRq = mViewModel.getRequest()[aReponseDataPath[0]]; - for (var i = 1; i < aReponseDataPath.length && lElement; ++i) { - if (lElement.list && lRq.getData.selection && lRq.getData.selection.length > 0) { + var lRq = mViewModel.getRequest()[aReponseDataPath[0]]; + for (var i = 1; i < aReponseDataPath.length && lElement; ++i) { + if (lElement.list && lRq.getData.selection && lRq.getData.selection.length > 0) { if (aFullTableSelection) { aFullTableSelection.depth--; if (lElement.list[lRq.getData.selection[0]] != undefined) { @@ -104,19 +104,21 @@ function CViewModel_UnionTable(aViewModel, aOptions) { lElement = undefined; break; } - } else if (!lRq.getData.selection || lRq.getData.selection.length === 0) { - /**/ - } else if (lElement.node && lElement.node.childVals) { - lElement = lElement.node.childVals[aReponseDataPath[i]]; - } else + } else if (lElement.node && lElement.node.childVals) { + lElement = lElement.node.childVals[aReponseDataPath[i]]; + aFullTableSelection.depth--; + aFullTableSelection.path = aFullTableSelection.path.slice(1); + } else if (!lRq.getData.selection || lRq.getData.selection.length === 0) { + /**/ + } else lElement = { "error" : "cannot determine node" }; - if (lRq.getData.children) - lRq = lRq.getData.children[aReponseDataPath[i]]; + if (lRq.getData.children) + lRq = lRq.getData.children[aReponseDataPath[i]]; } } - } + } return lElement; }; -- GitLab