[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/Picklist/actions/ -> SaveAjax.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_Picklist_SaveAjax_Action extends Settings_Vtiger_Basic_Action {
  12      
  13      function __construct() {
  14          $this->exposeMethod('add');
  15          $this->exposeMethod('rename');
  16          $this->exposeMethod('remove');
  17          $this->exposeMethod('assignValueToRole');
  18          $this->exposeMethod('saveOrder');
  19          $this->exposeMethod('enableOrDisable');
  20      }
  21  
  22      public function process(Vtiger_Request $request) {
  23          $mode = $request->get('mode');
  24          $this->invokeExposedMethod($mode, $request);
  25      }
  26      
  27      /*
  28       * @function updates user tables with new picklist value for default event and status fields
  29       */
  30      public function updateDefaultPicklistValues($pickListFieldName,$oldValue,$newValue) {
  31          $db = PearDatabase::getInstance();            
  32              if($pickListFieldName == 'activitytype')
  33                  $defaultFieldName = 'defaultactivitytype';
  34              else
  35                  $defaultFieldName = 'defaulteventstatus';
  36              $queryToGetId = 'SELECT id FROM vtiger_users WHERE '.$defaultFieldName.' IN (';
  37               if(is_array($oldValue)) {
  38                   for($i=0;$i<count($oldValue);$i++) {
  39                       $queryToGetId .= '"'.$oldValue[$i].'"';
  40                       if($i<(count($oldValue)-1)) {
  41                           $queryToGetId .= ',';
  42                       }
  43                   }
  44                   $queryToGetId .= ')';
  45               }
  46               else {
  47                   $queryToGetId .= '"'.$oldValue.'")';
  48               }
  49              $result = $db->pquery($queryToGetId, array());
  50              $rowCount =  $db->num_rows($result);
  51              for($i=0; $i<$rowCount; $i++) {
  52                  $recordId = $db->query_result_rowdata($result, $i);
  53                  $recordId = $recordId['id'];
  54                  $record = Vtiger_Record_Model::getInstanceById($recordId, 'Users');
  55                  $record->set('mode','edit');
  56                  $record->set($defaultFieldName,$newValue);
  57                  $record->save();
  58              }
  59      }
  60      
  61      public function add(Vtiger_Request $request) {
  62          $newValue = $request->getRaw('newValue');
  63          $pickListName = $request->get('picklistName');
  64          $moduleName = $request->get('source_module');
  65          $moduleModel = Settings_Picklist_Module_Model::getInstance($moduleName);
  66          $fieldModel = Settings_Picklist_Field_Model::getInstance($pickListName, $moduleModel);
  67          $rolesSelected = array();
  68          if($fieldModel->isRoleBased()) {
  69              $userSelectedRoles = $request->get('rolesSelected',array());
  70              //selected all roles option
  71              if(in_array('all',$userSelectedRoles)) {
  72                  $roleRecordList = Settings_Roles_Record_Model::getAll();
  73                  foreach($roleRecordList as $roleRecord) {
  74                      $rolesSelected[] = $roleRecord->getId();
  75                  }
  76              }else{
  77                  $rolesSelected = $userSelectedRoles;
  78              }
  79          }
  80          $response = new Vtiger_Response();
  81          try{
  82              $id = $moduleModel->addPickListValues($fieldModel, $newValue, $rolesSelected);
  83              $response->setResult(array('id' => $id['id']));
  84          }  catch (Exception $e) {
  85              $response->setError($e->getCode(), $e->getMessage());
  86          }
  87          $response->emit();
  88      }
  89      
  90      public function rename(Vtiger_Request $request) {
  91          $moduleName = $request->get('source_module');
  92          
  93          $newValue = $request->getRaw('newValue');
  94          $pickListFieldName = $request->get('picklistName');
  95          $oldValue = $request->getRaw('oldValue');
  96          $id = $request->getRaw('id');
  97          
  98          if($moduleName == 'Events' && ($pickListFieldName == 'activitytype' || $pickListFieldName == 'eventstatus')) {
  99               $this->updateDefaultPicklistValues($pickListFieldName,$oldValue,$newValue);
 100          }   
 101          $moduleModel = new Settings_Picklist_Module_Model();
 102          $response = new Vtiger_Response();
 103          try{
 104              $status = $moduleModel->renamePickListValues($pickListFieldName, $oldValue, $newValue, $moduleName, $id);
 105              $response->setResult(array('success',$status));
 106          } catch (Exception $e) {
 107              $response->setError($e->getCode(), $e->getMessage());
 108          }
 109          $response->emit();
 110      }
 111      
 112      public function remove(Vtiger_Request $request) {
 113          $moduleName = $request->get('source_module');
 114          $valueToDelete = $request->getRaw('delete_value');
 115          $replaceValue = $request->getRaw('replace_value');
 116          $pickListFieldName = $request->get('picklistName');
 117          
 118          if($moduleName == 'Events' && ($pickListFieldName == 'activitytype' || $pickListFieldName == 'eventstatus')) {
 119               $this->updateDefaultPicklistValues($pickListFieldName,$valueToDelete,$replaceValue);
 120          } 
 121          $moduleModel = Settings_Picklist_Module_Model::getInstance($moduleName);
 122          $response = new Vtiger_Response();
 123          try{
 124              $status = $moduleModel->remove($pickListFieldName, $valueToDelete, $replaceValue, $moduleName);
 125              $response->setResult(array('success',$status));
 126          } catch (Exception $e) {
 127              $response->setError($e->getCode(), $e->getMessage());
 128          }
 129          $response->emit();
 130      }
 131  
 132      /**
 133       * Function which will assign existing values to the roles
 134       * @param Vtiger_Request $request
 135       */
 136      public function assignValueToRole(Vtiger_Request $request) {
 137          $pickListFieldName = $request->get('picklistName');
 138          $valueToAssign = $request->getRaw('assign_values');
 139          $userSelectedRoles = $request->get('rolesSelected');
 140          
 141          $roleIdList = array();
 142          //selected all roles option
 143          if(in_array('all',$userSelectedRoles)) {
 144              $roleRecordList = Settings_Roles_Record_Model::getAll();
 145              foreach($roleRecordList as $roleRecord) {
 146                  $roleIdList[] = $roleRecord->getId();
 147              }
 148          }else{
 149              $roleIdList = $userSelectedRoles;
 150          }
 151          
 152          $moduleModel = new Settings_Picklist_Module_Model();
 153          
 154          $response = new Vtiger_Response();
 155          try{
 156              $moduleModel->enableOrDisableValuesForRole($pickListFieldName, $valueToAssign, array(),$roleIdList);
 157              $response->setResult(array('success',true));
 158          } catch (Exception $e) {
 159              $response->setError($e->getCode(), $e->getMessage());
 160          }
 161          $response->emit();
 162      }
 163      
 164      public function saveOrder(Vtiger_Request $request) {
 165          $pickListFieldName = $request->get('picklistName');
 166          $picklistValues = $request->getRaw('picklistValues');
 167          
 168          $moduleModel = new Settings_Picklist_Module_Model();
 169          $response = new Vtiger_Response();
 170          try{
 171              $moduleModel->updateSequence($pickListFieldName, $picklistValues);
 172              $response->setResult(array('success',true));
 173          } catch (Exception $e) {
 174              $response->setError($e->getCode(), $e->getMessage());
 175          }
 176          $response->emit();
 177      }
 178      
 179      public function enableOrDisable(Vtiger_Request $request) {
 180          $pickListFieldName = $request->get('picklistName');
 181          $enabledValues = $request->getRaw('enabled_values',array());
 182          $disabledValues = $request->getRaw('disabled_values',array());
 183          $roleSelected = $request->get('rolesSelected');
 184          
 185          $moduleModel = new Settings_Picklist_Module_Model();
 186          $response = new Vtiger_Response();
 187          try{
 188              $moduleModel->enableOrDisableValuesForRole($pickListFieldName, $enabledValues, $disabledValues,array($roleSelected));
 189              $response->setResult(array('success',true));
 190          } catch (Exception $e) {
 191              $response->setError($e->getCode(), $e->getMessage());
 192          }
 193          $response->emit();
 194      }
 195           
 196      public function validateRequest(Vtiger_Request $request) { 
 197          $request->validateWriteAccess(); 
 198      } 
 199  }


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