Browse Source

HPCC-9686 Add ability to fetch named results to ESPWorkunit

Fixes HPCC-9686

Signed-off-by: Gordon Smith <gordon.smith@lexisnexis.com>
Gordon Smith 11 years ago
parent
commit
dee137e4ee
2 changed files with 37 additions and 1 deletions
  1. 17 0
      esp/files/scripts/ESPResult.js
  2. 20 1
      esp/files/scripts/ESPWorkunit.js

+ 17 - 0
esp/files/scripts/ESPResult.js

@@ -451,6 +451,23 @@ define([
             return this.store;
         },
 
+        fetchContent: function () {
+            var deferred = new Deferred()
+            var context = this;
+            this.store.query({
+                Start: 0,
+                Count: 1
+            }).total.then(function(total) {
+                context.store.query({
+                    Start: 0,
+                    Count: total
+                }).then(function(results) {
+                    deferred.resolve(results);
+                });
+            });
+            return deferred.promise;
+        },
+
         getObjectStore: function () {
             return new ObjectStore({
                 objectStore: this.store

+ 20 - 1
esp/files/scripts/ESPWorkunit.js

@@ -18,6 +18,7 @@ define([
     "dojo/_base/array",
     "dojo/_base/lang",
     "dojo/_base/Deferred",
+    "dojo/promise/all",
     "dojo/data/ObjectStore",
     "dojo/store/util/QueryResults",
     "dojo/store/Observable",
@@ -27,7 +28,7 @@ define([
     "hpcc/ESPUtil",
     "hpcc/ESPRequest",
     "hpcc/ESPResult"
-], function (declare, arrayUtil, lang, Deferred, ObjectStore, QueryResults, Observable,
+], function (declare, arrayUtil, lang, Deferred, all, ObjectStore, QueryResults, Observable,
     WsWorkunits, WsTopology, ESPUtil, ESPRequest, ESPResult) {
 
     var _workunits = {};
@@ -530,6 +531,24 @@ define([
                 onGetResults: onFetchResults
             });
         },
+        fetchNamedResults: function (resultNames) {
+            var deferred = new Deferred()
+            var context = this;
+            this.fetchResults(function (results) {
+                var resultContents = [];
+                arrayUtil.forEach(resultNames, function (item, idx) {
+                    resultContents.push(context.namedResults[item].fetchContent());
+                });
+                all(resultContents).then(function (resultContents) {
+                    var results = [];
+                    arrayUtil.forEach(resultContents, function (item, idx) {
+                        results[resultNames[idx]] = item;
+                    });
+                    deferred.resolve(results);
+                });
+            });
+            return deferred.promise;
+        },
         fetchSequenceResults: function (onFetchSequenceResults) {
             if (this.sequenceResults && this.sequenceResults.length) {
                 onFetchSequenceResults(this.sequenceResults);