N°2847 - Datatable modal dialogs

This commit is contained in:
Eric
2020-11-19 17:45:46 +01:00
parent 26d912f059
commit 32e0c8f9bf
24 changed files with 541 additions and 170 deletions

View File

@@ -8,6 +8,7 @@ namespace Combodo\iTop\Application\UI\Component\DataTable;
use Combodo\iTop\Application\UI\Layout\UIContentBlock;
use DataTableConfig;
/**
* Class DataTable
@@ -35,6 +36,7 @@ class DataTableBlock extends UIContentBlock
public function __construct(?string $sId = null)
{
parent::__construct($sId);
$this->AddDeferredBlock(new DataTableConfig($this));
}
/**

View File

@@ -0,0 +1,43 @@
<?php
use Combodo\iTop\Application\UI\Component\DataTable\DataTableBlock;
use Combodo\iTop\Application\UI\Layout\UIContentBlock;
/**
* @copyright Copyright (C) 2010-2020 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
class DataTableConfig extends UIContentBlock
{
// Overloaded constants
public const BLOCK_CODE = 'ibo-datatableconfig';
public const HTML_TEMPLATE_REL_PATH = 'components/datatable/config/layout';
/** @var DataTableBlock */
private $oDataTable;
public function __construct(DataTableBlock $oDataTable, ?string $sId = null)
{
parent::__construct($sId);
$this->oDataTable = $oDataTable;
}
/**
* @return \Combodo\iTop\Application\UI\Component\DataTable\DataTableBlock
*/
private function GetDataTable(): DataTableBlock
{
return $this->oDataTable;
}
public function GetOption(string $sOption)
{
return $this->GetDataTable()->GetOption($sOption);
}
public function GetTableId()
{
return $this->GetDataTable()->GetId();
}
}

View File

@@ -10,7 +10,6 @@ use ApplicationException;
use appUserPreferences;
use AttributeLinkedSet;
use cmdbAbstractObject;
use CMDBObjectSet;
use Combodo\iTop\Application\UI\Component\DataTable\StaticTable\FormTable\FormTable;
use Combodo\iTop\Application\UI\Component\DataTable\StaticTable\StaticTable;
use Combodo\iTop\Application\UI\Component\Panel\PanelFactory;
@@ -35,7 +34,7 @@ class DataTableFactory
/**
* @param \WebPage $oPage
* @param string $sListId
* @param \CMDBObjectSet $oSet
* @param \DBObjectSet $oSet
* @param array $aExtraParams
*
* @return \Combodo\iTop\Application\UI\Component\Panel\Panel
@@ -50,7 +49,7 @@ class DataTableFactory
* @throws \OQLException
* @throws \ReflectionException
*/
public static function MakeForResult(WebPage $oPage, string $sListId, CMDBObjectSet $oSet, $aExtraParams = array())
public static function MakeForResult(WebPage $oPage, string $sListId, DBObjectSet $oSet, $aExtraParams = array())
{
$oPanel = PanelFactory::MakeForClass($oSet->GetClass(), "Result")->AddCSSClasses('ibo-datatable-panel');
$oDataTable = DataTableFactory::MakeForRendering($sListId, $oSet, $aExtraParams);
@@ -101,7 +100,7 @@ class DataTableFactory
* Make a basis Panel component
*
* @param string $sListId
* @param \CMDBObjectSet $oSet
* @param \DBObjectSet $oSet
* @param array $aExtraParams
*
* @return DataTableBlock
@@ -112,7 +111,7 @@ class DataTableFactory
* @throws \DictExceptionMissingString
* @throws \MySQLException
*/
public static function MakeForRendering(string $sListId, CMDBObjectSet $oSet, $aExtraParams = array())
public static function MakeForRendering(string $sListId, DBObjectSet $oSet, $aExtraParams = array())
{
$oDataTable = new DataTableBlock('datatable_'.$sListId);
///////////////////////////////////////////////////
@@ -474,7 +473,6 @@ class DataTableFactory
$aColumnDefinition = [];
$aSortOrder=[];
$aSortDatable=[];
$iIndexColumn=0;
if($sSelectMode!="") {
$iIndexColumn++;