diff --git a/includes/runtime/Viewer.php b/includes/runtime/Viewer.php index 32044100f30d01273d2b814386a9f4ad062cf3ab..39e0a6bc6da22fbe06c0d21da77f0c50f83836d6 100644 --- a/includes/runtime/Viewer.php +++ b/includes/runtime/Viewer.php @@ -78,7 +78,7 @@ class Vtiger_Viewer extends Smarty { 'Vtiger_Theme', 'Users_Record_Model', 'Vtiger_Module_Model', 'Vtiger_Field_Model', 'Vtiger_Record_Model', 'Settings_Picklist_Module_Model', 'CustomView_Record_Model', 'Vtiger_Extension_View', 'Vtiger_Tag_Model', 'Settings_Vtiger_Module_Model', 'PBXManager_Server_Model', - 'Vtiger_Functions', 'Users', 'CurrencyField'); + 'Vtiger_Functions', 'Users', 'CurrencyField', 'Reports_Field_Model'); foreach ($classes as $clazz) { if (class_exists($clazz)) { $this->registerClass($clazz, $clazz); diff --git a/layouts/v7/modules/Reports/ListViewContents.tpl b/layouts/v7/modules/Reports/ListViewContents.tpl index 23443068d578a5e66924f10424e74b940ecebbcd..7446a5b86726367c0f13064f86fbfdf4bb8d602a 100644 --- a/layouts/v7/modules/Reports/ListViewContents.tpl +++ b/layouts/v7/modules/Reports/ListViewContents.tpl @@ -14,7 +14,7 @@ <span class="essentials-toggle-marker fa {if $LEFTPANELHIDE eq '1'}fa-chevron-right{else}fa-chevron-left{/if} cursorPointer"></span> </div> <input type="hidden" name="view" id="view" value="{$VIEW}" /> - <input type="hidden" name="cvid" value="{$VIEWID}" /> + <input type="hidden" name="cvid" value="{(isset($VIEWID)) ? $VIEWID : ''}" /> <input type="hidden" name="pageStartRange" id="pageStartRange" value="{$PAGING_MODEL->getRecordStartRange()}" /> <input type="hidden" name="pageEndRange" id="pageEndRange" value="{$PAGING_MODEL->getRecordEndRange()}" /> <input type="hidden" name="previousPageExist" id="previousPageExist" value="{$PAGING_MODEL->isPrevPageExists()}" /> @@ -25,11 +25,11 @@ <input type='hidden' name="pageLimit" value="{$PAGING_MODEL->getPageLimit()}" id='pageLimit'> <input type="hidden" name="noOfEntries" value="{$LISTVIEW_ENTRIES_COUNT}" id="noOfEntries"> <input type="hidden" name="currentSearchParams" value="{Vtiger_Util_Helper::toSafeHTML(Zend_JSON::encode($SEARCH_DETAILS))}" id="currentSearchParams" /> - <input type="hidden" name="noFilterCache" value="{$NO_SEARCH_PARAMS_CACHE}" id="noFilterCache" > + <input type="hidden" name="noFilterCache" value="{(isset($NO_SEARCH_PARAMS_CACHE)) ? $NO_SEARCH_PARAMS_CACHE : ''}" id="noFilterCache" > <input type="hidden" name="orderBy" value="{$ORDER_BY}" id="orderBy"> <input type="hidden" name="sortOrder" value="{$SORT_ORDER}" id="sortOrder"> - <input type="hidden" name="list_headers" value='{$LIST_HEADER_FIELDS}'/> - <input type="hidden" name="tag" value="{$CURRENT_TAG}" /> + <input type="hidden" name="list_headers" value='{(isset($LIST_HEADER_FIELDS)) ? $LIST_HEADER_FIELDS : ''}'/> + <input type="hidden" name="tag" value="{(isset($CURRENT_TAG)) ? $CURRENT_TAG : ''}" /> <input type="hidden" name="folder_id" value="{$FOLDER_ID}" /> <input type="hidden" name="folder_value" value="{$FOLDER_VALUE}" /> <input type="hidden" name="folder" value="{$VIEWNAME}" /> @@ -88,13 +88,13 @@ {assign var="DATA_TYPE" value=$LISTVIEW_HEADER['type']} {if $DATA_TYPE == 'string'} <div class="row-fluid"> - <input type="text" name="{$LISTVIEW_HEADER_KEY}" class="listSearchContributor inputElement" value="{$SEARCH_DETAILS[$LISTVIEW_HEADER_KEY]['searchValue']}" data-fieldinfo='{$FIELD_INFO|escape}'/> + <input type="text" name="{$LISTVIEW_HEADER_KEY}" class="listSearchContributor inputElement" value="{(isset($SEARCH_DETAILS[$LISTVIEW_HEADER_KEY]['searchValue'])) ? $SEARCH_DETAILS[$LISTVIEW_HEADER_KEY]['searchValue'] : ''}" data-fieldinfo='{if isset($FIELD_INFO)}{$FIELD_INFO|escape}{/if}'/> </div> {elseif $DATA_TYPE == 'picklist'} {assign var=PICKLIST_VALUES value=Reports_Field_Model::getPicklistValueByField($LISTVIEW_HEADER_KEY)} - {assign var=SEARCH_VALUES value=explode(',',$SEARCH_DETAILS[$LISTVIEW_HEADER_KEY]['searchValue'])} + {assign var=SEARCH_VALUES value=explode(',',(isset($SEARCH_INFO['searchValue'])) ? $SEARCH_INFO['searchValue'] : ',')} <div class="row-fluid"> - <select class="select2 listSearchContributor report-type-select" name="{$LISTVIEW_HEADER_KEY}" multiple data-fieldinfo='{$FIELD_INFO|escape}'> + <select class="select2 listSearchContributor report-type-select" name="{$LISTVIEW_HEADER_KEY}" multiple data-fieldinfo='{if isset($FIELD_INFO)}{$FIELD_INFO|escape}{/if}'> {foreach item=PICKLIST_LABEL key=PICKLIST_KEY from=$PICKLIST_VALUES} {if $PICKLIST_LABEL eq 'Chart'} {assign var="ICON_CLASS" value='fa fa-pie-chart'} @@ -106,7 +106,7 @@ </select> </div> {/if} - <input type="hidden" class="operatorValue" value="{$SEARCH_DETAILS[$LISTVIEW_HEADER_KEY]['comparator']}"> + <input type="hidden" class="operatorValue" value="{(isset($SEARCH_DETAILS[$LISTVIEW_HEADER_KEY]['comparator'])) ? $SEARCH_DETAILS[$LISTVIEW_HEADER_KEY]['comparator'] : ''}"> </th> {/foreach} </tr> @@ -125,7 +125,7 @@ <td class="listViewEntryValue" data-name="{$LISTVIEW_HEADERNAME}" title="{$LISTVIEW_ENTRY_RAWVALUE}" data-rawvalue="{$LISTVIEW_ENTRY_RAWVALUE}" data-field-type=""> <span class="fieldValue"> <span class="value textOverflowEllipsis"> - {if $LISTVIEW_HEADERNAME eq 'reporttype'} + {if isset($LISTVIEW_HEADERNAME) && $LISTVIEW_HEADERNAME eq 'reporttype'} {if $LISTVIEW_ENTRY_VALUE eq 'summary' || $LISTVIEW_ENTRY_VALUE eq 'tabular'} <center title="{vtranslate('LBL_DETAIL_REPORT', $MODULE)}"><span class='vicon-detailreport' style="font-size:17px;"></span></center> {elseif $LISTVIEW_ENTRY_VALUE eq 'chart'} @@ -152,7 +152,7 @@ <div class="emptyRecordsDiv"> <div class="emptyRecordsContent"> {assign var=SINGLE_MODULE value="SINGLE_$MODULE"} - {vtranslate('LBL_NO')} {vtranslate($MODULE, $MODULE)} {vtranslate('LBL_FOUND')}.{if $IS_MODULE_EDITABLE} <a href="{$MODULE_MODEL->getCreateRecordUrl()}"> {vtranslate('LBL_CREATE')} </a> {if Users_Privileges_Model::isPermitted($MODULE, 'Import') && $LIST_VIEW_MODEL->isImportEnabled()} {vtranslate('LBL_OR', $MODULE)} <a style="color:blue" href="#" onclick="return Vtiger_Import_Js.triggerImportAction()"> {vtranslate('LBL_IMPORT', $MODULE)} </a>{vtranslate($MODULE, $MODULE)}{else}{vtranslate($SINGLE_MODULE, $MODULE)}{/if}{/if} + {vtranslate('LBL_NO')} {vtranslate($MODULE, $MODULE)} {vtranslate('LBL_FOUND')}.{if isset($IS_MODULE_EDITABLE) && $IS_MODULE_EDITABLE} <a href="{$MODULE_MODEL->getCreateRecordUrl()}"> {vtranslate('LBL_CREATE')} </a> {if Users_Privileges_Model::isPermitted($MODULE, 'Import') && $LIST_VIEW_MODEL->isImportEnabled()} {vtranslate('LBL_OR', $MODULE)} <a style="color:blue" href="#" onclick="return Vtiger_Import_Js.triggerImportAction()"> {vtranslate('LBL_IMPORT', $MODULE)} </a>{vtranslate($MODULE, $MODULE)}{else}{vtranslate($SINGLE_MODULE, $MODULE)}{/if}{/if} </div> </div> </td> diff --git a/layouts/v7/modules/Reports/ModuleHeader.tpl b/layouts/v7/modules/Reports/ModuleHeader.tpl index 2e5d57fec1199b5113c82d548770016156968e15..05f63e346a4e4dc363f6d2b2acd61b755b0952e5 100644 --- a/layouts/v7/modules/Reports/ModuleHeader.tpl +++ b/layouts/v7/modules/Reports/ModuleHeader.tpl @@ -48,7 +48,7 @@ {assign var=FOLDERNAME value=vtranslate('LBL_ALL_REPORTS', $MODULE)} {/if} <span> - <p class="current-filter-name filter-name pull-left"><span class="fa fa-angle-right" aria-hidden="true"></span> {$FOLDERNAME} </p> + <p class="current-filter-name filter-name pull-left"><span class="fa fa-angle-right" aria-hidden="true"></span> {if isset($FOLDERNAME)}{$FOLDERNAME}{else}''{/if} </p> </span> {/if} </span> @@ -71,8 +71,9 @@ {elseif $childLink->getLabel() eq 'LBL_DETAIL_REPORT'} {assign var="ICON_CLASS" value='vicon-detailreport'} {/if} - <li id="{$MODULE}_listView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($childLink->getLabel())}" data-edition-disable="{$childLink->disabled}" data-edition-message="{$childLink->message}"> - <a {if $childLink->disabled neq '1'} {if stripos($childLink->getUrl(), 'javascript:') === 0} onclick='{$childLink->getUrl()|substr:strlen("javascript:")};' {else} href='{$childLink->getUrl()}' {/if} {else} href="javascript:void(0);" {/if}><i class='{$ICON_CLASS}' style="font-size:13px;"></i> {vtranslate($childLink->getLabel(), $MODULE)}</a> + <li id="{$MODULE}_listView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($childLink->getLabel())}" {if isset($childLink->disabled)} data-edition-disable="{$childLink->disabled}" {/if} + {if isset($childLink->message)} data-edition-message="{$childLink->message}" {/if}> + <a {if isset($childLink->disabled) && $childLink->disabled neq '1'} {if stripos($childLink->getUrl(), 'javascript:') === 0} onclick='{$childLink->getUrl()|substr:strlen("javascript:")};' {else} href='{$childLink->getUrl()}' {/if} {else} href="javascript:void(0);" {/if}><i class='{$ICON_CLASS}' style="font-size:13px;"></i> {vtranslate($childLink->getLabel(), $MODULE)}</a> </li> {/foreach} </ul> diff --git a/modules/Reports/ReportRun.php b/modules/Reports/ReportRun.php index ceabbd5a10d20fa21e77e0f2f36bf757028326b6..9b14f253114d470d1a231a0a253e6536658c17e4 100644 --- a/modules/Reports/ReportRun.php +++ b/modules/Reports/ReportRun.php @@ -3074,6 +3074,7 @@ class ReportRun extends CRMEntity { global $mod_strings, $current_language; require('user_privileges/user_privileges_' . $current_user->id . '.php'); $modules_selected = array(); + static $mod_query_details = array(); $modules_selected[] = $this->primarymodule; if (!empty($this->secondarymodule)) { $sec_modules = explode(':', $this->secondarymodule); @@ -3185,7 +3186,6 @@ class ReportRun extends CRMEntity { $y = $adb->num_fields($result); $custom_field_values = $adb->fetch_array($result); - static $mod_query_details = array(); foreach ($this->totallist as $key => $value) { $fieldlist = explode(":", $key); $key = $fieldlist[1] . '_' . $fieldlist[2]; @@ -3360,7 +3360,6 @@ class ReportRun extends CRMEntity { $y = $adb->num_fields($result); $custom_field_values = $adb->fetch_array($result); - static $mod_query_details = array(); foreach ($this->totallist as $key => $value) { $fieldlist = explode(':', $key); $key = $fieldlist[1].'_'.$fieldlist[2]; @@ -3577,7 +3576,6 @@ class ReportRun extends CRMEntity { $y = $adb->num_fields($result); $custom_field_values = $adb->fetch_array($result); - static $mod_query_details = array(); foreach ($this->totallist as $key => $value) { $fieldlist = explode(':', $key); $key = $fieldlist[1] . '_' . $fieldlist[2]; @@ -4029,7 +4027,6 @@ class ReportRun extends CRMEntity { } // END - static $mod_query_details = array(); foreach ($this->totallist as $key => $value) { $fieldlist = explode(":", $key); $detailsKey = implode('_', array($fieldlist[1], $fieldlist[2])); diff --git a/modules/Reports/Reports.php b/modules/Reports/Reports.php index ff44a351e434f99ede1af371bc66d749f3c9ef96..3bbc1d49c36682ecabf072c66deef07bd3c81e69 100644 --- a/modules/Reports/Reports.php +++ b/modules/Reports/Reports.php @@ -464,6 +464,8 @@ class Reports extends CRMEntity{ global $log; global $mod_strings,$current_user; $returndata = Array(); + $current_user_parent_role_seq = ''; + $is_admin = false; require_once('include/utils/UserInfoUtil.php'); diff --git a/modules/Reports/models/Field.php b/modules/Reports/models/Field.php index c5e21c134df59f77c6048924c9074ff261c18e01..57f9a7e6e7a010dd39a5195e6daeddf98a6266db 100644 --- a/modules/Reports/models/Field.php +++ b/modules/Reports/models/Field.php @@ -11,7 +11,7 @@ class Reports_Field_Model extends Vtiger_Field_Model { static function getPicklistValueByField($fieldName) { - $picklistValues = false; + $picklistValues = array(); if ($fieldName == 'reporttype') { $picklistValues = array( 'tabular' => vtranslate('tabular', 'Reports'), diff --git a/modules/Reports/views/List.php b/modules/Reports/views/List.php index 9d4a01e02d16cc21c1f93e20f3ac5956b6b621fc..68587d8d6b7ad82badc4e38893496cf9fe326b74 100644 --- a/modules/Reports/views/List.php +++ b/modules/Reports/views/List.php @@ -120,7 +120,7 @@ class Reports_List_View extends Vtiger_Index_View { $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $searchParams = $request->get('search_params'); - $searchParams = $searchParams[0]; + $searchParams = isset($searchParams[0]) ? $searchParams[0] : ''; $orderParams = Vtiger_ListView_Model::getSortParamsSession($moduleName.'_'.$folderId); if($request->get('mode') == 'removeSorting') { @@ -170,7 +170,7 @@ class Reports_List_View extends Vtiger_Index_View { $viewer->assign('MODULE', $moduleName); // preProcess is already loading this, we can reuse - if(!$this->pagingModel){ + if(!property_exists($this, 'pagingModel') || !$this->pagingModel){ $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); } else{ @@ -203,7 +203,7 @@ class Reports_List_View extends Vtiger_Index_View { $viewer->assign('SEARCH_DETAILS', array()); $viewer->assign('LISTVIEW_MODEL',$listViewModel); $viewer->assign('PAGING_MODEL', $pagingModel); - if(!$this->pagingModel){ + if(!property_exists($this, 'pagingModel') || !$this->pagingModel){ $this->pagingModel = $pagingModel; }