diff --git a/src/DataTables/Column/PrettyBoolColumn.php b/src/DataTables/Column/PrettyBoolColumn.php new file mode 100644 index 00000000..da6af1c4 --- /dev/null +++ b/src/DataTables/Column/PrettyBoolColumn.php @@ -0,0 +1,49 @@ +translator = $translator; + } + + public function normalize($value): ?bool + { + if (null === $value) { + return null; + } + + return (bool) $value; + } + + public function render($value, $context) + { + if ($value === true) { + return ' ' + . $this->translator->trans('bool.true') + . ''; + } + + if ($value === false) { + return ' ' + . $this->translator->trans('bool.false') + . ''; + } + + if ($value === null) { + return ' ' + . $this->translator->trans('bool.unknown') + . ''; + } + + throw new \RuntimeException('Unexpected value!'); + } +} \ No newline at end of file diff --git a/src/DataTables/PartsDataTable.php b/src/DataTables/PartsDataTable.php index 4f06bc82..bdfb33af 100644 --- a/src/DataTables/PartsDataTable.php +++ b/src/DataTables/PartsDataTable.php @@ -47,6 +47,7 @@ use App\DataTables\Column\IconLinkColumn; use App\DataTables\Column\LocaleDateTimeColumn; use App\DataTables\Column\MarkdownColumn; use App\DataTables\Column\PartAttachmentsColumn; +use App\DataTables\Column\PrettyBoolColumn; use App\DataTables\Column\TagsColumn; use App\DataTables\Filters\PartFilter; use App\Entity\Parts\Category; @@ -255,18 +256,12 @@ final class PartsDataTable implements DataTableTypeInterface 'label' => $this->translator->trans('part.table.lastModified'), 'visible' => false, ]) - ->add('needs_review', BoolColumn::class, [ + ->add('needs_review', PrettyBoolColumn::class, [ 'label' => $this->translator->trans('part.table.needsReview'), - 'trueValue' => $this->translator->trans('true'), - 'falseValue' => $this->translator->trans('false'), - 'nullValue' => '', 'visible' => false, ]) - ->add('favorite', BoolColumn::class, [ + ->add('favorite', PrettyBoolColumn::class, [ 'label' => $this->translator->trans('part.table.favorite'), - 'trueValue' => $this->translator->trans('true'), - 'falseValue' => $this->translator->trans('false'), - 'nullValue' => '', 'visible' => false, ]) ->add('manufacturing_status', MapColumn::class, [