// --------------------------------------------------------------- // SandboxDialog // --------------------------------------------------------------- function SandboxDialog(sqlString) { var dateTime = new Date().getTime(); require(["dojo/text!desktop/text/sandboxdialog.html?dummy=" + dateTime, "dijit/layout/ContentPane", "dijit/Dialog", "dijit/registry", "dijit/form/Textarea", "dijit/form/Button", "dojo/dom-construct", "dojo/dom"], function(snippet, ContentPane, Dialog, registry, Textarea, Button, domConstruct, dom) { console.log ("SandboxDiqalog text: ", snippet); if (registry.byId("SandboxDialog")) { registry.byId("SandboxDialog").show(); return; } var SandboxDialog = new Dialog({ id: "SandboxDialog", title: "Sandbox SQL", style: "width: 800px; height: 400px;", content: snippet }); SandboxDialog.show(); SandboxButtons (hjsonGridControl.env); SandboxTextarea (sqlString); }); } // --------------------------------------------------------------- // SandboxLoad: // --------------------------------------------------------------- function SandboxTextarea(sqlString) { console.log ("SandboxTextarea sqlString: ", sqlString); require(["dojo/dom", "dijit/registry"], function(dom, registry){ dom.byId("hdmSandboxTextarea").innerHTML = sqlString; return; }); return; } // ----------------------------------------------------------- // // ----------------------------------------------------------- function SandboxButtons(env) { //console.log ("SandboxButtons I am here: "); require(["dojo/dom", "dojo/dom-construct", "dijit/registry"], function(dom, domConstruct, registry){ var sandboxButton = registry.byId("hdmSandboxBut0"); if (sandboxButton) { sandboxButton.destroyRecursive(true); } var sandboxButton = registry.byId("hdmSandboxBut1"); if (sandboxButton) { sandboxButton.destroyRecursive(true); } var sandboxButton = registry.byId("hdmSandboxBut2"); if (sandboxButton) { sandboxButton.destroyRecursive(true); } var parNode = dom.byId("hdmSandboxButtons"); // Confirm parNode.appendChild(domConstruct.create("div", {id: "hdmSandboxBut0"})); SandboxOneBut("hdmSandboxBut0", "Confirm", "gif38", "confirm", "Confirm Sql Changes", env); // Cancel parNode.appendChild(domConstruct.create("div", {id: "hdmSandboxBut1"})); SandboxOneBut("hdmSandboxBut1", "Cancel", "gif33", "cancel", "Cancel Sql Changes", env); // Refresh //parNode.appendChild(domConstruct.create("div", {id: "hdmSandboxBut2"})); //SandboxOneBut("hdmSandboxBut2", "Refresh", "gif42", "refresh", "Refresh Sql Edit Panes", env); return; }); } // ----------------------------------------------------------- // // ----------------------------------------------------------- function SandboxOneBut(domID, label, icon, action, title, env) { require(["dojo/dom", "dijit/registry", "dijit/form/Button"], function(dom, registry, Button){ //console.log ("SandboxOneBut I am here: "); var sandboxButton = registry.byId(domID); if (sandboxButton) { sandboxButton.destroyRecursive(true); } var dom = dom.byId(domID); var sandboxButton = new Button({ label: label, iconClass: icon, jsId: action, sqlEnv: env, onClick: function(evt) { var butNode = dijit.getEnclosingWidget(evt.target); console.log("SandboxOneBut onClick butNode: ", butNode); switch (butNode.jsId) { case 'cancel': SandboxCancel(butNode.jsId, butNode.sqlEnv); break; case 'confirm': SandboxConfirm(butNode.jsId, butNode.sqlEnv); break; } }, title: title }, dom); }); } // ----------------------------------------------------------- // Remove Sql Tab // ----------------------------------------------------------- function SandboxCancel(sqlType, sqlEnv) { require(["dojo/ready", "dojo/_base/json", "dijit/registry"], function(ready, dojo, registry){ if (registry.byId("SandboxDialog")) { registry.byId("SandboxDialog").destroyRecursive(false); } }); return; } // ----------------------------------------------------------- // SandboxConfirm: function to Confirm Sql Control Change // ----------------------------------------------------------- function SandboxConfirm(sqlType, sqlEnv) { console.log ("SandboxConfirm: sqlEnv ", sqlEnv); require(["dojo/ready", "dojo/dom", "dojo/_base/json", "dojo/request/xhr", "dijit/registry"], function(ready, dom, dojo, xhr, registry){ var sqlString = dom.byId("hdmSandboxTextarea").innerHTML sqlString = globalModifyCell(sqlString); var jsCaller = "SandboxConfirm"; var jsonObj = SandboxSetJsonObj(jsCaller,"HSQW010","sandboxconfirm", hugmarSettings); jsonObj.gridenv = sqlEnv; jsonObj.procparm = "sandboxconfirm"; jsonObj.sqlrow.type = sqlType; jsonObj.sqlrow.string = sqlString; var jsonString = dojo.toJson(jsonObj); var urlString = hugmarSettings.host.pgmdir + "/hwebhtp120.pgm?" + jsonString; if (registry.byId("SandboxDialog")) { registry.byId("SandboxDialog").destroyRecursive(false); } //registry.byId("hdmMainStandby").show(); console.log ("SandboxConfirm: urlString ", urlString); dojo.xhrGet({ url: urlString, handleAs: "json", load: function(jsonResponse, ioArgs) { console.log("SandboxConfirm jsonResponse: ", jsonResponse); SandboxConfirmRsp(registry, dom, jsonResponse, sqlEnv); return jsonResponse; }, error: function(jsonResponse, ioArgs) { SandboxXhrGetError("SandboxConfirm", ioArgs); return jsonResponse; } }); return; }); } // ----------------------------------------------------------- // Sql Control Confirm Response // ----------------------------------------------------------- function SandboxConfirmRsp(registry, dom, jsonResponse, sqlEnv) { console.log ("SandboxConfirmRsp: jsonResponse ", jsonResponse); //alert("Send Refresh Here") jsonResponse.javascript = "hdfTopToolServer"; hdfiServerRsp(jsonResponse) return; } // ----------------------------------------------------------- // Set Standard JSON URL Parameters // ----------------------------------------------------------- function SandboxSetJsonObj(jsCaller, procId, docName, hugmarSettings) { 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", sqlrow: {}, sqlenv: {}, gridenv: {}, webid: new Date().getTime() }; return jsonObj; } // ----------------------------------------------------------- // Sandbox HTTP Error // ----------------------------------------------------------- function SandboxXhrGetError(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/Dialog"], function(ready, Dialog){ var dialog = new Dialog({ title: "SandboxXhrGet HTTP Server Error: ", style: "width: 400px", content: message + " " + "Please Contact IT"}); dialog.show(); }); return; }