Переглянути джерело

Merge pull request #5475 from GordonSmith/mark_del_wu

HPCC-10431 Deleting WU does not refresh state

Reviewed-By: Miguel Vazquez <miguel.vazquez@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 11 роки тому
батько
коміт
6aae44dc3e

+ 20 - 15
esp/files/scripts/ESPDFUWorkunit.js

@@ -178,10 +178,9 @@ define([
 
             var context = this;
             FileSpray.UpdateDFUWorkunit({
-                request: outerRequest,
-                load: function (response) {
-                    context.refresh();
-                }
+                request: outerRequest
+            }).then(function (response) {
+                context.refresh();
             });
         },
         submit: function (target) {
@@ -190,17 +189,21 @@ define([
             FileSpray.DFUWUFile({
                 request: {
                     Wuid: this.Wuid
-                },
-                load: function (response) {
-                    onFetchXML(response);
                 }
+            }).then(function (response) {
+                onFetchXML(response);
             });
         },
         _resubmit: function (clone, resetWorkflow, callback) {
         },
         resubmit: function (callback) {
         },
-        _action: function (action, callback) {
+        _action: function (action) {
+            var context = this;
+            return FileSpray.DFUWorkunitsAction([this], action, {
+            }).then(function (response) {
+                context.refresh();
+            });
         },
         abort: function () {
             return FileSpray.AbortDFUWorkunit({
@@ -210,6 +213,7 @@ define([
             });
         },
         doDelete: function (callback) {
+            return this._action("Delete");
         },
         refresh: function (full) {
             this.getInfo({
@@ -223,14 +227,13 @@ define([
             FileSpray.GetDFUWorkunit({
                 request: {
                     wuid: this.Wuid
-                },
-                load: function (response) {
-                    if (lang.exists("GetDFUWorkunitResponse.result", response)) {
-                        context.updateData(response.GetDFUWorkunitResponse.result);
+                }
+            }).then(function (response) {
+                if (lang.exists("GetDFUWorkunitResponse.result", response)) {
+                    context.updateData(response.GetDFUWorkunitResponse.result);
 
-                        if (args.onAfterSend) {
-                            args.onAfterSend(context);
-                        }
+                    if (args.onAfterSend) {
+                        args.onAfterSend(context);
                     }
                 }
             });
@@ -285,6 +288,8 @@ define([
                     return "/esp/files/img/workunit_running.png";
                 case 8:
                     return "/esp/files/img/workunit_aborting.png";
+                case 999:
+                    return "/esp/files/img/workunit_deleted.png";                    
             }
             return "/esp/files/img/workunit.png";
         }

+ 9 - 8
esp/files/scripts/ESPWorkunit.js

@@ -266,7 +266,9 @@ define([
             return this._action("Abort");
         },
         doDelete: function () {
-            return this._action("Delete");
+            return this._action("Delete").then(function(response) {
+                var d= 0;
+            });
         },
         publish: function (jobName, remoteDali, priority, comment) {
             this._assertHasWuid();
@@ -311,13 +313,12 @@ define([
             WsWorkunits.WUQuery({
                 request: {
                     Wuid: this.Wuid
-                },
-                load: function (response) {
-                    if (lang.exists("WUQueryResponse.Workunits.ECLWorkunit", response)) {
-                        arrayUtil.forEach(response.WUQueryResponse.Workunits.ECLWorkunit, function (item, index) {
-                            context.updateData(item);
-                        });
-                    }
+                }
+            }).then(function (response) {
+                if (lang.exists("WUQueryResponse.Workunits.ECLWorkunit", response)) {
+                    arrayUtil.forEach(response.WUQueryResponse.Workunits.ECLWorkunit, function (item, index) {
+                        context.updateData(item);
+                    });
                 }
             });
         },

+ 21 - 2
esp/files/scripts/FileSpray.js

@@ -170,7 +170,8 @@ define([
             5: "failed",
             6: "finished",
             7: "monitoring",
-            8: "aborting"
+            8: "aborting",
+            999: "deleted"
         },
 
         isComplete: function (state) {
@@ -178,6 +179,7 @@ define([
                 case 4:
                 case 5:
                 case 6:
+                case 999:
                     return true;
             }
             return false;
@@ -297,7 +299,24 @@ define([
             return ESPRequest.send("FileSpray", "Rename", params);
         },
         GetDFUWorkunit: function (params) {
-            return ESPRequest.send("FileSpray", "GetDFUWorkunit", params);
+            return ESPRequest.send("FileSpray", "GetDFUWorkunit", params).then(function(response) {
+                if (lang.exists("Exceptions.Exception", response)) {
+                    arrayUtil.forEach(response.Exceptions.Exception, function (item, idx) {
+                        if (item.Code === 20080) {
+                            lang.mixin(response, {
+                            	GetDFUWorkunitResponse: {
+                                    result: {
+                                        Wuid: params.request.Wuid,
+                                        State: 999,
+                                        StateMessage: "deleted"
+                                    }
+                                }
+                            });
+                        }
+                    });
+                }
+                return response;
+            });
         },
         UpdateDFUWorkunit: function (params) {
             return ESPRequest.send("FileSpray", "UpdateDFUWorkunit", params);

+ 6 - 4
esp/files/scripts/WsWorkunits.js

@@ -157,10 +157,12 @@ define([
                         if (item.Code === 20081) {
                             lang.mixin(response, {
                                 WUQueryResponse: {
-                                    Workunit: {
-                                        Wuid: params.request.Wuid,
-                                        StateID: 999,
-                                        State: "deleted"
+                                    Workunits: {
+                                        ECLWorkunit: [{
+	                                        Wuid: params.request.Wuid,
+	                                        StateID: 999,
+	                                        State: "deleted"
+	                                    }]
                                     }
                                 }
                             });

+ 2 - 1
esp/files/stub.js

@@ -110,7 +110,8 @@ define([
                             }, _item);
 
                             if ((item.Source === "WsWorkunits.WUInfo" && item.Code === 20080) ||
-                                (item.Source === "WsWorkunits.WUQuery" && item.Code === 20081)) {
+                                (item.Source === "WsWorkunits.WUQuery" && item.Code === 20081) ||
+                                (item.Source === "FileSpray.GetDFUWorkunit" && item.Code === 20080)) {
                             } else {
                                 var message = "<h4>" + entities.encode(item.Source) + "</h4><p>" + entities.encode(item.Message) + "</p>";
                                 myToaster.setContent(message, item.Severity, item.Severity === "Error" ? -1 : null);