Skip to content

Commit

Permalink
[Grid] Add ID Resolver (#541)
Browse files Browse the repository at this point in the history
  • Loading branch information
martineiber authored Nov 6, 2024
1 parent c295877 commit c02221c
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
3 changes: 3 additions & 0 deletions config/grid.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,9 @@ services:
Pimcore\Bundle\StudioBackendBundle\Grid\Column\Resolver\System\StringResolver:
tags: [ 'pimcore.studio_backend.grid_column_resolver' ]

Pimcore\Bundle\StudioBackendBundle\Grid\Column\Resolver\System\IdResolver:
tags: [ 'pimcore.studio_backend.grid_column_resolver' ]

Pimcore\Bundle\StudioBackendBundle\Grid\Column\Resolver\System\IntegerResolver:
tags: [ 'pimcore.studio_backend.grid_column_resolver' ]

Expand Down
61 changes: 61 additions & 0 deletions src/Grid/Column/Resolver/System/IdResolver.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?php
declare(strict_types=1);

/**
* Pimcore
*
* This source file is available under two different licenses:
* - GNU General Public License version 3 (GPLv3)
* - Pimcore Commercial License (PCL)
* Full copyright and license information is available in
* LICENSE.md which is distributed with this source code.
*
* @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
* @license http://www.pimcore.org/license GPLv3 and PCL
*/

namespace Pimcore\Bundle\StudioBackendBundle\Grid\Column\Resolver\System;

use Pimcore\Bundle\StudioBackendBundle\Exception\Api\InvalidArgumentException;
use Pimcore\Bundle\StudioBackendBundle\Grid\Column\ColumnResolverInterface;
use Pimcore\Bundle\StudioBackendBundle\Grid\Column\ColumnType;
use Pimcore\Bundle\StudioBackendBundle\Grid\Schema\Column;
use Pimcore\Bundle\StudioBackendBundle\Grid\Schema\ColumnData;
use Pimcore\Bundle\StudioBackendBundle\Grid\Util\Trait\ColumnDataTrait;
use Pimcore\Bundle\StudioBackendBundle\Grid\Util\Trait\SimpleGetterTrait;
use Pimcore\Bundle\StudioBackendBundle\Response\ElementInterface;
use Pimcore\Bundle\StudioBackendBundle\Util\Constant\ElementTypes;

/**
* @internal
*/
final class IdResolver implements ColumnResolverInterface
{
use SimpleGetterTrait;
use ColumnDataTrait;

/**
* @throws InvalidArgumentException
*/
public function resolve(Column $column, ElementInterface $element): ColumnData
{
return $this->getColumnData(
$column,
$this->getValue($column, $element)
);
}

public function getType(): string
{
return ColumnType::SYSTEM_ID->value;
}

public function supportedElementTypes(): array
{
return [
ElementTypes::TYPE_ASSET,
ElementTypes::TYPE_DOCUMENT,
ElementTypes::TYPE_OBJECT,
];
}
}

0 comments on commit c02221c

Please sign in to comment.