_coreRegistry = $registry; $this->_salesData = $salesData; parent::__construct($context, $data); $this->adminHelper = $adminHelper; } /** * Preparing global layout * * @return $this */ protected function _prepareLayout() { $onclick = "submitAndReloadArea($('order_history_block').parentNode, '" . $this->getSubmitUrl() . "')"; $button = $this->getLayout()->createBlock( \Magento\Backend\Block\Widget\Button::class )->setData( ['label' => __('Submit Comment'), 'class' => 'action-save action-secondary', 'onclick' => $onclick] ); $this->setChild('submit_button', $button); return parent::_prepareLayout(); } /** * Get stat uses * * @return array */ public function getStatuses() { $state = $this->getOrder()->getState(); $statuses = $this->getOrder()->getConfig()->getStateStatuses($state); return $statuses; } /** * Check allow to send order comment email * * @return bool */ public function canSendCommentEmail() { return $this->_salesData->canSendOrderCommentEmail($this->getOrder()->getStore()->getId()) && $this->_authorization->isAllowed('Magento_Sales::email'); } /** * Retrieve order model * * @return \Magento\Sales\Model\Order */ public function getOrder() { return $this->_coreRegistry->registry('sales_order'); } /** * Check allow to add comment * * @return bool */ public function canAddComment() { return $this->_authorization->isAllowed('Magento_Sales::comment') && $this->getOrder()->canComment(); } /** * Submit URL getter * * @return string */ public function getSubmitUrl() { return $this->getUrl('sales/*/addComment', ['order_id' => $this->getOrder()->getId()]); } /** * Customer Notification Applicable check method * * @param \Magento\Sales\Model\Order\Status\History $history * @return bool */ public function isCustomerNotificationNotApplicable(\Magento\Sales\Model\Order\Status\History $history) { return $history->isCustomerNotificationNotApplicable(); } /** * Replace links in string * * @param array|string $data * @param null|array $allowedTags * @return string */ public function escapeHtml($data, $allowedTags = null) { return $this->adminHelper->escapeHtmlWithLinks($data, $allowedTags); } }