Added quick edit link column to Parts tables.

This commit is contained in:
Jan Böhmer 2020-05-22 22:31:19 +02:00
parent 8b43faeeac
commit 123b229638
2 changed files with 30 additions and 1 deletions

View file

@ -44,10 +44,12 @@ namespace App\DataTables;
use App\DataTables\Adapter\FetchJoinORMAdapter; use App\DataTables\Adapter\FetchJoinORMAdapter;
use App\DataTables\Column\EntityColumn; use App\DataTables\Column\EntityColumn;
use App\DataTables\Column\IconLinkColumn;
use App\DataTables\Column\LocaleDateTimeColumn; 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\TagsColumn; use App\DataTables\Column\TagsColumn;
use App\Entity\LogSystem\AbstractLogEntry;
use App\Entity\Parts\Category; use App\Entity\Parts\Category;
use App\Entity\Parts\Footprint; use App\Entity\Parts\Footprint;
use App\Entity\Parts\Manufacturer; use App\Entity\Parts\Manufacturer;
@ -67,6 +69,7 @@ use Omines\DataTablesBundle\Column\TextColumn;
use Omines\DataTablesBundle\DataTable; use Omines\DataTablesBundle\DataTable;
use Omines\DataTablesBundle\DataTableTypeInterface; use Omines\DataTablesBundle\DataTableTypeInterface;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Core\Security;
use Symfony\Contracts\Translation\TranslatorInterface; use Symfony\Contracts\Translation\TranslatorInterface;
final class PartsDataTable implements DataTableTypeInterface final class PartsDataTable implements DataTableTypeInterface
@ -76,6 +79,8 @@ final class PartsDataTable implements DataTableTypeInterface
private $amountFormatter; private $amountFormatter;
private $previewGenerator; private $previewGenerator;
private $attachmentURLGenerator; private $attachmentURLGenerator;
private $security;
/** /**
* @var EntityURLGenerator * @var EntityURLGenerator
*/ */
@ -83,7 +88,7 @@ final class PartsDataTable implements DataTableTypeInterface
public function __construct(EntityURLGenerator $urlGenerator, TranslatorInterface $translator, public function __construct(EntityURLGenerator $urlGenerator, TranslatorInterface $translator,
NodesListBuilder $treeBuilder, AmountFormatter $amountFormatter, NodesListBuilder $treeBuilder, AmountFormatter $amountFormatter,
PartPreviewGenerator $previewGenerator, AttachmentURLGenerator $attachmentURLGenerator) PartPreviewGenerator $previewGenerator, AttachmentURLGenerator $attachmentURLGenerator, Security $security)
{ {
$this->urlGenerator = $urlGenerator; $this->urlGenerator = $urlGenerator;
$this->translator = $translator; $this->translator = $translator;
@ -91,6 +96,7 @@ final class PartsDataTable implements DataTableTypeInterface
$this->amountFormatter = $amountFormatter; $this->amountFormatter = $amountFormatter;
$this->previewGenerator = $previewGenerator; $this->previewGenerator = $previewGenerator;
$this->attachmentURLGenerator = $attachmentURLGenerator; $this->attachmentURLGenerator = $attachmentURLGenerator;
$this->security = $security;
} }
public function configureOptions(OptionsResolver $optionsResolver): void public function configureOptions(OptionsResolver $optionsResolver): void
@ -283,6 +289,17 @@ final class PartsDataTable implements DataTableTypeInterface
'label' => $this->translator->trans('part.table.attachments'), 'label' => $this->translator->trans('part.table.attachments'),
'visible' => false, 'visible' => false,
]) ])
->add('edit', IconLinkColumn::class, [
'label' => $this->translator->trans('part.table.edit'),
'visible' => false,
'href' => function ($value, Part $context) {
return $this->urlGenerator->editURL($context);
},
'disabled' => function ($value, Part $context) {
return !$this->security->isGranted('edit', $context);
},
'title' => $this->translator->trans('part.table.edit.title'),
])
->addOrderBy('name') ->addOrderBy('name')
->createAdapter(FetchJoinORMAdapter::class, [ ->createAdapter(FetchJoinORMAdapter::class, [

View file

@ -9099,5 +9099,17 @@ Element 3</target>
<target>Users still uses this group! Change their group, to be able to delete this group.</target> <target>Users still uses this group! Change their group, to be able to delete this group.</target>
</segment> </segment>
</unit> </unit>
<unit id="72lMzIQ" name="part.table.edit">
<segment>
<source>part.table.edit</source>
<target>Edit</target>
</segment>
</unit>
<unit id="AGwzXa0" name="part.table.edit.title">
<segment>
<source>part.table.edit.title</source>
<target>Edit part</target>
</segment>
</unit>
</file> </file>
</xliff> </xliff>