// ----------------------------------------------------------- // IBM i Server - Send Message // ----------------------------------------------------------- function hdfiServerSend(funcCaller, urlString) { dojo.xhrGet({ url: urlString, handleAs: "json", load: function(jsonResponse, ioArgs) { hdfiServerRsp(jsonResponse); return jsonResponse; }, error: function(jsonResponse, ioArgs) { hdfiServerHttpError(funcCaller, ioArgs); return jsonResponse; } }); return; } // ----------------------------------------------------------- // IBM i Server - HTTP GET // ----------------------------------------------------------- function hdfiServerGet(funcCaller, urlString) { dojo.xhrGet({ url: urlString, handleAs: "json", load: function(jsonResponse, ioArgs) { hdfiServerRsp(jsonResponse); return jsonResponse; }, error: function(jsonResponse, ioArgs) { hdfiServerHttpError(funcCaller, ioArgs); return jsonResponse; } }); return; } // ----------------------------------------------------------- // IBM i Server - HTTP POST // ----------------------------------------------------------- function hdfiServerPost(funcCaller, urlString, jsonString) { dojo.xhrPost({ url: urlString, content: jsonString, handleAs: "json", load: function(jsonResponse, ioArgs) { hdfiServerRsp(jsonResponse); return jsonResponse; }, error: function(jsonResponse, ioArgs) { console.log("hdfiServerPost faild xhrGet", response, ioArgs); /* handle the error */ return jsonResponse; } }); return; } // ----------------------------------------------------------- // IBM i Server - Response to Message (CGI Json) // ----------------------------------------------------------- function hdfiServerRsp(jsonResponse) { //alert(response); require(["dojo/ready", "dojo/_base/json", "dijit/registry", "dojo/dom"], function(ready, dojo, registry, dom){ //var jsonResponse = dojo.fromJson(response); console.log("hdfiServerRsp jsonResponse: ", jsonResponse); //alert("hdfiServerRsp Debug: Check Console"); if (registry.byId("hdmTopStandby")) {registry.byId("hdmTopStandby").hide();} if (registry.byId("hdmAccStandby")) {registry.byId("hdmAccStandby").hide();} if (registry.byId("hdmMainStandby")) {registry.byId("hdmMainStandby").hide();} switch (jsonResponse.javascript) { case 'hdevToolRpgIle': hdevToolRpgIleRsp (registry, dom, jsonResponse); break; case 'hdfBooksOnClick': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfAccMenuAppsGo': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfAccMenuCusIlePgm': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfAccMenuCusTools': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfAccFavOnClick': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfTopToolServer': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfTopDgridConfirm': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; /* old */ case 'hdfTopToolCtlArea': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfTopToolPageCtlGo': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfTopToolSiblingGo': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; /* case 'hdfTopToolSql': hdfTopToolSqlRsp (registry, dom, jsonResponse); break; */ case 'hdfTopToolViewExeGo': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfTopToolViewDnd': hdfTopToolViewDndRsp (registry, dom, jsonResponse); break; case 'hdfTopToolExcel': hdfTopToolExcelRsp (registry, dom, jsonResponse); break; case 'hdfTopToolPdf': hdfTopToolPdfRsp (registry, dom, jsonResponse); break; case 'hdfTopToolSavePage': hdfTopToolSavePageRsp (registry, dom, jsonResponse); break; case 'hdfTopCustomHdrPrompt': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfdGridRefresh': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfdGridMenuGo': hdfdGridMenuRsp (registry, dom, jsonResponse); break; case 'hdfdGridNullGo': hdfdGridMenuRsp (registry, dom, jsonResponse); break; case 'hdfdGridHdrConfirm': hdfdGridHdrConfirmRsp (registry, dom, jsonResponse); break; case 'hdfdGridMenuSqlDrill': hdfTabSqlDrill (registry, dom, jsonResponse); break; case 'hdfdEditField': hdfdEditFldRsp (registry, dom, jsonResponse); break; case 'hdfdEditFldPrompt': hdfdEditFldPromptRsp (registry, dom, jsonResponse); break; case 'hdfdEditGridRefresh': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfdeModalFldPrompt': hdfdeModalFldPromptRsp (registry, dom, jsonResponse); break; case 'hdfdeModalGridRefresh': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfdGridEditGo': hdfdGridEditGoRsp (registry, dom, jsonResponse); break; case 'hdfhGridEditGo': hdfAccMenuAppsGoRsp (registry, dom, jsonResponse); break; case 'hdfTabViewDndChange': hdfTabViewDndChangeRsp (registry, dom, jsonResponse); break; case 'hdfTabViewDndConfirm': hdfTabViewDndConfirmRsp (registry, dom, jsonResponse); break; case 'hdfTabViewDndColLoad': hdfTabViewDndColLoadRsp (registry, dom, jsonResponse); break; case 'hdfTabViewDndColAttr': hdfTabViewDndColAttrRsp (registry, dom, jsonResponse); break; case 'hdfTabViewColLoad': hdfTabViewColLoadRsp (registry, dom, jsonResponse); break; case 'hdfTabViewColAttr': hdfTabViewColAttrRsp (registry, dom, jsonResponse); break; case 'hdfTabViewSaveAsConfirm': hdfTabViewDndConfirmRsp (registry, dom, jsonResponse); break; case 'hdfTabSqlCtlConfirm': hdfTabSqlCtlConfirmRsp (registry, dom, jsonResponse); break; case 'hdjDevToolBK1': hdjDevToolBK1Rsp(jsonResponse); break; case 'hdjCalBannerChangeDate': hdjCalBannerChangeDateRsp(jsonResponse); break; case 'hdjCalBannerMenuGo': hdjCalBannerMenuGoRsp(jsonResponse); break; case 'hdjCalBannerPerTypeGo': hdjCalBannerPerTypeGoRsp(jsonResponse); break; case 'hdfDataGridRefresh': hdfAccMenuAppsGoRsp(jsonResponse); break; case 'hdfDataGridMenuGo': hdfDataGridMenuRsp(jsonResponse); break; case 'hdfDataGridNullGo': hdfDataGridMenuRsp(jsonResponse); break; case 'hdfDataGridHdrConfirm': hdfDataGridHdrConfirmRsp(jsonResponse); break; case 'hdfDataGridMenuSqlDrill': hdjTabSqlDrill(jsonResponse); break; //case 'hdjDataGridEditGo': break; // No Client Action Needed case 'hdfDGridMenuGo': hdfDGridMenuRsp(jsonResponse); break; case 'iServerAcknowledge': break; // No Client Action Needed case 'iServerNotify': hdfiServerNotify(jsonResponse); break; case 'iServerRequest': hdfiServerRequest(jsonResponse); break; case 'iServerExpired': hdfiServerExpired(); break; case 'iServerLogoff': hdfiServerLogoff(); break; case 'iServerTerror': hdfiServerTerror(); break; default: console.log("hdfiServerRsp Unknown Response: ", jsonResponse); } }); return; } // ----------------------------------------------------------- // iServer Response Notify // ----------------------------------------------------------- function hdfiServerNotify(response) { var msgTitle = ""; if (response.msghdr == " ") { msgTitle = "ServerDialog"; } else { msgTitle = response.msghdr; } require(["dojo/ready", "dijit/Dialog"], function(ready, Dialog){ var notifyDialog = new dijit.Dialog({ title: msgTitle, style: "width: 400px", //duration: 1500, content: response.errmsg }); notifyDialog.show(); if (response.lifetime >= 1000) { setTimeout(function(){notifyDialog.destroyRecursive();}, response.lifetime); } }); return; } // ----------------------------------------------------------- // iServer Request // ----------------------------------------------------------- function hdfiServerRequest(response) { var msgTitle = ""; if (response.msghdr == " ") { msgTitle = "ServerDialog - Redirect"; } else { msgTitle = response.msghdr; } require(["dojo/ready", "dijit/Dialog"], function(ready, Dialog){ var notifyDialog = new dijit.Dialog({ title: msgTitle, style: "width: 400px", content: response.errmsg }); notifyDialog.show(); setTimeout(function(){notifyDialog.destroyRecursive();}, 5000); }); var windowName = "http-request"; var windowFeat = "menubar=no,resizable=yes,scrollbars=no,status=no,toolbar=no"; newWindow = window.open(response.errmsg, windowName, windowFeat); if (newWindow != null) { newWindow.focus(); } return; } // ----------------------------------------------------------- // iServer Response Expired // ----------------------------------------------------------- function hdfiServerExpired() { require(["dojo/ready", "dijit/Dialog"], function(ready, Dialog){ var hdwLoginDialog = new Dialog({ title: "Session Expired ", style: "width: 300px", content: "Session has Expired xyz"}); hdwLoginDialog.show(); setTimeout("document.location = hugmarSettings.nav.path;", 6000); }); return; } // ----------------------------------------------------------- // iServer Logoff Response // ----------------------------------------------------------- function hdfiServerLogoff() { require(["dojo/ready", "dijit/Dialog"], function(ready, Dialog){ var hdwLoginDialog = new Dialog({ title: "Session Logoff: ", style: "width: 300px", content: "Session has been Logged Off"}); hdwLoginDialog.show(); setTimeout("document.location = hugmarSettings.nav.path;", 2000); }); return; } // ----------------------------------------------------------- // iServer Login // ----------------------------------------------------------- function hdfiServerLogin() { console.log("hdfiServerLogin hugmarSettings: ", hugmarSettings); alert("hdfiServerLogin"); document.location = hugmarSettings.nav.path; return; } // ----------------------------------------------------------- // iServer Terminal Error // ----------------------------------------------------------- function hdfiServerTerror() { require(["dojo/ready", "dijit/Dialog"], function(ready, Dialog){ var dialog = new Dialog({ title: "Server Terminal Error: ", style: "width: 400px", content: "Server Session has Terminal Error, Please Contact IT"}); dialog.show(); }); return; } // ----------------------------------------------------------- // iServer HTTP Error // ----------------------------------------------------------- function hdfiServerHttpError(origin, ioArgs) { var message = ""; switch(ioArgs.xhr.status){ case 200: message = origin + ": The IBM server responded normally, but an error occurred on the JavaScript client"; break; case 404: message = origin + ": The requested page on the IBM server was not found"; break; case 500: message = origin + ": The IBM server reported an error."; break; case 407: message = origin + ": You need to authenticate with a proxy."; break; default: message = origin + ": Unknown error."; } require(["dojo/ready", "dijit/registry", "dijit/Dialog"], function(ready, registry, Dialog){ if (registry.byId("hdmTopStandby")) {registry.byId("hdmTopStandby").hide();} if (registry.byId("hdmAccStandby")) {registry.byId("hdmAccStandby").hide();} if (registry.byId("hdmMainStandby")) {registry.byId("hdmMainStandby").hide();} var dialog = new Dialog({ title: "HTTP Server Error: ", style: "width: 400px", content: message + " " + "Please Contact IT"}); dialog.show(); }); return; } // ----------------------------------------------------------- // Set Standard JSON URL Parameters // ----------------------------------------------------------- function hdfiServerSetJsonObj(jsCaller, procId, docName) { if (!hugmarSettings.host) {return;} var jsonObj = { javascript: jsCaller, procid: procId, procparm: " ", handle: hugmarSettings.host.handle, userid: hugmarSettings.nav.username, usercls: hugmarSettings.host.userclass, docfolder: hugmarSettings.host.wrkfolder, docname: docName + ".json", format: "json", gridenv: {}, misc: {}, webid: new Date().getTime() }; return jsonObj; } // ----------------------------------------------------------- // Stringify Json Object (not used) // ----------------------------------------------------------- function hdfiServerSetJsonUrl(jsonObj) { require(["dojo/ready", "dojo/_base/json"], function(ready, dojo){ var jsonString = dojo.toJson(jsonObj); return jsonString; }); }