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