diff --git a/modules/Portal/views/List.php b/modules/Portal/views/List.php index 4b2f6d599d53229ca518a96162af637292a1fbbc..bda02b40ff74d7f9b087a8add7ec10181aad81b0 100644 --- a/modules/Portal/views/List.php +++ b/modules/Portal/views/List.php @@ -10,6 +10,8 @@ class Portal_List_View extends Vtiger_Index_View { + protected $listviewinitcalled = false; + public function requiresPermission(Vtiger_Request $request){ $permissions = parent::requiresPermission($request); $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView'); @@ -37,6 +39,11 @@ class Portal_List_View extends Vtiger_Index_View { } public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { + + if($this->listviewinitcalled){ + return; + } + $moduleName = $request->getModule(); $pageNumber = $request->get('page'); $orderBy = $request->get('orderby'); @@ -125,8 +132,9 @@ class Portal_List_View extends Vtiger_Index_View { $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER', $pagingModel->get('page')); $viewer->assign('NO_OF_ENTRIES', count($listviewEntries)); - } + $this->listviewinitcalled = true; + } function getHeaderScripts(Vtiger_Request $request) { $headerScriptInstances = parent::getHeaderScripts($request); $moduleName = $request->getModule(); diff --git a/modules/Reports/views/List.php b/modules/Reports/views/List.php index 4bdf2a5982563ba7a6b9bea1f45b0581240eb628..9d4a01e02d16cc21c1f93e20f3ac5956b6b621fc 100644 --- a/modules/Reports/views/List.php +++ b/modules/Reports/views/List.php @@ -13,6 +13,7 @@ class Reports_List_View extends Vtiger_Index_View { protected $listViewHeaders = false; protected $listViewEntries = false; protected $listViewCount = false; + protected $listviewinitcalled = false; function preProcess(Vtiger_Request $request, $display=true) { parent::preProcess($request, false); @@ -98,11 +99,15 @@ class Reports_List_View extends Vtiger_Index_View { } public function initializeListViewContents(Vtiger_Request $request) { - $moduleName = $request->getModule(); - $viewer = $this->getViewer($request); - $moduleModel = Vtiger_Module_Model::getInstance($moduleName); - $folderId = $request->get('viewname'); + if($this->listviewinitcalled){ + return; + } + $moduleName = $request->getModule(); + $viewer = $this->getViewer($request); + $moduleModel = Vtiger_Module_Model::getInstance($moduleName); + + $folderId = $request->get('viewname'); if(empty($folderId) || $folderId == 'undefined'){ $folderId = Vtiger_ListView_Model::getSortParamsSession($moduleName.'_folderId'); if(empty($folderId)) { @@ -234,7 +239,9 @@ class Reports_List_View extends Vtiger_Index_View { } } $viewer->assign('DASHBOARD_TABS', $activeTabs); - } + + $this->listviewinitcalled=true; // to make a early exit if it is called more than once +} /** * Function returns the number of records for the current filter diff --git a/modules/Settings/Vtiger/views/List.php b/modules/Settings/Vtiger/views/List.php index 5770852e6929a7b1e43491e137dc105ae8262190..b4a265c199dc41e7a9baa6cb46bffad45ccedea3 100644 --- a/modules/Settings/Vtiger/views/List.php +++ b/modules/Settings/Vtiger/views/List.php @@ -11,6 +11,7 @@ class Settings_Vtiger_List_View extends Settings_Vtiger_Index_View { protected $listViewEntries = false; protected $listViewHeaders = false; + protected $listviewinitcalled = false; function __construct() { parent::__construct(); @@ -36,16 +37,20 @@ class Settings_Vtiger_List_View extends Settings_Vtiger_Index_View { * Function to initialize the required data in smarty to display the List View Contents */ public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { - $moduleName = $request->getModule(); - $qualifiedModuleName = $request->getModule(false); - $pageNumber = $request->get('page'); - $orderBy = $request->get('orderby'); - $sortOrder = $request->get('sortorder'); - $sourceModule = $request->get('sourceModule'); - $forModule = $request->get('formodule'); + + if($this->listviewinitcalled){ + return; + } + $moduleName = $request->getModule(); + $qualifiedModuleName = $request->getModule(false); + $pageNumber = $request->get('page'); + $orderBy = $request->get('orderby'); + $sortOrder = $request->get('sortorder'); + $sourceModule = $request->get('sourceModule'); + $forModule = $request->get('formodule'); - $searchKey = $request->get('search_key'); - $searchValue = $request->get('search_value'); + $searchKey = $request->get('search_key'); + $searchValue = $request->get('search_value'); if($sortOrder == "ASC"){ $nextSortOrder = "DESC"; @@ -135,6 +140,8 @@ class Settings_Vtiger_List_View extends Settings_Vtiger_Index_View { $viewer->assign('PAGE_COUNT', $pageCount); $viewer->assign('LISTVIEW_COUNT', $totalCount); } + + $this->listviewinitcalled =true; // to make a early exit if it is called more than once } public function postProcess(Vtiger_Request $request) { diff --git a/modules/Vtiger/views/FindDuplicates.php b/modules/Vtiger/views/FindDuplicates.php index 7d3c6631fa2c6cb575f08c42da09ae235e321b86..8fd57af1f1d9d9a5b6315f915ee84962aba23490 100644 --- a/modules/Vtiger/views/FindDuplicates.php +++ b/modules/Vtiger/views/FindDuplicates.php @@ -10,6 +10,8 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View { + protected $listviewinitcalled = false; + function preProcess(Vtiger_Request $request, $display = true) { $viewer = $this->getViewer ($request); $this->initializeListViewContents($request, $viewer); @@ -55,13 +57,17 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View { * Function to initialize the required data in smarty to display the List View Contents */ public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { - $currentUser = vglobal('current_user'); - $viewer = $this->getViewer ($request); - $module = $request->getModule(); - $moduleModel = Vtiger_Module_Model::getInstance($module); - $massActionLinks = array(); - $userPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); + if($this->listviewinitcalled){ + return; + } + $currentUser = vglobal('current_user'); + $viewer = $this->getViewer ($request); + $module = $request->getModule(); + $moduleModel = Vtiger_Module_Model::getInstance($module); + + $massActionLinks = array(); + $userPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); if ($userPrivilegesModel->hasModuleActionPermission($moduleModel->getId(), 'Delete')) { $massActionLink = array( 'linktype' => 'LISTVIEWBASIC', @@ -119,6 +125,8 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View { $customViewModel = CustomView_Record_Model::getAllFilterByModule($module); $viewer->assign('VIEW_NAME', $customViewModel->getId()); + + $this->listviewinitcalled = true; // to make a early exit if it is called more than once } /** diff --git a/modules/Vtiger/views/List.php b/modules/Vtiger/views/List.php index 2bc36f97235b9cf227cff4b0e7fd8629ecdcccc7..09045baa05965c32548680ee4ce40c2e626067fd 100644 --- a/modules/Vtiger/views/List.php +++ b/modules/Vtiger/views/List.php @@ -16,6 +16,7 @@ class Vtiger_List_View extends Vtiger_Index_View { protected $noOfEntries = false; protected $pagingModel = false; protected $listViewModel = false; + protected $listviewinitcalled = false; function __construct() { parent::__construct(); } @@ -159,21 +160,25 @@ class Vtiger_List_View extends Vtiger_Index_View { * Function to initialize the required data in smarty to display the List View Contents */ public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { - $moduleName = $request->getModule(); - $cvId = $this->viewName; - $pageNumber = $request->get('page'); - $orderBy = $request->get('orderby'); - $sortOrder = $request->get('sortorder'); - $searchKey = $request->get('search_key'); - $searchValue = $request->get('search_value'); - $operator = $request->get('operator'); - $searchParams = $request->get('search_params'); - $tagParams = $request->get('tag_params'); - $starFilterMode = $request->get('starFilterMode'); - $listHeaders = $request->get('list_headers', array()); - $tag = $request->get('tag'); - $requestViewName = $request->get('viewname'); - $tagSessionKey = $moduleName.'_TAG'; + + if($this->listviewinitcalled){ + return; + } + $moduleName = $request->getModule(); + $cvId = $this->viewName; + $pageNumber = $request->get('page'); + $orderBy = $request->get('orderby'); + $sortOrder = $request->get('sortorder'); + $searchKey = $request->get('search_key'); + $searchValue = $request->get('search_value'); + $operator = $request->get('operator'); + $searchParams = $request->get('search_params'); + $tagParams = $request->get('tag_params'); + $starFilterMode = $request->get('starFilterMode'); + $listHeaders = $request->get('list_headers', array()); + $tag = $request->get('tag'); + $requestViewName = $request->get('viewname'); + $tagSessionKey = $moduleName.'_TAG'; if(!$this->listViewModel) { $listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId, $listHeaders); @@ -435,6 +440,8 @@ class Vtiger_List_View extends Vtiger_Index_View { $picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName); $viewer->assign('PICKIST_DEPENDENCY_DATASOURCE',Zend_Json::encode($picklistDependencyDatasource)); + + $this->listviewinitcalled = true; // to make a early exit if it is called more than once } protected function assignCustomViews(Vtiger_Request $request, Vtiger_Viewer $viewer) { diff --git a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php index 03b2e57bef5156d46f323e9e916f57f408518a98..caa1b09bf14d72c4fa605c205d052e8d08fce069 100644 --- a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php +++ b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php @@ -10,6 +10,9 @@ class EmailTemplates_List_View extends Vtiger_Index_View { + + protected $listviewinitcalled = false; + function __construct() { parent::__construct(); } @@ -83,17 +86,21 @@ class EmailTemplates_List_View extends Vtiger_Index_View { * Function to initialize the required data in smarty to display the List View Contents */ public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { - $moduleName = $request->getModule(); - $cvId = $request->get('viewname'); - $viewType = $request->get('viewType'); - $pageNumber = $request->get('page'); - $orderBy = $request->get('orderby'); - $sortOrder = $request->get('sortorder'); - $searchKey = $request->get('search_key'); - $searchValue = $request->get('search_value'); - $sourceModule = $request->get('sourceModule'); - $operator = $request->get('operator'); - $orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName); + + if($this->listviewinitcalled){ + return; + } + $moduleName = $request->getModule(); + $cvId = $request->get('viewname'); + $viewType = $request->get('viewType'); + $pageNumber = $request->get('page'); + $orderBy = $request->get('orderby'); + $sortOrder = $request->get('sortorder'); + $searchKey = $request->get('search_key'); + $searchValue = $request->get('search_value'); + $sourceModule = $request->get('sourceModule'); + $operator = $request->get('operator'); + $orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName); if ($request->get('mode') == 'removeAlphabetSearch') { Vtiger_ListView_Model::deleteParamsSession($moduleName, array('search_key', 'search_value', 'operator')); $searchKey = ''; @@ -220,6 +227,8 @@ class EmailTemplates_List_View extends Vtiger_Index_View { $viewer->assign('IS_CREATE_PERMITTED', $listViewModel->getModule()->isPermitted('CreateView')); $viewer->assign('IS_MODULE_EDITABLE', $listViewModel->getModule()->isPermitted('EditView')); $viewer->assign('IS_MODULE_DELETABLE', $listViewModel->getModule()->isPermitted('Delete')); + + $this->listviewinitcalled = true; // to make a early exit if it is called more than once } /** diff --git a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/views/List.php b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/views/List.php index f12c29fad32d2cfac2f38944699ebf2510cd7465..435a61ce03a86113ea6286be57c91bd0f8490028 100644 --- a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/views/List.php +++ b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/views/List.php @@ -10,6 +10,8 @@ class RecycleBin_List_View extends Vtiger_Index_View { + protected $listviewinitcalled = false; + function checkPermission(Vtiger_Request $request) { $moduleName = $request->getModule(); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); @@ -68,19 +70,23 @@ class RecycleBin_List_View extends Vtiger_Index_View { * Function to initialize the required data in smarty to display the List View Contents */ public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { - $moduleName = $request->getModule(); - $sourceModule = $request->get('sourceModule'); - $pageNumber = $request->get('page'); - $orderBy = $request->get('orderby'); - $sortOrder = $request->get('sortorder'); - $searchKey = $request->get('search_key'); - $searchValue = $request->get('search_value'); - $operator = $request->get('operator'); - $searchParams = $request->get('search_params'); - $listHeaders = $request->get('list_headers', array()); - - $orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName . '_' . $sourceModule); + if($this-> listviewinitcalled){ + return; + } + $moduleName = $request->getModule(); + $sourceModule = $request->get('sourceModule'); + + $pageNumber = $request->get('page'); + $orderBy = $request->get('orderby'); + $sortOrder = $request->get('sortorder'); + $searchKey = $request->get('search_key'); + $searchValue = $request->get('search_value'); + $operator = $request->get('operator'); + $searchParams = $request->get('search_params'); + $listHeaders = $request->get('list_headers', array()); + + $orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName . '_' . $sourceModule); if ($request->get('mode') == 'removeSorting') { Vtiger_ListView_Model::deleteParamsSession($moduleName . '_' . $sourceModule, array('orderby', 'sortorder')); $orderBy = ''; @@ -218,6 +224,8 @@ class RecycleBin_List_View extends Vtiger_Index_View { } $viewer->assign('IS_MODULE_DELETABLE', $listViewModel->getModule()->isPermitted('Delete')); + $this-> listviewinitcalled = true; // to make a early exit if it is called more than once + } /**