1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Ui\Component;
- use Magento\Framework\Api\FilterBuilder;
- use Magento\Framework\View\Element\UiComponent\ContextInterface;
- use Magento\Ui\Api\BookmarkManagementInterface;
- use Magento\Ui\Api\BookmarkRepositoryInterface;
- /**
- * Class Bookmark
- */
- class Bookmark extends AbstractComponent
- {
- const NAME = 'bookmark';
- /**
- * @var BookmarkRepositoryInterface
- */
- protected $bookmarkRepository;
- /**
- * @var FilterBuilder
- */
- protected $filterBuilder;
- /**
- * @var BookmarkManagementInterface
- */
- protected $bookmarkManagement;
- /**
- * @param ContextInterface $context
- * @param BookmarkRepositoryInterface $bookmarkRepository
- * @param BookmarkManagementInterface $bookmarkManagement
- * @param array $components
- * @param array $data
- */
- public function __construct(
- ContextInterface $context,
- BookmarkRepositoryInterface $bookmarkRepository,
- BookmarkManagementInterface $bookmarkManagement,
- array $components = [],
- array $data = []
- ) {
- parent::__construct($context, $components, $data);
- $this->bookmarkRepository = $bookmarkRepository;
- $this->bookmarkManagement = $bookmarkManagement;
- }
- /**
- * Get component name
- *
- * @return string
- */
- public function getComponentName()
- {
- return static::NAME;
- }
- /**
- * Register component
- *
- * @return void
- */
- public function prepare()
- {
- $namespace = $this->getContext()->getRequestParam('namespace', $this->getContext()->getNamespace());
- $config = [];
- if (!empty($namespace)) {
- $bookmarks = $this->bookmarkManagement->loadByNamespace($namespace);
- /** @var \Magento\Ui\Api\Data\BookmarkInterface $bookmark */
- foreach ($bookmarks->getItems() as $bookmark) {
- if ($bookmark->isCurrent()) {
- $config['activeIndex'] = $bookmark->getIdentifier();
- }
- $config = array_merge_recursive($config, $bookmark->getConfig());
- }
- }
- $this->setData('config', array_replace_recursive($config, $this->getConfiguration()));
- parent::prepare();
- $jsConfig = $this->getConfiguration();
- $this->getContext()->addComponentDefinition($this->getComponentName(), $jsConfig);
- }
- }
|