/** * check if there's new event happen * */ function listenCalls($aFormValues) { global $config, $locate; //print_r($_SESSION['ticketNoticeTime']);exit; //print_r($aFormValues);exit; $objResponse = new xajaxResponse(); // if($agentData = Customer::getAgentData()){ // if(strstr($agentData['agent'],'agent')){ // $objResponse->addAssign("spanDialList", "style.display", "none"); // $objResponse->addAssign("misson", "style.display", "none"); // }else{ // $objResponse->addAssign("spanDialList", "style.display", ""); // $objResponse->addAssign("misson", "style.display", ""); // } //// print_r($agentData);exit; // if($aFormValues['breakStatus'] == -1){ // $span = '<input type="button" value="" name="btnPause" id="btnPause" onclick="queuePaused();" >'; // $objResponse->addAssign("spnPause","innerHTML", $span ); // } // if($agentData['cretime'] > $aFormValues['clkPauseTime']){ // $objResponse->addAssign("agentData","innerHTML", $agentData['data'] ); // if($agentData['agent_status'] != 'paused'){ // $objResponse->addAssign("btnPause","value", $locate->Translate("Break") ); // $objResponse->addAssign("breakStatus","value", 0); // }else{ // $objResponse->addAssign("btnPause","value", $locate->Translate("Continue") ); // $objResponse->addAssign("breakStatus","value", 1); // } // } // }else{ // if($_SESSION['curuser']['agent'] == '' ){ // $objResponse->addAssign("agentData","innerHTML", ''); // $objResponse->addAssign("spnPause","innerHTML", '' ); // $objResponse->addAssign("breakStatus","value", -1); // } // } //根据后台 astercrm_accountgroup里设置的参数 notice_interval 来判断多少分钟的间隔执行 ticket 的提示 if ($_SESSION['curuser']['usertype'] == 'agent') { $noticeInterval = $_SESSION['noticeInterval']; //print_r($_SESSION['ticketNoticeTime'].' - '.date("Y-m-d H:i:s",strtotime($_SESSION['ticketNoticeTime']." + $noticeInterval minutes")));exit; //print_r($noticeInterval > 0 && (strtotime($_SESSION['ticketNoticeTime']." + $noticeInterval minutes") <= strtotime(date("Y-m-d"))));exit; $noticeArray = array(); if ($noticeInterval > 0 && strtotime($_SESSION['ticketNoticeTime'] . " + {$noticeInterval} minutes") <= strtotime(date("Y-m-d H:i:s"))) { $noticeArray = Customer::ticketNoticeValid(); //更新右上角的mytickets处的数值 $curTicketmsg = Customer::getTicketInWork(); $objResponse->addAssign("curticketMsg", "innerHTML", $curTicketmsg); } if (!empty($noticeArray)) { $objResponse->addAssign("noticeTicketMsgDiv", "innerHTML", str_replace('%d', count($noticeArray), $locate->Translate('you have new tickets'))); $objResponse->addScript('getTicketNoticeMsg();'); $_SESSION['ticketNoticeTime'] = date("Y-m-d H:i:s"); //更新session里的提醒时间 } /* else { $objResponse->addAssign("noticeTicketMsgDiv","innerHTML",''); $objResponse->addScript('closeTicketNotice();'); }*/ } //根据后台设置的update_online_interval 判断多长时间进行更新astecrm_account表里的last_update_time字段值 if (isset($_SESSION['curuser']['update_online_interval']) && $_SESSION['curuser']['update_online_interval'] != '') { if (strtotime(date("Y-m-d H:i:s")) - strtotime($_SESSION['curuser']['update_online_interval']) >= $config['system']['update_online_interval'] * 60) { astercrm::updateAgentOnlineTime('update', date("Y-m-d H:i:s"), $_SESSION['curuser']['accountid']); } } if ($aFormValues['dpnShow'] > 0) { //for refresh diallist pannel $lastDiallistId = Customer::getLastOwnDiallistId(); if ($lastDiallistId == '') { $lastDiallistId = 1; } if ($aFormValues['dpnShow'] != $lastDiallistId) { $objResponse->addAssign("dpnShow", "value", $lastDiallistId); $objResponse->addScript("showDiallist('" . $_SESSION['curuser']['extension'] . "',0,0,5,'','','','formDiallistPannel','','');"); } } if ($aFormValues['uniqueid'] == '') { $objResponse->addAssign("btnDial", "disabled", false); $objResponse->loadXML(waitingCalls($aFormValues)); } else { $objResponse->addAssign("btnDial", "disabled", true); $objResponse->loadXML(incomingCalls($aFormValues)); } //set time intervals of update events //$check_interval = 2000; //if ( is_numeric($config['system']['status_check_interval']) ) $check_interval = $config['system']['status_check_interval'] * 1000; //$objResponse->addScript('setTimeout("updateEvents()", '.$check_interval.');'); return $objResponse; }
/** * check if there's new event happen * */ function listenCalls($aFormValues) { global $config; $objResponse = new xajaxResponse(); if ($aFormValues['uniqueid'] == '') { $objResponse->loadXML(waitingCalls($aFormValues)); } else { $objResponse->loadXML(incomingCalls($aFormValues)); } $objResponse->addScript('setTimeout("updateEvents()", "1000");'); return $objResponse; }