/** * fvsocket.js */ /*************************************************************************** * Function for creating channel Start **************************************************************************/ window.onunload = function() { //Channel fvUnloadChannel(); }; var receiveUpdateNotice = false; var fvSocket; var fvToken = ""; var fvSessionId = "{{ sessionId }}"; var fvClosedSocket = true; var fvOnOpened = function() { console.log("fvOnOpened"); var open = "open"; }; var fvGetCurDateTimeString = function() { var now = new Date(); var hour = now.getHours(); var minute = now.getMinutes(); var second = now.getSeconds(); var monthnumber = now.getMonth() + 1; var monthday = now.getDate(); var year = now.getYear() + 1900; var ret = year + "-" + monthnumber + "-" + monthday + " " + hour + ":" + minute + ":" + second; return ret; } var fvOnClosed = function() { console.log("fvOnClosed"); } var fvOnErrorChannel = function() { console.log("fvOnErrorChannel"); } var fvOnClosedSocket = function() { // CO-877: Shutdown Channel API if(USE_FIREBASE_API){ return; } console.log("fvOnClosedSocket"); if (fvClosedSocket == false) { console.log('fvOnClosedSocket : fvClosedSocket = false'); fvInitChannel(); } } var fvOnErrorSocket = function() { // CO-877: Shutdown Channel API if(USE_FIREBASE_API){ return; } console.log("fvOnErrorSocket"); if (fvClosedSocket == false) { console.log('fvOnErrorSocket : fvClosedSocket = false'); fvInitChannel(); } } var fvOnMessage = function(m) { // CO-877: Shutdown Channel API if(USE_FIREBASE_API){ return; } console.log("fvOnMessage"); try { console.log(fvGetCurDateTimeString() + " Call fvOnMessage : m.data = " + m.data); var msgData = JSON.parse(m.data); var userKey = msgData.userKey; var projectKey = msgData.projectKey; var formKey = msgData.formKey; var mSessionId = msgData.sessionId; var dispatch = msgData.dispatch; var action = msgData.action; var USER_MOBILE = "USER_MOBILE"; var CONST_DISPATCH = "dispatch"; if (dispatch == null) { dispatch = ""; } if('USER_ADMIN_LOGOUT' == dispatch || 'USER_LOGOUT' == dispatch){ var msgWarn = lbl_user_logout_message.replace('user ID and password', 'Mobile Number and PIN'); if('USER_ADMIN_LOGOUT' == dispatch){ msgWarn = lbl_admin_logout_message; } jAlert(msgWarn, lbl_alert, function(){ parent.window.location.replace("/formview/logout?delSession=false"); }); fvWatchDog = true; return; } // Not keep auto refresh after watchdog if(fvWatchDog){ return; } switch(action){ case 'UpdateFVDBInfoForJobs_finished': //waiting for data and , isRunOnce updateFVDBInfoForJobsNoWait(true, true); break; case 'UpdateFVDBInfo_finished': receiveUpdateNotice = true; updateFVDBInfo(true); break; case CONS_ACTION_RECALL: updateFVDBDispatchRecall(); break; default: if(fvDBInfoNS.settings.behaviorUseGPNNotity){ //waiting for data and , isRunOnce updateFVDBInfoForJobsNoWait(false, true); } } } catch (e) { console.log("Exception fvOnMessage : " + e); } } var fvOpenChannel = function() { // CO-877: Shutdown Channel API if(USE_FIREBASE_API){ return; } console.log("fvOpenChannel"); var ret = true; try { console.log(fvGetCurDateTimeString() + " call fvOpenChannel : curSessionId : " + fvSessionId + " ,fvToken : " + fvToken); var channel = new goog.appengine.Channel(fvToken); var handler = { 'onopen': fvOnOpened, 'onmessage': fvOnMessage, 'onerror': fvOnErrorChannel, 'onclose': fvOnClosed }; fvSocket = channel.open(handler); fvSocket.onopen = fvOnOpened; fvSocket.onmessage = fvOnMessage; fvSocket.onclose = fvOnClosedSocket; fvSocket.onerror = fvOnErrorSocket; console.log('*** Open channel'); } catch (e) { console.log("Exception open channel : " + e); ret = false; } return ret; } var fvUnloadChannel = function() { // CO-877: Shutdown Channel API if(USE_FIREBASE_API){ return; } console.log("fvUnloadChannel"); try { $.ajax({ url: '/openchannel' + '?userKey=' + authNS.currentUser.UserKey + '&customerKey=' + authNS.currentUser.CustomerKey + '&action=clear' + '&mobileNumber=' + authNS.currentUser.MobileNumber, dataType: 'json', type: 'GET', data: '{}', cache: false, async: false, complete: function() {}, success: function(response, status) {}, error: function(request, status, error) {} }); } catch (e) { console.log("Exception unload channel : " + e); } } var fvInitChannel = function() { // CO-877: Shutdown Channel API if(USE_FIREBASE_API){ return; } console.log("fvInitChannel"); var ret = true; try { $.ajax({ url: '/openchannel' + '?userKey=' + authNS.currentUser.UserKey + '&customerKey=' + authNS.currentUser.CustomerKey + '&mobileNumber=' + authNS.currentUser.MobileNumber, //+ '&projectId=' //+ $("#cboProject option:selected")[0].value //+ '&formId=' //+ $("#cboFrom option:selected")[0].value, dataType: 'json', type: 'GET', data: '{}', cache: false, async: false, complete: function() { //waitForDataLoading(false); }, success: function(response, status) { console.log('*** Init channel'); fvToken = response.token; fvSessionId = response.sessionId; if(!fvOpenChannel()){ return false; } }, error: function(request, status, error) { console.log("Auto refresh error : " + error); ret = false; } }); } catch (e) { console.log("Exception init channel : " + e); ret = false; } return ret; } var fvOpenChannelRefresh = function(){ // CO-877: Shutdown Channel API if(USE_FIREBASE_API){ return; } console.log("fvOpenChannelRefresh"); if(fvClosedSocket){ if(fvSocket){ fvOpenChannel(); }else{ if(!fvInitChannel()){ return false; } } fvClosedSocket = false; } return true; } /*************************************************************************** * Function for creating channel End **************************************************************************/