bug #18774 [console][table] adjust width of colspanned cell. (aitboudad)
This PR was merged into the 2.8 branch.
Discussion
----------
[console][table] adjust width of colspanned cell.
| Q | A
| ------------- | ---
| Branch? | 2.8
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #18627
| License | MIT
| Doc PR | ~
Commits
-------
081ad73
[console][table] adjust width of colspanned cell.
This commit is contained in:
commit
208e6b0f9e
@ -569,6 +569,18 @@ class Table
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($row as $i => $cell) {
|
||||
if ($cell instanceof TableCell) {
|
||||
$textLength = strlen($cell);
|
||||
if ($textLength > 0) {
|
||||
$contentColumns = str_split($cell, ceil($textLength / $cell->getColspan()));
|
||||
foreach ($contentColumns as $position => $content) {
|
||||
$row[$i + $position] = $content;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$lengths[] = $this->getCellWidth($row, $column);
|
||||
}
|
||||
|
||||
@ -599,10 +611,6 @@ class Table
|
||||
if (isset($row[$column])) {
|
||||
$cell = $row[$column];
|
||||
$cellWidth = Helper::strlenWithoutDecoration($this->output->getFormatter(), $cell);
|
||||
if ($cell instanceof TableCell && $cell->getColspan() > 1) {
|
||||
// we assume that cell value will be across more than one column.
|
||||
$cellWidth = $cellWidth / $cell->getColspan();
|
||||
}
|
||||
|
||||
return $cellWidth;
|
||||
}
|
||||
|
@ -269,21 +269,27 @@ TABLE
|
||||
'9971-5-0210-0',
|
||||
new TableCell("A Tale of \nTwo Cities", array('colspan' => 2)),
|
||||
),
|
||||
new TableSeparator(),
|
||||
array(
|
||||
new TableCell('Cupiditate dicta atque porro, tempora exercitationem modi animi nulla nemo vel nihil!', array('colspan' => 3)),
|
||||
),
|
||||
),
|
||||
'default',
|
||||
<<<TABLE
|
||||
+----------------+---------------+-----------------+
|
||||
| ISBN | Title | Author |
|
||||
+----------------+---------------+-----------------+
|
||||
| 99921-58-10-7 | Divine Comedy | Dante Alighieri |
|
||||
+----------------+---------------+-----------------+
|
||||
| Divine Comedy(Dante Alighieri) |
|
||||
+----------------+---------------+-----------------+
|
||||
| Arduino: A Quick-Start Guide | Mark Schmidt |
|
||||
+----------------+---------------+-----------------+
|
||||
| 9971-5-0210-0 | A Tale of |
|
||||
| | Two Cities |
|
||||
+----------------+---------------+-----------------+
|
||||
+-------------------------------+-------------------------------+-----------------------------+
|
||||
| ISBN | Title | Author |
|
||||
+-------------------------------+-------------------------------+-----------------------------+
|
||||
| 99921-58-10-7 | Divine Comedy | Dante Alighieri |
|
||||
+-------------------------------+-------------------------------+-----------------------------+
|
||||
| Divine Comedy(Dante Alighieri) |
|
||||
+-------------------------------+-------------------------------+-----------------------------+
|
||||
| Arduino: A Quick-Start Guide | Mark Schmidt |
|
||||
+-------------------------------+-------------------------------+-----------------------------+
|
||||
| 9971-5-0210-0 | A Tale of |
|
||||
| | Two Cities |
|
||||
+-------------------------------+-------------------------------+-----------------------------+
|
||||
| Cupiditate dicta atque porro, tempora exercitationem modi animi nulla nemo vel nihil! |
|
||||
+-------------------------------+-------------------------------+-----------------------------+
|
||||
|
||||
TABLE
|
||||
),
|
||||
@ -336,16 +342,16 @@ TABLE
|
||||
),
|
||||
'default',
|
||||
<<<TABLE
|
||||
+------------------+--------+-----------------+
|
||||
| ISBN | Title | Author |
|
||||
+------------------+--------+-----------------+
|
||||
| 9971-5-0210-0 | Dante Alighieri |
|
||||
| | Charles Dickens |
|
||||
+------------------+--------+-----------------+
|
||||
| Dante Alighieri | 9971-5-0210-0 |
|
||||
| J. R. R. Tolkien | |
|
||||
| J. R. R | |
|
||||
+------------------+--------+-----------------+
|
||||
+------------------+---------+-----------------+
|
||||
| ISBN | Title | Author |
|
||||
+------------------+---------+-----------------+
|
||||
| 9971-5-0210-0 | Dante Alighieri |
|
||||
| | Charles Dickens |
|
||||
+------------------+---------+-----------------+
|
||||
| Dante Alighieri | 9971-5-0210-0 |
|
||||
| J. R. R. Tolkien | |
|
||||
| J. R. R | |
|
||||
+------------------+---------+-----------------+
|
||||
|
||||
TABLE
|
||||
),
|
||||
@ -473,9 +479,9 @@ TABLE
|
||||
),
|
||||
'default',
|
||||
<<<TABLE
|
||||
+--+--+--+--+--+--+--+--+--+
|
||||
| 1 | 2 | 3 | 4 |
|
||||
+--+--+--+--+--+--+--+--+--+
|
||||
+---+--+--+---+--+---+--+---+--+
|
||||
| 1 | 2 | 3 | 4 |
|
||||
+---+--+--+---+--+---+--+---+--+
|
||||
|
||||
TABLE
|
||||
),
|
||||
@ -580,15 +586,15 @@ TABLE;
|
||||
|
||||
$expected =
|
||||
<<<TABLE
|
||||
+---+--+
|
||||
| foo |
|
||||
+---+--+
|
||||
+---+--+
|
||||
| foo |
|
||||
+---+--+
|
||||
+---+--+
|
||||
| foo |
|
||||
+---+--+
|
||||
+----+---+
|
||||
| foo |
|
||||
+----+---+
|
||||
+----+---+
|
||||
| foo |
|
||||
+----+---+
|
||||
+----+---+
|
||||
| foo |
|
||||
+----+---+
|
||||
|
||||
TABLE;
|
||||
|
||||
|
Reference in New Issue
Block a user