';
if (!empty($data['title'])) {
if (empty($embedInModal)) {
$html .= Text::insert(
'
',
[
'title' => h($this->ValueGetter->get($data['title'])),
'help' => $this->Bootstrap->icon('info', [
'class' => ['fs-6', 'align-text-top',],
'title' => empty($data['description']) ? '' : h($data['description']),
'attrs' => [
'data-bs-toggle' => 'tooltip',
]
]),
]
);
} else {
$pageTitle = $this->Bootstrap->node('h5', [], h($this->ValueGetter->get($data['title'])));
}
}
if(!empty($notice)) {
$html .= $this->Bootstrap->alert($notice);
}
if (!empty($modelStatistics)) {
$html .= $this->element('genericElements/IndexTable/Statistics/index_statistic_scaffold', [
'statistics' => $modelStatistics,
]);
}
$html .= '
';
if (!empty($data['html'])) {
$html .= sprintf('
%s
', $data['html']);
}
$skipPagination = isset($data['skip_pagination']) ? $data['skip_pagination'] : 0;
if (!$skipPagination) {
$paginationData = !empty($data['paginatorOptions']) ? $data['paginatorOptions'] : [];
if (!empty($embedInModal)) {
$paginationData['update'] = ".modal-main-{$tableRandomValue}";
}
$html .= $this->element(
'/genericElements/IndexTable/pagination',
[
'paginationOptions' => $paginationData,
'tableRandomValue' => $tableRandomValue
]
);
$html .= $this->element(
'/genericElements/IndexTable/pagination_links'
);
}
$multiSelectData = getMultiSelectData($data['top_bar']);
if (!empty($multiSelectData)) {
$multiSelectField = [
'element' => 'selector',
'class' => 'short',
'data' => $multiSelectData['data']
];
array_unshift($data['fields'], $multiSelectField);
}
if (!empty($data['top_bar']) && empty($skipTableToolbar)) {
$html .= $this->element(
'/genericElements/ListTopBar/scaffold',
[
'data' => $data['top_bar'],
'table_data' => $data,
'tableRandomValue' => $tableRandomValue
]
);
}
$rows = '';
$row_element = isset($data['row_element']) ? $data['row_element'] : 'row';
$options = isset($data['options']) ? $data['options'] : [];
$actions = isset($data['actions']) ? $data['actions'] : [];
if ($this->request->getParam('prefix') === 'Open') {
$actions = [];
}
$dblclickActionArray = !empty($actions) ? $this->Hash->extract($actions, '{n}[dbclickAction]') : [];
$dbclickAction = '';
foreach ($data['data'] as $k => $data_row) {
$primary = null;
if (!empty($data['primary_id_path'])) {
$primary = $this->Hash->extract($data_row, $data['primary_id_path'])[0];
}
if (!empty($dblclickActionArray)) {
$dbclickAction = sprintf("changeLocationFromIndexDblclick(%s)", $k);
}
$rows .= sprintf(
'
%s
',
h($k),
empty($dbclickAction) ? '' : 'ondblclick="' . $dbclickAction . '"',
empty($primary) ? '' : 'data-primary-id="' . $primary . '"',
empty($data['row_modifier']) ? '' : h($data['row_modifier']($data_row)),
empty($data['class']) ? '' : h($data['row_class']),
$this->element(
'/genericElements/IndexTable/' . $row_element,
[
'k' => $k,
'row' => $data_row,
'fields' => $data['fields'],
'options' => $options,
'actions' => $actions,
'primary' => $primary,
'tableRandomValue' => $tableRandomValue
]
)
);
}
$tbody = '
' . $rows . '';
$html .= sprintf(
'
',
$tableRandomValue,
$tableRandomValue,
h($this->Url->build(['action' => $this->request->getParam('action'),])),
$this->element(
'/genericElements/IndexTable/headers',
[
'fields' => $data['fields'],
'paginator' => $this->Paginator,
'actions' => (empty($actions) ? false : true),
'tableRandomValue' => $tableRandomValue
]
),
$tbody
);
if (!$skipPagination) {
$html .= $this->element('/genericElements/IndexTable/pagination_counter', $paginationData);
$html .= $this->element('/genericElements/IndexTable/pagination_links');
}
$html .= '