improve list views (#1191)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user