Improved formatting of the mass Part Lists column

This commit is contained in:
Jan Böhmer 2022-09-10 00:37:47 +02:00
parent b3956c7c4d
commit 1915acf069
2 changed files with 38 additions and 1 deletions

View file

@ -0,0 +1,35 @@
<?php
namespace App\DataTables\Column;
use App\Services\SIFormatter;
use Omines\DataTablesBundle\Column\AbstractColumn;
use Symfony\Component\OptionsResolver\OptionsResolver;
class SIUnitNumberColumn extends AbstractColumn
{
protected $formatter;
public function __construct(SIFormatter $formatter)
{
$this->formatter = $formatter;
}
public function configureOptions(OptionsResolver $resolver)
{
parent::configureOptions($resolver);
$resolver->setDefault('precision', 2);
$resolver->setDefault('unit', '');
}
public function normalize($value)
{
//Ignore null values
if ($value === null) {
return '';
}
return $this->formatter->format((float) $value, $this->options['unit'], $this->options['precision']);
}
}

View file

@ -48,6 +48,7 @@ use App\DataTables\Column\LocaleDateTimeColumn;
use App\DataTables\Column\MarkdownColumn; use App\DataTables\Column\MarkdownColumn;
use App\DataTables\Column\PartAttachmentsColumn; use App\DataTables\Column\PartAttachmentsColumn;
use App\DataTables\Column\PrettyBoolColumn; use App\DataTables\Column\PrettyBoolColumn;
use App\DataTables\Column\SIUnitNumberColumn;
use App\DataTables\Column\TagsColumn; use App\DataTables\Column\TagsColumn;
use App\DataTables\Filters\PartFilter; use App\DataTables\Filters\PartFilter;
use App\DataTables\Filters\PartSearchFilter; use App\DataTables\Filters\PartSearchFilter;
@ -245,9 +246,10 @@ final class PartsDataTable implements DataTableTypeInterface
'label' => $this->translator->trans('part.table.mpn'), 'label' => $this->translator->trans('part.table.mpn'),
'visible' => false, 'visible' => false,
]) ])
->add('mass', TextColumn::class, [ ->add('mass', SIUnitNumberColumn::class, [
'label' => $this->translator->trans('part.table.mass'), 'label' => $this->translator->trans('part.table.mass'),
'visible' => false, 'visible' => false,
'unit' => 'g'
]) ])
->add('tags', TagsColumn::class, [ ->add('tags', TagsColumn::class, [
'label' => $this->translator->trans('part.table.tags'), 'label' => $this->translator->trans('part.table.tags'),