Пример #1
0
/**
*  initialize page elements
*
*/
function init()
{
    global $locate, $config;
    $objResponse = new xajaxResponse();
    $myAsterisk = new Asterisk();
    $myAsterisk->config['asmanager'] = $config['asterisk'];
    $res = $myAsterisk->connect();
    if (!$res) {
        $objResponse->addAssign("AMIStatudDiv", "innerHTML", $locate->Translate("AMI connection failed"));
    }
    $group_row = astercrm::getRecord($_SESSION['curuser']['groupid'], 'accountgroup');
    if ($group_row['grouplogo'] != '' && $group_row['grouplogostatus']) {
        $logoPath = $config['system']['upload_file_path'] . '/callshoplogo/' . $group_row['grouplogo'];
        if (is_file($logoPath)) {
            $titleHtml = '<img src="' . $logoPath . '" style="float:left;" >';
        }
    }
    if ($group_row['grouptitle'] != '') {
        $titleHtml .= '<h1 style="padding: 0 0 0 0;position: relative;font-size: 16pt;">' . $group_row['grouptitle'] . '</h1>';
    }
    if ($group_row['grouptagline'] != '') {
        $titleHtml .= '<h2 style="padding: 0 0 0 0;position: relative;font-size: 11pt;color: #FJDSKB;">' . $group_row['grouptagline'] . '</h2>';
    }
    if (isset($titleHtml)) {
        //$titleHtml .= '<div style="position:absolute;top:85px;left:0px;width:800px"><hr color="#F1F1F1"></div>';
        $objResponse->addAssign("divTitle", "innerHTML", $titleHtml);
    } else {
        $objResponse->addAssign("divTitle", "style.height", '0px');
        $objResponse->addAssign("divMain", "style.top", '0px');
    }
    $_SESSION['status'] = array();
    $peers = $_SESSION['curuser']['extensions'];
    # 获得当前的channel
    $curchannels = array();
    $curchannels = astercc::checkPeerStatus($_SESSION['curuser']['groupid'], $peers);
    foreach ($peers as $peer) {
        // check if the booth is locked
        $clid = astercc::readRecord('clid', 'clid', $peer);
        if ($clid['isshow'] == 'yes') {
            $i++;
            // read booth display
            //$display = astercc::readField('clid','display','clid',$peer);
            $status = $clid['status'];
            $display = $clid['display'];
            if ($curchannels[$peer] && $curchannels[$peer]['creditlimit'] > 0) {
                $objResponse->addScript('addDiv("divMainContainer","' . $peer . '","' . $curchannels[$peer]['creditlimit'] . '","' . $i . '","' . $status . '","' . $display . '","' . $config['customers']['enable'] . '")');
            } else {
                $objResponse->addScript('addDiv("divMainContainer","' . $peer . '","","' . $i . '","' . $status . '","' . $display . '","' . $config['customers']['enable'] . '")');
            }
            $objResponse->addScript('xajax_addUnbilled("' . $peer . '");');
        }
    }
    if (!isset($_SESSION['callbacks'])) {
        $_SESSION['callbacks'] = array();
    }
    //print_r($_SESSION['callbacks']);
    // get callback from database
    $callback = astercc::getCallback($_SESSION['curuser']['groupid']);
    while ($callback->fetchInto($mycallback)) {
        if ($mycallback['dst'] != $mycallback['src']) {
            // legB connected
            $_SESSION['callbacks'][$mycallback['dst'] . $mycallback['src']] = array('legA' => $mycallback['src'], 'legB' => $mycallback['dst'], 'start' => 1, 'creditLimit' => $mycallback['creditlimit']);
        }
    }
    //print_r($_SESSION['callbacks']);
    // get callback from session
    foreach ($_SESSION['callbacks'] as $callback) {
        if ($callback['creditlimit'] > 0) {
            $objResponse->addScript('addDiv("divMainContainer","local/' . $callback['legB'] . '","' . $callback['creditlimit'] . '","","","' . $config['customers']['enable'] . '")');
        } else {
            $objResponse->addScript('addDiv("divMainContainer","local/' . $callback['legB'] . '","","","","' . $config['customers']['enable'] . '")');
        }
        $objResponse->addScript('xajax_addUnbilled("' . $callback['legB'] . '","' . $callback['legA'] . '");');
    }
    //print_r($_SESSION['callbacks']);
    //$objResponse->addAssign("divNav","innerHTML",common::generateManageNav($skin));
    //$objResponse->addAssign("divCopyright","innerHTML",common::generateCopyright($skin));
    $objResponse->addScript("checkHangup()");
    $objResponse->addScript("xajax_setGroupBalance();");
    $objResponse->addAssign("creditlimittype", "value", $config['system']['creditlimittype']);
    return $objResponse;
}
Пример #2
0
function init($curpeer)
{
    global $locate, $config;
    $objResponse = new xajaxResponse();
    $peers = array();
    if ($_SESSION['curuser']['usertype'] == 'admin') {
        // set all reseller first
        $reseller = astercrm::getAll('resellergroup');
        $objResponse->addScript("addOption('resellerid','" . "0" . "','" . $locate->Translate("All") . "');");
        while ($reseller->fetchInto($row)) {
            if ($config['synchronize']['display_synchron_server']) {
                $row['resellername'] = astercrm::getSynchronDisplay($row['id'], $row['resellername']);
            }
            $objResponse->addScript("addOption('resellerid','" . $row['id'] . "','" . $row['resellername'] . "');");
        }
    } else {
        if ($_SESSION['curuser']['usertype'] == 'reseller') {
            // set one reseller
            $objResponse->addScript("addOption('resellerid','" . $_SESSION['curuser']['resellerid'] . "','" . "" . "');");
            // set all group
            $group = astercrm::getAll('accountgroup', 'resellerid', $_SESSION['curuser']['resellerid']);
            $objResponse->addScript("addOption('groupid','" . "0" . "','" . "All" . "');");
            while ($group->fetchInto($row)) {
                if ($config['synchronize']['display_synchron_server']) {
                    $row['groupname'] = astercrm::getSynchronDisplay($row['id'], $row['groupname']);
                }
                $objResponse->addScript("addOption('groupid','" . $row['id'] . "','" . $row['groupname'] . "');");
            }
            // get limit status and creditlimit
            $reseller = astercc::readRecord("resellergroup", "id", $_SESSION['curuser']['resellerid']);
            if ($reseller) {
                if ($reseller['limittype'] == "") {
                    $html = $locate->Translate("Limit Type") . ":" . $locate->Translate("No limit");
                } else {
                    $html = $locate->Translate("Limit Type") . $accountgroup['limittype'] . "(" . $accountgroup['creditlimit'] . ")";
                }
                $html = $locate->Translate("Limit Type") . $reseller['limittype'] . "(" . $reseller['creditlimit'] . ")";
                $objResponse->addAssign("divLimitStatus", "innerHTML", $html);
            }
        } else {
            $objResponse->addScript("addOption('resellerid','" . $_SESSION['curuser']['resellerid'] . "','" . "" . "');");
            $objResponse->addScript("addOption('groupid','" . $_SESSION['curuser']['groupid'] . "','" . "" . "');");
            $clid = astercrm::getAll('clid', 'groupid', $_SESSION['curuser']['groupid']);
            $objResponse->addScript("addOption('sltBooth','" . "0" . "','" . $locate->Translate("All") . "');");
            while ($clid->fetchInto($row)) {
                if ($config['synchronize']['display_synchron_server']) {
                    $clidDisplay = astercrm::getSynchronDisplay($row['id'], $row['clid']);
                }
                if ($curpeer == $row['clid']) {
                    $objResponse->addScript("addOption('sltBooth','" . $row['clid'] . "','" . $clidDisplay . "',true);");
                } else {
                    $objResponse->addScript("addOption('sltBooth','" . $row['clid'] . "','" . $clidDisplay . "');");
                }
            }
            $objResponse->addScript("addOption('sltBooth','-1','" . $locate->Translate("Callback") . "');");
            // get limit status and creditlimit
            $accountgroup = astercc::readRecord("accountgroup", "id", $_SESSION['curuser']['groupid']);
            if ($accountgroup) {
                if ($accountgroup['limittype'] == "") {
                    $html = $locate->Translate("Limit Type") . ":" . $locate->Translate("No limit");
                } else {
                    $html = $locate->Translate("Limit Type") . $accountgroup['limittype'] . "(" . $accountgroup['creditlimit'] . ")";
                }
                $objResponse->addAssign("divLimitStatus", "innerHTML", $html);
            }
        }
    }
    //去除了控制chekcout按钮是否显示的代码//20110303 donnie
    //if($config['system']['useHistoryCdr'] == 1){
    //$objResponse->addScript("document.getElementById('btnCheckOut').style.display='none';");
    //}else if($config['system']['useHistoryCdr'] == 0){
    //$objResponse->addScript("document.getElementById('btnCheckOut').style.display='block';");
    //}
    $objResponse->addAssign("divNav", "innerHTML", common::generateManageNav($skin));
    $objResponse->addAssign("divCopyright", "innerHTML", common::generateCopyright($skin));
    return $objResponse;
}