[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Vtiger/actions/ -> RelationAjax.php (source)

   1  <?php
   2  /*+***********************************************************************************
   3   * The contents of this file are subject to the vtiger CRM Public License Version 1.0
   4   * ("License"); You may not use this file except in compliance with the License
   5   * The Original Code is:  vtiger CRM Open Source
   6   * The Initial Developer of the Original Code is vtiger.
   7   * Portions created by vtiger are Copyright (C) vtiger.
   8   * All Rights Reserved.
   9   *************************************************************************************/
  10  
  11  class Vtiger_RelationAjax_Action extends Vtiger_Action_Controller {
  12  	function __construct() {
  13          parent::__construct();
  14          $this->exposeMethod('addRelation');
  15          $this->exposeMethod('deleteRelation');
  16          $this->exposeMethod('getRelatedListPageCount');
  17      }
  18  
  19  	function checkPermission(Vtiger_Request $request) { }
  20  
  21  	function preProcess(Vtiger_Request $request) {
  22          return true;
  23      }
  24  
  25  	function postProcess(Vtiger_Request $request) {
  26          return true;
  27      }
  28  
  29  	function process(Vtiger_Request $request) {
  30          $mode = $request->get('mode');
  31          if(!empty($mode)) {
  32              $this->invokeExposedMethod($mode, $request);
  33              return;
  34          }
  35      }
  36  
  37      /*
  38       * Function to add relation for specified source record id and related record id list
  39       * @param <array> $request
  40       *        keys                    Content
  41       *        src_module                source module name
  42       *        src_record                source record id
  43       *        related_module            related module name
  44       *        related_record_list        json encoded of list of related record ids
  45       */
  46  	function addRelation($request) {
  47          $sourceModule = $request->getModule();
  48          $sourceRecordId = $request->get('src_record');
  49  
  50          $relatedModule = $request->get('related_module');
  51          $relatedRecordIdList = $request->get('related_record_list');
  52  
  53          $sourceModuleModel = Vtiger_Module_Model::getInstance($sourceModule);
  54          $relatedModuleModel = Vtiger_Module_Model::getInstance($relatedModule);
  55          $relationModel = Vtiger_Relation_Model::getInstance($sourceModuleModel, $relatedModuleModel);
  56          foreach($relatedRecordIdList as $relatedRecordId) {
  57              $relationModel->addRelation($sourceRecordId,$relatedRecordId);
  58          }
  59      }
  60  
  61      /**
  62       * Function to delete the relation for specified source record id and related record id list
  63       * @param <array> $request
  64       *        keys                    Content
  65       *        src_module                source module name
  66       *        src_record                source record id
  67       *        related_module            related module name
  68       *        related_record_list        json encoded of list of related record ids
  69       */
  70  	function deleteRelation($request) {
  71          $sourceModule = $request->getModule();
  72          $sourceRecordId = $request->get('src_record');
  73  
  74          $relatedModule = $request->get('related_module');
  75          $relatedRecordIdList = $request->get('related_record_list');
  76  
  77          //Setting related module as current module to delete the relation
  78          vglobal('currentModule', $relatedModule);
  79  
  80          $sourceModuleModel = Vtiger_Module_Model::getInstance($sourceModule);
  81          $relatedModuleModel = Vtiger_Module_Model::getInstance($relatedModule);
  82          $relationModel = Vtiger_Relation_Model::getInstance($sourceModuleModel, $relatedModuleModel);
  83          foreach($relatedRecordIdList as $relatedRecordId) {
  84              $response = $relationModel->deleteRelation($sourceRecordId,$relatedRecordId);
  85          }
  86          echo $response;
  87      }
  88      
  89      /**
  90       * Function to get the page count for reltedlist
  91       * @return total number of pages
  92       */
  93  	function getRelatedListPageCount(Vtiger_Request $request){
  94          $moduleName = $request->getModule();
  95          $relatedModuleName = $request->get('relatedModule');
  96          $parentId = $request->get('record');
  97          $label = $request->get('tab_label');
  98          $pagingModel = new Vtiger_Paging_Model();
  99          $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentId, $moduleName);
 100          $relationListView = Vtiger_RelationListView_Model::getInstance($parentRecordModel, $relatedModuleName, $label);
 101          $totalCount = $relationListView->getRelatedEntriesCount();
 102          $pageLimit = $pagingModel->getPageLimit();
 103          $pageCount = ceil((int) $totalCount / (int) $pageLimit);
 104  
 105          if($pageCount == 0){
 106              $pageCount = 1;
 107          }
 108          $result = array();
 109          $result['numberOfRecords'] = $totalCount;
 110          $result['page'] = $pageCount;
 111          $response = new Vtiger_Response();
 112          $response->setResult($result);
 113          $response->emit();
 114      }
 115          
 116          public function validateRequest(Vtiger_Request $request) { 
 117              $request->validateWriteAccess(); 
 118          } 
 119  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1