N°4119 - Loose application context in advanced search ajax call

This commit is contained in:
acognet
2021-08-05 12:14:28 +02:00
parent b3cb95d2f1
commit 7d9b19cd9e
3 changed files with 17 additions and 4 deletions

View File

@@ -7,6 +7,7 @@
namespace Combodo\iTop\Application\UI\Base\Component\DataTable;
use ApplicationContext;
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
use Combodo\iTop\Application\UI\Base\tJSRefreshCallback;
use DataTableConfig;
@@ -71,7 +72,19 @@ class DataTable extends UIContentBlock
*/
public function SetAjaxUrl(string $sAjaxUrl): void
{
$this->sAjaxUrl = $sAjaxUrl;
if (strlen($sAjaxUrl) > 0)
{
$oAppContext = new ApplicationContext();
if(strpos ($sAjaxUrl,'?')) {
$this->sAjaxUrl = $sAjaxUrl."&".$oAppContext->GetForLink();
} else {
$this->sAjaxUrl = $sAjaxUrl."?".$oAppContext->GetForLink();
}
}
else
{
$this->sAjaxUrl = $sAjaxUrl;
}
}
/**

View File

@@ -780,7 +780,7 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
"select_mode" => $sSelectMode,
]);
$oAppContext = new ApplicationContext();
$aOptions = array_merge($aOptions, [
"language" =>
[
@@ -815,7 +815,7 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
"columns" => $aColumnsDefinitions,
"allColumns" => $aColumns,
'ajax' => '$.fn.dataTable.pipeline( {
"url": "ajax.render.php",
"url": "ajax.render.php?'.$oAppContext->GetForLink().'",
"data": '.$sAjaxData.',
"method": "post",
"pages": 5 // number of pages to cache

View File

@@ -248,7 +248,7 @@ class SearchForm
'criterion_outer_selector' => "#fs_{$sSearchFormId}_criterion_outer",
'result_list_outer_selector' => "#{$aExtraParams['result_list_outer_selector']}",
'data_config_list_selector' => "#{$aExtraParams['result_list_outer_selector']}",
'endpoint' => utils::GetAbsoluteUrlAppRoot().'pages/ajax.searchform.php',
'endpoint' => utils::GetAbsoluteUrlAppRoot().'pages/ajax.searchform.php?'.$sContext,
'init_opened' => $bOpen,
'auto_submit' => $bAutoSubmit,
'list_params' => $aListParams,