[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/Workflows/views/ -> Edit.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 Settings_Workflows_Edit_View extends Settings_Vtiger_Index_View {
  12  
  13  	public function process(Vtiger_Request $request) {
  14          $mode = $request->getMode();
  15          if ($mode) {
  16              $this->$mode($request);
  17          } else {
  18              $this->step1($request);
  19          }
  20      }
  21  
  22  	public function preProcess(Vtiger_Request $request) {
  23          parent::preProcess($request);
  24          $viewer = $this->getViewer($request);
  25  
  26          $recordId = $request->get('record');
  27          $viewer->assign('RECORDID', $recordId);
  28          if($recordId) {
  29              $workflowModel = Settings_Workflows_Record_Model::getInstance($recordId);
  30              $viewer->assign('WORKFLOW_MODEL', $workflowModel);
  31          }
  32          $viewer->assign('RECORD_MODE', $request->getMode());
  33          $viewer->view('EditHeader.tpl', $request->getModule(false));
  34      }
  35  
  36  	public function step1(Vtiger_Request $request) {
  37          $currentUser = Users_Record_Model::getCurrentUserModel();
  38          $viewer = $this->getViewer($request);
  39          $moduleName = $request->getModule();
  40          $qualifiedModuleName = $request->getModule(false);
  41  
  42          $recordId = $request->get('record');
  43          if ($recordId) {
  44              $workflowModel = Settings_Workflows_Record_Model::getInstance($recordId);
  45              $viewer->assign('RECORDID', $recordId);
  46              $viewer->assign('MODULE_MODEL', $workflowModel->getModule());
  47              $viewer->assign('MODE', 'edit');
  48          } else {
  49              $workflowModel = Settings_Workflows_Record_Model::getCleanInstance($moduleName);
  50              $selectedModule = $request->get('source_module');
  51              if(!empty($selectedModule)) {
  52                  $viewer->assign('SELECTED_MODULE', $selectedModule);
  53              }
  54          }
  55          $db = PearDatabase::getInstance();
  56          $workflowManager = new VTWorkflowManager($db);
  57          $viewer->assign('MAX_ALLOWED_SCHEDULED_WORKFLOWS', $workflowManager->getMaxAllowedScheduledWorkflows());
  58          $viewer->assign('SCHEDULED_WORKFLOW_COUNT', $workflowManager->getScheduledWorkflowsCount());
  59          $viewer->assign('WORKFLOW_MODEL', $workflowModel);
  60          $viewer->assign('ALL_MODULES', Settings_Workflows_Module_Model::getSupportedModules());
  61          $viewer->assign('TRIGGER_TYPES', Settings_Workflows_Module_Model::getTriggerTypes());
  62  
  63          $viewer->assign('MODULE', $moduleName);
  64          $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
  65          $viewer->assign('CURRENT_USER', $currentUser);
  66          $admin = Users::getActiveAdminUser();
  67          $viewer->assign('ACTIVE_ADMIN', $admin);
  68          $viewer->view('Step1.tpl', $qualifiedModuleName);
  69      }
  70  
  71  	public function step2(Vtiger_Request $request) {
  72  
  73          $viewer = $this->getViewer($request);
  74          $moduleName = $request->getModule();
  75          $qualifiedModuleName = $request->getModule(false);
  76  
  77          $recordId = $request->get('record');
  78  
  79          if ($recordId) {
  80              $workFlowModel = Settings_Workflows_Record_Model::getInstance($recordId);
  81              $selectedModule = $workFlowModel->getModule();
  82              $selectedModuleName = $selectedModule->getName();
  83          } else {
  84              $selectedModuleName = $request->get('module_name');
  85              $selectedModule = Vtiger_Module_Model::getInstance($selectedModuleName);
  86              $workFlowModel = Settings_Workflows_Record_Model::getCleanInstance($selectedModuleName);
  87          }
  88  
  89          $requestData = $request->getAll();
  90          foreach($requestData as $name=>$value) {            
  91              if($name == 'schdayofweek' || $name == 'schdayofmonth' || $name == 'schannualdates') {
  92                  if(is_string($value)) {    // need to save these as json data
  93                      $value = array($value);
  94                  }
  95              }
  96              $workFlowModel->set($name,$value);
  97          }
  98          //Added to support advance filters
  99          $recordStructureInstance = Settings_Workflows_RecordStructure_Model::getInstanceForWorkFlowModule($workFlowModel,
 100                                                                              Settings_Workflows_RecordStructure_Model::RECORD_STRUCTURE_MODE_FILTER);
 101  
 102          $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance);
 103          $recordStructure = $recordStructureInstance->getStructure();
 104          if(in_array($selectedModuleName,  getInventoryModules())){
 105              $itemsBlock = "LBL_ITEM_DETAILS";
 106              unset($recordStructure[$itemsBlock]);
 107          }
 108          $viewer->assign('RECORD_STRUCTURE', $recordStructure);
 109  
 110          $viewer->assign('WORKFLOW_MODEL',$workFlowModel);
 111  
 112          $viewer->assign('MODULE_MODEL', $selectedModule);
 113          $viewer->assign('SELECTED_MODULE_NAME', $selectedModuleName);
 114  
 115          $dateFilters = Vtiger_Field_Model::getDateFilterTypes();
 116          foreach($dateFilters as $comparatorKey => $comparatorInfo) {
 117              $comparatorInfo['startdate'] = DateTimeField::convertToUserFormat($comparatorInfo['startdate']);
 118              $comparatorInfo['enddate'] = DateTimeField::convertToUserFormat($comparatorInfo['enddate']);
 119              $comparatorInfo['label'] = vtranslate($comparatorInfo['label'], $qualifiedModuleName);
 120              $dateFilters[$comparatorKey] = $comparatorInfo;
 121          }
 122          $viewer->assign('DATE_FILTERS', $dateFilters);
 123          $viewer->assign('ADVANCED_FILTER_OPTIONS', Settings_Workflows_Field_Model::getAdvancedFilterOptions());
 124          $viewer->assign('ADVANCED_FILTER_OPTIONS_BY_TYPE', Settings_Workflows_Field_Model::getAdvancedFilterOpsByFieldType());
 125          $viewer->assign('COLUMNNAME_API', 'getWorkFlowFilterColumnName');
 126  
 127          $viewer->assign('FIELD_EXPRESSIONS', Settings_Workflows_Module_Model::getExpressions());
 128          $viewer->assign('META_VARIABLES', Settings_Workflows_Module_Model::getMetaVariables());
 129  
 130          // Added to show filters only when saved from vtiger6
 131          if($workFlowModel->isFilterSavedInNew()) {
 132              $viewer->assign('ADVANCE_CRITERIA', $workFlowModel->transformToAdvancedFilterCondition());
 133          } else {
 134              $viewer->assign('ADVANCE_CRITERIA', "");
 135          }
 136  
 137          $viewer->assign('IS_FILTER_SAVED_NEW',$workFlowModel->isFilterSavedInNew());
 138          $viewer->assign('MODULE', $moduleName);
 139          $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
 140  
 141          $viewer->view('Step2.tpl', $qualifiedModuleName);
 142      }
 143  
 144  	function Step3(Vtiger_Request $request) {
 145          $viewer = $this->getViewer($request);
 146          $moduleName = $request->getModule();
 147          $qualifiedModuleName = $request->getModule(false);
 148  
 149          $recordId = $request->get('record');
 150  
 151          if ($recordId) {
 152              $workFlowModel = Settings_Workflows_Record_Model::getInstance($recordId);
 153              $selectedModule = $workFlowModel->getModule();
 154              $selectedModuleName = $selectedModule->getName();
 155          } else {
 156              $selectedModuleName = $request->get('module_name');
 157              $selectedModule = Vtiger_Module_Model::getInstance($selectedModuleName);
 158              $workFlowModel = Settings_Workflows_Record_Model::getCleanInstance($selectedModuleName);
 159          }
 160  
 161          $moduleModel = $workFlowModel->getModule();
 162          $viewer->assign('TASK_TYPES', Settings_Workflows_TaskType_Model::getAllForModule($moduleModel));
 163          $viewer->assign('SOURCE_MODULE',$selectedModuleName);
 164          $viewer->assign('RECORD',$recordId);
 165          $viewer->assign('MODULE', $moduleName);
 166          $viewer->assign('WORKFLOW_MODEL',$workFlowModel);
 167          $viewer->assign('TASK_LIST', $workFlowModel->getTasks());
 168          $viewer->assign('QUALIFIED_MODULE',$qualifiedModuleName);
 169  
 170          $viewer->view('Step3.tpl', $qualifiedModuleName);
 171      }
 172  
 173  	public function getHeaderScripts(Vtiger_Request $request) {
 174          $headerScriptInstances = parent::getHeaderScripts($request);
 175          $moduleName = $request->getModule();
 176  
 177          $jsFileNames = array(
 178              'modules.Settings.Vtiger.resources.Edit',
 179              "modules.Settings.$moduleName.resources.Edit",
 180              "modules.Settings.$moduleName.resources.Edit1",
 181              "modules.Settings.$moduleName.resources.Edit2",
 182              "modules.Settings.$moduleName.resources.Edit3",
 183              "modules.Settings.$moduleName.resources.AdvanceFilter",
 184              '~libraries/jquery/ckeditor/ckeditor.js',
 185              "modules.Vtiger.resources.CkEditor",
 186              '~libraries/jquery/jquery.datepick.package-4.1.0/jquery.datepick.js',
 187              );
 188  
 189          $jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
 190          $headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances);
 191          return $headerScriptInstances;
 192      }
 193          
 194          function getHeaderCss(Vtiger_Request $request) {
 195          $headerCssInstances = parent::getHeaderCss($request);
 196          $moduleName = $request->getModule();
 197          $cssFileNames = array(
 198              '~libraries/jquery/jquery.datepick.package-4.1.0/jquery.datepick.css',
 199          );
 200          $cssInstances = $this->checkAndConvertCssStyles($cssFileNames);
 201          $headerCssInstances = array_merge($cssInstances, $headerCssInstances);
 202          return $headerCssInstances;
 203      }
 204  }


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