// -----------------------------------------------------------
//
// -----------------------------------------------------------
function hdfdEdit(urlString) {
dojo.xhrGet({
url: urlString, handleAs: "json",
load: function(jsonResponse, ioArgs) {
hdfdEditRsp(jsonResponse);
return jsonResponse; },
options: {timeout: 10000}, // 10 Seconds
error: function(jsonResponse, ioArgs) {
hdfiServerHttpError("hdfdEdit", ioArgs);
return jsonResponse; }
});
return;
}
// -----------------------------------------------------------
//
// -----------------------------------------------------------
function hdfdEditRsp(jsonResponse) {
console.log ("hdfEditRsp jsonResponse: ", jsonResponse);
if (jsonResponse.javascript == "iServerNotify") {
hdfiServerNotify(jsonResponse);
return;
}
if (jsonResponse.javascript == "hdfTopToolServer") {
hdfiServerRsp(jsonResponse);
return;
}
if (jsonResponse.panemode == "modal") {
hdfdeModal(jsonResponse);
return;
}
if (jsonResponse.container != "new") {
hdfdEditTab(jsonResponse);
}
else {
hdfdEditCrtWindow(jsonResponse.wrkfolder);
}
return;
}
// ---------------------------------------------------------------
// hdfdEditCrtWindow: Open New Window
// ---------------------------------------------------------------
function hdfdEditCrtWindow(wrkfolder) {
console.log ("hdfEditCrtWindow wrkfolder(1): ", wrkfolder);
//var isCE = wrkfolder.search("/CE");
//if (isCE > 0) {
// wrkfolder = wrkfolder.substring(0,isCE);
//}
//console.log ("hdfEditCrtWindow wrkfolder(2): ", wrkfolder);
var myWindow = window.self;
var screenXpos = "left=" + (window.self.screenX + 200).toString() + ",";
var screenYpos = "top=" + (window.self.screenY + 50).toString() + ",";
var newHeight = "height=" + (window.self.outerHeight - 100).toString() + ",";
var newWidth = "width=" + (window.self.outerWidth - 400).toString();
var windowUrl = "stdedit.html?" + wrkfolder;
var windowName = "Edit Pane";
var windowFeat = "menubar=no,resizable=yes,scrollbars=no,status=no,toolbar=no,"
+ "location=0,dependent=yes,titlebar=no,directories=no,"
+ screenXpos + screenYpos + newHeight + newWidth;
newWindow = window.open(windowUrl,windowName,windowFeat);
if (newWindow != null) {
newWindow.focus();
}
}
// ---------------------------------------------------------------
// hdfdEditNewWindow: Populate New Edit Window
// ---------------------------------------------------------------
function hdfdEditNewWindow() {
var outfolder = '/OUT';
var wrkfolder = document.location.search.substring(1);
var isCE = wrkfolder.search("/CE");
if (isCE > 0) {
wrkfolder = wrkfolder.substring(0,isCE);
outfolder = "/CE";
}
alert ("hdfdEditNewWindow: check Console (2)" + wrkfolder + outfolder);
console.log ("hdfEditNewWindow wrkfolder: ", wrkfolder, 'outfolder: ' + outfolder);
require(["dojo/ready", "dojo/_base/json", "dojo/_base/xhr"],
function(ready, dojo, xhr){
var urlString = wrkfolder + '/OUT/HWEBV2AMF_Login.json';
dojo.xhrGet({
url: urlString,
load: function(textResponse, ioArgs) {
hugmarSettings = dojo.fromJson(textResponse);
//console.log("hdfdEditWindow hugmarSettings: ", hugmarSettings);
//alert ("hdfdEditWindow: Check Console");
hdfdEditNewMessage(wrkfolder, outfolder);
return textResponse; },
error: function(textResponse, ioArgs) {
hdfiServerHttpError("hdfdEditNewWindow", ioArgs);
return textResponse; }
});
});
}
// ---------------------------------------------------------------
// hdfdEditNewMessage:
// ---------------------------------------------------------------
function hdfdEditNewMessage(wrkfolder, outfolder) {
console.log ("hdfEditNewMessage wrkfolder: ", wrkfolder,outfolder);
require(["dojo/ready", "dojo/_base/json", "dojo/_base/xhr"],
function(ready, dojo, xhr){
var urlString = wrkfolder + outfolder + '/EB1_Message.json';
dojo.xhrGet({
url: urlString,
load: function(textResponse, ioArgs) {
var efolder = dojo.fromJson(textResponse);
console.log("hdfdEditMessage efolder: ", efolder);
hdfdEditTab(efolder);
return textResponse; },
error: function(textResponse, ioArgs) {
hdfiServerHttpError("hdfdEditNewWindow", ioArgs);
return textResponse; }
});
});
}
// -----------------------------------------------------------
// Function: hdfdEditTab
// Parameter: containerLocation values: "main,right,new"
// -----------------------------------------------------------
function hdfdEditTab(efolder) {
require(["dojo/ready","dijit/layout/ContentPane", "dijit/registry", "dojo/dom", "dojo/domReady!"],
function(ready, ContentPane, registry, dom) {
if (efolder.container == "hdmRight") {
var editContainer = registry.byId("hdmRightTabContainer");
}
else {
var editContainer = registry.byId("hdmMainTabContainer");
}
console.log("...hdfdEditTab efolder: ", efolder);
console.log("...hdfdEditTab editContainer: ", editContainer);
if (!registry.byId("hdmTabEdit")) {
var editTab = new ContentPane({
id: "hdmTabEdit",
title: "Edit",
closable: true
});
editTab.domNode.id ="hdmTabEdit";
editContainer.addChild(editTab);
}
else {
var editTab = registry.byId("hdmTabEdit");
}
editContainer.selectChild(editTab);
hdfdEditContent(efolder, editTab);
});
return;
}
// -----------------------------------------------------------
// Function: hdfdEditContent
// Parameter: editTab (widget)
// -----------------------------------------------------------
function hdfdEditContent(efolder, editTab) {
var urlString = efolder.ifsedithtml;
console.log("...hdfdEditContent urlString: ", urlString);
dojo.xhrGet({
url: urlString,
load: function(htmlResponse, ioArgs) {
hdfdEditContentRsp(efolder, editTab, htmlResponse);
return htmlResponse; },
error: function(htmlResponse, ioArgs) {
hdfiServerHttpError("hdfdEditContent", ioArgs);
return htmlResponse; }
});
return;
}
// -----------------------------------------------------------
//
// -----------------------------------------------------------
function hdfdEditContentRsp(efolder, editTab, htmlResponse) {
editTab.domNode.innerHTML = htmlResponse;
hdfdEditControl(efolder, editTab, htmlResponse);
return;
}
// -----------------------------------------------------------
// Function: hdfdEditControl:
// -----------------------------------------------------------
function hdfdEditControl(efolder, editTab, htmlResponse) {
var urlString = efolder.ifseditctl;
dojo.xhrGet({
url: urlString, handleAs: "json",
load: function(jsonResponse, ioArgs) {
hdfdEditControlRsp(editTab, htmlResponse,jsonResponse);
return jsonResponse; },
error: function(jsonResponse, ioArgs) {
hdfiServerHttpError("hdfdEditControl", ioArgs);
return jsonResponse; }
});
return;
}
// -----------------------------------------------------------
// hdfdEditCtlRsp:
// -----------------------------------------------------------
function hdfdEditControlRsp(editTab, htmlResponse,jsonResponse) {
var jsCaller = "hdfdEditControlRsp";
hdfdEditToolbar(jsonResponse);
if (jsonResponse.widgets) {
hdfdFormWidgets(jsonResponse.widgets);
}
require(["dojo/ready", "dojo/_base/json", "dijit/registry", "dojo/dom",
"dijit/form/TextBox", "dijit/form/Textarea","dijit/form/NumberTextBox",
"dijit/form/NumberSpinner", "dijit/form/CheckBox", "dojo/domReady!"],
function(ready, json, registry, dom, TextBox, Textarea, NumberTextBox, NumberSpinner, CheckBox){
ready(function(){
hjsonEditResponse = jsonResponse;
hugmarSettings.editenv = jsonResponse.env;
console.log(jsCaller, " jsonResponse: ", jsonResponse);
console.log(jsCaller, " registry: ", registry);
alert(jsCaller + " Check Console");
// Buttons (TOP)
//for (var i = 0; i < jsonResponse.button.length; i++) {
// hdfdEditButton(registry, dom, "TOP", i, jsonResponse.button[i]);
//}
// Buttons (BOTTOM)
if (jsonResponse.fldcnt > 20) {
for (var i = 0; i < jsonResponse.button.length; i++) {
if (jsonResponse.button[i].label == "Confirm") {
hdfdEditButton(registry, dom, "BOTTOM", 0, jsonResponse.button[i]);
}
if (jsonResponse.button[i].label == "Cancel") {
hdfdEditButton(registry, dom, "BOTTOM", 1, jsonResponse.button[i]);
}
}
}
//console.log(jsCaller, " jsonResponse: ",dom.byId("hdmTabEditImage").innerHTML );
// Image
/*
if (jsonResponse.image) {
var imgSource = '';
}
else {
var imgSource = " ";
}
dom.byId("hdmTabEditImage").innerHTML = imgSource;
*/
});
});
return;
}
// -----------------------------------------------------------
//
// -----------------------------------------------------------
function hdfdEditButton(registry, dom, type, idx, oneButton) {
require(["dojo/ready", "dijit/form/Button"],
function(ready, Button) {
if (type == "TOP") {
var spanID = "hdmTabEditTopBut" + idx;
}
else {
var spanID = "hdmTabEditBotBut" + idx;
}
var editButton = registry.byId(spanID);
if (registry.byId(editButton)) {
editButton.destroyRecursive(true);
}
var span = dom.byId(spanID);
var editButton = new Button({
label: oneButton.label,
iconClass: oneButton.icon,
action: oneButton.action,
actype: oneButton.actype,
origin: oneButton.origin,
jsId: oneButton.action,
jsIndex: oneButton.index,
onClick: function(evt) {
var butNode = registry.getEnclosingWidget(evt.target);
//console.log("hdfdEditButton onClick butNode: ", butNode);
hdfdEditConfirm(butNode);
},
title: oneButton.title}, span);
});
}
// -----------------------------------------------------------
// Function: hdfdEditToolbar
// Parameter: jsonResponse (Info about Toolbar Buttons)
// -----------------------------------------------------------
function hdfdEditToolbar(jsonResponse) {
require(["dojo/ready", "dijit/Toolbar", "dijit/form/Button", "dijit/registry", "dojo/dom-construct"],
function(ready, Toolbar, Button, registry, domConstruct){
if (registry.byId("hdmTabEditToolbar")) {
registry.byId("hdmTabEditToolbar").destroyRecursive(true);
}
var tabEditToolbar = new Toolbar({
id: "hdmTabEditToolbar"
}, "hdmTabEditToolbar");
for (var i = 0; i < jsonResponse.button.length; i++) {
//console.log ("hdfEditToolbar jsonResponse.button[i]: ", jsonResponse.button[i]);
var divNode = domConstruct.create("div");
var toolButton = new Button({
id: "hdmTabEditToolbar_" + jsonResponse.button[i].id,
label: jsonResponse.button[i].label,
showLabel: true,
iconClass: jsonResponse.button[i].icon,
action: jsonResponse.button[i].action,
actype: jsonResponse.button[i].actype,
origin: jsonResponse.button[i].origin,
jsId: jsonResponse.button[i].action,
jsIndex: jsonResponse.button[i].index,
disabled: false,
onClick: function(evt) {
var butNode = registry.getEnclosingWidget(evt.target);
//console.log("hdfdEditToolbar onClick butNode.jsId: ", butNode.jsId);
hdfdEditConfirm(butNode);
},
title: jsonResponse.button[i].title}, divNode);
tabEditToolbar.addChild(toolButton);
}
});
return;
}
// -----------------------------------------------------------
//
// -----------------------------------------------------------
function hdfdEditFldWidget(widgetType, fieldName, widgetValue) {
require(["dojo/ready", "dojo/json", "dojo/_base/lang","dijit/registry", "dojo/dom"],
function(ready, json, lang, registry, dom) {
var jsCaller = "hdfdEditFldWidget";
//console.log(jsCaller, " widgetType: ", widgetType, " fieldName: ", fieldName, " widgetValue: ", widgetValue );
if (typeof widgetValue == "boolean") {
var fieldValue = widgetValue.toString();
}
else {
if (widgetType == "DateTextBox") {
var yyyy = widgetValue.getFullYear().toString();
var mm = (widgetValue.getMonth()+1).toString(); // getMonth() is zero-based
var dd = widgetValue.getDate().toString();
var fieldValue = yyyy + '-' + (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]);
}
else {
var fieldValue = widgetValue;
}
}
//console.log(jsCaller, " widgetType: ", widgetType, " fieldName: ", fieldName, " fieldValue: ", fieldValue );
//var fieldValue = dom.byId(fieldName).value;
//var fieldValue = fieldValue.replace(/\!/g, "*;33;"); /* ! */
//var fieldValue = fieldValue.replace(/\"/g, "*;34;");
//var fieldValue = fieldValue.replace(/\#/g, "*;35;"); /* # */
//var fieldValue = fieldValue.replace(/\$/g, "*;36;"); /* $ */
//var fieldValue = fieldValue.replace(/\%/g, "*;37;"); /* % */
//var fieldValue = fieldValue.replace(/\&/g, "*;38;"); /* & */
var jsonObj = hdfiServerSetJsonObj(jsCaller, "HWEBNAEB2", "EB2_Parms");
jsonObj.procparm = "editpane";
jsonObj.editenv = hugmarSettings.editenv;
jsonObj.field = {};
jsonObj.field.name = fieldName;
jsonObj.field.value = fieldValue;
jsonObj.field.event = widgetType;
jsonObj.field.filler = " ";
//console.log(jsCaller, " jsonObj: ", jsonObj);
var jsonUrl = hugmarSettings.host.pgmdir + "/hwebhtp120.pgm?json=" + json.stringify(jsonObj);
dojo.xhrGet({
url: jsonUrl,
load: function(response, ioArgs) {
hdfdEditFldRsp(registry, dom, response);
return response; },
error: function(response, ioArgs) {
hdfiServerHttpError("hdfdEditFieldWidget", ioArgs);
return response; }
});
});
return;
}
// -----------------------------------------------------------
//
// -----------------------------------------------------------
function hdfdEditField(fieldName, keyEvent, fieldType) {
require(["dojo/ready", "dojo/json", "dojo/_base/lang","dijit/registry", "dojo/dom"],
function(ready, json, lang, registry, dom) {
var jsCaller = "hdfdEditField";
console.log(jsCaller, " fieldName: ", fieldName, " fieldType: ", fieldType , " keyEvent: ", keyEvent);
var fieldValue = dom.byId(fieldName).value;
console.log(jsCaller, " fieldValue: ", fieldValue);
if (window.event) { /* Internet Explorer */
//console.log(jsCaller, " window.event: ", window.event);
var keyEventType = keyEvent.type;
var keyEventNum = keyEvent.keyCode;
}
else if (keyEvent.type) { /* Other Browsers */
var keyEventType = keyEvent.type;
//var keyEventNum = keyEvent.which;
}
// Errorcheck Numeric Values
if (fieldType == "int" || fieldType == "flt") {
var fieldErrMsg = "err" + fieldName.substr(3);
dom.byId(fieldErrMsg).innerHTML = " "; // Clear Error Message
}
if (fieldType == "int" & fieldValue != parseInt(fieldValue)) {
dom.byId(fieldErrMsg).innerHTML = "Integer is Invalid (" + fieldName.substr(3) + ")";
return;
}
if (fieldType == "flt" & fieldValue != parseFloat(fieldValue)) {
dom.byId(fieldErrMsg).innerHTML = "Decimal is Invalid (" + fieldName.substr(3) + ")";
return;
}
// Boolean
if (fieldType == "boo") {
var fieldValue = keyEvent.currentTarget.checked;
console.log(jsCaller, " fieldValue: ", fieldValue);
alert(fieldValue);
}
else {
var fieldValue = dom.byId(fieldName).value;
var fieldValue = fieldValue.replace(/\!/g, "*;33;"); /* ! */
//var fieldValue = fieldValue.replace(/\"/g, "*;34;");
var fieldValue = fieldValue.replace(/\#/g, "*;35;"); /* # */
var fieldValue = fieldValue.replace(/\$/g, "*;36;"); /* $ */
var fieldValue = fieldValue.replace(/\%/g, "*;37;"); /* % */
var fieldValue = fieldValue.replace(/\&/g, "*;38;"); /* & */
}
var jsonObj = hdfiServerSetJsonObj(jsCaller,"HWEBNAEB2","EB2_Parms");
jsonObj.procparm = "editpane";
jsonObj.editenv = hugmarSettings.editenv;
jsonObj.field = {};
jsonObj.field.name = fieldName;
jsonObj.field.value = fieldValue;
jsonObj.field.event = keyEventType;
jsonObj.field.filler = " ";
console.log(jsCaller, " jsonObj.editenv: ", jsonObj.editenv);
console.log(jsCaller, " jsonObj.field: ", jsonObj.field);
if (editenvClone && fieldClone) {
console.log(jsCaller, " editenvClone: ", editenvClone);
console.log(jsCaller, " fieldClone: ", fieldClone);
}
var editenvClone= lang.clone(jsonObj.editenv);
var fieldClone = lang.clone(jsonObj.field);
var jsonUrl = hugmarSettings.host.pgmdir + "/hwebhtp120.pgm?json=" + json.stringify(jsonObj);
dojo.xhrGet({
url: jsonUrl,
load: function(response, ioArgs) {
hdfdEditFldRsp(registry, dom, response);
return response; },
error: function(response, ioArgs) {
hdfiServerHttpError("hdfdEditField", ioArgs);
return response; }
});
});
return;
}
// -----------------------------------------------------------
// hdfdEditFldRsp:
// -----------------------------------------------------------
function hdfdEditFldRsp(registry, dom, response) {
require(["dojo/ready", "dojo/_base/json"],
function(ready, dojo){
hjsonEditResponse = dojo.fromJson(response);
switch (hjsonEditResponse.prefix) {
case 'prm': hdfdEditFldPrompt(registry, dom, hjsonEditResponse); break;
case 'ppp': break;
default: hdfdEditFldOther(registry, dom, hjsonEditResponse);
}
});
return;
}
// -----------------------------------------------------------
// hdfdEditFldPrompt:
// -----------------------------------------------------------
function hdfdEditFldPrompt(registry, dom, promptData) {
console.log("...hdfdEditFldPrompt promptData: ", promptData);
require(["dojo/ready", "dojo/data/ItemFileReadStore", "dijit/form/FilteringSelect"],
function(ready, ItemFileReadStore, FilteringSelect) {
var promptStore = new ItemFileReadStore({
data: promptData,
jsId: "fieldPrompt"
});
//console.log("...hdfdEditFldPrompt promptStore: ", promptStore);
var fullName = promptData.prefix + promptData.fldname;
if (registry.byId(fullName)) {
var promptSelect = registry.byId(fullName);
promptSelect.destroyRecursive(false);
}
var promptSelect = new FilteringSelect({
id: fullName,
name: promptData.fldname,
value: promptData.fldvalue,
store: promptStore,
searchAttr: "label",
onChange: function(item) {
//console.log("...hdfdEditFldPrompt onChange: ", item);
if (item != " ") {
hdfdEditFldPromptGo(registry, dom, item);
}
return;
},
onDblClick: function(item) {
//console.log("...hdfdEditFldPrompt onDblClick: ", item);
//hdfdEditFldPromptGo(registry, dom, item);
return;
}
}, fullName);
var msgTagId = 'msg' + promptData.fldname;
dom.byId(msgTagId).innerHTML = " ";
});
return;
}
// -----------------------------------------------------------
//
// -----------------------------------------------------------
function hdfdEditFldPromptGo(registry, dom, fieldValue) {
require(["dojo/ready", "dojo/json"],
function(ready, json) {
var jsCaller = "hdfdEditFldPrompt";
var jsonObj = hdfiServerSetJsonObj(jsCaller,"HWEBNAEB2","EB2_Parms");
jsonObj.procparm = "editpane";
jsonObj.editenv = hugmarSettings.editenv;
jsonObj.field = {};
jsonObj.field.name = "ppp" + hjsonEditResponse.fldname;
jsonObj.field.value = fieldValue;
jsonObj.field.event = "onChange";
var jsonUrl = hugmarSettings.host.pgmdir + "/hwebhtp120.pgm?json=" + json.stringify(jsonObj);
hdfiServerGet(jsCaller, jsonUrl);
});
return;
}
// -----------------------------------------------------------
// hdfdEditFldPromptRsp:
// -----------------------------------------------------------
function hdfdEditFldPromptRsp(registry, dom, response) {
hjsonEditResponse = response;
return;
}
// -----------------------------------------------------------
// hdfTabEditFldOther:
// -----------------------------------------------------------
function hdfdEditFldOther(registry, dom, editResponse) {
console.log("...hdfdEditFldOther editResponse: ", editResponse);
//alert("hdfdEditFldOther Check Console");
if (registry.byId("hdmBannerDebug")) {
if (registry.byId("hdmBannerDebug").checked) {
console.log("...hdfdEditFldOther editResponse: ", editResponse);
}
}
if (editResponse.errcnt == "0") {
dom.byId("hdmTabEditPageMsg").innerHTML = '
Page is OK
'; } else { dom.byId("hdmTabEditPageMsg").innerHTML = 'Page has ' + editResponse.errcnt + ' errors
'; } var cells = editResponse.cells; for (var i = 0; i < cells.length; i++) { var errTagName = "err" + cells[i].fldname; var msgTagName = "msg" + cells[i].fldname; dom.byId(errTagName).innerHTML = cells[i].errmsg; dom.byId(msgTagName).innerHTML = cells[i].fldmsg; } /* var errTagName = "err" + editResponse.fldname; dom.byId(errTagName).innerHTML = editResponse.errmsg; if (editResponse.fldmsg) { var fldMsgTagName = "msg" + editResponse.fldname; dom.byId(fldMsgTagName).innerHTML = editResponse.fldmsg; } */ return; } // ----------------------------------------------------------- // hdfdEditConfirm: function to Confirm Edit and Close Tab // ----------------------------------------------------------- function hdfdEditConfirm(butNode) { require(["dojo/ready", "dojo/json", "dijit/Dialog", "dijit/TooltipDialog", "dijit/popup", "dijit/registry", "dojo/dom"], function(ready, json, Dialog, TooltipDialog, popup, registry, dom) { if (registry.byId("hdmBannerDebug")) { if (registry.byId("hdmBannerDebug").checked) { console.log("...hdfdEditConfirm action: ", butNode.action); } } if (registry.byId("hdmTabEditTooltip")) { registry.byId("hdmTabEditTooltip").destroyRecursive(true); } //console.log("hdfdEditConfirm butNode: ", butNode); //alert ("hdfEditConfirm: Check Console for actype, action and index"); if (butNode.action == "View" || butNode.action == "Cancel") { if (dom.byId("hdmTabEditMain")) { dom.byId("hdmTabEditMain").innerHTML = " "; } return; } //console.log("hdfdEditConfirm hjsonEditResponse: ", hjsonEditResponse); if (hjsonEditResponse.errcnt != "0") { hdfdEditShowDialog ("