chg: [genericElements:extended] Renamed `extended` related fields into

`tree` and added doc
pull/6120/head
mokaddem 2020-07-09 16:15:10 +02:00
parent 03a66ddf8f
commit 527fc88cf1
No known key found for this signature in database
GPG Key ID: 164C473F627A06FA
3 changed files with 43 additions and 17 deletions

View File

@ -1,4 +1,18 @@
<?php
/**
* Generate a tree like hierarchy from the provided data
*
* @see tree_node.ctp
* @param array $field['parent'] If provided, will be echoed verbatim
* @param array $field['fields']['tree_data'] The data for each tree level, from parent to children:
* array(
* 0 => array(
* $tree_node_data
* ),
* 1 => array(...),
* )
*/
if (isset($field['parent'])) {
echo h($field['parent']);
} else {
@ -9,18 +23,17 @@ if (isset($field['parent'])) {
}
$htmlExtended = '';
$datapathLevels = $field['fields']['extend_data'];
$datapathLevels = $field['fields']['tree_data'];
$levelSkiped = 0;
foreach ($datapathLevels as $level => $datapathLevel) {
$dataForLevel = Hash::extract($row, $datapathLevel['extend_root_data_path']);
$dataForLevel = Hash::extract($row, $datapathLevel['main_data_path']);
if (!empty($dataForLevel)) {
$htmlExtended .= $this->element(
'/genericElements/IndexTable/Fields/extended_by',
'/genericElements/IndexTable/Fields/tree_node',
array(
'datapath' => $datapathLevel,
'data' => $dataForLevel,
'level' => $level - $levelSkiped,
'k' => $k,
)
);
} else {

View File

@ -1,3 +1,16 @@
<?php
/**
* Tree node used by the tree generic element
* @param array $nodeDataPaths Different datapath that can be used to further extract more data or to be passed to other elements
* array(
* 'main_data_path' => <string>, *required* Array of data to be drawn for this level
* 'node_link_path' => <string>, *optional* The data to be used for displayed the link
* 'node_link_title' => <string>, *optional* The title to be used for the link if node_link_path provided, otherwise the verbatim value to be displayed
* )
* @param array $data The data to be used to draw the node
* @param int $level The current node depth in the tree
*/
?>
<?php if (!empty($data)): ?>
<?php
if (!isset($data[0])) {
@ -8,7 +21,7 @@
?>
<?php foreach ($data as $item): ?>
<?php
$linkTitle = Hash::extract($item, $datapath['extend_link_title']);
$linkTitle = Hash::extract($item, $datapath['node_link_title']);
if (!empty($linkTitle)) {
$linkTitle = $linkTitle[0];
}
@ -20,12 +33,12 @@
<?php endif; ?>
<span style="margin-left: 0.2em;">
<?php
if (isset($datapath['extend_link_path'])) {
if (isset($datapath['node_link_path'])) {
echo $this->element('genericElements/IndexTable/Fields/links', array(
'row' => $item,
'field' => array(
'url' => $baseurl . '/galaxy_clusters/view/%s',
'data_path' => $datapath['extend_link_path'],
'data_path' => $datapath['node_link_path'],
'title' => $linkTitle
),
));

View File

@ -128,22 +128,22 @@
'name' => __('Description'),
'sort' => 'description',
'data_path' => 'GalaxyCluster.description',
'element' => 'extended',
'element' => 'tree',
'fields' => array(
'extend_data' => array(
'tree_data' => array(
0 => array(
'extend_root_data_path' => 'GalaxyCluster.extended_from',
'extend_link_path' => 'GalaxyCluster.uuid',
'extend_link_title' => 'GalaxyCluster.value',
'main_data_path' => 'GalaxyCluster.extended_from',
'node_link_path' => 'GalaxyCluster.uuid',
'node_link_title' => 'GalaxyCluster.value',
),
1 => array(
'extend_root_data_path' => 'GalaxyCluster',
'extend_link_title' => 'value',
'main_data_path' => 'GalaxyCluster',
'node_link_title' => 'value',
),
2 => array(
'extend_root_data_path' => 'GalaxyCluster.extended_by',
'extend_link_path' => 'GalaxyCluster.uuid',
'extend_link_title' => 'GalaxyCluster.value',
'main_data_path' => 'GalaxyCluster.extended_by',
'node_link_path' => 'GalaxyCluster.uuid',
'node_link_title' => 'GalaxyCluster.value',
),
)
)