13 class Chooser extends \Magento\Backend\Block\Widget\Grid\Extended
46 \
Magento\Backend\Helper\Data $backendHelper,
48 \
Magento\Cms\Model\PageFactory $pageFactory,
54 $this->_cmsPage = $cmsPage;
55 $this->_pageFactory = $pageFactory;
56 $this->_collectionFactory = $collectionFactory;
57 parent::__construct($context, $backendHelper,
$data);
69 $this->setUseAjax(
true);
81 $uniqId = $this->mathRandom->getUniqueHash(
$element->getId());
82 $sourceUrl = $this->
getUrl(
'cms/page_widget/chooser', [
'uniq_id' => $uniqId]);
84 $chooser = $this->
getLayout()->createBlock(
91 $this->getFieldsetId()
99 $page = $this->_pageFactory->create()->load((
int)
$element->getValue());
100 if (
$page->getId()) {
105 $element->setData(
'after_element_html', $chooser->toHtml());
116 $chooserJsObject = $this->
getId();
118 function (grid, event) { 119 var trElement = Event.findElement(event, "tr"); 120 var pageTitle = trElement.down("td").next().innerHTML; 121 var pageId = trElement.down("td").innerHTML.replace(/^\s+|\s+$/g,""); 124 '.setElementValue(pageId); 127 '.setElementLabel(pageTitle); 148 return parent::_prepareCollection();
161 'header' =>
__(
'ID'),
162 'index' =>
'page_id',
163 'header_css_class' =>
'col-id',
164 'column_css_class' =>
'col-id' 171 'header' =>
__(
'Title'),
173 'header_css_class' =>
'col-title',
174 'column_css_class' =>
'col-title' 179 'chooser_identifier',
181 'header' =>
__(
'URL Key'),
182 'index' =>
'identifier',
183 'header_css_class' =>
'col-url',
184 'column_css_class' =>
'col-url' 189 'chooser_page_layout',
191 'header' =>
__(
'Layout'),
192 'index' =>
'page_layout',
194 'options' => $this->pageLayoutBuilder->getPageLayoutsConfig()->getOptions(),
195 'header_css_class' =>
'col-layout',
196 'column_css_class' =>
'col-layout' 203 'header' =>
__(
'Status'),
204 'index' =>
'is_active',
206 'options' => $this->_cmsPage->getAvailableStatuses(),
207 'header_css_class' =>
'col-status',
208 'column_css_class' =>
'col-status' 212 return parent::_prepareColumns();
222 return $this->
getUrl(
'cms/page_widget/chooser', [
'_current' =>
true]);
prepareElementHtml(\Magento\Framework\Data\Form\Element\AbstractElement $element)
escapeHtml($data, $allowedTags=null)
getUrl($route='', $params=[])
__construct(\Magento\Backend\Block\Template\Context $context, \Magento\Backend\Helper\Data $backendHelper, \Magento\Cms\Model\Page $cmsPage, \Magento\Cms\Model\PageFactory $pageFactory, \Magento\Cms\Model\ResourceModel\Page\CollectionFactory $collectionFactory, \Magento\Framework\View\Model\PageLayout\Config\BuilderInterface $pageLayoutBuilder, array $data=[])