[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/LayoutEditor/actions/ -> Field.php (source)

   1  <?php
   2  
   3  /*+**********************************************************************************
   4   * The contents of this file are subject to the vtiger CRM Public License Version 1.1
   5   * ("License"); You may not use this file except in compliance with the License
   6   * The Original Code is:  vtiger CRM Open Source
   7   * The Initial Developer of the Original Code is vtiger.
   8   * Portions created by vtiger are Copyright (C) vtiger.
   9   * All Rights Reserved.
  10   ************************************************************************************/
  11  
  12  class Settings_LayoutEditor_Field_Action extends Settings_Vtiger_Index_Action {
  13  
  14      function __construct() {
  15          $this->exposeMethod('add');
  16          $this->exposeMethod('save');
  17          $this->exposeMethod('delete');
  18          $this->exposeMethod('move');
  19          $this->exposeMethod('unHide');
  20      }
  21  
  22      public function add(Vtiger_Request $request) {
  23          $type = $request->get('fieldType');
  24          $moduleName = $request->get('sourceModule');
  25          $blockId = $request->get('blockid');
  26          $moduleModel = Settings_LayoutEditor_Module_Model::getInstanceByName($moduleName);
  27          $response = new Vtiger_Response();
  28          try{
  29  
  30              $fieldModel = $moduleModel->addField($type,$blockId,$request->getAll());
  31              $fieldInfo = $fieldModel->getFieldInfo();
  32              $responseData = array_merge(array('id'=>$fieldModel->getId(), 'blockid'=>$blockId, 'customField'=>$fieldModel->isCustomField()),$fieldInfo);
  33              $response->setResult($responseData);
  34          }catch(Exception $e) {
  35              $response->setError($e->getCode(), $e->getMessage());
  36          }
  37          $response->emit();
  38      }
  39  
  40      public function save(Vtiger_Request $request) {
  41          $fieldId = $request->get('fieldid');
  42          $fieldInstance = Vtiger_Field_Model::getInstance($fieldId);
  43          $fieldInstance->updateTypeofDataFromMandatory($request->get('mandatory'))
  44                        ->set('presence', $request->get('presence'))
  45                        ->set('quickcreate', $request->get('quickcreate'))
  46                        ->set('summaryfield', $request->get('summaryfield'))
  47                        ->set('masseditable', $request->get('masseditable'));
  48          $defaultValue = $request->get('fieldDefaultValue');
  49          if($fieldInstance->getFieldDataType() == 'date') {
  50              $dateInstance = new Vtiger_Date_UIType();
  51              $defaultValue = $dateInstance->getDBInsertedValue($defaultValue);
  52          }
  53  
  54          if(is_array($defaultValue)) {
  55              $defaultValue = implode(' |##| ',$defaultValue);
  56          }
  57          $fieldInstance->set('defaultvalue', $defaultValue);
  58          $response = new Vtiger_Response();
  59          try{
  60              $fieldInstance->save();
  61              $response->setResult(array('success'=>true, 'presence'=>$request->get('presence'), 'mandatory'=>$fieldInstance->isMandatory(),
  62                                      'label'=>vtranslate($fieldInstance->get('label'), $request->get('sourceModule'))));
  63          }catch(Exception $e) {
  64              $response->setError($e->getCode(), $e->getMessage());
  65          }
  66          $response->emit();
  67      }
  68  
  69      public function delete(Vtiger_Request $request) {
  70          $fieldId = $request->get('fieldid');
  71          $fieldInstance = Settings_LayoutEditor_Field_Model::getInstance($fieldId);
  72          $response = new Vtiger_Response();
  73  
  74          if(!$fieldInstance->isCustomField()) {
  75              $response->setError('122', 'Cannot delete Non custom field');
  76              $response->emit();
  77              return;
  78          }
  79  
  80          try{
  81              $fieldInstance->delete();
  82              $response->setResult(array('success'=>true));
  83          }catch(Exception $e) {
  84              $response->setError($e->getCode(), $e->getMessage());
  85          }
  86          $response->emit();
  87      }
  88  
  89      public function move(Vtiger_Request $request) {
  90          $updatedFieldsList = $request->get('updatedFields');
  91  
  92          //This will update the fields sequence for the updated blocks
  93          Settings_LayoutEditor_Block_Model::updateFieldSequenceNumber($updatedFieldsList);
  94  
  95          $response = new Vtiger_Response();
  96          $response->setResult(array('success'=>true));
  97          $response->emit();
  98      }
  99  
 100      public function unHide(Vtiger_Request $request) {
 101          $response = new Vtiger_Response();
 102          try{
 103              $fieldIds = $request->get('fieldIdList');
 104              Settings_LayoutEditor_Field_Model::makeFieldActive($fieldIds, $request->get('blockId'));
 105              $responseData = array();
 106              foreach($fieldIds as $fieldId) {
 107                  $fieldModel = Settings_LayoutEditor_Field_Model::getInstance($fieldId);
 108                  $fieldInfo = $fieldModel->getFieldInfo();
 109                  $responseData[] = array_merge(array('id'=>$fieldModel->getId(), 'blockid'=>$fieldModel->get('block')->id, 'customField'=>$fieldModel->isCustomField()),$fieldInfo);
 110              }
 111              $response->setResult($responseData);
 112          }catch(Exception $e) {
 113              $response->setError($e->getCode(), $e->getMessage());
 114          }
 115          $response->emit();
 116  
 117      }
 118      
 119      public function validateRequest(Vtiger_Request $request) { 
 120          $request->validateWriteAccess(); 
 121      } 
 122  }


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