//var hjsonBrowser = new Object(); // JSON Browser Info var hdwLoginMobile = null; // ----------------------------------------------------------- // loginEnter: Check if Enter key is pressed // ----------------------------------------------------------- function hdfLoginEnter(event) { var keyNum; if (window.event) { // IE keyNum = event.keyCode; } else if(event.which) { // Netscape/Firefox/Opera keyNum = event.which; } //console.log("hdfLoginEnter: ", keyNum); if (keyNum==13) { //hdfLoginServer(); } return; } // ----------------------------------------------------------- // Standard login to IBM i Server: // ----------------------------------------------------------- function hdfLoginServer(environment) { require(["dojo/ready", "dijit/registry", "dojo/json", "dojo/request/xhr", "dojo/dom"], function(ready, registry, json, xhr, dom){ var jsonObj = hdfLoginSetJsonObj(registry, dom, environment); jsonObj.handle = dom.byId("hdmLoginSessid").innerHTML; //var jsonUrl = hdfLoginSetJsonUrl(jsonObj); var jsonUrl = json.stringify(jsonObj) var hostServer = "http://192.168.97.100:8023"; stdUrl = hostServer + "/hugmardplp/hwebhtp110.pgm?json="; var urlString = stdUrl + jsonUrl; //console.log("hdfLoginServer: urlString ", urlString); //hdfLoginServerDialog(); xhr(urlString, {handleAs: "text"}).then(function(data){ hdfLoginServerRsp(hostServer, data); }, function(err){}, // Error Processing function(evt){} // if Browser supports XHR2 ); }); return; } // ----------------------------------------------------------- // hdfLoginServerRsp: Work with response from IBM i Server // ----------------------------------------------------------- function hdfLoginServerRsp(hostServer, jsonStr) { console.log("hdfLoginServerRsp jsonStr: ", jsonStr); require(["dojo/ready", "dijit/registry", "dojo/_base/json", "dojo/dom"], function(ready, registry, json, dom){ var loginSettings = dojo.fromJson(jsonStr); loginSettings.server = hostServer; //console.log(loginSettings); //alert("hdfLoginServerRsp: Check Console"); if (registry.byId("hdwLoginDialogEnv")) { registry.byId("hdwLoginDialogEnv").hide(); } switch (loginSettings.errcode) { case 'OK': hdfLoginServerRspOK(registry, loginSettings); break; case 'ENV': hdfLoginServerRspEnv(registry, loginSettings); break; default: hdfLoginServerRspTerror(loginSettings); } }); return; } // ----------------------------------------------------------- // Login to Server Multiple Environments // ----------------------------------------------------------- function hdfLoginServerRspEnv(registry, loginSettings) { require(["dijit/Dialog", "dijit/form/Select"], function(Dialog, Select){ if (registry.byId("hdwLoginDialogEnv")) { registry.byId("hdwLoginDialogEnv").destroyRecursive(true); } if (registry.byId("hdwLoginDialogEnv")) { registry.byId("hdwLoginDialogEnv").hide(); } var envSelect = new Select({ id: "hdwEnvironmentSelect", options: loginSettings.env, style: "width: 250px; font-weight: bold; font-size: 14px;", onChange: function(value){ //console.log("select onchange ", value); loginDialogEnv.hide(); hdfLoginServerDialog(); hdfLoginServer(value); return; } }); var loginDialogEnv = new Dialog({ id: "hdwLoginDialogEnv", title: "Velja Umhverfi", style: "width: 300px;", content: envSelect}); loginDialogEnv.show(); }); return; } // --------------------------------------------------------------- // hdfLoginRspOK: // --------------------------------------------------------------- function hdfLoginServerRspOK(registry, loginSettings) { if (loginSettings.javascript == "iServerExpired") { hdfLoginExpired(loginSettings); return; }; console.log("hdfLoginServerRsp loginSettings: ", loginSettings); // Calendar require(["dojo/ready", "dojo/_base/json", "dojo/_base/xhr"], function(ready, dojo, xhr){ var urlString = loginSettings.server + loginSettings.wrkfolder + '/OUT/HWEBV2AMF_Login.json'; dojo.xhrGet({ url: urlString, load: function(response, ioArgs) { hugmarSettings = dojo.fromJson(response); hugmarSettings.host.server = loginSettings.server; hugmarSettings.host.wrkfolder = loginSettings.wrkfolder; hdfAccMenus(registry, loginSettings); // Load Accordion Menus hdfAccFav (registry, loginSettings); // Load Favorites/Books hdfLoginServerBanner(registry, loginSettings); // Make Adjustment to Banner Icons hdfLoginRemoveWelcome(registry); // Remove Welcome Tab //console.log("hdfLoginServerRspOK hugmarSettings: ", hugmarSettings); //alert ("hdfLoginServerRspOK: Check Console 2"); hdfLoginServerLogo(registry, loginSettings); // Setup Correct Logo on Left //hdfCalendarArea(registry); Taken out 2017-05-01 (TG) return response; }, error: function(response, ioArgs) { console.log("hdfAccMenus faild xhrGet", response, ioArgs); /* handle the error */ hdfiServerHttpErr(urlString, ioArgs); return response; } }); }); return; } // ----------------------------------------------------------- // Login to Server Dialog // ----------------------------------------------------------- function hdfLoginServerDialog() { require(["dijit/Dialog"], function(Dialog){ hdwLoginDialog = new dijit.Dialog({ title: "Hugmar Server", style: "width: 400px", duration: 1500, content: "Application is Initializing"}); hdwLoginDialog.show(); setTimeout("hdwLoginDialog.hide()", 1500); }); return; } // --------------------------------------------------------------- // hdfLoginServerRspTerror: // --------------------------------------------------------------- function hdfLoginServerRspTerror(loginSettings) { //console.log("hdfLoginServerRspTerror loginSettings: ", loginSettings); require(["dojo/ready","dijit/Dialog"], function(ready, Dialog){ var alertDialog = new Dialog({ title: "Server Dialog: " + loginSettings.errcode, style: "width: 400px", content: loginSettings.errmsg}); alertDialog.show(); }); return; } // --------------------------------------------------------------- // hdfLoginServerBanner: // --------------------------------------------------------------- function hdfLoginServerBanner(registry, loginSettings) { //console.log("hdfLoginServerBanner loginSettings: ", loginSettings); if (registry.byId("hdmBannerSessInfo")) { var loginSessInfo = loginSettings.envid + "-" + loginSettings.sessid + " " + loginSettings.userdesc; registry.byId("hdmBannerSessInfo").set("label", loginSessInfo); } registry.byId("hdmBannerSidebar").set("disabled", false); registry.byId("hdmBannerLogoff").set("disabled", false); registry.byId("hdmBannerLogin1").destroyRecursive(false); // Options Bar //registry.byId("hdmBannerMobile").destroyRecursive(false); if (registry.byId("hdmBannerAboutHugmar")) { registry.byId("hdmBannerAboutHugmar").destroyRecursive(false); } return; } // --------------------------------------------------------------- // hdfLoginServerLogo: // --------------------------------------------------------------- function hdfLoginServerLogo(registry, loginSettings) { console.log("hdfLoginServerLogo loginSettings: ", loginSettings); require(["dojo/ready","dojo/dom","dojo/dom-style"], function(ready, dom, domStyle){ if (dom.byId("hdmLeftLogoContainer")) { switch (loginSettings.envid) { case 'HUGMARDPL': hdfLoginServerLogoDPL(dom, domStyle); break; case 'LIVE23SS': hdfLoginServerLogoSS(dom, domStyle); break; case 'LIVE23REY': hdfLoginServerLogoREY(dom, domStyle); break; case 'LIVE23HOL': hdfLoginServerLogoHOL(dom, domStyle); break; default: hdfLoginServerLogoTEST(dom, domStyle); } } }); return; } // --------------------------------------------------------------- // hdfLoginServerLogoDPL: // --------------------------------------------------------------- function hdfLoginServerLogoDPL(dom, domStyle) { var ipAddr = "hugmardpl Logo"; var backgroundColor = domStyle.get("hdmBannerToolbar", "backgroundColor"); //alert ("Color: " + backgroundColor) domStyle.set("hdmMainTopContainer", { "backgroundColor": "#dd0000" // SS red }); domStyle.set("hdmBannerSessInfo", { "color": "#dd0000", // SS red "fontWeight": "bold" }); return; } // --------------------------------------------------------------- // hdfLoginServerLogoSS: // --------------------------------------------------------------- function hdfLoginServerLogoSS(dom, domStyle) { var ipAddr = "SS Logo"; var backgroundColor = domStyle.get("hdmBannerToolbar", "backgroundColor"); //alert ("Color: " + backgroundColor) domStyle.set("hdmMainTopContainer", { "backgroundColor": "#dd0000" // SS red }); domStyle.set("hdmBannerSessInfo", { "color": "#dd0000", // SS red "fontWeight": "bold" }); return; } // --------------------------------------------------------------- // hdfLoginServerLogoREY: // --------------------------------------------------------------- function hdfLoginServerLogoREY(dom, domStyle) { var ipAddr = "Reykjagardur Logo"; domStyle.set("hdmMainTopContainer", { "backgroundColor": "navy" // Reykjagardur Navy }); domStyle.set("hdmBannerSessInfo", { "color": "navy", // Reykjagardur Navy "fontWeight": "bold" }); return; } // --------------------------------------------------------------- // hdfLoginServerLogoHOL: // --------------------------------------------------------------- function hdfLoginServerLogoHOL(dom, domStyle) { var ipAddr = "Hollt og Gott Logo"; domStyle.set("hdmMainTopContainer", { "backgroundColor": "green" // Hollt og Gott Green }); domStyle.set("hdmBannerSessInfo", { "color": "navy", "fontWeight": "bold" }); return; } // --------------------------------------------------------------- // hdfLoginServerLogoTEST: // --------------------------------------------------------------- function hdfLoginServerLogoTEST(dom, domStyle) { var ipAddr = "AlvisTest"; var backgroundColor = domStyle.get("hdmBannerToolbar", "backgroundColor"); //alert ("Color: " + backgroundColor) domStyle.set("hdmMainTopContainer", { "backgroundColor": "purple" // SS Test Purple }); domStyle.set("hdmBannerSessInfo", { "color": "purple", // SS Test Purple "fontWeight": "bold" }); return; } // --------------------------------------------------------------- // hdfLoginExpired: // --------------------------------------------------------------- function hdfLoginExpired() { require(["dijit/Dialog"], function(Dialog){ var alertString = "Previous Session Has Expired, Please Try Again. \n\n"; var alertDialog = new dijit.Dialog({ title: "Server Dialog: EXPIRED", style: "width: 400px", content: alertString}); alertDialog.show(); }); return; } // ----------------------------------------------------------- // hdfLoginBrowserName: Identify Browser // ----------------------------------------------------------- function hdfLoginBrowserName() { console.log(navigator); var browserName = "other"; var ua = navigator.userAgent.toLowerCase(); if ( ua.indexOf( "android" ) != -1 ) { browserName = "android"; return browserName; } if ( ua.indexOf( "iphone" ) != -1 ) { browserName = "iphone"; return browserName; } if ( ua.indexOf( "msie 9.0" ) != -1 ) { browserName = "IE 9.0"; return browserName; } if ( ua.indexOf( "msie" ) != -1 ) { browserName = "IE"; return browserName; } if ( ua.indexOf( "firefox" ) != -1 ) { browserName = "firefox"; return browserName; } if ( ua.indexOf( "chrome" ) != -1 ) { browserName = "chrome"; return browserName; } if ( ua.indexOf( "opera" ) != -1 ) { browserName = "opera"; return browserName; } if ( ua.indexOf( "safari" ) != -1 ) { browserName = "safari"; return browserName; } if ( ua.indexOf( "webkit" ) != -1 ) { browserName = "webkit"; return browserName; } return browserName; } // ----------------------------------------------------------- // hdfLoginClientType: Depending on Browser Find ClientType // ----------------------------------------------------------- function hdfLoginClientType(browser) { switch (browser) { case 'webkit': return "mobile"; break; case 'android': return "mobile"; break; case 'iphone': return "mobile"; break; case 'blackberry': return "mobile"; break; default: return "desktop"; } } // ----------------------------------------------------------- // hdfLoginToolbars: // ----------------------------------------------------------- function hdfLoginToolbars() { hjsonBrowser.browser = hdfLoginBrowserName(); hjsonBrowser.client = hdfLoginClientType(hjsonBrowser.browser); return; } // ----------------------------------------------------------- // Login Json Parms // ----------------------------------------------------------- function hdfLoginSetJsonObj(registry, dom, environment) { var password = globalModifyCell(dom.byId('loginPassword').value); var loginObj = { handle: " ", javascript: "hdfLoginServer", procid: "HWEBV2LOGIN", envovr: environment, userid: dom.byId('loginUsername').value, procparm: password, host: {}, nav: {}, webid: new Date().getTime() }; loginObj.nav.browser = hjsonBrowser.browser; loginObj.nav.client = hjsonBrowser.client; if (hjsonBrowser.loc) { loginObj.nav.ip = hjsonBrowser.loc.ip; loginObj.nav.address = hjsonBrowser.loc.address; } else { loginObj.nav.ip = "unknown"; loginObj.nav.address = "unknown"; } loginObj.host.host = document.location.host; loginObj.host.hostname= document.location.hostname; loginObj.host.href = document.location.href; loginObj.host.pathname= document.location.pathname; loginObj.host.port = document.location.port; loginObj.host.protocol= document.location.protocol; loginObj.nav.platform = navigator.platform; loginObj.nav.language = navigator.language; loginObj.nav.cookies = navigator.cookieEnabled; loginObj.nav.online = navigator.onLine; loginObj.nav.vendor = navigator.vendor; loginObj.nav.curtime = new Date().getTime(); // Classic Client Run as Mobile Override if (hdwLoginMobile) { if (hdwLoginMobile.checked) { loginObj.nav.client = "dojo.mbl"; } } // Is Username Likely an Email Address if ((loginObj.userid.indexOf("@") > 1) && (loginObj.userid.indexOf(".") > 6)) { loginObj.nav.email = "1"; } else { loginObj.nav.email = "0"; } //console.log("hdfLoginSetJsonObj loginObj: ", loginObj); return loginObj; } // ----------------------------------------------------------- // hdfLoginRemoveWelcome: // ----------------------------------------------------------- function hdfLoginRemoveWelcome(registry) { //if (registry.byId("hdmMainTabLogo")) { // registry.byId("hdmMainTabLogo").destroyRecursive(false); //} if (registry.byId("hdmMainWelcomePane")) { welcomePane = registry.byId("hdmMainWelcomePane"); registry.byId("hdmMainTabContainer").removeChild(welcomePane); } return; }