[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |