[ 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_Vtiger_Index_View extends Vtiger_Basic_View { 12 13 //Variables which decalres whether the older setting need to be loaded or new one 14 public static $loadOlderSettingUi = false; 15 16 function __construct() { 17 parent::__construct(); 18 } 19 20 function checkPermission(Vtiger_Request $request) { 21 $currentUserModel = Users_Record_Model::getCurrentUserModel(); 22 if(!$currentUserModel->isAdminUser()) { 23 throw new AppException(vtranslate('LBL_PERMISSION_DENIED', 'Vtiger')); 24 } 25 } 26 27 protected function transformToUI5URL(Vtiger_Request $request) { 28 $params = 'module=Settings&action=index'; 29 30 if ($request->has('item')) { 31 switch ($request->get('item')) { 32 case 'LayoutEditor': 33 $params = 'module=Settings&action=LayoutBlockList&parenttab=Settings&formodule='.$request->get('source_module'); 34 break; 35 case 'EditWorkflows': 36 $params = 'module=com_vtiger_workflow&action=workflowlist&list_module='.$request->get('source_module'); 37 break; 38 case 'PicklistEditor': 39 $params = 'module=PickList&action=PickList&parenttab=Settings&moduleName='.$request->get('source_module'); 40 break; 41 case 'SMSServerConfig': 42 $params = 'module='. $request->get('source_module').'&action=SMSConfigServer&parenttab=Settings&formodule='.$request->get('source_module'); 43 break; 44 case 'CustomFieldList': 45 $params = 'module=Settings&action=CustomFieldList&parenttab=Settings&formodule='.$request->get('source_module'); 46 break; 47 case 'GroupDetailView': 48 $params = 'module=Settings&action=GroupDetailView&groupId='.$request->get('groupId'); 49 break; 50 case 'ModuleManager' : 51 $params = 'module=Settings&action=ModuleManager&parenttab=Settings'; 52 break; 53 case 'MailScanner': 54 $params = 'module=Settings&action=MailScanner&parenttab=Settings'; 55 break; 56 case 'WebForms': 57 $params = 'module=Webforms&action=index&parenttab=Settings'; 58 break; 59 case 'CustomFields' : 60 $params = 'module=Settings&action=CustomFieldList&parenttab=Settings&formodule='.$request->get('source_module'); 61 break; 62 } 63 } 64 return '../index.php?' . $params; 65 } 66 67 public function preProcess (Vtiger_Request $request) { 68 parent::preProcess($request, false); 69 $this->preProcessSettings($request); 70 } 71 72 public function preProcessSettings (Vtiger_Request $request) { 73 74 $viewer = $this->getViewer($request); 75 76 $moduleName = $request->getModule(); 77 $qualifiedModuleName = $request->getModule(false); 78 $selectedMenuId = $request->get('block'); 79 $fieldId = $request->get('fieldid'); 80 $settingsModel = Settings_Vtiger_Module_Model::getInstance(); 81 $menuModels = $settingsModel->getMenus(); 82 83 if(!empty($selectedMenuId)) { 84 $selectedMenu = Settings_Vtiger_Menu_Model::getInstanceById($selectedMenuId); 85 } elseif(!empty($moduleName) && $moduleName != 'Vtiger') { 86 $fieldItem = Settings_Vtiger_Index_View::getSelectedFieldFromModule($menuModels,$moduleName); 87 if($fieldItem){ 88 $selectedMenu = Settings_Vtiger_Menu_Model::getInstanceById($fieldItem->get('blockid')); 89 $fieldId = $fieldItem->get('fieldid'); 90 } else { 91 reset($menuModels); 92 $firstKey = key($menuModels); 93 $selectedMenu = $menuModels[$firstKey]; 94 } 95 } else { 96 reset($menuModels); 97 $firstKey = key($menuModels); 98 $selectedMenu = $menuModels[$firstKey]; 99 } 100 101 if(Settings_Vtiger_Index_View::$loadOlderSettingUi) { 102 // Customization 103 $viewer->assign('UI5_URL', $this->transformToUI5URL($request)); 104 // END 105 } 106 107 $viewer->assign('SELECTED_FIELDID',$fieldId); 108 $viewer->assign('SELECTED_MENU', $selectedMenu); 109 $viewer->assign('SETTINGS_MENUS', $menuModels); 110 $viewer->assign('MODULE', $moduleName); 111 $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName); 112 $viewer->assign('LOAD_OLD', Settings_Vtiger_Index_View::$loadOlderSettingUi); 113 $viewer->view('SettingsMenuStart.tpl', $qualifiedModuleName); 114 } 115 116 public function postProcessSettings (Vtiger_Request $request) { 117 118 $viewer = $this->getViewer($request); 119 $qualifiedModuleName = $request->getModule(false); 120 $viewer->view('SettingsMenuEnd.tpl', $qualifiedModuleName); 121 } 122 123 public function postProcess (Vtiger_Request $request) { 124 $this->postProcessSettings($request); 125 parent::postProcess($request); 126 } 127 128 public function process(Vtiger_Request $request) { 129 if( !Settings_Vtiger_Index_View::$loadOlderSettingUi) { 130 //NOTE: We plan to embed UI5 Settings until we are complete. 131 $viewer = $this->getViewer($request); 132 $qualifiedModuleName = $request->getModule(false); 133 $usersCount = Users_Record_Model::getCount(true); 134 $activeWorkFlows = Settings_Workflows_Record_Model::getActiveCount(); 135 $activeModules = Settings_ModuleManager_Module_Model::getModulesCount(true); 136 $pinnedSettingsShortcuts = Settings_Vtiger_MenuItem_Model::getPinnedItems(); 137 138 $viewer->assign('USERS_COUNT',$usersCount); 139 $viewer->assign('ACTIVE_WORKFLOWS',$activeWorkFlows); 140 $viewer->assign('ACTIVE_MODULES',$activeModules); 141 $viewer->assign('SETTINGS_SHORTCUTS',$pinnedSettingsShortcuts); 142 $viewer->assign('MODULE',$qualifiedModuleName); 143 $viewer->view('Index.tpl', $qualifiedModuleName); 144 } 145 } 146 147 /** 148 * Function to get the list of Script models to be included 149 * @param Vtiger_Request $request 150 * @return <Array> - List of Vtiger_JsScript_Model instances 151 */ 152 function getHeaderScripts(Vtiger_Request $request) { 153 $headerScriptInstances = parent::getHeaderScripts($request); 154 $moduleName = $request->getModule(); 155 156 $jsFileNames = array( 157 'modules.Vtiger.resources.Vtiger', 158 'modules.Settings.Vtiger.resources.Vtiger', 159 'modules.Settings.Vtiger.resources.Edit', 160 "modules.Settings.$moduleName.resources.$moduleName", 161 'modules.Settings.Vtiger.resources.Index', 162 "modules.Settings.$moduleName.resources.Index", 163 ); 164 165 $jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames); 166 $headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances); 167 return $headerScriptInstances; 168 } 169 170 public static function getSelectedFieldFromModule($menuModels,$moduleName) { 171 if($menuModels) { 172 foreach($menuModels as $menuModel) { 173 $menuItems = $menuModel->getMenuItems(); 174 foreach($menuItems as $item) { 175 $linkTo = $item->getUrl(); 176 if(stripos($linkTo, '&module='.$moduleName) !== false || stripos($linkTo, '?module='.$moduleName) !== false) { 177 return $item; 178 } 179 } 180 } 181 } 182 return false; 183 } 184 185 public function validateRequest(Vtiger_Request $request) { 186 $request->validateReadAccess(); 187 } 188 }
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 |