From f7baf29d595511b91b4012604d39c6ea5d15b496 Mon Sep 17 00:00:00 2001 From: Sanjay Patel <sanjay@wagento.com> Date: Tue, 16 Jan 2018 14:00:56 +0530 Subject: [PATCH] #12714 - pass parameter for export button url --- .../sales_order_view_creditmemo_grid.xml | 8 +++++- .../sales_order_view_invoice_grid.xml | 8 +++++- .../sales_order_view_shipment_grid.xml | 8 +++++- .../Magento/Ui/Component/ExportButton.php | 25 ++++++++++++++++++- 4 files changed, 45 insertions(+), 4 deletions(-) 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 ecc2b5beee3..10b7b1c028c 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 3ec450a570b..ac1233c5e49 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 27cef507421..6db77a79b8c 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 9d5f1258390..284362a119b 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; + } } -- GitLab