[ 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 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 }
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 |