[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/Vtiger/views/ -> Index.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_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  }


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