From 9f6ea725aba87100824e0fa1e2a624e4f0495784 Mon Sep 17 00:00:00 2001 From: Michael Hodge Date: Thu, 19 Nov 2015 10:54:02 -0600 Subject: [PATCH] Fix when scan rest column list limits return type of scans --- .../viewer/gxnat/vis/AjaxViewableTree.js | 48 ++++++++++++------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/src/main/scripts/viewer/gxnat/vis/AjaxViewableTree.js b/src/main/scripts/viewer/gxnat/vis/AjaxViewableTree.js index ec5253b3..021e721c 100644 --- a/src/main/scripts/viewer/gxnat/vis/AjaxViewableTree.js +++ b/src/main/scripts/viewer/gxnat/vis/AjaxViewableTree.js @@ -129,23 +129,39 @@ function(viewableFolderUrl, AjaxViewableTreeSubClass, runCallback, opt_doneCallb var restColumns = AjaxViewableTreeSubClass.prototype.restColumns; var columnsVar = (typeof restColumns !== 'undefined' && restColumns.length > 0) ? ('?columns=' + restColumns) : ''; - - gxnat.jsonGet(viewableFolderUrl + columnsVar, function(viewablesJson){ - if (!goog.isArray(viewablesJson)) { - //runCallback(viewablesJson); - //return; - } - AjaxViewableTreeSubClass.prototype.populateRestDataObject(viewablesJson,viewableFolderUrl,function(){ - goog.array.forEach(viewablesJson, function(viewable){ - //window.console.log("VIEWABLE:", viewable); - runCallback(viewable) - }) - if (opt_doneCallback){ - //window.console.log("done callback", opt_doneCallback); - opt_doneCallback(); + var reqCallback = function(viewablesJson){ + AjaxViewableTreeSubClass.prototype.populateRestDataObject(viewablesJson,viewableFolderUrl,function(){ + goog.array.forEach(viewablesJson, function(viewable){ + //window.console.log("VIEWABLE:", viewable); + runCallback(viewable) + }); + if (opt_doneCallback){ + //window.console.log("done callback", opt_doneCallback); + opt_doneCallback(); + } + }); + }; + gxnat.jsonGet(viewableFolderUrl + columnsVar, function(viewablesJson) { + // Make sure columns doesn't contain values that restrict scan return type + if (columnsVar.length>0) { + gxnat.jsonGet(viewableFolderUrl, function(viewablesJsonNC) { + goog.array.forEach(viewablesJsonNC, function(viewableNC){ + var hasMatch = goog.array.some(viewablesJson, function(viewable){ + if (viewable.ID==viewableNC.ID) { + return true; + } + return false; + }); + if (!hasMatch) { + viewablesJson.push(viewableNC); + } + }); + reqCallback(viewablesJson); + }); + } else { + reqCallback(viewablesJson); } - }); - }) + }); }