[ 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_ChartEdit_View extends Vtiger_Edit_View { 12 function __construct() { 13 parent::__construct(); 14 $this->exposeMethod('step1'); 15 $this->exposeMethod('step2'); 16 $this->exposeMethod('step3'); 17 } 18 19 public function checkPermission(Vtiger_Request $request) { 20 $moduleName = $request->getModule(); 21 $moduleModel = Reports_Module_Model::getInstance($moduleName); 22 23 $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); 24 if (!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) { 25 throw new AppException('LBL_PERMISSION_DENIED'); 26 } 27 28 $record = $request->get('record'); 29 if ($record) { 30 $reportModel = Reports_Record_Model::getCleanInstance($record); 31 if (!$reportModel->isEditable()) { 32 throw new AppException('LBL_PERMISSION_DENIED'); 33 } 34 } 35 } 36 37 public function preProcess(Vtiger_Request $request) { 38 parent::preProcess($request); 39 $viewer = $this->getViewer($request); 40 $record = $request->get('record'); 41 $moduleName = $request->getModule(); 42 43 $reportModel = Reports_Record_Model::getCleanInstance($record); 44 $primaryModule = $reportModel->getPrimaryModule(); 45 $primaryModuleModel = Vtiger_Module_Model::getInstance($primaryModule); 46 if ($primaryModuleModel) { 47 $currentUser = Users_Record_Model::getCurrentUserModel(); 48 $userPrivilegesModel = Users_Privileges_Model::getInstanceById($currentUser->getId()); 49 $permission = $userPrivilegesModel->hasModulePermission($primaryModuleModel->getId()); 50 51 if (!$permission) { 52 $viewer->assign('MODULE', $primaryModule); 53 $viewer->assign('MESSAGE', 'LBL_PERMISSION_DENIED'); 54 $viewer->view('OperationNotPermitted.tpl', $primaryModule); 55 exit; 56 } 57 } 58 59 $viewer->assign('REPORT_MODEL', $reportModel); 60 $viewer->assign('RECORD_ID', $record); 61 $viewer->assign('MODULE', $moduleName); 62 $viewer->assign('VIEW', 'ChartEdit'); 63 $viewer->assign('RECORD_MODE', $request->getMode()); 64 $viewer->view('EditChartHeader.tpl', $request->getModule()); 65 } 66 67 public function process(Vtiger_Request $request) { 68 $mode = $request->getMode(); 69 if (!empty($mode)) { 70 echo $this->invokeExposedMethod($mode, $request); 71 exit; 72 } 73 $this->step1($request); 74 } 75 76 function step1(Vtiger_Request $request) { 77 $viewer = $this->getViewer($request); 78 $moduleName = $request->getModule(); 79 $record = $request->get('record'); 80 81 $reportModel = Reports_Record_Model::getCleanInstance($record); 82 if(!$reportModel->has('folderid')){ 83 $reportModel->set('folderid',$request->get('folder')); 84 } 85 $data = $request->getAll(); 86 foreach ($data as $name => $value) { 87 $reportModel->set($name, $value); 88 } 89 90 $modulesList = $reportModel->getModulesList(); 91 92 if (!empty($record)) { 93 $viewer->assign('MODE', 'edit'); 94 } else { 95 $firstModuleName = reset($modulesList); 96 if($firstModuleName) 97 $reportModel->setPrimaryModule($firstModuleName); 98 $viewer->assign('MODE', ''); 99 } 100 101 $reportModuleModel = $reportModel->getModule(); 102 $reportFolderModels = $reportModuleModel->getFolders(); 103 104 $relatedModules = $reportModel->getReportRelatedModules(); 105 106 foreach ($relatedModules as $primaryModule => $relatedModuleList) { 107 $translatedRelatedModules = array(); 108 109 foreach($relatedModuleList as $relatedModuleName) { 110 $translatedRelatedModules[$relatedModuleName] = vtranslate($relatedModuleName, $relatedModuleName); 111 } 112 $relatedModules[$primaryModule] = $translatedRelatedModules; 113 } 114 115 $viewer->assign('MODULELIST', $modulesList); 116 $viewer->assign('RELATED_MODULES', $relatedModules); 117 $viewer->assign('REPORT_MODEL', $reportModel); 118 $viewer->assign('REPORT_FOLDERS', $reportFolderModels); 119 $viewer->assign('RECORD_ID', $record); 120 121 if ($request->get('isDuplicate')) { 122 $viewer->assign('IS_DUPLICATE', true); 123 } 124 125 $viewer->view('ChartEditStep1.tpl', $moduleName); 126 } 127 128 function step2(Vtiger_Request $request) { 129 $viewer = $this->getViewer($request); 130 $moduleName = $request->getModule(); 131 $record = $request->get('record'); 132 133 $reportModel = Reports_Record_Model::getCleanInstance($record); 134 if (!empty($record) && !$request->get('isDuplicate')) { 135 $viewer->assign('SELECTED_STANDARD_FILTER_FIELDS', $reportModel->getSelectedStandardFilter()); 136 $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $reportModel->transformToNewAdvancedFilter()); 137 } 138 $data = $request->getAll(); 139 foreach ($data as $name => $value) { 140 $reportModel->set($name, $value); 141 } 142 $primaryModule = $request->get('primary_module'); 143 $secondaryModules = $request->get('secondary_modules'); 144 $reportModel->setPrimaryModule($primaryModule); 145 if(!empty($secondaryModules)){ 146 $secondaryModules = implode(':', $secondaryModules); 147 $reportModel->setSecondaryModule($secondaryModules); 148 149 $secondaryModules = explode(':',$secondaryModules); 150 }else{ 151 $secondaryModules = array(); 152 } 153 154 $viewer->assign('RECORD_ID', $record); 155 $viewer->assign('REPORT_MODEL', $reportModel); 156 $viewer->assign('PRIMARY_MODULE',$primaryModule); 157 158 $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($reportModel); 159 $primaryModuleRecordStructure = $recordStructureInstance->getPrimaryModuleRecordStructure(); 160 $secondaryModuleRecordStructures = $recordStructureInstance->getSecondaryModuleRecordStructure(); 161 162 $viewer->assign('SECONDARY_MODULES',$secondaryModules); 163 $viewer->assign('PRIMARY_MODULE_RECORD_STRUCTURE', $primaryModuleRecordStructure); 164 $viewer->assign('SECONDARY_MODULE_RECORD_STRUCTURES', $secondaryModuleRecordStructures); 165 $dateFilters = Vtiger_Field_Model::getDateFilterTypes(); 166 foreach($dateFilters as $comparatorKey => $comparatorInfo) { 167 $comparatorInfo['startdate'] = DateTimeField::convertToUserFormat($comparatorInfo['startdate']); 168 $comparatorInfo['enddate'] = DateTimeField::convertToUserFormat($comparatorInfo['enddate']); 169 $comparatorInfo['label'] = vtranslate($comparatorInfo['label'],$moduleName); 170 $dateFilters[$comparatorKey] = $comparatorInfo; 171 } 172 $viewer->assign('DATE_FILTERS', $dateFilters); 173 174 if(($primaryModule == 'Calendar') || (in_array('Calendar', $secondaryModules))){ 175 $advanceFilterOpsByFieldType = Calendar_Field_Model::getAdvancedFilterOpsByFieldType(); 176 } else{ 177 $advanceFilterOpsByFieldType = Vtiger_Field_Model::getAdvancedFilterOpsByFieldType(); 178 } 179 $viewer->assign('ADVANCED_FILTER_OPTIONS', Vtiger_Field_Model::getAdvancedFilterOptions()); 180 $viewer->assign('ADVANCED_FILTER_OPTIONS_BY_TYPE', $advanceFilterOpsByFieldType); 181 $viewer->assign('MODULE', $moduleName); 182 183 $calculationFields = $reportModel->get('calculation_fields'); 184 if($calculationFields) { 185 $calculationFields = Zend_Json::decode($calculationFields); 186 $viewer->assign('LINEITEM_FIELD_IN_CALCULATION', $reportModel->showLineItemFieldsInFilter($calculationFields)); 187 } 188 if ($request->get('isDuplicate')) { 189 $viewer->assign('IS_DUPLICATE', true); 190 } 191 $viewer->view('ChartEditStep2.tpl', $moduleName); 192 } 193 194 function step3(Vtiger_request $request) { 195 $viewer = $this->getViewer($request); 196 $moduleName = $request->getModule(); 197 $record = $request->get('record'); 198 199 $reportModel = Reports_Record_Model::getCleanInstance($record); 200 if (!empty($record)) { 201 $viewer->assign('SELECTED_STANDARD_FILTER_FIELDS', $reportModel->getSelectedStandardFilter()); 202 $viewer->assign('SELECTED_ADVANCED_FILTER_FIELDS', $reportModel->transformToNewAdvancedFilter()); 203 } 204 $data = $request->getAll(); 205 foreach ($data as $name => $value) { 206 $reportModel->set($name, $value); 207 } 208 $primaryModule = $request->get('primary_module'); 209 $secondaryModules = $request->get('secondary_modules'); 210 $reportModel->setPrimaryModule($primaryModule); 211 if(!empty($secondaryModules)) { 212 $secondaryModules = implode(':', $secondaryModules); 213 $reportModel->setSecondaryModule($secondaryModules); 214 $secondaryModules = explode(':',$secondaryModules); 215 } else { 216 $secondaryModules = array(); 217 } 218 219 $chartModel = Reports_Chart_Model::getInstanceById($reportModel); 220 $viewer->assign('CHART_MODEL', $chartModel); 221 222 $viewer->assign('ADVANCED_FILTERS', $request->get('advanced_filter')); 223 $viewer->assign('PRIMARY_MODULE_FIELDS', $reportModel->getPrimaryModuleFieldsForAdvancedReporting()); 224 $viewer->assign('SECONDARY_MODULE_FIELDS', $reportModel->getSecondaryModuleFieldsForAdvancedReporting()); 225 $viewer->assign('CALCULATION_FIELDS', $reportModel->getModuleCalculationFieldsForReport()); 226 227 if ($request->get('isDuplicate')) { 228 $viewer->assign('IS_DUPLICATE', true); 229 } 230 231 $viewer->assign('RECORD_ID', $record); 232 $viewer->assign('REPORT_MODEL', $reportModel); 233 $viewer->assign('PRIMARY_MODULE',$primaryModule); 234 $viewer->assign('SECONDARY_MODULES',$secondaryModules); 235 $viewer->assign('MODULE', $moduleName); 236 237 $viewer->view('ChartEditStep3.tpl', $moduleName); 238 } 239 240 241 242 /** 243 * Function to get the list of Script models to be included 244 * @param Vtiger_Request $request 245 * @return <Array> - List of Vtiger_JsScript_Model instances 246 */ 247 function getHeaderScripts(Vtiger_Request $request) { 248 $headerScriptInstances = parent::getHeaderScripts($request); 249 $moduleName = $request->getModule(); 250 251 $jsFileNames = array( 252 '~libraries/jquery/jquery.datepick.package-4.1.0/jquery.datepick.js', 253 "modules.Reports.resources.Edit", 254 "modules.Reports.resources.Edit1", 255 "modules.Reports.resources.Edit2", 256 "modules.Reports.resources.Edit3", 257 "modules.$moduleName.resources.ChartEdit", 258 "modules.$moduleName.resources.ChartEdit1", 259 "modules.$moduleName.resources.ChartEdit2", 260 "modules.$moduleName.resources.ChartEdit3" 261 ); 262 263 $jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames); 264 $headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances); 265 return $headerScriptInstances; 266 } 267 }
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 |