Ejemplo n.º 1
0
Archivo: Link.php Proyecto: cwcw/cms
 /**
  *
  */
 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);
 }
Ejemplo n.º 2
0
 /**
  * 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);
     }
 }
Ejemplo n.º 3
0
 /**
  * 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);
     }
 }
Ejemplo n.º 4
0
 /**
  * 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();
     }
 }
Ejemplo n.º 5
0
 /**
  * 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);
     }
 }
Ejemplo n.º 6
0
 /**
  * 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));
     }
 }
Ejemplo n.º 7
0
 /**
  * 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);
     }
 }
Ejemplo n.º 8
0
 /**
  * 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');
     }
 }
Ejemplo n.º 9
0
 /**
  * 
  */
 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');
     }
 }
Ejemplo n.º 10
0
 /**
  *
  */
 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);
 }
Ejemplo n.º 11
0
 /**
  *
  */
 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}");
 }
Ejemplo n.º 12
0
 /**
  * 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;
     }
 }
Ejemplo n.º 13
0
 /**
  *
  */
 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;
 }
Ejemplo n.º 14
0
 /**
  * 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();
     }
 }
Ejemplo n.º 15
0
 /**
  * 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;
     }
 }
Ejemplo n.º 16
0
 /**
  * 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);
     }
 }