[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Reports/views/ -> ChartSaveAjax.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 Reports_ChartSaveAjax_View extends Vtiger_IndexAjax_View {
  12  
  13  	public function checkPermission(Vtiger_Request $request) {
  14          $record = $request->get('record');
  15          if (!$record) {
  16              throw new AppException('LBL_PERMISSION_DENIED');
  17          }
  18  
  19          $moduleName = $request->getModule();
  20          $moduleModel = Reports_Module_Model::getInstance($moduleName);
  21          $reportModel = Reports_Record_Model::getCleanInstance($record);
  22  
  23          $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
  24          if (!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId()) && !$reportModel->isEditable()) {
  25              throw new AppException('LBL_PERMISSION_DENIED');
  26          }
  27      }
  28  
  29  	public function process(Vtiger_Request $request) {
  30          $mode = $request->getMode();
  31          $viewer = $this->getViewer($request);
  32          $moduleName = $request->getModule();
  33  
  34          $record = $request->get('record');
  35          $reportModel = Reports_Record_Model::getInstanceById($record);
  36          $reportModel->setModule('Reports');
  37          $reportModel->set('advancedFilter', $request->get('advanced_filter'));
  38  
  39  
  40          $secondaryModules = $reportModel->getSecondaryModules();
  41          if(empty($secondaryModules)) {
  42              $viewer->assign('CLICK_THROUGH', true);
  43          }
  44  
  45          $dataFields = $request->get('datafields', 'count(*)');
  46          if(is_string($dataFields)) $dataFields = array($dataFields);
  47  
  48          $reportModel->set('reporttypedata', Zend_Json::encode(array(
  49                                                                  'type'=>$request->get('charttype', 'pieChart'),
  50                                                                  'groupbyfield'=>$request->get('groupbyfield'),
  51                                                                  'datafields'=>$dataFields)
  52                                                              ));
  53          $reportModel->set('reporttype', 'chart');
  54          $reportModel->save();
  55  
  56          $reportChartModel = Reports_Chart_Model::getInstanceById($reportModel);
  57          
  58          $data = $reportChartModel->getData();
  59          $viewer->assign('CHART_TYPE', $reportChartModel->getChartType());
  60          $viewer->assign('DATA', json_encode($data, JSON_HEX_APOS));
  61          $viewer->assign('MODULE', $moduleName);
  62  
  63          $viewer->view('ChartReportContents.tpl', $moduleName);
  64      }
  65  }


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