// --------------------------------------------------------------- // TabViewDialog // --------------------------------------------------------------- function hdfTabViewDialog(wrkfolder) { var dateTime = new Date().getTime(); require(["dojo/text!desktop/text/viewdialog.html" + "?dummy=" + dateTime, "dijit/layout/ContentPane", "dijit/Dialog", "dijit/registry", "dijit/form/TextBox", "dijit/form/Button", "dojo/dom-construct", "dojo/dom"], function(snippet, ContentPane, Dialog, registry, TextBox, Button, domConstruct, dom) { hjsonViewCtl = wrkfolder; console.log ("TabViewDiqalog hjsonViewCtl.tabenv: ", hjsonViewCtl.tabenv); console.log ("TabViewDiqalog text: ", snippet); if (registry.byId("tabViewDialog")) { registry.byId("tabViewDialog").show(); return; } var tabViewDialog = new Dialog({ id: "tabViewDialog", title: "Drag and Drop View", style: "width: 1000px; height: 800px;", content: snippet }); tabViewDialog.show(); console.log ("TabViewDiqalog wrkfolder: ", wrkfolder); hdfTabViewLoad(wrkfolder); }); } // --------------------------------------------------------------- // TabViewLoad: // --------------------------------------------------------------- function hdfTabViewLoad(wrkfolder) { console.log ("TabViewLoad wrkfolder: ", wrkfolder); require(["dojo/ready", "dijit/registry"], function(ready, registry){ hdfTabViewDndSelectedPane(registry, wrkfolder); hdfTabViewDndAvailablePane(registry, wrkfolder); }); } // ----------------------------------------------------------- // Load TabView Available Container // ----------------------------------------------------------- function hdfTabViewDndAvailablePane(registry, wrkfolder) { require(["dojo/ready","dojo/data/ItemFileWriteStore", "dijit/tree/ForestStoreModel", "dijit/Tree", "dijit/tree/dndSource"], function(ready, ItemFileWriteStore, ForestStoreModel, Tree, dndSource) { var availableStore = new ItemFileWriteStore({ data: wrkfolder.avail, jsId: "availableJson" }); console.log("...AvailablePane availableStore: ", availableStore); var availableModel = new ForestStoreModel({ store: availableStore, jsId: "availModel", rootId: "rootAvailable", rootLabel: "Available Columns" }); console.log("...AvailablePane availableModel: ", availableModel); var availableTree = new Tree({ id: "availablecolumns", title: "Use Double Click to Move Field Across to Selected Columns", model: availableModel, dndController: dndSource, checkAcceptance: function(source, nodes) { return true; }, checkItemAcceptance: function(target, source) { return true; }, onDblClick: function(item) { hjsonColDndItem.source = {}; hjsonColDndItem.source.id = item.id[0]; hjsonColDndItem.source.label= item.label[0]; hjsonColDndItem.source.name = item.name[0]; hjsonColDndItem.source.type = item.type[0]; hjsonColDndItem.target = hjsonColDndItem.source; hdfTabViewDndChange("add"); return; } }, "hdmViewDndAvailPane"); }); console.log("...AvailablePane availableTree: ", availableTree); return; } // ----------------------------------------------------------- // On-Click Testing // ----------------------------------------------------------- function hdfTabViewDndAvailOnClick(item) { alert("onClick testing"); console.log("...onClick Testing: ", item); return; } // ----------------------------------------------------------- // Load TabView Selected Container // ----------------------------------------------------------- function hdfTabViewDndSelectedPane(registry, wrkfolder) { require(["dojo/ready","dojo/data/ItemFileWriteStore", "dijit/tree/ForestStoreModel", "dijit/Tree", "dijit/tree/dndSource"], function(ready, ItemFileWriteStore, ForestStoreModel, Tree, dndSource) { var selectedStore = new ItemFileWriteStore({ data: wrkfolder.selected, jsId: "selectedJson" }); console.log("...SelectedPane selectedStore: ", selectedStore); var selectedModel = new ForestStoreModel({ store: selectedStore, jsId: "jsSelectedModel", rootId: "rootSelected", rootLabel: "Selected Columns" }); var selectedTree = new Tree({ id: "selectedcolumns", title: "One Click, Then Drag and Drop to Position Field Within Selected Columns", jsId: "jsSelectedTree", model: selectedModel, dndController: dndSource, accept: ["col", "dum"], //betweenThreshold: "5", checkAcceptance: function(source, nodes) { return true; }, checkItemAcceptance: function(target, source) { var targetItem = registry.getEnclosingWidget(target).item; hjsonColDndItem.target = {}; hjsonColDndItem.target.id = targetItem.id[0]; hjsonColDndItem.target.label= targetItem.label[0]; hjsonColDndItem.target.name = targetItem.name[0]; hjsonColDndItem.target.type = targetItem.type[0]; console.log("...selectedCheckItemAcceptance hjsonColDntItem: ", hjsonColDndItem); if (hjsonColDndItem.target.type == "col" || hjsonColDndItem.target.type == "dum") { return true; } else { return false; } }, onClick: function(item) { hjsonColDndItem.source = {}; hjsonColDndItem.source.id = item.id[0]; hjsonColDndItem.source.label= item.label[0]; hjsonColDndItem.source.name = item.name[0]; hjsonColDndItem.source.type = item.type[0]; return; }, onDndDrop: function(source, sourceDom, copy) { hdfTabViewDndSelectedOnDrop(source); return; } }, "hdmViewDndSelectedPane"); }); return; } // ----------------------------------------------------------- // On Drop Action // ----------------------------------------------------------- function hdfTabViewDndSelectedOnDrop(source) { console.log("...selectedOnDndDrop hjsonColDndItem: ", hjsonColDndItem); var dndController = source.tree.dndController; source.tree.dndController.onDndCancel(); if (!hjsonColDndItem.source) { require(["dijit/Dialog"], function(Dialog){ var selectDialog = new Dialog({ title: "...DndSelectedOnDrop", style: "width: 400px", content: "You Must One Click on Column before you Drag, Please Try Again"}); selectDialog.show(); }); return; } if (hjsonColDndItem.source.type == "dum") { var alertString = "...SelectedOnDrop" + "\n\n" + "Remove Bin Controls can not be moved in the Tree"; alert(alertString); return; } if (hjsonColDndItem.target.type == "dum") { var action = "del"; } else { var action = "col"; } hdfTabViewDndChange(action); return; } // ----------------------------------------------------------- // Load TabView Delete Container // ----------------------------------------------------------- function hdfTabViewDndRemovedPane() { var removedContent = dom.byId("hdmTabViewDndRemoved"); removedContent.innerHTML = "
Removed Columns
"; var removedContentPane = new dijit.layout.ContentPane({ style: "background-color: #FDFDFD; width: 250px;", splitter: "true", minSize: "200", liveSplitters: "false" }, deleteContent); removedContentPane.id = "hdmTabViewDndRemoved"; return; } // ----------------------------------------------------------- // hdfTabViewDndChange: // ----------------------------------------------------------- function hdfTabViewDndChange(action) { console.log("hdfTabViewDndChange hjsonColDndItem: ", hjsonColDndItem); var adjName = hjsonColDndItem.source.name; // Virtual Field if (adjName.substring(0,1) == "#") { hjsonColDndItem.source.name = "_" + adjName.substring(1); } require(["dojo/ready", "dojo/json"], function(ready, json){ var jsCaller = "hdfTabViewDndChange"; var jsonObj = hdfiServerSetJsonObj(jsCaller,"HWEBNAM06","TabViewDndChange"); jsonObj.procparm = "viewchange"; jsonObj.gridenv = {}; jsonObj.gridenv = hjsonViewCtl.tabenv; jsonObj.gridenv.filler = " "; jsonObj.gridcol = {}; jsonObj.gridcol.name = hjsonColDndItem.source.name; jsonObj.gridcol.seq = hjsonColDndItem.target.id; jsonObj.gridcol.action = action; jsonObj.gridcol.filler = " "; var jsonUrl = hugmarSettings.host.pgmdir + "/hwebhtp120.pgm?json=" + json.stringify(jsonObj) hdfiServerGet(jsCaller, jsonUrl); hjsonColDndItem = {}; }); return; } // ----------------------------------------------------------- // // ----------------------------------------------------------- function hdfTabViewDndChangeRsp(registry, dom, jsonResponse) { hjsonViewCtl = jsonResponse; console.log("hdfTabViewDndChangeRsp hjsonViewCtl: ", hjsonViewCtl); var viewTab = registry.byId("hdmTabViewDnd"); hdfTabViewDndContainers(registry, dom, viewTab); //setTimeout("hdfTabViewDndContainers(registry, dom, viewTab)", 200); return; } // ----------------------------------------------------------- // hdfTabViewDndConfirm: function to Confirm View Control // ----------------------------------------------------------- function hdfTabViewDndConfirm(registry, dom, action) { console.log("hdfTabViewDndConfirm action: ", action); if (action == "CANCEL") { registry.byId("tabViewDialog").destroyRecursive(false); return; } console.log("hdfTabViewDndConfirm hjsonViewCtl: ", hjsonViewCtl); require(["dojo/ready", "dojo/json"], function(ready, json){ var jsCaller = "hdfTabViewDndConfirm"; var jsonObj = hdfiServerSetJsonObj(jsCaller,"HWEBNAM06","TabViewDndConfirm"); jsonObj.procparm = "viewconfirm"; jsonObj.gridenv = {}; jsonObj.gridenv = hjsonViewCtl.tabenv; jsonObj.gridenv.filler = " "; var jsonUrl = hugmarSettings.host.pgmdir + "/hwebhtp120.pgm?json=" + json.stringify(jsonObj) hdfiServerGet(jsCaller, jsonUrl); }); return; } // ----------------------------------------------------------- // View Confirm Response // ----------------------------------------------------------- function hdfTabViewDndConfirmRsp(registry, dom, jsonResponse) { registry.byId("tabViewDialog").destroyRecursive(false); hdfAccMenuAppsGoRsp(registry, dom, jsonResponse); return; } // ----------------------------------------------------------- // hdfTabViewSaveDescription: // ----------------------------------------------------------- function hdfTabViewSaveAsDescription(registry, dom) { var viewDescription = registry.byId("viewDescription"); if (registry.byId("viewDescription")) { viewDescription.destroyRecursive(true); } require(["dojo/ready", "dijit/form/TextBox"], function(ready, TextBox) { var viewDescription = new TextBox({ id: "viewDescription", maxlength: "50", onChange: function(viewDesc) { this.viewdesc = viewDesc; console.log("hdfTabSaveAsDescription this.viewdesc: ", this.viewdesc); if (this.viewdesc.length == 0 || this.viewdesc.substring(0,1) == " ") { var alertString = "hdfTabViewSaveAsDescription():" + "\n\n" + "View Description Must be Entered," + "\n" + "and must start with an Alphanumeric Character" alert(alertString); } } }, "hdmTabViewSaveAsDesc"); }); return; } // ----------------------------------------------------------- // hdfTabViewSaveAsSelect: // ----------------------------------------------------------- function hdfTabViewSaveAsSelect(registry, dom) { var tabViewSaveAsViewID = " "; require(["dojo/ready", "dojo/data/ItemFileReadStore", "dijit/form/ComboBox"], function(ready, ItemFileReadStore, ComboBox) { //console.log("...TabViewSaveAsViewID hjsonViewCtl: ", hjsonViewCtl); //alert("hdfTabViewSaveAsSelect Debug: Check Console"); var saveViewAsStore = new ItemFileReadStore({ data: hjsonViewCtl.views }); var viewSelect = registry.byId("viewSelect"); if (registry.byId("viewSelect")) { viewSelect.destroyRecursive(true); } var viewSelect = new ComboBox({ id: "viewSelect", store: saveViewAsStore, onChange: function(viewID) { this.viewname = viewID; console.log("hdfTabSaveAsSelect this.viewid: ", this.viewname); if (this.viewname.length == 0 || this.viewname.substring(0,1) == " ") { var alertString = "hdfTabViewSaveAsSelect():" + "\n\n" + "View Must be Entered," + "\n" + "and must start with an Alphanumeric Character" alert(alertString); } } }, "hdmTabViewSaveAsSelect"); }); return; }