/** * */ public function getParameters(Zend_Controller_Request_Abstract $request) { $nodeId = $request->getParam('NodeId'); Streamwide_Web_Log::debug("get " . $this->_type . " node parameters by node id {$nodeId}"); $node = Streamwide_Web_Model::call('Node.GetById', array($nodeId)); $nodeParameter = Streamwide_Web_Model::call('Link.GetNodeParameter', array($nodeId)); return array('Node' => $node, 'NodeParameter' => $nodeParameter); }
/** * Acl, error while the access deny * For Role[visitor] (@see SwIRS_Web_Request::isVisitor()), redirect to homepage * Otherwise, displayed the 403 Error page * * @return void */ public function aclAction() { $this->getHelper('Layout')->disableLayout(); Streamwide_Web_Log::debug('acl rejected'); $request = $this->getRequest(); if (SwIRS_Web_Request::isVisitor($request)) { Streamwide_Web_Log::debug('redirect the role[visitor] to homepage'); $this->getHelper('ViewRenderer')->setNoRender(); $this->getHelper('Redirector')->gotoSimpleAndExit('index', 'index'); } else { // 403 error -- HTTP Error 403, access forbidden $this->getResponse()->setHttpResponseCode(403); } }
/** * delete a originGroup * Actual delete * ------------- * <request> * Act * CurrentPage * ItemsPerPage * * OriginGroupIds = array($OriginGroupId) * OriginGroupLabels = array($OriginGroupLabel) * <view-assign> * * DeletedOriginGroups * Pagination = array ( * CurrentPage => * ItemsPerPage => * ) * Modal window * ------------- * <request> * OriginGroupIds = array($OriginGroupId) * OriginGroupLabels = array($OriginGroupLabel) * * <view-assign> * DeletedOriginGroups */ public function deleteAction() { $request = $this->getRequest(); $act = $request->getParam('Act'); $originGroupIds = $request->getParam('OriginGroupIds'); $originGroupLabels = $request->getParam('OriginGroupLabels'); $deleted = implode(',', $originGroupLabels); if ('delete' == $act) { $pagination['CurrentPage'] = $request->getParam('CurrentPage', SwIRS_Web_Request::CURRENT_PAGE); $pagination['ItemsPerPage'] = $request->getParam('ItemsPerPage', SwIRS_Web_Request::ITEMS_PER_PAGE); foreach ($originGroupIds as $originGroupId) { $result = Streamwide_Web_Model::call('Origin.RemoveGroup', array($originGroupId)); } Streamwide_Web_Log::debug("deleted originGroup {$deleted}"); $this->view->assign(array('DeletedOriginGroups' => $deleted, 'Pagination' => $pagination)); $this->getHelper('viewRenderer')->direct('delete-ack'); } else { $this->view->assign('DeletedOriginGroups', $deleted); } }
/** * upload file * <request> * <view-assign> * FileKey */ public function uploadAction() { $this->view->layout()->disableLayout(); $request = $this->getRequest(); $act = $request->getParam('Act'); if ('upload' == $act) { if (isset($_FILES['Filedata'])) { Streamwide_Web_Log::debug("upload file " . $_FILES['Filedata']['name']); // get the upload file $fileName = $_FILES['Filedata']['name']; $fileContent = file_get_contents($_FILES['Filedata']['tmp_name']); $fileKey = 'F-' . time(); $_SESSION['PromptFile'] = array($fileKey => array('Name' => $fileName, 'Content' => base64_encode($fileContent))); $this->view->assign('FileKey', $fileKey); $this->getHelper('viewRenderer')->direct('upload-ack'); } else { // Do nothing } } else { Streamwide_Web_Log::debug('upload prompt madal window'); $this->getHelper('viewRenderer')->setNoRender(); } }
/** * delete a report * Actual delete * ------------- * <request> * Act * CurrentPage * ItemsPerPage * ReportIds = array($ReportId) * ReportNames = array($ReportName) * CustomerAccountId * * <view-assign> * DeletedReports * CustomerAccountId * * Pagination = array ( * CurrentPage => * ItemsPerPage => * ) * Modal window * ------------- * <request> * ReportIds = array($ReportId) * ReportNames = array($ReportName) * * <view-assign> * DeletedReports */ public function deleteAction() { $request = $this->getRequest(); $act = $request->getParam('Act'); $customerAccountId = $request->getParam('CustomerAccountId'); $reportIds = $request->getParam('ReportIds'); $reportNames = $request->getParam('ReportNames'); $deletedReports = implode(',', $ReportNames); if ('delete' == $act) { $pagination['CurrentPage'] = $request->getParam('CurrentPage', SwIRS_Web_Request::CURRENT_PAGE); $pagination['ItemsPerPage'] = $request->getParam('ItemsPerPage', SwIRS_Web_Request::ITEMS_PER_PAGE); foreach ($reportIds as $reportId) { Streamwide_Web_Model::call('Report.Delete', array($reportId)); } Streamwide_Web_Log::debug("deleted report {$deletedReports}"); $this->view->assign(array('DeletedReports' => $deletedReports, 'CustomerAccountId' => $customerAccountId, 'Pagination' => $pagination)); $this->getHelper('viewRenderer')->direct('delete-ack'); } else { Streamwide_Web_Log::debug('delete report modal window'); $this->view->assign('DeletedReports', $deletedReports); } }
/** * Rendering the routing tree building tool * * -------------- //Actual Page * <request> * 'TreeId' //numberic * <view-assign> * 'NodeTypes' //struct $id => $label * 'CurrentTreeId' //numberic * 'CurrentTreeInfo' //struct * 'RootTreeInfo' //struct * 'SubTreeLists' //array(struct) * 'TreeNodes' //struct $nodeId => $nodeInfo * * @return void */ public function builderAction() { // set another layout for builder $this->getHelper('Layout')->setLayout('tree'); $request = $this->getRequest(); $treeId = $request->getParam('TreeId'); $nodeId = $request->getParam('NodeId'); if ($request->getParam('IsBuilding')) { if (is_null($nodeId) || in_array($nodeId, self::$_renderedNodeIds)) { Streamwide_Web_Log::debug('Rendering Stoped because NextNodeId is null or rendered.'); $this->getHelper('ViewRenderer')->setNoRender(); } else { Streamwide_Web_Log::debug('Rendering Tree Node on NodeId: ' . $nodeId); $this->view->assign(array('CurrentNodeId' => $nodeId, 'RenderedNodeIds' => self::$_renderedNodeIds)); $this->getHelper('ViewRenderer')->direct('building'); self::$_renderedNodeIds[] = $nodeId; } } else { Streamwide_Web_Log::debug('Rendering Routing Tree on TreeId: ' . $treeId); $nodeTypes = SwIRS_Web_Node_Abstract::getNodeTypes(); $currentTreeInfo = Streamwide_Web_Model::call('Tree.GetById', array($treeId)); $rootTreeId = $currentTreeInfo['ParentTreeId'] ? $currentTreeInfo['ParentTreeId'] : $treeId; $subTreeLists = Streamwide_Web_Model::call('Tree.GetSubTrees', array($rootTreeId)); $rootTreeInfo = $currentTreeInfo; if ($rootTreeId != $treeId) { $rootTreeInfo = Streamwide_Web_Model::call('Tree.GetById', array($rootTreeId)); } $treeNodes = Streamwide_Web_Model::call('Tree.GetNodes', array($treeId)); $treeNodes = $this->_formatTreeNodes($treeNodes); $this->view->assign(array('NodeTypes' => $nodeTypes, 'CurrentTreeId' => $treeId, 'CurrentTreeInfo' => $currentTreeInfo, 'RootTreeInfo' => $rootTreeInfo, 'SubTreeLists' => $subTreeLists, 'TreeNodes' => $treeNodes)); } }
/** * live statistic for agentgroup * Actual Statistic * -------------- * <request> * Act * AgentGroupId * AgentNamePart * CurrentPage * ItemsPerPage * * <view-assign> * Statistics = array( * array( * Name * UserId * OnlineStatus * CallsTaken * AvilabilityStatus * Timestamp * ) * ) * Pagination = array( * CurrentPage * ItemsPerPage * ItemsTotal * ) * * Modal Window * -------------- * <request> * AgentId * <view-assign> * AgentGroups = array( * array ( * AgentGroupId * AgentGroupName * ) * ) * */ public function statisticsAction() { $request = $this->getRequest(); $act = $request->getParam('Act'); if ('statistics' == $act) { $agentGroupId = $request->getParam('AgentGroupId'); Streamwide_Web_Log::debug("list agent group {$agentGroupId} statistics"); $pagination['CurrentPage'] = $request->getParam('CurrentPage', SwIRS_Web_Request::CURRENT_PAGE); $pagination['ItemsPerPage'] = $request->getParam('ItemsPerPage', SwIRS_Web_Request::ITEMS_PER_PAGE); $pagination['ItemsTotal'] = 0; $agentNamePart = $request->getParam('AgentNamePart', ''); $agentNamePart = trim($agentNamePart); $statistics = array(); if (strlen($agentNamePart) > 0) { $statistics = Streamwide_Web_Model::call('AgentGroup.GetStatisticsByAgentNamePart', array($agentGroupId, $agentNamePart, $pagination['CurrentPage'], $pagination['ItemsPerPage'])); $pagination['ItemsTotal'] = Streamwide_Web_Model::call('AgentGroup.CountAgents', array($agentGroupId, $agentNamePart)); } else { $statistics = Streamwide_Web_Model::call('AgentGroup.GetStatistics', array($agentGroupId, $pagination['CurrentPage'], $pagination['ItemsPerPage'])); $pagination['ItemsTotal'] = Streamwide_Web_Model::call('AgentGroup.CountAgents', array($agentGroupId)); } $this->view->assign(array('Statistics' => $statistics, 'Pagination' => $pagination)); $this->getHelper('viewRenderer')->direct('statistics-ack'); } else { $agentId = $request->getParam('AgentId'); Streamwide_Web_Log::debug("list agent groups whose supervisor is {$agentId}"); $agentGroups = Streamwide_Web_Model::call('AgentGroup.GetGroupsBySupervisor', array($agentId)); $this->view->assign('AgentGroups', $agentGroups); } }
/** * Reset, handling the operator reset their password * * --------------------//Actual Reset * <request> * 'Username' //string * <view-assign> * 'Result' //string 'OK' while succeed * * @return void */ public function resetAction() { $this->getHelper('ViewRenderer')->setNoRender(); $this->getHelper('Layout')->disableLayout(); $request = $this->getRequest(); if ($request->isPost()) { $username = $request->getParam("Username"); Streamwide_Web_Log::debug("reset user {$username}"); $result = Streamwide_Web_Model::call('User.Reset', array($username)); $this->view->assign('Result', $result); $this->getHelper('viewRenderer')->render('reset-ack'); } }
/** * */ public function exportAction() { $this->view->layout()->disableLayout(); $this->getHelper('viewRenderer')->setNoRender(); $request = $this->getRequest(); $customerAccountId = $request->getParam('CustomerAccountId'); $act = $request->getParam('Act'); if ('export' == $act) { Streamwide_Web_Log::debug("export {$customerAccountId} admin file"); $fileContent = Streamwide_Web_Model::call('User.Export', array($customerAccountId)); $fileContent = base64_decode($fileContent); $response = $this->getResponse(); $response->clearAllHeaders(); $response->clearBody(); $fileName = 'F-' . time(); $response->setHeader('Content-Type', 'application/octet-stream')->setHeader('Content-Disposition', "attachment;filename={$fileName}.csv")->setHeader('Content-Length', strlen($fileContent)); $response->setBody($fileContent); } else { Streamwide_Web_Log::debug('export admin file'); } }
/** * */ public function getParameters(Zend_Controller_Request_Abstract $request) { $nodeId = $request->getParam('NodeId'); Streamwide_Web_Log::debug("get " . $this->_type . " node parameters by node id {$nodeId}"); $node = Streamwide_Web_Model::call('Node.GetById', array($nodeId)); $nodeParameter = Streamwide_Web_Model::call('Outgoing.GetNodeParameter', array($nodeId)); $failoverContacts = Streamwide_Web_Model::call('Outgoing.GetFailoverContacts', array($nodeParameter['NodeParamOutgoingId'])); return array('Node' => $node, 'NodeParameter' => $nodeParameter, 'FailoverContacts' => $failoverContacts); }
/** * */ public function nextAction() { $request = $this->getRequest(); $nodeOutputId = $request->getParam('NodeOutputId'); $nextNodeId = $request->getParam('NextNodeId'); $nodeOutput = array('NodeOutputId' => $nodeOutputId, 'NextNodeId' => $nextNodeId); $result = Streamwide_Web_Model::call('NodeOutput.Update', array($nodeOutput)); Streamwide_Web_Log::debug("assign node {$nextNodeId} as the next of the node output {$nodeOutputId}"); }
/** * frequency management */ public function frequencyAction() { $request = $this->_request; $periodFrequencyId = $request->getParam('PeriodFrequencyId'); $periodId = $request->getParam('PeriodId'); $startSecond = $request->getParam('StartSecond'); $endSecond = $request->getParam('EndSecond'); $act = $request->getParam('Act'); switch ($act) { case 'add': $periodFrequencyId = Streamwide_Web_Model::call('Calendar.AddPeriodFrequency', array(array('PeriodId' => $periodId, 'StartSecond' => $startSecond, 'EndSecond' => $endSecond))); Streamwide_Web_Log::debug("period frequency {$periodFrequencyId} is created"); $this->view->assign(array('PeriodFrequencyId' => $periodFrequencyId)); $this->getHelper('viewRenderer')->direct('frequency-add-ack'); break; case 'update': Streamwide_Web_Log::debug("update a period frequency {$periodFrequencyId} actual"); $result = Streamwide_Web_Model::call('Calendar.UpdatePeriodFrequency', array(array('PeriodFrequencyId' => $periodFrequencyId, 'StartSecond' => $startSecond, 'EndSecond' => $endSecond))); $this->view->assign('Result', $result); $this->getHelper('viewRenderer')->direct('frequency-update-ack'); break; case 'delete': $result = Streamwide_Web_Model::call('Calendar.DeletePeriodFrequency', array($periodFrequencyId)); Streamwide_Web_Log::debug("period frequency {$periodFrequencyId} is deleted"); $this->view->assign('Result', $result); $this->getHelper('viewRenderer')->direct('frequency-delete-ack'); break; default: break; } }
/** * */ public function deleteOutput($nodeOutput) { Streamwide_Web_Log::debug("node output " . $nodeOutput['NodeOutputId'] . " is deleted"); $nodeOutputId = $nodeOutput['NodeOutputId']; $result = Streamwide_Web_Model::call('NodeOutput.Delete', array($nodeOutputId)); return $reslut; }
/** * import blacklistNumber */ public function importAction() { $this->view->layout()->disableLayout(); $request = $this->getRequest(); $act = $request->getParam('Act'); $customerUserId = $request->getParam('CustomerUserId'); $customerAccountId = $request->getParam('CustomerAccountId'); if ('import' == $act) { if (isset($_FILES['Filedata'])) { Streamwide_Web_Log::debug("import blacklist file" . $_FILES['Filedata']['name']); $fileContent = file_get_contents($_FILES['Filedata']['tmp_name']); $importJobId = Streamwide_Web_Model::call('Blacklist.Import', array($customerUserId, $customerAccountId, base64_encode($fileContent))); $this->view->assign(array('ImportJobId' => $importJobId, 'CustomerUserId' => $customerUserId, 'CustomerAccountId' => $customerAccountId)); $this->getHelper('viewRenderer')->direct('import-ack'); } else { //do nothing } } else { Streamwide_Web_Log::debug('import blacklist file'); $this->getHelper('viewRenderer')->setNoRender(); } }
/** * allocated tree management */ public function allocatedtreeAction() { $request = $this->getRequest(); $premiumNumberGroupId = $request->getParam('PremiumNumberGroupId'); $routingPlanId = $request->getParam('RoutingPlanId'); $treeId = $request->getParam('TreeId'); $startDatetime = $request->getParam('StartDatetime'); $endDatetime = $request->getParam('EndDatetime'); $act = $request->getParam('Act'); switch ($act) { case 'add': $routingPlanId = Streamwide_Web_Model::call('PremiumNumberGroup.AddAllocatedTree', array(array('PremiumNumberGroupId' => $premiumNumberGroupId, 'TreeId' => $treeId, 'StartDatetime' => $startDatetime, 'EndDatetime' => $endDatetime))); Streamwide_Web_Log::debug("routing plan {$routingPlanId} added"); $this->view->assign(array('RoutingPlanId' => $routingPlanId)); $this->getHelper('viewRenderer')->direct('allocated-tree-add-ack'); break; case 'update': $result = Streamwide_Web_Model::call('PremiumNumberGroup.UpdateAllocatedTree', array(array('RoutingPlanId' => $routingPlanId, 'TreeId' => $treeId, 'StartSecond' => $startSecond, 'EndSecond' => $endSecond))); Streamwide_Web_Log::debug("routing plan {$routingPlanId} updated"); $this->view->assign(array('Result' => $result)); $this->getHelper('viewRenderer')->direct('allocated-tree-update-ack'); break; case 'delete': $result = Streamwide_Web_Model::call('PremiumNumberGroup.RemoveAllocatedTree', array($routingPlanId)); Streamwide_Web_Log::debug("routing plan {$routingPlanId} deleted"); $this->view->assign(array('Result' => $result)); $this->getHelper('viewRenderer')->direct('allocated-tree-delete-ack'); break; default: break; } }
/** * delete a premium number * Actual delete * ------------- * <request> * Act * CurrentPage * ItemsPerPage * * PremiumNumberIds = array($PremiumNumberId) * PremiumNumberUis = array($PremiumNumberUi) * * <view-assign> * DeletedPremiumNumberUis * Pagination = array ( * CurrentPage => * ItemsPerPage => * ) * * Modal window * ------------- * <request> * PremiumNumberIds = array($PremiumNumberId) * PremiumNumberUis = array($PremiumNumberUi) * * <view-assign> * DeletedPremiumNumberUis */ public function deleteAction() { $request = $this->getRequest(); $act = $request->getParam('Act'); $premiumNumberIds = $request->getParam('PremiumNumberIds'); $premiumNumberUis = $request->getParam('PremiumNumberUis'); $deleted = implode(',', $premiumNumberUis); if ('delete' == $act) { $pagination['CurrentPage'] = $request->getParam('CurrentPage', SwIRS_Web_Request::CURRENT_PAGE); $pagination['ItemsPerPage'] = $request->getParam('ItemsPerPage', SwIRS_Web_Request::ITEMS_PER_PAGE); foreach ($premiumNumberIds as $premiumNumberId) { $result = Streamwide_Web_Model::call('PremiumNumber.Delete', array($premiumNumberId)); } Streamwide_Web_Log::debug("deleted premium number {$deleted}"); $this->view->assign(array('DeletedPremiumNumberUis' => $deleted, 'CustomerAccountId' => $request->getParam('CustomerAccountId'), 'Pagination' => $pagination)); $this->getHelper('viewRenderer')->direct('delete-ack'); } else { $this->view->assign('DeletedPremiumNumberUis', $deleted); } }