N°2737 - Migrate WebPage::table() to UIBlocks

This commit is contained in:
Eric
2021-01-12 16:17:33 +01:00
parent e0fe657f27
commit 503817e572
8 changed files with 19 additions and 15 deletions

View File

@@ -351,15 +351,7 @@ JS
*/
protected function GetFormTableBlock($aConfig, $aData)
{
$oTable = DataTableFactory::MakeForForm("{$this->m_sAttCode}{$this->m_sNameSuffix}", $aConfig);
foreach ($aData as $iRowId => $aRow)
{
$oRow = new FormTableRow("{$this->m_sAttCode}{$this->m_sNameSuffix}", $aConfig, $aRow, $iRowId);
$oTable->AddRow($oRow);
}
return $oTable;
return DataTableFactory::MakeForForm("{$this->m_sAttCode}{$this->m_sNameSuffix}", $aConfig, $aData);
}

View File

@@ -98,8 +98,8 @@ function ShowExamples($oP, $sExpression)
foreach ($aDisplayData as $sTopic => $aQueriesDisplayData) {
$bShowOpened = $bUsingExample;
$sTopicHtml = $oP->GetTable($aDisplayConfig, $aQueriesDisplayData);
$oTopicSection = new CollapsibleSection($sTopic, [new Html($sTopicHtml)]);
$oTopic = $oP->GetTableBlock($aDisplayConfig, $aQueriesDisplayData);
$oTopicSection = new CollapsibleSection($sTopic, [$oTopic]);
$oTopicSection->SetOpenedByDefault($bShowOpened);
$oP->AddUiBlock($oTopicSection);
}

View File

@@ -11,6 +11,7 @@ use appUserPreferences;
use AttributeLinkedSet;
use cmdbAbstractObject;
use Combodo\iTop\Application\UI\Base\Component\DataTable\StaticTable\FormTable\FormTable;
use Combodo\iTop\Application\UI\Base\Component\DataTable\StaticTable\FormTableRow\FormTableRow;
use Combodo\iTop\Application\UI\Base\Component\DataTable\StaticTable\StaticTable;
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelFactory;
use Combodo\iTop\Application\UI\Base\Component\Title\TitleFactory;
@@ -759,12 +760,17 @@ class DataTableFactory
return $oBlock;
}
public Static function MakeForForm(string $sRef, array $aColumns): FormTable
public static function MakeForForm(string $sRef, array $aColumns, array $aData = []): FormTable
{
$oTable = new FormTable("datatable_".$sRef);
$oTable->SetRef($sRef);
$oTable->SetColumns($aColumns);
foreach ($aData as $iRowId => $aRow) {
$oRow = new FormTableRow($sRef, $aColumns, $aRow, $iRowId);
$oTable->AddRow($oRow);
}
return $oTable;
}

View File

@@ -21,7 +21,7 @@ class FormTable extends StaticTable
// Overloaded constants
public const BLOCK_CODE = 'ibo-formtable';
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/components/datatable/static/formtable/layout';
public const DEFAULT_JS_TEMPLATE_REL_PATH = 'base/components/datatable/static/formtable/layout';
public const DEFAULT_JS_ON_READY_TEMPLATE_REL_PATH = 'base/components/datatable/static/formtable/layout';
/** @var string */
private $sRef;

View File

@@ -18,7 +18,7 @@ class StaticTable extends UIContentBlock
// Overloaded constants
public const BLOCK_CODE = 'ibo-datatable';
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/components/datatable/static/layout';
public const DEFAULT_JS_TEMPLATE_REL_PATH = 'base/components/datatable/static/layout';
public const DEFAULT_JS_ON_READY_TEMPLATE_REL_PATH = 'base/components/datatable/static/layout';
public const DEFAULT_JS_FILES_REL_PATH = [
'lib/datatables/js/jquery.dataTables.min.js',
'lib/datatables/js/dataTables.bootstrap.min.js',

View File

@@ -18,6 +18,7 @@
*/
use Combodo\iTop\Application\TwigBase\Twig\TwigHelper;
use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableFactory;
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
use Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenu;
use Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenuFactory;
@@ -233,7 +234,12 @@ class WebPage implements Page
*/
public function table($aConfig, $aData, $aParams = array())
{
$this->add($this->GetTable($aConfig, $aData, $aParams));
$this->AddUiBlock($this->GetTableBlock($aConfig, $aData));
}
public function GetTableBlock($aColumns, $aData)
{
return DataTableFactory::MakeForForm(uniqid('form_', true), $aColumns, $aData);
}
/**