123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Review\Block\Adminhtml;
- /**
- * Review edit form
- */
- class Edit extends \Magento\Backend\Block\Widget\Form\Container
- {
- /**
- * Review action pager
- *
- * @var \Magento\Review\Helper\Action\Pager
- */
- protected $_reviewActionPager = null;
- /**
- * Core registry
- *
- * @var \Magento\Framework\Registry
- */
- protected $_coreRegistry = null;
- /**
- * Review model factory
- *
- * @var \Magento\Review\Model\ReviewFactory
- */
- protected $_reviewFactory;
- /**
- * @param \Magento\Backend\Block\Widget\Context $context
- * @param \Magento\Review\Model\ReviewFactory $reviewFactory
- * @param \Magento\Review\Helper\Action\Pager $reviewActionPager
- * @param \Magento\Framework\Registry $registry
- * @param array $data
- */
- public function __construct(
- \Magento\Backend\Block\Widget\Context $context,
- \Magento\Review\Model\ReviewFactory $reviewFactory,
- \Magento\Review\Helper\Action\Pager $reviewActionPager,
- \Magento\Framework\Registry $registry,
- array $data = []
- ) {
- $this->_coreRegistry = $registry;
- $this->_reviewActionPager = $reviewActionPager;
- $this->_reviewFactory = $reviewFactory;
- parent::__construct($context, $data);
- }
- /**
- * Initialize edit review
- *
- * @return void
- * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
- */
- protected function _construct()
- {
- parent::_construct();
- $this->_objectId = 'id';
- $this->_blockGroup = 'Magento_Review';
- $this->_controller = 'adminhtml';
- /** @var $actionPager \Magento\Review\Helper\Action\Pager */
- $actionPager = $this->_reviewActionPager;
- $actionPager->setStorageId('reviews');
- $reviewId = $this->getRequest()->getParam('id');
- $prevId = $actionPager->getPreviousItemId($reviewId);
- $nextId = $actionPager->getNextItemId($reviewId);
- if ($prevId !== false) {
- $this->addButton(
- 'previous',
- [
- 'label' => __('Previous'),
- 'onclick' => 'setLocation(\'' . $this->getUrl('review/*/*', ['id' => $prevId]) . '\')'
- ],
- 3,
- 10
- );
- $this->addButton(
- 'save_and_previous',
- [
- 'label' => __('Save and Previous'),
- 'class' => 'save',
- 'data_attribute' => [
- 'mage-init' => [
- 'button' => [
- 'event' => 'save',
- 'target' => '#edit_form',
- 'eventData' => ['action' => ['args' => ['next_item' => $prevId]]],
- ],
- ],
- ]
- ],
- 3,
- 11
- );
- }
- if ($nextId !== false) {
- $this->addButton(
- 'save_and_next',
- [
- 'label' => __('Save and Next'),
- 'class' => 'save',
- 'data_attribute' => [
- 'mage-init' => [
- 'button' => [
- 'event' => 'save',
- 'target' => '#edit_form',
- 'eventData' => ['action' => ['args' => ['next_item' => $nextId]]],
- ],
- ],
- ]
- ],
- 3,
- 100
- );
- $this->addButton(
- 'next',
- [
- 'label' => __('Next'),
- 'onclick' => 'setLocation(\'' . $this->getUrl('review/*/*', ['id' => $nextId]) . '\')'
- ],
- 3,
- 105
- );
- }
- $this->buttonList->update('save', 'label', __('Save Review'));
- $this->buttonList->update('save', 'id', 'save_button');
- $this->buttonList->update('delete', 'label', __('Delete Review'));
- if ($this->getRequest()->getParam('productId', false)) {
- $this->buttonList->update(
- 'back',
- 'onclick',
- 'setLocation(\'' . $this->getUrl(
- 'catalog/product/edit',
- ['id' => $this->getRequest()->getParam('productId', false)]
- ) . '\')'
- );
- }
- if ($this->getRequest()->getParam('customerId', false)) {
- $this->buttonList->update(
- 'back',
- 'onclick',
- 'setLocation(\'' . $this->getUrl(
- 'customer/index/edit',
- ['id' => $this->getRequest()->getParam('customerId', false)]
- ) . '\')'
- );
- }
- if ($this->getRequest()->getParam('ret', false) == 'pending') {
- $this->buttonList->update('back', 'onclick', 'setLocation(\'' . $this->getUrl('review/*/pending') . '\')');
- $this->buttonList->update(
- 'delete',
- 'onclick',
- 'deleteConfirm(' . '\'' . __(
- 'Are you sure you want to do this?'
- ) . '\', ' . '\'' . $this->getUrl(
- '*/*/delete',
- [$this->_objectId => $this->getRequest()->getParam($this->_objectId), 'ret' => 'pending']
- ) . '\'' . ')'
- );
- $this->_coreRegistry->register('ret', 'pending');
- }
- if ($this->getRequest()->getParam($this->_objectId)) {
- $reviewData = $this->_reviewFactory->create()->load($this->getRequest()->getParam($this->_objectId));
- $this->_coreRegistry->register('review_data', $reviewData);
- }
- $this->_formInitScripts[] = '
- var review = {
- updateRating: function() {
- elements = [
- $("select_stores"),
- $("rating_detail").getElementsBySelector("input[type=\'radio\']")
- ].flatten();
- $(\'save_button\').disabled = true;
- new Ajax.Updater(
- "rating_detail",
- "' .
- $this->getUrl(
- 'review/*/ratingItems',
- ['_current' => true]
- ) .
- '",
- {
- parameters:Form.serializeElements(elements),
- evalScripts:true,
- onComplete:function(){ $(\'save_button\').disabled = false; }
- }
- );
- }
- }
- Event.observe(window, \'load\', function(){
- Event.observe($("select_stores"), \'change\', review.updateRating);
- });
- ';
- }
- /**
- * Get edit review header text
- *
- * @return \Magento\Framework\Phrase
- */
- public function getHeaderText()
- {
- $reviewData = $this->_coreRegistry->registry('review_data');
- if ($reviewData && $reviewData->getId()) {
- return __("Edit Review '%1'", $this->escapeHtml($reviewData->getTitle()));
- } else {
- return __('New Review');
- }
- }
- }
|