improve list views (#1191)

This commit is contained in:
Kevin Papst
2019-10-25 16:21:30 +02:00
committed by GitHub
parent 1114538f41
commit 949c59230f
6 changed files with 106 additions and 41 deletions

View File

@@ -69,9 +69,10 @@ class DatatableExtensions extends AbstractExtension
*
* @param string $dataTable
* @param string $column
* @param array $columns
* @return bool
*/
public function isColumnVisible(string $dataTable, string $column)
public function isColumnVisible(string $dataTable, string $column, array $columns)
{
// name handling is spread between here and datatables.html.twig (data_table_column_modal)
$cookie = $this->getVisibilityCookieName($dataTable);
@@ -86,13 +87,34 @@ class DatatableExtensions extends AbstractExtension
$values = $this->cookies[$cookie];
if (empty($values) || !is_array($values)) {
return true;
return $this->checkInColumDefinition($columns, $column);
}
if (isset($values[$column]) && $values[$column] === false) {
if (!isset($values[$column])) {
return $this->checkInColumDefinition($columns, $column);
}
if ($values[$column] === false) {
return false;
}
return true;
}
private function checkInColumDefinition(array $columns, string $column)
{
if (array_key_exists($column, $columns)) {
$tmp = $columns[$column];
if (is_array($tmp)) {
$tmp = $tmp['class'];
}
foreach (explode(' ', $tmp) as $class) {
if ($class === 'hidden') {
return false;
}
}
}
return true;
}
}