浏览代码

HPCC-9280 Detail Pages missing information at startup

Regression caused by HPCC-9236

Fixes HPCC-9280

Signed-off-by: Gordon Smith <gordon.smith@lexisnexis.com>
Gordon Smith 12 年之前
父节点
当前提交
3e1a99ba18

+ 4 - 0
esp/files/scripts/DFUWUDetailsWidget.js

@@ -135,6 +135,10 @@ define([
 
                 this.clearInput();
                 this.wu = ESPDFUWorkunit.Get(params.Wuid);
+                var data = this.wu.getData();
+                for (key in data) {
+                    this.updateInput(key, null, data[key]);
+                }
                 var context = this;
                 this.wu.watch(function (name, oldValue, newValue) {
                     context.updateInput(name, oldValue, newValue);

+ 22 - 13
esp/files/scripts/LFDetailsWidget.js

@@ -145,6 +145,10 @@ define([
             var context = this;
             if (params.Name) {
                 this.logicalFile = ESPLogicalFile.Get(params.Name);
+                var data = this.logicalFile.getData();
+                for (key in data) {
+                    this.updateInput(key, null, data[key]);
+                }
                 this.logicalFile.watch(function (name, oldValue, newValue) {
                     context.updateInput(name, oldValue, newValue);
                 });
@@ -217,19 +221,24 @@ define([
         },*/
 
         updateInput: function (name, oldValue, newValue) {
-            var domElem = dom.byId(this.id + name);
-            if (domElem) {
-                switch(domElem.tagName) {
-                    case "SPAN":
-                    case "DIV":
-                        domAttr.set(this.id + name, "innerHTML", newValue)
-                        break;
-                    case "INPUT":
-                    case "TEXTAREA":
-                        domAttr.set(this.id + name, "value", newValue)
-                        break;
-                    default:
-                        alert(domElem.tagName);
+            var registryNode = registry.byId(this.id + name);
+            if (registryNode) {
+                registryNode.set("value", newValue);
+            } else {
+                var domElem = dom.byId(this.id + name);
+                if (domElem) {
+                    switch (domElem.tagName) {
+                        case "SPAN":
+                        case "DIV":
+                            domAttr.set(this.id + name, "innerHTML", newValue);
+                            break;
+                        case "INPUT":
+                        case "TEXTAREA":
+                            domAttr.set(this.id + name, "value", newValue);
+                            break;
+                        default:
+                            alert(domElem.tagName);
+                    }
                 }
             }
             if (name === "Wuid") {

+ 22 - 13
esp/files/scripts/SFDetailsWidget.js

@@ -138,6 +138,10 @@ define([
             var context = this;
             if (params.Name) {
                 this.logicalFile = ESPLogicalFile.Get(params.Name);
+                var data = this.logicalFile.getData();
+                for (key in data) {
+                    this.updateInput(key, null, data[key]);
+                }
                 this.logicalFile.watch(function (name, oldValue, newValue) {
                     context.updateInput(name, oldValue, newValue);
                 });
@@ -223,19 +227,24 @@ define([
         },
 
         updateInput: function (name, oldValue, newValue) {
-            var domElem = dom.byId(this.id + name);
-            if (domElem) {
-                switch(domElem.tagName) {
-                    case "SPAN":
-                    case "DIV":
-                        domAttr.set(this.id + name, "innerHTML", newValue)
-                        break;
-                    case "INPUT":
-                    case "TEXTAREA":
-                        domAttr.set(this.id + name, "value", newValue)
-                        break;
-                    default:
-                        alert(domElem.tagName);
+            var registryNode = registry.byId(this.id + name);
+            if (registryNode) {
+                registryNode.set("value", newValue);
+            } else {
+                var domElem = dom.byId(this.id + name);
+                if (domElem) {
+                    switch (domElem.tagName) {
+                        case "SPAN":
+                        case "DIV":
+                            domAttr.set(this.id + name, "innerHTML", newValue);
+                            break;
+                        case "INPUT":
+                        case "TEXTAREA":
+                            domAttr.set(this.id + name, "value", newValue);
+                            break;
+                        default:
+                            alert(domElem.tagName);
+                    }
                 }
             }
             if (name === "subfiles") {

+ 22 - 13
esp/files/scripts/WUDetailsWidget.js

@@ -139,6 +139,10 @@ define([
 
                 dom.byId(this.id + "Wuid").innerHTML = params.Wuid;
                 this.wu = ESPWorkunit.Get(params.Wuid);
+                var data = this.wu.getData();
+                for (key in data) {
+                    this.updateInput(key, null, data[key]);
+                }
                 var context = this;
                 this.wu.watch(function (name, oldValue, newValue) {
                     context.updateInput(name, oldValue, newValue);
@@ -221,19 +225,24 @@ define([
         },
 
         updateInput: function (name, oldValue, newValue) {
-            var domElem = dom.byId(this.id + name);
-            if (domElem) {
-                switch (domElem.tagName) {
-                    case "SPAN":
-                    case "DIV":
-                        domAttr.set(this.id + name, "innerHTML", newValue)
-                        break;
-                    case "INPUT":
-                    case "TEXTAREA":
-                        domAttr.set(this.id + name, "value", newValue)
-                        break;
-                    default:
-                        alert(domElem.tagName);
+            var registryNode = registry.byId(this.id + name);
+            if (registryNode) {
+                registryNode.set("value", newValue);
+            } else {
+                var domElem = dom.byId(this.id + name);
+                if (domElem) {
+                    switch (domElem.tagName) {
+                        case "SPAN":
+                        case "DIV":
+                            domAttr.set(this.id + name, "innerHTML", newValue);
+                            break;
+                        case "INPUT":
+                        case "TEXTAREA":
+                            domAttr.set(this.id + name, "value", newValue);
+                            break;
+                        default:
+                            alert(domElem.tagName);
+                    }
                 }
             }
             if (name === "Protected") {