[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Reports/views/ -> List.php (source)

   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  }


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