Sfoglia il codice sorgente

Merge branch 'fix/Environment.openPortal_execption' into 'wrdp'

Merge of fix/Environment.openPortal_execption 修复脚本中openPortal打开同一个应用不同的页面可能无效的问题 to wrdp

See merge request o2oa/o2oa!2569
蔡祥熠 5 anni fa
parent
commit
b63f408ce7

+ 10 - 9
o2web/source/o2_core/o2/xScript/CMSEnvironment.js

@@ -1639,24 +1639,25 @@ MWF.xScript.CMSEnvironment = function(ev){
             op.docTitle = title;
             layout.desktop.openApplication(this.event, "cms.Document", op);
         },
-        "openPortal": function(name, page, par){
+        "openPortal": function (name, page, par) {
             var action = MWF.Actions.get("x_portal_assemble_surface");
-            action.getApplication(name, function(json){
-                if (json.data){
-                    if (page){
-                        action.getPageByName(page, json.data.id, function(pageJson){
+            action.getApplication(name, function (json) {
+                if (json.data) {
+                    if (page) {
+                        action.getPageByName(page, json.data.id, function (pageJson) {
+                            var pageId = (pageJson.data) ? pageJson.data.id : "";
                             layout.desktop.openApplication(null, "portal.Portal", {
                                 "portalId": json.data.id,
-                                "pageId": (pageJson.data) ? pageJson.data.id : "",
+                                "pageId": pageId,
                                 "parameters": par,
-                                "appId": "portal.Portal"+json.data.id
+                                "appId": (par && par.appId) || ("portal.Portal" + json.data.id + pageId)
                             })
                         });
-                    }else{
+                    } else {
                         layout.desktop.openApplication(null, "portal.Portal", {
                             "portalId": json.data.id,
                             "parameters": par,
-                            "appId": "portal.Portal"+json.data.id
+                            "appId": (par && par.appId) || ("portal.Portal" + json.data.id)
                         })
                     }
                 }

+ 10 - 9
o2web/source/o2_core/o2/xScript/Environment.js

@@ -2007,24 +2007,25 @@ MWF.xScript.Environment = function(ev){
             op.docTitle = title;
             layout.desktop.openApplication(this.event, "cms.Document", op);
         },
-        "openPortal": function(name, page, par){
+        "openPortal": function (name, page, par) {
             var action = MWF.Actions.get("x_portal_assemble_surface");
-            action.getApplication(name, function(json){
-                if (json.data){
-                    if (page){
-                        action.getPageByName(page, json.data.id, function(pageJson){
+            action.getApplication(name, function (json) {
+                if (json.data) {
+                    if (page) {
+                        action.getPageByName(page, json.data.id, function (pageJson) {
+                            var pageId = (pageJson.data) ? pageJson.data.id : "";
                             layout.desktop.openApplication(null, "portal.Portal", {
                                 "portalId": json.data.id,
-                                "pageId": (pageJson.data) ? pageJson.data.id : "",
+                                "pageId": pageId,
                                 "parameters": par,
-                                "appId": "portal.Portal"+json.data.id
+                                "appId": (par && par.appId) || ("portal.Portal" + json.data.id + pageId)
                             })
                         });
-                    }else{
+                    } else {
                         layout.desktop.openApplication(null, "portal.Portal", {
                             "portalId": json.data.id,
                             "parameters": par,
-                            "appId": "portal.Portal"+json.data.id
+                            "appId": (par && par.appId) || ("portal.Portal" + json.data.id)
                         })
                     }
                 }

+ 4 - 3
o2web/source/o2_core/o2/xScript/PageEnvironment.js

@@ -1598,18 +1598,19 @@ MWF.xScript.PageEnvironment = function (ev) {
                 if (json.data) {
                     if (page) {
                         action.getPageByName(page, json.data.id, function (pageJson) {
+                            var pageId = (pageJson.data) ? pageJson.data.id : "";
                             layout.desktop.openApplication(null, "portal.Portal", {
                                 "portalId": json.data.id,
-                                "pageId": (pageJson.data) ? pageJson.data.id : "",
+                                "pageId": pageId,
                                 "parameters": par,
-                                "appId": "portal.Portal" + json.data.id
+                                "appId": (par && par.appId) || ("portal.Portal" + json.data.id + pageId)
                             })
                         });
                     } else {
                         layout.desktop.openApplication(null, "portal.Portal", {
                             "portalId": json.data.id,
                             "parameters": par,
-                            "appId": "portal.Portal" + json.data.id
+                            "appId": (par && par.appId) || ("portal.Portal" + json.data.id)
                         })
                     }
                 }

+ 4 - 3
o2web/source/o2_core/o2/xScript/ViewEnvironment.js

@@ -1496,18 +1496,19 @@ MWF.xScript.ViewEnvironment = function (ev) {
                 if (json.data) {
                     if (page) {
                         action.getPageByName(page, json.data.id, function (pageJson) {
+                            var pageId = (pageJson.data) ? pageJson.data.id : "";
                             layout.desktop.openApplication(null, "portal.Portal", {
                                 "portalId": json.data.id,
-                                "pageId": (pageJson.data) ? pageJson.data.id : "",
+                                "pageId": pageId,
                                 "parameters": par,
-                                "appId": "portal.Portal" + json.data.id
+                                "appId": (par && par.appId) || ("portal.Portal" + json.data.id + pageId)
                             })
                         });
                     } else {
                         layout.desktop.openApplication(null, "portal.Portal", {
                             "portalId": json.data.id,
                             "parameters": par,
-                            "appId": "portal.Portal" + json.data.id
+                            "appId": (par && par.appId) || ("portal.Portal" + json.data.id)
                         })
                     }
                 }