DoneButton.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\AsynchronousOperations\Block\Adminhtml\Bulk\Details;
  7. use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface;
  8. use Magento\Framework\Bulk\OperationInterface;
  9. /**
  10. * Back button configuration provider
  11. */
  12. class DoneButton implements ButtonProviderInterface
  13. {
  14. /**
  15. * @var \Magento\Framework\Bulk\BulkStatusInterface
  16. */
  17. private $bulkStatus;
  18. /**
  19. * @var \Magento\Framework\App\RequestInterface
  20. */
  21. private $request;
  22. /**
  23. * @param \Magento\Framework\Bulk\BulkStatusInterface $bulkStatus
  24. * @param \Magento\Framework\App\RequestInterface $request
  25. */
  26. public function __construct(
  27. \Magento\Framework\Bulk\BulkStatusInterface $bulkStatus,
  28. \Magento\Framework\App\RequestInterface $request
  29. ) {
  30. $this->bulkStatus = $bulkStatus;
  31. $this->request = $request;
  32. }
  33. /**
  34. * Retrieve button data
  35. *
  36. * @return array button configuration
  37. */
  38. public function getButtonData()
  39. {
  40. $uuid = $this->request->getParam('uuid');
  41. $operationsCount = $this->bulkStatus->getOperationsCountByBulkIdAndStatus(
  42. $uuid,
  43. OperationInterface::STATUS_TYPE_RETRIABLY_FAILED
  44. );
  45. $button = [];
  46. if ($this->request->getParam('buttons') && $operationsCount === 0) {
  47. $button = [
  48. 'label' => __('Done'),
  49. 'class' => 'primary',
  50. 'sort_order' => 10,
  51. 'on_click' => '',
  52. 'data_attribute' => [
  53. 'mage-init' => [
  54. 'Magento_Ui/js/form/button-adapter' => [
  55. 'actions' => [
  56. [
  57. 'targetName' => 'notification_area.notification_area.modalContainer.modal',
  58. 'actionName' => 'closeModal'
  59. ],
  60. ],
  61. ],
  62. ],
  63. ],
  64. ];
  65. }
  66. return $button;
  67. }
  68. }