diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml index ecc2b5beee32190c5e4d407ece25344840c10259..10b7b1c028c6636e8700c272fbec254e2ede2754 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml @@ -35,7 +35,13 @@ <listingToolbar name="listing_top"> <bookmark name="bookmarks"/> <columnsControls name="columns_controls"/> - <exportButton name="export_button"/> + <exportButton name="export_button"> + <settings> + <additionalParams> + <param xsi:type="string" active="true" name="order_id">*</param> + </additionalParams> + </settings> + </exportButton> <filterSearch name="fulltext"/> <filters name="listing_filters"> <filterSelect name="store_id" provider="${ $.parentName }"> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml index 3ec450a570b463c6b966364d10fdb41df05bc20b..ac1233c5e4961209433fcf6c442eb2c2fd067a06 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml @@ -35,7 +35,13 @@ <listingToolbar name="listing_top"> <bookmark name="bookmarks"/> <columnsControls name="columns_controls"/> - <exportButton name="export_button"/> + <exportButton name="export_button"> + <settings> + <additionalParams> + <param xsi:type="string" active="true" name="order_id">*</param> + </additionalParams> + </settings> + </exportButton> <filterSearch name="fulltext"/> <filters name="listing_filters"> <filterSelect name="store_id" provider="${ $.parentName }"> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml index 27cef507421632e4f798a3ad6609ff2a5f87ed37..6db77a79b8c1496900e9655d3762943c52545e43 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml @@ -35,7 +35,13 @@ <listingToolbar name="listing_top"> <bookmark name="bookmarks"/> <columnsControls name="columns_controls"/> - <exportButton name="export_button"/> + <exportButton name="export_button"> + <settings> + <additionalParams> + <param xsi:type="string" active="true" name="order_id">*</param> + </additionalParams> + </settings> + </exportButton> <filterSearch name="fulltext"/> <filters name="listing_filters"> <filterSelect name="store_id" provider="${ $.parentName }"> diff --git a/app/code/Magento/Ui/Component/ExportButton.php b/app/code/Magento/Ui/Component/ExportButton.php index 9d5f12583900316e89709bb7663a4bf74e499f38..284362a119bad030efce899ac08a4c6b127bf1c3 100644 --- a/app/code/Magento/Ui/Component/ExportButton.php +++ b/app/code/Magento/Ui/Component/ExportButton.php @@ -54,11 +54,13 @@ class ExportButton extends AbstractComponent */ public function prepare() { + $context = $this->getContext(); $config = $this->getData('config'); if (isset($config['options'])) { $options = []; foreach ($config['options'] as $option) { - $option['url'] = $this->urlBuilder->getUrl($option['url']); + $additionalParams = $this->getAdditionalParams($config, $context); + $option['url'] = $this->urlBuilder->getUrl($option['url'], $additionalParams); $options[] = $option; } $config['options'] = $options; @@ -66,4 +68,25 @@ class ExportButton extends AbstractComponent } parent::prepare(); } + + /** + * Get export button additional parameters + * + * @param array $config + * @param ContextInterface $context + * @return array + */ + protected function getAdditionalParams($config, $context) + { + $additionalParams = []; + if (isset($config['additionalParams'])) { + foreach ($config['additionalParams'] as $paramName => $paramValue) { + if ('*' == $paramValue) { + $paramValue = $context->getRequestParam($paramName); + } + $additionalParams[$paramName] = $paramValue; + } + } + return $additionalParams; + } }