BackButton.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\InventoryShippingAdminUi\Ui\Component\Control\SourceSelection;
  8. use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface;
  9. use Magento\Framework\UrlInterface;
  10. use Magento\Framework\App\RequestInterface;
  11. class BackButton implements ButtonProviderInterface
  12. {
  13. /**
  14. * @var UrlInterface
  15. */
  16. private $urlBuilder;
  17. /**
  18. * @var RequestInterface
  19. */
  20. private $request;
  21. /**
  22. * @param UrlInterface $urlBuilder
  23. * @param RequestInterface $request
  24. */
  25. public function __construct(
  26. UrlInterface $urlBuilder,
  27. RequestInterface $request
  28. ) {
  29. $this->urlBuilder = $urlBuilder;
  30. $this->request = $request;
  31. }
  32. /**
  33. * Retrieve button-specified settings
  34. *
  35. * @return array
  36. */
  37. public function getButtonData()
  38. {
  39. return [
  40. 'label' => __('Back'),
  41. 'on_click' => sprintf("location.href = '%s';", $this->getBackUrl()),
  42. 'class' => 'back',
  43. 'sort_order' => 10
  44. ];
  45. }
  46. /**
  47. * Get URL for back button
  48. *
  49. * @return string
  50. */
  51. public function getBackUrl()
  52. {
  53. $orderId = $this->request->getParam('order_id');
  54. return $this->urlBuilder->getUrl(
  55. 'sales/order/view',
  56. [
  57. 'order_id' => $orderId
  58. ]
  59. );
  60. }
  61. }