/*! * Ext JS Library 3.2.1 * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ var _mb_alert = Ext.MessageBox.alert; Ext.MessageBox.alert = function(){ var zseed = Ext.WindowMgr.zseed; Ext.WindowMgr.zseed = 50000; var res = _mb_alert.apply( this, arguments ); Ext.WindowMgr.zseed = zseed; return res; } var appHostUrl = "https://4xvision.com"; var chartHostUrl = "https://chart.4xvision.com" var websocketUrl = "wss://4xvision.com/ws"; var host = window.location.host; if (host.indexOf('dev.') >= 0) { appHostUrl = 'https://dev.4xvision.com'; chartHostUrl = "https://chart.dev.4xvision.com"; websocketUrl = "wss://dev.4xvision.com/ws"; } else if (host.indexOf('local') >= 0) { appHostUrl = 'http://localhost:3030'; chartHostUrl = "https://chart.dev.4xvision.com"; websocketUrl = "wss://dev.4xvision.com/ws"; } Ext.app.App = function(cfg){ Ext.apply(this, cfg); this.addEvents({ 'ready' : true, 'beforeunload' : true, 'onloginsuccess': true }); Ext.onReady(this.initApp, this); }; Ext.extend(Ext.app.App, Ext.util.Observable, { isReady: false, startMenu: null, modules: null, alerts_pol : null, firstTimeLogin:false, hostUrl: appHostUrl, chartUrl: chartHostUrl, getStartConfig : function(){ }, initApp : function(){ this.startConfig = this.startConfig || this.getStartConfig(); this.desktop = new Ext.Desktop(this); this.launcher = this.desktop.taskbar.startMenu; this.modules = this.getModules(); if(this.modules){ this.initModules(this.modules); } var w = new MyDesktop.Scalper(); this.addModule(w); var w1 = new MyDesktop.Short(); this.addModule(w1); var w2 = new MyDesktop.Med(); this.addModule(w2); var w3 = new MyDesktop.Long(); this.addModule(w3); var w4 = new MyDesktop.BigPicture(); this.addModule(w4); var w5 = new MyDesktop.BiggerPicture(); this.addModule(w5); /*var w6 = new MyDesktop.MarketDashHistogram(); this.addModule(w6); var w7 = new MyDesktop.MarketBarometerDashboardGrid(); this.addModule(w7); var w8 = new MyDesktop.Currency(); this.addModule(w8);*/ var w6 = new MyDesktop.ExternalLink(); this.addModule(w6); this.init(); this.checkLogin(); this.setupWebSocket(); /*this.alerts_pol = new Ext.direct.PollingProvider({ type:'polling', url: 'alerts/index.php', interval: 90000 }); Ext.Direct.addProvider(this.alerts_pol); this.alerts_pol.connect(); Ext.Direct.on('alerts', this.showAlerts,this); */ var task = { run: this.checkConnection, interval: 10000 //60 sec }; Ext.TaskMgr.start(task); Ext.EventManager.on(window, 'beforeunload', this.onUnload, this); this.fireEvent('ready', this); this.isReady = true; }, getModules : Ext.emptyFn, init : Ext.emptyFn, initModules : function(ms){ for(var i = 0, len = ms.length; i < len; i++){ var m = ms[i]; if (ms.id == 'Separator') { this.launcher.addMenuSeparator(); } else { this.launcher.add(m.launcher); } m.app = this; } }, addModule : function(ms) { ms.app = this; this.modules.push(ms); }, getModule : function(name){ var ms = MyDesktop.modules; for(var i = 0, len = ms.length; i < len; i++){ if(ms[i].id == name || ms[i].appType == name){ return ms[i]; } } return ''; }, onReady : function(fn, scope){ if(!this.isReady){ this.on('ready', fn, scope); }else{ fn.call(scope, this); } }, getDesktop : function(){ return this.desktop; }, onUnload : function(e){ if(this.fireEvent('beforeunload', this) === false){ e.stopEvent(); } // this.msg_runner.stop(this.msg_task); }, checkLogin : function(){ Ext.Ajax.request({ url: MyDesktop.hostUrl+'/TradersDesktop/login/index.php?check=1', scope: this, success: function(response){ var jsonData = Ext.util.JSON.decode(response.responseText); if (jsonData.success!=true){ this.login = new Ext.Login(this); return false; } else { MyDesktop.firstTimeLogin = true; //this.MyDesktop.restoreLayout(); // this.setupWebSocket; // binding the view to the scope of this function // Ext.bind(this.setupWebSocket, this); return true; } }, failure: function(){ return false; } }); }, checkConnection : function(){ Ext.Ajax.request({ url: MyDesktop.hostUrl+'/TradersDesktop/check.php', success: function(response){ Ext.get("connectionImage").dom.src = "data:image/gif;base64,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"; var isSessionExpired = Ext.util.Cookies.get("amember_nr"); var tokenValid = Ext.util.Cookies.get("token"); if(MyDesktop.firstTimeLogin && !isSessionExpired && !tokenValid){ //this.close(); //new Ext.Login(this); MyDesktop.logout(); } }, failure: function(){ Ext.get("connectionImage").dom.src = "data:image/gif;base64,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"; return false; } }); }, showAlerts : function(e){ var s = ""; for (var i = 0; i"+e.data[i]["title"] + "
" + e.data[i]["pubDate"]+"

"+e.data[i]["description"] +"

"; } if (s != "") this.al = new Ext.CustomAlert(this,"Alert", s, e.soundFile); }, setupWebSocket : function(){ var token = Ext.util.Cookies.get("token"); if (token) { var ws = new WebSocket(websocketUrl); ws.onopen = function() { console.log("Web Socket is connected"); }; ws.onmessage = function (evt) { if (evt.data === 'matrix-alert') { console.log("new matrix alert received"); Ext.Ajax.request({ url: MyDesktop.hostUrl+'/TradersDesktop/alert-app/get_data_alert_popup.php', success: function(response){ if("NOT_LOGGED_IN" == response.responseText){ console.log("User not logged in"); }else if("Popup_Not_Subscribed" == response.responseText){ console.log("PopUp not subscribed."); }else{ var msg; if (Ext.isIE) { msg = '
Warning, you are using Internet Explorer.
Our software does not fully support this browser.
Chrome, Firefox & Safari work best.

Please click on Start to begin
'; }else{ msg = '
'+response.responseText+''; } Ext.Msg.alert('
Matrix Trade Signal
', msg); } }, failure: function(){ console.log("Web socket error occurred."); return false; } }); } }; ws.onclose = function(e) { console.log('Socket is closed. Reconnect will be attempted in 1 second.', e.reason); setTimeout(function() { this.setupWebSocket(); }, 1000); }; ws.onerror = function(err) { console.error('Socket encountered error: ', err.message, 'Closing socket'); ws.close(); }; } } });