diff --git a/modules/Portal/views/List.php b/modules/Portal/views/List.php
index 4b2f6d599d53229ca518a96162af637292a1fbbc..c930d6020481913693702d94c1a83e9a46a76e63 100644
--- a/modules/Portal/views/List.php
+++ b/modules/Portal/views/List.php
@@ -8,16 +8,21 @@
  * All Rights Reserved.
  *************************************************************************************/
 
-class Portal_List_View extends Vtiger_Index_View {
+class Portal_List_View extends Vtiger_Index_View
+{
 
-	public function requiresPermission(Vtiger_Request $request){
+	protected $fncalled = false;
+
+	public function requiresPermission(Vtiger_Request $request)
+	{
 		$permissions = parent::requiresPermission($request);
 		$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
-		
+
 		return $permissions;
 	}
-	
-	function preProcess(Vtiger_Request $request, $display=true) {
+
+	function preProcess(Vtiger_Request $request, $display = true)
+	{
 		parent::preProcess($request);
 
 		$viewer = $this->getViewer($request);
@@ -25,7 +30,8 @@ class Portal_List_View extends Vtiger_Index_View {
 		$viewer->view('ListViewHeader.tpl', $request->getModule(false));
 	}
 
-	public function process(Vtiger_Request $request) {
+	public function process(Vtiger_Request $request)
+	{
 		$moduleName = $request->getModule();
 
 		$viewer = $this->getViewer($request);
@@ -36,98 +42,104 @@ class Portal_List_View extends Vtiger_Index_View {
 		$viewer->view('ListViewContents.tpl', $moduleName);
 	}
 
-	public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) {
-		$moduleName = $request->getModule();
-		$pageNumber = $request->get('page');
-		$orderBy = $request->get('orderby');
-		$sortOrder = $request->get('sortorder');
-		$searchValue = $request->get('search_value');
-
-		$orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName);
-		if($request->get('mode') == 'removeAlphabetSearch') {
-			Vtiger_ListView_Model::deleteParamsSession($moduleName, array('search_value'));
-			$searchValue = '';
-		}
-		if($request->get('mode') == 'removeSorting') {
-			Vtiger_ListView_Model::deleteParamsSession($moduleName, array('orderby', 'sortorder'));
-			$orderBy = '';
-			$sortOrder = '';
-		}
-		if(empty($orderBy) && empty($searchValue) && empty($pageNumber)) {
+	public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer)
+	{
+
+		if ($this->fncalled == false) {
+			$moduleName = $request->getModule();
+			$pageNumber = $request->get('page');
+			$orderBy = $request->get('orderby');
+			$sortOrder = $request->get('sortorder');
+			$searchValue = $request->get('search_value');
+
 			$orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName);
-			if($orderParams) {
-				$pageNumber = $orderParams['page'];
-				$orderBy = $orderParams['orderby'];
-				$sortOrder = $orderParams['sortorder'];
-				$searchValue = $orderParams['search_value'];
+			if ($request->get('mode') == 'removeAlphabetSearch') {
+				Vtiger_ListView_Model::deleteParamsSession($moduleName, array('search_value'));
+				$searchValue = '';
+			}
+			if ($request->get('mode') == 'removeSorting') {
+				Vtiger_ListView_Model::deleteParamsSession($moduleName, array('orderby', 'sortorder'));
+				$orderBy = '';
+				$sortOrder = '';
+			}
+			if (empty($orderBy) && empty($searchValue) && empty($pageNumber)) {
+				$orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName);
+				if ($orderParams) {
+					$pageNumber = $orderParams['page'];
+					$orderBy = $orderParams['orderby'];
+					$sortOrder = $orderParams['sortorder'];
+					$searchValue = $orderParams['search_value'];
+				}
+			} else if ($request->get('nolistcache') != 1) {
+				$params = array('page' => $pageNumber, 'orderby' => $orderBy, 'sortorder' => $sortOrder, 'search_value' => $searchValue);
+				Vtiger_ListView_Model::setSortParamsSession($moduleName, $params);
 			}
-		} else if($request->get('nolistcache') != 1) {
-			$params = array('page' => $pageNumber, 'orderby' => $orderBy, 'sortorder' => $sortOrder, 'search_value' => $searchValue);
-			Vtiger_ListView_Model::setSortParamsSession($moduleName, $params);
-		}
 
-		if($sortOrder == "ASC"){
-			$nextSortOrder = "DESC";
-			$sortImage = "icon-chevron-down";
-			$faSortImage = "fa-sort-desc";
-		}else{
-			$nextSortOrder = "ASC";
-			$sortImage = "icon-chevron-up";
-			$faSortImage = "fa-sort-asc";
-		}
+			if ($sortOrder == "ASC") {
+				$nextSortOrder = "DESC";
+				$sortImage = "icon-chevron-down";
+				$faSortImage = "fa-sort-desc";
+			} else {
+				$nextSortOrder = "ASC";
+				$sortImage = "icon-chevron-up";
+				$faSortImage = "fa-sort-asc";
+			}
 
-		if(empty ($pageNumber)){
-			$pageNumber = '1';
-		}
+			if (empty($pageNumber)) {
+				$pageNumber = '1';
+			}
 
-		$listViewModel = new Portal_ListView_Model();
+			$listViewModel = new Portal_ListView_Model();
 
-		if(!empty($orderBy)) {
-			$listViewModel->set('orderby', $orderBy);
-			$listViewModel->set('sortorder',$sortOrder);
-		}
-		if(!empty($searchValue)) {
-			$listViewModel->set('search_value', $searchValue);
-		}
+			if (!empty($orderBy)) {
+				$listViewModel->set('orderby', $orderBy);
+				$listViewModel->set('sortorder', $sortOrder);
+			}
+			if (!empty($searchValue)) {
+				$listViewModel->set('search_value', $searchValue);
+			}
 
-		// preProcess is already loading this, we can reuse
-		if(!$this->pagingModel){
-			$pagingModel = new Vtiger_Paging_Model();
-			$pagingModel->set('page', $pageNumber);
-			$pagingModel->set('viewid', $request->get('viewname'));
-		} else{
-			$pagingModel = $this->pagingModel;
-		}
+			// preProcess is already loading this, we can reuse
+			if (!$this->pagingModel) {
+				$pagingModel = new Vtiger_Paging_Model();
+				$pagingModel->set('page', $pageNumber);
+				$pagingModel->set('viewid', $request->get('viewname'));
+			} else {
+				$pagingModel = $this->pagingModel;
+			}
 
-		$listviewEntries = $listViewModel->getListViewEntries($pagingModel);
+			$listviewEntries = $listViewModel->getListViewEntries($pagingModel);
 
-		//if list view entries restricted to show, paging should not fail
-		if(!$this->noOfEntries) {
-			$noOfEntries = php7_count($listviewEntries);
-		}
+			//if list view entries restricted to show, paging should not fail
+			if (!$this->noOfEntries) {
+				$noOfEntries = php7_count($listviewEntries);
+			}
 
-		$viewer->assign('PAGE_NUMBER',$pageNumber);
-		$listviewEntries = $listViewModel->getListViewEntries($pagingModel);
-		$pagingModel->calculatePageRange($listviewEntries);
-
-		$viewer->assign('LISTVIEW_ENTRIES', $listviewEntries);
-		$viewer->assign('LISTVIEW_ENTRIES_COUNT',$noOfEntries);
-		$viewer->assign('ALPHABET_VALUE', $searchValue);
-		$viewer->assign('COLUMN_NAME', $orderBy);
-		$viewer->assign('SORT_ORDER', $sortOrder);
-		$viewer->assign('SORT_IMAGE', $sortImage);
-		$viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
-		$viewer->assign('RECORD_COUNT', php7_count($listviewEntries));
-		$viewer->assign('CURRENT_PAGE', $pageNumber);
-		$viewer->assign('PAGING_INFO', $listViewModel->calculatePageRange($listviewEntries, $pagingModel));
-		$viewer->assign('FASORT_IMAGE',$faSortImage);
-		$viewer->assign('PAGING_MODEL', $pagingModel);
-		$viewer->assign('PAGING_MODEL', $pagingModel);
-		$viewer->assign('PAGE_NUMBER', $pagingModel->get('page'));
-		$viewer->assign('NO_OF_ENTRIES', count($listviewEntries));
+			$viewer->assign('PAGE_NUMBER', $pageNumber);
+			$listviewEntries = $listViewModel->getListViewEntries($pagingModel);
+			$pagingModel->calculatePageRange($listviewEntries);
+
+			$viewer->assign('LISTVIEW_ENTRIES', $listviewEntries);
+			$viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries);
+			$viewer->assign('ALPHABET_VALUE', $searchValue);
+			$viewer->assign('COLUMN_NAME', $orderBy);
+			$viewer->assign('SORT_ORDER', $sortOrder);
+			$viewer->assign('SORT_IMAGE', $sortImage);
+			$viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
+			$viewer->assign('RECORD_COUNT', php7_count($listviewEntries));
+			$viewer->assign('CURRENT_PAGE', $pageNumber);
+			$viewer->assign('PAGING_INFO', $listViewModel->calculatePageRange($listviewEntries, $pagingModel));
+			$viewer->assign('FASORT_IMAGE', $faSortImage);
+			$viewer->assign('PAGING_MODEL', $pagingModel);
+			$viewer->assign('PAGING_MODEL', $pagingModel);
+			$viewer->assign('PAGE_NUMBER', $pagingModel->get('page'));
+			$viewer->assign('NO_OF_ENTRIES', count($listviewEntries));
+
+			$this->fncalled = true;
+		}
 	}
-
-	function getHeaderScripts(Vtiger_Request $request) {
+	function getHeaderScripts(Vtiger_Request $request)
+	{
 		$headerScriptInstances = parent::getHeaderScripts($request);
 		$moduleName = $request->getModule();
 
@@ -135,8 +147,8 @@ class Portal_List_View extends Vtiger_Index_View {
 			'modules.Vtiger.resources.List',
 			"modules.$moduleName.resources.List",
 			"~layouts/v7/lib/jquery/sadropdown.js",
-			"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/floatThead/jquery.floatThead.js",
-			"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/perfect-scrollbar/js/perfect-scrollbar.jquery.js",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/floatThead/jquery.floatThead.js",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/perfect-scrollbar/js/perfect-scrollbar.jquery.js",
 		);
 
 		$jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
@@ -144,24 +156,25 @@ class Portal_List_View extends Vtiger_Index_View {
 		return $headerScriptInstances;
 	}
 
-	function getRecordsCount(Vtiger_Request $request) {
+	function getRecordsCount(Vtiger_Request $request)
+	{
 		$db = PearDatabase::getInstance();
 		$listQuery = $this->getQuery();
 		$queryParts = explode('FROM', $listQuery);
-		$query = 'SELECT COUNT(*) AS count FROM '.$queryParts[1];
+		$query = 'SELECT COUNT(*) AS count FROM ' . $queryParts[1];
 		$result = $db->pquery($query, array());
 
 		return $db->query_result($result, 0, 'count');
 	}
 
-	public function getHeaderCss(Vtiger_Request $request) {
+	public function getHeaderCss(Vtiger_Request $request)
+	{
 		$headerCssInstances = parent::getHeaderCss($request);
 		$cssFileNames = array(
-			"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/perfect-scrollbar/css/perfect-scrollbar.css",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/perfect-scrollbar/css/perfect-scrollbar.css",
 		);
 		$cssInstances = $this->checkAndConvertCssStyles($cssFileNames);
 		$headerCssInstances = array_merge($headerCssInstances, $cssInstances);
 		return $headerCssInstances;
 	}
-
 }
diff --git a/modules/Reports/views/List.php b/modules/Reports/views/List.php
index 4bdf2a5982563ba7a6b9bea1f45b0581240eb628..e64c537bc0607d368e75429b351e9a4ea8ca9aed 100644
--- a/modules/Reports/views/List.php
+++ b/modules/Reports/views/List.php
@@ -8,16 +8,19 @@
  * All Rights Reserved.
  ************************************************************************************/
 
-class Reports_List_View extends Vtiger_Index_View {
+class Reports_List_View extends Vtiger_Index_View
+{
 
 	protected $listViewHeaders = false;
 	protected $listViewEntries = false;
 	protected $listViewCount   = false;
+	protected $fncalled        = false;
 
-	function preProcess(Vtiger_Request $request, $display=true) {
+	function preProcess(Vtiger_Request $request, $display = true)
+	{
 		parent::preProcess($request, false);
 
-		$viewer = $this->getViewer ($request);
+		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
 
@@ -32,15 +35,17 @@ class Reports_List_View extends Vtiger_Index_View {
 		$reportModel = Reports_Record_Model::getCleanInstance();
 		$this->initializeListViewContents($request);
 
-		if($display) {
+		if ($display) {
 			$this->preProcessDisplay($request);
 		}
 	}
 
-	function preProcessTplName(Vtiger_Request $request) {
+	function preProcessTplName(Vtiger_Request $request)
+	{
 		return 'ListViewPreProcess.tpl';
 	}
-	function process(Vtiger_Request $request) {
+	function process(Vtiger_Request $request)
+	{
 		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 
@@ -48,8 +53,9 @@ class Reports_List_View extends Vtiger_Index_View {
 		$viewer->view('ListViewContents.tpl', $moduleName);
 	}
 
-	function postProcess(Vtiger_Request $request) {
-		$viewer = $this->getViewer ($request);
+	function postProcess(Vtiger_Request $request)
+	{
+		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 
 		$viewer->view('ListViewPostProcess.tpl', $moduleName);
@@ -61,7 +67,8 @@ class Reports_List_View extends Vtiger_Index_View {
 	 * @param Vtiger_Request $request
 	 * @return <Array> - List of Vtiger_JsScript_Model instances
 	 */
-	function getHeaderScripts(Vtiger_Request $request) {
+	function getHeaderScripts(Vtiger_Request $request)
+	{
 		$headerScriptInstances = parent::getHeaderScripts($request);
 		$moduleName = $request->getModule();
 
@@ -74,9 +81,9 @@ class Reports_List_View extends Vtiger_Index_View {
 			"modules.$moduleName.resources.ChartDetail",
 			"modules.Vtiger.resources.ListSidebar",
 			"~layouts/v7/lib/jquery/sadropdown.js",
-			"~layouts/" .Vtiger_Viewer::getDefaultLayoutName(). "/lib/jquery/floatThead/jquery.floatThead.js",
-			"~layouts/" .Vtiger_Viewer::getDefaultLayoutName(). "/lib/jquery/perfect-scrollbar/js/perfect-scrollbar.jquery.js",
-            '~/libraries/jquery/gridster/jquery.gridster.min.js',
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/floatThead/jquery.floatThead.js",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/perfect-scrollbar/js/perfect-scrollbar.jquery.js",
+			'~/libraries/jquery/gridster/jquery.gridster.min.js',
 			'~/libraries/jquery/jqplot/jquery.jqplot.min.js',
 			'~/libraries/jquery/jqplot/plugins/jqplot.canvasTextRenderer.min.js',
 			'~/libraries/jquery/jqplot/plugins/jqplot.canvasAxisTickRenderer.min.js',
@@ -97,150 +104,157 @@ class Reports_List_View extends Vtiger_Index_View {
 		return $headerScriptInstances;
 	}
 
-	public function initializeListViewContents(Vtiger_Request $request) {
-		$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)) {
-				$folderId = 'All';
+	public function initializeListViewContents(Vtiger_Request $request)
+	{
+
+		if ($this->fncalled == false) {
+			$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)) {
+					$folderId = 'All';
+				}
+			} else {
+				Vtiger_ListView_Model::setSortParamsSession($moduleName . '_folderId', $folderId);
 			}
-		} else {
-			Vtiger_ListView_Model::setSortParamsSession($moduleName.'_folderId', $folderId);
-		}
-		$pageNumber = $request->get('page');
-		$orderBy = $request->get('orderby');
-		$sortOrder = $request->get('sortorder');
-		$searchParams = $request->get('search_params');
-		$searchParams = $searchParams[0];
-
-		$orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName.'_'.$folderId);
-		if($request->get('mode') == 'removeSorting') {
-			Vtiger_ListView_Model::deleteParamsSession($moduleName.'_'.$folderId, array('orderby', 'sortorder'));
-			$orderBy = '';
-			$sortOrder = '';
-		}
-		if(empty($orderBy) && empty($pageNumber)) {
-			$orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName.'_'.$folderId);
-			if($orderParams) {
-				$pageNumber = $orderParams['page'];
-				$orderBy = $orderParams['orderby'];
-				$sortOrder = $orderParams['sortorder'];
+			$pageNumber = $request->get('page');
+			$orderBy = $request->get('orderby');
+			$sortOrder = $request->get('sortorder');
+			$searchParams = $request->get('search_params');
+			$searchParams = $searchParams[0];
+
+			$orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName . '_' . $folderId);
+			if ($request->get('mode') == 'removeSorting') {
+				Vtiger_ListView_Model::deleteParamsSession($moduleName . '_' . $folderId, array('orderby', 'sortorder'));
+				$orderBy = '';
+				$sortOrder = '';
+			}
+			if (empty($orderBy) && empty($pageNumber)) {
+				$orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName . '_' . $folderId);
+				if ($orderParams) {
+					$pageNumber = $orderParams['page'];
+					$orderBy = $orderParams['orderby'];
+					$sortOrder = $orderParams['sortorder'];
+				}
+			} else if ($request->get('nolistcache') != 1) {
+				$params = array('page' => $pageNumber, 'orderby' => $orderBy, 'sortorder' => $sortOrder, 'search_params' => $searchParams);
+				Vtiger_ListView_Model::setSortParamsSession($moduleName . '_' . $folderId, $params);
 			}
-		} else if($request->get('nolistcache') != 1) {
-			$params = array('page' => $pageNumber, 'orderby' => $orderBy, 'sortorder' => $sortOrder, 'search_params' =>$searchParams);
-			Vtiger_ListView_Model::setSortParamsSession($moduleName.'_'.$folderId, $params);
-		}
 
-		if($sortOrder == "ASC"){
-			$nextSortOrder = "DESC";
-			$sortImage = "icon-chevron-down";
-			$faSortImage = "fa-sort-desc";
-		}else{
-			$nextSortOrder = "ASC";
-			$sortImage = "icon-chevron-up";
-			$faSortImage = "fa-sort-asc";
-		}
+			if ($sortOrder == "ASC") {
+				$nextSortOrder = "DESC";
+				$sortImage = "icon-chevron-down";
+				$faSortImage = "fa-sort-desc";
+			} else {
+				$nextSortOrder = "ASC";
+				$sortImage = "icon-chevron-up";
+				$faSortImage = "fa-sort-asc";
+			}
 
-		$listViewModel = new Reports_ListView_Model();
-		$listViewModel->set('module', $moduleModel);
-		$listViewModel->set('folderid', $folderId);
+			$listViewModel = new Reports_ListView_Model();
+			$listViewModel->set('module', $moduleModel);
+			$listViewModel->set('folderid', $folderId);
 
-		if(!empty($orderBy)) {
-			$listViewModel->set('orderby', $orderBy);
-			$listViewModel->set('sortorder', $sortOrder);
-		}
-		$listViewMassActionModels = $listViewModel->getListViewMassActions();
-		if(empty ($pageNumber)){
-			$pageNumber = '1';
-		}
-
-		if(empty($searchParams)) {
-			$searchParams = array();
-		}
-		$listViewModel->set('search_params', $searchParams);
-
-		$viewer->assign('MODULE', $moduleName);
-		  // preProcess is already loading this, we can reuse
-		if(!$this->pagingModel){
-			$pagingModel = new Vtiger_Paging_Model();
-			$pagingModel->set('page', $pageNumber);
-		} else{
-			$pagingModel = $this->pagingModel;
-		}
+			if (!empty($orderBy)) {
+				$listViewModel->set('orderby', $orderBy);
+				$listViewModel->set('sortorder', $sortOrder);
+			}
+			$listViewMassActionModels = $listViewModel->getListViewMassActions();
+			if (empty($pageNumber)) {
+				$pageNumber = '1';
+			}
 
-		$viewer->assign('LISTVIEW_MASSACTIONS', $listViewMassActionModels);
+			if (empty($searchParams)) {
+				$searchParams = array();
+			}
+			$listViewModel->set('search_params', $searchParams);
+
+			$viewer->assign('MODULE', $moduleName);
+			// preProcess is already loading this, we can reuse
+			if (!$this->pagingModel) {
+				$pagingModel = new Vtiger_Paging_Model();
+				$pagingModel->set('page', $pageNumber);
+			} else {
+				$pagingModel = $this->pagingModel;
+			}
 
-		if(!$this->listViewHeaders){
-			$this->listViewHeaders = $listViewModel->getListViewHeaders($folderId);
-		}
-		if(!$this->listViewEntries){
-			$this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
-		}
-		$noOfEntries = php7_count($this->listViewEntries);
-		$viewer->assign('PAGE_NUMBER',$pageNumber);
-		$viewer->assign('LISTVIEW_ENTRIES_COUNT',$noOfEntries);
-		$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
-		$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
-		$viewer->assign('MODULE_MODEL', $moduleModel);
-		$viewer->assign('VIEWNAME',$folderId);
-
-		$viewer->assign('ORDER_BY',$orderBy);
-		$viewer->assign('SORT_ORDER',$sortOrder);
-		$viewer->assign('NEXT_SORT_ORDER',$nextSortOrder);
-		$viewer->assign('SORT_IMAGE',$sortImage);
-		$viewer->assign('FASORT_IMAGE',$faSortImage);
-		$viewer->assign('COLUMN_NAME',$orderBy);
-		$viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
-		$viewer->assign('SEARCH_DETAILS', array());
-		$viewer->assign('LISTVIEW_MODEL',$listViewModel);
-		$viewer->assign('PAGING_MODEL', $pagingModel);
-		if(!$this->pagingModel){
-			$this->pagingModel = $pagingModel;
-		}
+			$viewer->assign('LISTVIEW_MASSACTIONS', $listViewMassActionModels);
 
-		if(!empty($searchParams)) {
-			$listSearchParams = array();
-			foreach($searchParams as $conditions) {
-				$fieldname = $conditions[0];
-				$searchValue = $conditions[2];
-				$comparator = $conditions[1];
-				$listSearchParams[$fieldname] = array('searchValue' => $searchValue, 'comparator' => $comparator);
+			if (!$this->listViewHeaders) {
+				$this->listViewHeaders = $listViewModel->getListViewHeaders($folderId);
 			}
-			$viewer->assign('SEARCH_DETAILS', $listSearchParams);
-		}
-		if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
-			if(!$this->listViewCount){
-				$this->listViewCount = $listViewModel->getListViewCount();
+			if (!$this->listViewEntries) {
+				$this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
+			}
+			$noOfEntries = php7_count($this->listViewEntries);
+			$viewer->assign('PAGE_NUMBER', $pageNumber);
+			$viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries);
+			$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
+			$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
+			$viewer->assign('MODULE_MODEL', $moduleModel);
+			$viewer->assign('VIEWNAME', $folderId);
+
+			$viewer->assign('ORDER_BY', $orderBy);
+			$viewer->assign('SORT_ORDER', $sortOrder);
+			$viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
+			$viewer->assign('SORT_IMAGE', $sortImage);
+			$viewer->assign('FASORT_IMAGE', $faSortImage);
+			$viewer->assign('COLUMN_NAME', $orderBy);
+			$viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
+			$viewer->assign('SEARCH_DETAILS', array());
+			$viewer->assign('LISTVIEW_MODEL', $listViewModel);
+			$viewer->assign('PAGING_MODEL', $pagingModel);
+			if (!$this->pagingModel) {
+				$this->pagingModel = $pagingModel;
 			}
-			$totalCount = $this->listViewCount;
-			$pageLimit = $pagingModel->getPageLimit();
-			$pageCount = ceil((int) $totalCount / (int) $pageLimit);
 
-			if($pageCount == 0){
-				$pageCount = 1;
+			if (!empty($searchParams)) {
+				$listSearchParams = array();
+				foreach ($searchParams as $conditions) {
+					$fieldname = $conditions[0];
+					$searchValue = $conditions[2];
+					$comparator = $conditions[1];
+					$listSearchParams[$fieldname] = array('searchValue' => $searchValue, 'comparator' => $comparator);
+				}
+				$viewer->assign('SEARCH_DETAILS', $listSearchParams);
 			}
-			$viewer->assign('PAGE_COUNT', $pageCount);
-			$viewer->assign('LISTVIEW_COUNT', $totalCount);
-		}
-		$dashBoardModel = new Vtiger_DashBoard_Model();
-		$activeTabs = $dashBoardModel->getActiveTabs();
-		foreach($activeTabs as $index => $tabInfo) {
-			if(!empty($tabInfo['appname'])) {
-				unset($activeTabs[$index]);
+			if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
+				if (!$this->listViewCount) {
+					$this->listViewCount = $listViewModel->getListViewCount();
+				}
+				$totalCount = $this->listViewCount;
+				$pageLimit = $pagingModel->getPageLimit();
+				$pageCount = ceil((int) $totalCount / (int) $pageLimit);
+
+				if ($pageCount == 0) {
+					$pageCount = 1;
+				}
+				$viewer->assign('PAGE_COUNT', $pageCount);
+				$viewer->assign('LISTVIEW_COUNT', $totalCount);
 			}
+			$dashBoardModel = new Vtiger_DashBoard_Model();
+			$activeTabs = $dashBoardModel->getActiveTabs();
+			foreach ($activeTabs as $index => $tabInfo) {
+				if (!empty($tabInfo['appname'])) {
+					unset($activeTabs[$index]);
+				}
+			}
+			$viewer->assign('DASHBOARD_TABS', $activeTabs);
+
+			$this->fncalled = true;
 		}
-		$viewer->assign('DASHBOARD_TABS', $activeTabs);
 	}
 
 	/**
 	 * Function returns the number of records for the current filter
 	 * @param Vtiger_Request $request
 	 */
-	function getRecordsCount(Vtiger_Request $request) {
+	function getRecordsCount(Vtiger_Request $request)
+	{
 		$moduleName = $request->getModule();
 		$cvId = $request->get('viewname');
 		$count = $this->getListViewCount($request);
@@ -260,15 +274,16 @@ class Reports_List_View extends Vtiger_Index_View {
 	 * Function to get listView count
 	 * @param Vtiger_Request $request
 	 */
-	function getListViewCount(Vtiger_Request $request){
+	function getListViewCount(Vtiger_Request $request)
+	{
 		$folderId = $request->get('viewname');
-		if(empty($folderId)){
+		if (empty($folderId)) {
 			$folderId = 'All';
 		}
 		$listViewModel = new Reports_ListView_Model();
 		$listViewModel->set('folderid', $folderId);
 		$searchParams = $request->get('search_params');
-		if(!empty($searchParams[0])) {
+		if (!empty($searchParams[0])) {
 			$listViewModel->set('search_params', $searchParams[0]);
 		}
 		$count = $listViewModel->getListViewCount();
@@ -282,13 +297,14 @@ class Reports_List_View extends Vtiger_Index_View {
 	 * Function to get the page count for list
 	 * @return total number of pages
 	 */
-	function getPageCount(Vtiger_Request $request){
+	function getPageCount(Vtiger_Request $request)
+	{
 		$listViewCount = $this->getListViewCount($request);
 		$pagingModel = new Vtiger_Paging_Model();
 		$pageLimit = $pagingModel->getPageLimit();
 		$pageCount = ceil((int) $listViewCount / (int) $pageLimit);
 
-		if($pageCount == 0){
+		if ($pageCount == 0) {
 			$pageCount = 1;
 		}
 		$result = array();
@@ -299,13 +315,14 @@ class Reports_List_View extends Vtiger_Index_View {
 		$response->emit();
 	}
 
-	public function getHeaderCss(Vtiger_Request $request) {
+	public function getHeaderCss(Vtiger_Request $request)
+	{
 		$headerCssInstances = parent::getHeaderCss($request);
 		$cssFileNames = array(
-			"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/perfect-scrollbar/css/perfect-scrollbar.css",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/perfect-scrollbar/css/perfect-scrollbar.css",
 		);
 		$cssInstances = $this->checkAndConvertCssStyles($cssFileNames);
 		$headerCssInstances = array_merge($headerCssInstances, $cssInstances);
 		return $headerCssInstances;
 	}
-}
\ No newline at end of file
+}
diff --git a/modules/Settings/Vtiger/views/List.php b/modules/Settings/Vtiger/views/List.php
index 5770852e6929a7b1e43491e137dc105ae8262190..3eb6b242909a1e0b4da6c90b7ec561fac30a40ce 100644
--- a/modules/Settings/Vtiger/views/List.php
+++ b/modules/Settings/Vtiger/views/List.php
@@ -8,15 +8,19 @@
  * All Rights Reserved.
  ************************************************************************************/
 
-class Settings_Vtiger_List_View extends Settings_Vtiger_Index_View {
+class Settings_Vtiger_List_View extends Settings_Vtiger_Index_View
+{
 	protected $listViewEntries = false;
 	protected $listViewHeaders = false;
+	protected $fncalled        = false;
 
-	function __construct() {
+	function __construct()
+	{
 		parent::__construct();
 	}
 
-	function preProcess(Vtiger_Request $request, $display=true) {
+	function preProcess(Vtiger_Request $request, $display = true)
+	{
 		parent::preProcess($request, true);
 
 		$viewer = $this->getViewer($request);
@@ -26,7 +30,8 @@ class Settings_Vtiger_List_View extends Settings_Vtiger_Index_View {
 		$viewer->view('ListViewHeader.tpl', $request->getModule(false));
 	}
 
-	public function process(Vtiger_Request $request) {
+	public function process(Vtiger_Request $request)
+	{
 		$viewer = $this->getViewer($request);
 		$this->initializeListViewContents($request, $viewer);
 		$viewer->view('ListViewContents.tpl', $request->getModule(false));
@@ -35,120 +40,128 @@ 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');
-		
-		$searchKey = $request->get('search_key');
-		$searchValue = $request->get('search_value');
-		
-		if($sortOrder == "ASC"){
-			$nextSortOrder = "DESC";
-			$sortImage = "icon-chevron-down";
-		}else{
-			$nextSortOrder = "ASC";
-			$sortImage = "icon-chevron-up";
-		}
-		if(empty($pageNumber)) {
-			$pageNumber = 1;
-		}
+	public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer)
+	{
+
+		if ($this->fncalled == false) {
+			$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');
+
+			if ($sortOrder == "ASC") {
+				$nextSortOrder = "DESC";
+				$sortImage = "icon-chevron-down";
+			} else {
+				$nextSortOrder = "ASC";
+				$sortImage = "icon-chevron-up";
+			}
+			if (empty($pageNumber)) {
+				$pageNumber = 1;
+			}
 
-		$listViewModel = Settings_Vtiger_ListView_Model::getInstance($qualifiedModuleName);
+			$listViewModel = Settings_Vtiger_ListView_Model::getInstance($qualifiedModuleName);
 
-        // preProcess is already loading this, we can reuse
-        if(!$this->pagingModel){
-            $pagingModel = new Vtiger_Paging_Model();
-            $pagingModel->set('page', $pageNumber);
-        } else{
-            $pagingModel = $this->pagingModel;
-        }
+			// preProcess is already loading this, we can reuse
+			if (!$this->pagingModel) {
+				$pagingModel = new Vtiger_Paging_Model();
+				$pagingModel->set('page', $pageNumber);
+			} else {
+				$pagingModel = $this->pagingModel;
+			}
 
-		if(!empty($searchKey) && !empty($searchValue)) {
-			$listViewModel->set('search_key', $searchKey);
-			$listViewModel->set('search_value', $searchValue);
-		}
-		
-		if(!empty($orderBy)) {
-			$listViewModel->set('orderby', $orderBy);
-			$listViewModel->set('sortorder',$sortOrder);
-		}
-		if(!empty($sourceModule)) {
-			$listViewModel->set('sourceModule', $sourceModule);
-		}
-		if(!empty($forModule)) {
-			$listViewModel->set('formodule', $forModule);
-		}
-		if(!$this->listViewHeaders){
-			$this->listViewHeaders = $listViewModel->getListViewHeaders();
-		}
-		if(!$this->listViewEntries){
-            $pagingModel = new Vtiger_Paging_Model();
-            $pagingModel->set('page', $pageNumber);
-			$this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
-            $this->pagingModel = $pagingModel;
-		}
-		$noOfEntries = php7_count($this->listViewEntries);
-		if(!$this->listViewLinks){
-			$this->listViewLinks = $listViewModel->getListViewLinks();
-		}
-		$viewer->assign('LISTVIEW_LINKS', $this->listViewLinks);
+			if (!empty($searchKey) && !empty($searchValue)) {
+				$listViewModel->set('search_key', $searchKey);
+				$listViewModel->set('search_value', $searchValue);
+			}
+
+			if (!empty($orderBy)) {
+				$listViewModel->set('orderby', $orderBy);
+				$listViewModel->set('sortorder', $sortOrder);
+			}
+			if (!empty($sourceModule)) {
+				$listViewModel->set('sourceModule', $sourceModule);
+			}
+			if (!empty($forModule)) {
+				$listViewModel->set('formodule', $forModule);
+			}
+			if (!$this->listViewHeaders) {
+				$this->listViewHeaders = $listViewModel->getListViewHeaders();
+			}
+			if (!$this->listViewEntries) {
+				$pagingModel = new Vtiger_Paging_Model();
+				$pagingModel->set('page', $pageNumber);
+				$this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
+				$this->pagingModel = $pagingModel;
+			}
+			$noOfEntries = php7_count($this->listViewEntries);
+			if (!$this->listViewLinks) {
+				$this->listViewLinks = $listViewModel->getListViewLinks();
+			}
+			$viewer->assign('LISTVIEW_LINKS', $this->listViewLinks);
+
+			$viewer->assign('MODULE', $moduleName);
+			$viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
+			$viewer->assign('MODULE_MODEL', $listViewModel->getModule());
 
-		$viewer->assign('MODULE', $moduleName);
-		$viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
-		$viewer->assign('MODULE_MODEL', $listViewModel->getModule());
-
-        if(!$this->pagingModel){
-            $this->pagingModel = $pagingModel;
-        }
-        
-		$viewer->assign('PAGING_MODEL', $pagingModel);
-		$viewer->assign('PAGE_NUMBER',$pageNumber);
-
-		$viewer->assign('ORDER_BY',$orderBy);
-		$viewer->assign('SORT_ORDER',$sortOrder);
-		$viewer->assign('NEXT_SORT_ORDER',$nextSortOrder);
-		$viewer->assign('SORT_IMAGE',$sortImage);
-		$viewer->assign('COLUMN_NAME',$orderBy);
-
-		$viewer->assign('LISTVIEW_ENTRIES_COUNT',$noOfEntries);
-		$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
-		$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
-		$viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
-        $viewer->assign('SHOW_LISTVIEW_CHECKBOX', true);
-
-		if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
-			if(!$this->listViewCount){
-				$this->listViewCount = $listViewModel->getListViewCount();
+			if (!$this->pagingModel) {
+				$this->pagingModel = $pagingModel;
 			}
-			$totalCount = $this->listViewCount;
-			$pageLimit = $this->pagingModel->getPageLimit();
-			$pageCount = ceil((int) $totalCount / (int) $pageLimit);
 
-			if($pageCount == 0){
-				$pageCount = 1;
+			$viewer->assign('PAGING_MODEL', $pagingModel);
+			$viewer->assign('PAGE_NUMBER', $pageNumber);
+
+			$viewer->assign('ORDER_BY', $orderBy);
+			$viewer->assign('SORT_ORDER', $sortOrder);
+			$viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
+			$viewer->assign('SORT_IMAGE', $sortImage);
+			$viewer->assign('COLUMN_NAME', $orderBy);
+
+			$viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries);
+			$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
+			$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
+			$viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel());
+			$viewer->assign('SHOW_LISTVIEW_CHECKBOX', true);
+
+			if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
+				if (!$this->listViewCount) {
+					$this->listViewCount = $listViewModel->getListViewCount();
+				}
+				$totalCount = $this->listViewCount;
+				$pageLimit = $this->pagingModel->getPageLimit();
+				$pageCount = ceil((int) $totalCount / (int) $pageLimit);
+
+				if ($pageCount == 0) {
+					$pageCount = 1;
+				}
+				$viewer->assign('PAGE_COUNT', $pageCount);
+				$viewer->assign('LISTVIEW_COUNT', $totalCount);
 			}
-			$viewer->assign('PAGE_COUNT', $pageCount);
-			$viewer->assign('LISTVIEW_COUNT', $totalCount);
+
+			$this->fncalled = true;
 		}
 	}
-    
-    public function postProcess(Vtiger_Request $request) {
-        $viewer = $this->getViewer($request);
-        $viewer->view('ListViewFooter.tpl', $request->getModule(false));
-        parent::postProcess($request);
-    }
+
+	public function postProcess(Vtiger_Request $request)
+	{
+		$viewer = $this->getViewer($request);
+		$viewer->view('ListViewFooter.tpl', $request->getModule(false));
+		parent::postProcess($request);
+	}
 
 	/**
 	 * Function to get the list of Script models to be included
 	 * @param Vtiger_Request $request
 	 * @return <Array> - List of Vtiger_JsScript_Model instances
 	 */
-	function getHeaderScripts(Vtiger_Request $request) {
+	function getHeaderScripts(Vtiger_Request $request)
+	{
 		$headerScriptInstances = parent::getHeaderScripts($request);
 		$moduleName = $request->getModule();
 
@@ -157,30 +170,29 @@ class Settings_Vtiger_List_View extends Settings_Vtiger_Index_View {
 			'modules.Settings.Vtiger.resources.List',
 			"modules.Settings.$moduleName.resources.List",
 			"modules.Settings.Vtiger.resources.$moduleName",
-            "~layouts/v7/lib/jquery/sadropdown.js",
+			"~layouts/v7/lib/jquery/sadropdown.js",
 		);
 
 		$jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
 		$headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances);
 		return $headerScriptInstances;
 	}
-    
-     /**
-     * Setting module related Information to $viewer (for Vtiger7)
-     * @param type $request
-     * @param type $moduleModel
-     */
-    public function setModuleInfo($request, $moduleModel){
-        
-        $viewer = $this->getViewer($request);
-        $listViewModel = Settings_Vtiger_ListView_Model::getInstance($request->getModule(false));
-        $linkParams = array('MODULE'=>$request->getModule(false), 'ACTION'=>$request->get('view'));
-
-        if(!$this->listViewLinks){
-            $this->listViewLinks = $listViewModel->getListViewLinks($linkParams);
-        }
-        $viewer->assign('LISTVIEW_LINKS', $this->listViewLinks);
-        
-    }
-    
+
+	/**
+	 * Setting module related Information to $viewer (for Vtiger7)
+	 * @param type $request
+	 * @param type $moduleModel
+	 */
+	public function setModuleInfo($request, $moduleModel)
+	{
+
+		$viewer = $this->getViewer($request);
+		$listViewModel = Settings_Vtiger_ListView_Model::getInstance($request->getModule(false));
+		$linkParams = array('MODULE' => $request->getModule(false), 'ACTION' => $request->get('view'));
+
+		if (!$this->listViewLinks) {
+			$this->listViewLinks = $listViewModel->getListViewLinks($linkParams);
+		}
+		$viewer->assign('LISTVIEW_LINKS', $this->listViewLinks);
+	}
 }
diff --git a/modules/Vtiger/views/FindDuplicates.php b/modules/Vtiger/views/FindDuplicates.php
index 7d3c6631fa2c6cb575f08c42da09ae235e321b86..aafacfe5c2976cbdd31648c9834ba0910aede103 100644
--- a/modules/Vtiger/views/FindDuplicates.php
+++ b/modules/Vtiger/views/FindDuplicates.php
@@ -8,20 +8,26 @@
  * All Rights Reserved.
  ************************************************************************************/
 
-class Vtiger_FindDuplicates_View extends Vtiger_List_View {
+class Vtiger_FindDuplicates_View extends Vtiger_List_View
+{
 
-	function preProcess(Vtiger_Request $request, $display = true) {
-		$viewer = $this->getViewer ($request);
+	protected $fncalled = false;
+
+	function preProcess(Vtiger_Request $request, $display = true)
+	{
+		$viewer = $this->getViewer($request);
 		$this->initializeListViewContents($request, $viewer);
-        parent::preProcess($request, $display);
+		parent::preProcess($request, $display);
 	}
 
-	public function preProcessTplName(Vtiger_Request $request) {
+	public function preProcessTplName(Vtiger_Request $request)
+	{
 		return 'FindDuplicatePreProcess.tpl';
 	}
 
-	function process (Vtiger_Request $request) {
-		$viewer = $this->getViewer ($request);
+	function process(Vtiger_Request $request)
+	{
+		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
 		$this->initializeListViewContents($request, $viewer);
@@ -37,7 +43,8 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View {
 	 * @param Vtiger_Request $request
 	 * @return <Array> - List of Vtiger_JsScript_Model instances
 	 */
-	function getHeaderScripts(Vtiger_Request $request) {
+	function getHeaderScripts(Vtiger_Request $request)
+	{
 		$headerScriptInstances = parent::getHeaderScripts($request);
 		$moduleName = $request->getModule();
 
@@ -54,85 +61,92 @@ 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 ($userPrivilegesModel->hasModuleActionPermission($moduleModel->getId(), 'Delete')) {
-			$massActionLink = array(
-				'linktype' => 'LISTVIEWBASIC',
-				'linklabel' => 'LBL_DELETE',
-				'linkurl' => 'Javascript:Vtiger_FindDuplicates_Js.massDeleteRecords("index.php?module='.$module.'&action=MassDelete");',
-				'linkicon' => ''
-			);
-			$massActionLinks[] = Vtiger_Link_Model::getInstanceFromValues($massActionLink);
-		}
-
-		$viewer->assign('CURRENT_USER_PRIVILAGES_MODEL', $userPrivilegesModel);
-		$viewer->assign('LISTVIEW_LINKS', $massActionLinks);
-		$viewer->assign('MODULE_MODEL', $moduleModel);
-
-		$pageNumber = $request->get('page');
-		if(empty($pageNumber)){
-			$pageNumber = '1';
-		}
-        if (!$this->pagingModel) {
-            $pagingModel = new Vtiger_Paging_Model();
-            $this->pagingModel = $pagingModel;
-        } else {
-            $pagingModel = $this->pagingModel;
-        }
-        $pagingModel->set('page', $pageNumber);
-		$duplicateSearchFields = $request->get('fields');
-		$dataModelInstance = Vtiger_FindDuplicate_Model::getInstance($module);
-		$dataModelInstance->set('fields', $duplicateSearchFields);
-
-		$ignoreEmpty = $request->get('ignoreEmpty');
-		$ignoreEmptyValue = false;
-		if($ignoreEmpty == 'on' || $ignoreEmpty == 'true' || $ignoreEmpty == '1') $ignoreEmptyValue = true;
-		$dataModelInstance->set('ignoreEmpty', $ignoreEmptyValue);
-
-		if(!$this->listViewEntries) {
-			$this->listViewEntries = $dataModelInstance->getListViewEntries($pagingModel);
-		}
-
-		if(!$this->listViewHeaders){
-			$this->listViewHeaders = $dataModelInstance->getListViewHeaders();
-		}
-		if(!$this->rows) {
-			$this->rows = $dataModelInstance->getRecordCount();
-			$viewer->assign('TOTAL_COUNT', $this->rows);
+	public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer)
+	{
+
+		if ($this->fncalled == false) {
+			$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',
+					'linklabel' => 'LBL_DELETE',
+					'linkurl' => 'Javascript:Vtiger_FindDuplicates_Js.massDeleteRecords("index.php?module=' . $module . '&action=MassDelete");',
+					'linkicon' => ''
+				);
+				$massActionLinks[] = Vtiger_Link_Model::getInstanceFromValues($massActionLink);
+			}
+
+			$viewer->assign('CURRENT_USER_PRIVILAGES_MODEL', $userPrivilegesModel);
+			$viewer->assign('LISTVIEW_LINKS', $massActionLinks);
+			$viewer->assign('MODULE_MODEL', $moduleModel);
+
+			$pageNumber = $request->get('page');
+			if (empty($pageNumber)) {
+				$pageNumber = '1';
+			}
+			if (!$this->pagingModel) {
+				$pagingModel = new Vtiger_Paging_Model();
+				$this->pagingModel = $pagingModel;
+			} else {
+				$pagingModel = $this->pagingModel;
+			}
+			$pagingModel->set('page', $pageNumber);
+			$duplicateSearchFields = $request->get('fields');
+			$dataModelInstance = Vtiger_FindDuplicate_Model::getInstance($module);
+			$dataModelInstance->set('fields', $duplicateSearchFields);
+
+			$ignoreEmpty = $request->get('ignoreEmpty');
+			$ignoreEmptyValue = false;
+			if ($ignoreEmpty == 'on' || $ignoreEmpty == 'true' || $ignoreEmpty == '1') $ignoreEmptyValue = true;
+			$dataModelInstance->set('ignoreEmpty', $ignoreEmptyValue);
+
+			if (!$this->listViewEntries) {
+				$this->listViewEntries = $dataModelInstance->getListViewEntries($pagingModel);
+			}
+
+			if (!$this->listViewHeaders) {
+				$this->listViewHeaders = $dataModelInstance->getListViewHeaders();
+			}
+			if (!$this->rows) {
+				$this->rows = $dataModelInstance->getRecordCount();
+				$viewer->assign('TOTAL_COUNT', $this->rows);
+			}
+
+			$viewer->assign('IGNORE_EMPTY', $ignoreEmpty);
+			$viewer->assign('LISTVIEW_ENTRIES_COUNT', $pagingModel->recordCount);
+			$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
+			$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
+			$viewer->assign('PAGING_MODEL', $pagingModel);
+			$viewer->assign('PAGE_NUMBER', $pageNumber);
+			$viewer->assign('MODULE', $module);
+			$viewer->assign('DUPLICATE_SEARCH_FIELDS', $duplicateSearchFields);
+
+			$customViewModel = CustomView_Record_Model::getAllFilterByModule($module);
+			$viewer->assign('VIEW_NAME', $customViewModel->getId());
+
+			$this->fncalled = true;
 		}
-        
-		$viewer->assign('IGNORE_EMPTY', $ignoreEmpty);
-		$viewer->assign('LISTVIEW_ENTRIES_COUNT', $pagingModel->recordCount);
-		$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
-		$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
-		$viewer->assign('PAGING_MODEL', $pagingModel);
-		$viewer->assign('PAGE_NUMBER',$pageNumber);
-		$viewer->assign('MODULE', $module);
-		$viewer->assign('DUPLICATE_SEARCH_FIELDS', $duplicateSearchFields);
-
-		$customViewModel = CustomView_Record_Model::getAllFilterByModule($module);
-		$viewer->assign('VIEW_NAME', $customViewModel->getId());
 	}
 
 	/**
 	 * Function returns the number of records for the current filter
 	 * @param Vtiger_Request $request
 	 */
-	function getRecordsCount(Vtiger_Request $request) {
+	function getRecordsCount(Vtiger_Request $request)
+	{
 		$moduleName = $request->getModule();
 		$duplicateSearchFields = $request->get('fields');
 		$dataModelInstance = Vtiger_FindDuplicate_Model::getInstance($moduleName);
 
 		$ignoreEmpty = $request->get('ignoreEmpty');
 		$ignoreEmptyValue = false;
-		if($ignoreEmpty == 'on' || $ignoreEmpty == 'true' || $ignoreEmpty == '1') $ignoreEmptyValue = true;
+		if ($ignoreEmpty == 'on' || $ignoreEmpty == 'true' || $ignoreEmpty == '1') $ignoreEmptyValue = true;
 		$dataModelInstance->set('ignoreEmpty', $ignoreEmptyValue);
 
 		$dataModelInstance->set('fields', $duplicateSearchFields);
diff --git a/modules/Vtiger/views/List.php b/modules/Vtiger/views/List.php
index 2bc36f97235b9cf227cff4b0e7fd8629ecdcccc7..0c237ae3fd465a7acd9acf662c87cb13d14542fd 100644
--- a/modules/Vtiger/views/List.php
+++ b/modules/Vtiger/views/List.php
@@ -8,7 +8,8 @@
  * All Rights Reserved.
  ************************************************************************************/
 
-class Vtiger_List_View extends Vtiger_Index_View {
+class Vtiger_List_View extends Vtiger_Index_View
+{
 	protected $listViewEntries = false;
 	protected $listViewCount = false;
 	protected $listViewLinks = false;
@@ -16,23 +17,27 @@ class Vtiger_List_View extends Vtiger_Index_View {
 	protected $noOfEntries = false;
 	protected $pagingModel = false;
 	protected $listViewModel = false;
-	function __construct() {
+	protected $fncalled = false;
+	function __construct()
+	{
 		parent::__construct();
 	}
-	
-	public function requiresPermission(Vtiger_Request $request){
+
+	public function requiresPermission(Vtiger_Request $request)
+	{
 		$permissions = parent::requiresPermission($request);
-		
+
 		$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView');
 		return $permissions;
 	}
 
-	function preProcess(Vtiger_Request $request, $display=true) {
+	function preProcess(Vtiger_Request $request, $display = true)
+	{
 		parent::preProcess($request, false);
 
 		$moduleName = $request->getModule();
 		$customView = new CustomView();
-		if($customView->isPermittedCustomView($request->get('viewname'), 'List', $moduleName) != 'yes') {
+		if ($customView->isPermittedCustomView($request->get('viewname'), 'List', $moduleName) != 'yes') {
 			$viewName = $customView->getViewIdByName('All', $moduleName);
 			$request->set('viewname', $viewName);
 			$_REQUEST['viewname'] = $viewName;
@@ -41,29 +46,29 @@ class Vtiger_List_View extends Vtiger_Index_View {
 		$viewer = $this->getViewer($request);
 		$cvId = isset($this->viewName) ? $this->viewName : 0;
 
-		if(!$cvId) {
+		if (!$cvId) {
 			$customView = new CustomView();
 			$cvId = $customView->getViewId($moduleName);
 		}
 		$listHeaders = $request->get('list_headers', array());
 		$tag = $request->get('tag');
 
-		$listViewSessionKey = $moduleName.'_'.$cvId;
-		if(!empty($tag)) {
-			$listViewSessionKey .='_'.$tag;
+		$listViewSessionKey = $moduleName . '_' . $cvId;
+		if (!empty($tag)) {
+			$listViewSessionKey .= '_' . $tag;
 		}
-                
-                $this->listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId, $listHeaders);
+
+		$this->listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId, $listHeaders);
 		$orderParams = $this->listViewModel->getSortParamsSession($listViewSessionKey);
 
-		if(empty($listHeaders) && is_array($orderParams)) {
+		if (empty($listHeaders) && is_array($orderParams)) {
 			$listHeaders = $orderParams['list_headers'];
 		}
 
-		$linkParams = array('MODULE'=>$moduleName, 'ACTION'=>$request->get('view'));
+		$linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view'));
 		$viewer->assign('CUSTOM_VIEWS', CustomView_Record_Model::getAllByGroup($moduleName));
 		$this->viewName = $request->get('viewname');
-		if(empty($this->viewName)){
+		if (empty($this->viewName)) {
 			//If not view name exits then get it from custom view
 			//This can return default view id or view id present in session
 			$customView = new CustomView();
@@ -77,12 +82,13 @@ class Vtiger_List_View extends Vtiger_Index_View {
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
 		$viewer->assign('MODULE_MODEL', $moduleModel);
 
-		if($display) {
+		if ($display) {
 			$this->preProcessDisplay($request);
 		}
 	}
 
-	function preProcessTplName(Vtiger_Request $request) {
+	function preProcessTplName(Vtiger_Request $request)
+	{
 		return 'ListViewPreProcess.tpl';
 	}
 
@@ -92,22 +98,24 @@ class Vtiger_List_View extends Vtiger_Index_View {
 		return parent::preProcessTplName($request);
 	}*/
 
-	protected function preProcessDisplay(Vtiger_Request $request) {
+	protected function preProcessDisplay(Vtiger_Request $request)
+	{
 		parent::preProcessDisplay($request);
 	}
 
 
-	function process (Vtiger_Request $request) {
-		$viewer = $this->getViewer ($request);
+	function process(Vtiger_Request $request)
+	{
+		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
 		$viewName = $request->get('viewname');
-		if(!empty($viewName)) {
+		if (!empty($viewName)) {
 			$this->viewName = $viewName;
 		}
 
 		$this->initializeListViewContents($request, $viewer);
-		$this->assignCustomViews($request,$viewer);
+		$this->assignCustomViews($request, $viewer);
 		$viewer->assign('VIEW', $request->get('view'));
 		$viewer->assign('MODULE_MODEL', $moduleModel);
 		$viewer->assign('RECORD_ACTIONS', $this->getRecordActionsFromModule($moduleModel));
@@ -115,8 +123,9 @@ class Vtiger_List_View extends Vtiger_Index_View {
 		$viewer->view('ListViewContents.tpl', $moduleName);
 	}
 
-	function postProcess(Vtiger_Request $request) {
-		$viewer = $this->getViewer ($request);
+	function postProcess(Vtiger_Request $request)
+	{
+		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 
 		$viewer->view('ListViewPostProcess.tpl', $moduleName);
@@ -128,7 +137,8 @@ class Vtiger_List_View extends Vtiger_Index_View {
 	 * @param Vtiger_Request $request
 	 * @return <Array> - List of Vtiger_JsScript_Model instances
 	 */
-	function getHeaderScripts(Vtiger_Request $request) {
+	function getHeaderScripts(Vtiger_Request $request)
+	{
 		$headerScriptInstances = parent::getHeaderScripts($request);
 		$moduleName = $request->getModule();
 
@@ -146,8 +156,8 @@ class Vtiger_List_View extends Vtiger_Index_View {
 			"modules.Vtiger.resources.MergeRecords",
 			"~layouts/v7/lib/jquery/Lightweight-jQuery-In-page-Filtering-Plugin-instaFilta/instafilta.min.js",
 			'modules.Vtiger.resources.Tag',
-			"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/floatThead/jquery.floatThead.js",
-			"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/perfect-scrollbar/js/perfect-scrollbar.jquery.js"
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/floatThead/jquery.floatThead.js",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/perfect-scrollbar/js/perfect-scrollbar.jquery.js"
 		);
 
 		$jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
@@ -158,286 +168,295 @@ 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->listViewModel) {
-			$listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId, $listHeaders);
-		} else {
-			$listViewModel = $this->listViewModel;
-		}
+	public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer)
+	{
+
+		if ($this->fncalled == false) {
+			$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);
+			} else {
+				$listViewModel = $this->listViewModel;
+			}
 
-		if(!empty($requestViewName) && empty($tag)) {
-			unset($_SESSION[$tagSessionKey]);
-		}
+			if (!empty($requestViewName) && empty($tag)) {
+				unset($_SESSION[$tagSessionKey]);
+			}
 
-		if(empty($tag)) {   
-			$tagSessionVal = $listViewModel->getSortParamsSession($tagSessionKey);
-			if(!empty($tagSessionVal)) {
-				$tag = $tagSessionVal;
+			if (empty($tag)) {
+				$tagSessionVal = $listViewModel->getSortParamsSession($tagSessionKey);
+				if (!empty($tagSessionVal)) {
+					$tag = $tagSessionVal;
+				}
+			} else {
+				$listViewModel->setSortParamsSession($tagSessionKey, $tag);
 			}
-		}else{
-			$listViewModel->setSortParamsSession($tagSessionKey, $tag);
-		}
 
-                if(empty($cvId)) {
-			$customView = new CustomView();
-			$cvId = $customView->getViewId($moduleName);
-		}
-                
-		$listViewSessionKey = $moduleName.'_'.$cvId;
-		if(!empty($tag)) {
-			$listViewSessionKey .='_'.$tag;
-		}
+			if (empty($cvId)) {
+				$customView = new CustomView();
+				$cvId = $customView->getViewId($moduleName);
+			}
 
-		$orderParams = $listViewModel->getSortParamsSession($listViewSessionKey);
-		if($request->get('mode') == 'removeAlphabetSearch') {
-			$listViewModel->deleteParamsSession($listViewSessionKey, array('search_key', 'search_value', 'operator'));
-			$searchKey = '';
-			$searchValue = '';
-			$operator = '';
-		}
-		if($request->get('mode') == 'removeSorting') {
-			$listViewModel->deleteParamsSession($listViewSessionKey, array('orderby', 'sortorder'));
-			$orderBy = '';
-			$sortOrder = '';
-		}
-		if(empty($listHeaders) && is_array($orderParams)) {
-			$listHeaders = $orderParams['list_headers'];
-		}
-                
-                
-		if(!empty($tag) && empty($tagParams) && is_array($orderParams)){
-                    $tagParams = $orderParams['tag_params'];
-		}
-                
-		if(empty($orderBy) && empty($searchValue) && empty($pageNumber)) {
-			if($orderParams) {
-				$pageNumber = $orderParams['page'];
-				$orderBy = $orderParams['orderby'];
-				$sortOrder = $orderParams['sortorder'];
-				$searchKey = $orderParams['search_key'];
-				$searchValue = $orderParams['search_value'];
-				$operator = $orderParams['operator'];
-                                if(empty($tagParams)){
-					$tagParams = $orderParams['tag_params'];
-				}
-				if(empty($searchParams)) {
-					$searchParams = $orderParams['search_params']; 
-				}
+			$listViewSessionKey = $moduleName . '_' . $cvId;
+			if (!empty($tag)) {
+				$listViewSessionKey .= '_' . $tag;
+			}
 
-				if(empty($starFilterMode)) {
-					$starFilterMode = $orderParams['star_filter_mode'];
-				}
+			$orderParams = $listViewModel->getSortParamsSession($listViewSessionKey);
+			if ($request->get('mode') == 'removeAlphabetSearch') {
+				$listViewModel->deleteParamsSession($listViewSessionKey, array('search_key', 'search_value', 'operator'));
+				$searchKey = '';
+				$searchValue = '';
+				$operator = '';
+			}
+			if ($request->get('mode') == 'removeSorting') {
+				$listViewModel->deleteParamsSession($listViewSessionKey, array('orderby', 'sortorder'));
+				$orderBy = '';
+				$sortOrder = '';
 			}
-		} else if($request->get('nolistcache') != 1) {
-			$params = array('page' => $pageNumber, 'orderby' => $orderBy, 'sortorder' => $sortOrder, 'search_key' => $searchKey,
-				'search_value' => $searchValue, 'operator' => $operator, 'tag_params' => $tagParams,'star_filter_mode'=> $starFilterMode,'search_params' =>$searchParams);
+			if (empty($listHeaders) && is_array($orderParams)) {
+				$listHeaders = $orderParams['list_headers'];
+			}
+
 
-			if(!empty($listHeaders)) {
-				$params['list_headers'] = $listHeaders;
+			if (!empty($tag) && empty($tagParams) && is_array($orderParams)) {
+				$tagParams = $orderParams['tag_params'];
 			}
-			$listViewModel->setSortParamsSession($listViewSessionKey, $params);
-		}
-		if($sortOrder == "ASC"){
-			$nextSortOrder = "DESC";
-			$sortImage = "icon-chevron-down";
-			$faSortImage = "fa-sort-desc";
-		}else{
-			$nextSortOrder = "ASC";
-			$sortImage = "icon-chevron-up";
-			$faSortImage = "fa-sort-asc";
-		}
 
-		if(empty ($pageNumber)){
-			$pageNumber = '1';
-		}
+			if (empty($orderBy) && empty($searchValue) && empty($pageNumber)) {
+				if ($orderParams) {
+					$pageNumber = $orderParams['page'];
+					$orderBy = $orderParams['orderby'];
+					$sortOrder = $orderParams['sortorder'];
+					$searchKey = $orderParams['search_key'];
+					$searchValue = $orderParams['search_value'];
+					$operator = $orderParams['operator'];
+					if (empty($tagParams)) {
+						$tagParams = $orderParams['tag_params'];
+					}
+					if (empty($searchParams)) {
+						$searchParams = $orderParams['search_params'];
+					}
 
-		$currentUser = Users_Record_Model::getCurrentUserModel();
+					if (empty($starFilterMode)) {
+						$starFilterMode = $orderParams['star_filter_mode'];
+					}
+				}
+			} else if ($request->get('nolistcache') != 1) {
+				$params = array(
+					'page' => $pageNumber, 'orderby' => $orderBy, 'sortorder' => $sortOrder, 'search_key' => $searchKey,
+					'search_value' => $searchValue, 'operator' => $operator, 'tag_params' => $tagParams, 'star_filter_mode' => $starFilterMode, 'search_params' => $searchParams
+				);
+
+				if (!empty($listHeaders)) {
+					$params['list_headers'] = $listHeaders;
+				}
+				$listViewModel->setSortParamsSession($listViewSessionKey, $params);
+			}
+			if ($sortOrder == "ASC") {
+				$nextSortOrder = "DESC";
+				$sortImage = "icon-chevron-down";
+				$faSortImage = "fa-sort-desc";
+			} else {
+				$nextSortOrder = "ASC";
+				$sortImage = "icon-chevron-up";
+				$faSortImage = "fa-sort-asc";
+			}
 
-		$linkParams = array('MODULE'=>$moduleName, 'ACTION'=>$request->get('view'), 'CVID'=>$cvId);
-		$linkModels = $listViewModel->getListViewMassActions($linkParams);
+			if (empty($pageNumber)) {
+				$pageNumber = '1';
+			}
 
-		// preProcess is already loading this, we can reuse
-		if(!$this->pagingModel){
-			$pagingModel = new Vtiger_Paging_Model();
-			$pagingModel->set('page', $pageNumber);
-			$pagingModel->set('viewid', $request->get('viewname'));
-		} else{
-			$pagingModel = $this->pagingModel;
-		}
+			$currentUser = Users_Record_Model::getCurrentUserModel();
 
-		if(!empty($orderBy)) {
-			$listViewModel->set('orderby', $orderBy);
-			$listViewModel->set('sortorder',$sortOrder);
-		}
+			$linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view'), 'CVID' => $cvId);
+			$linkModels = $listViewModel->getListViewMassActions($linkParams);
 
-		if(!empty($operator)) {
-			$listViewModel->set('operator', $operator);
-			$viewer->assign('OPERATOR',$operator);
-			$viewer->assign('ALPHABET_VALUE',$searchValue);
-		}
-		if(!empty($searchKey) && !empty($searchValue)) {
-			$listViewModel->set('search_key', $searchKey);
-			$listViewModel->set('search_value', $searchValue);
-		}
+			// preProcess is already loading this, we can reuse
+			if (!$this->pagingModel) {
+				$pagingModel = new Vtiger_Paging_Model();
+				$pagingModel->set('page', $pageNumber);
+				$pagingModel->set('viewid', $request->get('viewname'));
+			} else {
+				$pagingModel = $this->pagingModel;
+			}
 
-		if(empty($searchParams)) {
-			$searchParams = array();
-		}
-		if(php7_count($searchParams) == 2 && empty($searchParams[1])) {
-			unset($searchParams[1]);
-		}
+			if (!empty($orderBy)) {
+				$listViewModel->set('orderby', $orderBy);
+				$listViewModel->set('sortorder', $sortOrder);
+			}
 
-		if(empty($tagParams)){
-			$tagParams = array();
-		}
+			if (!empty($operator)) {
+				$listViewModel->set('operator', $operator);
+				$viewer->assign('OPERATOR', $operator);
+				$viewer->assign('ALPHABET_VALUE', $searchValue);
+			}
+			if (!empty($searchKey) && !empty($searchValue)) {
+				$listViewModel->set('search_key', $searchKey);
+				$listViewModel->set('search_value', $searchValue);
+			}
 
-		$searchAndTagParams = array_merge($searchParams, $tagParams);
+			if (empty($searchParams)) {
+				$searchParams = array();
+			}
+			if (php7_count($searchParams) == 2 && empty($searchParams[1])) {
+				unset($searchParams[1]);
+			}
+
+			if (empty($tagParams)) {
+				$tagParams = array();
+			}
+
+			$searchAndTagParams = array_merge($searchParams, $tagParams);
 
-		$transformedSearchParams = $this->transferListSearchParamsToFilterCondition($searchAndTagParams, $listViewModel->getModule());
-		$listViewModel->set('search_params',$transformedSearchParams);
+			$transformedSearchParams = $this->transferListSearchParamsToFilterCondition($searchAndTagParams, $listViewModel->getModule());
+			$listViewModel->set('search_params', $transformedSearchParams);
 
 
-		//To make smarty to get the details easily accesible
-		foreach($searchParams as $fieldListGroup){
-			foreach($fieldListGroup as $fieldSearchInfo){
-				$fieldSearchInfo['searchValue'] = $fieldSearchInfo[2];
-				$fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0];
-				$fieldSearchInfo['comparator'] = $fieldSearchInfo[1];
-				$searchParams[$fieldName] = $fieldSearchInfo;
+			//To make smarty to get the details easily accesible
+			foreach ($searchParams as $fieldListGroup) {
+				foreach ($fieldListGroup as $fieldSearchInfo) {
+					$fieldSearchInfo['searchValue'] = $fieldSearchInfo[2];
+					$fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0];
+					$fieldSearchInfo['comparator'] = $fieldSearchInfo[1];
+					$searchParams[$fieldName] = $fieldSearchInfo;
+				}
 			}
-		}
 
-		foreach($tagParams as $fieldListGroup){
-			foreach($fieldListGroup as $fieldSearchInfo){
-				$fieldSearchInfo['searchValue'] = $fieldSearchInfo[2];
-				$fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0];
-				$fieldSearchInfo['comparator'] = $fieldSearchInfo[1];
-				$tagParams[$fieldName] = $fieldSearchInfo;
+			foreach ($tagParams as $fieldListGroup) {
+				foreach ($fieldListGroup as $fieldSearchInfo) {
+					$fieldSearchInfo['searchValue'] = $fieldSearchInfo[2];
+					$fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0];
+					$fieldSearchInfo['comparator'] = $fieldSearchInfo[1];
+					$tagParams[$fieldName] = $fieldSearchInfo;
+				}
 			}
-		}
 
-		if(!$this->listViewHeaders){
-			$this->listViewHeaders = $listViewModel->getListViewHeaders();
-		}
+			if (!$this->listViewHeaders) {
+				$this->listViewHeaders = $listViewModel->getListViewHeaders();
+			}
 
-		if(!$this->listViewEntries){
-			$this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
-		}
-		//if list view entries restricted to show, paging should not fail
-		if(!$this->noOfEntries) {
-			$this->noOfEntries = $pagingModel->get('_listcount');
-		}
-		if(!$this->noOfEntries) {
-			$noOfEntries = php7_count($this->listViewEntries);
-		} else {
-			$noOfEntries = $this->noOfEntries;
-		}
-		$viewer->assign('MODULE', $moduleName);
+			if (!$this->listViewEntries) {
+				$this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
+			}
+			//if list view entries restricted to show, paging should not fail
+			if (!$this->noOfEntries) {
+				$this->noOfEntries = $pagingModel->get('_listcount');
+			}
+			if (!$this->noOfEntries) {
+				$noOfEntries = php7_count($this->listViewEntries);
+			} else {
+				$noOfEntries = $this->noOfEntries;
+			}
+			$viewer->assign('MODULE', $moduleName);
 
-		if(!$this->listViewLinks){
-			$this->listViewLinks = $listViewModel->getListViewLinks($linkParams);
-		}
-		$viewer->assign('LISTVIEW_LINKS', $this->listViewLinks);
+			if (!$this->listViewLinks) {
+				$this->listViewLinks = $listViewModel->getListViewLinks($linkParams);
+			}
+			$viewer->assign('LISTVIEW_LINKS', $this->listViewLinks);
 
-		$viewer->assign('LISTVIEW_MASSACTIONS', $linkModels['LISTVIEWMASSACTION']);
+			$viewer->assign('LISTVIEW_MASSACTIONS', $linkModels['LISTVIEWMASSACTION']);
 
-		$viewer->assign('PAGING_MODEL', $pagingModel);
-		if(!$this->pagingModel){
-			$this->pagingModel = $pagingModel;
-		}
-		$viewer->assign('PAGE_NUMBER',$pageNumber);
+			$viewer->assign('PAGING_MODEL', $pagingModel);
+			if (!$this->pagingModel) {
+				$this->pagingModel = $pagingModel;
+			}
+			$viewer->assign('PAGE_NUMBER', $pageNumber);
 
-		if(!isset($this->moduleFieldStructure) || !$this->moduleFieldStructure) {
-			$recordStructure = Vtiger_RecordStructure_Model::getInstanceForModule($listViewModel->getModule(), Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_FILTER);
-			$this->moduleFieldStructure = $recordStructure->getStructure();   
-		}
+			if (!isset($this->moduleFieldStructure) || !$this->moduleFieldStructure) {
+				$recordStructure = Vtiger_RecordStructure_Model::getInstanceForModule($listViewModel->getModule(), Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_FILTER);
+				$this->moduleFieldStructure = $recordStructure->getStructure();
+			}
 
-		if(!isset($this->tags) || !$this->tags) {
-			$this->tags = Vtiger_Tag_Model::getAllAccessible($currentUser->id, $moduleName);
-		}
-		if(!isset($this->allUserTags) || !$this->allUserTags) {
-			$this->allUserTags = Vtiger_Tag_Model::getAllUserTags($currentUser->getId());
-		}
+			if (!isset($this->tags) || !$this->tags) {
+				$this->tags = Vtiger_Tag_Model::getAllAccessible($currentUser->id, $moduleName);
+			}
+			if (!isset($this->allUserTags) || !$this->allUserTags) {
+				$this->allUserTags = Vtiger_Tag_Model::getAllUserTags($currentUser->getId());
+			}
 
-		$listViewController = $listViewModel->get('listview_controller');
-		$selectedHeaderFields = $listViewController->getListViewHeaderFields();
-
-		$viewer->assign('ORDER_BY',$orderBy);
-		$viewer->assign('SORT_ORDER',$sortOrder);
-		$viewer->assign('NEXT_SORT_ORDER',$nextSortOrder);
-		$viewer->assign('SORT_IMAGE',$sortImage);
-		$viewer->assign('FASORT_IMAGE',$faSortImage);
-		$viewer->assign('COLUMN_NAME',$orderBy);
-		$viewer->assign('VIEWNAME',$this->viewName);
-
-		$viewer->assign('LISTVIEW_ENTRIES_COUNT',$noOfEntries);
-		$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
-		$viewer->assign('LIST_HEADER_FIELDS', json_encode(array_keys($this->listViewHeaders)));
-		$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
-		$viewer->assign('MODULE_FIELD_STRUCTURE', $this->moduleFieldStructure);
-		$viewer->assign('SELECTED_HEADER_FIELDS', $selectedHeaderFields);
-		$viewer->assign('TAGS', $this->tags);
-		$viewer->assign('ALL_USER_TAGS', $this->allUserTags);
-		$viewer->assign('ALL_CUSTOMVIEW_MODEL', CustomView_Record_Model::getAllFilterByModule($moduleName));
-		$viewer->assign('CURRENT_TAG',$tag);
-		$appName = $request->get('app');
-		if(!empty($appName)){
-			$viewer->assign('SELECTED_MENU_CATEGORY',$appName);
-		}
-		if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
-			if(!$this->listViewCount){
-				$this->listViewCount = $listViewModel->getListViewCount();
+			$listViewController = $listViewModel->get('listview_controller');
+			$selectedHeaderFields = $listViewController->getListViewHeaderFields();
+
+			$viewer->assign('ORDER_BY', $orderBy);
+			$viewer->assign('SORT_ORDER', $sortOrder);
+			$viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
+			$viewer->assign('SORT_IMAGE', $sortImage);
+			$viewer->assign('FASORT_IMAGE', $faSortImage);
+			$viewer->assign('COLUMN_NAME', $orderBy);
+			$viewer->assign('VIEWNAME', $this->viewName);
+
+			$viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries);
+			$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
+			$viewer->assign('LIST_HEADER_FIELDS', json_encode(array_keys($this->listViewHeaders)));
+			$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
+			$viewer->assign('MODULE_FIELD_STRUCTURE', $this->moduleFieldStructure);
+			$viewer->assign('SELECTED_HEADER_FIELDS', $selectedHeaderFields);
+			$viewer->assign('TAGS', $this->tags);
+			$viewer->assign('ALL_USER_TAGS', $this->allUserTags);
+			$viewer->assign('ALL_CUSTOMVIEW_MODEL', CustomView_Record_Model::getAllFilterByModule($moduleName));
+			$viewer->assign('CURRENT_TAG', $tag);
+			$appName = $request->get('app');
+			if (!empty($appName)) {
+				$viewer->assign('SELECTED_MENU_CATEGORY', $appName);
 			}
-			$totalCount = $this->listViewCount;
-			$pageLimit = $pagingModel->getPageLimit();
-			$pageCount = ceil((int) $totalCount / (int) $pageLimit);
+			if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
+				if (!$this->listViewCount) {
+					$this->listViewCount = $listViewModel->getListViewCount();
+				}
+				$totalCount = $this->listViewCount;
+				$pageLimit = $pagingModel->getPageLimit();
+				$pageCount = ceil((int) $totalCount / (int) $pageLimit);
 
-			if($pageCount == 0){
-				$pageCount = 1;
+				if ($pageCount == 0) {
+					$pageCount = 1;
+				}
+				$viewer->assign('PAGE_COUNT', $pageCount);
+				$viewer->assign('LISTVIEW_COUNT', $totalCount);
 			}
-			$viewer->assign('PAGE_COUNT', $pageCount);
-			$viewer->assign('LISTVIEW_COUNT', $totalCount);
-		}
-		$viewer->assign('LIST_VIEW_MODEL', $listViewModel);
-		$viewer->assign('GROUPS_IDS', Vtiger_Util_Helper::getGroupsIdsForUsers($currentUser->getId()));
-		$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'));
-		$viewer->assign('SEARCH_DETAILS', $searchParams);
-                $viewer->assign('TAG_DETAILS', $tagParams);
-		$viewer->assign('NO_SEARCH_PARAMS_CACHE', $request->get('nolistcache'));
-		$viewer->assign('STAR_FILTER_MODE',$starFilterMode);
-		$viewer->assign('VIEWID', $cvId);
-		//Vtiger7
-		$viewer->assign('REQUEST_INSTANCE',$request);
-
-		//vtiger7
-		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
-		if($moduleModel->isQuickPreviewEnabled()){
-			$viewer->assign('QUICK_PREVIEW_ENABLED', 'true');
-		}
+			$viewer->assign('LIST_VIEW_MODEL', $listViewModel);
+			$viewer->assign('GROUPS_IDS', Vtiger_Util_Helper::getGroupsIdsForUsers($currentUser->getId()));
+			$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'));
+			$viewer->assign('SEARCH_DETAILS', $searchParams);
+			$viewer->assign('TAG_DETAILS', $tagParams);
+			$viewer->assign('NO_SEARCH_PARAMS_CACHE', $request->get('nolistcache'));
+			$viewer->assign('STAR_FILTER_MODE', $starFilterMode);
+			$viewer->assign('VIEWID', $cvId);
+			//Vtiger7
+			$viewer->assign('REQUEST_INSTANCE', $request);
+
+			//vtiger7
+			$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
+			if ($moduleModel->isQuickPreviewEnabled()) {
+				$viewer->assign('QUICK_PREVIEW_ENABLED', 'true');
+			}
+
+			$picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName);
+			$viewer->assign('PICKIST_DEPENDENCY_DATASOURCE', Zend_Json::encode($picklistDependencyDatasource));
 
-		$picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName);
-		$viewer->assign('PICKIST_DEPENDENCY_DATASOURCE',Zend_Json::encode($picklistDependencyDatasource));
+			$this->fncalled = true;
+		}
 	}
 
-	protected function assignCustomViews(Vtiger_Request $request, Vtiger_Viewer $viewer) {
+	protected function assignCustomViews(Vtiger_Request $request, Vtiger_Viewer $viewer)
+	{
 		$allCustomViews = CustomView_Record_Model::getAllByGroup($request->getModule());
 		if (!empty($allCustomViews)) {
 			$viewer->assign('CUSTOM_VIEWS', $allCustomViews);
@@ -458,7 +477,8 @@ class Vtiger_List_View extends Vtiger_Index_View {
 	 * Function returns the number of records for the current filter
 	 * @param Vtiger_Request $request
 	 */
-	function getRecordsCount(Vtiger_Request $request) {
+	function getRecordsCount(Vtiger_Request $request)
+	{
 		$moduleName = $request->getModule();
 		$cvId = $request->get('viewname');
 		$count = $this->getListViewCount($request);
@@ -478,10 +498,11 @@ class Vtiger_List_View extends Vtiger_Index_View {
 	 * Function to get listView count
 	 * @param Vtiger_Request $request
 	 */
-	function getListViewCount(Vtiger_Request $request){
+	function getListViewCount(Vtiger_Request $request)
+	{
 		$moduleName = $request->getModule();
 		$cvId = $request->get('viewname');
-		if(empty($cvId)) {
+		if (empty($cvId)) {
 			$cvId = '0';
 		}
 
@@ -491,17 +512,17 @@ class Vtiger_List_View extends Vtiger_Index_View {
 
 		$listViewModel = Vtiger_ListView_Model::getInstance($moduleName, $cvId);
 
-		if(empty($tagParams)){
+		if (empty($tagParams)) {
 			$tagParams = array();
 		}
 
 		$searchParams = $request->get('search_params');
-		if(empty($searchParams) && !is_array($searchParams)){
+		if (empty($searchParams) && !is_array($searchParams)) {
 			$searchParams = array();
 		}
 		$searchAndTagParams = array_merge($searchParams, $tagParams);
 
-		$listViewModel->set('search_params',$this->transferListSearchParamsToFilterCondition($searchAndTagParams, $listViewModel->getModule()));
+		$listViewModel->set('search_params', $this->transferListSearchParamsToFilterCondition($searchAndTagParams, $listViewModel->getModule()));
 
 		$listViewModel->set('search_key', $searchKey);
 		$listViewModel->set('search_value', $searchValue);
@@ -509,9 +530,9 @@ class Vtiger_List_View extends Vtiger_Index_View {
 
 		// for Documents folders we should filter with folder id as well
 		$folder_value = $request->get('folder_value');
-		if(!empty($folder_value)){
-			$listViewModel->set('folder_id',$request->get('folder_id'));
-			$listViewModel->set('folder_value',$folder_value);
+		if (!empty($folder_value)) {
+			$listViewModel->set('folder_id', $request->get('folder_id'));
+			$listViewModel->set('folder_value', $folder_value);
 		}
 
 		$count = $listViewModel->getListViewCount();
@@ -525,13 +546,14 @@ class Vtiger_List_View extends Vtiger_Index_View {
 	 * Function to get the page count for list
 	 * @return total number of pages
 	 */
-	function getPageCount(Vtiger_Request $request){
+	function getPageCount(Vtiger_Request $request)
+	{
 		$listViewCount = $this->getListViewCount($request);
 		$pagingModel = new Vtiger_Paging_Model();
 		$pageLimit = $pagingModel->getPageLimit();
 		$pageCount = ceil((int) $listViewCount / (int) $pageLimit);
 
-		if($pageCount == 0){
+		if ($pageCount == 0) {
 			$pageCount = 1;
 		}
 		$result = array();
@@ -543,21 +565,24 @@ class Vtiger_List_View extends Vtiger_Index_View {
 	}
 
 
-	public function transferListSearchParamsToFilterCondition($listSearchParams, $moduleModel) {
+	public function transferListSearchParamsToFilterCondition($listSearchParams, $moduleModel)
+	{
 		return Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($listSearchParams, $moduleModel);
 	}
 
-	public function getHeaderCss(Vtiger_Request $request) {
+	public function getHeaderCss(Vtiger_Request $request)
+	{
 		$headerCssInstances = parent::getHeaderCss($request);
 		$cssFileNames = array(
-			"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/perfect-scrollbar/css/perfect-scrollbar.css",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/perfect-scrollbar/css/perfect-scrollbar.css",
 		);
 		$cssInstances = $this->checkAndConvertCssStyles($cssFileNames);
 		$headerCssInstances = array_merge($headerCssInstances, $cssInstances);
 		return $headerCssInstances;
 	}
 
-	public function getRecordActionsFromModule($moduleModel) {
+	public function getRecordActionsFromModule($moduleModel)
+	{
 		$editPermission = $deletePermission = 0;
 		if ($moduleModel) {
 			$editPermission	= $moduleModel->isPermitted('EditView');
@@ -570,4 +595,4 @@ class Vtiger_List_View extends Vtiger_Index_View {
 
 		return $recordActions;
 	}
-}
\ No newline at end of file
+}
diff --git a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php
index 03b2e57bef5156d46f323e9e916f57f408518a98..df4f6b6390e9aa06d792d204a79280a57bea9221 100644
--- a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php
+++ b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php
@@ -8,26 +8,34 @@
  * All Rights Reserved.
  ************************************************************************************/
 
-class EmailTemplates_List_View extends Vtiger_Index_View {
+class EmailTemplates_List_View extends Vtiger_Index_View
+{
 
-	function __construct() {
+
+	protected $fncalled = false;
+
+	function __construct()
+	{
 		parent::__construct();
 	}
 
-    public function requiresPermission(\Vtiger_Request $request) {
+	public function requiresPermission(\Vtiger_Request $request)
+	{
 		return array();
 	}
-    
-    public function checkPermission($request) {
-        $moduleName = $request->getModule();
+
+	public function checkPermission($request)
+	{
+		$moduleName = $request->getModule();
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
-        if(!$moduleModel->isActive()){
-            return false;
-        }
-        return true;
-    }
-    
-	function preProcess(Vtiger_Request $request, $display = true) {
+		if (!$moduleModel->isActive()) {
+			return false;
+		}
+		return true;
+	}
+
+	function preProcess(Vtiger_Request $request, $display = true)
+	{
 		parent::preProcess($request, false);
 
 		$viewer = $this->getViewer($request);
@@ -47,11 +55,13 @@ class EmailTemplates_List_View extends Vtiger_Index_View {
 		}
 	}
 
-	function preProcessTplName(Vtiger_Request $request) {
+	function preProcessTplName(Vtiger_Request $request)
+	{
 		return 'ListViewPreProcess.tpl';
 	}
 
-	function process(Vtiger_Request $request) {
+	function process(Vtiger_Request $request)
+	{
 		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
@@ -64,14 +74,15 @@ class EmailTemplates_List_View extends Vtiger_Index_View {
 		$orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName);
 		// TODO : need to remove this when vtiger6 is removed
 		$defaultLayout = Vtiger_Viewer::getDefaultLayoutName();
-		if($orderParams['viewType'] == 'grid' && $defaultLayout == 'v7'){
-			$viewer->view('GridViewContents.tpl',$moduleName);
+		if ($orderParams['viewType'] == 'grid' && $defaultLayout == 'v7') {
+			$viewer->view('GridViewContents.tpl', $moduleName);
 		} else {
 			$viewer->view('ListViewContents.tpl', $moduleName);
 		}
 	}
 
-	function postProcess(Vtiger_Request $request) {
+	function postProcess(Vtiger_Request $request)
+	{
 		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 
@@ -82,151 +93,160 @@ 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 ($request->get('mode') == 'removeAlphabetSearch') {
-			Vtiger_ListView_Model::deleteParamsSession($moduleName, array('search_key', 'search_value', 'operator'));
-			$searchKey = '';
-			$searchValue = '';
-			$operator = '';
-		}
-		if ($request->get('mode') == 'removeSorting') {
-			Vtiger_ListView_Model::deleteParamsSession($moduleName, array('orderby', 'sortorder'));
-			$orderBy = '';
-			$sortOrder = '';
-		}
-		if (empty($orderBy) && empty($searchValue) && empty($pageNumber)) {
+	public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer)
+	{
+
+		if ($this->fncalled == false) {
+			$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 ($orderParams) {
-				$pageNumber = $orderParams['page'];
-				$orderBy = $orderParams['orderby'];
-				$sortOrder = $orderParams['sortorder'];
-				$searchKey = $orderParams['search_key'];
-				$searchValue = $orderParams['search_value'];
-				$operator = $orderParams['operator'];
-				$viewType = $orderParams['viewType']; // Retrieving value from session
+			if ($request->get('mode') == 'removeAlphabetSearch') {
+				Vtiger_ListView_Model::deleteParamsSession($moduleName, array('search_key', 'search_value', 'operator'));
+				$searchKey = '';
+				$searchValue = '';
+				$operator = '';
+			}
+			if ($request->get('mode') == 'removeSorting') {
+				Vtiger_ListView_Model::deleteParamsSession($moduleName, array('orderby', 'sortorder'));
+				$orderBy = '';
+				$sortOrder = '';
+			}
+			if (empty($orderBy) && empty($searchValue) && empty($pageNumber)) {
+				$orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName);
+				if ($orderParams) {
+					$pageNumber = $orderParams['page'];
+					$orderBy = $orderParams['orderby'];
+					$sortOrder = $orderParams['sortorder'];
+					$searchKey = $orderParams['search_key'];
+					$searchValue = $orderParams['search_value'];
+					$operator = $orderParams['operator'];
+					$viewType = $orderParams['viewType']; // Retrieving value from session
+				}
+			} else if ($request->get('nolistcache') != 1) {
+				//Setting params to session
+				$params = array(
+					'page' => $pageNumber, 'orderby' => $orderBy, 'sortorder' => $sortOrder, 'search_key' => $searchKey,
+					'search_value' => $searchValue, 'operator' => $operator, 'viewType' => $viewType
+				);
+				Vtiger_ListView_Model::setSortParamsSession($moduleName, $params);
 			}
-		} else if ($request->get('nolistcache') != 1) {
-			//Setting params to session
-			$params = array('page' => $pageNumber, 'orderby' => $orderBy, 'sortorder' => $sortOrder, 'search_key' => $searchKey,
-							'search_value' => $searchValue, 'operator' => $operator,'viewType' => $viewType);
-			Vtiger_ListView_Model::setSortParamsSession($moduleName, $params);
-		}
 
-		if ($sortOrder == "ASC") {
-			$nextSortOrder = "DESC";
-			$sortImage = "icon-chevron-down";
-			$faSortImage = "fa-sort-desc";
-		} else {
-			$nextSortOrder = "ASC";
-			$sortImage = "icon-chevron-up";
-			$faSortImage = "fa-sort-asc";
-		}
+			if ($sortOrder == "ASC") {
+				$nextSortOrder = "DESC";
+				$sortImage = "icon-chevron-down";
+				$faSortImage = "fa-sort-desc";
+			} else {
+				$nextSortOrder = "ASC";
+				$sortImage = "icon-chevron-up";
+				$faSortImage = "fa-sort-asc";
+			}
 
-		if (empty($pageNumber)) {
-			$pageNumber = '1';
-		}
+			if (empty($pageNumber)) {
+				$pageNumber = '1';
+			}
 
-		$listViewModel = EmailTemplates_ListView_Model::getInstance($moduleName, $cvId);
-		$linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view'), 'CVID' => $cvId);
-		$linkModels = $listViewModel->getListViewMassActions($linkParams);
+			$listViewModel = EmailTemplates_ListView_Model::getInstance($moduleName, $cvId);
+			$linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view'), 'CVID' => $cvId);
+			$linkModels = $listViewModel->getListViewMassActions($linkParams);
 
-		// preProcess is already loading this, we can reuse
-		if (!$this->pagingModel) {
-			$pagingModel = new Vtiger_Paging_Model();
-			$pagingModel->set('page', $pageNumber);
-		} else {
-			$pagingModel = $this->pagingModel;
-		}
+			// preProcess is already loading this, we can reuse
+			if (!$this->pagingModel) {
+				$pagingModel = new Vtiger_Paging_Model();
+				$pagingModel->set('page', $pageNumber);
+			} else {
+				$pagingModel = $this->pagingModel;
+			}
 
-		if (!empty($orderBy)) {
-			$listViewModel->set('orderby', $orderBy);
-			$listViewModel->set('sortorder', $sortOrder);
-		}
+			if (!empty($orderBy)) {
+				$listViewModel->set('orderby', $orderBy);
+				$listViewModel->set('sortorder', $sortOrder);
+			}
 
-		if (!empty($operator)) {
-			$listViewModel->set('operator', $operator);
-			$viewer->assign('OPERATOR', $operator);
-			$viewer->assign('ALPHABET_VALUE', $searchValue);
-		}
-		if (!empty($searchKey)) {
-			$listViewModel->set('search_key', $searchKey);
-			$listViewModel->set('search_value', $searchValue);
-		}
+			if (!empty($operator)) {
+				$listViewModel->set('operator', $operator);
+				$viewer->assign('OPERATOR', $operator);
+				$viewer->assign('ALPHABET_VALUE', $searchValue);
+			}
+			if (!empty($searchKey)) {
+				$listViewModel->set('search_key', $searchKey);
+				$listViewModel->set('search_value', $searchValue);
+			}
 
-		//Setting this key to get only that particular module templates
-		if(!empty($sourceModule)){
-			$listViewModel->set('sourceModule',$sourceModule);
-		}
+			//Setting this key to get only that particular module templates
+			if (!empty($sourceModule)) {
+				$listViewModel->set('sourceModule', $sourceModule);
+			}
 
-		if(empty($viewType)){
-			$viewType = 'list';
-		}
+			if (empty($viewType)) {
+				$viewType = 'list';
+			}
 
-		$listViewModel->set('viewType',$viewType);
+			$listViewModel->set('viewType', $viewType);
 
-		if (!$this->listViewHeaders) {
-			$this->listViewHeaders = $listViewModel->getListViewHeaders();
-		}
-		if (!$this->listViewEntries) {
-			$this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
-		}
+			if (!$this->listViewHeaders) {
+				$this->listViewHeaders = $listViewModel->getListViewHeaders();
+			}
+			if (!$this->listViewEntries) {
+				$this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
+			}
 
-		if (!$this->pagingModel) {
-			$this->pagingModel = $pagingModel;
-		}
+			if (!$this->pagingModel) {
+				$this->pagingModel = $pagingModel;
+			}
 
-		$noOfEntries = php7_count($this->listViewEntries);
-		$viewer->assign('VIEWID', $cvId);
-		$viewer->assign('MODULE', $moduleName);
+			$noOfEntries = php7_count($this->listViewEntries);
+			$viewer->assign('VIEWID', $cvId);
+			$viewer->assign('MODULE', $moduleName);
 
-		if (!$this->listViewLinks) {
-			$this->listViewLinks = $listViewModel->getListViewLinks($linkParams);
-		}
-		$viewer->assign('LISTVIEW_LINKS', $this->listViewLinks);
-		$viewer->assign('LISTVIEW_MASSACTIONS', $linkModels['LISTVIEWMASSACTION']);
-		$viewer->assign('PAGING_MODEL', $pagingModel);
-		$viewer->assign('PAGE_NUMBER', $pageNumber);
-		$viewer->assign('VIEWTYPE', $viewType);
-		$viewer->assign('ORDER_BY', $orderBy);
-		$viewer->assign('SORT_ORDER', $sortOrder);
-		$viewer->assign('SEARCH_VALUE', $searchValue);
-		$viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
-		$viewer->assign('SORT_IMAGE', $sortImage);
-		$viewer->assign('COLUMN_NAME', $orderBy);
-		$viewer->assign('FASORT_IMAGE', $faSortImage);
-		$viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries);
-		$viewer->assign('RECORD_COUNT', $noOfEntries);
-		$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
-		$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
-		if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
-			if (!$this->listViewCount) {
-				$this->listViewCount = $listViewModel->getListViewCount();
+			if (!$this->listViewLinks) {
+				$this->listViewLinks = $listViewModel->getListViewLinks($linkParams);
 			}
-			$viewer->assign('LISTVIEW_COUNT', $this->listViewCount);
-		}
+			$viewer->assign('LISTVIEW_LINKS', $this->listViewLinks);
+			$viewer->assign('LISTVIEW_MASSACTIONS', $linkModels['LISTVIEWMASSACTION']);
+			$viewer->assign('PAGING_MODEL', $pagingModel);
+			$viewer->assign('PAGE_NUMBER', $pageNumber);
+			$viewer->assign('VIEWTYPE', $viewType);
+			$viewer->assign('ORDER_BY', $orderBy);
+			$viewer->assign('SORT_ORDER', $sortOrder);
+			$viewer->assign('SEARCH_VALUE', $searchValue);
+			$viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
+			$viewer->assign('SORT_IMAGE', $sortImage);
+			$viewer->assign('COLUMN_NAME', $orderBy);
+			$viewer->assign('FASORT_IMAGE', $faSortImage);
+			$viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries);
+			$viewer->assign('RECORD_COUNT', $noOfEntries);
+			$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
+			$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
+			if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
+				if (!$this->listViewCount) {
+					$this->listViewCount = $listViewModel->getListViewCount();
+				}
+				$viewer->assign('LISTVIEW_COUNT', $this->listViewCount);
+			}
+
+			$viewer->assign('LIST_VIEW_MODEL', $listViewModel);
+			$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'));
 
-		$viewer->assign('LIST_VIEW_MODEL', $listViewModel);
-		$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->fncalled = true;
+		}
 	}
 
 	/**
 	 * Function returns the number of records for the current filter
 	 * @param Vtiger_Request $request
 	 */
-	function getRecordsCount(Vtiger_Request $request) {
+	function getRecordsCount(Vtiger_Request $request)
+	{
 		$moduleName = $request->getModule();
 		$count = $this->getListViewCount($request);
 
@@ -244,7 +264,8 @@ class EmailTemplates_List_View extends Vtiger_Index_View {
 	 * Function to get listView count
 	 * @param Vtiger_Request $request
 	 */
-	function getListViewCount(Vtiger_Request $request) {
+	function getListViewCount(Vtiger_Request $request)
+	{
 		$moduleName = $request->getModule();
 		$searchKey = $request->get('search_key');
 		$searchValue = $request->get('search_value');
@@ -263,7 +284,8 @@ class EmailTemplates_List_View extends Vtiger_Index_View {
 	 * Function to get the page count for list
 	 * @return total number of pages
 	 */
-	function getPageCount(Vtiger_Request $request) {
+	function getPageCount(Vtiger_Request $request)
+	{
 		$listViewCount = $this->getListViewCount($request);
 		$pagingModel = new Vtiger_Paging_Model();
 		$pageLimit = $pagingModel->getPageLimit();
@@ -282,34 +304,36 @@ class EmailTemplates_List_View extends Vtiger_Index_View {
 	 * @param Vtiger_Request $request
 	 * @return <Array> - List of Vtiger_JsScript_Model instances
 	 */
-	function getHeaderScripts(Vtiger_Request $request) {
+	function getHeaderScripts(Vtiger_Request $request)
+	{
 		$headerScriptInstances = parent::getHeaderScripts($request);
 
 		$jsFileNames = array(
-					'modules.Vtiger.resources.List',
-					'modules.EmailTemplates.resources.List',
-					'modules.Settings.Vtiger.resources.Vtiger',
-					'modules.Settings.Vtiger.resources.Index',
-					"~layouts/v7/lib/jquery/sadropdown.js",
-					"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/floatThead/jquery.floatThead.js",
-					"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/perfect-scrollbar/js/perfect-scrollbar.jquery.js",
-					"~layouts/v7/lib/jquery/Lightweight-jQuery-In-page-Filtering-Plugin-instaFilta/instafilta.min.js"
-				);
+			'modules.Vtiger.resources.List',
+			'modules.EmailTemplates.resources.List',
+			'modules.Settings.Vtiger.resources.Vtiger',
+			'modules.Settings.Vtiger.resources.Index',
+			"~layouts/v7/lib/jquery/sadropdown.js",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/floatThead/jquery.floatThead.js",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/perfect-scrollbar/js/perfect-scrollbar.jquery.js",
+			"~layouts/v7/lib/jquery/Lightweight-jQuery-In-page-Filtering-Plugin-instaFilta/instafilta.min.js"
+		);
 
 		$jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
 		$headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances);
 		return $headerScriptInstances;
 	}
 
-		 public function getHeaderCss(Vtiger_Request $request) {
-			$headerCssInstances = parent::getHeaderCss($request);
+	public function getHeaderCss(Vtiger_Request $request)
+	{
+		$headerCssInstances = parent::getHeaderCss($request);
 
-			$cssFileNames = array(
-				"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/perfect-scrollbar/css/perfect-scrollbar.css",
-			);
-			$cssInstances = $this->checkAndConvertCssStyles($cssFileNames);
-			$headerCssInstances = array_merge($headerCssInstances, $cssInstances);
+		$cssFileNames = array(
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/perfect-scrollbar/css/perfect-scrollbar.css",
+		);
+		$cssInstances = $this->checkAndConvertCssStyles($cssFileNames);
+		$headerCssInstances = array_merge($headerCssInstances, $cssInstances);
 
-			return $headerCssInstances;
-		}
-}
\ No newline at end of file
+		return $headerCssInstances;
+	}
+}
diff --git a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/views/List.php b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/views/List.php
index f12c29fad32d2cfac2f38944699ebf2510cd7465..55a4263efcc74206ae44333409b2c009af28311c 100644
--- a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/views/List.php
+++ b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/views/List.php
@@ -8,43 +8,50 @@
  * All Rights Reserved.
  ************************************************************************************/
 
-class RecycleBin_List_View extends Vtiger_Index_View {
+class RecycleBin_List_View extends Vtiger_Index_View
+{
 
-	function checkPermission(Vtiger_Request $request) {
+	protected $fncalled = false;
+
+	function checkPermission(Vtiger_Request $request)
+	{
 		$moduleName = $request->getModule();
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
 
 		$currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
-		if(!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) {
+		if (!$currentUserPriviligesModel->hasModulePermission($moduleModel->getId())) {
 			throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
 		}
 	}
 
-	function preProcess(Vtiger_Request $request, $display=true) {
+	function preProcess(Vtiger_Request $request, $display = true)
+	{
 		parent::preProcess($request, false);
-		$viewer = $this->getViewer ($request);
+		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 
 		$moduleModel = RecycleBin_Module_Model::getInstance($moduleName);
 
-		$linkParams = array('MODULE'=>$moduleName, 'ACTION'=>$request->get('view'));
+		$linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view'));
 
 		$quickLinkModels = $moduleModel->getSideBarLinks($linkParams);
 
 		$viewer->assign('QUICK_LINKS', $quickLinkModels);
 		$this->initializeListViewContents($request, $viewer);
 
-		if($display) {
+		if ($display) {
 			$this->preProcessDisplay($request);
 		}
 	}
 
-	function preProcessTplName(Vtiger_Request $request) {
+	function preProcessTplName(Vtiger_Request $request)
+	{
 		return 'ListViewPreProcess.tpl';
 	}
 
-	function process (Vtiger_Request $request) {
-		$viewer = $this->getViewer ($request);
+	function process(Vtiger_Request $request)
+	{
+		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
 
@@ -56,8 +63,9 @@ class RecycleBin_List_View extends Vtiger_Index_View {
 		$viewer->view('ListViewContents.tpl', $moduleName);
 	}
 
-	function postProcess(Vtiger_Request $request) {
-		$viewer = $this->getViewer ($request);
+	function postProcess(Vtiger_Request $request)
+	{
+		$viewer = $this->getViewer($request);
 		$moduleName = $request->getModule();
 
 		$viewer->view('ListViewPostProcess.tpl', $moduleName);
@@ -67,157 +75,164 @@ 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 ($request->get('mode') == 'removeSorting') {
-			Vtiger_ListView_Model::deleteParamsSession($moduleName . '_' . $sourceModule, array('orderby', 'sortorder'));
-			$orderBy = '';
-			$sortOrder = '';
-		}
-		if (empty($listHeaders)) {
-			$listHeaders = $orderParams['list_headers'];
-		}
-		if (empty($orderBy) && empty($searchValue) && empty($pageNumber) && empty($searchParams)) {
-			if ($orderParams) {
-				$pageNumber = $orderParams['page'];
-				$orderBy = $orderParams['orderby'];
-				$sortOrder = $orderParams['sortorder'];
-				$searchKey = $orderParams['search_key'];
-				$searchValue = $orderParams['search_value'];
-				$operator = $orderParams['operator'];
-				$searchParams = $orderParams['search_params'];
-				$starFilterMode = $orderParams['star_filter_mode'];
+	public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer)
+	{
+
+		if ($this->fncalled == false) {
+			$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 = '';
+				$sortOrder = '';
 			}
-		} else if ($request->get('nolistcache') != 1) {
-			$params = array('page' => $pageNumber, 'orderby' => $orderBy, 'sortorder' => $sortOrder, 'search_key' => $searchKey,
-				'search_value' => $searchValue, 'operator' => $operator, 'search_params' => $searchParams, 'star_filter_mode' => $starFilterMode);
-			if (!empty($listHeaders)) {
-				$params['list_headers'] = $listHeaders;
+			if (empty($listHeaders)) {
+				$listHeaders = $orderParams['list_headers'];
 			}
-			Vtiger_ListView_Model::setSortParamsSession($moduleName . '_' . $sourceModule, $params);
-		}
-
-		if($sortOrder == "ASC"){
-			$nextSortOrder = "DESC";
-			$sortImage = "icon-chevron-down";
-			$faSortImage = "fa-sort-desc";
-		}else{
-			$nextSortOrder = "ASC";
-			$sortImage = "icon-chevron-up";
-			$faSortImage = "fa-sort-asc";
-		}
-
-		if(empty ($pageNumber)){
-			$pageNumber = '1';
-		}
-
-		$moduleModel = RecycleBin_Module_Model::getInstance($moduleName);
-		//If sourceModule is empty, pick the first module name from the list
-		if(empty($sourceModule)) {
-			foreach($moduleModel->getAllModuleList() as $model) {
-				$sourceModule = $model->get('name');
-				break;
+			if (empty($orderBy) && empty($searchValue) && empty($pageNumber) && empty($searchParams)) {
+				if ($orderParams) {
+					$pageNumber = $orderParams['page'];
+					$orderBy = $orderParams['orderby'];
+					$sortOrder = $orderParams['sortorder'];
+					$searchKey = $orderParams['search_key'];
+					$searchValue = $orderParams['search_value'];
+					$operator = $orderParams['operator'];
+					$searchParams = $orderParams['search_params'];
+					$starFilterMode = $orderParams['star_filter_mode'];
+				}
+			} else if ($request->get('nolistcache') != 1) {
+				$params = array(
+					'page' => $pageNumber, 'orderby' => $orderBy, 'sortorder' => $sortOrder, 'search_key' => $searchKey,
+					'search_value' => $searchValue, 'operator' => $operator, 'search_params' => $searchParams, 'star_filter_mode' => $starFilterMode
+				);
+				if (!empty($listHeaders)) {
+					$params['list_headers'] = $listHeaders;
+				}
+				Vtiger_ListView_Model::setSortParamsSession($moduleName . '_' . $sourceModule, $params);
 			}
-		}
-		$listViewModel = RecycleBin_ListView_Model::getInstance($moduleName, $sourceModule);
 
-		$linkParams = array('MODULE'=>$moduleName, 'ACTION'=>$request->get('view'));
-		$linkModels = $moduleModel->getListViewMassActions($linkParams);
-
-		 // preProcess is already loading this, we can reuse
-		if (!$this->pagingModel) {
-			$pagingModel = new Vtiger_Paging_Model();
-			$pagingModel->set('page', $pageNumber);
-		} else {
-			$pagingModel = $this->pagingModel;
-		}
-
-		if(!empty($orderBy)) {
-			$listViewModel->set('orderby', $orderBy);
-			$listViewModel->set('sortorder',$sortOrder);
-		}
-
-		if (empty($searchParams)) {
-			$searchParams = array();
-		}
-		$transformedSearchParams = Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($searchParams, $listViewModel->getModule());
-		$listViewModel->set('search_params', $transformedSearchParams);
-
-		//To make smarty to get the details easily accesible
-		foreach ($searchParams as $fieldListGroup) {
-			foreach ($fieldListGroup as $fieldSearchInfo) {
-				$fieldSearchInfo['searchValue'] = $fieldSearchInfo[2];
-				$fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0];
-				$fieldSearchInfo['comparator'] = $fieldSearchInfo[1];
-				$searchParams[$fieldName] = $fieldSearchInfo;
+			if ($sortOrder == "ASC") {
+				$nextSortOrder = "DESC";
+				$sortImage = "icon-chevron-down";
+				$faSortImage = "fa-sort-desc";
+			} else {
+				$nextSortOrder = "ASC";
+				$sortImage = "icon-chevron-up";
+				$faSortImage = "fa-sort-asc";
 			}
-		}
 
-		if(!$this->listViewHeaders){
-			$this->listViewHeaders = $listViewModel->getListViewHeaders();
-		}
-		if(!$this->listViewEntries){
-			$this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
-		}
-
-		if(!$this->pagingModel){
-			$this->pagingModel = $pagingModel;
-		}
+			if (empty($pageNumber)) {
+				$pageNumber = '1';
+			}
 
-		$noOfEntries = php7_count($this->listViewEntries);
+			$moduleModel = RecycleBin_Module_Model::getInstance($moduleName);
+			//If sourceModule is empty, pick the first module name from the list
+			if (empty($sourceModule)) {
+				foreach ($moduleModel->getAllModuleList() as $model) {
+					$sourceModule = $model->get('name');
+					break;
+				}
+			}
+			$listViewModel = RecycleBin_ListView_Model::getInstance($moduleName, $sourceModule);
 
-		$viewer->assign('MODULE', $moduleName);
+			$linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view'));
+			$linkModels = $moduleModel->getListViewMassActions($linkParams);
 
-		$viewer->assign('LISTVIEW_LINKS', $moduleModel->getListViewLinks());
-		$viewer->assign('LISTVIEW_MASSACTIONS', $linkModels);
+			// preProcess is already loading this, we can reuse
+			if (!$this->pagingModel) {
+				$pagingModel = new Vtiger_Paging_Model();
+				$pagingModel->set('page', $pageNumber);
+			} else {
+				$pagingModel = $this->pagingModel;
+			}
 
-		$viewer->assign('PAGING_MODEL', $pagingModel);
-		$viewer->assign('PAGE_NUMBER',$pageNumber);
+			if (!empty($orderBy)) {
+				$listViewModel->set('orderby', $orderBy);
+				$listViewModel->set('sortorder', $sortOrder);
+			}
 
-		$viewer->assign('ORDER_BY',$orderBy);
-		$viewer->assign('SORT_ORDER',$sortOrder);
-		$viewer->assign('NEXT_SORT_ORDER',$nextSortOrder);
-		$viewer->assign('SORT_IMAGE',$sortImage);
-		$viewer->assign('COLUMN_NAME',$orderBy);
+			if (empty($searchParams)) {
+				$searchParams = array();
+			}
+			$transformedSearchParams = Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($searchParams, $listViewModel->getModule());
+			$listViewModel->set('search_params', $transformedSearchParams);
+
+			//To make smarty to get the details easily accesible
+			foreach ($searchParams as $fieldListGroup) {
+				foreach ($fieldListGroup as $fieldSearchInfo) {
+					$fieldSearchInfo['searchValue'] = $fieldSearchInfo[2];
+					$fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0];
+					$fieldSearchInfo['comparator'] = $fieldSearchInfo[1];
+					$searchParams[$fieldName] = $fieldSearchInfo;
+				}
+			}
 
-		$viewer->assign('LISTVIEW_ENTRIES_COUNT',$noOfEntries);
-		$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
-		$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
-		$viewer->assign('MODULE_LIST', $moduleModel->getAllModuleList());
-		$viewer->assign('SOURCE_MODULE',$sourceModule);
-		$viewer->assign('IS_RECORDS_DELETED', $moduleModel->isRecordsDeleted());
-		$viewer->assign('SEARCH_DETAILS', $searchParams);
-		$viewer->assign('NO_SEARCH_PARAMS_CACHE', $request->get('nolistcache'));
-		$viewer->assign('FASORT_IMAGE',$faSortImage);
+			if (!$this->listViewHeaders) {
+				$this->listViewHeaders = $listViewModel->getListViewHeaders();
+			}
+			if (!$this->listViewEntries) {
+				$this->listViewEntries = $listViewModel->getListViewEntries($pagingModel);
+			}
 
-		if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
-			if(!$this->listViewCount){
-				$this->listViewCount = $listViewModel->getListViewCount();
+			if (!$this->pagingModel) {
+				$this->pagingModel = $pagingModel;
 			}
-			$totalCount = $this->listViewCount;
-			$pageLimit = $pagingModel->getPageLimit();
-			$pageCount = ceil((int) $totalCount / (int) $pageLimit);
 
-			if($pageCount == 0){
-				$pageCount = 1;
+			$noOfEntries = php7_count($this->listViewEntries);
+
+			$viewer->assign('MODULE', $moduleName);
+
+			$viewer->assign('LISTVIEW_LINKS', $moduleModel->getListViewLinks());
+			$viewer->assign('LISTVIEW_MASSACTIONS', $linkModels);
+
+			$viewer->assign('PAGING_MODEL', $pagingModel);
+			$viewer->assign('PAGE_NUMBER', $pageNumber);
+
+			$viewer->assign('ORDER_BY', $orderBy);
+			$viewer->assign('SORT_ORDER', $sortOrder);
+			$viewer->assign('NEXT_SORT_ORDER', $nextSortOrder);
+			$viewer->assign('SORT_IMAGE', $sortImage);
+			$viewer->assign('COLUMN_NAME', $orderBy);
+
+			$viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries);
+			$viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders);
+			$viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries);
+			$viewer->assign('MODULE_LIST', $moduleModel->getAllModuleList());
+			$viewer->assign('SOURCE_MODULE', $sourceModule);
+			$viewer->assign('IS_RECORDS_DELETED', $moduleModel->isRecordsDeleted());
+			$viewer->assign('SEARCH_DETAILS', $searchParams);
+			$viewer->assign('NO_SEARCH_PARAMS_CACHE', $request->get('nolistcache'));
+			$viewer->assign('FASORT_IMAGE', $faSortImage);
+
+			if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) {
+				if (!$this->listViewCount) {
+					$this->listViewCount = $listViewModel->getListViewCount();
+				}
+				$totalCount = $this->listViewCount;
+				$pageLimit = $pagingModel->getPageLimit();
+				$pageCount = ceil((int) $totalCount / (int) $pageLimit);
+
+				if ($pageCount == 0) {
+					$pageCount = 1;
+				}
+				$viewer->assign('PAGE_COUNT', $pageCount);
+				$viewer->assign('LISTVIEW_COUNT', $totalCount);
 			}
-			$viewer->assign('PAGE_COUNT', $pageCount);
-			$viewer->assign('LISTVIEW_COUNT', $totalCount);
-		}
-		$viewer->assign('IS_MODULE_DELETABLE', $listViewModel->getModule()->isPermitted('Delete'));
+			$viewer->assign('IS_MODULE_DELETABLE', $listViewModel->getModule()->isPermitted('Delete'));
 
+			$this->fncalled = true;
+		}
 	}
 
 	/**
@@ -225,7 +240,8 @@ class RecycleBin_List_View extends Vtiger_Index_View {
 	 * @param Vtiger_Request $request
 	 * @return <Array> - List of Vtiger_JsScript_Model instances
 	 */
-	function getHeaderScripts(Vtiger_Request $request) {
+	function getHeaderScripts(Vtiger_Request $request)
+	{
 		$headerScriptInstances = parent::getHeaderScripts($request);
 		$moduleName = $request->getModule();
 
@@ -238,8 +254,8 @@ class RecycleBin_List_View extends Vtiger_Index_View {
 			"modules.Vtiger.resources.CkEditor",
 			"modules.Vtiger.resources.ListSidebar",
 			"~layouts/v7/lib/jquery/sadropdown.js",
-			"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/floatThead/jquery.floatThead.js",
-			"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/perfect-scrollbar/js/perfect-scrollbar.jquery.js",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/floatThead/jquery.floatThead.js",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/perfect-scrollbar/js/perfect-scrollbar.jquery.js",
 		);
 
 		$jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
@@ -251,19 +267,20 @@ class RecycleBin_List_View extends Vtiger_Index_View {
 	 * Function to get the page count for list
 	 * @return total number of pages
 	 */
-	function getPageCount(Vtiger_Request $request){
+	function getPageCount(Vtiger_Request $request)
+	{
 		$moduleName = $request->getModule();
 		$sourceModule = $request->get('sourceModule');
 		$listViewModel = RecycleBin_ListView_Model::getInstance($moduleName, $sourceModule);
 		$searchParams = $request->get('search_params');
-		$listViewModel->set('search_params',Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($searchParams, $listViewModel->getModule()));
+		$listViewModel->set('search_params', Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($searchParams, $listViewModel->getModule()));
 
 		$listViewCount = $listViewModel->getListViewCount($request);
 		$pagingModel = new Vtiger_Paging_Model();
 		$pageLimit = $pagingModel->getPageLimit();
 		$pageCount = ceil((int) $listViewCount / (int) $pageLimit);
 
-		if($pageCount == 0){
+		if ($pageCount == 0) {
 			$pageCount = 1;
 		}
 		$result = array();
@@ -278,12 +295,13 @@ class RecycleBin_List_View extends Vtiger_Index_View {
 	 * Function returns the number of records for the current filter
 	 * @param Vtiger_Request $request
 	 */
-	function getRecordsCount(Vtiger_Request $request) {
+	function getRecordsCount(Vtiger_Request $request)
+	{
 		$moduleName = $request->getModule();
 		$sourceModule = $request->get('sourceModule');
 		$listViewModel = RecycleBin_ListView_Model::getInstance($moduleName, $sourceModule);
 		$searchParams = $request->get('search_params');
-		$listViewModel->set('search_params',Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($searchParams, $listViewModel->getModule()));
+		$listViewModel->set('search_params', Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($searchParams, $listViewModel->getModule()));
 
 		$count = $listViewModel->getListViewCount();
 
@@ -297,12 +315,13 @@ class RecycleBin_List_View extends Vtiger_Index_View {
 		$response->emit();
 	}
 
-	 /**
+	/**
 	 * Setting module related Information to $viewer (for Vtiger7)
 	 * @param type $request
 	 * @param type $moduleModel
 	 */
-	public function setModuleInfo($request, $moduleModel) {
+	public function setModuleInfo($request, $moduleModel)
+	{
 		$fieldsInfo = array();
 		$basicLinks = array();
 		$settingLinks = array();
@@ -338,13 +357,14 @@ class RecycleBin_List_View extends Vtiger_Index_View {
 		$viewer->assign('MODULE_SETTING_ACTIONS', $settingLinks);
 	}
 
-	public function getHeaderCss(Vtiger_Request $request) {
+	public function getHeaderCss(Vtiger_Request $request)
+	{
 		$headerCssInstances = parent::getHeaderCss($request);
 		$cssFileNames = array(
-			"~layouts/".Vtiger_Viewer::getDefaultLayoutName()."/lib/jquery/perfect-scrollbar/css/perfect-scrollbar.css",
+			"~layouts/" . Vtiger_Viewer::getDefaultLayoutName() . "/lib/jquery/perfect-scrollbar/css/perfect-scrollbar.css",
 		);
 		$cssInstances = $this->checkAndConvertCssStyles($cssFileNames);
 		$headerCssInstances = array_merge($headerCssInstances, $cssInstances);
 		return $headerCssInstances;
 	}
-}
\ No newline at end of file
+}