[ 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.1 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 Reports_List_View extends Vtiger_Index_View { 12 13 protected $listViewHeaders = false; 14 protected $listViewEntries = false; 15 protected $listViewCount = false; 16 17 public function checkPermission(Vtiger_Request $request) { 18 $moduleName = $request->getModule(); 19 $moduleModel = Reports_Module_Model::getInstance($moduleName); 20 21 $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); 22 if(!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) { 23 throw new AppException('LBL_PERMISSION_DENIED'); 24 } 25 } 26 27 28 29 function preProcess(Vtiger_Request $request, $display=true) { 30 parent::preProcess($request, false); 31 32 $viewer = $this->getViewer ($request); 33 $moduleName = $request->getModule(); 34 $moduleModel = Vtiger_Module_Model::getInstance($moduleName); 35 36 $folders = $moduleModel->getFolders(); 37 $listViewModel = new Reports_ListView_Model(); 38 $listViewModel->set('module', $moduleModel); 39 40 $folderId = $request->get('viewname'); 41 if(empty($folderId) || $folderId == 'undefined'){ 42 $folderId = 'All'; 43 } 44 $sortBy = $request->get('sortorder'); 45 $orderBy=$request->get('orderby'); 46 47 $listViewModel->set('folderid', $folderId); 48 $listViewModel->set('orderby',$orderBy); 49 $listViewModel->set('sortorder',$sortBy); 50 51 $linkModels = $listViewModel->getListViewLinks(); 52 $pageNumber = $request->get('page'); 53 $listViewMassActionModels = $listViewModel->getListViewMassActions(); 54 55 if(empty ($pageNumber)){ 56 $pageNumber = '1'; 57 } 58 $pagingModel = new Vtiger_Paging_Model(); 59 $pagingModel->set('page', $pageNumber); 60 $viewer->assign('PAGING_MODEL', $pagingModel); 61 62 if(!$this->listViewHeaders){ 63 $this->listViewHeaders = $listViewModel->getListViewHeaders(); 64 } 65 if(!$this->listViewEntries){ 66 $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); 67 } 68 69 $noOfEntries = count($this->listViewEntries); 70 71 $viewer->assign('LISTVIEW_LINKS', $linkModels); 72 $viewer->assign('FOLDERS', $folders); 73 $viewer->assign('MODULE', $moduleName); 74 $viewer->assign('VIEWNAME',$folderId); 75 $viewer->assign('PAGE_NUMBER',$pageNumber); 76 $viewer->assign('LISTVIEW_MASSACTIONS', $listViewMassActionModels); 77 $viewer->assign('LISTVIEW_ENTRIES_COUNT',$noOfEntries); 78 79 if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) { 80 if(!$this->listViewCount){ 81 $this->listViewCount = $listViewModel->getListViewCount(); 82 } 83 $totalCount = $this->listViewCount; 84 $pageLimit = $pagingModel->getPageLimit(); 85 $pageCount = ceil((int) $totalCount / (int) $pageLimit); 86 87 if($pageCount == 0){ 88 $pageCount = 1; 89 } 90 $viewer->assign('PAGE_COUNT', $pageCount); 91 $viewer->assign('LISTVIEW_COUNT', $totalCount); 92 } 93 94 if($display) { 95 $this->preProcessDisplay($request); 96 } 97 } 98 99 function preProcessTplName(Vtiger_Request $request) { 100 return 'ListViewPreProcess.tpl'; 101 } 102 function process(Vtiger_Request $request) { 103 $viewer = $this->getViewer($request); 104 $moduleName = $request->getModule(); 105 $moduleModel = Vtiger_Module_Model::getInstance($moduleName); 106 $folders = $moduleModel->getFolders(); 107 $folderId = $request->get('viewname'); 108 if(empty($folderId) || $folderId == 'undefined'){ 109 $folderId = 'All'; 110 } 111 $pageNumber = $request->get('page'); 112 $orderBy = $request->get('orderby'); 113 114 $sortOrder = $request->get('sortorder'); 115 if($sortOrder == "ASC"){ 116 $nextSortOrder = "DESC"; 117 $sortImage = "icon-chevron-down"; 118 }else{ 119 $nextSortOrder = "ASC"; 120 $sortImage = "icon-chevron-up"; 121 } 122 123 $listViewModel = new Reports_ListView_Model(); 124 $listViewModel->set('module', $moduleModel); 125 $listViewModel->set('folderid', $folderId); 126 127 if(!empty($orderBy)) { 128 $listViewModel->set('orderby', $orderBy); 129 $listViewModel->set('sortorder', $sortOrder); 130 } 131 $listViewMassActionModels = $listViewModel->getListViewMassActions(); 132 if(empty ($pageNumber)){ 133 $pageNumber = '1'; 134 } 135 $viewer->assign('MODULE', $moduleName); 136 $pagingModel = new Vtiger_Paging_Model(); 137 $pagingModel->set('page', $pageNumber); 138 $viewer->assign('PAGING_MODEL', $pagingModel); 139 140 $viewer->assign('LISTVIEW_MASSACTIONS', $listViewMassActionModels); 141 142 if(!$this->listViewHeaders){ 143 $this->listViewHeaders = $listViewModel->getListViewHeaders(); 144 } 145 if($folderId == 'All'){ 146 $this->listViewHeaders['foldername']= 'LBL_FOLDER_NAME'; 147 } 148 149 if(!$this->listViewEntries){ 150 $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); 151 } 152 $moduleModel = Vtiger_Module_Model::getInstance($moduleName); 153 154 $noOfEntries = count($this->listViewEntries); 155 156 $viewer->assign('PAGE_NUMBER',$pageNumber); 157 $viewer->assign('LISTVIEW_ENTRIES_COUNT',$noOfEntries); 158 $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); 159 $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); 160 $viewer->assign('MODULE_MODEL', $moduleModel); 161 $viewer->assign('VIEWNAME',$folderId); 162 163 $viewer->assign('ORDER_BY',$orderBy); 164 $viewer->assign('SORT_ORDER',$sortOrder); 165 $viewer->assign('NEXT_SORT_ORDER',$nextSortOrder); 166 $viewer->assign('SORT_IMAGE',$sortImage); 167 $viewer->assign('COLUMN_NAME',$orderBy); 168 $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel()); 169 170 if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) { 171 if(!$this->listViewCount){ 172 $this->listViewCount = $listViewModel->getListViewCount(); 173 } 174 $totalCount = $this->listViewCount; 175 $pageLimit = $pagingModel->getPageLimit(); 176 $pageCount = ceil((int) $totalCount / (int) $pageLimit); 177 178 if($pageCount == 0){ 179 $pageCount = 1; 180 } 181 $viewer->assign('PAGE_COUNT', $pageCount); 182 $viewer->assign('LISTVIEW_COUNT', $totalCount); 183 } 184 185 $viewer->view('ListViewContents.tpl', $moduleName); 186 } 187 188 function postProcess(Vtiger_Request $request) { 189 $viewer = $this->getViewer ($request); 190 $moduleName = $request->getModule(); 191 192 $viewer->view('ListViewPostProcess.tpl', $moduleName); 193 parent::postProcess($request); 194 } 195 196 /** 197 * Function to get the list of Script models to be included 198 * @param Vtiger_Request $request 199 * @return <Array> - List of Vtiger_JsScript_Model instances 200 */ 201 function getHeaderScripts(Vtiger_Request $request) { 202 $headerScriptInstances = parent::getHeaderScripts($request); 203 $moduleName = $request->getModule(); 204 205 $jsFileNames = array( 206 'modules.Vtiger.resources.List', 207 "modules.$moduleName.resources.List", 208 ); 209 210 $jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames); 211 $headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances); 212 return $headerScriptInstances; 213 } 214 215 /** 216 * Function returns the number of records for the current filter 217 * @param Vtiger_Request $request 218 */ 219 function getRecordsCount(Vtiger_Request $request) { 220 $moduleName = $request->getModule(); 221 $cvId = $request->get('viewname'); 222 $count = $this->getListViewCount($request); 223 224 $result = array(); 225 $result['module'] = $moduleName; 226 $result['viewname'] = $cvId; 227 $result['count'] = $count; 228 229 $response = new Vtiger_Response(); 230 $response->setEmitType(Vtiger_Response::$EMIT_JSON); 231 $response->setResult($result); 232 $response->emit(); 233 } 234 235 /** 236 * Function to get listView count 237 * @param Vtiger_Request $request 238 */ 239 function getListViewCount(Vtiger_Request $request){ 240 $folderId = $request->get('viewname'); 241 if(empty($folderId)){ 242 $folderId = 'All'; 243 } 244 $listViewModel = new Reports_ListView_Model(); 245 $listViewModel->set('folderid', $folderId); 246 $count = $listViewModel->getListViewCount(); 247 248 return $count; 249 } 250 251 252 253 /** 254 * Function to get the page count for list 255 * @return total number of pages 256 */ 257 function getPageCount(Vtiger_Request $request){ 258 $listViewCount = $this->getListViewCount($request); 259 $pagingModel = new Vtiger_Paging_Model(); 260 $pageLimit = $pagingModel->getPageLimit(); 261 $pageCount = ceil((int) $listViewCount / (int) $pageLimit); 262 263 if($pageCount == 0){ 264 $pageCount = 1; 265 } 266 $result = array(); 267 $result['page'] = $pageCount; 268 $result['numberOfRecords'] = $listViewCount; 269 $response = new Vtiger_Response(); 270 $response->setResult($result); 271 $response->emit(); 272 } 273 }
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 |